blob: d87f32908280cf7f6ad89d129f0005510ba7cced [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2" } */
typedef long long v2di __attribute__ ((vector_size (16)));
typedef double v2df __attribute__ ((vector_size (16)));
v2di
construct_lanedi (long long *y)
{
v2di x =
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
{ 0, y[0] }
#else
{ y[0], 0 }
#endif
;
return x;
}
v2df
construct_lanedf (double *y)
{
v2df x =
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
{ 0.0, y[0] }
#else
{ y[0], 0.0 }
#endif
;
return x;
}
/* Check that creating V2DI and V2DF vectors from a lane with a zero
makes use of the D-reg LDR rather than doing explicit lane inserts. */
/* { dg-final { scan-assembler-times "ldr\td\[0-9\]+" 2 } } */
/* { dg-final { scan-assembler-not "ins\t" } } */