1 /* { dg-do compile } */
2 /* { dg-additional-options "-fgimple -fdump-tree-optimized -ffast-math" } */
3 
4 double __GIMPLE (ssa, startwith("loop"))
neg_xi(double * x)5 neg_xi (double *x)
6 {
7   int i;
8   long unsigned int index;
9   long unsigned int offset;
10   double * xi_ptr;
11   double xi;
12   double neg_xi;
13   double res;
14   unsigned int ivtmp;
15 
16  __BB(5):
17   goto __BB2;
18 
19  __BB(2):
20   res_1 = __PHI (__BB5: 0.0, __BB3: res_2);
21   i_4 = __PHI (__BB5: 0, __BB3: i_5);
22   ivtmp_6 = __PHI (__BB5: 100U, __BB3: ivtmp_7);
23   index = (long unsigned int) i_4;
24   offset = index * 8UL;
25   xi_ptr = x_8(D) + offset;
26   xi = *xi_ptr;
27   neg_xi = -xi;
28   res_2 = neg_xi + res_1;
29   i_5 = i_4 + 1;
30   ivtmp_7 = ivtmp_6 - 1U;
31   if (ivtmp_7 != 0U)
32     goto __BB3;
33   else
34     goto __BB4;
35 
36  __BB(3):
37   goto __BB2;
38 
39  __BB(4):
40   res_3 = __PHI (__BB2: res_2);
41   return res_3;
42 }
43 
44 /* { dg-final { scan-tree-dump { = \.COND_ADD} "vect" { target { vect_double_cond_arith && vect_fully_masked } } } } */
45 /* { dg-final { scan-tree-dump { = \.COND_SUB} "optimized" { target { vect_double_cond_arith && vect_fully_masked } } } } */
46