diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vec-init.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vec-init.c | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vec-init.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vec-init.c new file mode 100644 index 000000000..acbd34f3f --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/avx512f-vec-init.c @@ -0,0 +1,121 @@ +/* { dg-do compile } */ +/* { dg-options "-O3 -mavx512f" } */ +/* { dg-final { scan-assembler-times "vmovdqa64\[ \\t\]+%zmm" 2 } } */ +/* { dg-final { scan-assembler-times "vpbroadcastd" 1 } } */ +/* { dg-final { scan-assembler-times "vpbroadcastq" 1 } } */ +/* { dg-final { scan-assembler-times "vpbroadcastb" 2 } } */ +/* { dg-final { scan-assembler-times "vpbroadcastw" 2 } } */ +/* { dg-final { scan-assembler-times "vbroadcastss" 1 } } */ +/* { dg-final { scan-assembler-times "vbroadcastsd" 1 } } */ + +#include <x86intrin.h> + +typedef char __v64qi __attribute__ ((vector_size (64))); +typedef short __v32hi __attribute__ ((vector_size (64))); + +__v64qi foo_1 (char c) +{ + __v64qi v1 = { + c, c, c, c, c, c, c, c, + c, c, c, c, c, c, c, c, + c, c, c, c, c, c, c, c, + c, c, c, c, c, c, c, c, + c, c, c, c, c, c, c, c, + c, c, c, c, c, c, c, c, + c, c, c, c, c, c, c, c, + c, c, c, c, c, c, c, c + }; + + return v1; +} + +__v32hi foo_2 (short c) +{ + __v32hi v1 = { + c, c, c, c, c, c, c, c, + c, c, c, c, c, c, c, c, + c, c, c, c, c, c, c, c, + c, c, c, c, c, c, c, c + }; + + return v1; +} + +__v16si foo_3 (int c) +{ + __v16si v1 = { + c, c, c, c, c, c, c, c, + c, c, c, c, c, c, c, c + }; + + return v1; +} + +__v8di foo_4 (long long c) +{ + __v8di v1 = { + c, c, c, c, c, c, c, c + }; + + return v1; +} + +__v32qi foo_5 (char c) +{ + __v32qi v1 = { + c, c, c, c, c, c, c, c, + c, c, c, c, c, c, c, c, + c, c, c, c, c, c, c, c, + c, c, c, c, c, c, c, c + }; + + return v1; +} + +__v16hi foo_6 (short c) +{ + __v16hi v1 = { + c, c, c, c, c, c, c, c, + c, c, c, c, c, c, c, c + }; + + return v1; +} + +__v8si foo_7 (int c) +{ + __v8si v1 = { + c, c, c, c, c, c, c, c + }; + + return v1; +} + +__v4di foo_8 (long long c) +{ + __v4di v1 = { + c, c, c, c + }; + + return v1; +} + + +__v16qi foo_9 (char c) +{ + __v16qi v1 = { + c, c, c, c, c, c, c, c, + c, c, c, c, c, c, c, c + }; + + return v1; +} + +__v8hi foo_10(short c) +{ + __v8hi v1 = { + c, c, c, c, c, c, c, c + }; + + return v1; +} |