1 /* { dg-options "-fopenmp -O2" } */
2 /* { dg-additional-options "-fopenmp-target-simd-clone=any -fdump-ipa-simdclone-details" } */
4 /* Test that simd clones are not generated for functions with
5 "declare target" but that read volatile memory in the body. */
7 extern volatile int save
;
9 #pragma omp declare target
10 __attribute__ ((__noinline__
)) int addit(int a
, int b
)
14 #pragma omp end declare target
16 void callit (int *a
, int *b
, int *c
)
20 for (i
= 0; i
< 16; i
++)
21 c
[i
] = addit (a
[i
], b
[i
]);
24 /* { dg-final { scan-ipa-dump "body includes volatile op" "simdclone" { target x86_64-*-* } } } */
25 /* { dg-final { scan-ipa-dump-not "Generated .* clone" "simdclone" { target x86_64-*-* } } } */