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/frv/frv.md (*abssi2_internal, *minmax_si_signed,
*minmax_si_unsigned, *minmax_sf, *minmax_df): Fix split condition.
---
gcc/config/frv/frv.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
@@ -4676,7 +4676,7 @@ (define_insn_and_split "*abssi2_internal"
(clobber (match_operand:CC_CCR 3 "icr_operand" "=v,v"))]
"TARGET_COND_MOVE"
"#"
- "reload_completed"
+ "&& reload_completed"
[(match_dup 4)]
"operands[4] = frv_split_abs (operands);"
[(set_attr "length" "12,16")
@@ -4717,7 +4717,7 @@ (define_insn_and_split "*minmax_si_signed"
(clobber (match_operand:CC_CCR 5 "icr_operand" "=v,v,v"))]
"TARGET_COND_MOVE"
"#"
- "reload_completed"
+ "&& reload_completed"
[(match_dup 6)]
"operands[6] = frv_split_minmax (operands);"
[(set_attr "length" "12,12,16")
@@ -4758,7 +4758,7 @@ (define_insn_and_split "*minmax_si_unsigned"
(clobber (match_operand:CC_CCR 5 "icr_operand" "=v,v,v"))]
"TARGET_COND_MOVE"
"#"
- "reload_completed"
+ "&& reload_completed"
[(match_dup 6)]
"operands[6] = frv_split_minmax (operands);"
[(set_attr "length" "12,12,16")
@@ -4799,7 +4799,7 @@ (define_insn_and_split "*minmax_sf"
(clobber (match_operand:CC_CCR 5 "fcr_operand" "=w,w,w"))]
"TARGET_COND_MOVE && TARGET_HARD_FLOAT"
"#"
- "reload_completed"
+ "&& reload_completed"
[(match_dup 6)]
"operands[6] = frv_split_minmax (operands);"
[(set_attr "length" "12,12,16")
@@ -4840,7 +4840,7 @@ (define_insn_and_split "*minmax_df"
(clobber (match_operand:CC_CCR 5 "fcr_operand" "=w,w,w"))]
"TARGET_COND_MOVE && TARGET_HARD_FLOAT && TARGET_DOUBLE"
"#"
- "reload_completed"
+ "&& reload_completed"
[(match_dup 6)]
"operands[6] = frv_split_minmax (operands);"
[(set_attr "length" "12,12,16")