From bb74ca622fbc73750b9a6ef4c10ec17a4c6ca4eb Mon Sep 17 00:00:00 2001 From: Andrew Stubbs Date: Fri, 10 Nov 2023 16:07:25 +0000 Subject: 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) --- gcc/ChangeLog.omp | 7 +++++++ gcc/config/gcn/gcn.cc | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'gcc') 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 + * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Disallow TImode. + +2023-11-28 Andrew Stubbs + + Backport from mainline: + Andrew Stubbs + * config/gcn/gcn-valu.md (*mov_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); -- cgit v1.1