1 /* { dg-additional-options "-Ofast -fno-common" } */
2 /* { dg-additional-options "-Ofast -fno-common -mavx" { target avx_runtime } } */
6 __attribute__((noinline
, noclone
)) void
7 foo (float *__restrict x
, float *__restrict y
, float *__restrict z
)
9 float *__restrict p
= __builtin_assume_aligned (x
, 32);
10 float *__restrict q
= __builtin_assume_aligned (y
, 32);
11 float *__restrict r
= __builtin_assume_aligned (z
, 32);
13 for (i
= 0; i
< 1024; i
++)
22 float a
[1024] __attribute__((aligned (32)));
23 float b
[1024] __attribute__((aligned (32)));
24 float c
[1024] __attribute__((aligned (32)));
31 for (i
= 0; i
< 1024; i
++)
33 a
[i
] = (i
& 1) ? -i
: i
;
40 for (i
= 0; i
< 1024; i
++)
41 if (a
[i
] != ((i
& 1) ? -i
: i
)
42 || b
[i
] != ((i
& 1) ? a
[i
] + 2.0f
: 7 * i
)
43 || c
[i
] != a
[i
] - 3.0f
)
48 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target avx_runtime } } } */