PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / mask-pack.c
blob0b564ef4284790511f48a90b934b9d0311bd7f8d
1 /* { dg-do compile } */
2 /* { dg-options "-mavx512bw -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 (int n)
16 int i;
17 #pragma omp simd safelen(16)
18 for (i = 0; i < LENGTH; i++)
19 if (l1[i] > l2[i])
20 i1[i] = 1;
23 int test2 (int n)
25 int i;
26 #pragma omp simd safelen(16)
27 for (i = 0; i < LENGTH; i++)
28 if (i1[i] > i2[i])
29 s1[i] = 1;
32 int test3 (int n)
34 int i;
35 #pragma omp simd safelen(16)
36 for (i = 0; i < LENGTH; i++)
37 if (s1[i] > s2[i])
38 c1[i] = 1;
41 int test4 (int n)
43 int i;
44 #pragma omp simd safelen(16)
45 for (i = 0; i < LENGTH; i++)
46 if (d1[i] > d2[i])
47 c1[i] = 1;
50 int test5 (int n)
52 int i;
53 #pragma omp simd safelen(16)
54 for (i = 0; i < LENGTH; i++)
55 i1[i] = l1[i] > l2[i] ? 3 : 4;
58 int test6 (int n)
60 int i;
61 #pragma omp simd safelen(16)
62 for (i = 0; i < LENGTH; i++)
63 s1[i] = i1[i] > i2[i] ? 3 : 4;
66 int test7 (int n)
68 int i;
69 #pragma omp simd safelen(16)
70 for (i = 0; i < LENGTH; i++)
71 c1[i] = s1[i] > s2[i] ? 3 : 4;
74 int test8 (int n)
76 int i;
77 #pragma omp simd safelen(16)
78 for (i = 0; i < LENGTH; i++)
79 c1[i] = d1[i] > d2[i] ? 3 : 4;
82 int test9 (int n)
84 int i;
85 #pragma omp simd safelen(16)
86 for (i = 0; i < LENGTH; i++)
87 if (l1[i] > l2[i] && i1[i] < i2[i])
88 c1[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 (l1[i] > l2[i] && i1[i] < i2[i])
97 c1[i] = 1;
98 else
99 c1[i] = 2;