re PR target/52775 (Change default for using FCFID instruction)
authorMichael Meissner <meissner@linux.vnet.ibm.com>
Thu, 12 Apr 2012 17:10:27 +0000 (17:10 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Thu, 12 Apr 2012 17:10:27 +0000 (17:10 +0000)
[gcc]
2012-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/52775
* config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
the list of options to enable the FCFID instruction.
(TARGET_EXTRA_BUILTINS): Adjust comment.

[gcc/testsuite]
2012-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/52775
* gcc.target/powerpc/pr52775.c: New file.

From-SVN: r186387

gcc/ChangeLog
gcc/config/rs6000/rs6000.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/pr52775.c [new file with mode: 0644]

index be5fc05353b88326d288c6cf049ddb973e2c6fcc..fb291e74c4c1ed19267ff272fcc4714ac4c0302d 100644 (file)
@@ -1,3 +1,10 @@
+2012-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/52775
+       * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
+       the list of options to enable the FCFID instruction.
+       (TARGET_EXTRA_BUILTINS): Adjust comment.
+
 2012-04-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
        PR tree-optimization/18589
index 6bd2b8d310893421919ed1a638c34a90c0fb45ac..63cbdc8f382da793d977b564d4d668777e180273 100644 (file)
@@ -467,10 +467,11 @@ extern int rs6000_vector_align[];
 /* ISA 2.01 allowed FCFID to be done in 32-bit, previously it was 64-bit only.
    Enable 32-bit fcfid's on any of the switches for newer ISA machines or
    XILINX.  */
-#define TARGET_FCFID   (TARGET_POWERPC64 \
-                        || TARGET_POPCNTB      /* ISA 2.02 */ \
-                        || TARGET_CMPB         /* ISA 2.05 */ \
-                        || TARGET_POPCNTD      /* ISA 2.06 */ \
+#define TARGET_FCFID   (TARGET_POWERPC64                               \
+                        || TARGET_PPC_GPOPT    /* 970/power4 */        \
+                        || TARGET_POPCNTB      /* ISA 2.02 */          \
+                        || TARGET_CMPB         /* ISA 2.05 */          \
+                        || TARGET_POPCNTD      /* ISA 2.06 */          \
                         || TARGET_XILINX_FPU)
 
 #define TARGET_FCTIDZ  TARGET_FCFID
@@ -492,7 +493,7 @@ extern int rs6000_vector_align[];
 
 #define TARGET_EXTRA_BUILTINS  (!TARGET_SPE && !TARGET_PAIRED_FLOAT     \
                                 && ((TARGET_POWERPC64                   \
-                                     || TARGET_PPC_GPOPT /* 970 */      \
+                                     || TARGET_PPC_GPOPT /* 970/power4 */ \
                                      || TARGET_POPCNTB   /* ISA 2.02 */ \
                                      || TARGET_CMPB      /* ISA 2.05 */ \
                                      || TARGET_POPCNTD   /* ISA 2.06 */ \
index ae2922df145fb441af0393efa9448dc2030a302f..7a5f47f013f3569c744609581bbc03e55ec25ec5 100644 (file)
@@ -1,3 +1,8 @@
+2012-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/52775
+       * gcc.target/powerpc/pr52775.c: New file.
+
 2012-04-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
        PR tree-optimization/18589
diff --git a/gcc/testsuite/gcc.target/powerpc/pr52775.c b/gcc/testsuite/gcc.target/powerpc/pr52775.c
new file mode 100644 (file)
index 0000000..4027819
--- /dev/null
@@ -0,0 +1,16 @@
+/* { dg-do compile { target { powerpc*-*-* && ilp32 } } } */
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
+/* { dg-options "-O1 -mcpu=power4" } */
+/* { dg-final { scan-assembler-times "fcfid" 2 } } */
+
+double
+int_to_double (int *p)
+{
+  return (double)*p;
+}
+
+double
+long_long_to_double (long long *p)
+{
+  return (double)*p;
+}