This patch is to fix some non-robust split conditions in some
define_insn_and_splits, to make each of them applied on top of
the corresponding condition for define_insn part, otherwise the
splitting could perform unexpectedly.

gcc/ChangeLog:

        * config/v850/v850.md (cbranchsf4, cbranchdf4, *movsicc_normal,
        *movsicc_reversed): Fix split condition.
---
 gcc/config/v850/v850.md | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gcc/config/v850/v850.md b/gcc/config/v850/v850.md
index 872f17913de..d4a953c6bdb 100644
--- a/gcc/config/v850/v850.md
+++ b/gcc/config/v850/v850.md
@@ -374,7 +374,7 @@ (define_insn_and_split "cbranchsf4"
                      (pc)))]
   "TARGET_USE_FPU"
   "#"
-  "reload_completed"
+  "&& reload_completed"
   [(set (match_dup 4) (match_dup 5))
    (set (pc)
         (if_then_else (match_dup 6)
@@ -428,7 +428,7 @@ (define_insn_and_split "cbranchdf4"
                      (pc)))]
   "TARGET_USE_FPU"
   "#"
-  "reload_completed"
+  "&& reload_completed"
 ;; How to get the mode here?
   [(set (match_dup 4) (match_dup 5))
    (set (pc)
@@ -1210,7 +1210,7 @@ (define_insn_and_split "*movsicc_normal"
         (match_operand:SI 3 "reg_or_0_operand" "rI")))]
   "(TARGET_V850E_UP)"
   "#"
-  "reload_completed"
+  "&& reload_completed"
   [(set (reg:CC CC_REGNUM)
        (compare:CC (match_dup 4) (match_dup 5)))
    (set (match_dup 0)
@@ -1229,7 +1229,7 @@ (define_insn_and_split "*movsicc_reversed"
         (match_operand:SI 3 "reg_or_0_operand" "rJ")))]
   "(TARGET_V850E_UP)"
   "#"
-  "reload_completed"
+  "&& reload_completed"
   [(set (reg:CC CC_REGNUM)
        (compare:CC (match_dup 4) (match_dup 5)))
    (set (match_dup 0)
-- 
2.27.0

Reply via email to