]> gcc.gnu.org Git - gcc.git/commitdiff
Separate TARGET_POWERPC64 patterns for TARGET_64BIT or TARGET_32BIT.
authorFariborz Jahanian <fjahanian@gcc.gnu.org>
Sat, 18 Oct 2003 20:02:24 +0000 (20:02 +0000)
committerFariborz Jahanian <fjahanian@gcc.gnu.org>
Sat, 18 Oct 2003 20:02:24 +0000 (20:02 +0000)
Approved by David Edelsohn.

From-SVN: r72650

gcc/config/rs6000/rs6000.md

index 8e7d255f83422f1f0edfcf8fedf9cb687281a84c..73a878717337814925c3ce7603c29c0167608ae2 100644 (file)
        (compare:CC (zero_extend:DI (match_operand:QI 1 "gpc_reg_operand" "r,r"))
                    (const_int 0)))
    (clobber (match_scratch:DI 2 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    rldicl. %2,%1,0,56
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (zero_extend:DI (match_dup 1)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    rldicl. %0,%1,0,56
    #"
        (compare:CC (sign_extend:DI (match_operand:QI 1 "gpc_reg_operand" "r,r"))
                    (const_int 0)))
    (clobber (match_scratch:DI 2 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    extsb. %2,%1
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (sign_extend:DI (match_dup 1)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    extsb. %0,%1
    #"
        (compare:CC (zero_extend:DI (match_operand:HI 1 "gpc_reg_operand" "r,r"))
                    (const_int 0)))
    (clobber (match_scratch:DI 2 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    rldicl. %2,%1,0,48
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (zero_extend:DI (match_dup 1)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    rldicl. %0,%1,0,48
    #"
        (compare:CC (sign_extend:DI (match_operand:HI 1 "gpc_reg_operand" "r,r"))
                    (const_int 0)))
    (clobber (match_scratch:DI 2 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    extsh. %2,%1
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (sign_extend:DI (match_dup 1)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    extsh. %0,%1
    #"
        (compare:CC (zero_extend:DI (match_operand:SI 1 "gpc_reg_operand" "r,r"))
                    (const_int 0)))
    (clobber (match_scratch:DI 2 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    rldicl. %2,%1,0,32
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (zero_extend:DI (match_dup 1)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    rldicl. %0,%1,0,32
    #"
        (compare:CC (sign_extend:DI (match_operand:SI 1 "gpc_reg_operand" "r,r"))
                    (const_int 0)))
    (clobber (match_scratch:DI 2 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    extsw. %2,%1
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (sign_extend:DI (match_dup 1)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    extsw. %0,%1
    #"
                    (const_int 0)))
    (clobber (match_scratch:SI 3 "=r,r,r,r,r,r,r,r"))
    (clobber (match_scratch:CC 4 "=X,X,X,X,X,x,x,X"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    #
    {andil.|andi.} %3,%1,%b2
        (and:SI (match_dup 1)
                (match_dup 2)))
    (clobber (match_scratch:CC 4 "=X,X,X,X,X,x,x,X"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    #
    {andil.|andi.} %0,%1,%b2
                         (match_operand:SI 3 "const_int_operand" "i"))
                    (const_int 0)))
    (clobber (match_scratch:DI 4 "=r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "*
 {
   int start = INTVAL (operands[3]) & 63;
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r")
        (zero_extract:DI (match_dup 1) (match_dup 2) (match_dup 3)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "*
 {
   int start = INTVAL (operands[3]) & 63;
 (define_expand "floatdisf2"
   [(set (match_operand:SF 0 "gpc_reg_operand" "")
         (float:SF (match_operand:DI 1 "gpc_reg_operand" "")))]
-  "TARGET_POWERPC64 && TARGET_HARD_FLOAT && TARGET_FPRS"
+  "TARGET_64BIT && TARGET_HARD_FLOAT && TARGET_FPRS"
   "
 {
   if (!flag_unsafe_math_optimizations)
                           (pc)))
    (set (match_dup 0) (xor:DI (match_dup 0) (match_dup 2)))
    (set (match_dup 0) (ior:DI (match_dup 0) (const_int 2048)))]
-  "TARGET_POWERPC64 && TARGET_HARD_FLOAT && TARGET_FPRS"
+  "TARGET_64BIT && TARGET_HARD_FLOAT && TARGET_FPRS"
   "
 {
   operands[2] = gen_reg_rtx (DImode);
   [(set (match_operand:DI 0 "gpc_reg_operand" "=&r,&r")
        (ashiftrt:DI (match_operand:DI 1 "gpc_reg_operand" "r,r")
                     (match_operand:SI 2 "const_int_operand" "M,i")))]
-  "TARGET_32BIT && !TARGET_POWER"
+  "TARGET_32BIT && !TARGET_POWERPC64 && !TARGET_POWER"
   "@
    {srai|srawi} %0,%1,31\;{srai|srawi} %L0,%1,%h2
    {sri|srwi} %L0,%L1,%h2\;insrwi %L0,%1,%h2,0\;{srai|srawi} %0,%1,%h2"
   [(set_attr "length" "8,12")])
+
+(define_insn "*ashrdisi3_noppc64"
+  [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
+        (subreg:SI (ashiftrt:DI (match_operand:DI 1 "gpc_reg_operand" "r")    
+                                (const_int 32)) 4))]
+  "TARGET_32BIT && !TARGET_POWERPC64"
+  "*
+{
+  if (REGNO (operands[0]) == REGNO (operands[1]))
+    return \"\";
+  else
+    return \"mr %0,%1\";
+}"
+   [(set_attr "length" "4")])      
+
 \f
 ;; PowerPC64 DImode operations.
 
                             (match_operand:DI 2 "reg_or_short_operand" "r,I,r,I"))
                    (const_int 0)))
    (clobber (match_scratch:DI 3 "=r,r,r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    add. %3,%1,%2
    addic. %3,%1,%2
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r,r,r")
        (plus:DI (match_dup 1) (match_dup 2)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    add. %0,%1,%2
    addic. %0,%1,%2
        (compare:CC (not:DI (match_operand:DI 1 "gpc_reg_operand" "r,r"))
                    (const_int 0)))
    (clobber (match_scratch:DI 2 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    nor. %2,%1,%1
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (not:DI (match_dup 1)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    nor. %0,%1,%1
    #"
                              (match_operand:DI 2 "gpc_reg_operand" "r,r"))
                    (const_int 0)))
    (clobber (match_scratch:DI 3 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    subf. %3,%2,%1
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (minus:DI (match_dup 1) (match_dup 2)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    subf. %0,%2,%1
    #"
        (compare:CC (neg:DI (match_operand:DI 1 "gpc_reg_operand" "r,r"))
                    (const_int 0)))
    (clobber (match_scratch:DI 2 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    neg. %2,%1
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (neg:DI (match_dup 1)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    neg. %0,%1
    #"
                            (match_operand:DI 2 "exact_log2_cint_operand" "N,N"))
                    (const_int 0)))
    (clobber (match_scratch:DI 3 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    sradi %3,%1,%p2\;addze. %3,%3
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (div:DI (match_dup 1) (match_dup 2)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    sradi %0,%1,%p2\;addze. %0,%0
    #"
                               (match_operand:DI 2 "reg_or_cint_operand" "ri,ri"))
                    (const_int 0)))
    (clobber (match_scratch:DI 3 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    rld%I2cl. %3,%1,%H2,0
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (rotate:DI (match_dup 1) (match_dup 2)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    rld%I2cl. %0,%1,%H2,0
    #"
                     (match_operand:DI 3 "mask64_operand" "n,n"))
                    (const_int 0)))
    (clobber (match_scratch:DI 4 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    rld%I2c%B3. %4,%1,%H2,%S3
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (and:DI (rotate:DI (match_dup 1) (match_dup 2)) (match_dup 3)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    rld%I2c%B3. %0,%1,%H2,%S3
    #"
                                 (match_operand:DI 2 "reg_or_cint_operand" "ri,ri")) 0))
                    (const_int 0)))
    (clobber (match_scratch:DI 3 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    rld%I2cl. %3,%1,%H2,56
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (zero_extend:DI (subreg:QI (rotate:DI (match_dup 1) (match_dup 2)) 0)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    rld%I2cl. %0,%1,%H2,56
    #"
                                 (match_operand:DI 2 "reg_or_cint_operand" "ri,ri")) 0))
                    (const_int 0)))
    (clobber (match_scratch:DI 3 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    rld%I2cl. %3,%1,%H2,48
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (zero_extend:DI (subreg:HI (rotate:DI (match_dup 1) (match_dup 2)) 0)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    rld%I2cl. %0,%1,%H2,48
    #"
                                 (match_operand:DI 2 "reg_or_cint_operand" "ri,ri")) 0))
                    (const_int 0)))
    (clobber (match_scratch:DI 3 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    rld%I2cl. %3,%1,%H2,32
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (zero_extend:DI (subreg:SI (rotate:DI (match_dup 1) (match_dup 2)) 0)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    rld%I2cl. %0,%1,%H2,32
    #"
                               (match_operand:SI 2 "reg_or_cint_operand" "ri,ri"))
                    (const_int 0)))
    (clobber (match_scratch:DI 3 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    sld%I2. %3,%1,%H2
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (ashift:DI (match_dup 1) (match_dup 2)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    sld%I2. %0,%1,%H2
    #"
                 (match_operand:DI 3 "const_int_operand" "n,n"))
         (const_int 0)))
    (clobber (match_scratch:DI 4 "=r,r"))]
-  "TARGET_POWERPC64 && includes_rldic_lshift_p (operands[2], operands[3])"
+  "TARGET_64BIT && includes_rldic_lshift_p (operands[2], operands[3])"
   "@
    rldic. %4,%1,%H2,%W3
    #"
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (and:DI (ashift:DI (match_dup 1) (match_dup 2)) (match_dup 3)))]
-  "TARGET_POWERPC64 && includes_rldic_lshift_p (operands[2], operands[3])"
+  "TARGET_64BIT && includes_rldic_lshift_p (operands[2], operands[3])"
   "@
    rldic. %0,%1,%H2,%W3
    #"
                 (match_operand:DI 3 "mask64_operand" "n,n"))
         (const_int 0)))
    (clobber (match_scratch:DI 4 "=r,r"))]
-  "TARGET_POWERPC64 && includes_rldicr_lshift_p (operands[2], operands[3])"
+  "TARGET_64BIT && includes_rldicr_lshift_p (operands[2], operands[3])"
   "@
    rldicr. %4,%1,%H2,%S3
    #"
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (and:DI (ashift:DI (match_dup 1) (match_dup 2)) (match_dup 3)))]
-  "TARGET_POWERPC64 && includes_rldicr_lshift_p (operands[2], operands[3])"
+  "TARGET_64BIT && includes_rldicr_lshift_p (operands[2], operands[3])"
   "@
    rldicr. %0,%1,%H2,%S3
    #"
                                 (match_operand:SI 2 "reg_or_cint_operand" "ri,ri"))
                    (const_int 0)))
    (clobber (match_scratch:DI 3 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT "
   "@
    srd%I2. %3,%1,%H2
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (lshiftrt:DI (match_dup 1) (match_dup 2)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    srd%I2. %0,%1,%H2
    #"
                                 (match_operand:SI 2 "reg_or_cint_operand" "ri,ri"))
                    (const_int 0)))
    (clobber (match_scratch:DI 3 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    srad%I2. %3,%1,%H2
    #"
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (ashiftrt:DI (match_dup 1) (match_dup 2)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    srad%I2. %0,%1,%H2
    #"
                    (const_int 0)))
    (clobber (match_scratch:DI 3 "=r,r,r,r,r,r,r,r,r,r"))
    (clobber (match_scratch:CC 4 "=X,X,X,X,X,X,X,x,x,X"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    and. %3,%1,%2
    rldic%B2. %3,%1,0,%S2
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r,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,x,X"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    and. %0,%1,%2
    rldic%B2. %0,%1,0,%S2
          (match_operand:DI 2 "gpc_reg_operand" "r,r")])
         (const_int 0)))
    (clobber (match_scratch:DI 3 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    %q4. %3,%1,%2
    #"
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (match_dup 4))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    %q4. %0,%1,%2
    #"
          (match_operand:DI 2 "gpc_reg_operand" "r,r")])
         (const_int 0)))
    (clobber (match_scratch:DI 3 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    %q4. %3,%2,%1
    #"
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (match_dup 4))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    %q4. %0,%2,%1
    #"
          (not:DI (match_operand:DI 2 "gpc_reg_operand" "r,r"))])
         (const_int 0)))
    (clobber (match_scratch:DI 3 "=r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    %q4. %3,%1,%2
    #"
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (match_dup 4))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    %q4. %0,%1,%2
    #"
          operands2[0] = operands[0];
          operands2[1] = operands[1];
          operands2[2] = operands[2];
-         operands2[3] = gen_rtx_REG (SImode, RS6000_PIC_OFFSET_TABLE_REGNUM);
-         output_asm_insn (\"{l|lwz} %0,lo16(%2)(%1)\", operands);
-#if TARGET_MACHO
-         if (MACHO_DYNAMIC_NO_PIC_P)
-           output_asm_insn (\"{liu|lis} %L0,ha16(%2+4)\", operands);
+         if (TARGET_POWERPC64 && TARGET_32BIT)
+           /* Note, old assemblers didn't support relocation here. */
+           return \"ld %0,lo16(%2)(%1)\";
          else
-         /* We cannot rely on ha16(low half)==ha16(high half), alas,
-            although in practice it almost always is.  */
-         output_asm_insn (\"{cau|addis} %L0,%3,ha16(%2+4)\", operands2);
+         {
+           operands2[3] = gen_rtx_REG (SImode, RS6000_PIC_OFFSET_TABLE_REGNUM);     
+           output_asm_insn (\"{l|lwz} %0,lo16(%2)(%1)\", operands);
+#if TARGET_MACHO
+           if (MACHO_DYNAMIC_NO_PIC_P)
+             output_asm_insn (\"{liu|lis} %L0,ha16(%2+4)\", operands);
+           else     
+           /* We cannot rely on ha16(low half)==ha16(high half), alas,
+              although in practice it almost always is.  */
+           output_asm_insn (\"{cau|addis} %L0,%3,ha16(%2+4)\", operands2);
 #endif
-         return (\"{l|lwz} %L0,lo16(%2+4)(%L0)\");
+           return (\"{l|lwz} %L0,lo16(%2+4)(%L0)\");
+         }
        }
       default:
        abort();
        (compare:CC (match_operand:DI 1 "gpc_reg_operand" "0,r,r")
                    (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r,r") (match_dup 1))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    cmpdi %2,%0,0
    mr. %0,%1
   [(set (match_operand:TI 0 "reg_or_mem_operand" "=Q,m,????r,????r,????r")
        (match_operand:TI 1 "reg_or_mem_operand" "r,r,r,Q,m"))
    (clobber (match_scratch:SI 2 "=q,q#X,X,X,X"))]
-  "TARGET_POWER && ! TARGET_POWERPC64
+  "TARGET_POWER && ! TARGET_POWERPC64 
    && (gpc_reg_operand (operands[0], TImode) || gpc_reg_operand (operands[1], TImode))"
   "*
 {
        (eq:SI (match_operand:SI 1 "gpc_reg_operand" "%r,r,r,r,r")
               (match_operand:SI 2 "reg_or_cint_operand" "r,O,K,L,I")))
    (clobber (match_scratch:SI 3 "=r,&r,r,r,r"))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    xor %0,%1,%2\;{sfi|subfic} %3,%0,0\;{ae|adde} %0,%3,%0
    {sfi|subfic} %3,%1,0\;{ae|adde} %0,%3,%1
        (eq:DI (match_operand:DI 1 "gpc_reg_operand" "%r,r,r,r,r")
               (match_operand:DI 2 "reg_or_cint_operand" "r,O,K,J,I")))
    (clobber (match_scratch:DI 3 "=r,&r,r,r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    xor %0,%1,%2\;subfic %3,%0,0\;adde %0,%3,%0
    subfic %3,%1,0\;adde %0,%3,%1
    (set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r,r,r,r,r,r,r")
        (eq:SI (match_dup 1) (match_dup 2)))
    (clobber (match_scratch:SI 3 "=r,&r,r,r,r,r,&r,r,r,r"))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    xor %0,%1,%2\;{sfi|subfic} %3,%0,0\;{ae.|adde.} %0,%3,%0
    {sfi|subfic} %3,%1,0\;{ae.|adde.} %0,%3,%1
    (set (match_operand:SI 0 "gpc_reg_operand" "")
        (eq:SI (match_dup 1) (match_dup 2)))
    (clobber (match_scratch:SI 3 ""))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(parallel [(set (match_dup 0)
        (eq:SI (match_dup 1) (match_dup 2)))
    (clobber (match_dup 3))])
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r,r,r,r,r,r,r,r,r")
        (eq:DI (match_dup 1) (match_dup 2)))
    (clobber (match_scratch:DI 3 "=r,&r,r,r,r,r,&r,r,r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    xor %0,%1,%2\;subfic %3,%0,0\;adde. %0,%3,%0
    subfic %3,%1,0\;adde. %0,%3,%1
    (set (match_operand:DI 0 "gpc_reg_operand" "")
        (eq:DI (match_dup 1) (match_dup 2)))
    (clobber (match_scratch:DI 3 ""))]
-  "TARGET_POWERPC64 && reload_completed"
+  "TARGET_64BIT && reload_completed"
   [(parallel [(set (match_dup 0)
        (eq:DI (match_dup 1) (match_dup 2)))
    (clobber (match_dup 3))])
        (plus:SI (eq:SI (match_operand:SI 1 "gpc_reg_operand" "%r,r,r,r,r")
                        (match_operand:SI 2 "reg_or_cint_operand" "r,O,K,L,I"))
                 (match_operand:SI 3 "gpc_reg_operand" "r,r,r,r,r")))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    xor %0,%1,%2\;{sfi|subfic} %0,%0,0\;{aze|addze} %0,%3
    {sfi|subfic} %0,%1,0\;{aze|addze} %0,%3
          (match_operand:SI 3 "gpc_reg_operand" "r,r,r,r,r,r,r,r,r,r"))
         (const_int 0)))
    (clobber (match_scratch:SI 4 "=&r,&r,&r,&r,&r,&r,&r,&r,&r,&r"))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    xor %4,%1,%2\;{sfi|subfic} %4,%4,0\;{aze.|addze.} %4,%3
    {sfi|subfic} %4,%1,0\;{aze.|addze.} %4,%3
          (match_operand:SI 3 "gpc_reg_operand" ""))
         (const_int 0)))
    (clobber (match_scratch:SI 4 ""))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 4)
        (plus:SI (eq:SI (match_dup 1)
                 (match_dup 2))
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r,&r,&r,&r,&r,&r,&r,&r,&r")
        (plus:SI (eq:SI (match_dup 1) (match_dup 2)) (match_dup 3)))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    xor %0,%1,%2\;{sfi|subfic} %0,%0,0\;{aze.|addze.} %0,%3
    {sfi|subfic} %0,%1,0\;{aze.|addze.} %0,%3
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "")
        (plus:SI (eq:SI (match_dup 1) (match_dup 2)) (match_dup 3)))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 0)
        (plus:SI (eq:SI (match_dup 1) (match_dup 2)) (match_dup 3)))
    (set (match_dup 4)
   [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r,r")
        (neg:SI (eq:SI (match_operand:SI 1 "gpc_reg_operand" "%r,r,r,r,r")
                       (match_operand:SI 2 "reg_or_cint_operand" "r,O,K,L,I"))))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    xor %0,%1,%2\;{ai|addic} %0,%0,-1\;{sfe|subfe} %0,%0,%0
    {ai|addic} %0,%1,-1\;{sfe|subfe} %0,%0,%0
        (lshiftrt:SI (neg:SI (abs:SI (match_operand:SI 1 "gpc_reg_operand" "r")))
                     (const_int 31)))
    (clobber (match_scratch:SI 2 "=&r"))]
