2005-05-09 Adrian Straetling <straetling@de.ibm.com>
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 9 May 2005 17:24:37 +0000 (17:24 +0000)
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 9 May 2005 17:24:37 +0000 (17:24 +0000)
* config/s390/s390.c: (s390_adjust_priority): Adapt to changed
attribute names.
* config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
"x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
"x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
attribute names.
* config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
"fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
"*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
"*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
"*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
"*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
"mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
"*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
"*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
"*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
"*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
"*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
"*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
'type' value.
("*divsf3"): Additionally rename second pattern to
"*divsf3_ibm".
("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
"*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
"*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
"subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
"subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
'type values' and rename 'type' value.
("*addsf3"): Additionally rename second pattern to
"*addsf3_ibm".

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

gcc/ChangeLog
gcc/config/s390/2084.md
gcc/config/s390/s390.c
gcc/config/s390/s390.md

index c0d57d6..fdb1dbc 100644 (file)
@@ -1,5 +1,42 @@
 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
 
+       * config/s390/s390.c: (s390_adjust_priority): Adapt to changed 
+       attribute names.
+       * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
+       "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
+       ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
+       "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
+       attribute names.
+       * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
+       fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
+       "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
+       fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
+       ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
+       "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
+       "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
+       "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
+       "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
+       "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
+       "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
+       "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
+       "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
+       "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
+       "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
+       "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
+       'type' value.
+       ("*divsf3"): Additionally rename second pattern to
+       "*divsf3_ibm".
+       ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
+       "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
+       "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
+       "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
+       "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
+       'type values' and rename 'type' value.
+       ("*addsf3"): Additionally rename second pattern to
+       "*addsf3_ibm".
+
+2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
+
        * config/s390/s390.md: ("SHIFT"): New mode macro.
        ("lr", "shift"): New mode attributes.
        ("ashldi3", "lshrdi3"): Merge.
index 9d3f778..05681c5 100644 (file)
 ;; Floating point insns
 ;;
 
-(define_insn_reservation "x_fsimpd" 6 
+(define_insn_reservation "x_fsimpdf" 6 
   (and (eq_attr "cpu" "z990")
-       (eq_attr "type" "fsimpd,fmuld"))
+       (eq_attr "type" "fsimpdf,fmuldf"))
   "x_e1_t,x-wr-fp") 
 
-(define_insn_reservation "x_fsimps" 6 
+(define_insn_reservation "x_fsimpsf" 6 
   (and (eq_attr "cpu" "z990")
-       (eq_attr "type" "fsimps,fmuls"))
+       (eq_attr "type" "fsimpsf,fmulsf"))
   "x_e1_t,x-wr-fp") 
 
-(define_insn_reservation "x_fdivd" 36
+(define_insn_reservation "x_fdivdf" 36
   (and (eq_attr "cpu" "z990")
-       (eq_attr "type" "fdivd,fsqrtd"))
+       (eq_attr "type" "fdivdf,fsqrtdf"))
   "x_e1_t*30,x-wr-fp") 
 
-(define_insn_reservation "x_fdivs" 36 
+(define_insn_reservation "x_fdivsf" 36 
   (and (eq_attr "cpu" "z990")
-       (eq_attr "type" "fdivs,fsqrts"))
+       (eq_attr "type" "fdivsf,fsqrtsf"))
   "x_e1_t*30,x-wr-fp") 
 
-(define_insn_reservation "x_floadd" 6 
+(define_insn_reservation "x_floaddf" 6 
   (and (eq_attr "cpu" "z990")
-       (eq_attr "type" "floadd"))
+       (eq_attr "type" "floaddf"))
   "x_e1_t,x-wr-fp") 
 
-(define_insn_reservation "x_floads" 6 
+(define_insn_reservation "x_floadsf" 6 
   (and (eq_attr "cpu" "z990")
-       (eq_attr "type" "floads"))
+       (eq_attr "type" "floadsf"))
   "x_e1_t,x-wr-fp") 
 
-(define_insn_reservation "x_fstored" 1 
+(define_insn_reservation "x_fstoredf" 1 
   (and (eq_attr "cpu" "z990")
-       (eq_attr "type" "fstored"))
+       (eq_attr "type" "fstoredf"))
   "x_e1_t,x-wr-fp") 
 
-(define_insn_reservation "x_fstores" 1 
+(define_insn_reservation "x_fstoresf" 1 
   (and (eq_attr "cpu" "z990")
-       (eq_attr "type" "fstores"))
+       (eq_attr "type" "fstoresf"))
   "x_e1_t,x-wr-fp") 
 
 (define_insn_reservation "x_ftoi" 1 
        (eq_attr "type" "itof"))
   "x_e1_t*3,x-wr-fp") 
 
