[PATCH] Support Intel AVX10.2 minmax, vector copy and compare instructions

Jiang, Haochen haochen.jiang@intel.com
Tue Dec 10 08:27:20 GMT 2024


> From: Jan Beulich <jbeulich@suse.com>
> Sent: Tuesday, December 10, 2024 3:57 PM
> 
> On 04.12.2024 08:34, Haochen Jiang wrote:
> 
> Did you consider using .irp for the above as well, like you already do ...
> 
> > +	vmovd	%xmm5, %xmm6
> > +	vmovd.s	%xmm5, %xmm6
> > +	vmovw	%xmm5, %xmm6
> > +	vmovw.s	%xmm5, %xmm6
> > +
> > +	.irp m, "", u
> > +	v\m\()comxsd	%xmm5, %xmm6
> 
> ... here? I realize the broadcast forms would need pulling out, yet that would
> still be a fair reduction of redundancy.

Ok I will do that.

> 
> > --- a/opcodes/i386-dis-evex-len.h
> > +++ b/opcodes/i386-dis-evex-len.h
> > @@ -1,4 +1,14 @@
> >  static const struct dis386 evex_len_table[][3] = {
> > +  /* EVEX_LEN_0F7E_P_1_W_1  */
> > +  {
> > +    { "vmovd",       { XMScalar, EXd }, 0 },
> > +  },
> 
> Isn't this ..._W_0? (There's also an extra blank there.)

It should be _W_0. I don't see any reason why it is _W_1 here. Should
be a typo.

> 
> > --- a/opcodes/i386-opc.tbl
> > +++ b/opcodes/i386-opc.tbl
> I don't think this is needed; see vcomis<sdh> and vucomis<sdh>. They simply
> use Disp8MemShift without value, and the same ought to work here.

I will have a try.

Thx,
Haochen


More information about the Binutils mailing list