1 /* PR tree-optimization/57741 */
2 /* { dg-require-effective-target vect_float } */
3 /* { dg-additional-options "-ffast-math" } */
7 extern void abort (void);
9 __attribute__((noinline
, noclone
)) void
10 foo (float *p
, float *q
, float x
)
13 p
= (float *) __builtin_assume_aligned (p
, 32);
14 q
= (float *) __builtin_assume_aligned (q
, 32);
15 float f
= 1.0f
, g
= 2.0f
;
16 for (i
= 0; i
< 1024; i
++)
21 for (i
= 0; i
< 1024; i
++)
28 float p
[1024] __attribute__((aligned (32))) = { 17.0f
};
29 float q
[1024] __attribute__((aligned (32))) = { 17.0f
};
38 for (i
= 0; i
< 1024; i
++)
39 if (p
[i
] != 1.0f
+ i
* 1.5f
|| q
[i
] != 2.0f
+ i
* 0.5f
)
44 /* { dg-final { scan-tree-dump-times "vectorized 2 loop" 1 "vect" } } */