aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/ia64/ia64.md
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/ia64/ia64.md')
-rw-r--r--gcc/config/ia64/ia64.md10
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"