1 /* { dg-require-effective-target vect_condition } */
2 
3 #include "tree-vect.h"
4 
5 #define N 16
6 
7 int c[N] = {3,2,1,10,1,42,3,4,50,9,32,8,11,10,1,2};
8 int a[N+1] = {0,16,32,48,64,128,256,512,0,16,32,48,64,128,256,512,1024};
9 
10 __attribute__ ((noinline)) void
foo(int * x)11 foo (int *x)
12 {
13   int i;
14   int curr_a, flag, next_a;
15 
16   curr_a = a[0];
17 
18   for (i = 0; i < N; i++)
19     {
20       flag = *x > c[i];
21       next_a = a[i+1];
22       curr_a = flag ? curr_a : next_a;
23     }
24 
25   *x = curr_a;
26 }
27 
main(void)28 int main (void)
29 {
30   int x = 7;
31 
32   check_vect ();
33 
34   foo (&x);
35 
36   if (x != 256)
37     abort ();
38 
39   return 0;
40 }
41 
42 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
43