@@ -171,14 +171,14 @@ constexpr FeatureBitset FeaturesClearwaterforest =
171171
172172// Geode Processor.
173173constexpr FeatureBitset FeaturesGeode =
174- FeatureX87 | FeatureCMPXCHG8B | FeatureMMX | Feature3DNOW | Feature3DNOWA ;
174+ FeatureX87 | FeatureCMPXCHG8B | FeatureMMX | FeaturePRFCHW ;
175175
176176// K6 processor.
177177constexpr FeatureBitset FeaturesK6 = FeatureX87 | FeatureCMPXCHG8B | FeatureMMX;
178178
179179// K7 and K8 architecture processors.
180180constexpr FeatureBitset FeaturesAthlon =
181- FeatureX87 | FeatureCMPXCHG8B | FeatureMMX | Feature3DNOW | Feature3DNOWA ;
181+ FeatureX87 | FeatureCMPXCHG8B | FeatureMMX | FeaturePRFCHW ;
182182constexpr FeatureBitset FeaturesAthlonXP =
183183 FeaturesAthlon | FeatureFXSR | FeatureSSE;
184184constexpr FeatureBitset FeaturesK8 =
@@ -256,8 +256,8 @@ constexpr ProcInfo Processors[] = {
256256 // i486-generation processors.
257257 { {" i486" }, CK_i486, ~0U , FeatureX87, ' \0 ' , false },
258258 { {" winchip-c6" }, CK_WinChipC6, ~0U , FeaturesPentiumMMX, ' \0 ' , false },
259- { {" winchip2" }, CK_WinChip2, ~0U , FeaturesPentiumMMX | Feature3DNOW , ' \0 ' , false },
260- { {" c3" }, CK_C3, ~0U , FeaturesPentiumMMX | Feature3DNOW , ' \0 ' , false },
259+ { {" winchip2" }, CK_WinChip2, ~0U , FeaturesPentiumMMX | FeaturePRFCHW , ' \0 ' , false },
260+ { {" c3" }, CK_C3, ~0U , FeaturesPentiumMMX | FeaturePRFCHW , ' \0 ' , false },
261261 // i586-generation processors, P5 microarchitecture based.
262262 { {" i586" }, CK_i586, ~0U , FeatureX87 | FeatureCMPXCHG8B, ' \0 ' , false },
263263 { {" pentium" }, CK_Pentium, ~0U , FeatureX87 | FeatureCMPXCHG8B, ' B' , false },
@@ -386,8 +386,8 @@ constexpr ProcInfo Processors[] = {
386386 { {" lakemont" }, CK_Lakemont, ~0U , FeatureCMPXCHG8B, ' \0 ' , false },
387387 // K6 architecture processors.
388388 { {" k6" }, CK_K6, ~0U , FeaturesK6, ' \0 ' , false },
389- { {" k6-2" }, CK_K6_2, ~0U , FeaturesK6 | Feature3DNOW , ' \0 ' , false },
390- { {" k6-3" }, CK_K6_3, ~0U , FeaturesK6 | Feature3DNOW , ' \0 ' , false },
389+ { {" k6-2" }, CK_K6_2, ~0U , FeaturesK6 | FeaturePRFCHW , ' \0 ' , false },
390+ { {" k6-3" }, CK_K6_3, ~0U , FeaturesK6 | FeaturePRFCHW , ' \0 ' , false },
391391 // K7 architecture processors.
392392 { {" athlon" }, CK_Athlon, ~0U , FeaturesAthlon, ' \0 ' , false },
393393 { {" athlon-tbird" }, CK_Athlon, ~0U , FeaturesAthlon, ' \0 ' , false },
@@ -493,6 +493,7 @@ constexpr FeatureBitset ImpliedFeaturesFXSR = {};
493493constexpr FeatureBitset ImpliedFeaturesINVPCID = {};
494494constexpr FeatureBitset ImpliedFeaturesLWP = {};
495495constexpr FeatureBitset ImpliedFeaturesLZCNT = {};
496+ constexpr FeatureBitset ImpliedFeaturesMMX = {};
496497constexpr FeatureBitset ImpliedFeaturesMWAITX = {};
497498constexpr FeatureBitset ImpliedFeaturesMOVBE = {};
498499constexpr FeatureBitset ImpliedFeaturesMOVDIR64B = {};
@@ -520,6 +521,8 @@ constexpr FeatureBitset ImpliedFeaturesWBNOINVD = {};
520521constexpr FeatureBitset ImpliedFeaturesVZEROUPPER = {};
521522constexpr FeatureBitset ImpliedFeaturesX87 = {};
522523constexpr FeatureBitset ImpliedFeaturesXSAVE = {};
524+ constexpr FeatureBitset ImpliedFeaturesDUMMYFEATURE1 = {};
525+ constexpr FeatureBitset ImpliedFeaturesDUMMYFEATURE2 = {};
523526
524527// Not really CPU features, but need to be in the table because clang uses
525528// target features to communicate them to the backend.
@@ -534,11 +537,6 @@ constexpr FeatureBitset ImpliedFeaturesXSAVEC = FeatureXSAVE;
534537constexpr FeatureBitset ImpliedFeaturesXSAVEOPT = FeatureXSAVE;
535538constexpr FeatureBitset ImpliedFeaturesXSAVES = FeatureXSAVE;
536539
537- // MMX->3DNOW->3DNOWA chain.
538- constexpr FeatureBitset ImpliedFeaturesMMX = {};
539- constexpr FeatureBitset ImpliedFeatures3DNOW = FeatureMMX;
540- constexpr FeatureBitset ImpliedFeatures3DNOWA = Feature3DNOW;
541-
542540// SSE/AVX/AVX512F chain.
543541constexpr FeatureBitset ImpliedFeaturesSSE = {};
544542constexpr FeatureBitset ImpliedFeaturesSSE2 = FeatureSSE;
0 commit comments