(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.