-  "! TARGET_POWER && ! TARGET_POWERPC64 && !TARGET_ISEL"
+  "! TARGET_POWER && TARGET_32BIT && !TARGET_ISEL"
   "{ai|addic} %2,%1,-1\;{sfe|subfe} %0,%2,%1"
   [(set_attr "length" "8")])
 
        (lshiftrt:DI (neg:DI (abs:DI (match_operand:DI 1 "gpc_reg_operand" "r")))
                     (const_int 63)))
    (clobber (match_scratch:DI 2 "=&r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "addic %2,%1,-1\;subfe %0,%2,%1"
   [(set_attr "length" "8")])
 
                  (const_int 31))
                 (match_operand:SI 2 "gpc_reg_operand" "r")))
    (clobber (match_scratch:SI 3 "=&r"))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "{ai|addic} %3,%1,-1\;{aze|addze} %0,%2"
   [(set_attr "length" "8")])
 
                  (const_int 63))
                 (match_operand:DI 2 "gpc_reg_operand" "r")))
    (clobber (match_scratch:DI 3 "=&r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "addic %3,%1,-1\;addze %0,%2"
   [(set_attr "length" "8")])
 
         (const_int 0)))
    (clobber (match_scratch:SI 3 "=&r,&r"))
    (clobber (match_scratch:SI 4 "=X,&r"))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {ai|addic} %3,%1,-1\;{aze.|addze.} %3,%2
    #"
         (const_int 0)))
    (clobber (match_scratch:SI 3 ""))
    (clobber (match_scratch:SI 4 ""))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(parallel [(set (match_dup 3)
                   (plus:SI (lshiftrt:SI (neg:SI (abs:SI (match_dup 1)))
                                         (const_int 31))
                  (match_operand:DI 2 "gpc_reg_operand" "r,r"))
         (const_int 0)))
    (clobber (match_scratch:DI 3 "=&r,&r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    addic %3,%1,-1\;addze. %3,%2
    #"
                  (match_operand:DI 2 "gpc_reg_operand" ""))
         (const_int 0)))
    (clobber (match_scratch:DI 3 ""))]
