diff options
author | Andrew Stubbs <ams@codesourcery.com> | 2023-11-10 16:07:25 +0000 |
---|---|---|
committer | Andrew Stubbs <ams@codesourcery.com> | 2023-11-28 11:24:13 +0000 |
commit | bb74ca622fbc73750b9a6ef4c10ec17a4c6ca4eb (patch) | |
tree | 213a1f07b8c38ee974bde605cdab73081c0e98f4 /gcc | |
parent | 461d34fc92a857834dae45cc52aa002ffd33f82d (diff) | |
download | gcc-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)
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog.omp | 7 | ||||
-rw-r--r-- | gcc/config/gcn/gcn.cc | 4 |
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); |