-(define_bypass 1 "x_fsimpd" "x_fstored")
+(define_bypass 1 "x_fsimpdf" "x_fstoredf")
 
-(define_bypass 1 "x_fsimps" "x_fstores")
+(define_bypass 1 "x_fsimpsf" "x_fstoresf")
 
-(define_bypass 1 "x_floadd" "x_fsimpd,x_fstored,x_floadd")
+(define_bypass 1 "x_floaddf" "x_fsimpdf,x_fstoredf,x_floaddf")
                 
-(define_bypass 1 "x_floads" "x_fsimps,x_fstores,x_floads")
+(define_bypass 1 "x_floadsf" "x_fsimpsf,x_fstoresf,x_floadsf")
 
 ;;
 ;; s390_agen_dep_p returns 1, if a register is set in the 
                 "s390_agen_dep_p")
 
 (define_bypass 9 "x_int,x_agen,x_lr" 
-                 "x_floadd, x_floads, x_fstored, x_fstores,\
-                 x_fsimpd, x_fsimps, x_fdivd, x_fdivs"
+                 "x_floaddf, x_floadsf, x_fstoredf, x_fstoresf,\
+                 x_fsimpdf, x_fsimpsf, x_fdivdf, x_fdivsf"
                 "s390_agen_dep_p")
 ;;
 ;; A load type instruction uses a bypass to feed the result back       
                 "s390_agen_dep_p")
 
 (define_bypass 5 "x_load"
-                 "x_floadd, x_floads, x_fstored, x_fstores,\
-                 x_fsimpd, x_fsimps, x_fdivd, x_fdivs"
+                 "x_floaddf, x_floadsf, x_fstoredf, x_fstoresf,\
+                 x_fsimpdf, x_fsimpsf, x_fdivdf, x_fdivsf"
                 "s390_agen_dep_p")
 
 ;;
                 "s390_agen_dep_p")
 
 (define_bypass 5 "x_larl, x_la"
-                 "x_floadd, x_floads, x_fstored, x_fstores,\
-                 x_fsimpd, x_fsimps, x_fdivd, x_fdivs"
+                 "x_floaddf, x_floadsf, x_fstoredf, x_fstoresf,\
+                 x_fsimpdf, x_fsimpsf, x_fdivdf, x_fdivsf"
                 "s390_agen_dep_p")
 
 ;;
