[PATCH] D40078: [x86][icelake]VAES introduction

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 15 12:51:32 PST 2017


craig.topper added inline comments.


================
Comment at: lib/Support/Host.cpp:433
   FEATURE_SHA,
+  FEATURE_VAES,
 };
----------------
coby wrote:
> craig.topper wrote:
> > This isn't needed if it isn't used by code in getHostCPUName
> I see, thanks.
> I assume same logic is to be applied to entries like FEATURE_PCLMUL?
The first 31 values need to be kept in sync with compiler-rt since we have a copy and paste of some of this code in compiler-rt. For runtime CPU detection in compiled binaries. It makes diffing easier if they are synchronized. I just committed some comments that clarify that a little better. I'm hoping to move this enum to a header file that clang can use as a proxy for what's in compiler-rt as well since clang can't include any files from the compiler-rt project. Currently we just have a separate copy code in clang too.


================
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:
> > 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.


Repository:
  rL LLVM

https://reviews.llvm.org/D40078





More information about the llvm-commits mailing list