There is no need to check the mode in flags_reg_operand predicate. The mode in flags setting instructions is checked with ix86_match_ccmode.
The patch avoids "warning: operand X missing mode?" warnings with VOIDmode flags_reg_operand predicate. gcc/ChangeLog: * config/i386/predicates.md ("flags_reg_operand"): Make predicate special to avoid automatic mode checks. Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. Uros.
diff --git a/gcc/config/i386/predicates.md b/gcc/config/i386/predicates.md index a63b8cd7be5..b5a86257c9e 100644 --- a/gcc/config/i386/predicates.md +++ b/gcc/config/i386/predicates.md @@ -88,7 +88,7 @@ (define_predicate "ax_reg_operand" (match_test "REGNO (op) == AX_REG"))) ;; Return true if op is the flags register. -(define_predicate "flags_reg_operand" +(define_special_predicate "flags_reg_operand" (and (match_code "reg") (match_test "REGNO (op) == FLAGS_REG")))