index 7f8e361..69adbfe 100644 (file)
@@ -4211,8 +4211,8 @@ s390_adjust_priority (rtx insn ATTRIBUTE_UNUSED, int priority)
 
   switch (s390_safe_attr_type (insn))
     {
-      case TYPE_FSTORED:
-      case TYPE_FSTORES:
+      case TYPE_FSTOREDF:
+      case TYPE_FSTORESF:
        priority = priority << 3;
        break;
       case TYPE_STORE:
index 39e9aba..ef73692 100644 (file)
 (define_attr "type" "none,integer,load,lr,la,larl,lm,stm,
                     cs,vs,store,idiv,
                      imulhi,imulsi,imuldi,
-                    branch,jsr,fsimpd,fsimps,
-                    floadd,floads,fstored, fstores,
-                    fmuld,fmuls,fdivd,fdivs,
-                    ftoi,itof,fsqrtd,fsqrts,
+                    branch,jsr,fsimpdf,fsimpsf,
+                    floaddf,floadsf,fstoredf,fstoresf,
+                    fmuldf,fmulsf,fdivdf,fdivsf,
+                    ftoi,itof,fsqrtdf,fsqrtsf,
                      other"
   (cond [(eq_attr "op_type" "NN")  (const_string "other")
          (eq_attr "op_type" "SS")  (const_string "cs")]
   "s390_match_ccmode(insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "ltdbr\t%0,%0"
    [(set_attr "op_type" "RRE")
-    (set_attr "type"  "fsimpd")])
+    (set_attr "type"  "fsimpdf")])
 
 (define_insn "*cmpdf_ccs_0_ibm"
   [(set (reg 33)
   "s390_match_ccmode(insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IBM_FLOAT"
   "ltdr\t%0,%0"
    [(set_attr "op_type" "RR")
-    (set_attr "type"  "fsimpd")])
+    (set_attr "type"  "fsimpdf")])
 
 (define_insn "*cmpdf_ccs"
   [(set (reg 33)
    cdbr\t%0,%1
    cdb\t%0,%1"
    [(set_attr "op_type" "RRE,RXE")
-    (set_attr "type"  "fsimpd")])
+    (set_attr "type"  "fsimpdf")])
 
 (define_insn "*cmpdf_ccs_ibm"
   [(set (reg 33)
    cdr\t%0,%1
    cd\t%0,%1"
    [(set_attr "op_type" "RR,RX")
-    (set_attr "type"  "fsimpd")])
+    (set_attr "type"  "fsimpdf")])
 
 
 ; SF instructions
   "s390_match_ccmode(insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "ltebr\t%0,%0"
    [(set_attr "op_type" "RRE")
-    (set_attr "type"  "fsimps")])
+    (set_attr "type"  "fsimpsf")])
 
 (define_insn "*cmpsf_ccs_0_ibm"
   [(set (reg 33)
   "s390_match_ccmode(insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IBM_FLOAT"
   "lter\t%0,%0"
    [(set_attr "op_type" "RR")
-    (set_attr "type"  "fsimps")])
+    (set_attr "type"  "fsimpsf")])
 
 (define_insn "*cmpsf_ccs"
   [(set (reg 33)
    cebr\t%0,%1
    ceb\t%0,%1"
    [(set_attr "op_type" "RRE,RXE")
-    (set_attr "type"  "fsimps")])
+    (set_attr "type"  "fsimpsf")])
 
 (define_insn "*cmpsf_ccs"
   [(set (reg 33)
    cer\t%0,%1
    ce\t%0,%1"
    [(set_attr "op_type" "RR,RX")
-    (set_attr "type"  "fsimps")])
+    (set_attr "type"  "fsimpsf")])
 
 
 ;;
   [(set_attr "op_type" "RI,RI,RI,RI,RI,RXY,RRE,RXY,RXY,
                         RR,RX,RXY,RX,RXY,*,*,RS,RS,SS")
    (set_attr "type" "*,*,*,*,*,la,lr,load,store,
-                     floadd,floadd,floadd,fstored,fstored,*,*,*,*,*")])
+                     floaddf,floaddf,floaddf,fstoredf,fstoredf,*,*,*,*,*")])
 
 (define_split
   [(set (match_operand:DI 0 "register_operand" "")
    stdy\t%1,%0
    #"
   [(set_attr "op_type" "RS,RS,*,*,RR,RX,RXY,RX,RXY,SS")
-   (set_attr "type" "lm,stm,*,*,floadd,floadd,floadd,fstored,fstored,*")])
+   (set_attr "type" "lm,stm,*,*,floaddf,floaddf,floaddf,fstoredf,fstoredf,*")])
 
 (define_split
   [(set (match_operand:DI 0 "nonimmediate_operand" "")
   [(set_attr "op_type" "RI,RI,RI,RXY,RR,RX,RXY,RX,RXY,
                         RR,RX,RXY,RX,RXY,RRE,RRE,RS,RS,SS")
    (set_attr "type" "*,*,*,la,lr,load,load,store,store,
-                     floads,floads,floads,fstores,fstores,*,*,*,*,*")])
+                     floadsf,floadsf,floadsf,fstoresf,fstoresf,*,*,*,*,*")])
 
 (define_insn "*movsi_esa"
   [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d,d,R,!*f,!*f,!R,d,t,Q,t,?Q")
    lam\t%0,%0,%S1
    #"
   [(set_attr "op_type" "RI,RR,RX,RX,RR,RX,RX,RRE,RRE,RS,RS,SS")
-   (set_attr "type" "*,lr,load,store,floads,floads,fstores,*,*,*,*,*")])
+   (set_attr "type" "*,lr,load,store,floadsf,floadsf,fstoresf,*,*,*,*,*")])
 
 (define_peephole2
   [(set (match_operand:SI 0 "register_operand" "")
    stg\t%1,%0
    #"
   [(set_attr "op_type" "RR,RX,RXY,RX,RXY,RRE,RXY,RXY,SS")
-   (set_attr "type" "floadd,floadd,floadd,fstored,fstored,lr,load,store,*")])
+   (set_attr "type" "floaddf,floaddf,floaddf,fstoredf,fstoredf,lr,load,store,*")])
 
 (define_insn "*movdf_31"
   [(set (match_operand:DF 0 "nonimmediate_operand" "=f,f,f,R,T,d,Q,d,o,Q")
    #
    #"
   [(set_attr "op_type" "RR,RX,RXY,RX,RXY,RS,RS,*,*,SS")
-   (set_attr "type" "floadd,floadd,floadd,fstored,fstored,lm,stm,*,*,*")])
+   (set_attr "type" "floaddf,floaddf,floaddf,fstoredf,fstoredf,lm,stm,*,*,*")])
 
 (define_split
   [(set (match_operand:DF 0 "nonimmediate_operand" "")
    sty\t%1,%0
    #"
   [(set_attr "op_type" "RR,RX,RXY,RX,RXY,RR,RX,RXY,RX,RXY,SS")
-   (set_attr "type" "floads,floads,floads,fstores,fstores,
+   (set_attr "type" "floadsf,floadsf,floadsf,fstoresf,fstoresf,
                      lr,load,load,store,store,*")])
 
 ;
    ler\t%0,%1
    le\t%0,%1"
   [(set_attr "op_type"  "RR,RX")
-   (set_attr "type"   "floads,floads")])
+   (set_attr "type"   "floadsf")])
 
 ;
 ; extendsfdf2 instruction pattern(s).
    ldebr\t%0,%1
    ldeb\t%0,%1"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type"   "floads,floads")])
+   (set_attr "type"   "floadsf")])
 
 (define_insn "extendsfdf2_ibm"
   [(set (match_operand:DF 0 "register_operand" "=f,f")
    sdr\t%0,%0\;ler\t%0,%1
    sdr\t%0,%0\;le\t%0,%1"
   [(set_attr "length"   "4,6")
-   (set_attr "type"     "floads,floads")])
+   (set_attr "type"     "floadsf")])
 
 
 ;;
    adbr\t%0,%2
    adb\t%0,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type"     "fsimpd,fsimpd")])
+   (set_attr "type"     "fsimpdf")])
 
 (define_insn "*adddf3_cc"
   [(set (reg 33)
    adbr\t%0,%2
    adb\t%0,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type"     "fsimpd,fsimpd")])
+   (set_attr "type"     "fsimpdf")])
 
 (define_insn "*adddf3_cconly"
   [(set (reg 33)
   adbr\t%0,%2
   adb\t%0,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type"     "fsimpd,fsimpd")])
+   (set_attr "type"     "fsimpdf")])
 
 (define_insn "*adddf3_ibm"
   [(set (match_operand:DF 0 "register_operand" "=f,f")
    adr\t%0,%2
    ad\t%0,%2"
   [(set_attr "op_type"  "RR,RX")
-   (set_attr "type"     "fsimpd,fsimpd")])
+   (set_attr "type"     "fsimpdf")])
 
 ;
 ; addsf3 instruction pattern(s).
    aebr\t%0,%2
    aeb\t%0,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type"     "fsimps,fsimps")])
+   (set_attr "type"     "fsimpsf")])
 
 (define_insn "*addsf3_cc"
   [(set (reg 33)
    aebr\t%0,%2
    aeb\t%0,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type"     "fsimps,fsimps")])
+   (set_attr "type"     "fsimpsf")])
 
 (define_insn "*addsf3_cconly"
   [(set (reg 33)
    aebr\t%0,%2
    aeb\t%0,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type"     "fsimps,fsimps")])
+   (set_attr "type"     "fsimpsf")])
 
-(define_insn "*addsf3"
+(define_insn "*addsf3_ibm"
   [(set (match_operand:SF 0 "register_operand" "=f,f")
         (plus:SF (match_operand:SF 1 "nonimmediate_operand" "%0,0")
                  (match_operand:SF 2 "general_operand" "f,R")))
    aer\t%0,%2
    ae\t%0,%2"
   [(set_attr "op_type"  "RR,RX")
-   (set_attr "type"     "fsimps,fsimps")])
+   (set_attr "type"     "fsimpsf")])
 
 
 ;;
    sdbr\t%0,%2
    sdb\t%0,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type"     "fsimpd,fsimpd")])
+   (set_attr "type"     "fsimpdf")])
 
 (define_insn "*subdf3_cc"
   [(set (reg 33)
    sdbr\t%0,%2
    sdb\t%0,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type"     "fsimpd,fsimpd")])
+   (set_attr "type"     "fsimpdf")])
 
 (define_insn "*subdf3_cconly"
   [(set (reg 33)
    sdbr\t%0,%2
    sdb\t%0,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type"     "fsimpd,fsimpd")])
+   (set_attr "type"     "fsimpdf")])
 
 (define_insn "*subdf3_ibm"
   [(set (match_operand:DF 0 "register_operand" "=f,f")
    sdr\t%0,%2
    sd\t%0,%2"
   [(set_attr "op_type"  "RR,RX")
-   (set_attr "type"     "fsimpd,fsimpd")])
+   (set_attr "type"     "fsimpdf")])
 
 ;
 ; subsf3 instruction pattern(s).
    sebr\t%0,%2
    seb\t%0,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type"     "fsimps,fsimps")])
+   (set_attr "type"     "fsimpsf")])
 
 (define_insn "*subsf3_cc"
   [(set (reg 33)
    sebr\t%0,%2
    seb\t%0,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type"     "fsimps,fsimps")])
+   (set_attr "type"     "fsimpsf")])
 
 (define_insn "*subsf3_cconly"
   [(set (reg 33)
    sebr\t%0,%2
    seb\t%0,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type"     "fsimps,fsimps")])
+   (set_attr "type"     "fsimpsf")])
 
 (define_insn "*subsf3_ibm"
   [(set (match_operand:SF 0 "register_operand" "=f,f")
    ser\t%0,%2
    se\t%0,%2"
   [(set_attr "op_type"  "RR,RX")
-   (set_attr "type"     "fsimps,fsimps")])
+   (set_attr "type"     "fsimpsf")])
 
 
 ;;
    mdbr\t%0,%2
    mdb\t%0,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type"     "fmuld")])
+   (set_attr "type"     "fmuldf")])
 
 (define_insn "*muldf3_ibm"
   [(set (match_operand:DF 0 "register_operand" "=f,f")
    mdr\t%0,%2
    md\t%0,%2"
   [(set_attr "op_type"  "RR,RX")
-   (set_attr "type"    "fmuld")])
+   (set_attr "type"    "fmuldf")])
 
 (define_insn "*fmadddf"
   [(set (match_operand:DF 0 "register_operand" "=f,f")
    madbr\t%0,%1,%2
    madb\t%0,%1,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type" "fmuld")])
+   (set_attr "type" "fmuldf")])
 
 (define_insn "*fmsubdf"
   [(set (match_operand:DF 0 "register_operand" "=f,f")
    msdbr\t%0,%1,%2
    msdb\t%0,%1,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type" "fmuld")])
+   (set_attr "type" "fmuldf")])
 
 ;
 ; mulsf3 instruction pattern(s).
    meebr\t%0,%2
    meeb\t%0,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type"     "fmuls")])
+   (set_attr "type"     "fmulsf")])
 
 (define_insn "*mulsf3_ibm"
   [(set (match_operand:SF 0 "register_operand" "=f,f")
    mer\t%0,%2
    me\t%0,%2"
   [(set_attr "op_type"  "RR,RX")
-   (set_attr "type"     "fmuls")])
+   (set_attr "type"     "fmulsf")])
 
 (define_insn "*fmaddsf"
   [(set (match_operand:SF 0 "register_operand" "=f,f")
    maebr\t%0,%1,%2
    maeb\t%0,%1,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type" "fmuls")])
+   (set_attr "type" "fmulsf")])
 
 (define_insn "*fmsubsf"
   [(set (match_operand:SF 0 "register_operand" "=f,f")
    msebr\t%0,%1,%2
    mseb\t%0,%1,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type" "fmuls")])
+   (set_attr "type" "fmulsf")])
 
 ;;
 ;;- Divide and modulo instructions.
    ddbr\t%0,%2
    ddb\t%0,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type"     "fdivd")])
+   (set_attr "type"     "fdivdf")])
 
 (define_insn "*divdf3_ibm"
   [(set (match_operand:DF 0 "register_operand" "=f,f")
    ddr\t%0,%2
    dd\t%0,%2"
   [(set_attr "op_type"  "RR,RX")
-   (set_attr "type"     "fdivd")])
+   (set_attr "type"     "fdivdf")])
 
 ;
 ; divsf3 instruction pattern(s).
    debr\t%0,%2
    deb\t%0,%2"
   [(set_attr "op_type"  "RRE,RXE")
-   (set_attr "type"     "fdivs")])
+   (set_attr "type"     "fdivsf")])
 
-(define_insn "*divsf3"
+(define_insn "*divsf3_ibm"
   [(set (match_operand:SF 0 "register_operand" "=f,f")
         (div:SF (match_operand:SF 1 "register_operand" "0,0")
                 (match_operand:SF 2 "general_operand" "f,R")))]
    der\t%0,%2
    de\t%0,%2"
   [(set_attr "op_type"  "RR,RX")
-   (set_attr "type"     "fdivs")])
+   (set_attr "type"     "fdivsf")])
 
 
 ;;
   "s390_match_ccmode (insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lcdbr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimpd")])
