Commit cce4322b by Richard Earnshaw

(matcher for SFmode inequality comparison): Use cmfe, not cfm.

(matchers for {store-flag, not-store-flag, neg-store-flag}): Output
if-false instruction first before if-true instruction.
(matcher for (AND store-flag x)): Only match if reversible_cc_register.
(matcher for (IF-THEN-ELSE reg (NOT reg))): Likewise.

From-SVN: r7741
parent 31e6408a
...@@ -2792,8 +2792,8 @@ ...@@ -2792,8 +2792,8 @@
(match_operand:SF 1 "fpu_add_operand" "fG,H")))] (match_operand:SF 1 "fpu_add_operand" "fG,H")))]
"" ""
"@ "@
cmf%?\\t%0, %1 cmf%?e\\t%0, %1
cnf%?\\t%0, #%N1" cnf%?e\\t%0, #%N1"
[(set_attr "conds" "set") [(set_attr "conds" "set")
(set_attr "type" "f_2_r")]) (set_attr "type" "f_2_r")])
...@@ -3146,7 +3146,7 @@ ...@@ -3146,7 +3146,7 @@
[(set (match_operand:SI 0 "s_register_operand" "=r") [(set (match_operand:SI 0 "s_register_operand" "=r")
(match_operator:SI 1 "comparison_operator" [(reg 24) (const_int 0)]))] (match_operator:SI 1 "comparison_operator" [(reg 24) (const_int 0)]))]
"" ""
"mov%d1\\t%0, #1\;mov%D1\\t%0, #0" "mov%D1\\t%0, #0\;mov%d1\\t%0, #1"
[(set_attr "conds" "use") [(set_attr "conds" "use")
(set_attr "length" "8")]) (set_attr "length" "8")])
...@@ -3155,7 +3155,7 @@ ...@@ -3155,7 +3155,7 @@
(neg:SI (match_operator:SI 1 "comparison_operator" (neg:SI (match_operator:SI 1 "comparison_operator"
[(reg 24) (const_int 0)])))] [(reg 24) (const_int 0)])))]
"" ""
"mvn%d1\\t%0, #0\;mov%D1\\t%0, #0" "mov%D1\\t%0, #0\;mvn%d1\\t%0, #0"
[(set_attr "conds" "use") [(set_attr "conds" "use")
(set_attr "length" "8")]) (set_attr "length" "8")])
...@@ -3164,7 +3164,7 @@ ...@@ -3164,7 +3164,7 @@
(not:SI (match_operator:SI 1 "comparison_operator" (not:SI (match_operator:SI 1 "comparison_operator"
[(reg 24) (const_int 0)])))] [(reg 24) (const_int 0)])))]
"" ""
"mvn%d1\\t%0, #1\;mov%D1\\t%0, #0" "mov%D1\\t%0, #0\;mvn%d1\\t%0, #1"
[(set_attr "conds" "use") [(set_attr "conds" "use")
(set_attr "length" "8")]) (set_attr "length" "8")])
...@@ -3634,7 +3634,7 @@ ...@@ -3634,7 +3634,7 @@
(define_insn "" (define_insn ""
[(set (match_operand:SI 0 "s_register_operand" "=r") [(set (match_operand:SI 0 "s_register_operand" "=r")
(and:SI (match_operator 1 "comparison_operator" (and:SI (match_operator 1 "comparison_operator"
[(reg 24) (const_int 0)]) [(match_operand 3 "reversible_cc_register" "") (const_int 0)])
(match_operand:SI 2 "s_register_operand" "r")))] (match_operand:SI 2 "s_register_operand" "r")))]
"" ""
"mov%D1\\t%0, #0\;and%d1\\t%0, %2, #1" "mov%D1\\t%0, #0\;and%d1\\t%0, %2, #1"
...@@ -3851,10 +3851,10 @@ ...@@ -3851,10 +3851,10 @@
"* "*
if (GET_CODE (operands[3]) == NE) if (GET_CODE (operands[3]) == NE)
{ {
if (which_alternative != 0)
output_asm_insn (\"mov%d4\\t%0, %1\", operands);
if (which_alternative != 1) if (which_alternative != 1)
output_asm_insn (\"mov%D4\\t%0, %2\", operands); output_asm_insn (\"mov%D4\\t%0, %2\", operands);
if (which_alternative != 0)
output_asm_insn (\"mov%d4\\t%0, %1\", operands);
return \"\"; return \"\";
} }
if (which_alternative != 0) if (which_alternative != 0)
...@@ -5401,7 +5401,8 @@ ...@@ -5401,7 +5401,8 @@
(define_insn "" (define_insn ""
[(set (match_operand:SI 0 "s_register_operand" "=r,r") [(set (match_operand:SI 0 "s_register_operand" "=r,r")
(if_then_else:SI (match_operator 4 "comparison_operator" (if_then_else:SI (match_operator 4 "comparison_operator"
[(match_operand 3 "cc_register" "") (const_int 0)]) [(match_operand 3 "reversible_cc_register" "")
(const_int 0)])
(match_operand:SI 1 "arm_rhs_operand" "0,?rI") (match_operand:SI 1 "arm_rhs_operand" "0,?rI")
(not:SI (not:SI
(match_operand:SI 2 "s_register_operand" "r,r"))))] (match_operand:SI 2 "s_register_operand" "r,r"))))]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment