]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
amdgcn: Disallow TImode vector permute
authorAndrew Stubbs <ams@codesourcery.com>
Fri, 10 Nov 2023 16:07:25 +0000 (16:07 +0000)
committerAndrew Stubbs <ams@codesourcery.com>
Tue, 28 Nov 2023 11:24:13 +0000 (11:24 +0000)
We don't support it and it doesn't happen without vector extensions, so
just remove the unhandled case.

Fixes gcc.dg/pr78575.c failure.

gcc/ChangeLog:

* config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Disallow TImode.

(cherry picked from commit e7d3414dffc98efc8424818dedac138c99c9ca79)

gcc/ChangeLog.omp
gcc/config/gcn/gcn.cc

index 2a221c80656ee9b5153c8525fc2f8f8bdd8fdf84..a4a60bfe45fcb9a714b752ae4ff4862fc2572bf9 100644 (file)
@@ -1,3 +1,10 @@
+2023-11-28  Andrew Stubbs  <ams@codesourcery.com>
+
+       Backport from mainline:
+       Andrew Stubbs  <ams@codesourcery.com>
+
+       * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Disallow TImode.
+
 2023-11-28  Andrew Stubbs  <ams@codesourcery.com>
 
        Backport from mainline:
index c83e240cd430d0427dcad390499293bf0730ddb2..f6361789aae085e804e1394f7f15b3a29262fc74 100644 (file)
@@ -5089,7 +5089,9 @@ gcn_vectorize_vec_perm_const (machine_mode vmode, machine_mode op_mode,
                              rtx dst, rtx src0, rtx src1,
                              const vec_perm_indices & sel)
 {
-  if (vmode != op_mode)
+  if (vmode != op_mode
+      || !VECTOR_MODE_P (vmode)
+      || GET_MODE_INNER (vmode) == TImode)
     return false;
 
   unsigned int nelt = GET_MODE_NUNITS (vmode);