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" } } */
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
];
17 #pragma omp simd safelen(16)
18 for (i
= 0; i
< LENGTH
; i
++)
26 #pragma omp simd safelen(16)
27 for (i
= 0; i
< LENGTH
; i
++)
35 #pragma omp simd safelen(16)
36 for (i
= 0; i
< LENGTH
; i
++)
44 #pragma omp simd safelen(16)
45 for (i
= 0; i
< LENGTH
; i
++)
53 #pragma omp simd safelen(16)
54 for (i
= 0; i
< LENGTH
; i
++)
55 i1
[i
] = l1
[i
] > l2
[i
] ? 3 : 4;
61 #pragma omp simd safelen(16)
62 for (i
= 0; i
< LENGTH
; i
++)
63 s1
[i
] = i1
[i
] > i2
[i
] ? 3 : 4;
69 #pragma omp simd safelen(16)
70 for (i
= 0; i
< LENGTH
; i
++)
71 c1
[i
] = s1
[i
] > s2
[i
] ? 3 : 4;
77 #pragma omp simd safelen(16)
78 for (i
= 0; i
< LENGTH
; i
++)
79 c1
[i
] = d1
[i
] > d2
[i
] ? 3 : 4;
85 #pragma omp simd safelen(16)
86 for (i
= 0; i
< LENGTH
; i
++)
87 if (l1
[i
] > l2
[i
] && i1
[i
] < i2
[i
])
94 #pragma omp simd safelen(16)
95 for (i
= 0; i
< LENGTH
; i
++)
96 if (l1
[i
] > l2
[i
] && i1
[i
] < i2
[i
])