// Autogenerated by ARMTargetDefEmitter.cpp #ifndef ARM_PROCESSOR_FAMILY #define ARM_PROCESSOR_FAMILY(ENUM) #endif ARM_PROCESSOR_FAMILY(TSV110) ARM_PROCESSOR_FAMILY(CortexR82) ARM_PROCESSOR_FAMILY(ThunderX2T99) ARM_PROCESSOR_FAMILY(AppleA17) ARM_PROCESSOR_FAMILY(Neoverse512TVB) ARM_PROCESSOR_FAMILY(ThunderXT81) ARM_PROCESSOR_FAMILY(CortexA55) ARM_PROCESSOR_FAMILY(CortexX4) ARM_PROCESSOR_FAMILY(CortexA78AE) ARM_PROCESSOR_FAMILY(CortexA520) ARM_PROCESSOR_FAMILY(AppleA13) ARM_PROCESSOR_FAMILY(CortexA76) ARM_PROCESSOR_FAMILY(NeoverseN1) ARM_PROCESSOR_FAMILY(Kryo) ARM_PROCESSOR_FAMILY(AppleA11) ARM_PROCESSOR_FAMILY(AppleA14) ARM_PROCESSOR_FAMILY(NeoverseN2) ARM_PROCESSOR_FAMILY(AppleA16) ARM_PROCESSOR_FAMILY(CortexA73) ARM_PROCESSOR_FAMILY(CortexX2) ARM_PROCESSOR_FAMILY(AppleA7) ARM_PROCESSOR_FAMILY(CortexA77) ARM_PROCESSOR_FAMILY(CortexA53) ARM_PROCESSOR_FAMILY(Ampere1B) ARM_PROCESSOR_FAMILY(Ampere1A) ARM_PROCESSOR_FAMILY(CortexA35) ARM_PROCESSOR_FAMILY(CortexA510) ARM_PROCESSOR_FAMILY(ExynosM3) ARM_PROCESSOR_FAMILY(NeoverseV1) ARM_PROCESSOR_FAMILY(ThunderX) ARM_PROCESSOR_FAMILY(CortexA710) ARM_PROCESSOR_FAMILY(Ampere1) ARM_PROCESSOR_FAMILY(CortexA78C) ARM_PROCESSOR_FAMILY(AppleA12) ARM_PROCESSOR_FAMILY(A64FX) ARM_PROCESSOR_FAMILY(NeoverseN3) ARM_PROCESSOR_FAMILY(NeoverseV2) ARM_PROCESSOR_FAMILY(ThunderX3T110) ARM_PROCESSOR_FAMILY(CortexA57) ARM_PROCESSOR_FAMILY(CortexA75) ARM_PROCESSOR_FAMILY(Saphira) ARM_PROCESSOR_FAMILY(Carmel) ARM_PROCESSOR_FAMILY(CortexA72) ARM_PROCESSOR_FAMILY(ThunderXT83) ARM_PROCESSOR_FAMILY(NeoverseV3) ARM_PROCESSOR_FAMILY(ThunderXT88) ARM_PROCESSOR_FAMILY(Falkor) ARM_PROCESSOR_FAMILY(CortexX3) ARM_PROCESSOR_FAMILY(CortexA720) ARM_PROCESSOR_FAMILY(CortexX1) ARM_PROCESSOR_FAMILY(CortexA78) ARM_PROCESSOR_FAMILY(NeoverseE1) ARM_PROCESSOR_FAMILY(CortexA715) ARM_PROCESSOR_FAMILY(AppleA15) ARM_PROCESSOR_FAMILY(CortexR82AE) ARM_PROCESSOR_FAMILY(AppleA10) ARM_PROCESSOR_FAMILY(CortexA65) #undef ARM_PROCESSOR_FAMILY #ifndef ARM_ARCHITECTURE #define ARM_ARCHITECTURE(ENUM) #endif #undef ARM_ARCHITECTURE #ifdef EMIT_ARCHEXTKIND_ENUM enum ArchExtKind : unsigned { AEK_NONE = 1, AEK_AES, AEK_B16B16, AEK_BF16, AEK_BRBE, AEK_CPA, AEK_CRC, AEK_CRYPTO, AEK_CSSC, AEK_D128, AEK_DOTPROD, AEK_F32MM, AEK_F64MM, AEK_FAMINMAX, AEK_FCMA, AEK_FLAGM, AEK_FP, AEK_FP16, AEK_FP16FML, AEK_FP8, AEK_FP8DOT2, AEK_FP8DOT4, AEK_FP8FMA, AEK_FPMR, AEK_GCS, AEK_HBC, AEK_I8MM, AEK_ITE, AEK_JSCVT, AEK_LS64, AEK_LSE, AEK_LSE128, AEK_LUT, AEK_MTE, AEK_MOPS, AEK_PAUTH, AEK_PAUTHLR, AEK_PERFMON, AEK_PREDRES, AEK_SPECRES2, AEK_PROFILE, AEK_RAS, AEK_RASV2, AEK_RCPC, AEK_RCPC3, AEK_RDM, AEK_RAND, AEK_SB, AEK_SHA2, AEK_SHA3, AEK_SIMD, AEK_SM4, AEK_SME, AEK_SMEF16F16, AEK_SMEF64F64, AEK_SMEF8F16, AEK_SMEF8F32, AEK_SMEFA64, AEK_SMEI16I64, AEK_SME_LUTV2, AEK_SME2, AEK_SME2P1, AEK_SSBS, AEK_SSVE_FP8DOT2, AEK_SSVE_FP8DOT4, AEK_SSVE_FP8FMA, AEK_SVE, AEK_SVE2, AEK_SVE2AES, AEK_SVE2BITPERM, AEK_SVE2SHA3, AEK_SVE2SM4, AEK_SVE2P1, AEK_THE, AEK_TLBIW, AEK_TME, AEK_NUM_EXTENSIONS }; #undef EMIT_ARCHEXTKIND_ENUM #endif // EMIT_ARCHEXTKIND_ENUM #ifdef EMIT_EXTENSIONS inline constexpr ExtensionInfo Extensions[] = { {"aes", AArch64::AEK_AES, "+aes", "-aes", FEAT_AES, "+fp-armv8,+neon", 150}, {"b16b16", AArch64::AEK_B16B16, "+b16b16", "-b16b16", FEAT_INIT, "", 0}, {"bf16", AArch64::AEK_BF16, "+bf16", "-bf16", FEAT_BF16, "+bf16", 280}, {"brbe", AArch64::AEK_BRBE, "+brbe", "-brbe", FEAT_INIT, "", 0}, {"bti", AArch64::AEK_NONE, {}, {}, FEAT_BTI, "+bti", 510}, {"cpa", AArch64::AEK_CPA, "+cpa", "-cpa", FEAT_INIT, "", 0}, {"crc", AArch64::AEK_CRC, "+crc", "-crc", FEAT_CRC, "+crc", 110}, {"crypto", AArch64::AEK_CRYPTO, "+crypto", "-crypto", FEAT_INIT, "+aes,+sha2", 0}, {"cssc", AArch64::AEK_CSSC, "+cssc", "-cssc", FEAT_INIT, "", 0}, {"d128", AArch64::AEK_D128, "+d128", "-d128", FEAT_INIT, "", 0}, {"dgh", AArch64::AEK_NONE, {}, {}, FEAT_DGH, "", 260}, {"dit", AArch64::AEK_NONE, {}, {}, FEAT_DIT, "+dit", 180}, {"dotprod", AArch64::AEK_DOTPROD, "+dotprod", "-dotprod", FEAT_DOTPROD, "+dotprod,+fp-armv8,+neon", 104}, {"dpb", AArch64::AEK_NONE, {}, {}, FEAT_DPB, "+ccpp", 190}, {"dpb2", AArch64::AEK_NONE, {}, {}, FEAT_DPB2, "+ccpp,+ccdp", 200}, {"ebf16", AArch64::AEK_NONE, {}, {}, FEAT_EBF16, "+bf16", 290}, {"f32mm", AArch64::AEK_F32MM, "+f32mm", "-f32mm", FEAT_SVE_F32MM, "+sve,+f32mm,+fullfp16,+fp-armv8,+neon", 350}, {"f64mm", AArch64::AEK_F64MM, "+f64mm", "-f64mm", FEAT_SVE_F64MM, "+sve,+f64mm,+fullfp16,+fp-armv8,+neon", 360}, {"faminmax", AArch64::AEK_FAMINMAX, "+faminmax", "-faminmax", FEAT_INIT, "", 0}, {"fcma", AArch64::AEK_FCMA, "+complxnum", "-complxnum", FEAT_FCMA, "+fp-armv8,+neon,+complxnum", 220}, {"flagm", AArch64::AEK_FLAGM, "+flagm", "-flagm", FEAT_FLAGM, "+flagm", 20}, {"flagm2", AArch64::AEK_NONE, {}, {}, FEAT_FLAGM2, "+flagm,+altnzcv", 30}, {"fp", AArch64::AEK_FP, "+fp-armv8", "-fp-armv8", FEAT_FP, "+fp-armv8,+neon", 90}, {"fp16", AArch64::AEK_FP16, "+fullfp16", "-fullfp16", FEAT_FP16, "+fullfp16,+fp-armv8,+neon", 170}, {"fp16fml", AArch64::AEK_FP16FML, "+fp16fml", "-fp16fml", FEAT_FP16FML, "+fp16fml,+fullfp16,+fp-armv8,+neon", 175}, {"fp8", AArch64::AEK_FP8, "+fp8", "-fp8", FEAT_INIT, "+fpmr", 0}, {"fp8dot2", AArch64::AEK_FP8DOT2, "+fp8dot2", "-fp8dot2", FEAT_INIT, "", 0}, {"fp8dot4", AArch64::AEK_FP8DOT4, "+fp8dot4", "-fp8dot4", FEAT_INIT, "", 0}, {"fp8fma", AArch64::AEK_FP8FMA, "+fp8fma", "-fp8fma", FEAT_INIT, "+fpmr", 0}, {"fpmr", AArch64::AEK_FPMR, "+fpmr", "-fpmr", FEAT_INIT, "", 0}, {"frintts", AArch64::AEK_NONE, {}, {}, FEAT_FRINTTS, "+fptoint", 250}, {"gcs", AArch64::AEK_GCS, "+gcs", "-gcs", FEAT_INIT, "", 0}, {"hbc", AArch64::AEK_HBC, "+hbc", "-hbc", FEAT_INIT, "", 0}, {"i8mm", AArch64::AEK_I8MM, "+i8mm", "-i8mm", FEAT_I8MM, "+i8mm", 270}, {"ite", AArch64::AEK_ITE, "+ite", "-ite", FEAT_INIT, "", 0}, {"jscvt", AArch64::AEK_JSCVT, "+jsconv", "-jsconv", FEAT_JSCVT, "+fp-armv8,+neon,+jsconv", 210}, {"ls64", AArch64::AEK_LS64, "+ls64", "-ls64", FEAT_LS64, "", 520}, {"ls64_accdata", AArch64::AEK_NONE, {}, {}, FEAT_LS64_ACCDATA, "+ls64", 540}, {"ls64_v", AArch64::AEK_NONE, {}, {}, FEAT_LS64_V, "", 530}, {"lse", AArch64::AEK_LSE, "+lse", "-lse", FEAT_LSE, "+lse", 80}, {"lse128", AArch64::AEK_LSE128, "+lse128", "-lse128", FEAT_INIT, "", 0}, {"lut", AArch64::AEK_LUT, "+lut", "-lut", FEAT_INIT, "", 0}, {"memtag", AArch64::AEK_MTE, "+mte", "-mte", FEAT_MEMTAG, "", 440}, {"memtag2", AArch64::AEK_NONE, {}, {}, FEAT_MEMTAG2, "+mte", 450}, {"memtag3", AArch64::AEK_NONE, {}, {}, FEAT_MEMTAG3, "+mte", 460}, {"mops", AArch64::AEK_MOPS, "+mops", "-mops", FEAT_MOPS, "+mops", 650}, {"pauth", AArch64::AEK_PAUTH, "+pauth", "-pauth", FEAT_INIT, "", 0}, {"pauth-lr", AArch64::AEK_PAUTHLR, "+pauth-lr", "-pauth-lr", FEAT_INIT, "", 0}, {"pmull", AArch64::AEK_NONE, {}, {}, FEAT_PMULL, "+aes,+fp-armv8,+neon", 160}, {"pmuv3", AArch64::AEK_PERFMON, "+perfmon", "-perfmon", FEAT_INIT, "", 0}, {"predres", AArch64::AEK_PREDRES, "+predres", "-predres", FEAT_PREDRES, "+predres", 480}, {"predres2", AArch64::AEK_SPECRES2, "+specres2", "-specres2", FEAT_INIT, "", 0}, {"profile", AArch64::AEK_PROFILE, "+spe", "-spe", FEAT_INIT, "", 0}, {"ras", AArch64::AEK_RAS, "+ras", "-ras", FEAT_INIT, "", 0}, {"rasv2", AArch64::AEK_RASV2, "+rasv2", "-rasv2", FEAT_INIT, "", 0}, {"rcpc", AArch64::AEK_RCPC, "+rcpc", "-rcpc", FEAT_RCPC, "+rcpc", 230}, {"rcpc2", AArch64::AEK_NONE, {}, {}, FEAT_RCPC2, "+rcpc", 240}, {"rcpc3", AArch64::AEK_RCPC3, "+rcpc3", "-rcpc3", FEAT_RCPC3, "+rcpc,+rcpc3", 241}, {"rdm", AArch64::AEK_RDM, "+rdm", "-rdm", FEAT_RDM, "+rdm,+fp-armv8,+neon", 108}, {"rng", AArch64::AEK_RAND, "+rand", "-rand", FEAT_RNG, "+rand", 10}, {"rpres", AArch64::AEK_NONE, {}, {}, FEAT_RPRES, "", 300}, {"sb", AArch64::AEK_SB, "+sb", "-sb", FEAT_SB, "+sb", 470}, {"sha1", AArch64::AEK_NONE, {}, {}, FEAT_SHA1, "+fp-armv8,+neon", 120}, {"sha2", AArch64::AEK_SHA2, "+sha2", "-sha2", FEAT_SHA2, "+sha2,+fp-armv8,+neon", 130}, {"sha3", AArch64::AEK_SHA3, "+sha3", "-sha3", FEAT_SHA3, "+sha3,+sha2,+fp-armv8,+neon", 140}, {"simd", AArch64::AEK_SIMD, "+neon", "-neon", FEAT_SIMD, "+fp-armv8,+neon", 100}, {"sm4", AArch64::AEK_SM4, "+sm4", "-sm4", FEAT_SM4, "+sm4,+fp-armv8,+neon", 106}, {"sme", AArch64::AEK_SME, "+sme", "-sme", FEAT_SME, "+sme,+bf16", 430}, {"sme-f16f16", AArch64::AEK_SMEF16F16, "+sme-f16f16", "-sme-f16f16", FEAT_INIT, "+sme2,+sme-f16f16", 0}, {"sme-f64f64", AArch64::AEK_SMEF64F64, "+sme-f64f64", "-sme-f64f64", FEAT_SME_F64, "+sme,+sme-f64f64,+bf16", 560}, {"sme-f8f16", AArch64::AEK_SMEF8F16, "+sme-f8f16", "-sme-f8f16", FEAT_INIT, "+fp8,+sme2", 0}, {"sme-f8f32", AArch64::AEK_SMEF8F32, "+sme-f8f32", "-sme-f8f32", FEAT_INIT, "+sme2,+fp8", 0}, {"sme-fa64", AArch64::AEK_SMEFA64, "+sme-fa64", "-sme-fa64", FEAT_INIT, "", 0}, {"sme-i16i64", AArch64::AEK_SMEI16I64, "+sme-i16i64", "-sme-i16i64", FEAT_SME_I64, "+sme,+sme-i16i64,+bf16", 570}, {"sme-lutv2", AArch64::AEK_SME_LUTV2, "+sme-lutv2", "-sme-lutv2", FEAT_INIT, "", 0}, {"sme2", AArch64::AEK_SME2, "+sme2", "-sme2", FEAT_SME2, "+sme2,+sme,+bf16", 580}, {"sme2p1", AArch64::AEK_SME2P1, "+sme2p1", "-sme2p1", FEAT_INIT, "+sme2p1,+sme2,+sme,+bf16", 0}, {"ssbs", AArch64::AEK_SSBS, "+ssbs", "-ssbs", FEAT_SSBS, "", 490}, {"ssbs2", AArch64::AEK_NONE, {}, {}, FEAT_SSBS2, "+ssbs", 500}, {"ssve-fp8dot2", AArch64::AEK_SSVE_FP8DOT2, "+ssve-fp8dot2", "-ssve-fp8dot2", FEAT_INIT, "+sme2", 0}, {"ssve-fp8dot4", AArch64::AEK_SSVE_FP8DOT4, "+ssve-fp8dot4", "-ssve-fp8dot4", FEAT_INIT, "+sme2", 0}, {"ssve-fp8fma", AArch64::AEK_SSVE_FP8FMA, "+ssve-fp8fma", "-ssve-fp8fma", FEAT_INIT, "+sme2", 0}, {"sve", AArch64::AEK_SVE, "+sve", "-sve", FEAT_SVE, "+sve,+fullfp16,+fp-armv8,+neon", 310}, {"sve-bf16", AArch64::AEK_NONE, {}, {}, FEAT_SVE_BF16, "+sve,+bf16,+fullfp16,+fp-armv8,+neon", 320}, {"sve-ebf16", AArch64::AEK_NONE, {}, {}, FEAT_SVE_EBF16, "+sve,+bf16,+fullfp16,+fp-armv8,+neon", 330}, {"sve-i8mm", AArch64::AEK_NONE, {}, {}, FEAT_SVE_I8MM, "+sve,+i8mm,+fullfp16,+fp-armv8,+neon", 340}, {"sve2", AArch64::AEK_SVE2, "+sve2", "-sve2", FEAT_SVE2, "+sve2,+sve,+fullfp16,+fp-armv8,+neon", 370}, {"sve2-aes", AArch64::AEK_SVE2AES, "+sve2-aes", "-sve2-aes", FEAT_SVE_AES, "+sve2,+sve,+sve2-aes,+fullfp16,+fp-armv8,+neon", 380}, {"sve2-bitperm", AArch64::AEK_SVE2BITPERM, "+sve2-bitperm", "-sve2-bitperm", FEAT_SVE_BITPERM, "+sve2,+sve,+sve2-bitperm,+fullfp16,+fp-armv8,+neon", 400}, {"sve2-pmull128", AArch64::AEK_NONE, {}, {}, FEAT_SVE_PMULL128, "+sve2,+sve,+sve2-aes,+fullfp16,+fp-armv8,+neon", 390}, {"sve2-sha3", AArch64::AEK_SVE2SHA3, "+sve2-sha3", "-sve2-sha3", FEAT_SVE_SHA3, "+sve2,+sve,+sve2-sha3,+fullfp16,+fp-armv8,+neon", 410}, {"sve2-sm4", AArch64::AEK_SVE2SM4, "+sve2-sm4", "-sve2-sm4", FEAT_SVE_SM4, "+sve2,+sve,+sve2-sm4,+fullfp16,+fp-armv8,+neon", 420}, {"sve2p1", AArch64::AEK_SVE2P1, "+sve2p1", "-sve2p1", FEAT_INIT, "+sve2p1,+sve2,+sve,+fullfp16,+fp-armv8,+neon", 0}, {"the", AArch64::AEK_THE, "+the", "-the", FEAT_INIT, "", 0}, {"tlbiw", AArch64::AEK_TLBIW, "+tlbiw", "-tlbiw", FEAT_INIT, "", 0}, {"tme", AArch64::AEK_TME, "+tme", "-tme", FEAT_INIT, "", 0}, {"wfxt", AArch64::AEK_NONE, {}, {}, FEAT_WFXT, "+wfxt", 550}, {"none", AArch64::AEK_NONE, {}, {}, FEAT_INIT, "", ExtensionInfo::MaxFMVPriority}, }; #undef EMIT_EXTENSIONS #endif // EMIT_EXTENSIONS