This test was failing on aarch64 targets because we inlined the test function into main, making it vectorisable.
Tested on aarch64-linux-gnu and x86_64-linux-gnu, pushed to trunk as (hopefully) obvious. Richard gcc/testsuite/ * gcc.dg/vect/pr65947-7.c: Add a noipa attribute. Expect the loop to vectorized if vect_fold_extract_last. --- gcc/testsuite/gcc.dg/vect/pr65947-7.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gcc/testsuite/gcc.dg/vect/pr65947-7.c b/gcc/testsuite/gcc.dg/vect/pr65947-7.c index 287f57ed1d3..16cdcd1c6eb 100644 --- a/gcc/testsuite/gcc.dg/vect/pr65947-7.c +++ b/gcc/testsuite/gcc.dg/vect/pr65947-7.c @@ -9,7 +9,7 @@ extern void abort (void) __attribute__ ((noreturn)); /* Condition reduction with comparison is a different type to the data. Will fail to vectorize. */ -int +int __attribute__ ((noipa)) condition_reduction (short *a, int min_v, int *b) { int last = N + 65; @@ -52,4 +52,5 @@ main (void) return 0; } -/* { dg-final { scan-tree-dump-not "LOOP VECTORIZED" "vect" } } */ +/* { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" { target vect_fold_extract_last } } } */ +/* { dg-final { scan-tree-dump-not "LOOP VECTORIZED" "vect" { target { ! vect_fold_extract_last } } } } */