@@ -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,
@@ -690,48 +736,6 @@ def TuneNeoverseV3AE : SubtargetFeature<"neoversev3AE", "ARMProcFamily", "Neover
690736 FeatureAvoidLDAPUR,
691737 FeaturePredictableSelectIsExpensive]>;
692738
693- def TuneC1Nano : SubtargetFeature<"c1-nano", "ARMProcFamily",
694- "C1Nano", "C1-Nano ARM Processors",[
695- FeatureFuseAES,
696- FeatureFuseAdrpAdd,
697- FeaturePostRAScheduler,
698- FeatureUseWzrToVecMove,
699- FeatureUseFixedOverScalableIfEqualCost]>;
700-
701- def TuneC1Pro : SubtargetFeature<"c1-pro", "ARMProcFamily",
702- "C1Pro", "C1-Pro ARM Processors",[
703- FeatureFuseAES,
704- FeaturePostRAScheduler,
705- FeatureCmpBccFusion,
706- FeatureALULSLFast,
707- FeatureFuseAdrpAdd,
708- FeatureFuseCmpCSel,
709- FeatureFuseCmpCSet,
710- FeatureEnableSelectOptimize,
711- FeaturePredictableSelectIsExpensive]>;
712-
713- def TuneC1Premium : SubtargetFeature<"c1-premium", "ARMProcFamily",
714- "C1Premium", "C1-Premium ARM Processors",[
715- FeatureALULSLFast,
716- FeatureFuseAdrpAdd,
717- FeatureFuseAES,
718- FeaturePostRAScheduler,
719- FeatureEnableSelectOptimize,
720- FeaturePredictableSelectIsExpensive]>;
721-
722- def TuneC1Ultra : SubtargetFeature<"c1-ultra", "ARMProcFamily",
723- "C1Ultra", "C1-Ultra ARM Processors",[
724- FeatureALULSLFast,
725- FeatureFuseAdrpAdd,
726- FeatureFuseCmpCSel,
727- FeatureFuseCmpCSet,
728- FeatureFuseAES,
729- FeaturePostRAScheduler,
730- FeatureEnableSelectOptimize,
731- FeatureUseFixedOverScalableIfEqualCost,
732- FeatureAvoidLDAPUR,
733- FeaturePredictableSelectIsExpensive]>;
734-
735739def TuneSaphira : SubtargetFeature<"saphira", "ARMProcFamily", "Saphira",
736740 "Qualcomm Saphira processors", [
737741 FeaturePostRAScheduler,
@@ -908,6 +912,19 @@ def ProcessorFeatures {
908912 FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8, FeatureJS,
909913 FeatureNEON, FeatureLSE, FeatureRAS, FeatureRCPC, FeatureRDM,
910914 FeatureDotProd, FeatureFPAC];
915+ list<SubtargetFeature> C1Nano = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
916+ FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
917+ FeatureSPECRES2, FeatureSSBS, FeatureRDM,
918+ FeatureVH, FeatureBF16, FeatureDotProd,
919+ FeatureFP16FML, FeatureFullFP16, FeatureMPAM,
920+ FeatureSVE, FeatureCCIDX, FeatureComplxNum,
921+ FeatureFPAC, FeatureJS, FeatureAM,
922+ FeatureRAS, FeatureSEL2, FeatureTRACEV8_4,
923+ FeatureAltFPCmp, FeatureFRInt3264,
924+ FeatureMTE, FeatureFineGrainedTraps,
925+ FeatureHCX, FeatureRCPC3, FeatureETE,
926+ FeatureSVEBitPerm, FeatureSVE2, FeatureTRBE,
927+ FeatureSME, FeatureSME2];
911928 list<SubtargetFeature> A65 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
912929 FeatureNEON, FeatureFullFP16, FeatureDotProd,
913930 FeatureRCPC, FeatureSSBS, FeatureRAS,
@@ -977,6 +994,20 @@ def ProcessorFeatures {
977994 FeatureDotProd, FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8,
978995 FeatureJS, FeatureLSE, FeatureNEON, FeaturePAuth, FeatureRAS,
979996 FeatureRCPC, FeatureRDM, FeatureFPAC];
997+ list<SubtargetFeature> C1Pro = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
998+ FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
999+ FeatureSPECRES2, FeatureSSBS, FeatureRDM,
1000+ FeatureVH, FeatureBF16, FeatureDotProd,
1001+ FeatureFP16FML, FeatureFullFP16, FeatureMPAM,
1002+ FeatureSPE, FeatureSVE, FeatureCCIDX,
1003+ FeatureComplxNum, FeatureFPAC, FeatureJS,
1004+ FeatureAM, FeatureRAS, FeatureSEL2,
1005+ FeatureTRACEV8_4, FeatureAltFPCmp,
1006+ FeatureFRInt3264, FeatureMTE,
1007+ FeatureFineGrainedTraps, FeatureHCX,
1008+ FeatureSPE_EEF, FeatureRCPC3, FeatureETE,
1009+ FeatureSVEBitPerm, FeatureSVE2, FeatureTRBE,
1010+ FeatureSME, FeatureSME2];
9801011 list<SubtargetFeature> R82 = [HasV8_0rOps, FeaturePerfMon, FeatureFullFP16,
9811012 FeatureFP16FML, FeatureSSBS, FeaturePredRes,
9821013 FeatureSB, FeatureRDM, FeatureDotProd,
@@ -1036,6 +1067,36 @@ def ProcessorFeatures {
10361067 FeatureDotProd, FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8,
10371068 FeatureJS, FeatureLSE, FeatureNEON, FeaturePAuth, FeatureRAS,
10381069 FeatureRCPC, FeatureRDM, FeatureFPAC];
1070+ list<SubtargetFeature> C1Ultra = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1071+ FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
1072+ FeatureSPECRES2, FeatureSSBS, FeatureRDM,
1073+ FeatureVH, FeatureBF16, FeatureDotProd,
1074+ FeatureFP16FML, FeatureFullFP16,
1075+ FeatureMPAM, FeatureSPE, FeatureSVE,
1076+ FeatureCCIDX, FeatureComplxNum, FeatureFPAC,
1077+ FeatureJS, FeatureAM, FeatureRAS,
1078+ FeatureSEL2, FeatureTRACEV8_4,
1079+ FeatureAltFPCmp, FeatureFRInt3264,
1080+ FeatureMTE, FeatureFineGrainedTraps,
1081+ FeatureHCX, FeatureSPE_EEF, FeatureRCPC3,
1082+ FeatureETE, FeatureSVEBitPerm, FeatureSVE2,
1083+ FeatureTRBE, FeatureSME, FeatureSME2];
1084+ list<SubtargetFeature> C1Premium = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1085+ FeatureCHK, FeatureFPARMv8,
1086+ FeaturePerfMon, FeatureSPECRES2,
1087+ FeatureSSBS, FeatureRDM, FeatureVH,
1088+ FeatureBF16, FeatureDotProd,
1089+ FeatureFP16FML, FeatureFullFP16,
1090+ FeatureMPAM, FeatureSPE, FeatureSVE,
1091+ FeatureCCIDX, FeatureComplxNum,
1092+ FeatureFPAC, FeatureJS, FeatureAM,
1093+ FeatureRAS, FeatureSEL2, FeatureTRACEV8_4,
1094+ FeatureAltFPCmp, FeatureFRInt3264,
1095+ FeatureMTE, FeatureFineGrainedTraps,
1096+ FeatureHCX, FeatureSPE_EEF, FeatureRCPC3,
1097+ FeatureETE, FeatureSVEBitPerm,
1098+ FeatureSVE2, FeatureTRBE, FeatureSME,
1099+ FeatureSME2];
10391100 list<SubtargetFeature> A64FX = [HasV8_2aOps, FeatureFPARMv8, FeatureNEON,
10401101 FeatureSHA2, FeaturePerfMon, FeatureFullFP16,
10411102 FeatureSVE, FeatureComplxNum,
@@ -1218,63 +1279,6 @@ def ProcessorFeatures {
12181279 FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8, FeatureJS,
12191280 FeatureLSE, FeatureNEON, FeatureRAS, FeatureRCPC, FeatureRDM,
12201281 FeatureRME, FeatureFPAC];
1221- list<SubtargetFeature> C1Nano = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1222- FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
1223- FeatureSPECRES2, FeatureSSBS, FeatureRDM,
1224- FeatureVH, FeatureBF16, FeatureDotProd,
1225- FeatureFP16FML, FeatureFullFP16, FeatureMPAM,
1226- FeatureSVE, FeatureCCIDX, FeatureComplxNum,
1227- FeatureFPAC, FeatureJS, FeatureAM,
1228- FeatureRAS, FeatureSEL2, FeatureTRACEV8_4,
1229- FeatureAltFPCmp, FeatureFRInt3264,
1230- FeatureMTE, FeatureFineGrainedTraps,
1231- FeatureHCX, FeatureRCPC3, FeatureETE,
1232- FeatureSVEBitPerm, FeatureSVE2, FeatureTRBE,
1233- FeatureSME, FeatureSME2];
1234- list<SubtargetFeature> C1Pro = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1235- FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
1236- FeatureSPECRES2, FeatureSSBS, FeatureRDM,
1237- FeatureVH, FeatureBF16, FeatureDotProd,
1238- FeatureFP16FML, FeatureFullFP16, FeatureMPAM,
1239- FeatureSPE, FeatureSVE, FeatureCCIDX,
1240- FeatureComplxNum, FeatureFPAC, FeatureJS,
1241- FeatureAM, FeatureRAS, FeatureSEL2,
1242- FeatureTRACEV8_4, FeatureAltFPCmp,
1243- FeatureFRInt3264, FeatureMTE,
1244- FeatureFineGrainedTraps, FeatureHCX,
1245- FeatureSPE_EEF, FeatureRCPC3, FeatureETE,
1246- FeatureSVEBitPerm, FeatureSVE2, FeatureTRBE,
1247- FeatureSME, FeatureSME2];
1248- list<SubtargetFeature> C1Premium = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1249- FeatureCHK, FeatureFPARMv8,
1250- FeaturePerfMon, FeatureSPECRES2,
1251- FeatureSSBS, FeatureRDM, FeatureVH,
1252- FeatureBF16, FeatureDotProd,
1253- FeatureFP16FML, FeatureFullFP16,
1254- FeatureMPAM, FeatureSPE, FeatureSVE,
1255- FeatureCCIDX, FeatureComplxNum,
1256- FeatureFPAC, FeatureJS, FeatureAM,
1257- FeatureRAS, FeatureSEL2, FeatureTRACEV8_4,
1258- FeatureAltFPCmp, FeatureFRInt3264,
1259- FeatureMTE, FeatureFineGrainedTraps,
1260- FeatureHCX, FeatureSPE_EEF, FeatureRCPC3,
1261- FeatureETE, FeatureSVEBitPerm,
1262- FeatureSVE2, FeatureTRBE, FeatureSME,
1263- FeatureSME2];
1264- list<SubtargetFeature> C1Ultra = [HasV9_3aOps, FeatureNEON, FeatureCLRBHB,
1265- FeatureCHK, FeatureFPARMv8, FeaturePerfMon,
1266- FeatureSPECRES2, FeatureSSBS, FeatureRDM,
1267- FeatureVH, FeatureBF16, FeatureDotProd,
1268- FeatureFP16FML, FeatureFullFP16,
1269- FeatureMPAM, FeatureSPE, FeatureSVE,
1270- FeatureCCIDX, FeatureComplxNum, FeatureFPAC,
1271- FeatureJS, FeatureAM, FeatureRAS,
1272- FeatureSEL2, FeatureTRACEV8_4,
1273- FeatureAltFPCmp, FeatureFRInt3264,
1274- FeatureMTE, FeatureFineGrainedTraps,
1275- FeatureHCX, FeatureSPE_EEF, FeatureRCPC3,
1276- FeatureETE, FeatureSVEBitPerm, FeatureSVE2,
1277- FeatureTRBE, FeatureSME, FeatureSME2];
12781282 list<SubtargetFeature> Saphira = [HasV8_4aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
12791283 FeatureNEON, FeatureSPE, FeaturePerfMon, FeatureCRC,
12801284 FeatureCCIDX,
@@ -1364,6 +1368,8 @@ def : ProcessorModel<"cortex-a520", CortexA510Model, ProcessorFeatures.A520,
13641368 [TuneA520]>;
13651369def : ProcessorModel<"cortex-a520ae", CortexA510Model, ProcessorFeatures.A520AE,
13661370 [TuneA520AE]>;
1371+ def : ProcessorModel<"c1-nano", NeoverseN2Model,
1372+ ProcessorFeatures.C1Nano, [TuneC1Nano]>;
13671373def : ProcessorModel<"cortex-a57", CortexA57Model, ProcessorFeatures.A53,
13681374 [TuneA57]>;
13691375def : ProcessorModel<"cortex-a65", CortexA53Model, ProcessorFeatures.A65,
@@ -1398,6 +1404,8 @@ def : ProcessorModel<"cortex-a720ae", NeoverseN2Model, ProcessorFeatures.A720AE,
13981404 [TuneA720AE]>;
13991405def : ProcessorModel<"cortex-a725", NeoverseN3Model, ProcessorFeatures.A725,
14001406 [TuneA725]>;
1407+ def : ProcessorModel<"c1-pro", NeoverseN2Model,
1408+ ProcessorFeatures.C1Pro, [TuneC1Pro]>;
14011409def : ProcessorModel<"cortex-r82", CortexA55Model, ProcessorFeatures.R82,
14021410 [TuneR82]>;
14031411def : ProcessorModel<"cortex-r82ae", CortexA55Model, ProcessorFeatures.R82AE,
@@ -1414,6 +1422,10 @@ def : ProcessorModel<"cortex-x4", NeoverseV3Model, ProcessorFeatures.X4,
14141422 [TuneX4]>;
14151423def : ProcessorModel<"cortex-x925", NeoverseV3Model, ProcessorFeatures.X925,
14161424 [TuneX925]>;
1425+ def : ProcessorModel<"c1-ultra", NeoverseV3Model,
1426+ ProcessorFeatures.C1Ultra, [TuneC1Ultra]>;
1427+ def : ProcessorModel<"c1-premium", NeoverseV3Model,
1428+ ProcessorFeatures.C1Premium, [TuneC1Premium]>;
14171429def : ProcessorModel<"gb10", NeoverseV3Model, ProcessorFeatures.GB10,
14181430 [TuneX925]>;
14191431def : ProcessorModel<"grace", NeoverseV2Model, ProcessorFeatures.Grace,
@@ -1437,14 +1449,6 @@ def : ProcessorModel<"neoverse-v3", NeoverseV3Model,
14371449 ProcessorFeatures.NeoverseV3, [TuneNeoverseV3]>;
14381450def : ProcessorModel<"neoverse-v3ae", NeoverseV3AEModel,
14391451 ProcessorFeatures.NeoverseV3AE, [TuneNeoverseV3AE]>;
1440- def : ProcessorModel<"c1-nano", CortexA510Model,
1441- ProcessorFeatures.C1Nano, [TuneC1Nano]>;
1442- def : ProcessorModel<"c1-pro", NeoverseN2Model,
1443- ProcessorFeatures.C1Pro, [TuneC1Pro]>;
1444- def : ProcessorModel<"c1-premium", NeoverseV3Model,
1445- ProcessorFeatures.C1Premium, [TuneC1Premium]>;
1446- def : ProcessorModel<"c1-ultra", NeoverseV3Model,
1447- ProcessorFeatures.C1Ultra, [TuneC1Ultra]>;
14481452def : ProcessorModel<"exynos-m3", ExynosM3Model, ProcessorFeatures.ExynosM3,
14491453 [TuneExynosM3]>;
14501454def : ProcessorModel<"exynos-m4", ExynosM4Model, ProcessorFeatures.ExynosM4,
0 commit comments