The testcase has been failing on BE because the compiler is simply storing the 
value straight from the GPRs. The following patch fixes the issue by using 'r' 
in an expression which forces the value back to a VSR. Verified the testcase 
now passes for powerpc64 and still passes for powerpc64le. Ok for trunk?

-Pat


testsuite/ChangeLog:
2017-02-02  Pat Haugen  <pthau...@us.ibm.com>

        PR target/79158
        * gcc.target/powerpc/pr70669.c: Use 'r' in an expression to force back
        to VSX reg.


Index: gcc.target/powerpc/pr70669.c
===================================================================
--- gcc.target/powerpc/pr70669.c        (revision 245032)
+++ gcc.target/powerpc/pr70669.c        (working copy)
@@ -13,7 +13,7 @@ void foo (TYPE *p, TYPE *q)
 #ifndef NO_ASM
   __asm__ (" # %0" : "+r" (r));
 #endif
-  *p = r;
+  *p = r + r;
 }
 
 /* { dg-final { scan-assembler       "mfvsrd"    } } */

Reply via email to