* Jeff for Tege.
authorJeff Law <law@gcc.gnu.org>
Tue, 30 Mar 1993 22:02:05 +0000 (15:02 -0700)
committerJeff Law <law@gcc.gnu.org>
Tue, 30 Mar 1993 22:02:05 +0000 (15:02 -0700)
* pa.md (sminsi3, smaxsi3): Fix bug in last change.

From-SVN: r3932

gcc/config/pa/pa.md

index 1c4b9b5ce7f9b48840b715352f35818c817d1fd3..4a7d78b01e5035f93f424d1c158eb44a765087b2 100644 (file)
   [(set_attr "type" "binary,binary")
    (set_attr "length" "2,3")])
 
-;; Signed/Unsigned minimum and maximum patterns.
+; Patterns for max and min.  (There is no need for an earlyclobber in the
+; last alternative since the middle alternative will match if op0 == op1.)
+
 (define_insn "sminsi3"
   [(set (match_operand:SI 0 "register_operand" "=r,r,r")
-       (smin:SI (match_operand:SI 1 "register_operand" "%r,0,0")
-                (match_operand:SI 2 "arith11_operand" "M,r,I")))]
+       (smin:SI (match_operand:SI 1 "register_operand" "%0,0,r")
+                (match_operand:SI 2 "arith11_operand" "r,I,M")))]
   ""
   "@
-  comclr,> %1,%2,%0\;copy %1,%0
   comclr,> %2,%0,0\;copy %2,%0
-  comiclr,> %2,%0,0\;ldi %2,%0"
+  comiclr,> %2,%0,0\;ldi %2,%0
+  comclr,> %1,%2,%0\;copy %1,%0"
 [(set_attr "type" "multi,multi,multi")
  (set_attr "length" "2,2,2")])
 
 
 (define_insn "smaxsi3"
   [(set (match_operand:SI 0 "register_operand" "=r,r,r")
-       (smax:SI (match_operand:SI 1 "register_operand" "%r,0,0")
-                (match_operand:SI 2 "arith11_operand" "M,r,I")))]
+       (smax:SI (match_operand:SI 1 "register_operand" "%0,0,r")
+                (match_operand:SI 2 "arith11_operand" "r,I,M")))]
   ""
   "@
-  comclr,< %1,%2,%0\;copy %1,%0
   comclr,< %2,%0,0\;copy %2,%0
-  comiclr,< %2,%0,0\;ldi %2,%0"
+  comiclr,< %2,%0,0\;ldi %2,%0
+  comclr,< %1,%2,%0\;copy %1,%0"
 [(set_attr "type" "multi,multi,multi")
  (set_attr "length" "2,2,2")])