rs6000: Make lround<mode>di2 depend on TARGET_FPRND (PR86684)
authorSegher Boessenkool <segher@kernel.crashing.org>
Fri, 31 Aug 2018 08:52:13 +0000 (10:52 +0200)
committerSegher Boessenkool <segher@gcc.gnu.org>
Fri, 31 Aug 2018 08:52:13 +0000 (10:52 +0200)
TARGET_FPRND should be on for everything ISA 2.04 and later, and
TARGET_VSX implies ISA 2.06 or later; but it is possible to disable
TARGET_FPRND (separately via -mno-fprnd, but also implicitly)
currently, and then things fall down.  This patch makes things not
fall down.

PR target/86684
PR target/87149
* config/rs6000/rs6000.md (lround<mode>di2): Gate on TARGET_FPRND.

From-SVN: r264011

gcc/ChangeLog
gcc/config/rs6000/rs6000.md

index f1be88b..3d2be97 100644 (file)
@@ -1,3 +1,9 @@
+2018-08-31  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       PR target/86684
+       PR target/87149
+       * config/rs6000/rs6000.md (lround<mode>di2): Gate on TARGET_FPRND.
+
 2018-08-31  Jakub Jelinek  <jakub@redhat.com>
 
        PR middle-end/87138
index 49e2090..c4ef878 100644 (file)
    (set (match_operand:DI 0 "gpc_reg_operand")
        (unspec:DI [(match_dup 2)]
                   UNSPEC_FCTID))]
-  "TARGET_HARD_FLOAT && TARGET_VSX"
+  "TARGET_HARD_FLOAT && TARGET_VSX && TARGET_FPRND"
 {
   operands[2] = gen_reg_rtx (<MODE>mode);
 })