diff options
Diffstat (limited to 'gcc/config/ia64/ia64.md')
-rw-r--r-- | gcc/config/ia64/ia64.md | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/config/ia64/ia64.md b/gcc/config/ia64/ia64.md index 022161b..cf6fdd2 100644 --- a/gcc/config/ia64/ia64.md +++ b/gcc/config/ia64/ia64.md @@ -4200,13 +4200,16 @@ "cmp4.%C1 %0, %I0 = %3, %2" [(set_attr "type" "A")]) +;; We use %r3 because it is possible for us to match a 0, and two of the +;; unsigned comparisons don't accept immediate operands of zero. + (define_insn "*cmpsi_adjusted" [(set (match_operand:BI 0 "register_operand" "=c") (match_operator:BI 1 "adjusted_comparison_operator" [(match_operand:SI 2 "gr_register_operand" "r") (match_operand:SI 3 "gr_reg_or_8bit_adjusted_operand" "rL")]))] "" - "cmp4.%C1 %0, %I0 = %3, %2" + "cmp4.%C1 %0, %I0 = %r3, %2" [(set_attr "type" "A")]) (define_insn "*cmpdi_normal" @@ -4218,13 +4221,16 @@ "cmp.%C1 %0, %I0 = %3, %r2" [(set_attr "type" "A")]) +;; We use %r3 because it is possible for us to match a 0, and two of the +;; unsigned comparisons don't accept immediate operands of zero. + (define_insn "*cmpdi_adjusted" [(set (match_operand:BI 0 "register_operand" "=c") (match_operator:BI 1 "adjusted_comparison_operator" [(match_operand:DI 2 "gr_register_operand" "r") (match_operand:DI 3 "gr_reg_or_8bit_adjusted_operand" "rL")]))] "" - "cmp.%C1 %0, %I0 = %3, %2" + "cmp.%C1 %0, %I0 = %r3, %2" [(set_attr "type" "A")]) (define_insn "*cmpsf_internal" |