1 /* { dg-do compile { target { powerpc*-*-linux* && lp64 } } } */
2 /* { dg-require-effective-target powerpc_p9vector_ok } */
3 /* { dg-options "-mdejagnu-cpu=power9 -O2" } */
5 /* Check code generation for direct move for long types. */
8 test (vector
double *p
)
10 vector
double v1
= *p
;
15 /* Force memory -> FPR load. */
16 __asm__ (" # reg %x0" : "+d" (v1
));
18 /* force VSX -> GPR direct move. */
20 __asm__ (" # reg %0" : "+r" (v2
));
22 /* Force GPR -> Altivec direct move. */
24 __asm__ (" # reg %x0" : "+v" (v3
));
28 /* { dg-final { scan-assembler "mfvsrd" } } */
29 /* { dg-final { scan-assembler "mfvsrld" } } */
30 /* { dg-final { scan-assembler "mtvsrdd" } } */