1 /* PR middle-end/87887 */
2 /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
3 /* { dg-require-effective-target vect_simd_clones } */
4
5 struct S { int n; };
6 #pragma omp declare simd
7 struct S
8 foo (int x) /* { dg-warning "unsupported return type 'struct S' for simd" } */
9 {
10 return (struct S) { x };
11 }
12
13 #pragma omp declare simd
14 int
15 bar (struct S x) /* { dg-warning "unsupported argument type 'struct S' for simd" } */
16 {
17 return x.n;
18 }
19
20 #pragma omp declare simd uniform (x)
21 int
22 baz (int w, struct S x, int y)
23 {
24 return w + x.n + y;
25 }