[PATCH v2] Support Intel AVX10.2 media instructions
Jiang, Haochen
haochen.jiang@intel.com
Fri Sep 13 03:21:11 GMT 2024
Hi Jan,
I feel illness since Monday and did not recover till now.
I will first reply to some of your comments that I could handle
by my current low performance but at least working brain. I will reply
to the others the next week.
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Wednesday, September 11, 2024 9:53 PM
>
> On 09.09.2024 10:18, Haochen Jiang wrote:
> > Nit: I will rebase to the following Jan's patch after that patch's
> > AVX-VNNI-INT8/16 being implied by AVX10.2 part committed to trunk.
> >
> > https://sourceware.org/pipermail/binutils/2024-September/136630.html
>
> I'm puzzled - didn't you ask that we not do this move?
Actually I am ok with the AVX10.2 imply AVX_VNNI_INT8/16 part although
the doc won't be changed. I only have objection with AVX_VNNI_INT8/16
imply AVX_VNNI. But if you think we should stick to the doc, then
none of them should be done.
> > We could not use this
> > method to vmpsadbw due to different prefix although it is a promotion
> > from AVX2.
>
> I'm afraid I don't understand this. Why can't you use %XE in the new table entry?
> (Of course you can't simply re-use the original one.)
They are under different opcode I suppose. Maybe it could be used by
linking to the original table directly although they are different opcode.
> > --- a/opcodes/i386-opc.tbl
> > +++ b/opcodes/i386-opc.tbl
> > @@ -3073,26 +3073,41 @@ vpdpwssd<vnni><sat>, 0x6652|<sat:opc>,
> > <vnni:avx>_VNNI, Modrm|Space0F38|Src1VVVV
> >
> > // {AVX512,AVX}_VNNI instructions end
> >
> > -// AVX-VNNI-INT8 instructions.
> > +// AVX-VNNI-INT8/AVX10.2 instructions.
> > +
> > +<vnni2:avx:attr:reg:mem, $y:_VNNI_INT8:Vex::,
> > +$z:10_2:Masking|Broadcast|Disp8ShiftVL:RegZMM:Dword>
> >
> > <dpb:pfx, uu:, ss:f2, su:f3>
> >
> > -vpdpb<dpb>d<sat>, 0x<dpb:pfx>50|<sat:opc>, AVX_VNNI_INT8,
> > Modrm|Vex|Space0F38|Src1VVVV|VexW0|CheckOperandSize|NoSuf, {
> > RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM,
> RegXMM|RegYMM }
> > +vpdpb<dpb>d<vnni2><sat>, 0x<dpb:pfx>50|<sat:opc>, AVX<vnni2:avx>,
> >
> +Modrm|Space0F38|Src1VVVV|VexW0|<vnni2:attr>|CheckOperandSize|NoSuf, {
> > +RegXMM|RegYMM|<vnni2:reg>|<vnni2:mem>|Unspecified|BaseIndex,
> > +RegXMM|RegYMM|<vnni2:reg>, RegXMM|RegYMM|<vnni2:reg> }
> > +
> > +<vnni2>
>
> Hmm, no, this wasn't the plan. The plan was that you'd add a single new line re-
> using the existing templatization, without adding yet further one.
> (It's also hard to see what the 2 and 3 in the template names are meant to
> represent.)
Ah... That part was done on Mondy afternoon when I start to feel dizzy. That definitely
should not be done this way.
I will reply to rest of them next week after my recovery. Sorry for the delay.
Thx,
Haochen
More information about the Binutils
mailing list