@@ -65,6 +65,14 @@ def TuneA520AE : SubtargetFeature<"a520ae", "ARMProcFamily", "CortexA520",
6565 FeaturePostRAScheduler,
6666 FeatureUseWzrToVecMove]>;
6767
68+ def TuneC1Nano : SubtargetFeature<"c1-nano", "ARMProcFamily",
69+ "C1Nano", "C1-Nano ARM Processors",[
70+ FeatureFuseAES,
71+ FeatureFuseAdrpAdd,
72+ FeaturePostRAScheduler,
73+ FeatureUseWzrToVecMove,
74+ FeatureUseFixedOverScalableIfEqualCost]>;
75+
6876def TuneA57 : SubtargetFeature<"a57", "ARMProcFamily", "CortexA57",
6977 "Cortex-A57 ARM processors", [
7078 FeatureFuseAES,
@@ -231,6 +239,18 @@ def TuneA725 : SubtargetFeature<"cortex-a725", "ARMProcFamily",
231239 FeatureEnableSelectOptimize,
232240 FeaturePredictableSelectIsExpensive]>;
233241
242+ def TuneC1Pro : SubtargetFeature<"c1-pro", "ARMProcFamily",
243+ "C1Pro", "C1-Pro ARM Processors",[
244+ FeatureFuseAES,
245+ FeaturePostRAScheduler,
246+ FeatureCmpBccFusion,
247+ FeatureALULSLFast,
248+ FeatureFuseAdrpAdd,
249+ FeatureFuseCmpCSel,
250+ FeatureFuseCmpCSet,
251+ FeatureEnableSelectOptimize,
252+ FeaturePredictableSelectIsExpensive]>;
253+
234254def TuneR82 : SubtargetFeature<"cortex-r82", "ARMProcFamily",
235255 "CortexR82",
236256 "Cortex-R82 ARM processors", [
@@ -300,6 +320,32 @@ def TuneX925 : SubtargetFeature<"cortex-x925", "ARMProcFamily",
300320 FeatureAvoidLDAPUR,
301321 FeaturePredictableSelectIsExpensive]>;
302322
323+ def TuneC1Ultra : SubtargetFeature<"c1-ultra", "ARMProcFamily",
324+ "C1Ultra", "C1-Ultra ARM Processors",[
325+ FeatureALULSLFast,
326+ FeatureFuseAdrpAdd,
327+ FeatureFuseCmpCSel,
328+ FeatureFuseCmpCSet,
329+ FeatureFuseAES,
330+ FeaturePostRAScheduler,
331+ FeatureEnableSelectOptimize,
332+ FeatureUseFixedOverScalableIfEqualCost,
333+ FeatureAvoidLDAPUR,
334+ FeaturePredictableSelectIsExpensive]>;
335+
336+ def TuneC1Premium : SubtargetFeature<"c1-premium", "ARMProcFamily",
337+ "C1Premium", "C1-Premium ARM Processors",[
338+ FeatureALULSLFast,
339+ FeatureFuseAdrpAdd,
340+ FeatureFuseCmpCSel,
341+ FeatureFuseCmpCSet,
342+ FeatureFuseAES,
343+ FeaturePostRAScheduler,
344+ FeatureEnableSelectOptimize,
345+ FeatureUseFixedOverScalableIfEqualCost,
346+ FeatureAvoidLDAPUR,
347+ FeaturePredictableSelectIsExpensive]>;
348+
303349def TuneA64FX : SubtargetFeature<"a64fx", "ARMProcFamily", "A64FX",
304350 "Fujitsu A64FX processors", [
305351 FeaturePostRAScheduler,
@@ -669,48 +715,6 @@ def TuneNeoverseV3AE : SubtargetFeature<"neoversev3AE", "ARMProcFamily", "Neover
669715 FeatureAvoidLDAPUR,
670716 FeaturePredictableSelectIsExpensive]>;
671717
672- def TuneC1Nano : SubtargetFeature<"c1-nano", "ARMProcFamily",
673- "C1Nano", "C1-Nano ARM Processors",[
674- FeatureFuseAES,
675- FeatureFuseAdrpAdd,
676- FeaturePostRAScheduler,
677- FeatureUseWzrToVecMove,
678- FeatureUseFixedOverScalableIfEqualCost]>;
679-
680- def TuneC1Pro : SubtargetFeature<"c1-pro", "ARMProcFamily",
681- "C1Pro", "C1-Pro ARM Processors",[
682- FeatureFuseAES,
683- FeaturePostRAScheduler,
684- FeatureCmpBccFusion,
685- FeatureALULSLFast,
686- FeatureFuseAdrpAdd,
687- FeatureFuseCmpCSel,
688- FeatureFuseCmpCSet,
689- FeatureEnableSelectOptimize,
690- FeaturePredictableSelectIsExpensive]>;
691-
692- def TuneC1Premium : SubtargetFeature<"c1-premium", "ARMProcFamily",
693- "C1Premium", "C1-Premium ARM Processors",[
694- FeatureALULSLFast,
695- FeatureFuseAdrpAdd,
696- FeatureFuseAES,
697- FeaturePostRAScheduler,
698- FeatureEnableSelectOptimize,
699- FeaturePredictableSelectIsExpensive]>;
700-
701- def TuneC1Ultra : SubtargetFeature<"c1-ultra", "ARMProcFamily",
702- "C1Ultra", "C1-Ultra ARM Processors",[
703- FeatureALULSLFast,
704- FeatureFuseAdrpAdd,
705- FeatureFuseCmpCSel,
706- FeatureFuseCmpCSet,
707- FeatureFuseAES,
708- FeaturePostRAScheduler,
709- FeatureEnableSelectOptimize,
710- FeatureUseFixedOverScalableIfEqualCost,
711- FeatureAvoidLDAPUR,
712- FeaturePredictableSelectIsExpensive]>;
713-
714718def TuneSaphira : SubtargetFeature<"saphira", "ARMProcFamily", "Saphira",
715719 "Qualcomm Saphira processors", [
716720 FeaturePostRAScheduler,
@@ -887,6 +891,19 @@ def ProcessorFeatures {
887891 FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8, FeatureJS,
888892 FeatureNEON, FeatureLSE, FeatureRAS, FeatureRCPC, FeatureRDM,
889893 FeatureDotProd, FeatureFPAC];
894+ list<SubtargetFeature> C1Nano = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
895+ FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
896+ FeatureSPECRES2, FeatureSSBS, FeatureRDM,
897+ FeatureVH, FeatureBF16, FeatureDotProd,
898+ FeatureFP16FML, FeatureFullFP16, FeatureMPAM,
899+ FeatureSVE, FeatureCCIDX, FeatureComplxNum,
900+ FeatureFPAC, FeatureJS, FeatureAM,
901+ FeatureRAS, FeatureSEL2, FeatureTRACEV8_4,
902+ FeatureAltFPCmp, FeatureFRInt3264,
903+ FeatureMTE, FeatureFineGrainedTraps,
904+ FeatureHCX, FeatureRCPC3, FeatureETE,
905+ FeatureSVEBitPerm, FeatureSVE2, FeatureTRBE,
906+ FeatureSME, FeatureSME2];
890907 list<SubtargetFeature> A65 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
891908 FeatureNEON, FeatureFullFP16, FeatureDotProd,
892909 FeatureRCPC, FeatureSSBS, FeatureRAS,
@@ -956,6 +973,20 @@ def ProcessorFeatures {
956973 FeatureDotProd, FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8,
957974 FeatureJS, FeatureLSE, FeatureNEON, FeaturePAuth, FeatureRAS,
958975 FeatureRCPC, FeatureRDM, FeatureFPAC];
976+ list<SubtargetFeature> C1Pro = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
977+ FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
978+ FeatureSPECRES2, FeatureSSBS, FeatureRDM,
979+ FeatureVH, FeatureBF16, FeatureDotProd,
980+ FeatureFP16FML, FeatureFullFP16, FeatureMPAM,
981+ FeatureSPE, FeatureSVE, FeatureCCIDX,
982+ FeatureComplxNum, FeatureFPAC, FeatureJS,
983+ FeatureAM, FeatureRAS, FeatureSEL2,
984+ FeatureTRACEV8_4, FeatureAltFPCmp,
985+ FeatureFRInt3264, FeatureMTE,
986+ FeatureFineGrainedTraps, FeatureHCX,
987+ FeatureSPE_EEF, FeatureRCPC3, FeatureETE,
988+ FeatureSVEBitPerm, FeatureSVE2, FeatureTRBE,
989+ FeatureSME, FeatureSME2];
959990 list<SubtargetFeature> R82 = [HasV8_0rOps, FeaturePerfMon, FeatureFullFP16,
960991 FeatureFP16FML, FeatureSSBS, FeaturePredRes,
961992 FeatureSB, FeatureRDM, FeatureDotProd,
@@ -1015,6 +1046,36 @@ def ProcessorFeatures {
10151046 FeatureDotProd, FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8,
10161047 FeatureJS, FeatureLSE, FeatureNEON, FeaturePAuth, FeatureRAS,
10171048 FeatureRCPC, FeatureRDM, FeatureFPAC];
1049+ list<SubtargetFeature> C1Ultra = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1050+ FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
1051+ FeatureSPECRES2, FeatureSSBS, FeatureRDM,
1052+ FeatureVH, FeatureBF16, FeatureDotProd,
1053+ FeatureFP16FML, FeatureFullFP16,
1054+ FeatureMPAM, FeatureSPE, FeatureSVE,
1055+ FeatureCCIDX, FeatureComplxNum, FeatureFPAC,
1056+ FeatureJS, FeatureAM, FeatureRAS,
1057+ FeatureSEL2, FeatureTRACEV8_4,
1058+ FeatureAltFPCmp, FeatureFRInt3264,
1059+ FeatureMTE, FeatureFineGrainedTraps,
1060+ FeatureHCX, FeatureSPE_EEF, FeatureRCPC3,
1061+ FeatureETE, FeatureSVEBitPerm, FeatureSVE2,
1062+ FeatureTRBE, FeatureSME, FeatureSME2];
1063+ list<SubtargetFeature> C1Premium = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1064+ FeatureCHK, FeatureFPARMv8,
1065+ FeaturePerfMon, FeatureSPECRES2,
1066+ FeatureSSBS, FeatureRDM, FeatureVH,
1067+ FeatureBF16, FeatureDotProd,
1068+ FeatureFP16FML, FeatureFullFP16,
1069+ FeatureMPAM, FeatureSPE, FeatureSVE,
1070+ FeatureCCIDX, FeatureComplxNum,
1071+ FeatureFPAC, FeatureJS, FeatureAM,
1072+ FeatureRAS, FeatureSEL2, FeatureTRACEV8_4,
1073+ FeatureAltFPCmp, FeatureFRInt3264,
1074+ FeatureMTE, FeatureFineGrainedTraps,
1075+ FeatureHCX, FeatureSPE_EEF, FeatureRCPC3,
1076+ FeatureETE, FeatureSVEBitPerm,
1077+ FeatureSVE2, FeatureTRBE, FeatureSME,
1078+ FeatureSME2];
10181079 list<SubtargetFeature> A64FX = [HasV8_2aOps, FeatureFPARMv8, FeatureNEON,
10191080 FeatureSHA2, FeaturePerfMon, FeatureFullFP16,
10201081 FeatureSVE, FeatureComplxNum,
@@ -1181,63 +1242,6 @@ def ProcessorFeatures {
11811242 FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8, FeatureJS,
11821243 FeatureLSE, FeatureNEON, FeatureRAS, FeatureRCPC, FeatureRDM,
11831244 FeatureRME, FeatureFPAC];
1184- list<SubtargetFeature> C1Nano = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1185- FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
1186- FeatureSPECRES2, FeatureSSBS, FeatureRDM,
1187- FeatureVH, FeatureBF16, FeatureDotProd,
1188- FeatureFP16FML, FeatureFullFP16, FeatureMPAM,
1189- FeatureSVE, FeatureCCIDX, FeatureComplxNum,
1190- FeatureFPAC, FeatureJS, FeatureAM,
1191- FeatureRAS, FeatureSEL2, FeatureTRACEV8_4,
1192- FeatureAltFPCmp, FeatureFRInt3264,
1193- FeatureMTE, FeatureFineGrainedTraps,
1194- FeatureHCX, FeatureRCPC3, FeatureETE,
1195- FeatureSVEBitPerm, FeatureSVE2, FeatureTRBE,
1196- FeatureSME, FeatureSME2];
1197- list<SubtargetFeature> C1Pro = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1198- FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
1199- FeatureSPECRES2, FeatureSSBS, FeatureRDM,
1200- FeatureVH, FeatureBF16, FeatureDotProd,
1201- FeatureFP16FML, FeatureFullFP16, FeatureMPAM,
1202- FeatureSPE, FeatureSVE, FeatureCCIDX,
1203- FeatureComplxNum, FeatureFPAC, FeatureJS,
1204- FeatureAM, FeatureRAS, FeatureSEL2,
1205- FeatureTRACEV8_4, FeatureAltFPCmp,
1206- FeatureFRInt3264, FeatureMTE,
1207- FeatureFineGrainedTraps, FeatureHCX,
1208- FeatureSPE_EEF, FeatureRCPC3, FeatureETE,
1209- FeatureSVEBitPerm, FeatureSVE2, FeatureTRBE,
1210- FeatureSME, FeatureSME2];
1211- list<SubtargetFeature> C1Premium = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1212- FeatureCHK, FeatureFPARMv8,
1213- FeaturePerfMon, FeatureSPECRES2,
1214- FeatureSSBS, FeatureRDM, FeatureVH,
1215- FeatureBF16, FeatureDotProd,
1216- FeatureFP16FML, FeatureFullFP16,
1217- FeatureMPAM, FeatureSPE, FeatureSVE,
1218- FeatureCCIDX, FeatureComplxNum,
1219- FeatureFPAC, FeatureJS, FeatureAM,
1220- FeatureRAS, FeatureSEL2, FeatureTRACEV8_4,
1221- FeatureAltFPCmp, FeatureFRInt3264,
1222- FeatureMTE, FeatureFineGrainedTraps,
1223- FeatureHCX, FeatureSPE_EEF, FeatureRCPC3,
1224- FeatureETE, FeatureSVEBitPerm,
1225- FeatureSVE2, FeatureTRBE, FeatureSME,
1226- FeatureSME2];
1227- list<SubtargetFeature> C1Ultra = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1228- FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
1229- FeatureSPECRES2, FeatureSSBS, FeatureRDM,
1230- FeatureVH, FeatureBF16, FeatureDotProd,
1231- FeatureFP16FML, FeatureFullFP16,
1232- FeatureMPAM, FeatureSPE, FeatureSVE,
1233- FeatureCCIDX, FeatureComplxNum, FeatureFPAC,
1234- FeatureJS, FeatureAM, FeatureRAS,
1235- FeatureSEL2, FeatureTRACEV8_4,
1236- FeatureAltFPCmp, FeatureFRInt3264,
1237- FeatureMTE, FeatureFineGrainedTraps,
1238- FeatureHCX, FeatureSPE_EEF, FeatureRCPC3,
1239- FeatureETE, FeatureSVEBitPerm, FeatureSVE2,
1240- FeatureTRBE, FeatureSME, FeatureSME2];
12411245 list<SubtargetFeature> Saphira = [HasV8_4aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
12421246 FeatureNEON, FeatureSPE, FeaturePerfMon, FeatureCRC,
12431247 FeatureCCIDX,
@@ -1327,6 +1331,8 @@ def : ProcessorModel<"cortex-a520", CortexA510Model, ProcessorFeatures.A520,
13271331 [TuneA520]>;
13281332def : ProcessorModel<"cortex-a520ae", CortexA510Model, ProcessorFeatures.A520AE,
13291333 [TuneA520AE]>;
1334+ def : ProcessorModel<"c1-nano", NeoverseN2Model,
1335+ ProcessorFeatures.C1Nano, [TuneC1Nano]>;
13301336def : ProcessorModel<"cortex-a57", CortexA57Model, ProcessorFeatures.A53,
13311337 [TuneA57]>;
13321338def : ProcessorModel<"cortex-a65", CortexA53Model, ProcessorFeatures.A65,
@@ -1361,6 +1367,8 @@ def : ProcessorModel<"cortex-a720ae", NeoverseN2Model, ProcessorFeatures.A720AE,
13611367 [TuneA720AE]>;
13621368def : ProcessorModel<"cortex-a725", NeoverseN3Model, ProcessorFeatures.A725,
13631369 [TuneA725]>;
1370+ def : ProcessorModel<"c1-pro", NeoverseN2Model,
1371+ ProcessorFeatures.C1Pro, [TuneC1Pro]>;
13641372def : ProcessorModel<"cortex-r82", CortexA55Model, ProcessorFeatures.R82,
13651373 [TuneR82]>;
13661374def : ProcessorModel<"cortex-r82ae", CortexA55Model, ProcessorFeatures.R82AE,
@@ -1377,6 +1385,10 @@ def : ProcessorModel<"cortex-x4", NeoverseV3Model, ProcessorFeatures.X4,
13771385 [TuneX4]>;
13781386def : ProcessorModel<"cortex-x925", NeoverseV3Model, ProcessorFeatures.X925,
13791387 [TuneX925]>;
1388+ def : ProcessorModel<"c1-ultra", NeoverseV3Model,
1389+ ProcessorFeatures.C1Ultra, [TuneC1Ultra]>;
1390+ def : ProcessorModel<"c1-premium", NeoverseV3Model,
1391+ ProcessorFeatures.C1Premium, [TuneC1Premium]>;
13801392def : ProcessorModel<"gb10", NeoverseV3Model, ProcessorFeatures.GB10,
13811393 [TuneX925]>;
13821394def : ProcessorModel<"grace", NeoverseV2Model, ProcessorFeatures.Grace,
@@ -1400,14 +1412,6 @@ def : ProcessorModel<"neoverse-v3", NeoverseV3Model,
14001412 ProcessorFeatures.NeoverseV3, [TuneNeoverseV3]>;
14011413def : ProcessorModel<"neoverse-v3ae", NeoverseV3AEModel,
14021414 ProcessorFeatures.NeoverseV3AE, [TuneNeoverseV3AE]>;
1403- def : ProcessorModel<"c1-nano", CortexA510Model,
1404- ProcessorFeatures.C1Nano, [TuneC1Nano]>;
1405- def : ProcessorModel<"c1-pro", NeoverseN2Model,
1406- ProcessorFeatures.C1Pro, [TuneC1Pro]>;
1407- def : ProcessorModel<"c1-premium", NeoverseV3Model,
1408- ProcessorFeatures.C1Premium, [TuneC1Premium]>;
1409- def : ProcessorModel<"c1-ultra", NeoverseV3Model,
1410- ProcessorFeatures.C1Ultra, [TuneC1Ultra]>;
14111415def : ProcessorModel<"exynos-m3", ExynosM3Model, ProcessorFeatures.ExynosM3,
14121416 [TuneExynosM3]>;
14131417def : ProcessorModel<"exynos-m4", ExynosM4Model, ProcessorFeatures.ExynosM4,
0 commit comments