blob: 2d9cb6b19d563a7e1bb11c174f6d642291260f29 [file] [log] [blame]
/* { 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 } } */