diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1993-01-19 18:50:54 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1993-01-19 18:50:54 -0500 |
commit | 0075180522d04f95a970a78f26b52a5cef36c24b (patch) | |
tree | 558ac1756b62ccd5760151193b73d35c4d986920 /gcc | |
parent | cfcf04a6ba2d59801200aee8a17e9c6c881fe804 (diff) | |
download | gcc-0075180522d04f95a970a78f26b52a5cef36c24b.zip gcc-0075180522d04f95a970a78f26b52a5cef36c24b.tar.gz gcc-0075180522d04f95a970a78f26b52a5cef36c24b.tar.bz2 |
(plus of gtu patterns): Add case to handle immediates.
From-SVN: r3285
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 15a2c51..1e402f6 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -4442,38 +4442,47 @@ [(set_attr "type" "compare")]) (define_insn "" - [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r") - (plus:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") - (match_operand:SI 2 "reg_or_short_operand" "rI,rI")) - (match_operand:SI 3 "reg_or_short_operand" "r,I"))) - (clobber (match_scratch:SI 4 "=&r,&r"))] + [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r") + (plus:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r") + (match_operand:SI 2 "reg_or_short_operand" "I,r,rI")) + (match_operand:SI 3 "reg_or_short_operand" "r,r,I"))) + (clobber (match_scratch:SI 4 "=&r,&r,&r"))] "" - "sf%I2 %4,%1,%2\;sfe %4,%4,%4\;sf%I3 %0,%4,%3") + "@ + ai %4,%1,%k2\;aze %0,%3 + sf%I2 %4,%1,%2\;sfe %4,%4,%4\;sf%I3 %0,%4,%3 + sf%I2 %4,%1,%2\;sfe %4,%4,%4\;sf%I3 %0,%4,%3") (define_insn "" - [(set (match_operand:CC 0 "cc_reg_operand" "=x,x") + [(set (match_operand:CC 0 "cc_reg_operand" "=x,x,x") (compare:CC - (plus:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") - (match_operand:SI 2 "reg_or_short_operand" "rI,rI")) - (match_operand:SI 3 "reg_or_short_operand" "r,I")) + (plus:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r") + (match_operand:SI 2 "reg_or_short_operand" "I,r,rI")) + (match_operand:SI 3 "reg_or_short_operand" "r,r,I")) (const_int 0))) - (clobber (match_scratch:SI 4 "=&r,&r"))] + (clobber (match_scratch:SI 4 "=&r,&r,&r"))] "" - "sf%I2 %4,%1,%2\;sfe %4,%4,%4\;sf%I3. %4,%4,%3" + "@ + ai %4,%1,%k2\;aze. %0,%3 + sf%I2 %4,%1,%2\;sfe %4,%4,%4\;sf%I3. %0,%4,%3 + sf%I2 %4,%1,%2\;sfe %4,%4,%4\;sf%I3. %0,%4,%3" [(set_attr "type" "compare")]) (define_insn "" - [(set (match_operand:CC 5 "cc_reg_operand" "=x,x") + [(set (match_operand:CC 5 "cc_reg_operand" "=x,x,x") (compare:CC - (plus:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") - (match_operand:SI 2 "reg_or_short_operand" "rI,rI")) - (match_operand:SI 3 "reg_or_short_operand" "r,I")) + (plus:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r") + (match_operand:SI 2 "reg_or_short_operand" "I,r,rI")) + (match_operand:SI 3 "reg_or_short_operand" "r,r,I")) (const_int 0))) - (set (match_operand:SI 0 "gpc_reg_operand" "=r,r") + (set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r") (plus:SI (gtu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) - (clobber (match_scratch:SI 4 "=&r,&r"))] + (clobber (match_scratch:SI 4 "=&r,&r,&r"))] "" - "sf%I2 %4,%1,%2\;sfe %4,%4,%4\;sf%I3. %0,%4,%3" + "@ + ai %4,%1,%k2\;aze. %0,%3 + sf%I2 %4,%1,%2\;sfe %4,%4,%4\;sf%I3. %0,%4,%3 + sf%I2 %4,%1,%2\;sfe %4,%4,%4\;sf%I3. %0,%4,%3" [(set_attr "type" "compare")]) (define_insn "" |