x86: make AES/PCMULQDQ respectively prereqs of VAES/VPCMULQDQ
authorJan Beulich <jbeulich@suse.com>
Thu, 14 Sep 2023 06:40:58 +0000 (08:40 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 14 Sep 2023 06:40:58 +0000 (08:40 +0200)
commitd5f9027c4c263a15d812c35fe0241cdc109df71f
treeab29fceb5b811a7d4617bf0fb9baaeff3ec3e211
parent5c83c7600e1250191e619d8ab7b99171ec4d85c4
x86: make AES/PCMULQDQ respectively prereqs of VAES/VPCMULQDQ

These probably should have been put in place already anyway, but they're
very much wanted in order to then put AVX10.1 support on top. Note that
to avoid reverse dependencies towards SSE (just like we already do for
AVX and XOP), add_isa_dependencies() needs some further tweaking.

While there also address a related anomaly: Disabling AES but neither
AVX nor VAES (similarly for {,V}PCLMULQDQ) would better keep the 128-bit
VEX-encoded forms available. Note that for this the VAES insns are moved
past the AVX+AES ones, to avoid the property-11 test suddenly failing.
The test really is wrong, but let's not also make things inconsistent:
Without the movement, YMM use would be correctly recorded for the
128-bit forms simply because the first template already matches, as long
as VAES wasn't disabled.  Yet it still wouldn't be if only AVX+AES were
enabled. Nor would behavior here then be the same as for VPCLMUL* insns.
opcodes/i386-gen.c
opcodes/i386-init.h
opcodes/i386-opc.tbl
opcodes/i386-tbl.h