-  "TARGET_POWERPC64 && reload_completed"
+  "TARGET_64BIT && reload_completed"
   [(set (match_dup 3)
        (plus:DI (lshiftrt:DI (neg:DI (abs:DI (match_dup 1)))
                   (const_int 63))
        (plus:SI (lshiftrt:SI (neg:SI (abs:SI (match_dup 1))) (const_int 31))
                 (match_dup 2)))
    (clobber (match_scratch:SI 3 "=&r,&r"))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {ai|addic} %3,%1,-1\;{aze.|addze.} %0,%2
    #"
        (plus:SI (lshiftrt:SI (neg:SI (abs:SI (match_dup 1))) (const_int 31))
                 (match_dup 2)))
    (clobber (match_scratch:SI 3 ""))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(parallel [(set (match_dup 0)
        (plus:SI (lshiftrt:SI (neg:SI (abs:SI (match_dup 1))) (const_int 31))
                 (match_dup 2)))
        (plus:DI (lshiftrt:DI (neg:DI (abs:DI (match_dup 1))) (const_int 63))
                 (match_dup 2)))
    (clobber (match_scratch:DI 3 "=&r,&r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    addic %3,%1,-1\;addze. %0,%2
    #"
        (plus:DI (lshiftrt:DI (neg:DI (abs:DI (match_dup 1))) (const_int 63))
                 (match_dup 2)))
    (clobber (match_scratch:DI 3 ""))]
-  "TARGET_POWERPC64 && reload_completed"
+  "TARGET_64BIT && reload_completed"
   [(parallel [(set (match_dup 0)
        (plus:DI (lshiftrt:DI (neg:DI (abs:DI (match_dup 1))) (const_int 63))
                 (match_dup 2)))
   [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
        (leu:DI (match_operand:DI 1 "gpc_reg_operand" "r")
                (match_operand:DI 2 "reg_or_short_operand" "rI")))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "subf%I2c %0,%1,%2\;li %0,0\;adde %0,%0,%0"
   [(set_attr "length" "12")])
 
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (leu:DI (match_dup 1) (match_dup 2)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    subf%I2c %0,%1,%2\;li %0,0\;adde. %0,%0,%0
    #"
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "")
        (leu:DI (match_dup 1) (match_dup 2)))]
-  "TARGET_POWERPC64 && reload_completed"
+  "TARGET_64BIT && reload_completed"
   [(set (match_dup 0)
        (leu:DI (match_dup 1) (match_dup 2)))
    (set (match_dup 3)
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
        (leu:SI (match_dup 1) (match_dup 2)))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf%I2|subf%I2c} %0,%1,%2\;{cal %0,0(0)|li %0,0}\;{ae.|adde.} %0,%0,%0
    #"
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "")
        (leu:SI (match_dup 1) (match_dup 2)))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 0)
        (leu:SI (match_dup 1) (match_dup 2)))
    (set (match_dup 3)
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (leu:DI (match_dup 1) (match_dup 2)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    subf%I2c %0,%1,%2\;li %0,0\;adde. %0,%0,%0
    #"
        (plus:SI (leu:SI (match_operand:SI 1 "gpc_reg_operand" "r")
                         (match_operand:SI 2 "reg_or_short_operand" "rI"))
                 (match_operand:SI 3 "gpc_reg_operand" "r")))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "{sf%I2|subf%I2c} %0,%1,%2\;{aze|addze} %0,%3"
   [(set_attr "length" "8")])
 
                  (match_operand:SI 3 "gpc_reg_operand" "r,r"))
         (const_int 0)))
    (clobber (match_scratch:SI 4 "=&r,&r"))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf%I2|subf%I2c} %4,%1,%2\;{aze.|addze.} %4,%3
    #"
                  (match_operand:SI 3 "gpc_reg_operand" ""))
         (const_int 0)))
    (clobber (match_scratch:SI 4 ""))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 4)
        (plus:SI (leu:SI (match_dup 1) (match_dup 2))
                  (match_dup 3)))
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r")
        (plus:SI (leu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf%I2|subf%I2c} %0,%1,%2\;{aze.|addze.} %0,%3
    #"
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "")
        (plus:SI (leu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 0)
        (plus:SI (leu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))
    (set (match_dup 4)
   [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
        (neg:SI (leu:SI (match_operand:SI 1 "gpc_reg_operand" "r")
                        (match_operand:SI 2 "reg_or_short_operand" "rI"))))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "{sf%I2|subf%I2c} %0,%1,%2\;{sfe|subfe} %0,%0,%0\;nand %0,%0,%0"
    [(set_attr "length" "12")])
 
                 (leu:SI (match_operand:SI 1 "gpc_reg_operand" "r")
                         (match_operand:SI 2 "reg_or_short_operand" "rI")))
                (match_operand:SI 3 "gpc_reg_operand" "r")))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "{sf%I2|subf%I2c} %0,%1,%2\;{sfe|subfe} %0,%0,%0\;andc %0,%3,%0"
   [(set_attr "length" "12")])
 
                 (match_operand:SI 3 "gpc_reg_operand" "r,r"))
         (const_int 0)))
    (clobber (match_scratch:SI 4 "=&r,&r"))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf%I2|subf%I2c} %4,%1,%2\;{sfe|subfe} %4,%4,%4\;andc. %4,%3,%4
    #"
                 (match_operand:SI 3 "gpc_reg_operand" ""))
         (const_int 0)))
    (clobber (match_scratch:SI 4 ""))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 4)
        (and:SI (neg:SI (leu:SI (match_dup 1) (match_dup 2)))
                (match_dup 3)))
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r")
        (and:SI (neg:SI (leu:SI (match_dup 1) (match_dup 2))) (match_dup 3)))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf%I2|subf%I2c} %0,%1,%2\;{sfe|subfe} %0,%0,%0\;andc. %0,%3,%0
    #"
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "")
        (and:SI (neg:SI (leu:SI (match_dup 1) (match_dup 2))) (match_dup 3)))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 0)
        (and:SI (neg:SI (leu:SI (match_dup 1) (match_dup 2)))
                (match_dup 3)))
   [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
        (ltu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
                (match_operand:SI 2 "reg_or_neg_short_operand" "r,P")))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf|subfc} %0,%2,%1\;{sfe|subfe} %0,%0,%0\;neg %0,%0
    {ai|addic} %0,%1,%n2\;{sfe|subfe} %0,%0,%0\;neg %0,%0"
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r")
        (ltu:SI (match_dup 1) (match_dup 2)))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf|subfc} %0,%2,%1\;{sfe|subfe} %0,%0,%0\;neg. %0,%0
    {ai|addic} %0,%1,%n2\;{sfe|subfe} %0,%0,%0\;neg. %0,%0
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "")
        (ltu:SI (match_dup 1) (match_dup 2)))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 0)
        (ltu:SI (match_dup 1) (match_dup 2)))
    (set (match_dup 3)
        (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 "reg_or_short_operand" "rI,rI")))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
   {sf|subfc} %0,%2,%1\;{sfe|subfe} %0,%0,%0\;{sf%I3|subf%I3c} %0,%0,%3
   {ai|addic} %0,%1,%n2\;{sfe|subfe} %0,%0,%0\;{sf%I3|subf%I3c} %0,%0,%3"
                  (match_operand:SI 3 "gpc_reg_operand" "r,r,r,r"))
         (const_int 0)))
    (clobber (match_scratch:SI 4 "=&r,&r,&r,&r"))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf|subfc} %4,%2,%1\;{sfe|subfe} %4,%4,%4\;{sf.|subfc.} %4,%4,%3
    {ai|addic} %4,%1,%n2\;{sfe|subfe} %4,%4,%4\;{sf.|subfc.} %4,%4,%3
                  (match_operand:SI 3 "gpc_reg_operand" ""))
         (const_int 0)))
    (clobber (match_scratch:SI 4 ""))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 4)
        (plus:SI (ltu:SI (match_dup 1) (match_dup 2))
                 (match_dup 3)))
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r,&r,&r")
        (plus:SI (ltu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf|subfc} %0,%2,%1\;{sfe|subfe} %0,%0,%0\;{sf.|subfc.} %0,%0,%3
    {ai|addic} %0,%1,%n2\;{sfe|subfe} %0,%0,%0\;{sf.|subfc.} %0,%0,%3
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "")
        (plus:SI (ltu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 0)
        (plus:SI (ltu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))
    (set (match_dup 4)
   [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
        (neg:SI (ltu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
                        (match_operand:SI 2 "reg_or_neg_short_operand" "r,P"))))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf|subfc} %0,%2,%1\;{sfe|subfe} %0,%0,%0
    {ai|addic} %0,%1,%n2\;{sfe|subfe} %0,%0,%0"
   [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
        (geu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
                (match_operand:SI 2 "reg_or_neg_short_operand" "r,P")))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf|subfc} %0,%2,%1\;{cal %0,0(0)|li %0,0}\;{ae|adde} %0,%0,%0
    {ai|addic} %0,%1,%n2\;{cal %0,0(0)|li %0,0}\;{ae|adde} %0,%0,%0"
   [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (geu:DI (match_operand:DI 1 "gpc_reg_operand" "r,r")
                (match_operand:DI 2 "reg_or_neg_short_operand" "r,P")))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    subfc %0,%2,%1\;li %0,0\;adde %0,%0,%0
    addic %0,%1,%n2\;li %0,0\;adde %0,%0,%0"
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r")
        (geu:SI (match_dup 1) (match_dup 2)))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf|subfc} %0,%2,%1\;{cal %0,0(0)|li %0,0}\;{ae.|adde.} %0,%0,%0
    {ai|addic} %0,%1,%n2\;{cal %0,0(0)|li %0,0}\;{ae.|adde.} %0,%0,%0
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "")
        (geu:SI (match_dup 1) (match_dup 2)))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 0)
        (geu:SI (match_dup 1) (match_dup 2)))
    (set (match_dup 3)
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r,r,r")
        (geu:DI (match_dup 1) (match_dup 2)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    subfc %0,%2,%1\;li %0,0\;adde. %0,%0,%0
    addic %0,%1,%n2\;li %0,0\;adde. %0,%0,%0
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "")
        (geu:DI (match_dup 1) (match_dup 2)))]
