OSDN Git Service

* rs6000.md (anddi3_internal[23]): Prefer rldic? over andis
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 3 Dec 2000 02:41:08 +0000 (02:41 +0000)
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 3 Dec 2000 02:41:08 +0000 (02:41 +0000)
        instruction.
        (cr logic): Really make operands sequential.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37962 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/rs6000/rs6000.md

index 11b01ab..92064a0 100644 (file)
@@ -1,3 +1,9 @@
+2000-12-02  David Edelsohn  <edelsohn@gnu.org>
+
+       * rs6000.md (anddi3_internal[23]): Prefer rldic? over andis
+       instruction.
+       (cr logic): Really make operands sequential.
+
 2000-12-02  Geoffrey Keating  <geoffk@redhat.com>
 
        * c-common.c (combine_strings): When the ISO C standard specifies
index 54ecc5f..aa37d7a 100644 (file)
    andis. %0,%1,%u2")
 
 (define_insn "*anddi3_internal2"
-  [(set (match_operand:CC 0 "cc_reg_operand" "=x,x,x,x,?y,??y,??y,?y")
+  [(set (match_operand:CC 0 "cc_reg_operand" "=x,x,x,x,?y,?y,??y,??y")
        (compare:CC (and:DI (match_operand:DI 1 "gpc_reg_operand" "%r,r,r,r,r,r,r,")
-                           (match_operand:DI 2 "and64_operand" "r,K,J,S,r,K,J,S"))
+                           (match_operand:DI 2 "and64_operand" "r,S,K,J,r,S,K,J"))
                    (const_int 0)))
    (clobber (match_scratch:DI 3 "=r,r,r,r,r,r,r,r"))
-   (clobber (match_scratch:CC 4 "=X,X,X,X,X,x,x,X"))]
+   (clobber (match_scratch:CC 4 "=X,X,X,X,X,X,x,x"))]
   "TARGET_POWERPC64"
   "@
    and. %3,%1,%2
+   rldic%B2. %3,%1,0,%S2
    andi. %3,%1,%b2
    andis. %3,%1,%u2
-   rldic%B2. %3,%1,0,%S2
    #
    #
    #
    #"
-  [(set_attr "type" "compare,compare,compare,delayed_compare,compare,compare,compare,delayed_compare")
+  [(set_attr "type" "compare,delayed_compare,compare,compare,compare,delayed_compare,compare,compare")
    (set_attr "length" "4,4,4,4,8,8,8,8")])
 
 (define_split
   "")
 
 (define_insn "*anddi3_internal3"
-  [(set (match_operand:CC 3 "cc_reg_operand" "=x,x,x,x,?y,??y,??y,?y")
+  [(set (match_operand:CC 3 "cc_reg_operand" "=x,x,x,x,?y,?y,??y,??y")
        (compare:CC (and:DI (match_operand:DI 1 "gpc_reg_operand" "%r,r,r,r,r,r,r,r")
-                           (match_operand:DI 2 "and64_operand" "r,K,J,S,r,K,J,S"))
+                           (match_operand:DI 2 "and64_operand" "r,S,K,J,r,S,K,J"))
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r,r,r,r,r,r,r")
        (and:DI (match_dup 1) (match_dup 2)))
-   (clobber (match_scratch:CC 4 "=X,X,X,X,X,x,x,X"))]
+   (clobber (match_scratch:CC 4 "=X,X,X,X,X,X,x,x"))]
   "TARGET_POWERPC64"
   "@
    and. %0,%1,%2
+   rldic%B2. %0,%1,0,%S2
    andi. %0,%1,%b2
    andis. %0,%1,%u2
-   rldic%B2. %0,%1,0,%S2
    #
    #
    #
    #"
-  [(set_attr "type" "compare,compare,compare,delayed_compare,compare,compare,compare,delayed_compare")
+  [(set_attr "type" "compare,delayed_compare,compare,compare,compare,delayed_compare,compare,compare")
    (set_attr "length" "4,4,4,4,8,8,8,8")])
 
 (define_split
@@ -12566,9 +12566,9 @@ operands[2] = GEN_INT (INTVAL (operands[1]) >> 32);
 
 (define_insn ""
   [(set (match_operand:CCEQ 0 "cc_reg_operand" "=y")
-       (compare:CCEQ (match_operator:SI 
+       (compare:CCEQ (match_operator:SI 1
                                      "branch_positive_comparison_operator"
-                                     [(match_operand 1
+                                     [(match_operand 2
                                                      "cc_reg_operand" "y")
                                       (const_int 0)])
                      (const_int 0)))]