1 /* { dg-options "-O2" } */
2
3 typedef float __attribute__ ((vector_size (8))) fvec;
4 typedef int __attribute__ ((vector_size (8))) ivec;
5
6 struct pair
7 {
8 double a;
9 fvec b;
10 };
11
12 void ldp (double *a, fvec *b, struct pair *p)
13 {
14 *a = p->a + 1;
15 *b = p->b;
16 }
17
18 struct vec_pair
19 {
20 fvec a;
21 ivec b;
22 };
23
24 void ldp2 (fvec *a, ivec *b, struct vec_pair *p)
25 {
26 *a = p->a;
27 *b = p->b;
28 }
29
30 /* { dg-final { scan-assembler-times "ldp\td\[0-9\], d\[0-9\]+, \\\[x\[0-9\]+\\\]" 2 } } */