rs6000: Improve p9-dimode* testcases
authorSegher Boessenkool <segher@kernel.crashing.org>
Tue, 28 May 2019 11:45:48 +0000 (13:45 +0200)
committerSegher Boessenkool <segher@gcc.gnu.org>
Tue, 28 May 2019 11:45:48 +0000 (13:45 +0200)
This removes the unnecessary restriction to 32-bit (all three ways).
It also scans for mtvsr*, not just mtvsrd.  Finally, it uses the "wa"
constraints instead of "wi" in the inline asm statements.

gcc/testsuite/
* gcc.target/powerpc/p9-dimode1.c: Don't restrict to -m64.  Check for
all mtvsr*, not just mtvsrd.  Use "wa" instead of "wi" constraints.
* gcc.target/powerpc/p9-dimode2.c: Ditto.

From-SVN: r271696

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/p9-dimode1.c
gcc/testsuite/gcc.target/powerpc/p9-dimode2.c

index fe90a4fda8ba8ee5c0b1dc9d8f4536fd9bbfc5e3..f1acd6dbc7a5b84fd2c0d870a2bf2c59ceb4422e 100644 (file)
@@ -1,3 +1,9 @@
+2019-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * gcc.target/powerpc/p9-dimode1.c: Don't restrict to -m64.  Check for
+       all mtvsr*, not just mtvsrd.  Use "wa" instead of "wi" constraints.
+       * gcc.target/powerpc/p9-dimode2.c: Ditto.
+
 2019-05-28  Martin Liska  <mliska@suse.cz>
 
        PR ipa/90555
index 424ddb5f0deb55642ea4cede891c0057c1bfa6d3..b2cd3d68221f9d998cc8c60dd2c939797d53d4df 100644 (file)
@@ -1,21 +1,17 @@
-/* { dg-do compile { target { powerpc64*-*-* && lp64 } } } */
+/* { dg-do compile { target { powerpc*-*-* } } } */
 /* { dg-require-effective-target powerpc_p9vector_ok } */
 /* { dg-options "-mdejagnu-cpu=power9 -O2" } */
 
 /* Verify P9 changes to allow DImode into Altivec registers, and generate
    constants using XXSPLTIB.  */
 
-#ifndef _ARCH_PPC64
-#error "This code is 64-bit."
-#endif
-
 double
 p9_zero (void)
 {
   long l = 0;
   double ret;
 
-  __asm__ ("xxlor %x0,%x1,%x1" : "=&d" (ret) : "wi" (l));
+  __asm__ ("xxlor %x0,%x1,%x1" : "=&d" (ret) : "wa" (l));
 
   return ret;
 }
@@ -26,7 +22,7 @@ p9_plus_1 (void)
   long l = 1;
   double ret;
 
-  __asm__ ("xxlor %x0,%x1,%x1" : "=&d" (ret) : "wi" (l));
+  __asm__ ("xxlor %x0,%x1,%x1" : "=&d" (ret) : "wa" (l));
 
   return ret;
 }
@@ -37,13 +33,13 @@ p9_minus_1 (void)
   long l = -1;
   double ret;
 
-  __asm__ ("xxlor %x0,%x1,%x1" : "=&d" (ret) : "wi" (l));
+  __asm__ ("xxlor %x0,%x1,%x1" : "=&d" (ret) : "wa" (l));
 
   return ret;
 }
 
 /* { dg-final { scan-assembler     {\mxxspltib\M} } } */
-/* { dg-final { scan-assembler-not {\mmtvsrd\M}   } } */
+/* { dg-final { scan-assembler-not {\mmtvsr}      } } */
 /* { dg-final { scan-assembler-not {\mlfd\M}      } } */
 /* { dg-final { scan-assembler-not {\mld\M}       } } */
 /* { dg-final { scan-assembler-not {\mlxsd\M}     } } */
index dc3c36045e6113a0f54f6dbf204507385a2a9188..c2196a2b586bd27d83b0529609ee210d5fe6d3ac 100644 (file)
@@ -1,13 +1,9 @@
-/* { dg-do compile { target { powerpc64*-*-* && lp64 } } } */
+/* { dg-do compile { target { powerpc*-*-* } } } */
 /* { dg-require-effective-target powerpc_p9vector_ok } */
 /* { dg-options "-mdejagnu-cpu=power9 -O2" } */
 
-/* Verify that large integer constants are loaded via direct move instead of being
-   loaded from memory.  */
-
-#ifndef _ARCH_PPC64
-#error "This code is 64-bit."
-#endif
+/* Verify that large integer constants are loaded via direct move instead of
+   being loaded from memory.  */
 
 double
 p9_large (void)
@@ -15,12 +11,12 @@ p9_large (void)
   long l = 0x12345678;
   double ret;
 
-  __asm__ ("xxlor %x0,%x1,%x1" : "=&d" (ret) : "wi" (l));
+  __asm__ ("xxlor %x0,%x1,%x1" : "=&d" (ret) : "wa" (l));
 
   return ret;
 }
 
-/* { dg-final { scan-assembler     {\mmtvsrd\M} } } */
+/* { dg-final { scan-assembler     {\mmtvsr}    } } */
 /* { dg-final { scan-assembler-not {\mld\M}     } } */
 /* { dg-final { scan-assembler-not {\mlfd\M}    } } */
 /* { dg-final { scan-assembler-not {\mlxsd\M}   } } */