[PATCH] x86: adjust AVX-VNNI-INT{8,16} prereqs
Jiang, Haochen
haochen.jiang@intel.com
Fri Sep 6 02:51:14 GMT 2024
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Thursday, September 5, 2024 7:32 PM
>
> These are more logical to take AVX-VNNI as prereq, retaining AVX2 as an
> indirect prereq.
From HW side, that is ok till now since I don't see a machine with
AVX-VNNI-INT{8,16} but no AVX-VNNI.
But this will lead to if someone uses .arch .noavx_vnni, then it will turn
of AVX-VNNI-INT{8,16}. I don't think this is the expected behavior. If we
care about this .noxxx behavior, we should not do that. This is not quite
same as the AVX10.2 I will mention next since IMO, these three ISAs
are quite independent.
BTW, maybe the .noxxx is the only blocking issue I could see currently for
the change.
> ---
> In turn the question arises whether AVX10.2 should consider both to be
> prereqs as well. The situation here isn't the same as it was with AVX512-VNNI
> vs AVX-VNNI, after all.
For AVX10.2, maybe I would like to prefer to imply them since it is weird not
having VEX part when having EVEX part if the EVEX part is introduced after
VEX and there is no HW only having EVEX part. Although GCC will not do
the imply since we are pretty conservative on that and will stick to doc,
in Binutils, for convenience, I suppose it could be done.
Thx,
Haochen
>
> --- a/opcodes/i386-gen.c
> +++ b/opcodes/i386-gen.c
> @@ -163,9 +163,9 @@ static const dependency isa_dependencies
> { "AVX_IFMA",
> "AVX2" },
> { "AVX_VNNI_INT8",
> - "AVX2" },
> + "AVX_VNNI" },
> { "AVX_VNNI_INT16",
> - "AVX2" },
> + "AVX_VNNI" },
> { "AVX_NE_CONVERT",
> "AVX2" },
> { "CX16",
More information about the Binutils
mailing list