* g++.dg/other/i386-2.C (dg-options): Add -mavx512pf.
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / avx512f-vec-init.c
blobacbd34f3f36bee31014595a0dc52e6fbfe37f50a
1 /* { dg-do compile } */
2 /* { dg-options "-O3 -mavx512f" } */
3 /* { dg-final { scan-assembler-times "vmovdqa64\[ \\t\]+%zmm" 2 } } */
4 /* { dg-final { scan-assembler-times "vpbroadcastd" 1 } } */
5 /* { dg-final { scan-assembler-times "vpbroadcastq" 1 } } */
6 /* { dg-final { scan-assembler-times "vpbroadcastb" 2 } } */
7 /* { dg-final { scan-assembler-times "vpbroadcastw" 2 } } */
8 /* { dg-final { scan-assembler-times "vbroadcastss" 1 } } */
9 /* { dg-final { scan-assembler-times "vbroadcastsd" 1 } } */
11 #include <x86intrin.h>
13 typedef char __v64qi __attribute__ ((vector_size (64)));
14 typedef short __v32hi __attribute__ ((vector_size (64)));
16 __v64qi foo_1 (char c)
18 __v64qi v1 = {
19 c, c, c, c, c, c, c, c,
20 c, c, c, c, c, c, c, c,
21 c, c, c, c, c, c, c, c,
22 c, c, c, c, c, c, c, c,
23 c, c, c, c, c, c, c, c,
24 c, c, c, c, c, c, c, c,
25 c, c, c, c, c, c, c, c,
26 c, c, c, c, c, c, c, c
29 return v1;
32 __v32hi foo_2 (short c)
34 __v32hi v1 = {
35 c, c, c, c, c, c, c, c,
36 c, c, c, c, c, c, c, c,
37 c, c, c, c, c, c, c, c,
38 c, c, c, c, c, c, c, c
41 return v1;
44 __v16si foo_3 (int c)
46 __v16si v1 = {
47 c, c, c, c, c, c, c, c,
48 c, c, c, c, c, c, c, c
51 return v1;
54 __v8di foo_4 (long long c)
56 __v8di v1 = {
57 c, c, c, c, c, c, c, c
60 return v1;
63 __v32qi foo_5 (char c)
65 __v32qi v1 = {
66 c, c, c, c, c, c, c, c,
67 c, c, c, c, c, c, c, c,
68 c, c, c, c, c, c, c, c,
69 c, c, c, c, c, c, c, c
72 return v1;
75 __v16hi foo_6 (short c)
77 __v16hi v1 = {
78 c, c, c, c, c, c, c, c,
79 c, c, c, c, c, c, c, c
82 return v1;
85 __v8si foo_7 (int c)
87 __v8si v1 = {
88 c, c, c, c, c, c, c, c
91 return v1;
94 __v4di foo_8 (long long c)
96 __v4di v1 = {
97 c, c, c, c
100 return v1;
104 __v16qi foo_9 (char c)
106 __v16qi v1 = {
107 c, c, c, c, c, c, c, c,
108 c, c, c, c, c, c, c, c
111 return v1;
114 __v8hi foo_10(short c)
116 __v8hi v1 = {
117 c, c, c, c, c, c, c, c
120 return v1;