-  "TARGET_POWERPC64 && reload_completed"
+  "TARGET_64BIT && reload_completed"
   [(set (match_dup 0)
        (geu:DI (match_dup 1) (match_dup 2)))
    (set (match_dup 3)
        (plus:SI (geu: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")))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf|subfc} %0,%2,%1\;{aze|addze} %0,%3
    {ai|addic} %0,%1,%n2\;{aze|addze} %0,%3"
                  (match_operand:SI 3 "gpc_reg_operand" "r,r,r,r"))
         (const_int 0)))
    (clobber (match_scratch:SI 4 "=&r,&r,&r,&r"))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf|subfc} %4,%2,%1\;{aze.|addze.} %4,%3
    {ai|addic} %4,%1,%n2\;{aze.|addze.} %4,%3
                  (match_operand:SI 3 "gpc_reg_operand" ""))
         (const_int 0)))
    (clobber (match_scratch:SI 4 ""))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 4)
        (plus:SI (geu:SI (match_dup 1) (match_dup 2))
                  (match_dup 3)))
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r,&r,&r")
        (plus:SI (geu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf|subfc} %0,%2,%1\;{aze.|addze.} %0,%3
    {ai|addic} %0,%1,%n2\;{aze.|addze.} %0,%3
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "")
        (plus:SI (geu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 0)
        (plus:SI (geu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))
    (set (match_dup 4)
   [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
        (neg:SI (geu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
                        (match_operand:SI 2 "reg_or_short_operand" "r,I"))))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf|subfc} %0,%2,%1\;{sfe|subfe} %0,%0,%0\;nand %0,%0,%0
    {sfi|subfic} %0,%1,-1\;{a%I2|add%I2c} %0,%0,%2\;{sfe|subfe} %0,%0,%0"
                 (geu: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")))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf|subfc} %0,%2,%1\;{sfe|subfe} %0,%0,%0\;andc %0,%3,%0
    {ai|addic} %0,%1,%n2\;{sfe|subfe} %0,%0,%0\;andc %0,%3,%0"
                 (match_operand:SI 3 "gpc_reg_operand" "r,r,r,r"))
         (const_int 0)))
    (clobber (match_scratch:SI 4 "=&r,&r,&r,&r"))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf|subfc} %4,%2,%1\;{sfe|subfe} %4,%4,%4\;andc. %4,%3,%4
    {ai|addic} %4,%1,%n2\;{sfe|subfe} %4,%4,%4\;andc. %4,%3,%4
                 (match_operand:SI 3 "gpc_reg_operand" ""))
         (const_int 0)))
    (clobber (match_scratch:SI 4 ""))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 4)
        (and:SI (neg:SI (geu:SI (match_dup 1) (match_dup 2)))
                (match_dup 3)))
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r,&r,&r")
        (and:SI (neg:SI (geu:SI (match_dup 1) (match_dup 2))) (match_dup 3)))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf|subfc} %0,%2,%1\;{sfe|subfe} %0,%0,%0\;andc. %0,%3,%0
    {ai|addic} %0,%1,%n2\;{sfe|subfe} %0,%0,%0\;andc. %0,%3,%0
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "")
        (and:SI (neg:SI (geu:SI (match_dup 1) (match_dup 2))) (match_dup 3)))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 0)
        (and:SI (neg:SI (geu:SI (match_dup 1) (match_dup 2))) (match_dup 3)))
    (set (match_dup 4)
   [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
        (gt:SI (match_operand:SI 1 "gpc_reg_operand" "r")
               (const_int 0)))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "{sfi|subfic} %0,%1,0\;{ame|addme} %0,%0\;{sri|srwi} %0,%0,31"
   [(set_attr "length" "12")])
 
   [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
        (gt:DI (match_operand:DI 1 "gpc_reg_operand" "r")
               (const_int 0)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "subfic %0,%1,0\;addme %0,%0\;srdi %0,%0,63"
   [(set_attr "length" "12")])
 
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
        (gt:SI (match_dup 1) (const_int 0)))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sfi|subfic} %0,%1,0\;{ame|addme} %0,%0\;{sri.|srwi.} %0,%0,31
    #"
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "")
        (gt:SI (match_dup 1) (const_int 0)))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 0)
        (gt:SI (match_dup 1) (const_int 0)))
    (set (match_dup 2)
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (gt:DI (match_dup 1) (const_int 0)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    subfic %0,%1,0\;addme %0,%0\;srdi. %0,%0,63
    #"
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "")
        (gt:DI (match_dup 1) (const_int 0)))]
