https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112943

--- Comment #6 from Hongyu Wang <hongyuw at gcc dot gnu.org> ---
(In reply to Hongtao Liu from comment #3)
> (In reply to Jakub Jelinek from comment #1)
> > Why does ix86_expand_binary_operator have the use_ndd argument at all? 
> > Shouldn't it always act as if the argument is TARGET_APX_NDD?
> > Or, any particular reason why it isn't done in ashl<mode>3 (but in other
> > shifts/rotates)?
> By the time we support apx_ndd, the use_ndd is introduced to enable ndd
> pattern by pattern so that avoid other patterns crash, and now that we've
> completed the ndd patch, I think we can try to remove it. We need to make
> sure that there is no pattern under TARGET_APX_NDD but force a call to
> ix86_expand_binary_operator with use_ndd as false.

The ix86_expand_binary_operator and other binary fixup stuffs are not only
applied to legacy insns, they are also be used in sse/mmx patterns. If we drop
the parameter we need to maintain those vector patterns that could potential
calls the fixup functions at post-reload stage. So from design perspective, it
is better to just involve insns related to NDD, do not mess up with vector
insns.

Reply via email to