@@ -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,
@@ -670,48 +716,6 @@ def TuneNeoverseV3AE : SubtargetFeature<"neoversev3AE", "ARMProcFamily", "Neover
670716 FeatureAvoidLDAPUR,
671717 FeaturePredictableSelectIsExpensive]>;
672718
673- def TuneC1Nano : SubtargetFeature<"c1-nano", "ARMProcFamily",
674- "C1Nano", "C1-Nano ARM Processors",[
675- FeatureFuseAES,
676- FeatureFuseAdrpAdd,
677- FeaturePostRAScheduler,
678- FeatureUseWzrToVecMove,
679- FeatureUseFixedOverScalableIfEqualCost]>;
680-
681- def TuneC1Pro : SubtargetFeature<"c1-pro", "ARMProcFamily",
682- "C1Pro", "C1-Pro ARM Processors",[
683- FeatureFuseAES,
684- FeaturePostRAScheduler,
685- FeatureCmpBccFusion,
686- FeatureALULSLFast,
687- FeatureFuseAdrpAdd,
688- FeatureFuseCmpCSel,
689- FeatureFuseCmpCSet,
690- FeatureEnableSelectOptimize,
691- FeaturePredictableSelectIsExpensive]>;
692-
693- def TuneC1Premium : SubtargetFeature<"c1-premium", "ARMProcFamily",
694- "C1Premium", "C1-Premium ARM Processors",[
695- FeatureALULSLFast,
696- FeatureFuseAdrpAdd,
697- FeatureFuseAES,
698- FeaturePostRAScheduler,
699- FeatureEnableSelectOptimize,
700- FeaturePredictableSelectIsExpensive]>;
701-
702- def TuneC1Ultra : SubtargetFeature<"c1-ultra", "ARMProcFamily",
703- "C1Ultra", "C1-Ultra ARM Processors",[
704- FeatureALULSLFast,
705- FeatureFuseAdrpAdd,
706- FeatureFuseCmpCSel,
707- FeatureFuseCmpCSet,
708- FeatureFuseAES,
709- FeaturePostRAScheduler,
710- FeatureEnableSelectOptimize,
711- FeatureUseFixedOverScalableIfEqualCost,
712- FeatureAvoidLDAPUR,
713- FeaturePredictableSelectIsExpensive]>;
714-
715719def TuneSaphira : SubtargetFeature<"saphira", "ARMProcFamily", "Saphira",
716720 "Qualcomm Saphira processors", [
717721 FeaturePostRAScheduler,
@@ -888,6 +892,19 @@ def ProcessorFeatures {
888892 FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8, FeatureJS,
889893 FeatureNEON, FeatureLSE, FeatureRAS, FeatureRCPC, FeatureRDM,
890894 FeatureDotProd, FeatureFPAC];
895+ list<SubtargetFeature> C1Nano = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
896+ FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
897+ FeatureSPECRES2, FeatureSSBS, FeatureRDM,
898+ FeatureVH, FeatureBF16, FeatureDotProd,
899+ FeatureFP16FML, FeatureFullFP16, FeatureMPAM,
900+ FeatureSVE, FeatureCCIDX, FeatureComplxNum,
901+ FeatureFPAC, FeatureJS, FeatureAM,
902+ FeatureRAS, FeatureSEL2, FeatureTRACEV8_4,
903+ FeatureAltFPCmp, FeatureFRInt3264,
904+ FeatureMTE, FeatureFineGrainedTraps,
905+ FeatureHCX, FeatureRCPC3, FeatureETE,
906+ FeatureSVEBitPerm, FeatureSVE2, FeatureTRBE,
907+ FeatureSME, FeatureSME2];
891908 list<SubtargetFeature> A65 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
892909 FeatureNEON, FeatureFullFP16, FeatureDotProd,
893910 FeatureRCPC, FeatureSSBS, FeatureRAS,
@@ -957,6 +974,20 @@ def ProcessorFeatures {
957974 FeatureDotProd, FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8,
958975 FeatureJS, FeatureLSE, FeatureNEON, FeaturePAuth, FeatureRAS,
959976 FeatureRCPC, FeatureRDM, FeatureFPAC];
977+ list<SubtargetFeature> C1Pro = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
978+ FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
979+ FeatureSPECRES2, FeatureSSBS, FeatureRDM,
980+ FeatureVH, FeatureBF16, FeatureDotProd,
981+ FeatureFP16FML, FeatureFullFP16, FeatureMPAM,
982+ FeatureSPE, FeatureSVE, FeatureCCIDX,
983+ FeatureComplxNum, FeatureFPAC, FeatureJS,
984+ FeatureAM, FeatureRAS, FeatureSEL2,
985+ FeatureTRACEV8_4, FeatureAltFPCmp,
986+ FeatureFRInt3264, FeatureMTE,
987+ FeatureFineGrainedTraps, FeatureHCX,
988+ FeatureSPE_EEF, FeatureRCPC3, FeatureETE,
989+ FeatureSVEBitPerm, FeatureSVE2, FeatureTRBE,
990+ FeatureSME, FeatureSME2];
960991 list<SubtargetFeature> R82 = [HasV8_0rOps, FeaturePerfMon, FeatureFullFP16,
961992 FeatureFP16FML, FeatureSSBS, FeaturePredRes,
962993 FeatureSB, FeatureRDM, FeatureDotProd,
@@ -1016,6 +1047,36 @@ def ProcessorFeatures {
10161047 FeatureDotProd, FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8,
10171048 FeatureJS, FeatureLSE, FeatureNEON, FeaturePAuth, FeatureRAS,
10181049 FeatureRCPC, FeatureRDM, FeatureFPAC];
1050+ list<SubtargetFeature> C1Ultra = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1051+ FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
1052+ FeatureSPECRES2, FeatureSSBS, FeatureRDM,
1053+ FeatureVH, FeatureBF16, FeatureDotProd,
1054+ FeatureFP16FML, FeatureFullFP16,
1055+ FeatureMPAM, FeatureSPE, FeatureSVE,
1056+ FeatureCCIDX, FeatureComplxNum, FeatureFPAC,
1057+ FeatureJS, FeatureAM, FeatureRAS,
1058+ FeatureSEL2, FeatureTRACEV8_4,
1059+ FeatureAltFPCmp, FeatureFRInt3264,
1060+ FeatureMTE, FeatureFineGrainedTraps,
1061+ FeatureHCX, FeatureSPE_EEF, FeatureRCPC3,
1062+ FeatureETE, FeatureSVEBitPerm, FeatureSVE2,
1063+ FeatureTRBE, FeatureSME, FeatureSME2];
1064+ list<SubtargetFeature> C1Premium = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1065+ FeatureCHK, FeatureFPARMv8,
1066+ FeaturePerfMon, FeatureSPECRES2,
1067+ FeatureSSBS, FeatureRDM, FeatureVH,
1068+ FeatureBF16, FeatureDotProd,
1069+ FeatureFP16FML, FeatureFullFP16,
1070+ FeatureMPAM, FeatureSPE, FeatureSVE,
1071+ FeatureCCIDX, FeatureComplxNum,
1072+ FeatureFPAC, FeatureJS, FeatureAM,
1073+ FeatureRAS, FeatureSEL2, FeatureTRACEV8_4,
1074+ FeatureAltFPCmp, FeatureFRInt3264,
1075+ FeatureMTE, FeatureFineGrainedTraps,
1076+ FeatureHCX, FeatureSPE_EEF, FeatureRCPC3,
1077+ FeatureETE, FeatureSVEBitPerm,
1078+ FeatureSVE2, FeatureTRBE, FeatureSME,
1079+ FeatureSME2];
10191080 list<SubtargetFeature> A64FX = [HasV8_2aOps, FeatureFPARMv8, FeatureNEON,
10201081 FeatureSHA2, FeaturePerfMon, FeatureFullFP16,
10211082 FeatureSVE, FeatureComplxNum,
@@ -1182,63 +1243,6 @@ def ProcessorFeatures {
11821243 FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8, FeatureJS,
11831244 FeatureLSE, FeatureNEON, FeatureRAS, FeatureRCPC, FeatureRDM,
11841245 FeatureRME, FeatureFPAC];
1185- list<SubtargetFeature> C1Nano = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1186- FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
1187- FeatureSPECRES2, FeatureSSBS, FeatureRDM,
1188- FeatureVH, FeatureBF16, FeatureDotProd,
1189- FeatureFP16FML, FeatureFullFP16, FeatureMPAM,
1190- FeatureSVE, FeatureCCIDX, FeatureComplxNum,
1191- FeatureFPAC, FeatureJS, FeatureAM,
1192- FeatureRAS, FeatureSEL2, FeatureTRACEV8_4,
1193- FeatureAltFPCmp, FeatureFRInt3264,
1194- FeatureMTE, FeatureFineGrainedTraps,
1195- FeatureHCX, FeatureRCPC3, FeatureETE,
1196- FeatureSVEBitPerm, FeatureSVE2, FeatureTRBE,
1197- FeatureSME, FeatureSME2];
1198- list<SubtargetFeature> C1Pro = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1199- FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
1200- FeatureSPECRES2, FeatureSSBS, FeatureRDM,
1201- FeatureVH, FeatureBF16, FeatureDotProd,
1202- FeatureFP16FML, FeatureFullFP16, FeatureMPAM,
1203- FeatureSPE, FeatureSVE, FeatureCCIDX,
1204- FeatureComplxNum, FeatureFPAC, FeatureJS,
1205- FeatureAM, FeatureRAS, FeatureSEL2,
1206- FeatureTRACEV8_4, FeatureAltFPCmp,
1207- FeatureFRInt3264, FeatureMTE,
1208- FeatureFineGrainedTraps, FeatureHCX,
1209- FeatureSPE_EEF, FeatureRCPC3, FeatureETE,
1210- FeatureSVEBitPerm, FeatureSVE2, FeatureTRBE,
1211- FeatureSME, FeatureSME2];
1212- list<SubtargetFeature> C1Premium = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1213- FeatureCHK, FeatureFPARMv8,
1214- FeaturePerfMon, FeatureSPECRES2,
1215- FeatureSSBS, FeatureRDM, FeatureVH,
1216- FeatureBF16, FeatureDotProd,
1217- FeatureFP16FML, FeatureFullFP16,
1218- FeatureMPAM, FeatureSPE, FeatureSVE,
1219- FeatureCCIDX, FeatureComplxNum,
1220- FeatureFPAC, FeatureJS, FeatureAM,
1221- FeatureRAS, FeatureSEL2, FeatureTRACEV8_4,
1222- FeatureAltFPCmp, FeatureFRInt3264,
1223- FeatureMTE, FeatureFineGrainedTraps,
1224- FeatureHCX, FeatureSPE_EEF, FeatureRCPC3,
1225- FeatureETE, FeatureSVEBitPerm,
1226- FeatureSVE2, FeatureTRBE, FeatureSME,
1227- FeatureSME2];
1228- list<SubtargetFeature> C1Ultra = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1229- FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
1230- FeatureSPECRES2, FeatureSSBS, FeatureRDM,
1231- FeatureVH, FeatureBF16, FeatureDotProd,
1232- FeatureFP16FML, FeatureFullFP16,
1233- FeatureMPAM, FeatureSPE, FeatureSVE,
1234- FeatureCCIDX, FeatureComplxNum, FeatureFPAC,
1235- FeatureJS, FeatureAM, FeatureRAS,
1236- FeatureSEL2, FeatureTRACEV8_4,
1237- FeatureAltFPCmp, FeatureFRInt3264,
1238- FeatureMTE, FeatureFineGrainedTraps,
1239- FeatureHCX, FeatureSPE_EEF, FeatureRCPC3,
1240- FeatureETE, FeatureSVEBitPerm, FeatureSVE2,
1241- FeatureTRBE, FeatureSME, FeatureSME2];
12421246 list<SubtargetFeature> Saphira = [HasV8_4aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
12431247 FeatureNEON, FeatureSPE, FeaturePerfMon, FeatureCRC,
12441248 FeatureCCIDX,
@@ -1328,6 +1332,8 @@ def : ProcessorModel<"cortex-a520", CortexA510Model, ProcessorFeatures.A520,
13281332 [TuneA520]>;
13291333def : ProcessorModel<"cortex-a520ae", CortexA510Model, ProcessorFeatures.A520AE,
13301334 [TuneA520AE]>;
1335+ def : ProcessorModel<"c1-nano", NeoverseN2Model,
1336+ ProcessorFeatures.C1Nano, [TuneC1Nano]>;
13311337def : ProcessorModel<"cortex-a57", CortexA57Model, ProcessorFeatures.A53,
13321338 [TuneA57]>;
13331339def : ProcessorModel<"cortex-a65", CortexA53Model, ProcessorFeatures.A65,
@@ -1362,6 +1368,8 @@ def : ProcessorModel<"cortex-a720ae", NeoverseN2Model, ProcessorFeatures.A720AE,
13621368 [TuneA720AE]>;
13631369def : ProcessorModel<"cortex-a725", NeoverseN3Model, ProcessorFeatures.A725,
13641370 [TuneA725]>;
1371+ def : ProcessorModel<"c1-pro", NeoverseN2Model,
1372+ ProcessorFeatures.C1Pro, [TuneC1Pro]>;
13651373def : ProcessorModel<"cortex-r82", CortexA55Model, ProcessorFeatures.R82,
13661374 [TuneR82]>;
13671375def : ProcessorModel<"cortex-r82ae", CortexA55Model, ProcessorFeatures.R82AE,
@@ -1378,6 +1386,10 @@ def : ProcessorModel<"cortex-x4", NeoverseV3Model, ProcessorFeatures.X4,
13781386 [TuneX4]>;
13791387def : ProcessorModel<"cortex-x925", NeoverseV3Model, ProcessorFeatures.X925,
13801388 [TuneX925]>;
1389+ def : ProcessorModel<"c1-ultra", NeoverseV3Model,
1390+ ProcessorFeatures.C1Ultra, [TuneC1Ultra]>;
1391+ def : ProcessorModel<"c1-premium", NeoverseV3Model,
1392+ ProcessorFeatures.C1Premium, [TuneC1Premium]>;
13811393def : ProcessorModel<"gb10", NeoverseV3Model, ProcessorFeatures.GB10,
13821394 [TuneX925]>;
13831395def : ProcessorModel<"grace", NeoverseV2Model, ProcessorFeatures.Grace,
@@ -1401,14 +1413,6 @@ def : ProcessorModel<"neoverse-v3", NeoverseV3Model,
14011413 ProcessorFeatures.NeoverseV3, [TuneNeoverseV3]>;
14021414def : ProcessorModel<"neoverse-v3ae", NeoverseV3AEModel,
14031415 ProcessorFeatures.NeoverseV3AE, [TuneNeoverseV3AE]>;
1404- def : ProcessorModel<"c1-nano", CortexA510Model,
1405- ProcessorFeatures.C1Nano, [TuneC1Nano]>;
1406- def : ProcessorModel<"c1-pro", NeoverseN2Model,
1407- ProcessorFeatures.C1Pro, [TuneC1Pro]>;
1408- def : ProcessorModel<"c1-premium", NeoverseV3Model,
1409- ProcessorFeatures.C1Premium, [TuneC1Premium]>;
1410- def : ProcessorModel<"c1-ultra", NeoverseV3Model,
1411- ProcessorFeatures.C1Ultra, [TuneC1Ultra]>;
14121416def : ProcessorModel<"exynos-m3", ExynosM3Model, ProcessorFeatures.ExynosM3,
14131417 [TuneExynosM3]>;
14141418def : ProcessorModel<"exynos-m4", ExynosM4Model, ProcessorFeatures.ExynosM4,
0 commit comments