-  "TARGET_POWERPC64 && reload_completed"
+  "TARGET_64BIT && reload_completed"
   [(set (match_dup 0)
        (gt:DI (match_dup 1) (const_int 0)))
    (set (match_dup 2)
        (plus:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "r")
                        (const_int 0))
                 (match_operand:SI 2 "gpc_reg_operand" "r")))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "{a|addc} %0,%1,%1\;{sfe|subfe} %0,%1,%0\;{aze|addze} %0,%2"
   [(set_attr "length" "12")])
 
        (plus:DI (gt:DI (match_operand:DI 1 "gpc_reg_operand" "r")
                        (const_int 0))
                 (match_operand:DI 2 "gpc_reg_operand" "r")))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "addc %0,%1,%1\;subfe %0,%1,%0\;addze %0,%2"
   [(set_attr "length" "12")])
 
                  (match_operand:SI 2 "gpc_reg_operand" "r,r"))
         (const_int 0)))
    (clobber (match_scratch:SI 3 "=&r,&r"))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {a|addc} %3,%1,%1\;{sfe|subfe} %3,%1,%3\;{aze.|addze.} %3,%2
    #"
                  (match_operand:SI 2 "gpc_reg_operand" ""))
         (const_int 0)))
    (clobber (match_scratch:SI 3 ""))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 3)
        (plus:SI (gt:SI (match_dup 1) (const_int 0))
                  (match_dup 2)))
                  (match_operand:DI 2 "gpc_reg_operand" "r,r"))
         (const_int 0)))
    (clobber (match_scratch:DI 3 "=&r,&r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    addc %3,%1,%1\;subfe %3,%1,%3\;addze. %3,%2
    #"
                  (match_operand:DI 2 "gpc_reg_operand" ""))
         (const_int 0)))
    (clobber (match_scratch:DI 3 ""))]
