From 5e2a751adc022f8afeffcb22182d79ff6e1d1cc2 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Mon, 1 Mar 1993 07:29:39 -0500 Subject: [PATCH] Add three special-cases of CMP insns against zero. From-SVN: r3573 --- gcc/config/alpha/alpha.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md index 849f4042ad8..a9c25865f95 100644 --- a/gcc/config/alpha/alpha.md +++ b/gcc/config/alpha/alpha.md @@ -1128,6 +1128,33 @@ "cmp%C1 %r2,%3,%0" [(set_attr "type" "icmp")]) +;; There are three important special-case that don't fit the above pattern +;; but which we want to handle here. + +(define_insn "" + [(set (match_operand:DI 0 "register_operand" "=r") + (ne:DI (match_operand:DI 1 "register_operand" "r") + (const_int 0)))] + "" + "cmpult $31,%1,%0" + [(set_attr "type" "icmp")]) + +(define_insn "" + [(set (match_operand:DI 0 "register_operand" "=r") + (gt:DI (match_operand:DI 1 "register_operand" "r") + (const_int 0)))] + "" + "cmplt $31,%1,%0" + [(set_attr "type" "icmp")]) + +(define_insn "" + [(set (match_operand:DI 0 "register_operand" "=r") + (ge:DI (match_operand:DI 1 "register_operand" "r") + (const_int 0)))] + "" + "cmple $31,%1,%0" + [(set_attr "type" "icmp")]) + (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r,r") (if_then_else:DI -- 2.30.2