/* { dg-options "-O2" } */ | |
typedef float __attribute__ ((vector_size (8))) fvec; | |
typedef int __attribute__ ((vector_size (8))) ivec; | |
struct pair | |
{ | |
double a; | |
fvec b; | |
}; | |
void ldp (double *a, fvec *b, struct pair *p) | |
{ | |
*a = p->a + 1; | |
*b = p->b; | |
} | |
struct vec_pair | |
{ | |
fvec a; | |
ivec b; | |
}; | |
void ldp2 (fvec *a, ivec *b, struct vec_pair *p) | |
{ | |
*a = p->a; | |
*b = p->b; | |
} | |
/* { dg-final { scan-assembler-times "ldp\td\[0-9\], d\[0-9\]+, \\\[x\[0-9\]+\\\]" 2 } } */ |