Daily bump.
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / mask-unpack.c
blob4291480cfff04fa4ddf3ccd6f2c4af11a06cee65
1 /* { dg-do compile } */
2 /* { dg-options "-mavx512bw -mavx512dq -mno-stackrealign -O3 -fopenmp-simd -fdump-tree-vect-details" } */
3 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 10 "vect" } } */
4 /* { dg-final { scan-assembler-not "maskmov" } } */
6 #define LENGTH 1000
8 long l1[LENGTH], l2[LENGTH];
9 int i1[LENGTH], i2[LENGTH];
10 short s1[LENGTH], s2[LENGTH];
11 char c1[LENGTH], c2[LENGTH];
12 double d1[LENGTH], d2[LENGTH];
14 int test1 ()
16 int i;
17 #pragma omp simd safelen(16)
18 for (i = 0; i < LENGTH; i++)
19 if (i1[i] > i2[i])
20 l1[i] = 1;
23 int test2 (int n)
25 int i;
26 #pragma omp simd safelen(32)
27 for (i = 0; i < LENGTH; i++)
28 if (s1[i] > s2[i])
29 i1[i] = 1;
32 int test3 (int n)
34 int i;
35 #pragma omp simd safelen(32)
36 for (i = 0; i < LENGTH; i++)
37 if (c1[i] > c2[i])
38 s1[i] = 1;
41 int test4 (int n)
43 int i;
44 #pragma omp simd safelen(32)
45 for (i = 0; i < LENGTH; i++)
46 if (c1[i] > c2[i])
47 d1[i] = 1;
50 int test5 (int n)
52 int i;
53 #pragma omp simd safelen(32)
54 for (i = 0; i < LENGTH; i++)
55 l1[i] = i1[i] > i2[i] ? 1 : 2;
58 int test6 (int n)
60 int i;
61 #pragma omp simd safelen(32)
62 for (i = 0; i < LENGTH; i++)
63 i1[i] = s1[i] > s2[i] ? 1 : 2;
66 int test7 (int n)
68 int i;
69 #pragma omp simd safelen(32)
70 for (i = 0; i < LENGTH; i++)
71 s1[i] = c1[i] > c2[i] ? 1 : 2;
74 int test8 (int n)
76 int i;
77 #pragma omp simd safelen(32)
78 for (i = 0; i < LENGTH; i++)
79 d1[i] = c1[i] > c2[i] ? 1 : 2;
82 int test9 (int n)
84 int i;
85 #pragma omp simd safelen(16)
86 for (i = 0; i < LENGTH; i++)
87 if (c1[i] > c2[i] && i1[i] < i2[i])
88 l1[i] = 1;
91 int test10 (int n)
93 int i;
94 #pragma omp simd safelen(16)
95 for (i = 0; i < LENGTH; i++)
96 if (c1[i] > c2[i] && i1[i] < i2[i])
97 l1[i] = 1;
98 else
99 l1[i] = 2;