The aarch64_sve256_hw line forced the vector length, but didn't force SVE itself. This meant that the associated:
/* { dg-final { scan-tree-dump "MASK_SCATTER_STORE" "vect" { target aarch64_sve256_hw } } } */ wouldn't always fire. I imagine this was tested with SVE enabled by default, which would have masked the problem. Tested on aarch64-linux-gnu & pushed. Richard gcc/testsuite/ * gcc.dg/vect/pr99102.c: Force SVE when forcing the vector length. --- gcc/testsuite/gcc.dg/vect/pr99102.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/testsuite/gcc.dg/vect/pr99102.c b/gcc/testsuite/gcc.dg/vect/pr99102.c index 071741f5e48..fcbf0367402 100644 --- a/gcc/testsuite/gcc.dg/vect/pr99102.c +++ b/gcc/testsuite/gcc.dg/vect/pr99102.c @@ -1,5 +1,5 @@ /* { dg-additional-options "-O2 -ftree-vectorize -fno-vect-cost-model -fdump-tree-vect-details" } */ -/* { dg-additional-options "-msve-vector-bits=256" { target aarch64_sve256_hw } } */ +/* { dg-additional-options "-march=armv8-a+sve -msve-vector-bits=256" { target aarch64_sve256_hw } } */ long a[44]; short d, e = -7; __attribute__((noipa)) void b(char f, short j, short k, unsigned l) { -- 2.43.0