diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-01-04 17:57:29 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-01-04 17:57:29 +0000 |
commit | 48ff1d417d4c49525c09b013395e38dda8bd50fe (patch) | |
tree | ffb4ea05f14bc936b5dd3681e19b2aa3cee8c3bf /gcc/testsuite/gcc.target/i386/avx512f-vec-init.c | |
parent | 144409bbbdb293946cea105115e0e329f633d333 (diff) | |
download | gcc-48ff1d417d4c49525c09b013395e38dda8bd50fe.tar.gz |
2014-01-04 Basile Starynkevitch <basile@starynkevitch.net>
{{merge using svnmerge.py with trunk GCC 4.9 svn rev206333 now in
stage 3; very unstable, xtramelt-ana-base don't compile
anymore...}}
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@206336 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.target/i386/avx512f-vec-init.c')
-rw-r--r-- | gcc/testsuite/gcc.target/i386/avx512f-vec-init.c | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vec-init.c b/gcc/testsuite/gcc.target/i386/avx512f-vec-init.c new file mode 100644 index 00000000000..acbd34f3f36 --- /dev/null +++ b/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; +} |