[testsuite] require sqrt_insn effective target where needed
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / direct-move-vector.c
blob1d06cd8a28f3612558a8ea19dedc5ea71722033c
1 /* { dg-do compile { target { powerpc*-*-linux* && lp64 } } } */
2 /* { dg-require-effective-target powerpc_vsx_ok } */
3 /* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2" } */
5 /* Check code generation for direct move for long types. */
7 void
8 test (vector double *p)
10 vector double v1 = *p;
11 vector double v2;
12 vector double v3;
13 vector double v4;
15 /* Force memory -> FPR load. */
16 __asm__ (" # reg %x0" : "+d" (v1));
18 /* force VSX -> GPR direct move. */
19 v2 = v1;
20 __asm__ (" # reg %0" : "+r" (v2));
22 /* Force GPR -> Altivec direct move. */
23 v3 = v2;
24 __asm__ (" # reg %x0" : "+v" (v3));
25 *p = v3;
28 /* { dg-final { scan-assembler "mfvsrd" } } */
29 /* { dg-final { scan-assembler "mfvsrld" } } */
30 /* { dg-final { scan-assembler "mtvsrdd" } } */