diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/aarch64/sve_fdup_1.c')
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/sve_fdup_1.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/gcc/testsuite/gcc.target/aarch64/sve_fdup_1.c b/gcc/testsuite/gcc.target/aarch64/sve_fdup_1.c index 9ed825b9d35..148e0f9bd89 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve_fdup_1.c +++ b/gcc/testsuite/gcc.target/aarch64/sve_fdup_1.c @@ -1,22 +1,24 @@ -/* { dg-do compile } */ -/* { dg-options "-O3 -fno-inline -march=armv8-a+sve" } */ +/* { dg-do assemble } */ +/* -fno-tree-loop-distribute-patterns prevents conversion to memset. */ +/* { dg-options "-O3 -march=armv8-a+sve -fno-tree-loop-distribute-patterns --save-temps" } */ #include <stdint.h> #define NUM_ELEMS(TYPE) (1024 / sizeof (TYPE)) -#define DEF_SET_IMM(TYPE,IMM,SUFFIX) \ -void set_##TYPE##SUFFIX (TYPE *restrict a) \ +#define DEF_SET_IMM(TYPE, IMM, SUFFIX) \ +void __attribute__ ((noinline, noclone)) \ +set_##TYPE##_##SUFFIX (TYPE *a) \ { \ for (int i = 0; i < NUM_ELEMS (TYPE); i++) \ a[i] = IMM; \ } #define DEF_SET_IMM_FP(IMM, SUFFIX) \ -DEF_SET_IMM (float, IMM, SUFFIX) \ -DEF_SET_IMM (double, IMM, SUFFIX) + DEF_SET_IMM (float, IMM, SUFFIX) \ + DEF_SET_IMM (double, IMM, SUFFIX) -//Valid +/* Valid. */ DEF_SET_IMM_FP (1, imm1) DEF_SET_IMM_FP (0x1.1p0, imm1p0) DEF_SET_IMM_FP (0x1.fp0, immfp0) @@ -25,8 +27,10 @@ DEF_SET_IMM_FP (0x1.1p-3, imm1pm3) DEF_SET_IMM_FP (0x1.fp4, immfp4) DEF_SET_IMM_FP (0x1.fp-3, immfpm3) -//Invalid +/* Should use MOV instead. */ DEF_SET_IMM_FP (0, imm0) + +/* Invalid. */ DEF_SET_IMM_FP (0x1.1fp0, imm1fp0) DEF_SET_IMM_FP (0x1.1p5, imm1p5) DEF_SET_IMM_FP (0x1.1p-4, imm1pm4) @@ -43,6 +47,8 @@ DEF_SET_IMM_FP (0x1.1fp-4, imm1fpm4) /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.s, #3.1e\+1\n} 1 } } */ /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.s, #2.421875e-1\n} 1 } } */ +/* { dg-final { scan-assembler-times {\tmov\tz[0-9]+\.s, #0\n} 1 } } */ + /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.d,} 7 } } */ /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.d, #1.0e\+0\n} 1 } } */ @@ -52,3 +58,5 @@ DEF_SET_IMM_FP (0x1.1fp-4, imm1fpm4) /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.d, #1.328125e-1\n} 1 } } */ /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.d, #3.1e\+1\n} 1 } } */ /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.d, #2.421875e-1\n} 1 } } */ + +/* { dg-final { scan-assembler-times {\tmov\tz[0-9]+\.d, #0\n} 1 } } */ |