rtl.def (CONSTANT_P_RTX): Fix typo in string name.
authorDavid S. Miller <davem@pierdol.cobaltmicro.com>
Fri, 14 Aug 1998 04:30:33 +0000 (04:30 +0000)
committerDavid S. Miller <davem@gcc.gnu.org>
Fri, 14 Aug 1998 04:30:33 +0000 (21:30 -0700)
* rtl.def (CONSTANT_P_RTX): Fix typo in string name.
* config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc,
seqsi_special_extend, snesi_special_extend, snesi_zero_extend and
split, snedi_zero_trunc and split, seqsi_zero_extend and split,
seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di,
movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and
split, addx_extend_sp64, subx_extend_sp64, subx_extend and split):
Fix mismatching modes in SET operands.
(conditional move patterns): Fix formatting.
(unnamed subx arch64 pattern): Remove duplicate insn.

From-SVN: r21725

gcc/ChangeLog
gcc/config/sparc/sparc.md

index 312fb0e16d64d1a67138a2da4f39eb58661ea24c..cb1ca167a4500b8ca90c0124cb433008f260078e 100644 (file)
@@ -1,3 +1,17 @@
+Fri Aug 14 01:22:31 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
+
+       * rtl.def (CONSTANT_P_RTX): Fix typo in string name.
+
+       * config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc,
+       seqsi_special_extend, snesi_special_extend, snesi_zero_extend and
+       split, snedi_zero_trunc and split, seqsi_zero_extend and split,
+       seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di,
+       movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and
+       split, addx_extend_sp64, subx_extend_sp64, subx_extend and split):
+       Fix mismatching modes in SET operands.
+       (conditional move patterns): Fix formatting.
+       (unnamed subx arch64 pattern): Remove duplicate insn.
+       
 Fri Aug 14 00:34:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
 
        * config/sparc/sparc.c (const64_operand, const64_high_operand):