+   (set_attr "type"     "fsimpdf")])
   
 (define_insn "*negdf2_cconly"
   [(set (reg 33)
   "s390_match_ccmode (insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lcdbr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimpd")])
+   (set_attr "type"     "fsimpdf")])
   
 (define_insn "*negdf2"
   [(set (match_operand:DF 0 "register_operand" "=f")
   "TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lcdbr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimpd")])
+   (set_attr "type"     "fsimpdf")])
 
 (define_insn "*negdf2_ibm"
   [(set (match_operand:DF 0 "register_operand" "=f")
   "TARGET_HARD_FLOAT && TARGET_IBM_FLOAT"
   "lcdr\t%0,%1"
   [(set_attr "op_type"  "RR")
-   (set_attr "type"     "fsimpd")])
+   (set_attr "type"     "fsimpdf")])
 
 ;
 ; negsf2 instruction pattern(s).
   "s390_match_ccmode (insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lcebr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimps")])
+   (set_attr "type"     "fsimpsf")])
   
 (define_insn "*negsf2_cconly"
   [(set (reg 33)
   "s390_match_ccmode (insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lcebr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimps")])
+   (set_attr "type"     "fsimpsf")])
   
 (define_insn "*negsf2"
   [(set (match_operand:SF 0 "register_operand" "=f")
   "TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lcebr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimps")])
