]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/79951 (ICE in extract_insn, at recog.c:2311 on ppc64le with -mno-cmpb)
authorPat Haugen <pthaugen@us.ibm.com>
Tue, 21 Mar 2017 16:36:39 +0000 (16:36 +0000)
committerPat Haugen <pthaugen@gcc.gnu.org>
Tue, 21 Mar 2017 16:36:39 +0000 (16:36 +0000)
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: r246328

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

index 5e97338ebb2e98438bcad79fc0903955df8b715c..5f20a055a7b2857d5042796605a34ee826af9e80 100644 (file)
@@ -1,3 +1,12 @@
+2017-03-21  Pat Haugen  <pthaugen@us.ibm.com>
+
+       Backport from mainline:
+       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-21  Tamar Christina  <tamar.christina@arm.com>
 
        * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
index 526bf329fce8ff5223efef8c2cc3b813a9d38ba5..7a8f6b5775ffb065607c28834d34d0c1bbd390c1 100644 (file)
        (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"
index df9080c378769b41947cbb5fd35ac0499e3f30b5..0b66d5a4f95e2f7df4e89e411e13f818e0a2b75f 100644 (file)
@@ -1,3 +1,10 @@
+2017-03-21  Pat Haugen  <pthaugen@us.ibm.com>
+
+       Backport from mainline:
+       2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
+
+       * gcc.target/powerpc/pr79951.c: New.
+
 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/80019
diff --git a/gcc/testsuite/gcc.target/powerpc/pr79951.c b/gcc/testsuite/gcc.target/powerpc/pr79951.c
new file mode 100644 (file)
index 0000000..6783744
--- /dev/null
@@ -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);
+}
+