-  "TARGET_POWERPC64 && reload_completed"
+  "TARGET_64BIT && reload_completed"
   [(set (match_dup 3)
        (plus:DI (gt:DI (match_dup 1) (const_int 0))
                 (match_dup 2)))
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r")
        (plus:SI (gt:SI (match_dup 1) (const_int 0)) (match_dup 2)))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {a|addc} %0,%1,%1\;{sfe|subfe} %0,%1,%0\;{aze.|addze.} %0,%2
    #"
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "")
        (plus:SI (gt:SI (match_dup 1) (const_int 0)) (match_dup 2)))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 0)
        (plus:SI (gt:SI (match_dup 1) (const_int 0)) (match_dup 2)))
    (set (match_dup 3)
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=&r,&r")
        (plus:DI (gt:DI (match_dup 1) (const_int 0)) (match_dup 2)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    addc %0,%1,%1\;subfe %0,%1,%0\;addze. %0,%2
    #"
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "")
        (plus:DI (gt:DI (match_dup 1) (const_int 0)) (match_dup 2)))]
-  "TARGET_POWERPC64 && reload_completed"
+  "TARGET_64BIT && reload_completed"
   [(set (match_dup 0)
        (plus:DI (gt:DI (match_dup 1) (const_int 0)) (match_dup 2)))
    (set (match_dup 3)
   [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
        (neg:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "r")
                       (const_int 0))))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "{sfi|subfic} %0,%1,0\;{ame|addme} %0,%0\;{srai|srawi} %0,%0,31"
   [(set_attr "length" "12")])
 
   [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
        (neg:DI (gt:DI (match_operand:DI 1 "gpc_reg_operand" "r")
                       (const_int 0))))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "subfic %0,%1,0\;addme %0,%0\;sradi %0,%0,63"
   [(set_attr "length" "12")])
 
   [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
        (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r")
                (match_operand:SI 2 "reg_or_short_operand" "rI")))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "{sf%I2|subf%I2c} %0,%1,%2\;{sfe|subfe} %0,%0,%0\;neg %0,%0"
   [(set_attr "length" "12")])
 
   [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
        (gtu:DI (match_operand:DI 1 "gpc_reg_operand" "r")
                (match_operand:DI 2 "reg_or_short_operand" "rI")))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "subf%I2c %0,%1,%2\;subfe %0,%0,%0\;neg %0,%0"
   [(set_attr "length" "12")])
 
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
        (gtu:SI (match_dup 1) (match_dup 2)))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {sf%I2|subf%I2c} %0,%1,%2\;{sfe|subfe} %0,%0,%0\;neg. %0,%0
    #"
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "")
        (gtu:SI (match_dup 1) (match_dup 2)))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 0)
        (gtu:SI (match_dup 1) (match_dup 2)))
    (set (match_dup 3)
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
        (gtu:DI (match_dup 1) (match_dup 2)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    subf%I2c %0,%1,%2\;subfe %0,%0,%0\;neg. %0,%0
    #"
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "")
        (gtu:DI (match_dup 1) (match_dup 2)))]
