On 11/08/2017 11:30 AM, Segher Boessenkool wrote: >> --- gcc/config/rs6000/power9.md (revision 254377) >> +++ gcc/config/rs6000/power9.md (working copy) >> @@ -436,6 +436,12 @@ (define_insn_reservation "power9-qpdiv" >> (eq_attr "cpu" "power9")) >> "DU_super_power9,dfu_power9") >> >> +(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") > All other p9 reservations (other than integer div) do not reserve a > unit more than one cycle. Will this blow up size of the automaton? > If not, should the other qp ops not reserve for more cycles, too? >
You are observant. :) I should have just included the change for qp divide in this patch since it's so simple, but didn't. The qp divide also blocks the pipe for a number of cycles, so yes should be changed. The other qp insns (add/sub/etc) do not, so are correct as is. > Rest looks fine; okay for trunk with the reservation thing taken care > of one way or the other. Thanks! Following is additional change I'll include along with updated ChangeLog. Testing was fine. @@ -434,8 +434,14 @@ (and (eq_attr "type" "vecdiv") (eq_attr "size" "128") (eq_attr "cpu" "power9")) - "DU_super_power9,dfu_power9") + "DU_super_power9,dfu_power9*44")