Skip to content

Commit 6acff53

Browse files
committed
[X86] Support -march=gracemont
gracemont has some different tuning features from alderlake. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D158046
1 parent a695be7 commit 6acff53

File tree

14 files changed

+49
-4
lines changed

14 files changed

+49
-4
lines changed

clang/lib/Basic/Targets/X86.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,8 @@ void X86TargetInfo::getTargetDefines(const LangOptions &Opts,
526526
case CK_Tremont:
527527
defineCPUMacros(Builder, "tremont");
528528
break;
529+
// Gracemont and later atom-cores use P-core cpu macros.
530+
case CK_Gracemont:
529531
case CK_Nehalem:
530532
case CK_Westmere:
531533
case CK_SandyBridge:
@@ -1420,6 +1422,7 @@ std::optional<unsigned> X86TargetInfo::getCPUCacheLineSize() const {
14201422
case CK_Goldmont:
14211423
case CK_GoldmontPlus:
14221424
case CK_Tremont:
1425+
case CK_Gracemont:
14231426

14241427
case CK_Westmere:
14251428
case CK_SandyBridge:

clang/test/CodeGen/attr-cpuspecific-cpus.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,4 @@ ATTR(cpu_specific(graniterapids_d)) void CPU34(void){}
8383
ATTR(cpu_specific(arrowlake)) void CPU35(void){}
8484
ATTR(cpu_specific(arrowlake_s)) void CPU36(void){}
8585
ATTR(cpu_specific(lunarlake)) void CPU37(void){}
86+
ATTR(cpu_specific(gracemont)) void CPU38(void){}

clang/test/CodeGen/attr-target-mv.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ int __attribute__((target("arch=graniterapids-d"))) foo(void) {return 20;}
2525
int __attribute__((target("arch=arrowlake"))) foo(void) {return 21;}
2626
int __attribute__((target("arch=arrowlake-s"))) foo(void) {return 22;}
2727
int __attribute__((target("arch=lunarlake"))) foo(void) {return 23;}
28+
int __attribute__((target("arch=gracemont"))) foo(void) {return 24;}
2829
int __attribute__((target("default"))) foo(void) { return 2; }
2930

3031
int bar(void) {
@@ -179,6 +180,8 @@ void calls_pr50025c(void) { pr50025c(); }
179180
// LINUX: ret i32 22
180181
// LINUX: define{{.*}} i32 @foo.arch_lunarlake()
181182
// LINUX: ret i32 23
183+
// LINUX: define{{.*}} i32 @foo.arch_gracemont()
184+
// LINUX: ret i32 24
182185
// LINUX: define{{.*}} i32 @foo()
183186
// LINUX: ret i32 2
184187
// LINUX: define{{.*}} i32 @bar()
@@ -230,6 +233,8 @@ void calls_pr50025c(void) { pr50025c(); }
230233
// WINDOWS: ret i32 22
231234
// WINDOWS: define dso_local i32 @foo.arch_lunarlake()
232235
// WINDOWS: ret i32 23
236+
// WINDOWS: define dso_local i32 @foo.arch_gracemont()
237+
// WINDOWS: ret i32 24
233238
// WINDOWS: define dso_local i32 @foo()
234239
// WINDOWS: ret i32 2
235240
// WINDOWS: define dso_local i32 @bar()

clang/test/CodeGen/target-builtin-noerror.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ void verifycpustrings(void) {
136136
(void)__builtin_cpu_is("tigerlake");
137137
(void)__builtin_cpu_is("sapphirerapids");
138138
(void)__builtin_cpu_is("tremont");
139+
(void)__builtin_cpu_is("gracemont");
139140
(void)__builtin_cpu_is("westmere");
140141
(void)__builtin_cpu_is("znver1");
141142
(void)__builtin_cpu_is("znver2");

clang/test/Driver/x86-march.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,10 @@
108108
// RUN: | FileCheck %s -check-prefix=lunarlake
109109
// lunarlake: "-target-cpu" "lunarlake"
110110
//
111+
// RUN: %clang -target x86_64-unknown-unknown -c -### %s -march=gracemont 2>&1 \
112+
// RUN: | FileCheck %s -check-prefix=gracemont
113+
// gracemont: "-target-cpu" "gracemont"
114+
//
111115
// RUN: %clang -target x86_64-unknown-unknown -c -### %s -march=lakemont 2>&1 \
112116
// RUN: | FileCheck %s -check-prefix=lakemont
113117
// lakemont: "-target-cpu" "lakemont"

clang/test/Misc/target-invalid-cpu-note.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,19 @@
1313

1414
// RUN: not %clang_cc1 -triple i386--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix X86
1515
// X86: error: unknown target CPU 'not-a-cpu'
16-
// X86-NEXT: note: valid target CPU values are: i386, i486, winchip-c6, winchip2, c3, i586, pentium, pentium-mmx, pentiumpro, i686, pentium2, pentium3, pentium3m, pentium-m, c3-2, yonah, pentium4, pentium4m, prescott, nocona, core2, penryn, bonnell, atom, silvermont, slm, goldmont, goldmont-plus, tremont, nehalem, corei7, westmere, sandybridge, corei7-avx, ivybridge, core-avx-i, haswell, core-avx2, broadwell, skylake, skylake-avx512, skx, cascadelake, cooperlake, cannonlake, icelake-client, rocketlake, icelake-server, tigerlake, sapphirerapids, alderlake, raptorlake, meteorlake, arrowlake, arrowlake-s, lunarlake, sierraforest, grandridge, graniterapids, graniterapids-d, emeraldrapids, knl, knm, lakemont, k6, k6-2, k6-3, athlon, athlon-tbird, athlon-xp, athlon-mp, athlon-4, k8, athlon64, athlon-fx, opteron, k8-sse3, athlon64-sse3, opteron-sse3, amdfam10, barcelona, btver1, btver2, bdver1, bdver2, bdver3, bdver4, znver1, znver2, znver3, znver4, x86-64, x86-64-v2, x86-64-v3, x86-64-v4, geode{{$}}
16+
// X86-NEXT: note: valid target CPU values are: i386, i486, winchip-c6, winchip2, c3, i586, pentium, pentium-mmx, pentiumpro, i686, pentium2, pentium3, pentium3m, pentium-m, c3-2, yonah, pentium4, pentium4m, prescott, nocona, core2, penryn, bonnell, atom, silvermont, slm, goldmont, goldmont-plus, tremont, nehalem, corei7, westmere, sandybridge, corei7-avx, ivybridge, core-avx-i, haswell, core-avx2, broadwell, skylake, skylake-avx512, skx, cascadelake, cooperlake, cannonlake, icelake-client, rocketlake, icelake-server, tigerlake, sapphirerapids, alderlake, raptorlake, meteorlake, arrowlake, arrowlake-s, lunarlake, gracemont, sierraforest, grandridge, graniterapids, graniterapids-d, emeraldrapids, knl, knm, lakemont, k6, k6-2, k6-3, athlon, athlon-tbird, athlon-xp, athlon-mp, athlon-4, k8, athlon64, athlon-fx, opteron, k8-sse3, athlon64-sse3, opteron-sse3, amdfam10, barcelona, btver1, btver2, bdver1, bdver2, bdver3, bdver4, znver1, znver2, znver3, znver4, x86-64, x86-64-v2, x86-64-v3, x86-64-v4, geode{{$}}
1717

1818
// RUN: not %clang_cc1 -triple x86_64--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix X86_64
1919
// X86_64: error: unknown target CPU 'not-a-cpu'
20-
// X86_64-NEXT: note: valid target CPU values are: nocona, core2, penryn, bonnell, atom, silvermont, slm, goldmont, goldmont-plus, tremont, nehalem, corei7, westmere, sandybridge, corei7-avx, ivybridge, core-avx-i, haswell, core-avx2, broadwell, skylake, skylake-avx512, skx, cascadelake, cooperlake, cannonlake, icelake-client, rocketlake, icelake-server, tigerlake, sapphirerapids, alderlake, raptorlake, meteorlake, arrowlake, arrowlake-s, lunarlake, sierraforest, grandridge, graniterapids, graniterapids-d, emeraldrapids, knl, knm, k8, athlon64, athlon-fx, opteron, k8-sse3, athlon64-sse3, opteron-sse3, amdfam10, barcelona, btver1, btver2, bdver1, bdver2, bdver3, bdver4, znver1, znver2, znver3, znver4, x86-64, x86-64-v2, x86-64-v3, x86-64-v4{{$}}
20+
// X86_64-NEXT: note: valid target CPU values are: nocona, core2, penryn, bonnell, atom, silvermont, slm, goldmont, goldmont-plus, tremont, nehalem, corei7, westmere, sandybridge, corei7-avx, ivybridge, core-avx-i, haswell, core-avx2, broadwell, skylake, skylake-avx512, skx, cascadelake, cooperlake, cannonlake, icelake-client, rocketlake, icelake-server, tigerlake, sapphirerapids, alderlake, raptorlake, meteorlake, arrowlake, arrowlake-s, lunarlake, gracemont, sierraforest, grandridge, graniterapids, graniterapids-d, emeraldrapids, knl, knm, k8, athlon64, athlon-fx, opteron, k8-sse3, athlon64-sse3, opteron-sse3, amdfam10, barcelona, btver1, btver2, bdver1, bdver2, bdver3, bdver4, znver1, znver2, znver3, znver4, x86-64, x86-64-v2, x86-64-v3, x86-64-v4{{$}}
2121

2222
// RUN: not %clang_cc1 -triple i386--- -tune-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix TUNE_X86
2323
// TUNE_X86: error: unknown target CPU 'not-a-cpu'
24-
// TUNE_X86-NEXT: note: valid target CPU values are: i386, i486, winchip-c6, winchip2, c3, i586, pentium, pentium-mmx, pentiumpro, i686, pentium2, pentium3, pentium3m, pentium-m, c3-2, yonah, pentium4, pentium4m, prescott, nocona, core2, penryn, bonnell, atom, silvermont, slm, goldmont, goldmont-plus, tremont, nehalem, corei7, westmere, sandybridge, corei7-avx, ivybridge, core-avx-i, haswell, core-avx2, broadwell, skylake, skylake-avx512, skx, cascadelake, cooperlake, cannonlake, icelake-client, rocketlake, icelake-server, tigerlake, sapphirerapids, alderlake, raptorlake, meteorlake, arrowlake, arrowlake-s, lunarlake, sierraforest, grandridge, graniterapids, graniterapids-d, emeraldrapids, knl, knm, lakemont, k6, k6-2, k6-3, athlon, athlon-tbird, athlon-xp, athlon-mp, athlon-4, k8, athlon64, athlon-fx, opteron, k8-sse3, athlon64-sse3, opteron-sse3, amdfam10, barcelona, btver1, btver2, bdver1, bdver2, bdver3, bdver4, znver1, znver2, znver3, znver4, x86-64, geode{{$}}
24+
// TUNE_X86-NEXT: note: valid target CPU values are: i386, i486, winchip-c6, winchip2, c3, i586, pentium, pentium-mmx, pentiumpro, i686, pentium2, pentium3, pentium3m, pentium-m, c3-2, yonah, pentium4, pentium4m, prescott, nocona, core2, penryn, bonnell, atom, silvermont, slm, goldmont, goldmont-plus, tremont, nehalem, corei7, westmere, sandybridge, corei7-avx, ivybridge, core-avx-i, haswell, core-avx2, broadwell, skylake, skylake-avx512, skx, cascadelake, cooperlake, cannonlake, icelake-client, rocketlake, icelake-server, tigerlake, sapphirerapids, alderlake, raptorlake, meteorlake, arrowlake, arrowlake-s, lunarlake, gracemont, sierraforest, grandridge, graniterapids, graniterapids-d, emeraldrapids, knl, knm, lakemont, k6, k6-2, k6-3, athlon, athlon-tbird, athlon-xp, athlon-mp, athlon-4, k8, athlon64, athlon-fx, opteron, k8-sse3, athlon64-sse3, opteron-sse3, amdfam10, barcelona, btver1, btver2, bdver1, bdver2, bdver3, bdver4, znver1, znver2, znver3, znver4, x86-64, geode{{$}}
2525

2626
// RUN: not %clang_cc1 -triple x86_64--- -tune-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix TUNE_X86_64
2727
// TUNE_X86_64: error: unknown target CPU 'not-a-cpu'
28-
// TUNE_X86_64-NEXT: note: valid target CPU values are: i386, i486, winchip-c6, winchip2, c3, i586, pentium, pentium-mmx, pentiumpro, i686, pentium2, pentium3, pentium3m, pentium-m, c3-2, yonah, pentium4, pentium4m, prescott, nocona, core2, penryn, bonnell, atom, silvermont, slm, goldmont, goldmont-plus, tremont, nehalem, corei7, westmere, sandybridge, corei7-avx, ivybridge, core-avx-i, haswell, core-avx2, broadwell, skylake, skylake-avx512, skx, cascadelake, cooperlake, cannonlake, icelake-client, rocketlake, icelake-server, tigerlake, sapphirerapids, alderlake, raptorlake, meteorlake, arrowlake, arrowlake-s, lunarlake, sierraforest, grandridge, graniterapids, graniterapids-d, emeraldrapids, knl, knm, lakemont, k6, k6-2, k6-3, athlon, athlon-tbird, athlon-xp, athlon-mp, athlon-4, k8, athlon64, athlon-fx, opteron, k8-sse3, athlon64-sse3, opteron-sse3, amdfam10, barcelona, btver1, btver2, bdver1, bdver2, bdver3, bdver4, znver1, znver2, znver3, znver4, x86-64, geode{{$}}
28+
// TUNE_X86_64-NEXT: note: valid target CPU values are: i386, i486, winchip-c6, winchip2, c3, i586, pentium, pentium-mmx, pentiumpro, i686, pentium2, pentium3, pentium3m, pentium-m, c3-2, yonah, pentium4, pentium4m, prescott, nocona, core2, penryn, bonnell, atom, silvermont, slm, goldmont, goldmont-plus, tremont, nehalem, corei7, westmere, sandybridge, corei7-avx, ivybridge, core-avx-i, haswell, core-avx2, broadwell, skylake, skylake-avx512, skx, cascadelake, cooperlake, cannonlake, icelake-client, rocketlake, icelake-server, tigerlake, sapphirerapids, alderlake, raptorlake, meteorlake, arrowlake, arrowlake-s, lunarlake, gracemont, sierraforest, grandridge, graniterapids, graniterapids-d, emeraldrapids, knl, knm, lakemont, k6, k6-2, k6-3, athlon, athlon-tbird, athlon-xp, athlon-mp, athlon-4, k8, athlon64, athlon-fx, opteron, k8-sse3, athlon64-sse3, opteron-sse3, amdfam10, barcelona, btver1, btver2, bdver1, bdver2, bdver3, bdver4, znver1, znver2, znver3, znver4, x86-64, geode{{$}}
2929

3030
// RUN: not %clang_cc1 -triple nvptx--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix NVPTX
3131
// NVPTX: error: unknown target CPU 'not-a-cpu'

clang/test/Preprocessor/predefined-arch-macros.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2003,6 +2003,9 @@
20032003
// RUN: %clang -march=meteorlake -m32 -E -dM %s -o - 2>&1 \
20042004
// RUN: -target i386-unknown-linux \
20052005
// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ADL_M32
2006+
// RUN: %clang -march=gracemont -m32 -E -dM %s -o - 2>&1 \
2007+
// RUN: -target i386-unknown-linux \
2008+
// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ADL_M32
20062009
// CHECK_ADL_M32: #define __ADX__ 1
20072010
// CHECK_ADL_M32: #define __AES__ 1
20082011
// CHECK_ADL_M32: #define __AVX2__ 1
@@ -2071,6 +2074,9 @@
20712074
// RUN: %clang -march=meteorlake -m64 -E -dM %s -o - 2>&1 \
20722075
// RUN: -target i386-unknown-linux \
20732076
// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ADL_M64
2077+
// RUN: %clang -march=gracemont -m64 -E -dM %s -o - 2>&1 \
2078+
// RUN: -target i386-unknown-linux \
2079+
// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ADL_M64
20742080
// CHECK_ADL_M64: #define __ADX__ 1
20752081
// CHECK_ADL_M64: #define __AES__ 1
20762082
// CHECK_ADL_M64: #define __AVX2__ 1

compiler-rt/lib/builtins/cpu_model.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,8 @@ getIntelProcessorTypeAndSubtype(unsigned Family, unsigned Model,
456456
// Meteorlake:
457457
case 0xaa:
458458
case 0xac:
459+
// Gracemont:
460+
case 0xbe:
459461
CPU = "alderlake";
460462
*Type = INTEL_COREI7;
461463
*Subtype = INTEL_COREI7_ALDERLAKE;

llvm/include/llvm/TargetParser/X86TargetParser.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ X86_CPU_SUBTYPE_ALIAS(INTEL_COREI7_ALDERLAKE, "raptorlake")
108108
X86_CPU_SUBTYPE_ALIAS(INTEL_COREI7_ALDERLAKE, "meteorlake")
109109
X86_CPU_SUBTYPE_ALIAS(INTEL_COREI7_SAPPHIRERAPIDS, "emeraldrapids")
110110
X86_CPU_SUBTYPE_ALIAS(INTEL_COREI7_ARROWLAKE_S,"lunarlake")
111+
X86_CPU_SUBTYPE_ALIAS(INTEL_COREI7_ALDERLAKE, "gracemont")
111112

112113
#undef X86_CPU_SUBTYPE_ALIAS
113114
#undef X86_CPU_SUBTYPE

llvm/include/llvm/TargetParser/X86TargetParser.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ enum CPUKind {
8787
CK_Goldmont,
8888
CK_GoldmontPlus,
8989
CK_Tremont,
90+
CK_Gracemont,
9091
CK_Nehalem,
9192
CK_Westmere,
9293
CK_SandyBridge,

llvm/lib/Target/X86/X86.td

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1207,6 +1207,18 @@ def ProcessorFeatures {
12071207
list<SubtargetFeature> ADLFeatures =
12081208
!listconcat(TRMFeatures, ADLAdditionalFeatures);
12091209

1210+
// Gracemont
1211+
list<SubtargetFeature> GRTTuning = [TuningMacroFusion,
1212+
TuningSlow3OpsLEA,
1213+
TuningSlowDivide32,
1214+
TuningSlowDivide64,
1215+
TuningFastScalarFSQRT,
1216+
TuningFastVectorFSQRT,
1217+
TuningFast15ByteNOP,
1218+
TuningFastVariablePerLaneShuffle,
1219+
TuningPOPCNTFalseDeps,
1220+
TuningInsertVZEROUPPER];
1221+
12101222
// Sierraforest
12111223
list<SubtargetFeature> SRFAdditionalFeatures = [FeatureCMPCCXADD,
12121224
FeatureAVXIFMA,
@@ -1728,6 +1740,9 @@ def : ProcModel<"sapphirerapids", SapphireRapidsModel,
17281740
ProcessorFeatures.SPRFeatures, ProcessorFeatures.SPRTuning>;
17291741
def : ProcModel<"alderlake", AlderlakePModel,
17301742
ProcessorFeatures.ADLFeatures, ProcessorFeatures.ADLTuning>;
1743+
// FIXME: Use Gracemont Schedule Model when it is ready.
1744+
def : ProcModel<"gracemont", AlderlakePModel,
1745+
ProcessorFeatures.ADLFeatures, ProcessorFeatures.GRTTuning>;
17311746
def : ProcModel<"raptorlake", AlderlakePModel,
17321747
ProcessorFeatures.ADLFeatures, ProcessorFeatures.ADLTuning>;
17331748
def : ProcModel<"meteorlake", AlderlakePModel,

llvm/lib/TargetParser/Host.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -822,6 +822,8 @@ getIntelProcessorTypeAndSubtype(unsigned Family, unsigned Model,
822822
// Alderlake:
823823
case 0x97:
824824
case 0x9a:
825+
// Gracemont
826+
case 0xbe:
825827
// Raptorlake:
826828
case 0xb7:
827829
case 0xba:

llvm/lib/TargetParser/X86TargetParser.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,8 @@ constexpr ProcInfo Processors[] = {
430430
{ {"arrowlake_s"}, CK_ArrowlakeS, FEATURE_AVX2, FeaturesArrowlakeS, 'p', true },
431431
// Lunarlake microarchitecture based processors.
432432
{ {"lunarlake"}, CK_Lunarlake, FEATURE_AVX2, FeaturesArrowlakeS, 'p', false },
433+
// Gracemont microarchitecture based processors.
434+
{ {"gracemont"}, CK_Gracemont, FEATURE_AVX2, FeaturesAlderlake, 'p', false },
433435
// Sierraforest microarchitecture based processors.
434436
{ {"sierraforest"}, CK_Sierraforest, FEATURE_AVX2, FeaturesSierraforest, 'p', false },
435437
// Grandridge microarchitecture based processors.

llvm/test/CodeGen/X86/cpus-intel.ll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
; RUN: llc < %s -o /dev/null -mtriple=i686-unknown-unknown -mcpu=arrowlake-s 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
3737
; RUN: llc < %s -o /dev/null -mtriple=i686-unknown-unknown -mcpu=arrowlake_s 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
3838
; RUN: llc < %s -o /dev/null -mtriple=i686-unknown-unknown -mcpu=lunarlake 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
39+
; RUN: llc < %s -o /dev/null -mtriple=i686-unknown-unknown -mcpu=gracemont 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
3940

4041
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=nocona 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
4142
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=core2 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
@@ -98,6 +99,7 @@
9899
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=arrowlake-s 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
99100
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=arrowlake_s 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
100101
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=lunarlake 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
102+
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=gracemont 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
101103

102104
define void @foo() {
103105
ret void

0 commit comments

Comments
 (0)