Commit cd764269 by Pat Haugen Committed by Pat Haugen

power9.md (power9-qpdiv): Correct DFU pipe usage.

	* rs6000/power9.md (power9-qpdiv): Correct DFU pipe usage.
	(power9-qpmul): New.
	* rs6000/rs6000.md ("type" attr): Add qmul.
	(mul<mode>3, fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw,
	*nfms<mode>4_hw, mul<mode>3_odd, fma<mode>4_odd, *fms<mode>4_odd,
	*nfma<mode>4_odd, *nfms<mode>4_odd): Change type to qmul.

From-SVN: r254631
parent 025d57f0
2017-11-10 Pat Haugen <pthaugen@us.ibm.com>
* rs6000/power9.md (power9-qpdiv): Correct DFU pipe usage.
(power9-qpmul): New.
* rs6000/rs6000.md ("type" attr): Add qmul.
(mul<mode>3, fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw,
*nfms<mode>4_hw, mul<mode>3_odd, fma<mode>4_odd, *fms<mode>4_odd,
*nfma<mode>4_odd, *nfms<mode>4_odd): Change type to qmul.
2017-11-10 Martin Sebor <msebor@redhat.com>
PR c/81117
......@@ -434,7 +434,13 @@
(and (eq_attr "type" "vecdiv")
(eq_attr "size" "128")
(eq_attr "cpu" "power9"))
"DU_super_power9,dfu_power9")
"DU_super_power9,dfu_power9*44")
(define_insn_reservation "power9-qpmul" 24
(and (eq_attr "type" "qmul")
(eq_attr "size" "128")
(eq_attr "cpu" "power9"))
"DU_super_power9,dfu_power9*12")
(define_insn_reservation "power9-mffgpr" 2
(and (eq_attr "type" "mffgpr")
......
......@@ -182,7 +182,7 @@
cmp,
branch,jmpreg,mfjmpr,mtjmpr,trap,isync,sync,load_l,store_c,
cr_logical,delayed_cr,mfcr,mfcrf,mtcr,
fpcompare,fp,fpsimple,dmul,sdiv,ddiv,ssqrt,dsqrt,
fpcompare,fp,fpsimple,dmul,qmul,sdiv,ddiv,ssqrt,dsqrt,
vecsimple,veccomplex,vecdiv,veccmp,veccmpsimple,vecperm,
vecfloat,vecfdiv,vecdouble,mffgpr,mftgpr,crypto,
veclogical,veccmpfx,vecexts,vecmove,
......@@ -14335,7 +14335,7 @@
(match_operand:IEEE128 2 "altivec_register_operand" "v")))]
"TARGET_FLOAT128_HW && FLOAT128_IEEE_P (<MODE>mode)"
"xsmulqp %0,%1,%2"
[(set_attr "type" "vecfloat")
[(set_attr "type" "qmul")
(set_attr "size" "128")])
(define_insn "div<mode>3"
......@@ -14437,7 +14437,7 @@
(match_operand:IEEE128 3 "altivec_register_operand" "0")))]
"TARGET_FLOAT128_HW && FLOAT128_IEEE_P (<MODE>mode)"
"xsmaddqp %0,%1,%2"
[(set_attr "type" "vecfloat")
[(set_attr "type" "qmul")
(set_attr "size" "128")])
(define_insn "*fms<mode>4_hw"
......@@ -14449,7 +14449,7 @@
(match_operand:IEEE128 3 "altivec_register_operand" "0"))))]
"TARGET_FLOAT128_HW && FLOAT128_IEEE_P (<MODE>mode)"
"xsmsubqp %0,%1,%2"
[(set_attr "type" "vecfloat")
[(set_attr "type" "qmul")
(set_attr "size" "128")])
(define_insn "*nfma<mode>4_hw"
......@@ -14461,7 +14461,7 @@
(match_operand:IEEE128 3 "altivec_register_operand" "0"))))]
"TARGET_FLOAT128_HW && FLOAT128_IEEE_P (<MODE>mode)"
"xsnmaddqp %0,%1,%2"
[(set_attr "type" "vecfloat")
[(set_attr "type" "qmul")
(set_attr "size" "128")])
(define_insn "*nfms<mode>4_hw"
......@@ -14474,7 +14474,7 @@
(match_operand:IEEE128 3 "altivec_register_operand" "0")))))]
"TARGET_FLOAT128_HW && FLOAT128_IEEE_P (<MODE>mode)"
"xsnmsubqp %0,%1,%2"
[(set_attr "type" "vecfloat")
[(set_attr "type" "qmul")
(set_attr "size" "128")])
(define_insn "extend<SFDF:mode><IEEE128:mode>2_hw"
......@@ -14749,7 +14749,7 @@
UNSPEC_MUL_ROUND_TO_ODD))]
"TARGET_FLOAT128_HW && FLOAT128_IEEE_P (<MODE>mode)"
"xsmulqpo %0,%1,%2"
[(set_attr "type" "vecfloat")
[(set_attr "type" "qmul")
(set_attr "size" "128")])
(define_insn "div<mode>3_odd"
......@@ -14782,7 +14782,7 @@
UNSPEC_FMA_ROUND_TO_ODD))]
"TARGET_FLOAT128_HW && FLOAT128_IEEE_P (<MODE>mode)"
"xsmaddqpo %0,%1,%2"
[(set_attr "type" "vecfloat")
[(set_attr "type" "qmul")
(set_attr "size" "128")])
(define_insn "*fms<mode>4_odd"
......@@ -14795,7 +14795,7 @@
UNSPEC_FMA_ROUND_TO_ODD))]
"TARGET_FLOAT128_HW && FLOAT128_IEEE_P (<MODE>mode)"
"xsmsubqpo %0,%1,%2"
[(set_attr "type" "vecfloat")
[(set_attr "type" "qmul")
(set_attr "size" "128")])
(define_insn "*nfma<mode>4_odd"
......@@ -14808,7 +14808,7 @@
UNSPEC_FMA_ROUND_TO_ODD)))]
"TARGET_FLOAT128_HW && FLOAT128_IEEE_P (<MODE>mode)"
"xsnmaddqpo %0,%1,%2"
[(set_attr "type" "vecfloat")
[(set_attr "type" "qmul")
(set_attr "size" "128")])
(define_insn "*nfms<mode>4_odd"
......@@ -14822,7 +14822,7 @@
UNSPEC_FMA_ROUND_TO_ODD)))]
"TARGET_FLOAT128_HW && FLOAT128_IEEE_P (<MODE>mode)"
"xsnmsubqpo %0,%1,%2"
[(set_attr "type" "vecfloat")
[(set_attr "type" "qmul")
(set_attr "size" "128")])
(define_insn "trunc<mode>df2_odd"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment