aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPat Haugen <pthaugen@us.ibm.com>2017-03-17 16:42:29 +0000
committerPat Haugen <pthaugen@gcc.gnu.org>2017-03-17 16:42:29 +0000
commitd8fe28be762164639c98506f9348f082e5f4b880 (patch)
treeef4bfcc2578bf44fdd1dc23c78935fb2c241e08d
parent6b4c3c7b2334c417b1e06612f717f34ae464f305 (diff)
downloadgcc-d8fe28be762164639c98506f9348f082e5f4b880.zip
gcc-d8fe28be762164639c98506f9348f082e5f4b880.tar.gz
gcc-d8fe28be762164639c98506f9348f082e5f4b880.tar.bz2
re PR target/79951 (ICE in extract_insn, at recog.c:2311 on ppc64le with -mno-cmpb)
PR target/79951 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test for VECTOR_UNIT_VSX_P (<MODE>mode) too. * gcc.target/powerpc/pr79951.c: New. From-SVN: r246228
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.md2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr79951.c10
4 files changed, 22 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index eb0e150..2ea7fe8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
+
+ PR target/79951
+ * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
+ for VECTOR_UNIT_VSX_P (<MODE>mode) too.
+
2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
* reload.c (find_reloads): When reloading a nonoffsettable address,
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 000d840..164fc2c 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -4831,7 +4831,7 @@
(unspec:SFDF [(match_operand:SFDF 1 "gpc_reg_operand" "<Ff>,<Fv>")
(match_operand:SFDF 2 "gpc_reg_operand" "<Ff>,<Fv>")]
UNSPEC_COPYSIGN))]
- "TARGET_<MODE>_FPR && TARGET_CMPB"
+ "TARGET_<MODE>_FPR && (TARGET_CMPB || VECTOR_UNIT_VSX_P (<MODE>mode))"
"@
fcpsgn %0,%2,%1
xscpsgndp %x0,%x2,%x1"
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4162ca2..7178b8e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
+
+ PR target/79951
+ * gcc.target/powerpc/pr79951.c: New.
+
2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
PR rtl-optimization/79910
diff --git a/gcc/testsuite/gcc.target/powerpc/pr79951.c b/gcc/testsuite/gcc.target/powerpc/pr79951.c
new file mode 100644
index 0000000..6783744
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr79951.c
@@ -0,0 +1,10 @@
+/* { dg-do compile { target { powerpc*-*-* } } } */
+/* { dg-require-effective-target powerpc_p8vector_ok } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+/* { dg-options "-mcpu=power8 -S -mno-cmpb" } */
+
+float testf (float x, float y)
+{
+ return __builtin_copysignf (x, y);
+}
+