Comments
Patch
===================================================================
@@ -684,13 +684,6 @@
[(set_attr "length" "128")
(set_attr "type" "multi")])
-;; All integer comparison codes.
-(define_code_iterator int_cond [ne eq ge gt le lt geu gtu leu ltu])
-
-;; All floating-point comparison codes.
-(define_code_iterator fp_cond [unordered ordered
- uneq unge ungt unle unlt ltgt])
-
(define_code_iterator plusminus [plus minus])
(define_code_iterator sat_plusminus [ss_plus us_plus ss_minus us_minus])
@@ -941,7 +934,7 @@
(compare:CC (match_operand:SDWIM 1 "nonimmediate_operand" "")
(match_operand:SDWIM 2 "<general_operand>" "")))
(set (pc) (if_then_else
- (match_operator 0 "comparison_operator"
+ (match_operator 0 "ordered_comparison_operator"
[(reg:CC FLAGS_REG) (const_int 0)])
(label_ref (match_operand 3 "" ""))
(pc)))]
@@ -960,7 +953,7 @@
(compare:CC (match_operand:SWIM 2 "nonimmediate_operand" "")
(match_operand:SWIM 3 "<general_operand>" "")))
(set (match_operand:QI 0 "register_operand" "")
- (match_operator 1 "comparison_operator"
+ (match_operator 1 "ordered_comparison_operator"
[(reg:CC FLAGS_REG) (const_int 0)]))]
""
{
@@ -16028,7 +16021,7 @@
(define_expand "mov<mode>cc"
[(set (match_operand:SWIM 0 "register_operand" "")
- (if_then_else:SWIM (match_operand 1 "comparison_operator" "")
+ (if_then_else:SWIM (match_operand 1 "ordered_comparison_operator" "")
(match_operand:SWIM 2 "general_operand" "")
(match_operand:SWIM 3 "general_operand" "")))]
""
Hello! These code iterators are unused. Also, the patch changes "comparison_operator" to "ordered_comparison_operator" for integer-only patterns. 2010-07-29 Uros Bizjak <ubizjak@gmail.com> * config/i386/i386.md (int_cond): Remove code iterator. (fp_cond): Ditto. (cbranch<mode>4): Use ordered_comparison_operator predicate for operator0. (cstore<mode>4): Ditto for operator1. (mov<SWIM:mode>cc): Ditto. Bootstrapped and regression tested on x86_64-pc-linux-gnu {,-m32} and committed to mainline SVN. Uros.