diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-05-27 07:26:20 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-05-27 07:26:20 -0400 |
commit | 5c72c15e2ec72b8be36d9b8b6cc23468d1594373 (patch) | |
tree | c96ff2b3a9f2887144c1084258b9f5371cbcf165 /gcc | |
parent | 1b0cb6fc469d36d98f81507153e505190a78efab (diff) | |
download | gcc-5c72c15e2ec72b8be36d9b8b6cc23468d1594373.zip gcc-5c72c15e2ec72b8be36d9b8b6cc23468d1594373.tar.gz gcc-5c72c15e2ec72b8be36d9b8b6cc23468d1594373.tar.bz2 |
Add define_split for sign-extended PLUS of an SImode comparison;
change comparison to DImode.
From-SVN: r7360
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/alpha/alpha.md | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md index c7ca0f0..41fbe68 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") |