@@ -222,7 +222,7 @@ inline constexpr ExtensionInfo Extensions[] = {
222
222
{" d128" , AArch64::AEK_D128, " +d128" , " -d128" , FEAT_INIT, " " , 0 },
223
223
{" dgh" , AArch64::AEK_NONE, {}, {}, FEAT_DGH, " " , 260 },
224
224
{" dit" , AArch64::AEK_NONE, {}, {}, FEAT_DIT, " +dit" , 180 },
225
- {" dotprod" , AArch64::AEK_DOTPROD, " +dotprod" , " -dotprod" , FEAT_DOTPROD, " +dotprod,+fp-armv8,+neon" , 50 },
225
+ {" dotprod" , AArch64::AEK_DOTPROD, " +dotprod" , " -dotprod" , FEAT_DOTPROD, " +dotprod,+fp-armv8,+neon" , 104 },
226
226
{" dpb" , AArch64::AEK_NONE, {}, {}, FEAT_DPB, " +ccpp" , 190 },
227
227
{" dpb2" , AArch64::AEK_NONE, {}, {}, FEAT_DPB2, " +ccpp,+ccdp" , 200 },
228
228
{" ebf16" , AArch64::AEK_NONE, {}, {}, FEAT_EBF16, " +bf16" , 290 },
@@ -233,7 +233,7 @@ inline constexpr ExtensionInfo Extensions[] = {
233
233
{" flagm2" , AArch64::AEK_NONE, {}, {}, FEAT_FLAGM2, " +flagm,+altnzcv" , 30 },
234
234
{" fp" , AArch64::AEK_FP, " +fp-armv8" , " -fp-armv8" , FEAT_FP, " +fp-armv8,+neon" , 90 },
235
235
{" fp16" , AArch64::AEK_FP16, " +fullfp16" , " -fullfp16" , FEAT_FP16, " +fullfp16,+fp-armv8,+neon" , 170 },
236
- {" fp16fml" , AArch64::AEK_FP16FML, " +fp16fml" , " -fp16fml" , FEAT_FP16FML, " +fp16fml,+fullfp16,+fp-armv8,+neon" , 40 },
236
+ {" fp16fml" , AArch64::AEK_FP16FML, " +fp16fml" , " -fp16fml" , FEAT_FP16FML, " +fp16fml,+fullfp16,+fp-armv8,+neon" , 175 },
237
237
{" frintts" , AArch64::AEK_NONE, {}, {}, FEAT_FRINTTS, " +fptoint" , 250 },
238
238
{" hbc" , AArch64::AEK_HBC, " +hbc" , " -hbc" , FEAT_INIT, " " , 0 },
239
239
{" i8mm" , AArch64::AEK_I8MM, " +i8mm" , " -i8mm" , FEAT_I8MM, " +i8mm" , 270 },
@@ -259,15 +259,15 @@ inline constexpr ExtensionInfo Extensions[] = {
259
259
{" rcpc" , AArch64::AEK_RCPC, " +rcpc" , " -rcpc" , FEAT_RCPC, " +rcpc" , 230 },
260
260
{" rcpc2" , AArch64::AEK_NONE, {}, {}, FEAT_RCPC2, " +rcpc" , 240 },
261
261
{" rcpc3" , AArch64::AEK_RCPC3, " +rcpc3" , " -rcpc3" , FEAT_RCPC3, " +rcpc,+rcpc3" , 241 },
262
- {" rdm" , AArch64::AEK_RDM, " +rdm" , " -rdm" , FEAT_RDM, " +rdm,+fp-armv8,+neon" , 70 },
262
+ {" rdm" , AArch64::AEK_RDM, " +rdm" , " -rdm" , FEAT_RDM, " +rdm,+fp-armv8,+neon" , 108 },
263
263
{" rng" , AArch64::AEK_RAND, " +rand" , " -rand" , FEAT_RNG, " +rand" , 10 },
264
264
{" rpres" , AArch64::AEK_NONE, {}, {}, FEAT_RPRES, " " , 300 },
265
265
{" sb" , AArch64::AEK_SB, " +sb" , " -sb" , FEAT_SB, " +sb" , 470 },
266
266
{" sha1" , AArch64::AEK_NONE, {}, {}, FEAT_SHA1, " +fp-armv8,+neon" , 120 },
267
267
{" sha2" , AArch64::AEK_SHA2, " +sha2" , " -sha2" , FEAT_SHA2, " +sha2,+fp-armv8,+neon" , 130 },
268
268
{" sha3" , AArch64::AEK_SHA3, " +sha3" , " -sha3" , FEAT_SHA3, " +sha3,+sha2,+fp-armv8,+neon" , 140 },
269
269
{" simd" , AArch64::AEK_SIMD, " +neon" , " -neon" , FEAT_SIMD, " +fp-armv8,+neon" , 100 },
270
- {" sm4" , AArch64::AEK_SM4, " +sm4" , " -sm4" , FEAT_SM4, " +sm4,+fp-armv8,+neon" , 60 },
270
+ {" sm4" , AArch64::AEK_SM4, " +sm4" , " -sm4" , FEAT_SM4, " +sm4,+fp-armv8,+neon" , 106 },
271
271
{" sme-f16f16" , AArch64::AEK_SMEF16F16, " +sme-f16f16" , " -sme-f16f16" , FEAT_INIT, " " , 0 },
272
272
{" sme-f64f64" , AArch64::AEK_SMEF64F64, " +sme-f64f64" , " -sme-f64f64" , FEAT_SME_F64, " +sme,+sme-f64f64,+bf16" , 560 },
273
273
{" sme-i16i64" , AArch64::AEK_SMEI16I64, " +sme-i16i64" , " -sme-i16i64" , FEAT_SME_I64, " +sme,+sme-i16i64,+bf16" , 570 },
@@ -807,20 +807,23 @@ inline constexpr CpuInfo CpuInfos[] = {
807
807
AArch64::AEK_MTE, AArch64::AEK_SB, AArch64::AEK_SSBS}))},
808
808
};
809
809
810
- // An alias for a CPU.
811
- struct CpuAlias {
812
- StringRef Alias ;
810
+ // Name alias
811
+ struct Alias {
812
+ StringRef AltName ;
813
813
StringRef Name;
814
814
};
815
815
816
- inline constexpr CpuAlias CpuAliases[] = {{" grace" , " neoverse-v2" }};
816
+ inline constexpr Alias CpuAliases[] = {{" grace" , " neoverse-v2" }};
817
+
818
+ inline constexpr Alias ExtAliases[] = {{" rdma" , " rdm" }};
817
819
818
820
bool getExtensionFeatures (
819
821
const AArch64::ExtensionBitset &Extensions,
820
822
std::vector<StringRef> &Features);
821
823
822
824
StringRef getArchExtFeature (StringRef ArchExt);
823
825
StringRef resolveCPUAlias (StringRef CPU);
826
+ StringRef resolveExtAlias (StringRef ArchExt);
824
827
825
828
// Information by Name
826
829
const ArchInfo *getArchForCpu (StringRef CPU);
0 commit comments