From: Richard Kenner Date: Fri, 13 Aug 1993 11:50:22 +0000 (-0400) Subject: (subsi3): Merge alternatives. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3d91674b8798be0787a3e2f356ecadc5308caffd;p=gcc.git (subsi3): Merge alternatives. (comparison patterns): Eliminate generation of "sfi."; no such instruction exists. From-SVN: r5151 --- diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 5de6f206eb6..fd18904152c 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -236,13 +236,11 @@ "sfi %0,%1,-1") (define_insn "" - [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r") - (minus:SI (match_operand:SI 1 "reg_or_short_operand" "r,I") - (match_operand:SI 2 "gpc_reg_operand" "r,r")))] + [(set (match_operand:SI 0 "gpc_reg_operand" "=r") + (minus:SI (match_operand:SI 1 "reg_or_short_operand" "rI") + (match_operand:SI 2 "gpc_reg_operand" "r")))] "" - "@ - sf %0,%2,%1 - sfi %0,%2,%1") + "sf%I1 %0,%2,%1") (define_insn "" [(set (match_operand:CC 0 "cc_reg_operand" "=x") @@ -4188,38 +4186,34 @@ [(set_attr "length" "12")]) (define_insn "" - [(set (match_operand:CC 0 "cc_reg_operand" "=x,x,x,x") + [(set (match_operand:CC 0 "cc_reg_operand" "=x,x") (compare:CC - (plus:SI (ltu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r,r") - (match_operand:SI 2 "reg_or_neg_short_operand" "r,r,P,P")) - (match_operand:SI 3 "reg_or_short_operand" "r,I,r,I")) + (plus:SI (ltu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") + (match_operand:SI 2 "reg_or_neg_short_operand" "r,P")) + (match_operand:SI 3 "gpc_reg_operand" "r,r")) (const_int 0))) - (clobber (match_scratch:SI 4 "=&r,r,&r,r"))] + (clobber (match_scratch:SI 4 "=&r,&r"))] "" "@ - sf %4,%2,%1\;sfe %4,%4,%4\;sf%I3. %4,%4,%3 - sf %4,%2,%1\;sfe %4,%4,%4\;sf%I3. %4,%4,%3 - ai %4,%1,%n2\;sfe %4,%4,%4\;sf%I3. %4,%4,%3 - ai %4,%1,%n2\;sfe %4,%4,%4\;sf%I3. %4,%4,%3" + sf %4,%2,%1\;sfe %4,%4,%4\;sf. %4,%4,%3 + ai %4,%1,%n2\;sfe %4,%4,%4\;sf. %4,%4,%3" [(set_attr "type" "compare") (set_attr "length" "12")]) (define_insn "" - [(set (match_operand:CC 5 "cc_reg_operand" "=x,x,x,x") + [(set (match_operand:CC 5 "cc_reg_operand" "=x,x") (compare:CC - (plus:SI (ltu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r,r,r") - (match_operand:SI 2 "reg_or_neg_short_operand" "r,r,P,P")) - (match_operand:SI 3 "reg_or_short_operand" "r,I,r,I")) + (plus:SI (ltu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") + (match_operand:SI 2 "reg_or_neg_short_operand" "r,P")) + (match_operand:SI 3 "gpc_reg_operand" "r,r")) (const_int 0))) - (set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r") + (set (match_operand:SI 0 "gpc_reg_operand" "=r,r") (plus:SI (ltu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) - (clobber (match_scratch:SI 4 "=&r,r,&r,r"))] + (clobber (match_scratch:SI 4 "=&r,&r"))] "" "@ - sf %4,%2,%1\;sfe %4,%4,%4\;sf%I3. %0,%4,%3 - sf %4,%2,%1\;sfe %4,%4,%4\;sf%I3. %0,%4,%3 - ai %4,%1,%n2\;sfe %4,%4,%4\;sf%I3. %0,%4,%3 - ai %4,%1,%n2\;sfe %4,%4,%4\;sf%I3. %0,%4,%3" + sf %4,%2,%1\;sfe %4,%4,%4\;sf. %0,%4,%3 + ai %4,%1,%n2\;sfe %4,%4,%4\;sf. %0,%4,%3" [(set_attr "type" "compare") (set_attr "length" "12")]) @@ -4644,38 +4638,36 @@ [(set_attr "length" "8,12,12")]) (define_insn "" - [(set (match_operand:CC 0 "cc_reg_operand" "=x,x,x") + [(set (match_operand:CC 0 "cc_reg_operand" "=x,x") (compare:CC - (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")) + (plus:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") + (match_operand:SI 2 "reg_or_short_operand" "I,r")) + (match_operand:SI 3 "gpc_reg_operand" "r,r")) (const_int 0))) - (clobber (match_scratch:SI 4 "=&r,&r,&r"))] + (clobber (match_scratch:SI 4 "=&r,&r"))] "" "@ 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" + sf%I2 %4,%1,%2\;sfe %4,%4,%4\;sf. %0,%4,%3" [(set_attr "type" "compare") - (set_attr "length" "8,12,12")]) + (set_attr "length" "8,12")]) (define_insn "" - [(set (match_operand:CC 5 "cc_reg_operand" "=x,x,x") + [(set (match_operand:CC 5 "cc_reg_operand" "=x,x") (compare:CC - (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")) + (plus:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") + (match_operand:SI 2 "reg_or_short_operand" "I,r")) + (match_operand:SI 3 "gpc_reg_operand" "r,r")) (const_int 0))) - (set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r") + (set (match_operand:SI 0 "gpc_reg_operand" "=r,r") (plus:SI (gtu:SI (match_dup 1) (match_dup 2)) (match_dup 3))) - (clobber (match_scratch:SI 4 "=&r,&r,&r"))] + (clobber (match_scratch:SI 4 "=&r,&r"))] "" "@ 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" + sf%I2 %4,%1,%2\;sfe %4,%4,%4\;sf. %0,%4,%3" [(set_attr "type" "compare") - (set_attr "length" "8,12,12")]) + (set_attr "length" "8,12")]) (define_insn "" [(set (match_operand:SI 0 "gpc_reg_operand" "=r")