index 2047bb2d5ab0df1d720f1bc9d2b9909bfeeef299..47b10ac9ee92fb4c91a20643aa8c4219df29af8a 100644 (file)
        (xor:DI (match_operand:DI 1 "register_operand" "")
                (match_operand:DI 2 "register_operand" "")))
    (set (match_operand:SI 0 "register_operand" "")
-       (eq:DI (match_dup 3) (const_int 0)))]
+       (eq:SI (match_dup 3) (const_int 0)))]
   "TARGET_ARCH64"
   "{ operands[3] = gen_reg_rtx (DImode); }")
 
        (xor:DI (match_operand:DI 1 "register_operand" "")
                (match_operand:DI 2 "register_operand" "")))
    (set (match_operand:SI 0 "register_operand" "")
-       (ne:DI (match_dup 3) (const_int 0)))]
+       (ne:SI (match_dup 3) (const_int 0)))]
   "TARGET_ARCH64"
   "{ operands[3] = gen_reg_rtx (DImode); }")
 
        (xor:SI (match_operand:SI 1 "register_operand" "")
                (match_operand:SI 2 "register_operand" "")))
    (parallel [(set (match_operand:DI 0 "register_operand" "")
-                  (eq:SI (match_dup 3) (const_int 0)))
+                  (eq:DI (match_dup 3) (const_int 0)))
              (clobber (reg:CC 100))])]
   "TARGET_ARCH64"
   "{ operands[3] = gen_reg_rtx (SImode); }")
        (xor:SI (match_operand:SI 1 "register_operand" "")
                (match_operand:SI 2 "register_operand" "")))
    (parallel [(set (match_operand:DI 0 "register_operand" "")
-                  (ne:SI (match_dup 3) (const_int 0)))
+                  (ne:DI (match_dup 3) (const_int 0)))
              (clobber (reg:CC 100))])]
   "TARGET_ARCH64"
   "{ operands[3] = gen_reg_rtx (SImode); }")
 
 (define_insn "*snesi_zero_extend"
   [(set (match_operand:DI 0 "register_operand" "=r")
-       (ne:SI (match_operand:SI 1 "register_operand" "r")
+       (ne:DI (match_operand:SI 1 "register_operand" "r")
               (const_int 0)))
    (clobber (reg:CC 100))]
   "TARGET_ARCH64"
 
 (define_split
   [(set (match_operand:DI 0 "register_operand" "")
-        (ne:SI (match_operand:SI 1 "register_operand" "")
+        (ne:DI (match_operand:SI 1 "register_operand" "")
                (const_int 0)))
    (clobber (reg:CC 100))]
   "TARGET_ARCH64
    && reload_completed"
-  [(set (reg:CC_NOOV 100) (compare:CC_NOOV (minus (const_int 0) (match_dup 1))
+  [(set (reg:CC_NOOV 100) (compare:CC_NOOV (minus:SI (const_int 0) (match_dup 1))
                                            (const_int 0)))
-   (set (match_dup 0) (minus:SI (minus:SI (const_int 0) (const_int 0))
-                                (ltu:SI (reg:CC_NOOV 100) (const_int 0))))]
+   (set (match_dup 0) (zero_extend:DI (minus:SI (minus:SI (const_int 0)
+                                                          (const_int 0))
+                                                (ltu:SI (reg:CC_NOOV 100)
+                                                        (const_int 0)))))]
   "")
 
 (define_insn "*snedi_zero"
 
 (define_insn "*snedi_zero_trunc"
   [(set (match_operand:SI 0 "register_operand" "=&r")
-       (ne:DI (match_operand:DI 1 "register_operand" "r")
+       (ne:SI (match_operand:DI 1 "register_operand" "r")
               (const_int 0)))]
   "TARGET_ARCH64"
   "#"
 
 (define_split
   [(set (match_operand:SI 0 "register_operand" "")
-        (ne:DI (match_operand:DI 1 "register_operand" "")
+        (ne:SI (match_operand:DI 1 "register_operand" "")
                (const_int 0)))]
   "TARGET_ARCH64"
   [(set (match_dup 0) (const_int 0))
-   (set (match_dup 0) (if_then_else:DI (ne:DI (match_dup 1)
+   (set (match_dup 0) (if_then_else:SI (ne:DI (match_dup 1)
                                               (const_int 0))
                                        (const_int 1)
                                        (match_dup 0)))]
 
 (define_insn "*seqsi_zero_extend"
   [(set (match_operand:DI 0 "register_operand" "=r")
-       (eq:SI (match_operand:SI 1 "register_operand" "r")
+       (eq:DI (match_operand:SI 1 "register_operand" "r")
               (const_int 0)))
    (clobber (reg:CC 100))]
   "TARGET_ARCH64"
 
 (define_split
   [(set (match_operand:DI 0 "register_operand" "")
-        (eq:SI (match_operand:SI 1 "register_operand" "")
+        (eq:DI (match_operand:SI 1 "register_operand" "")
                (const_int 0)))
    (clobber (reg:CC 100))]
   "TARGET_ARCH64"
   [(set (reg:CC_NOOV 100) (compare:CC_NOOV (minus:SI (const_int 0) (match_dup 1))
                                            (const_int 0)))
-   (set (match_dup 0) (minus:SI (minus:SI (const_int 0) (const_int -1))
-                                (ltu:SI (reg:CC_NOOV 100) (const_int 0))))]
+   (set (match_dup 0) (zero_extend:DI (minus:SI (minus:SI (const_int 0)
+                                                          (const_int -1))
+                                                (ltu:SI (reg:CC_NOOV 100)
+                                                        (const_int 0)))))]
   "")
 
 (define_insn "*seqdi_zero"
 
 (define_insn "*seqdi_zero_trunc"
   [(set (match_operand:SI 0 "register_operand" "=&r")
-       (eq:DI (match_operand:DI 1 "register_operand" "r")
+       (eq:SI (match_operand:DI 1 "register_operand" "r")
               (const_int 0)))]
   "TARGET_ARCH64"
   "#"
 
 (define_split
   [(set (match_operand:SI 0 "register_operand" "")
-        (eq:DI (match_operand:DI 1 "register_operand" "")
+        (eq:SI (match_operand:DI 1 "register_operand" "")
                (const_int 0)))]
   "TARGET_ARCH64"
   [(set (match_dup 0) (const_int 0))
-   (set (match_dup 0) (if_then_else:DI (eq:DI (match_dup 1)
+   (set (match_dup 0) (if_then_else:SI (eq:DI (match_dup 1)
                                               (const_int 0))
                                        (const_int 1)
                                        (match_dup 0)))]
 
 (define_insn "*pic_lo_sum_di"
   [(set (match_operand:DI 0 "register_operand" "=r")
-        (lo_sum:SI (match_operand:DI 1 "register_operand" "r")
-                   (unspec:SI [(match_operand:DI 2 "immediate_operand" "in")] 0)))]
+        (lo_sum:DI (match_operand:DI 1 "register_operand" "r")
+                   (unspec:DI [(match_operand:DI 2 "immediate_operand" "in")] 0)))]
   "TARGET_ARCH64 && flag_pic"
   "or\\t%1, %%lo(%a2), %0"
   [(set_attr "length" "1")])
 
 (define_insn "*pic_sethi_di"
   [(set (match_operand:DI 0 "register_operand" "=r")
-        (high:SI (unspec:SI [(match_operand 1 "" "")] 0)))]
+        (high:DI (unspec:DI [(match_operand 1 "" "")] 0)))]
   "TARGET_ARCH64 && flag_pic && check_pic (1)"
   "sethi\\t%%hi(%a1), %0"
   [(set_attr "type" "move")
        (if_then_else:QI (match_operator 1 "comparison_operator"
                                [(match_operand 2 "icc_or_fcc_reg_operand" "X,X")
                                 (const_int 0)])
-                     (match_operand:QI 3 "arith11_operand" "rL,0")
-                     (match_operand:QI 4 "arith11_operand" "0,rL")))]
+                         (match_operand:QI 3 "arith11_operand" "rL,0")
+                         (match_operand:QI 4 "arith11_operand" "0,rL")))]
   "TARGET_V9"
   "@
    mov%C1\\t%x2, %3, %0
        (if_then_else:HI (match_operator 1 "comparison_operator"
                                [(match_operand 2 "icc_or_fcc_reg_operand" "X,X")
                                 (const_int 0)])
-                     (match_operand:HI 3 "arith11_operand" "rL,0")
-                     (match_operand:HI 4 "arith11_operand" "0,rL")))]
+                         (match_operand:HI 3 "arith11_operand" "rL,0")
+                         (match_operand:HI 4 "arith11_operand" "0,rL")))]
   "TARGET_V9"
   "@
    mov%C1\\t%x2, %3, %0
        (if_then_else:SI (match_operator 1 "comparison_operator"
                                [(match_operand 2 "icc_or_fcc_reg_operand" "X,X")
                                 (const_int 0)])
-                     (match_operand:SI 3 "arith11_operand" "rL,0")
-                     (match_operand:SI 4 "arith11_operand" "0,rL")))]
+                         (match_operand:SI 3 "arith11_operand" "rL,0")
+                         (match_operand:SI 4 "arith11_operand" "0,rL")))]
   "TARGET_V9"
   "@
    mov%C1\\t%x2, %3, %0
        (if_then_else:DI (match_operator 1 "comparison_operator"
                                [(match_operand 2 "icc_or_fcc_reg_operand" "X,X")
                                 (const_int 0)])
-                     (match_operand:DI 3 "arith11_double_operand" "rLH,0")
-                     (match_operand:DI 4 "arith11_double_operand" "0,rLH")))]
+                         (match_operand:DI 3 "arith11_double_operand" "rLH,0")
+                         (match_operand:DI 4 "arith11_double_operand" "0,rLH")))]
   "TARGET_ARCH64"
   "@
    mov%C1\\t%x2, %3, %0
 
 (define_insn "*movdi_cc_sp64_trunc"
   [(set (match_operand:SI 0 "register_operand" "=r,r")
-       (if_then_else:DI (match_operator 1 "comparison_operator"
+       (if_then_else:SI (match_operator 1 "comparison_operator"
                                [(match_operand 2 "icc_or_fcc_reg_operand" "X,X")
                                 (const_int 0)])
-                     (match_operand:SI 3 "arith11_double_operand" "rLH,0")
-                     (match_operand:SI 4 "arith11_double_operand" "0,rLH")))]
+                         (match_operand:SI 3 "arith11_double_operand" "rLH,0")
+                         (match_operand:SI 4 "arith11_double_operand" "0,rLH")))]
   "TARGET_ARCH64"
   "@
    mov%C1\\t%x2, %3, %0
        (if_then_else:SF (match_operator 1 "comparison_operator"
                                [(match_operand 2 "icc_or_fcc_reg_operand" "X,X")
                                 (const_int 0)])
-                     (match_operand:SF 3 "register_operand" "f,0")
-                     (match_operand:SF 4 "register_operand" "0,f")))]
+                         (match_operand:SF 3 "register_operand" "f,0")
+                         (match_operand:SF 4 "register_operand" "0,f")))]
   "TARGET_V9 && TARGET_FPU"
   "@
    fmovs%C1\\t%x2, %3, %0
        (if_then_else:DF (match_operator 1 "comparison_operator"
                                [(match_operand 2 "icc_or_fcc_reg_operand" "X,X")
                                 (const_int 0)])
-                     (match_operand:DF 3 "register_operand" "e,0")
-                     (match_operand:DF 4 "register_operand" "0,e")))]
+                         (match_operand:DF 3 "register_operand" "e,0")
+                         (match_operand:DF 4 "register_operand" "0,e")))]
   "TARGET_V9 && TARGET_FPU"
   "@
    fmovd%C1\\t%x2, %3, %0
        (if_then_else:TF (match_operator 1 "comparison_operator"
                                [(match_operand 2 "icc_or_fcc_reg_operand" "X,X")
                                 (const_int 0)])
-                     (match_operand:TF 3 "register_operand" "e,0")
-                     (match_operand:TF 4 "register_operand" "0,e")))]
+                         (match_operand:TF 3 "register_operand" "e,0")
+                         (match_operand:TF 4 "register_operand" "0,e")))]
   "TARGET_V9 && TARGET_FPU && TARGET_HARD_QUAD"
   "@
    fmovq%C1\\t%x2, %3, %0
        (if_then_else:QI (match_operator 1 "v9_regcmp_op"
                                [(match_operand:DI 2 "register_operand" "r,r")
                                 (const_int 0)])
-                     (match_operand:QI 3 "arith10_operand" "rM,0")
-                     (match_operand:QI 4 "arith10_operand" "0,rM")))]
+                         (match_operand:QI 3 "arith10_operand" "rM,0")
+                         (match_operand:QI 4 "arith10_operand" "0,rM")))]
   "TARGET_ARCH64"
   "@
    movr%D1\\t%2, %r3, %0
        (if_then_else:HI (match_operator 1 "v9_regcmp_op"
                                [(match_operand:DI 2 "register_operand" "r,r")
                                 (const_int 0)])
-                     (match_operand:HI 3 "arith10_operand" "rM,0")
-                     (match_operand:HI 4 "arith10_operand" "0,rM")))]
+                         (match_operand:HI 3 "arith10_operand" "rM,0")
+                         (match_operand:HI 4 "arith10_operand" "0,rM")))]
   "TARGET_ARCH64"
   "@
    movr%D1\\t%2, %r3, %0
        (if_then_else:SI (match_operator 1 "v9_regcmp_op"
                                [(match_operand:DI 2 "register_operand" "r,r")
                                 (const_int 0)])
-                     (match_operand:SI 3 "arith10_operand" "rM,0")
-                     (match_operand:SI 4 "arith10_operand" "0,rM")))]
+                         (match_operand:SI 3 "arith10_operand" "rM,0")
+                         (match_operand:SI 4 "arith10_operand" "0,rM")))]
   "TARGET_ARCH64"
   "@
    movr%D1\\t%2, %r3, %0
        (if_then_else:DI (match_operator 1 "v9_regcmp_op"
                                [(match_operand:DI 2 "register_operand" "r,r")
                                 (const_int 0)])
-                     (match_operand:DI 3 "arith10_double_operand" "rMH,0")
-                     (match_operand:DI 4 "arith10_double_operand" "0,rMH")))]
+                         (match_operand:DI 3 "arith10_double_operand" "rMH,0")
+                         (match_operand:DI 4 "arith10_double_operand" "0,rMH")))]
   "TARGET_ARCH64"
   "@
    movr%D1\\t%2, %r3, %0
 
 (define_insn "*movdi_cc_reg_sp64_trunc"
   [(set (match_operand:SI 0 "register_operand" "=r,r")
-       (if_then_else:DI (match_operator 1 "v9_regcmp_op"
+       (if_then_else:SI (match_operator 1 "v9_regcmp_op"
                                [(match_operand:DI 2 "register_operand" "r,r")
                                 (const_int 0)])
-                     (match_operand:SI 3 "arith10_double_operand" "rMH,0")
-                     (match_operand:SI 4 "arith10_double_operand" "0,rMH")))]
+                         (match_operand:SI 3 "arith10_double_operand" "rMH,0")
+                         (match_operand:SI 4 "arith10_double_operand" "0,rMH")))]
   "TARGET_ARCH64"
   "@
    movr%D1\\t%2, %r3, %0
        (if_then_else:SF (match_operator 1 "v9_regcmp_op"
                                [(match_operand:DI 2 "register_operand" "r,r")
                                 (const_int 0)])
-                     (match_operand:SF 3 "register_operand" "f,0")
-                     (match_operand:SF 4 "register_operand" "0,f")))]
+                         (match_operand:SF 3 "register_operand" "f,0")
+                         (match_operand:SF 4 "register_operand" "0,f")))]
   "TARGET_ARCH64 && TARGET_FPU"
   "@
    fmovrs%D1\\t%2, %3, %0
        (if_then_else:DF (match_operator 1 "v9_regcmp_op"
                                [(match_operand:DI 2 "register_operand" "r,r")
                                 (const_int 0)])
-                     (match_operand:DF 3 "register_operand" "e,0")
-                     (match_operand:DF 4 "register_operand" "0,e")))]
+                         (match_operand:DF 3 "register_operand" "e,0")
+                         (match_operand:DF 4 "register_operand" "0,e")))]
   "TARGET_ARCH64 && TARGET_FPU"
   "@
    fmovrd%D1\\t%2, %3, %0
        (if_then_else:TF (match_operator 1 "v9_regcmp_op"
                                [(match_operand:DI 2 "register_operand" "r,r")
                                 (const_int 0)])
-                     (match_operand:TF 3 "register_operand" "e,0")
-                     (match_operand:TF 4 "register_operand" "0,e")))]
+                         (match_operand:TF 3 "register_operand" "e,0")
+                         (match_operand:TF 4 "register_operand" "0,e")))]
   "TARGET_ARCH64 && TARGET_FPU"
   "@
    fmovrq%D1\\t%2, %3, %0
 
 (define_insn "*addx_extend_sp32"
   [(set (match_operand:DI 0 "register_operand" "=r")
-       (plus:SI (plus:SI (match_operand:SI 1 "reg_or_0_operand" "%rJ")
-                         (match_operand:SI 2 "arith_operand" "rI"))
-                (ltu:SI (reg:CC_NOOV 100) (const_int 0))))]
+       (zero_extend:DI (plus:SI (plus:SI (match_operand:SI 1 "reg_or_0_operand" "%rJ")
+                                          (match_operand:SI 2 "arith_operand" "rI"))
+                                 (ltu:SI (reg:CC_NOOV 100) (const_int 0)))))]
   "! TARGET_ARCH64"
   "#"
   [(set_attr "type" "unary")
 
 (define_split
   [(set (match_operand:DI 0 "register_operand" "")
-       (plus:SI (plus:SI (match_operand:SI 1 "reg_or_0_operand" "")
-                         (match_operand:SI 2 "arith_operand" ""))
-                (ltu:SI (reg:CC_NOOV 100) (const_int 0))))]
+       (zero_extend:DI (plus:SI (plus:SI (match_operand:SI 1 "reg_or_0_operand" "")
+                                          (match_operand:SI 2 "arith_operand" ""))
+                                 (ltu:SI (reg:CC_NOOV 100) (const_int 0)))))]
   "! TARGET_ARCH64 && reload_completed"
   [(set (match_dup 3) (plus:SI (plus:SI (match_dup 1) (match_dup 2))
                                (ltu:SI (reg:CC_NOOV 100) (const_int 0))))
 
 (define_insn "*addx_extend_sp64"
   [(set (match_operand:DI 0 "register_operand" "=r")
-       (plus:SI (plus:SI (match_operand:SI 1 "reg_or_0_operand" "%rJ")
-                         (match_operand:SI 2 "arith_operand" "rI"))
-                (ltu:SI (reg:CC_NOOV 100) (const_int 0))))]
+       (zero_extend:DI (plus:SI (plus:SI (match_operand:SI 1 "reg_or_0_operand" "%rJ")
+                                          (match_operand:SI 2 "arith_operand" "rI"))
+                                 (ltu:SI (reg:CC_NOOV 100) (const_int 0)))))]
   "TARGET_ARCH64"
   "addx\\t%r1, %2, %0"
   [(set_attr "type" "unary")
 
 (define_insn "*subx_extend_sp64"
   [(set (match_operand:DI 0 "register_operand" "=r")
-       (minus:SI (minus:SI (match_operand:SI 1 "reg_or_0_operand" "rJ")
-                           (match_operand:SI 2 "arith_operand" "rI"))
-                 (ltu:SI (reg:CC_NOOV 100) (const_int 0))))]
+       (zero_extend:DI (minus:SI (minus:SI (match_operand:SI 1 "reg_or_0_operand" "rJ")
+                                            (match_operand:SI 2 "arith_operand" "rI"))
+                                  (ltu:SI (reg:CC_NOOV 100) (const_int 0)))))]
   "TARGET_ARCH64"
   "subx\\t%r1, %2, %0"
   [(set_attr "type" "unary")
 
 (define_insn "*subx_extend"
   [(set (match_operand:DI 0 "register_operand" "=r")
-       (minus:SI (minus:SI (match_operand:SI 1 "reg_or_0_operand" "rJ")
-                           (match_operand:SI 2 "arith_operand" "rI"))
-                 (ltu:SI (reg:CC_NOOV 100) (const_int 0))))]
+       (zero_extend:DI (minus:SI (minus:SI (match_operand:SI 1 "reg_or_0_operand" "rJ")
+                                            (match_operand:SI 2 "arith_operand" "rI"))
+                                  (ltu:SI (reg:CC_NOOV 100) (const_int 0)))))]
   "! TARGET_ARCH64"
   "#"
   [(set_attr "type" "unary")
 
 (define_split
   [(set (match_operand:DI 0 "register_operand" "=r")
-       (minus:SI (minus:SI (match_operand:SI 1 "reg_or_0_operand" "rJ")
-                           (match_operand:SI 2 "arith_operand" "rI"))
-                 (ltu:SI (reg:CC_NOOV 100) (const_int 0))))]
+       (zero_extend:DI (minus:SI (minus:SI (match_operand:SI 1 "reg_or_0_operand" "rJ")
+                                            (match_operand:SI 2 "arith_operand" "rI"))
+                                  (ltu:SI (reg:CC_NOOV 100) (const_int 0)))))]
   "! TARGET_ARCH64 && reload_completed"
   [(set (match_dup 3) (minus:SI (minus:SI (match_dup 1) (match_dup 2))
                                 (ltu:SI (reg:CC_NOOV 100) (const_int 0))))
   "operands[3] = gen_lowpart (SImode, operands[0]);
    operands[4] = gen_highpart (SImode, operands[0]);")
 
-;; This is only for splits at the moment.
-(define_insn ""
-  [(set (match_operand:DI 0 "register_operand" "=r")
-        (minus:SI (minus:SI (match_operand:SI 1 "reg_or_0_operand" "rJ")
-                            (match_operand:SI 2 "arith_operand" "rI"))
-                  (ltu:SI (reg:CC_NOOV 100) (const_int 0))))]
-  "TARGET_ARCH64"
-  "subx\\t%r1, %2, %0"
-  [(set_attr "type" "unary")
-   (set_attr "length" "1")])
-
 (define_insn ""
   [(set (match_operand:DI 0 "register_operand" "=r")
         (plus:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "r"))