diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/aarch64/sve_speculative_8.c')
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/sve_speculative_8.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/aarch64/sve_speculative_8.c b/gcc/testsuite/gcc.target/aarch64/sve_speculative_8.c new file mode 100644 index 00000000000..8c70e2f9012 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/sve_speculative_8.c @@ -0,0 +1,21 @@ +/* { dg-do compile } */ +/* { dg-options "-O3 -fno-inline -ffast-math -march=armv8-a+sve -fdump-tree-vect-details -msve-vector-bits=256" } */ + +#include <stdint.h> + +/* Speculative loop with a load which requires multiple copies and a test. */ + +uint32_t +search (uint64_t *array) +{ + for (;;) + { + uint32_t x = *array++ >> 7; + if (x >= 200) + return x; + } +} + +/* { dg-final { scan-tree-dump "multiple copies not supported for speculative loops" "vect" } } */ +/* { dg-final { scan-tree-dump "not vectorized: relevant stmt not supported" "vect" } } */ +/* { dg-final { scan-tree-dump-not "LOOP VECTORIZED" "vect" } } */ |