From: Richard Kenner Date: Fri, 27 May 1994 11:26:20 +0000 (-0400) Subject: Add define_split for sign-extended PLUS of an SImode comparison; X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5c72c15e2ec72b8be36d9b8b6cc23468d1594373;p=gcc.git Add define_split for sign-extended PLUS of an SImode comparison; change comparison to DImode. From-SVN: r7360 --- diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md index c7ca0f01bae..41fbe683a0b 100644 --- a/gcc/config/alpha/alpha.md +++ b/gcc/config/alpha/alpha.md @@ -165,6 +165,24 @@ operands[5] = GEN_INT (mult); }") +(define_split + [(set (match_operand:DI 0 "register_operand" "") + (sign_extend:DI + (plus:SI (match_operator:SI 1 "comparison_operator" + [(match_operand 2 "" "") + (match_operand 3 "" "")]) + (match_operand:SI 4 "add_operand" "")))) + (clobber (match_operand:DI 5 "register_operand" ""))] + "" + [(set (match_dup 5) (match_dup 6)) + (set (match_dup 0) (sign_extend:DI (plus:SI (match_dup 7) (match_dup 4))))] + " +{ + operands[6] = gen_rtx (GET_CODE (operands[1]), DImode, + operands[2], operands[3]); + operands[7] = gen_lowpart (SImode, operands[5]); +}") + (define_insn "adddi3" [(set (match_operand:DI 0 "register_operand" "=r,r,r,r") (plus:DI (match_operand:DI 1 "reg_or_0_operand" "%rJ,rJ,rJ,rJ")