Andreas Schwab noticed that the tests for PR target/80510 were failing on
32-bit PowerPC systems.

In looking at the tests, the reason was it was trying to create a test that had
more than 32 live floating point values.  The loop to use all of the values had
tests of the form:

  for (i = 0; i < n; i++)
    {
      ITYPE bit = get_bits (bits[i]);

      if ((bit & ((ITYPE)1) << 33) != 0) x_33 += one;
    }

where ITYPE was a long type (and 32-bits on a 32-bit system).  I changed this
to __INT64_TYPE__, and the test does not work.  It turns out, only the 64-bit
system had added support for STXSDX and STXSSPX.

I've checked the following into trunk, and I will check it into the gcc-7 and
gcc-6 branches so that the test is run only on 64-bit systems, but I want to
look at enabling the support in 32-bit systems.

2017-06-21  Michael Meissner  <meiss...@linux.vnet.ibm.com>

        PR target/80510
        * gcc.target/powerpc/pr80510-1.c: Restrict test to 64-bit until
        32-bit support is added.  Change ITYPE size to 64-bit integer.
        * gcc.target/powerpc/pr80510-2.c: Likewise.

Index: gcc/testsuite/gcc.target/powerpc/pr80510-1.c
===================================================================
--- gcc/testsuite/gcc.target/powerpc/pr80510-1.c        (revision 249466)
+++ gcc/testsuite/gcc.target/powerpc/pr80510-1.c        (working copy)
@@ -1,4 +1,4 @@
-/* { dg-do compile { target { powerpc*-*-* } } } */
+/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
 /* { dg-skip-if "" { powerpc*-*-darwin* } } */
 /* { dg-require-effective-target powerpc_vsx_ok } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { 
"-mcpu=power7" } } */
@@ -6,8 +6,10 @@
 
 /* Make sure that STXSDX is generated for double scalars in Altivec registers
    on power7 instead of moving the value to a FPR register and doing a X-FORM
-   store.  */
+   store.
 
+   32-bit currently does not have support for STXSDX in the mov{df,dd} 
patterns.  */
+
 #ifndef TYPE
 #define TYPE double
 #endif
@@ -21,7 +23,7 @@
 #endif
 
 #ifndef ITYPE
-#define ITYPE long
+#define ITYPE __INT64_TYPE__
 #endif
 
 #ifdef DO_CALL
Index: gcc/testsuite/gcc.target/powerpc/pr80510-2.c
===================================================================
--- gcc/testsuite/gcc.target/powerpc/pr80510-2.c        (revision 249466)
+++ gcc/testsuite/gcc.target/powerpc/pr80510-2.c        (working copy)
@@ -1,4 +1,4 @@
-/* { dg-do compile { target { powerpc*-*-* } } } */
+/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
 /* { dg-skip-if "" { powerpc*-*-darwin* } } */
 /* { dg-require-effective-target powerpc_p8vector_ok } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { 
"-mcpu=power8" } } */
@@ -6,8 +6,10 @@
 
 /* Make sure that STXSSPX is generated for float scalars in Altivec registers
    on power7 instead of moving the value to a FPR register and doing a X-FORM
-   store.  */
+   store.
 
+   32-bit currently does not have support for STXSSPX in the mov{sf,sd} 
patterns.  */
+
 #ifndef TYPE
 #define TYPE float
 #endif
@@ -21,7 +23,7 @@
 #endif
 
 #ifndef ITYPE
-#define ITYPE long
+#define ITYPE __INT64_TYPE__
 #endif
 
 #ifdef DO_CALL

-- 
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: meiss...@linux.vnet.ibm.com, phone: +1 (978) 899-4797

Reply via email to