1 /* { dg-require-effective-target vect_simd_clones } */
2 /* { dg-additional-options "-fopenmp-simd" } */
3 /* { dg-additional-options "-mavx" { target avx_runtime } } */
15 #pragma omp declare simd notinbranch
16 __attribute__((noinline
)) static int
17 foo (long int a
, int b
, int c
)
22 #pragma omp declare simd notinbranch
23 __attribute__((noinline
)) static long int
24 bar (int a
, int b
, long int c
)
29 __attribute__((noinline
)) void
34 for (i
= 0; i
< N
; i
++)
35 a
[i
] = foo (c
[i
], a
[i
], b
[i
]) + 6;
37 for (i
= 0; i
< N
; i
++)
38 c
[i
] = bar (a
[i
], b
[i
], c
[i
]) * 2;
41 __attribute__((noinline
)) void
46 for (i
= 0; i
< N
; i
++)
48 a
[i
] = foo (c
[i
], a
[i
], b
[i
]) + 6;
52 for (i
= 0; i
< N
; i
++)
54 c
[i
] = bar (a
[i
], b
[i
], c
[i
]) * 2;
59 __attribute__((noinline
)) void
63 for (i
= 0; i
< N
; i
++)
80 for (i
= 0; i
< N
; i
++)
81 if (a
[i
] != i
* 2 + 23 + (i
% 37) + (i
& 63)
82 || b
[i
] != 17 + (i
% 37)
83 || c
[i
] != i
* 4 + 80 + 4 * (i
% 37) + 4 * (i
& 63))
88 for (i
= 0; i
< N
; i
++)
89 if (a
[i
] != i
* 2 + 23 + (i
% 37) + (i
& 63)
90 || b
[i
] != 17 + (i
% 37)
91 || c
[i
] != i
* 4 + 80 + 4 * (i
% 37) + 4 * (i
& 63)
92 || d
[i
] != ((unsigned char) (17 + i
)) / 2)