re PR target/79947 (ICE in rs6000_emit_swsqrt at gcc/config/rs6000/rs6000.c:37570)
authorMichael Meissner <meissner@linux.vnet.ibm.com>
Wed, 15 Mar 2017 00:25:10 +0000 (00:25 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Wed, 15 Mar 2017 00:25:10 +0000 (00:25 +0000)
[gcc]
2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/79947
* config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
-mpowerpc-gfxopt.

[gcc/testsuite]
2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/79947
* gcc.target/powerpc/pr79947.c: New test.

From-SVN: r246150

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

index 63597cd4c6b48cf09e7fb9a58628486ac10d7d81..77e6f8c0b68f42af9aaa41d286fbba68bf3993a8 100644 (file)
@@ -1,3 +1,9 @@
+2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/79947
+       * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
+       -mpowerpc-gfxopt.
+
 2017-03-14  Martin Sebor  <msebor@redhat.com>
 
        PR middle-end/80020
index 0180e0c3dfd851998a8b3fa37759e2babb2fd67f..da6fd522f9dbcdcdad29d33576a3299a10762058 100644 (file)
@@ -752,7 +752,8 @@ extern int rs6000_vector_align[];
                         && (TARGET_POPCNTB || VECTOR_UNIT_VSX_P (DFmode)))
 
 #define TARGET_FRSQRTES        (TARGET_HARD_FLOAT && TARGET_POPCNTB \
-                        && TARGET_FPRS && TARGET_SINGLE_FLOAT)
+                        && TARGET_PPC_GFXOPT && TARGET_FPRS \
+                        && TARGET_SINGLE_FLOAT)
 
 #define TARGET_FRSQRTE (TARGET_HARD_FLOAT && TARGET_FPRS \
                         && TARGET_DOUBLE_FLOAT \
index 63daa280f669f2abc3683c29f24a67d541865b1a..f1ba337149bb80a58be82557f456e74bd8515e01 100644 (file)
@@ -1,3 +1,8 @@
+2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/79947
+       * gcc.target/powerpc/pr79947.c: New test.
+
 2017-03-14  Martin Sebor  <msebor@redhat.com>
 
        PR middle-end/80020
diff --git a/gcc/testsuite/gcc.target/powerpc/pr79947.c b/gcc/testsuite/gcc.target/powerpc/pr79947.c
new file mode 100644 (file)
index 0000000..970e8c0
--- /dev/null
@@ -0,0 +1,12 @@
+/* { dg-do compile { target { powerpc*-*-* } } } */
+/* { dg-options "-Ofast -mno-powerpc-gfxopt -mcmpb -mno-vsx" } */
+
+/* PR 79949: Compiler segmentation fault due to not having conditional move
+   support for the target if the -mno-powerpc-gfxopt option is used.  */
+
+float a, b;
+void
+c ()
+{
+  a = __builtin_sqrtf (b);
+}