-  "TARGET_POWERPC64 && reload_completed"
+  "TARGET_64BIT && reload_completed"
   [(set (match_dup 0)
        (gtu:DI (match_dup 1) (match_dup 2)))
    (set (match_dup 3)
        (plus:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
                         (match_operand:SI 2 "reg_or_short_operand" "I,rI"))
                 (match_operand:SI 3 "reg_or_short_operand" "r,rI")))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {ai|addic} %0,%1,%k2\;{aze|addze} %0,%3
    {sf%I2|subf%I2c} %0,%1,%2\;{sfe|subfe} %0,%0,%0\;{sf%I3|subf%I3c} %0,%0,%3"
        (plus:DI (gtu:DI (match_operand:DI 1 "gpc_reg_operand" "r,r")
                         (match_operand:DI 2 "reg_or_short_operand" "I,rI"))
                 (match_operand:DI 3 "reg_or_short_operand" "r,rI")))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    addic %0,%1,%k2\;addze %0,%3
    subf%I2c %0,%1,%2\;subfe %0,%0,%0\;subf%I3c %0,%0,%3"
                  (match_operand:SI 3 "gpc_reg_operand" "r,r,r,r"))
         (const_int 0)))
    (clobber (match_scratch:SI 4 "=&r,&r,&r,&r"))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {ai|addic} %4,%1,%k2\;{aze.|addze.} %4,%3
    {sf%I2|subf%I2c} %4,%1,%2\;{sfe|subfe} %4,%4,%4\;{sf.|subfc.} %4,%4,%3
                  (match_operand:SI 3 "gpc_reg_operand" ""))
         (const_int 0)))
    (clobber (match_scratch:SI 4 ""))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 4)
        (plus:SI (gtu:SI (match_dup 1) (match_dup 2))
                 (match_dup 3)))
                  (match_operand:DI 3 "gpc_reg_operand" "r,r,r,r"))
         (const_int 0)))
    (clobber (match_scratch:DI 4 "=&r,&r,&r,&r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    addic %4,%1,%k2\;addze. %4,%3
    subf%I2c %4,%1,%2\;subfe %4,%4,%4\;subfc. %4,%4,%3
                  (match_operand:DI 3 "gpc_reg_operand" ""))
         (const_int 0)))
    (clobber (match_scratch:DI 4 ""))]
-  "TARGET_POWERPC64 && reload_completed"
+  "TARGET_64BIT && reload_completed"
   [(set (match_dup 4)
        (plus:DI (gtu:DI (match_dup 1) (match_dup 2))
                  (match_dup 3)))
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r,&r,&r")
        (plus:SI (gtu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "@
    {ai|addic} %0,%1,%k2\;{aze.|addze.} %0,%3
    {sf%I2|subf%I2c} %0,%1,%2\;{sfe|subfe} %0,%0,%0\;{sf.|subfc.} %0,%0,%3
         (const_int 0)))
    (set (match_operand:SI 0 "gpc_reg_operand" "")
        (plus:SI (gtu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))]
-  "! TARGET_POWERPC64 && reload_completed"
+  "TARGET_32BIT && reload_completed"
   [(set (match_dup 0)
        (plus:SI (gtu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))
    (set (match_dup 4)
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "=&r,&r,&r,&r")
        (plus:DI (gtu:DI (match_dup 1) (match_dup 2)) (match_dup 3)))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "@
    addic %0,%1,%k2\;addze. %0,%3
    subf%I2c %0,%1,%2\;subfe %0,%0,%0\;subfc. %0,%0,%3
         (const_int 0)))
    (set (match_operand:DI 0 "gpc_reg_operand" "")
        (plus:DI (gtu:DI (match_dup 1) (match_dup 2)) (match_dup 3)))]
-  "TARGET_POWERPC64 && reload_completed"
+  "TARGET_64BIT && reload_completed"
   [(set (match_dup 0)
        (plus:DI (gtu:DI (match_dup 1) (match_dup 2)) (match_dup 3)))
    (set (match_dup 4)
   [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
        (neg:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r")
                        (match_operand:SI 2 "reg_or_short_operand" "rI"))))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "{sf%I2|subf%I2c} %0,%1,%2\;{sfe|subfe} %0,%0,%0"
   [(set_attr "length" "8")])
 
   [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
        (neg:DI (gtu:DI (match_operand:DI 1 "gpc_reg_operand" "r")
                        (match_operand:DI 2 "reg_or_short_operand" "rI"))))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "subf%I2c %0,%1,%2\;subfe %0,%0,%0"
   [(set_attr "length" "8")])
 \f
   /* Only use this on innermost loops.  */
   if (INTVAL (operands[3]) > 1)
     FAIL;
