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" } } */