/* PR middle-end/87887 */ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ /* { dg-require-effective-target vect_simd_clones } */ struct S { int n; }; #pragma omp declare simd struct S foo (int x) /* { dg-warning "unsupported return type 'struct S' for simd" } */ { return (struct S) { x }; } #pragma omp declare simd int bar (struct S x) /* { dg-warning "unsupported argument type 'struct S' for simd" } */ { return x.n; } #pragma omp declare simd uniform (x) int baz (int w, struct S x, int y) { return w + x.n + y; }