OSDN Git Service

When not involving named pattern, update condition to
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Jun 1996 11:37:17 +0000 (11:37 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Jun 1996 11:37:17 +0000 (11:37 +0000)
include alpha_tp != ALPHA_TP_INSN.
Don't do float_extend as part of other pattern when ALPHA_TP_INSN.
(extendsfsd2): Split into two patterns, depending on value of alpha_tp.

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

gcc/config/alpha/alpha.md

index b3028ea..826ffb1 100644 (file)
   [(set (match_operand:SF 0 "register_operand" "=&f")
        (plus:SF (match_operand:SF 1 "reg_or_fp0_operand" "%fG")
                 (match_operand:SF 2 "reg_or_fp0_operand" "fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
   "adds%)%& %R1,%R2,%0"
   [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
   [(set (match_operand:DF 0 "register_operand" "=&f")
        (plus:DF (match_operand:DF 1 "reg_or_fp0_operand" "%fG")
                 (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
   "addt%)%& %R1,%R2,%0"
   [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
    (set_attr "trap" "yes")])
 
 (define_insn ""
-  [(set (match_operand:DF 0 "register_operand" "=&f")
-       (plus:DF (float_extend:DF
-                 (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
-                (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
-  "addt%)%& %R1,%R2,%0"
-  [(set_attr "type" "fadd")
-   (set_attr "trap" "yes")])
-
-(define_insn ""
   [(set (match_operand:DF 0 "register_operand" "=f")
        (plus:DF (float_extend:DF
                  (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
                 (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
-  "TARGET_FP"
-  "addt%)%& %R1,%R2,%0"
-  [(set_attr "type" "fadd")
-   (set_attr "trap" "yes")])
-
-(define_insn ""
-  [(set (match_operand:DF 0 "register_operand" "=&f")
-       (plus:DF (float_extend:DF
-                 (match_operand:SF 1 "reg_or_fp0_operand" "%fG"))
-                (float_extend:DF
-                 (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "addt%)%& %R1,%R2,%0"
   [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
                  (match_operand:SF 1 "reg_or_fp0_operand" "%fG"))
                 (float_extend:DF
                  (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
-  "TARGET_FP"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "addt%)%& %R1,%R2,%0"
   [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
   "cvttqc %R1,%0"
   [(set_attr "type" "fadd")])
 
-(define_insn ""
-  [(set (match_operand:SF 0 "register_operand" "=&f")
-       (float:SF (match_operand:DI 1 "register_operand" "f")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
-  "cvtqs%+%& %1,%0"
-  [(set_attr "type" "fadd")
-   (set_attr "trap" "yes")])
-
 (define_insn "floatdisf2"
   [(set (match_operand:SF 0 "register_operand" "=f")
        (float:SF (match_operand:DI 1 "register_operand" "f")))]
 (define_insn ""
   [(set (match_operand:DF 0 "register_operand" "=&f")
        (float:DF (match_operand:DI 1 "register_operand" "f")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
   "cvtqt%+%& %1,%0"
   [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
   [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
 
-(define_insn ""
-  [(set (match_operand:DF 0 "register_operand" "=&f,f")
-       (float_extend:DF (match_operand:SF 1 "nonimmediate_operand" "f,m")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
-  "@
-   addt%)%& $f31,%1,%0
-   lds %0,%1"
-  [(set_attr "type" "fadd,ld")
+(define_expand "extendsfdf2"
+  [(use (match_operand:DF 0 "register_operand" ""))
+   (use (match_operand:SF 1 "nonimmediate_operand" ""))]
+  "TARGET_FP"
+"
+{
+  if (alpha_tp == ALPHA_TP_INSN)
+    emit_insn (gen_extendsfdf2_tp (operands[0],
+                                  force_reg (SFmode, operands[1])));
+  else
+    emit_insn (gen_extendsfdf2_no_tp (operands[0], operands[1]));
+
+  DONE;
+}")
+
+(define_insn "extendsfdf2_tp"
+  [(set (match_operand:DF 0 "register_operand" "=&f")
+       (float_extend:DF (match_operand:SF 1 "register_operand" "f")))]
+  "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
+  "cvtsts %1,%0"
+  [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
 
-(define_insn "extendsfdf2"
+(define_insn "extendsfdf2_no_tp"
   [(set (match_operand:DF 0 "register_operand" "=f,f")
        (float_extend:DF (match_operand:SF 1 "nonimmediate_operand" "f,m")))]
-  "TARGET_FP"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "@
    addt%)%& $f31,%1,%0
    lds %0,%1"
 (define_insn ""
   [(set (match_operand:SF 0 "register_operand" "=&f")
        (float_truncate:SF (match_operand:DF 1 "reg_or_fp0_operand" "fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
   "cvtts%)%& %R1,%0"
   [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
   [(set (match_operand:SF 0 "register_operand" "=&f")
        (div:SF (match_operand:SF 1 "reg_or_fp0_operand" "fG")
                (match_operand:SF 2 "reg_or_fp0_operand" "fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
   "divs%)%& %R1,%R2,%0"
   [(set_attr "type" "fdivs")
    (set_attr "trap" "yes")])
   [(set (match_operand:DF 0 "register_operand" "=&f")
        (div:DF (match_operand:DF 1 "reg_or_fp0_operand" "fG")
                (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
   "divt%)%& %R1,%R2,%0"
   [(set_attr "type" "fdivt")
    (set_attr "trap" "yes")])
    (set_attr "trap" "yes")])
 
 (define_insn ""
-  [(set (match_operand:DF 0 "register_operand" "=&f")
-       (div:DF (float_extend:DF (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
-               (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
-  "divt%)%& %R1,%R2,%0"
-  [(set_attr "type" "fdivt")
-   (set_attr "trap" "yes")])
-
-(define_insn ""
   [(set (match_operand:DF 0 "register_operand" "=f")
        (div:DF (float_extend:DF (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
                (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
-  "TARGET_FP"
-  "divt%)%& %R1,%R2,%0"
-  [(set_attr "type" "fdivt")
-   (set_attr "trap" "yes")])
-
-(define_insn ""
-  [(set (match_operand:DF 0 "register_operand" "=&f")
-       (div:DF (match_operand:DF 1 "reg_or_fp0_operand" "fG")
-               (float_extend:DF
-                (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "divt%)%& %R1,%R2,%0"
   [(set_attr "type" "fdivt")
    (set_attr "trap" "yes")])
        (div:DF (match_operand:DF 1 "reg_or_fp0_operand" "fG")
                (float_extend:DF
                 (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
-  "TARGET_FP"
-  "divt%)%& %R1,%R2,%0"
-  [(set_attr "type" "fdivt")
-   (set_attr "trap" "yes")])
-
-(define_insn ""
-  [(set (match_operand:DF 0 "register_operand" "=&f")
-       (div:DF (float_extend:DF (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
-               (float_extend:DF (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "divt%)%& %R1,%R2,%0"
   [(set_attr "type" "fdivt")
    (set_attr "trap" "yes")])
   [(set (match_operand:DF 0 "register_operand" "=f")
        (div:DF (float_extend:DF (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
                (float_extend:DF (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
-  "TARGET_FP"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "divt%)%& %R1,%R2,%0"
   [(set_attr "type" "fdivt")
    (set_attr "trap" "yes")])
   [(set (match_operand:SF 0 "register_operand" "=&f")
        (mult:SF (match_operand:SF 1 "reg_or_fp0_operand" "%fG")
                 (match_operand:SF 2 "reg_or_fp0_operand" "fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
   "muls%)%& %R1,%R2,%0"
   [(set_attr "type" "fmul")
    (set_attr "trap" "yes")])
   [(set (match_operand:DF 0 "register_operand" "=&f")
        (mult:DF (match_operand:DF 1 "reg_or_fp0_operand" "%fG")
                 (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
   "mult%)%& %R1,%R2,%0"
   [(set_attr "type" "fmul")
    (set_attr "trap" "yes")])
    (set_attr "trap" "yes")])
 
 (define_insn ""
-  [(set (match_operand:DF 0 "register_operand" "=&f")
-       (mult:DF (float_extend:DF
-                 (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
-                (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
-  "mult%)%& %R1,%R2,%0"
-  [(set_attr "type" "fmul")
-   (set_attr "trap" "yes")])
-
-(define_insn ""
   [(set (match_operand:DF 0 "register_operand" "=f")
        (mult:DF (float_extend:DF
                  (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
                 (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
-  "TARGET_FP"
-  "mult%)%& %R1,%R2,%0"
-  [(set_attr "type" "fmul")
-   (set_attr "trap" "yes")])
-
-(define_insn ""
-  [(set (match_operand:DF 0 "register_operand" "=&f")
-       (mult:DF (float_extend:DF
-                 (match_operand:SF 1 "reg_or_fp0_operand" "%fG"))
-                (float_extend:DF
-                 (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "mult%)%& %R1,%R2,%0"
   [(set_attr "type" "fmul")
    (set_attr "trap" "yes")])
                  (match_operand:SF 1 "reg_or_fp0_operand" "%fG"))
                 (float_extend:DF
                  (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
-  "TARGET_FP"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "mult%)%& %R1,%R2,%0"
   [(set_attr "type" "fmul")
    (set_attr "trap" "yes")])
   [(set (match_operand:SF 0 "register_operand" "=&f")
        (minus:SF (match_operand:SF 1 "reg_or_fp0_operand" "fG")
                  (match_operand:SF 2 "reg_or_fp0_operand" "fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
   "subs%)%& %R1,%R2,%0"
   [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
   [(set (match_operand:DF 0 "register_operand" "=&f")
        (minus:DF (match_operand:DF 1 "reg_or_fp0_operand" "fG")
                  (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
   "subt%)%& %R1,%R2,%0"
   [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
    (set_attr "trap" "yes")])
 
 (define_insn ""
-  [(set (match_operand:DF 0 "register_operand" "=&f")
-       (minus:DF (float_extend:DF
-                  (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
-                 (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
-  "subt%)%& %R1,%R2,%0"
-  [(set_attr "type" "fadd")
-   (set_attr "trap" "yes")])
-
-(define_insn ""
   [(set (match_operand:DF 0 "register_operand" "=f")
        (minus:DF (float_extend:DF
                   (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
                  (match_operand:DF 2 "reg_or_fp0_operand" "fG")))]
-  "TARGET_FP"
-  "subt%)%& %R1,%R2,%0"
-  [(set_attr "type" "fadd")
-   (set_attr "trap" "yes")])
-
-(define_insn ""
-  [(set (match_operand:DF 0 "register_operand" "=&f")
-       (minus:DF (match_operand:DF 1 "reg_or_fp0_operand" "fG")
-                 (float_extend:DF
-                  (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "subt%)%& %R1,%R2,%0"
   [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
        (minus:DF (match_operand:DF 1 "reg_or_fp0_operand" "fG")
                  (float_extend:DF
                   (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
-  "TARGET_FP"
-  "subt%)%& %R1,%R2,%0"
-  [(set_attr "type" "fadd")
-   (set_attr "trap" "yes")])
-
-(define_insn ""
-  [(set (match_operand:DF 0 "register_operand" "=&f")
-       (minus:DF (float_extend:DF
-                  (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
-                 (float_extend:DF
-                  (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "subt%)%& %R1,%R2,%0"
   [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
                   (match_operand:SF 1 "reg_or_fp0_operand" "fG"))
                  (float_extend:DF
                   (match_operand:SF 2 "reg_or_fp0_operand" "fG"))))]
-  "TARGET_FP"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "subt%)%& %R1,%R2,%0"
   [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
        (match_operator:DF 1 "alpha_comparison_operator"
                           [(match_operand:DF 2 "reg_or_fp0_operand" "fG")
                            (match_operand:DF 3 "reg_or_fp0_operand" "fG")]))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
   "cmpt%C1%' %R2,%R3,%0"
   [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
        (match_operator:DF 1 "alpha_comparison_operator"
                           [(match_operand:DF 2 "reg_or_fp0_operand" "fG")
                            (match_operand:DF 3 "reg_or_fp0_operand" "fG")]))]
-  "TARGET_FP"
-  "cmpt%C1%' %R2,%R3,%0"
-  [(set_attr "type" "fadd")
-   (set_attr "trap" "yes")])
-
-(define_insn ""
-  [(set (match_operand:DF 0 "register_operand" "=&f")
-       (match_operator:DF 1 "alpha_comparison_operator"
-                          [(float_extend:DF
-                            (match_operand:SF 2 "reg_or_fp0_operand" "fG"))
-                           (match_operand:DF 3 "reg_or_fp0_operand" "fG")]))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "cmpt%C1%' %R2,%R3,%0"
   [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
                           [(float_extend:DF
                             (match_operand:SF 2 "reg_or_fp0_operand" "fG"))
                            (match_operand:DF 3 "reg_or_fp0_operand" "fG")]))]
-  "TARGET_FP"
-  "cmpt%C1%' %R2,%R3,%0"
-  [(set_attr "type" "fadd")
-   (set_attr "trap" "yes")])
-
-(define_insn ""
-  [(set (match_operand:DF 0 "register_operand" "=&f")
-       (match_operator:DF 1 "alpha_comparison_operator"
-                          [(match_operand:DF 2 "reg_or_fp0_operand" "fG")
-                           (float_extend:DF
-                            (match_operand:SF 3 "reg_or_fp0_operand" "fG"))]))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "cmpt%C1%' %R2,%R3,%0"
   [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
                           [(match_operand:DF 2 "reg_or_fp0_operand" "fG")
                            (float_extend:DF
                             (match_operand:SF 3 "reg_or_fp0_operand" "fG"))]))]
-  "TARGET_FP"
-  "cmpt%C1%' %R2,%R3,%0"
-  [(set_attr "type" "fadd")
-   (set_attr "trap" "yes")])
-
-(define_insn ""
-  [(set (match_operand:DF 0 "register_operand" "=&f")
-       (match_operator:DF 1 "alpha_comparison_operator"
-                          [(float_extend:DF
-                            (match_operand:SF 2 "reg_or_fp0_operand" "fG"))
-                           (float_extend:DF
-                            (match_operand:SF 3 "reg_or_fp0_operand" "fG"))]))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "cmpt%C1%' %R2,%R3,%0"
   [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
                             (match_operand:SF 2 "reg_or_fp0_operand" "fG"))
                            (float_extend:DF
                             (match_operand:SF 3 "reg_or_fp0_operand" "fG"))]))]
-  "TARGET_FP"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "cmpt%C1%' %R2,%R3,%0"
   [(set_attr "type" "fadd")
    (set_attr "trap" "yes")])
                          (match_operand:DF 2 "fp0_operand" "G,G")])
         (match_operand:DF 1 "reg_or_fp0_operand" "fG,0")
         (match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
   "@
    fcmov%C3 %R4,%R1,%0
    fcmov%D3 %R4,%R5,%0"
                          (match_operand:DF 2 "fp0_operand" "G,G")])
         (match_operand:DF 1 "reg_or_fp0_operand" "fG,0")
         (match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
-  "TARGET_FP"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "@
    fcmov%C3 %R4,%R1,%0
    fcmov%D3 %R4,%R5,%0"
                          (match_operand:DF 2 "fp0_operand" "G,G")])
         (match_operand:SF 1 "reg_or_fp0_operand" "fG,0")
         (match_operand:SF 5 "reg_or_fp0_operand" "0,fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp == ALPHA_TP_INSN"
   "@
    fcmov%C3 %R4,%R1,%0
    fcmov%D3 %R4,%R5,%0"
                          (match_operand:DF 2 "fp0_operand" "G,G")])
         (match_operand:SF 1 "reg_or_fp0_operand" "fG,0")
         (match_operand:SF 5 "reg_or_fp0_operand" "0,fG")))]
-  "TARGET_FP"
-  "@
-   fcmov%C3 %R4,%R1,%0
-   fcmov%D3 %R4,%R5,%0"
-  [(set_attr "type" "fadd")])
-
-(define_insn ""
-  [(set (match_operand:DF 0 "register_operand" "=&f,f")
-       (if_then_else:DF 
-        (match_operator 3 "signed_comparison_operator"
-                        [(match_operand:DF 1 "reg_or_fp0_operand" "fG,fG")
-                         (match_operand:DF 2 "fp0_operand" "G,G")])
-        (float_extend:DF (match_operand:SF 4 "reg_or_fp0_operand" "fG,0"))
-        (match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
-  "@
-   fcmov%C3 %R4,%R1,%0
-   fcmov%D3 %R4,%R5,%0"
-  [(set_attr "type" "fadd")])
-
-(define_insn ""
-  [(set (match_operand:DF 0 "register_operand" "=&f,f")
-       (if_then_else:DF 
-        (match_operator 3 "signed_comparison_operator"
-                        [(float_extend:DF 
-                          (match_operand:SF 4 "reg_or_fp0_operand" "fG,fG"))
-                         (match_operand:DF 2 "fp0_operand" "G,G")])
-        (match_operand:DF 1 "reg_or_fp0_operand" "fG,0")
-        (match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "@
    fcmov%C3 %R4,%R1,%0
    fcmov%D3 %R4,%R5,%0"
                          (match_operand:DF 2 "fp0_operand" "G,G")])
         (float_extend:DF (match_operand:SF 4 "reg_or_fp0_operand" "fG,0"))
         (match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
-  "TARGET_FP"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "@
    fcmov%C3 %R4,%R1,%0
    fcmov%D3 %R4,%R5,%0"
                          (match_operand:DF 2 "fp0_operand" "G,G")])
         (match_operand:DF 1 "reg_or_fp0_operand" "fG,0")
         (match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
-  "TARGET_FP"
-  "@
-   fcmov%C3 %R4,%R1,%0
-   fcmov%D3 %R4,%R5,%0"
-  [(set_attr "type" "fadd")])
-
-(define_insn ""
-  [(set (match_operand:SF 0 "register_operand" "=&f,f")
-       (if_then_else:SF 
-        (match_operator 3 "signed_comparison_operator"
-                        [(float_extend:DF
-                          (match_operand:SF 4 "reg_or_fp0_operand" "fG,fG"))
-                         (match_operand:DF 2 "fp0_operand" "G,G")])
-        (match_operand:SF 1 "reg_or_fp0_operand" "fG,0")
-        (match_operand:SF 5 "reg_or_fp0_operand" "0,fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "@
    fcmov%C3 %R4,%R1,%0
    fcmov%D3 %R4,%R5,%0"
                          (match_operand:DF 2 "fp0_operand" "G,G")])
         (match_operand:SF 1 "reg_or_fp0_operand" "fG,0")
         (match_operand:SF 5 "reg_or_fp0_operand" "0,fG")))]
-  "TARGET_FP"
-  "@
-   fcmov%C3 %R4,%R1,%0
-   fcmov%D3 %R4,%R5,%0"
-  [(set_attr "type" "fadd")])
-
-(define_insn ""
-  [(set (match_operand:DF 0 "register_operand" "=&f,f")
-       (if_then_else:DF 
-        (match_operator 3 "signed_comparison_operator"
-                        [(float_extend:DF
-                          (match_operand:SF 4 "reg_or_fp0_operand" "fG,fG"))
-                         (match_operand:DF 2 "fp0_operand" "G,G")])
-        (float_extend:DF (match_operand:SF 1 "reg_or_fp0_operand" "fG,0"))
-        (match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
-  "TARGET_FP && (alpha_tp == ALPHA_TP_INSN)"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "@
    fcmov%C3 %R4,%R1,%0
    fcmov%D3 %R4,%R5,%0"
                          (match_operand:DF 2 "fp0_operand" "G,G")])
         (float_extend:DF (match_operand:SF 1 "reg_or_fp0_operand" "fG,0"))
         (match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
-  "TARGET_FP"
+  "TARGET_FP && alpha_tp != ALPHA_TP_INSN"
   "@
    fcmov%C3 %R4,%R1,%0
    fcmov%D3 %R4,%R5,%0"