[llvm-branch-commits] [llvm] X86: Use ProcessorAlias for duplicated processor names (PR #211953)

Matt Arsenault via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Fri Jul 24 23:26:02 PDT 2026


https://github.com/arsenm updated https://github.com/llvm/llvm-project/pull/211953

>From 5fb49102f2441fc4f29495b2d72769f5b21f101c Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Fri, 24 Jul 2026 19:30:39 +0200
Subject: [PATCH 1/2] X86: Use ProcessorAlias for duplicated processor names

Many X86 processors were defined multiple times under different names,
emitting an identical ProcessorModel for each spelling and duplicating
the feature masks, tune features, and scheduling model index in the subtype
table.

Define each processor once under its canonical name and express the
alternate spellings with ProcessorAlias, using the tablegen alias
mechanism. This deduplicates the redundant subtype table entries and saves
about 4.6k with the new alias table.

Co-Authored-By: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
---
 llvm/lib/Target/X86/X86.td | 263 +++++++++++++++++--------------------
 1 file changed, 124 insertions(+), 139 deletions(-)

diff --git a/llvm/lib/Target/X86/X86.td b/llvm/lib/Target/X86/X86.td
index 95dafc31d6b44..cf9032c6241c1 100644
--- a/llvm/lib/Target/X86/X86.td
+++ b/llvm/lib/Target/X86/X86.td
@@ -1899,26 +1899,24 @@ def : Proc<"i586",            [FeatureX87, FeatureCX8],
                               [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
 def : Proc<"pentium",         [FeatureX87, FeatureCX8],
                               [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
-foreach P = ["pentium-mmx", "pentium_mmx"] in {
-  def : Proc<P, [FeatureX87, FeatureCX8, FeatureMMX],
-                [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
-}
+def : Proc<"pentium-mmx", [FeatureX87, FeatureCX8, FeatureMMX],
+                          [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
+def : ProcessorAlias<"pentium_mmx", "pentium-mmx">;
 def : Proc<"i686", [FeatureX87, FeatureCX8, FeatureCMOV],
                    [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
-foreach P = ["pentiumpro", "pentium_pro"] in {
-  def : Proc<P, [FeatureX87, FeatureCX8, FeatureCMOV, FeatureNOPL],
-                [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
-}
-foreach P = ["pentium2", "pentium_ii"] in {
-  def : Proc<P, [FeatureX87, FeatureCX8, FeatureMMX, FeatureCMOV,
-                          FeatureFXSR, FeatureNOPL],
-                        [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
-}
-foreach P = ["pentium3", "pentium3m", "pentium_iii_no_xmm_regs", "pentium_iii"] in {
-  def : Proc<P, [FeatureX87, FeatureCX8, FeatureMMX,
-                 FeatureSSE1, FeatureFXSR, FeatureNOPL, FeatureCMOV],
-                [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
-}
+def : Proc<"pentiumpro", [FeatureX87, FeatureCX8, FeatureCMOV, FeatureNOPL],
+                         [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
+def : ProcessorAlias<"pentium_pro", "pentiumpro">;
+def : Proc<"pentium2", [FeatureX87, FeatureCX8, FeatureMMX, FeatureCMOV,
+                        FeatureFXSR, FeatureNOPL],
+                       [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
+def : ProcessorAlias<"pentium_ii", "pentium2">;
+def : Proc<"pentium3", [FeatureX87, FeatureCX8, FeatureMMX,
+                        FeatureSSE1, FeatureFXSR, FeatureNOPL, FeatureCMOV],
+                       [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
+def : ProcessorAlias<"pentium3m", "pentium3">;
+def : ProcessorAlias<"pentium_iii_no_xmm_regs", "pentium3">;
+def : ProcessorAlias<"pentium_iii", "pentium3">;
 
 // Enable the PostRAScheduler for SSE2 and SSE3 class cpus.
 // The intent is to enable it for pentium4 which is the current default
@@ -1930,19 +1928,18 @@ foreach P = ["pentium3", "pentium3m", "pentium_iii_no_xmm_regs", "pentium_iii"]
 // measure to avoid performance surprises, in case clang's default cpu
 // changes slightly.
 
-foreach P = ["pentium_m", "pentium-m"] in {
-def : ProcModel<P, GenericPostRAModel,
+def : ProcModel<"pentium_m", GenericPostRAModel,
                 [FeatureX87, FeatureCX8, FeatureMMX, FeatureSSE2,
                 FeatureFXSR, FeatureNOPL, FeatureCMOV],
                 [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
-}
+def : ProcessorAlias<"pentium-m", "pentium_m">;
 
-foreach P = ["pentium4", "pentium4m", "pentium_4"] in {
-  def : ProcModel<P, GenericPostRAModel,
-                  [FeatureX87, FeatureCX8, FeatureMMX, FeatureSSE2,
-                   FeatureFXSR, FeatureNOPL, FeatureCMOV],
-                  [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
-}
+def : ProcModel<"pentium4", GenericPostRAModel,
+                [FeatureX87, FeatureCX8, FeatureMMX, FeatureSSE2,
+                 FeatureFXSR, FeatureNOPL, FeatureCMOV],
+                [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
+def : ProcessorAlias<"pentium4m", "pentium4">;
+def : ProcessorAlias<"pentium_4", "pentium4">;
 
 // Intel Quark.
 def : Proc<"lakemont", [FeatureCX8],
@@ -1955,12 +1952,11 @@ def : ProcModel<"yonah", SandyBridgeModel,
                 [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
 
 // NetBurst.
-foreach P = ["prescott", "pentium_4_sse3"] in {
-  def : ProcModel<P, GenericPostRAModel,
-                  [FeatureX87, FeatureCX8, FeatureMMX, FeatureSSE3,
-                  FeatureFXSR, FeatureNOPL, FeatureCMOV],
-                  [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
-}
+def : ProcModel<"prescott", GenericPostRAModel,
+                [FeatureX87, FeatureCX8, FeatureMMX, FeatureSSE3,
+                FeatureFXSR, FeatureNOPL, FeatureCMOV],
+                [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
+def : ProcessorAlias<"pentium_4_sse3", "prescott">;
 def : ProcModel<"nocona", GenericPostRAModel, [
   FeatureX87,
   FeatureCX8,
@@ -1978,8 +1974,7 @@ def : ProcModel<"nocona", GenericPostRAModel, [
 ]>;
 
 // Intel Core 2 Solo/Duo.
-foreach P = ["core2", "core_2_duo_ssse3"] in {
-def : ProcModel<P, SandyBridgeModel, [
+def : ProcModel<"core2", SandyBridgeModel, [
   FeatureX87,
   FeatureCX8,
   FeatureCMOV,
@@ -1996,9 +1991,8 @@ def : ProcModel<P, SandyBridgeModel, [
   TuningSlowUAMem16,
   TuningInsertVZEROUPPER
 ]>;
-}
-foreach P = ["penryn", "core_2_duo_sse4_1"] in {
-def : ProcModel<P, SandyBridgeModel, [
+def : ProcessorAlias<"core_2_duo_ssse3", "core2">;
+def : ProcModel<"penryn", SandyBridgeModel, [
   FeatureX87,
   FeatureCX8,
   FeatureCMOV,
@@ -2015,77 +2009,74 @@ def : ProcModel<P, SandyBridgeModel, [
   TuningSlowUAMem16,
   TuningInsertVZEROUPPER
 ]>;
-}
+def : ProcessorAlias<"core_2_duo_sse4_1", "penryn">;
 
 // Atom CPUs.
-foreach P = ["bonnell", "atom"] in {
-  def : ProcModel<P, AtomModel, ProcessorFeatures.AtomFeatures,
-                  ProcessorFeatures.AtomTuning>;
-}
+def : ProcModel<"bonnell", AtomModel, ProcessorFeatures.AtomFeatures,
+                ProcessorFeatures.AtomTuning>;
+def : ProcessorAlias<"atom", "bonnell">;
 
-foreach P = ["silvermont", "slm", "atom_sse4_2"] in {
-  def : ProcModel<P, SLMModel, ProcessorFeatures.SLMFeatures,
-                  ProcessorFeatures.SLMTuning>;
-}
+def : ProcModel<"silvermont", SLMModel, ProcessorFeatures.SLMFeatures,
+                ProcessorFeatures.SLMTuning>;
+def : ProcessorAlias<"slm", "silvermont">;
+def : ProcessorAlias<"atom_sse4_2", "silvermont">;
 
 def : ProcModel<"atom_sse4_2_movbe", SLMModel, ProcessorFeatures.GLMFeatures,
                 ProcessorFeatures.SLMTuning>;
 def : ProcModel<"goldmont", SLMModel, ProcessorFeatures.GLMFeatures,
                 ProcessorFeatures.GLMTuning>;
-foreach P = ["goldmont_plus", "goldmont-plus"] in {
-  def : ProcModel<P, SLMModel, ProcessorFeatures.GLPFeatures,
-                  ProcessorFeatures.GLPTuning>;
-}
+def : ProcModel<"goldmont_plus", SLMModel, ProcessorFeatures.GLPFeatures,
+                ProcessorFeatures.GLPTuning>;
+def : ProcessorAlias<"goldmont-plus", "goldmont_plus">;
 def : ProcModel<"tremont", SLMModel, ProcessorFeatures.TRMFeatures,
                 ProcessorFeatures.TRMTuning>;
 
 // "Arrandale" along with corei3 and corei5
-foreach P = ["nehalem", "corei7", "core_i7_sse4_2"] in {
-  def : ProcModel<P, SandyBridgeModel, ProcessorFeatures.NHMFeatures,
-                  ProcessorFeatures.NHMTuning>;
-}
+def : ProcModel<"nehalem", SandyBridgeModel, ProcessorFeatures.NHMFeatures,
+                ProcessorFeatures.NHMTuning>;
+def : ProcessorAlias<"corei7", "nehalem">;
+def : ProcessorAlias<"core_i7_sse4_2", "nehalem">;
 
 // Westmere is the corei3/i5/i7 path from nehalem to sandybridge
-foreach P = ["westmere", "core_aes_pclmulqdq"] in {
-  def : ProcModel<P, SandyBridgeModel, ProcessorFeatures.WSMFeatures,
-                  ProcessorFeatures.WSMTuning>;
-}
-
-foreach P = ["sandybridge", "corei7-avx", "core_2nd_gen_avx"] in {
-  def : ProcModel<P, SandyBridgeModel, ProcessorFeatures.SNBFeatures,
-                  ProcessorFeatures.SNBTuning>;
-}
-
-foreach P = ["ivybridge", "core-avx-i", "core_3rd_gen_avx"] in {
-  def : ProcModel<P, SandyBridgeModel, ProcessorFeatures.IVBFeatures,
-                  ProcessorFeatures.IVBTuning>;
-}
-
-foreach P = ["haswell", "core-avx2", "core_4th_gen_avx", "core_4th_gen_avx_tsx"] in {
-  def : ProcModel<P, HaswellModel, ProcessorFeatures.HSWFeatures,
-                  ProcessorFeatures.HSWTuning>;
-}
-
-foreach P = ["broadwell", "core_5th_gen_avx", "core_5th_gen_avx_tsx"] in {
-  def : ProcModel<P, BroadwellModel, ProcessorFeatures.BDWFeatures,
-                  ProcessorFeatures.BDWTuning>;
-}
+def : ProcModel<"westmere", SandyBridgeModel, ProcessorFeatures.WSMFeatures,
+                ProcessorFeatures.WSMTuning>;
+def : ProcessorAlias<"core_aes_pclmulqdq", "westmere">;
+
+def : ProcModel<"sandybridge", SandyBridgeModel, ProcessorFeatures.SNBFeatures,
+                ProcessorFeatures.SNBTuning>;
+def : ProcessorAlias<"corei7-avx", "sandybridge">;
+def : ProcessorAlias<"core_2nd_gen_avx", "sandybridge">;
+
+def : ProcModel<"ivybridge", SandyBridgeModel, ProcessorFeatures.IVBFeatures,
+                ProcessorFeatures.IVBTuning>;
+def : ProcessorAlias<"core-avx-i", "ivybridge">;
+def : ProcessorAlias<"core_3rd_gen_avx", "ivybridge">;
+
+def : ProcModel<"haswell", HaswellModel, ProcessorFeatures.HSWFeatures,
+                ProcessorFeatures.HSWTuning>;
+def : ProcessorAlias<"core-avx2", "haswell">;
+def : ProcessorAlias<"core_4th_gen_avx", "haswell">;
+def : ProcessorAlias<"core_4th_gen_avx_tsx", "haswell">;
+
+def : ProcModel<"broadwell", BroadwellModel, ProcessorFeatures.BDWFeatures,
+                ProcessorFeatures.BDWTuning>;
+def : ProcessorAlias<"core_5th_gen_avx", "broadwell">;
+def : ProcessorAlias<"core_5th_gen_avx_tsx", "broadwell">;
 
 def : ProcModel<"skylake", SkylakeClientModel, ProcessorFeatures.SKLFeatures,
                 ProcessorFeatures.SKLTuning>;
 
 // FIXME: define KNL scheduler model
-foreach P = ["knl", "mic_avx512"] in {
-  def : ProcModel<P, HaswellModel, ProcessorFeatures.KNLFeatures,
-                  ProcessorFeatures.KNLTuning>;
-}
+def : ProcModel<"knl", HaswellModel, ProcessorFeatures.KNLFeatures,
+                ProcessorFeatures.KNLTuning>;
+def : ProcessorAlias<"mic_avx512", "knl">;
 def : ProcModel<"knm", HaswellModel, ProcessorFeatures.KNMFeatures,
                 ProcessorFeatures.KNLTuning>;
 
-foreach P = ["skylake-avx512", "skx", "skylake_avx512"] in {
-  def : ProcModel<P, SkylakeServerModel, ProcessorFeatures.SKXFeatures,
-                  ProcessorFeatures.SKXTuning>;
-}
+def : ProcModel<"skylake-avx512", SkylakeServerModel, ProcessorFeatures.SKXFeatures,
+                ProcessorFeatures.SKXTuning>;
+def : ProcessorAlias<"skx", "skylake-avx512">;
+def : ProcessorAlias<"skylake_avx512", "skylake-avx512">;
 
 def : ProcModel<"cascadelake", SkylakeServerModel,
                 ProcessorFeatures.CLXFeatures, ProcessorFeatures.CLXTuning>;
@@ -2093,16 +2084,14 @@ def : ProcModel<"cooperlake", SkylakeServerModel,
                 ProcessorFeatures.CPXFeatures, ProcessorFeatures.CPXTuning>;
 def : ProcModel<"cannonlake", SkylakeServerModel,
                 ProcessorFeatures.CNLFeatures, ProcessorFeatures.CNLTuning>;
-foreach P = ["icelake-client", "icelake_client"] in {
-def : ProcModel<P, IceLakeModel,
+def : ProcModel<"icelake-client", IceLakeModel,
                 ProcessorFeatures.ICLFeatures, ProcessorFeatures.ICLTuning>;
-}
+def : ProcessorAlias<"icelake_client", "icelake-client">;
 def : ProcModel<"rocketlake", IceLakeModel,
                 ProcessorFeatures.ICLFeatures, ProcessorFeatures.ICLTuning>;
-foreach P = ["icelake-server", "icelake_server"] in {
-def : ProcModel<P, IceLakeModel,
+def : ProcModel<"icelake-server", IceLakeModel,
                 ProcessorFeatures.ICXFeatures, ProcessorFeatures.ICXTuning>;
-}
+def : ProcessorAlias<"icelake_server", "icelake-server">;
 def : ProcModel<"tigerlake", IceLakeModel,
                 ProcessorFeatures.TGLFeatures, ProcessorFeatures.TGLTuning>;
 def : ProcModel<"sapphirerapids", SapphireRapidsModel,
@@ -2112,26 +2101,23 @@ def : ProcModel<"alderlake", AlderlakePModel,
 // FIXME: Use Gracemont Schedule Model when it is ready.
 def : ProcModel<"gracemont", AlderlakePModel,
                 ProcessorFeatures.ADLFeatures, ProcessorFeatures.GRTTuning>;
-foreach P = ["sierraforest", "grandridge"] in {
-  def : ProcModel<P, AlderlakePModel, ProcessorFeatures.SRFFeatures,
+def : ProcModel<"sierraforest", AlderlakePModel, ProcessorFeatures.SRFFeatures,
                 ProcessorFeatures.GRTTuning>;
-}
+def : ProcessorAlias<"grandridge", "sierraforest">;
 def : ProcModel<"raptorlake", AlderlakePModel,
                 ProcessorFeatures.ADLFeatures, ProcessorFeatures.ADLTuning>;
 def : ProcModel<"meteorlake", AlderlakePModel,
                 ProcessorFeatures.ADLFeatures, ProcessorFeatures.ADLTuning>;
 def : ProcModel<"arrowlake", AlderlakePModel,
                 ProcessorFeatures.ARLFeatures, ProcessorFeatures.ADLTuning>;
-foreach P = ["arrowlake-s", "arrowlake_s"] in {
-def : ProcModel<P, AlderlakePModel,
+def : ProcModel<"arrowlake-s", AlderlakePModel,
                 ProcessorFeatures.ARLSFeatures, ProcessorFeatures.ADLTuning>;
-}
+def : ProcessorAlias<"arrowlake_s", "arrowlake-s">;
 def : ProcModel<"lunarlake", LunarlakePModel, ProcessorFeatures.ARLSFeatures,
                 ProcessorFeatures.ADLTuning>;
-foreach P = ["pantherlake", "wildcatlake"] in {
-def : ProcModel<P, AlderlakePModel,
+def : ProcModel<"pantherlake", AlderlakePModel,
                 ProcessorFeatures.PTLFeatures, ProcessorFeatures.ADLTuning>;
-}
+def : ProcessorAlias<"wildcatlake", "pantherlake">;
 def : ProcModel<"novalake", AlderlakePModel, ProcessorFeatures.NVLFeatures,
                 ProcessorFeatures.NVLTuning>;
 
@@ -2141,10 +2127,9 @@ def : ProcModel<"emeraldrapids", SapphireRapidsModel,
                 ProcessorFeatures.SPRFeatures, ProcessorFeatures.SPRTuning>;
 def : ProcModel<"graniterapids", SapphireRapidsModel,
                 ProcessorFeatures.GNRFeatures, ProcessorFeatures.GNRTuning>;
-foreach P = ["graniterapids-d", "graniterapids_d"] in {
-def : ProcModel<P, SapphireRapidsModel,
+def : ProcModel<"graniterapids-d", SapphireRapidsModel,
                 ProcessorFeatures.GNRDFeatures, ProcessorFeatures.GNRTuning>;
-}
+def : ProcessorAlias<"graniterapids_d", "graniterapids-d">;
 def : ProcModel<"diamondrapids", SapphireRapidsModel,
                 ProcessorFeatures.DMRFeatures, ProcessorFeatures.DMRTuning>;
 
@@ -2157,37 +2142,38 @@ def : Proc<"k6-2", [FeatureX87, FeatureCX8, FeatureMMX, FeaturePRFCHW],
 def : Proc<"k6-3", [FeatureX87, FeatureCX8, FeatureMMX, FeaturePRFCHW],
                    [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
 
-foreach P = ["athlon", "athlon-tbird"] in {
-  def : Proc<P, [FeatureX87, FeatureCX8, FeatureCMOV, FeatureMMX, FeaturePRFCHW,
-                 FeatureNOPL],
-                [TuningSlowSHLD, TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
-}
-
-foreach P = ["athlon-4", "athlon-xp", "athlon-mp"] in {
-  def : Proc<P, [FeatureX87, FeatureCX8, FeatureCMOV,
-                 FeatureSSE1, FeatureMMX, FeaturePRFCHW, FeatureFXSR, FeatureNOPL],
-                [TuningSlowSHLD, TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
-}
-
-foreach P = ["k8", "opteron", "athlon64", "athlon-fx"] in {
-  def : Proc<P, [FeatureX87, FeatureCX8, FeatureSSE2, FeatureMMX, FeaturePRFCHW,
-                 FeatureFXSR, FeatureNOPL, FeatureX86_64, FeatureCMOV],
-                [TuningFastScalarShiftMasks, TuningSlowSHLD, TuningSlowUAMem16,
-                 TuningSBBDepBreaking, TuningInsertVZEROUPPER]>;
-}
-
-foreach P = ["k8-sse3", "opteron-sse3", "athlon64-sse3"] in {
-  def : Proc<P, [FeatureX87, FeatureCX8, FeatureSSE3, FeatureMMX, FeaturePRFCHW,
-                 FeatureFXSR, FeatureNOPL, FeatureCX16, FeatureCMOV,
-                 FeatureX86_64],
-                [TuningFastScalarShiftMasks, TuningSlowSHLD, TuningSlowUAMem16,
-                 TuningSBBDepBreaking, TuningInsertVZEROUPPER]>;
-}
-
-foreach P = ["amdfam10", "barcelona"] in {
-  def : Proc<P, ProcessorFeatures.BarcelonaFeatures,
-             ProcessorFeatures.BarcelonaTuning>;
-}
+def : Proc<"athlon", [FeatureX87, FeatureCX8, FeatureCMOV, FeatureMMX,
+                      FeaturePRFCHW, FeatureNOPL],
+                     [TuningSlowSHLD, TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
+def : ProcessorAlias<"athlon-tbird", "athlon">;
+
+def : Proc<"athlon-4", [FeatureX87, FeatureCX8, FeatureCMOV,
+                        FeatureSSE1, FeatureMMX, FeaturePRFCHW, FeatureFXSR,
+                        FeatureNOPL],
+                       [TuningSlowSHLD, TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
+def : ProcessorAlias<"athlon-xp", "athlon-4">;
+def : ProcessorAlias<"athlon-mp", "athlon-4">;
+
+def : Proc<"k8", [FeatureX87, FeatureCX8, FeatureSSE2, FeatureMMX, FeaturePRFCHW,
+                  FeatureFXSR, FeatureNOPL, FeatureX86_64, FeatureCMOV],
+                 [TuningFastScalarShiftMasks, TuningSlowSHLD, TuningSlowUAMem16,
+                  TuningSBBDepBreaking, TuningInsertVZEROUPPER]>;
+def : ProcessorAlias<"opteron", "k8">;
+def : ProcessorAlias<"athlon64", "k8">;
+def : ProcessorAlias<"athlon-fx", "k8">;
+
+def : Proc<"k8-sse3", [FeatureX87, FeatureCX8, FeatureSSE3, FeatureMMX,
+                       FeaturePRFCHW, FeatureFXSR, FeatureNOPL, FeatureCX16,
+                       FeatureCMOV, FeatureX86_64],
+                      [TuningFastScalarShiftMasks, TuningSlowSHLD,
+                       TuningSlowUAMem16, TuningSBBDepBreaking,
+                       TuningInsertVZEROUPPER]>;
+def : ProcessorAlias<"opteron-sse3", "k8-sse3">;
+def : ProcessorAlias<"athlon64-sse3", "k8-sse3">;
+
+def : Proc<"amdfam10", ProcessorFeatures.BarcelonaFeatures,
+                       ProcessorFeatures.BarcelonaTuning>;
+def : ProcessorAlias<"barcelona", "amdfam10">;
 
 // Bobcat
 def : Proc<"btver1", ProcessorFeatures.BtVer1Features,
@@ -2226,10 +2212,9 @@ def : ProcModel<"znver6", Znver4Model, ProcessorFeatures.ZN6Features,
 
 // Hygon CPUs.
 
-foreach P = ["c86-4g-m4", "c86-4g-m6"] in {
-def : ProcModel<P, C864GM4Model, ProcessorFeatures.C864GM4Features,
+def : ProcModel<"c86-4g-m4", C864GM4Model, ProcessorFeatures.C864GM4Features,
                 ProcessorFeatures.C864GM4Tuning>;
-}
+def : ProcessorAlias<"c86-4g-m6", "c86-4g-m4">;
 def : ProcModel<"c86-4g-m7", C864GM7Model, ProcessorFeatures.C864GM7Features,
                 ProcessorFeatures.C864GM7Tuning>;
 def : ProcModel<"c86-4g-m8", C864GM8Model, ProcessorFeatures.C864GM8Features,

>From 790c44cfd932ad908868f2ee9b742f1b21de428c Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Sat, 25 Jul 2026 08:16:11 +0200
Subject: [PATCH 2/2] pentium alias

---
 llvm/lib/Target/X86/X86.td | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/llvm/lib/Target/X86/X86.td b/llvm/lib/Target/X86/X86.td
index cf9032c6241c1..ab27fb0b6aa10 100644
--- a/llvm/lib/Target/X86/X86.td
+++ b/llvm/lib/Target/X86/X86.td
@@ -1897,8 +1897,8 @@ def : Proc<"i486",            [FeatureX87],
                               [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
 def : Proc<"i586",            [FeatureX87, FeatureCX8],
                               [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
-def : Proc<"pentium",         [FeatureX87, FeatureCX8],
-                              [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
+def : ProcessorAlias<"pentium", "i586">;
+
 def : Proc<"pentium-mmx", [FeatureX87, FeatureCX8, FeatureMMX],
                           [TuningSlowUAMem16, TuningInsertVZEROUPPER]>;
 def : ProcessorAlias<"pentium_mmx", "pentium-mmx">;



More information about the llvm-branch-commits mailing list