===================================================================
@@ -86,16 +86,9 @@
;; %[abcd][hl].
(define_predicate "ext_QIreg_operand"
(and (match_code "reg")
- (match_test "TARGET_64BIT
- && GET_MODE (op) == QImode
- && REGNO (op) > BX_REG")))
+ (match_test "TARGET_64BIT")
+ (match_test "REGNO (op) > BX_REG")))
-;; Similarly, but don't check mode of the operand.
-(define_predicate "ext_QIreg_nomode_operand"
- (and (match_code "reg")
- (match_test "TARGET_64BIT
- && REGNO (op) > BX_REG")))
-
;; Return true if op is not xmm0 register.
(define_predicate "reg_not_xmm0_operand"
(match_operand 0 "register_operand")
@@ -391,7 +384,8 @@
;; Return true if OP is nonmemory operand acceptable by movabs patterns.
(define_predicate "x86_64_movabs_operand"
- (if_then_else (match_test "!TARGET_64BIT || !flag_pic")
+ (if_then_else (not (and (match_test "TARGET_64BIT")
+ (match_test "flag_pic")))
(match_operand 0 "nonmemory_operand")
(ior (match_operand 0 "register_operand")
(and (match_operand 0 "const_double_operand")
@@ -483,7 +477,7 @@
;; scripts means that we can't be sure of that in general, so assume
;; that @GOTOFF is never valid on VxWorks.
(define_predicate "gotoff_operand"
- (and (match_test "!TARGET_VXWORKS_RTP")
+ (and (not (match_test "TARGET_VXWORKS_RTP"))
(match_operand 0 "local_symbolic_operand")))
;; Test for various thread-local symbols.
@@ -611,7 +605,8 @@
;; Match 0 or 1.
(define_predicate "const_0_to_1_operand"
(and (match_code "const_int")
- (match_test "op == const0_rtx || op == const1_rtx")))
+ (ior (match_test "op == const0_rtx")
+ (match_test "op == const1_rtx"))))
;; Match 0 to 3.
(define_predicate "const_0_to_3_operand"
@@ -696,7 +691,8 @@
;; Match exactly one bit in 2-bit mask.
(define_predicate "const_pow2_1_to_2_operand"
(and (match_code "const_int")
- (match_test "INTVAL (op) == 1 || INTVAL (op) == 2")))
+ (ior (match_test "op == const1_rtx")
+ (match_test "op == const2_rtx"))))
;; Match exactly one bit in 4-bit mask.
(define_predicate "const_pow2_1_to_8_operand"
@@ -737,7 +733,8 @@
(define_predicate "reg_or_pm1_operand"
(ior (match_operand 0 "register_operand")
(and (match_code "const_int")
- (match_test "op == const1_rtx || op == constm1_rtx"))))
+ (ior (match_test "op == const1_rtx")
+ (match_test "op == constm1_rtx")))))
;; True if OP is acceptable as operand of DImode shift expander.
(define_predicate "shiftdi_operand"
@@ -984,8 +981,8 @@
(define_predicate "sse_comparison_operator"
(ior (match_code "eq,ne,lt,le,unordered,unge,ungt,ordered")
- (and (match_code "ge,gt,uneq,unle,unlt,ltgt")
- (match_test "TARGET_AVX"))))
+ (and (match_test "TARGET_AVX")
+ (match_code "ge,gt,uneq,unle,unlt,ltgt"))))
(define_predicate "ix86_comparison_int_operator"
(match_code "ne,eq,ge,gt,le,lt"))
===================================================================
@@ -7932,7 +7932,7 @@
(if_then_else
(and (eq_attr "type" "imovx")
(and (ne (symbol_ref "INTVAL (operands[2]) == 0xff") (const_int 0))
- (match_operand 1 "ext_QIreg_nomode_operand" "")))
+ (match_operand 1 "ext_QIreg_operand" "")))
(const_string "1")
(const_string "*")))
(set_attr "mode" "SI,DI,DI,SI")])
@@ -7976,7 +7976,7 @@
(if_then_else
(and (eq_attr "type" "imovx")
(and (ne (symbol_ref "INTVAL (operands[2]) == 0xff") (const_int 0))
- (match_operand 1 "ext_QIreg_nomode_operand" "")))
+ (match_operand 1 "ext_QIreg_operand" "")))
(const_string "1")
(const_string "*")))
(set_attr "length_immediate" "*,*,0")
@@ -8019,7 +8019,7 @@
(set (attr "prefix_rex")
(if_then_else
(and (eq_attr "type" "imovx")
- (match_operand 1 "ext_QIreg_nomode_operand" ""))
+ (match_operand 1 "ext_QIreg_operand" ""))
(const_string "1")
(const_string "*")))
(set_attr "mode" "HI,HI,SI")])