-  if (TARGET_POWERPC64)
+  if (TARGET_64BIT)
     {
       if (GET_MODE (operands[0]) != DImode)
        FAIL;
                            (const_int -1)))
              (clobber (match_scratch:CC 2 ""))
              (clobber (match_scratch:SI 3 ""))])]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "")
 
 (define_expand "ctrdi"
                            (const_int -1)))
              (clobber (match_scratch:CC 2 ""))
              (clobber (match_scratch:DI 3 ""))])]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "")
 
 ;; We need to be able to do this for any operand, including MEM, or we
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
    (clobber (match_scratch:SI 4 "=X,X,&r,r"))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "*
 {
   if (which_alternative != 0)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
    (clobber (match_scratch:SI 4 "=X,X,&r,r"))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "*
 {
   if (which_alternative != 0)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
    (clobber (match_scratch:DI 4 "=X,X,&r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "*
 {
   if (which_alternative != 0)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
    (clobber (match_scratch:DI 4 "=X,X,&r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "*
 {
   if (which_alternative != 0)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
    (clobber (match_scratch:SI 4 "=X,X,&r,r"))]
-  "! TARGET_POWERPC64 && find_reg_note (insn, REG_NONNEG, 0)"
+  "TARGET_32BIT && find_reg_note (insn, REG_NONNEG, 0)"
   "*
 {
   if (which_alternative != 0)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
    (clobber (match_scratch:SI 4 "=X,X,&r,r"))]
-  "! TARGET_POWERPC64 && find_reg_note (insn, REG_NONNEG, 0)"
+  "TARGET_32BIT && find_reg_note (insn, REG_NONNEG, 0)"
   "*
 {
   if (which_alternative != 0)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
    (clobber (match_scratch:DI 4 "=X,X,&r,r"))]
-  "TARGET_POWERPC64 && find_reg_note (insn, REG_NONNEG, 0)"
+  "TARGET_64BIT && find_reg_note (insn, REG_NONNEG, 0)"
   "*
 {
   if (which_alternative != 0)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
    (clobber (match_scratch:DI 4 "=X,X,&r,r"))]
-  "TARGET_POWERPC64 && find_reg_note (insn, REG_NONNEG, 0)"
+  "TARGET_64BIT && find_reg_note (insn, REG_NONNEG, 0)"
   "*
 {
   if (which_alternative != 0)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
    (clobber (match_scratch:SI 4 "=X,X,&r,r"))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "*
 {
   if (which_alternative != 0)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
    (clobber (match_scratch:SI 4 "=X,X,&r,r"))]
-  "! TARGET_POWERPC64"
+  "TARGET_32BIT"
   "*
 {
   if (which_alternative != 0)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
    (clobber (match_scratch:DI 4 "=X,X,&r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "*
 {
   if (which_alternative != 0)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
    (clobber (match_scratch:DI 4 "=X,X,&r,r"))]
-  "TARGET_POWERPC64"
+  "TARGET_64BIT"
   "*
 {
   if (which_alternative != 0)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 ""))
    (clobber (match_scratch:DI 4 ""))]
-  "TARGET_POWERPC64 && reload_completed"
+  "TARGET_64BIT && reload_completed"
   [(parallel [(set (match_dup 3)
                   (compare:CC (plus:DI (match_dup 1)
                                        (const_int -1))
        (plus:DI (match_dup 1) (const_int -1)))
    (clobber (match_scratch:CC 3 ""))
    (clobber (match_scratch:DI 4 ""))]
-  "TARGET_POWERPC64 && reload_completed
+  "TARGET_64BIT && reload_completed
    && ! gpc_reg_operand (operands[0], DImode)"
   [(parallel [(set (match_dup 3)
                   (compare:CC (plus:DI (match_dup 1)
 { operands[7] = gen_rtx (GET_CODE (operands[2]), VOIDmode, operands[3],
                         const0_rtx); }")
 
+; These two are for 64-bit hardware running 32-bit mode.
+; We don't use the add. instruction in this mode.
+(define_split
+  [(set (pc)
+        (if_then_else (match_operator 2 "comparison_operator"
+                                      [(match_operand:SI 1 "gpc_reg_operand" "")
+                                       (const_int 1)])       
+                      (match_operand 5 "" "")
+                      (match_operand 6 "" "")))
+   (set (match_operand:SI 0 "gpc_reg_operand" "")
+        (plus:SI (match_dup 1)     
+                 (const_int -1)))        
+   (clobber (match_scratch:CC 3 ""))
+   (clobber (match_scratch:SI 4 ""))]
+  "TARGET_POWERPC64 && TARGET_32BIT && reload_completed"
+  [(set (match_dup 0)
+        (plus:SI (match_dup 1)          
+                 (const_int -1)))  
+   (set (match_dup 3)
+        (compare:CC (match_dup 0)  
+                    (const_int 0)))      
+   (set (pc) (if_then_else (match_dup 7)
+                           (match_dup 5)
+                           (match_dup 6)))]
+  "
+{ operands[7] = gen_rtx (GET_CODE (operands[2]), VOIDmode, operands[3],
+                         const0_rtx); }")
+
+(define_split
+  [(set (pc)
+        (if_then_else (match_operator 2 "comparison_operator"
+                                      [(match_operand:SI 1 "gpc_reg_operand" "")
+                                       (const_int 1)])
+                      (match_operand 5 "" "")
+                      (match_operand 6 "" "")))
+   (set (match_operand:SI 0 "nonimmediate_operand" "")
+        (plus:SI (match_dup 1) (const_int -1)))
+   (clobber (match_scratch:CC 3 ""))
+   (clobber (match_scratch:SI 4 ""))]
+  "TARGET_POWERPC64 && TARGET_32BIT && reload_completed
+   && ! gpc_reg_operand (operands[0], SImode)"
+  [(set (match_dup 4)
+        (plus:SI (match_dup 1)
+                 (const_int -1)))
+   (set (match_dup 3)
+        (compare:CC (match_dup 4)
+                    (const_int 0)))
+   (set (match_dup 0)
+        (match_dup 4))
+   (set (pc) (if_then_else (match_dup 7)
+                           (match_dup 5)
+                           (match_dup 6)))]
+  "
+{ operands[7] = gen_rtx (GET_CODE (operands[2]), VOIDmode, operands[3],
+                         const0_rtx); }")
+
 \f
 (define_insn "trap"
   [(trap_if (const_int 1) (const_int 0))]
This page took 0.14141 seconds and 5 git commands to generate.