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)5neg_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