[PATCH] D40078: [x86][icelake]VAES introduction
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 15 17:14:48 PST 2017
craig.topper added inline comments.
================
Comment at: lib/Target/X86/X86.td:174
+ "Promote selected AES instructions to AVX512/AVX registers",
+ [FeatureAVX]>;
def FeatureTBM : SubtargetFeature<"tbm", "HasTBM", "true",
----------------
coby wrote:
> craig.topper wrote:
> > coby wrote:
> > > craig.topper wrote:
> > > > Should this imply FeatureAES as well?
> > > not sure,
> > > it has no direct dependency afaiu, like AVX, for example, i.e. it does not imply that AES insns are apparent.
> > > practically, if you want to use 'vaesenc', for example, you ought to have a Key, so you'll probably want to use 'aeskeygenassist' which is on AES solely, but than again - it (vaes) may still be provided on its own, so I find it yet questionable
> > >
> > >
> > The EVEX->VEX pass is going to turn 128-bit EVEX encoded AES instructions into VEX encoded versions. So those instructions better be available with VAES.
> isn't it implies that only the (AES) subset implemented by VAES need to be available?
That's technically true, but a the instructions aren't enabled/disabled at that granularity.
================
Comment at: lib/Target/X86/X86InstrSSE.td:7153
// Perform One Round of an AES Encryption/Decryption Flow
let Predicates = [HasAVX, HasAES] in {
defm VAESENC : AESI_binop_rm_int<0xDC, "vaesenc",
----------------
This probably needs NoVLX_Or_NoVAES.
The fact that hasVAES doesn't imply HasAES is hiding this bug unlike the PCLMUL patch.
Repository:
rL LLVM
https://reviews.llvm.org/D40078
More information about the llvm-commits
mailing list