[PATCH 08/12] x86: template-ize vector packed dword/qword integer insns
Jan Beulich
jbeulich@suse.com
Tue Aug 16 16:20:53 GMT 2022
On 16.08.2022 17:53, H.J. Lu wrote:
> On Tue, Aug 16, 2022 at 12:37 AM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 11.08.2022 19:23, H.J. Lu wrote:
>>> On Fri, Aug 5, 2022 at 5:26 AM Jan Beulich <jbeulich@suse.com> wrote:
>>>>
>>>> Many of the vector integer insns come in dword/qword element pairs. Most
>>>> of these pairs follow certain encoding patterns. Introduce a "dq"
>>>> template to reduce redundancy.
>>>>
>>>> Note that in the course of the conversion
>>>> - a few otherwise untouched templates are moved, so they end up next to
>>>> their siblings),
>>>> - drop an unhelpful Cpu64 from the GPR form of VPBROADCASTQ, matching
>>>> what we already have for KMOVQ - the diagnostic is better this way for
>>>> insns with multiple forms (i.e. the same Cpu64 attributes on {,V}MOVQ,
>>>> {,V}PEXTRQ, and {,V}PINSRQ are useful to keep),
>>>> - this adds benign/meaningless IgnoreSize attributes to the GPR forms of
>>>> KMOVD and VPBROADCASTD; it didn't seem worth avoiding this.
>>>> ---
>>>> For VPCOMPRESS{D,Q} and VPEXPAND{D,Q} the conversion could only be done
>>>> if we allowed Dword/Qword on the memory operands. Imo permitting this
>>>> makes sense anyway (as the memory operands aren't full [XYZ]mmword
>>>> ones), but such a functional change should probably be a separate patch.
>>
>> Do you have any view on this and the similar remarks in two other of the
>> patches in this series?
>
> Since these instructions don't take Dword/Qword memory operands, please
> leave them alone.
But they also don't really take [XYZ]mmword operands. They're rather similar
to the S/G insns, don't you agree?
Jan
More information about the Binutils
mailing list