2 /* { dg-additional-options "-Ofast -fno-common" } */
3 /* { dg-additional-options "-Ofast -fno-common -mavx" { target avx_runtime } } */
8 __attribute__((noinline
, noclone
)) void
9 foo (float *__restrict x
, float *__restrict y
, float *__restrict z
)
11 float *__restrict p
= __builtin_assume_aligned (x
, 32);
12 float *__restrict q
= __builtin_assume_aligned (y
, 32);
13 float *__restrict r
= __builtin_assume_aligned (z
, 32);
15 for (i
= 0; i
< 1024; i
++)
24 float a
[1024] __attribute__((aligned (32)));
25 float b
[1024] __attribute__((aligned (32)));
26 float c
[1024] __attribute__((aligned (32)));
33 for (i
= 0; i
< 1024; i
++)
35 a
[i
] = (i
& 1) ? -i
: i
;
41 for (i
= 0; i
< 1024; i
++)
42 if (a
[i
] != ((i
& 1) ? -i
: i
)
43 || b
[i
] != ((i
& 1) ? a
[i
] + 2.0f
: 7 * i
)
44 || c
[i
] != a
[i
] - 3.0f
)
49 /* { dg-final { scan-tree-dump-times "note: vectorized 1 loops" 1 "vect" { target avx_runtime } } } */
50 /* { dg-final { cleanup-tree-dump "vect" } } */