+   (set_attr "type"     "fsimpsf")])
 
-(define_insn "*negsf2"
+(define_insn "*negsf2_ibm"
   [(set (match_operand:SF 0 "register_operand" "=f")
         (neg:SF (match_operand:SF 1 "register_operand" "f")))
    (clobber (reg:CC 33))]
   "TARGET_HARD_FLOAT && TARGET_IBM_FLOAT"
   "lcer\t%0,%1"
   [(set_attr "op_type"  "RR")
-   (set_attr "type"     "fsimps")])
+   (set_attr "type"     "fsimpsf")])
 
 
 ;;
   "s390_match_ccmode (insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lpdbr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimpd")])
+   (set_attr "type"     "fsimpdf")])
   
 (define_insn "*absdf2_cconly"
   [(set (reg 33)
   "s390_match_ccmode (insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lpdbr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimpd")])
+   (set_attr "type"     "fsimpdf")])
   
 (define_insn "*absdf2"
   [(set (match_operand:DF 0 "register_operand" "=f")
   "TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lpdbr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimpd")])
+   (set_attr "type"     "fsimpdf")])
 
 (define_insn "*absdf2_ibm"
   [(set (match_operand:DF 0 "register_operand" "=f")
   "TARGET_HARD_FLOAT && TARGET_IBM_FLOAT"
   "lpdr\t%0,%1"
   [(set_attr "op_type"  "RR")
-   (set_attr "type"     "fsimpd")])
+   (set_attr "type"     "fsimpdf")])
 
 ;
 ; abssf2 instruction pattern(s).
   "s390_match_ccmode (insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lpebr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimps")])
