aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Stubbs <ams@codesourcery.com>2023-11-10 16:07:25 +0000
committerAndrew Stubbs <ams@codesourcery.com>2023-11-27 13:36:09 +0000
commite7d3414dffc98efc8424818dedac138c99c9ca79 (patch)
tree177c543bb624325a2fc79afd0552f2c4163997c6 /gcc
parent965d2327994469659ac477e337f74bf393ee2c69 (diff)
downloadgcc-e7d3414dffc98efc8424818dedac138c99c9ca79.zip
gcc-e7d3414dffc98efc8424818dedac138c99c9ca79.tar.gz
gcc-e7d3414dffc98efc8424818dedac138c99c9ca79.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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/gcn/gcn.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/config/gcn/gcn.cc b/gcc/config/gcn/gcn.cc
index 52c8a0e..22d2b6e 100644
--- a/gcc/config/gcn/gcn.cc
+++ b/gcc/config/gcn/gcn.cc
@@ -5050,7 +5050,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);