[PATCH] D113256: [AArch64][ARM] Enablement of Cortex-A710 Support

Dave Green via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 10 01:37:45 PST 2021


dmgreen added inline comments.


================
Comment at: llvm/include/llvm/Support/AArch64TargetParser.def:181
+                  AArch64::AEK_SVE2BITPERM | AArch64::AEK_BF16))
 AARCH64_CPU_NAME("cortex-a78c", ARMV8_2A, FK_CRYPTO_NEON_FP_ARMV8, false,
                  (AArch64::AEK_FP16 | AArch64::AEK_DOTPROD | AArch64::AEK_RCPC |
----------------
I would go after this, it being a a78-like cpu it's probably worth keeping the two together.


================
Comment at: llvm/include/llvm/Support/AArch64TargetParser.def:159-160
                   AArch64::AEK_RCPC | AArch64::AEK_SSBS))
+AARCH64_CPU_NAME("cortex-a710", ARMV9A, FK_NEON_FP_ARMV8, false,
+                 (AArch64::AEK_MTE | AArch64::AEK_PAUTH | AArch64::AEK_FLAGM |
+                  AArch64::AEK_SB | AArch64::AEK_I8MM | AArch64::AEK_FP16FML |
----------------
dmgreen wrote:
> lenary wrote:
> > dmgreen wrote:
> > > Natural order would be better I think, where the new A710 is added after the A78.
> > > 
> > > FlagM should already be included as a part of 8.4, so isn't needed here.
> > > Should BFloat16 be added?
> > > FlagM should already be included as a part of 8.4, so isn't needed here.
> > 
> > FlagM is not part of the `AARCH64_ARCH("armv9-a", ARMV9A ...)`  definition, nor part of the equivalents for armv8.4a and armv8.5a, so it was added explicitly here.
> > 
> > > Should BFloat16 be added?
> > 
> > Yes
> > 
> > 
> > 
> FeatureFlagM is included in HasV8_4aOps. So should already be included (much like something like dotprod).
> 
> Why AEK_FLAGM isn't part of ARMV8_4A I don't know. And why we have two maps for the same set of information...
I think that AEK_FLAGM should be included in architecture that is 8.4+. Then it shouldn't be needed here.
Perhaps lets do that as a separate commit though.


================
Comment at: llvm/include/llvm/Support/ARMTargetParser.def:315
+              ARM::AEK_I8MM))
 ARM_CPU_NAME("cortex-a78c", ARMV8_2A, FK_CRYPTO_NEON_FP_ARMV8, false,
              ARM::AEK_FP16 | ARM::AEK_DOTPROD)
----------------
Ditto and same in other places.


================
Comment at: llvm/lib/Target/AArch64/AArch64Subtarget.cpp:87
     PrefFunctionLogAlignment = 4;
-    VScaleForTuning = 1;
     break;
----------------
Make sure you keep this in. It looks like it might have been removed by accident.


================
Comment at: llvm/unittests/Support/TargetParserTest.cpp:278
                          "8-A"),
+        ARMCPUTestParams("cortex-a710", "armv9-a", "neon-fp-armv8",
+                         ARM::AEK_SEC | ARM::AEK_MP | ARM::AEK_VIRT |
----------------
Ordering.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D113256/new/

https://reviews.llvm.org/D113256



More information about the cfe-commits mailing list