Hello! 2016-05-06 Uros Bizjak <ubiz...@gmail.com>
* config/i386/i386.md (int cmove peephole2s): Use general_reg_operand instead of register_and_not_any_fp_reg_operand as operand 0 predicate. * config/i386/predicates.md (register_and_not_any_fp_reg_operand): Remove unused predicate. (register_and_not_fp_reg_operand): Ditto. Patch was bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. Committed to mainline SVN. Uros.
Index: i386.md =================================================================== --- i386.md (revision 235936) +++ i386.md (working copy) @@ -17211,7 +17211,7 @@ (set_attr "mode" "DF,DF,DI,DI,DI,DI")]) (define_split - [(set (match_operand:DF 0 "register_and_not_any_fp_reg_operand") + [(set (match_operand:DF 0 "general_reg_operand") (if_then_else:DF (match_operator 1 "fcmov_comparison_operator" [(reg FLAGS_REG) (const_int 0)]) (match_operand:DF 2 "nonimmediate_operand") @@ -17267,7 +17267,7 @@ ;; Don't do conditional moves with memory inputs (define_peephole2 [(match_scratch:MODEF 4 "r") - (set (match_operand:MODEF 0 "register_and_not_any_fp_reg_operand") + (set (match_operand:MODEF 0 "general_reg_operand") (if_then_else:MODEF (match_operator 1 "fcmov_comparison_operator" [(reg FLAGS_REG) (const_int 0)]) (match_operand:MODEF 2 "nonimmediate_operand") Index: predicates.md =================================================================== --- predicates.md (revision 235932) +++ predicates.md (working copy) @@ -27,11 +27,6 @@ (and (match_code "reg") (match_test "STACK_REGNO_P (REGNO (op))"))) -;; Return true if OP is a non-fp register_operand. -(define_predicate "register_and_not_any_fp_reg_operand" - (and (match_code "reg") - (not (match_test "ANY_FP_REGNO_P (REGNO (op))")))) - ;; True if the operand is a GENERAL class register. (define_predicate "general_reg_operand" (and (match_code "reg") @@ -43,11 +38,6 @@ (match_test "GENERAL_REGNO_P (REGNO (op))") (match_operand 0 "nonimmediate_operand"))) -;; Return true if OP is a register operand other than an i387 fp register. -(define_predicate "register_and_not_fp_reg_operand" - (and (match_code "reg") - (not (match_test "STACK_REGNO_P (REGNO (op))")))) - ;; True if the operand is an MMX register. (define_predicate "mmx_reg_operand" (and (match_code "reg")