+   (set_attr "type"     "fsimpsf")])
   
 (define_insn "*abssf2_cconly"
   [(set (reg 33)
   "s390_match_ccmode (insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lpebr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimps")])
+   (set_attr "type"     "fsimpsf")])
   
 (define_insn "*abssf2"
   [(set (match_operand:SF 0 "register_operand" "=f")
   "TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lpebr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimps")])
+   (set_attr "type"     "fsimpsf")])
 
 (define_insn "*abssf2_ibm"
   [(set (match_operand:SF 0 "register_operand" "=f")
   "TARGET_HARD_FLOAT && TARGET_IBM_FLOAT"
   "lper\t%0,%1"
   [(set_attr "op_type"  "RR")
-   (set_attr "type"     "fsimps")])
+   (set_attr "type"     "fsimpsf")])
 
 ;;
 ;;- Negated absolute value instructions
   "s390_match_ccmode (insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lndbr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimpd")])
+   (set_attr "type"     "fsimpdf")])
   
 (define_insn "*negabsdf2_cconly"
   [(set (reg 33)
   "s390_match_ccmode (insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lndbr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimpd")])
+   (set_attr "type"     "fsimpdf")])
   
 (define_insn "*negabsdf2"
   [(set (match_operand:DF 0 "register_operand" "=f")
   "TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lndbr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimpd")])
