aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meissner <meissner@linux.vnet.ibm.com>2017-03-15 00:25:10 +0000
committerMichael Meissner <meissner@gcc.gnu.org>2017-03-15 00:25:10 +0000
commit76ca5f401d53091221b634f4e9774bc03dc8ffbe (patch)
tree629d35bf99cd879092f0cf4af9afb2a0d633d69b
parent568c347cda340293255ecb72a68fb6828af200a7 (diff)
downloadgcc-76ca5f401d53091221b634f4e9774bc03dc8ffbe.zip
gcc-76ca5f401d53091221b634f4e9774bc03dc8ffbe.tar.gz
gcc-76ca5f401d53091221b634f4e9774bc03dc8ffbe.tar.bz2
re PR target/79947 (ICE in rs6000_emit_swsqrt at gcc/config/rs6000/rs6000.c:37570)
[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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.h3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr79947.c12
4 files changed, 25 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 63597cd..77e6f8c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 0180e0c..da6fd52 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -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 \
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 63daa28..f1ba337 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 0000000..970e8c0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr79947.c
@@ -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);
+}