aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Stubbs <ams@codesourcery.com>2023-11-10 16:07:25 +0000
committerAndrew Stubbs <ams@codesourcery.com>2023-11-28 11:24:13 +0000
commitbb74ca622fbc73750b9a6ef4c10ec17a4c6ca4eb (patch)
tree213a1f07b8c38ee974bde605cdab73081c0e98f4
parent461d34fc92a857834dae45cc52aa002ffd33f82d (diff)
downloadgcc-bb74ca622fbc73750b9a6ef4c10ec17a4c6ca4eb.zip
gcc-bb74ca622fbc73750b9a6ef4c10ec17a4c6ca4eb.tar.gz
gcc-bb74ca622fbc73750b9a6ef4c10ec17a4c6ca4eb.tar.bz2
amdgcn: Disallow TImode vector permute
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)
-rw-r--r--gcc/ChangeLog.omp7
-rw-r--r--gcc/config/gcn/gcn.cc4
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp
index 2a221c8..a4a60bf 100644
--- a/gcc/ChangeLog.omp
+++ b/gcc/ChangeLog.omp
@@ -3,6 +3,13 @@
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:
+ Andrew Stubbs <ams@codesourcery.com>
+
* config/gcn/gcn-valu.md (*mov<mode>_4reg): Disparage AVGPR use when a
reload is required.
diff --git a/gcc/config/gcn/gcn.cc b/gcc/config/gcn/gcn.cc
index c83e240..f6361789 100644
--- a/gcc/config/gcn/gcn.cc
+++ b/gcc/config/gcn/gcn.cc
@@ -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);