+   (set_attr "type"     "fsimpdf")])
 
 (define_insn "*negabssf2_cc"
   [(set (reg 33)
   "s390_match_ccmode (insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lnebr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimps")])
+   (set_attr "type"     "fsimpsf")])
   
 (define_insn "*negabssf2_cconly"
   [(set (reg 33)
   "s390_match_ccmode (insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lnebr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimps")])
+   (set_attr "type"     "fsimpsf")])
   
 (define_insn "*negabssf2"
   [(set (match_operand:SF 0 "register_operand" "=f")
   "TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"
   "lnebr\t%0,%1"
   [(set_attr "op_type"  "RRE")
-   (set_attr "type"     "fsimps")])
+   (set_attr "type"     "fsimpsf")])
 
 ;;
 ;;- Square root instructions.
    sqdbr\t%0,%1
    sqdb\t%0,%1"
   [(set_attr "op_type" "RRE,RXE")
-   (set_attr "type" "fsqrtd")])
+   (set_attr "type" "fsqrtdf")])
 
 ;
 ; sqrtsf2 instruction pattern(s).
    sqebr\t%0,%1
    sqeb\t%0,%1"
   [(set_attr "op_type" "RRE,RXE")
-   (set_attr "type" "fsqrts")])
+   (set_attr "type" "fsqrtsf")])
 
 ;;
 ;;- One complement instructions.