[PATCH 2/6] Support Intel AMX-AVX512
Jiang, Haochen
haochen.jiang@intel.com
Tue Nov 19 03:15:05 GMT 2024
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Friday, November 15, 2024 10:04 PM
>
> > --- a/opcodes/i386-dis.c
> > +++ b/opcodes/i386-dis.c
> > @@ -592,6 +592,7 @@ fetch_error (const instr_info *ins) #define
> > VexGatherD { OP_VEX, vex_vsib_d_w_dq_mode } #define VexGatherQ {
> > OP_VEX, vex_vsib_q_w_dq_mode } #define VexGdq { OP_VEX, dq_mode }
> > +#define VexGd { OP_VEX, d_mode }
>
> Why wouldn't VexGdq be suitable to use?
VexGdq could be used but not that exact on meaning. I actually used VexGdq
at the very beginning but eventually used d_mode due to only r32 is permitted
for clearness. I am ok to go either way.
>
> > @@ -13931,6 +13949,8 @@ OP_VEX (instr_info *ins, int bytemode, int
> sizeflag ATTRIBUTE_UNUSED)
> > case 512:
> > names = att_names_zmm;
> > ins->evex_used |= EVEX_len_used;
> > + if (bytemode == d_mode)
> > + names = att_names32;
> > break;
> > default:
> > abort ();
>
> Irrespective of VexGd (i.e. d_mode) or VexGdq (dq_mode) - the GPR handling
> imo simply wants pulling out of this switch().
Let me find a way to get it out. It falls to here actually due to VexGd/VexGdq.
>
> > --- a/opcodes/i386-gen.c
> > +++ b/opcodes/i386-gen.c
> > @@ -265,6 +265,8 @@ static const dependency isa_dependencies[] =
> > "AMX_TILE" },
> > { "AMX_TRANSPOSE",
> > "AMX_TILE" },
> > + { "AMX_AVX512",
> > + "AMX_TILE|AVX10_2" },
>
> This dependency looks certainly correct to add, yet how does that fit with all
> insns only supporting VL=512, when AVX10 is specifically about permitting
> vector lengths only up to 256 in hardware?
>
I did not quite get the question. I guess your concern is whether it will be an
insn only support VL=128/256 for AVX10. I suppose there won't be that or it
will be quite disastrous.
>
> And just to mention it here again - this shouldn't go in without the encoding
> anomalies sorted, one way or the other.
Yes, let's wait for that.
Thx,
Haochen
More information about the Binutils
mailing list