Skip to content

Commit f985248

Browse files
kzhuravlPierre-vh
authored andcommitted
AMDGPU: Add gfx12-generic target (llvm#93875)
Change-Id: I29b7e94343ac1aee1ba0fe92343ac2dbc6e61da1
1 parent e7e9982 commit f985248

File tree

21 files changed

+80
-14
lines changed

21 files changed

+80
-14
lines changed

clang/test/Driver/amdgpu-macros.cl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@
136136
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx10-1-generic %s 2>&1 | FileCheck --check-prefixes=ARCH-GCN,FAST_FMAF %s -DWAVEFRONT_SIZE=32 -DCPU=gfx10_1_generic -DFAMILY=GFX10
137137
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx10-3-generic %s 2>&1 | FileCheck --check-prefixes=ARCH-GCN,FAST_FMAF %s -DWAVEFRONT_SIZE=32 -DCPU=gfx10_3_generic -DFAMILY=GFX10
138138
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx11-generic %s 2>&1 | FileCheck --check-prefixes=ARCH-GCN,FAST_FMAF %s -DWAVEFRONT_SIZE=32 -DCPU=gfx11_generic -DFAMILY=GFX11
139+
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx12-generic %s 2>&1 | FileCheck --check-prefixes=ARCH-GCN,FAST_FMAF %s -DWAVEFRONT_SIZE=32 -DCPU=gfx12_generic -DFAMILY=GFX12
139140

140141
// ARCH-GCN-DAG: #define FP_FAST_FMA 1
141142

clang/test/Driver/amdgpu-mcpu.cl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@
120120
// RUN: %clang -### -target amdgcn -mcpu=gfx10-1-generic %s 2>&1 | FileCheck --check-prefix=GFX10_1_GENERIC %s
121121
// RUN: %clang -### -target amdgcn -mcpu=gfx10-3-generic %s 2>&1 | FileCheck --check-prefix=GFX10_3_GENERIC %s
122122
// RUN: %clang -### -target amdgcn -mcpu=gfx11-generic %s 2>&1 | FileCheck --check-prefix=GFX11_GENERIC %s
123+
// RUN: %clang -### -target amdgcn -mcpu=gfx12-generic %s 2>&1 | FileCheck --check-prefix=GFX12_GENERIC %s
123124

124125
// GCNDEFAULT-NOT: -target-cpu
125126
// GFX600: "-target-cpu" "gfx600"
@@ -172,3 +173,4 @@
172173
// GFX10_1_GENERIC: "-target-cpu" "gfx10-1-generic"
173174
// GFX10_3_GENERIC: "-target-cpu" "gfx10-3-generic"
174175
// GFX11_GENERIC: "-target-cpu" "gfx11-generic"
176+
// GFX12_GENERIC: "-target-cpu" "gfx12-generic"

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737

3838
// RUN: not %clang_cc1 -triple amdgcn--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix AMDGCN
3939
// AMDGCN: error: unknown target CPU 'not-a-cpu'
40-
// AMDGCN-NEXT: note: valid target CPU values are: gfx600, tahiti, gfx601, pitcairn, verde, gfx602, hainan, oland, gfx700, kaveri, gfx701, hawaii, gfx702, gfx703, kabini, mullins, gfx704, bonaire, gfx705, gfx801, carrizo, gfx802, iceland, tonga, gfx803, fiji, polaris10, polaris11, gfx805, tongapro, gfx810, stoney, gfx900, gfx902, gfx904, gfx906, gfx908, gfx909, gfx90a, gfx90c, gfx940, gfx941, gfx942, gfx1010, gfx1011, gfx1012, gfx1013, gfx1030, gfx1031, gfx1032, gfx1033, gfx1034, gfx1035, gfx1036, gfx1100, gfx1101, gfx1102, gfx1103, gfx1150, gfx1151, gfx1152, gfx1200, gfx1201, gfx9-generic, gfx10-1-generic, gfx10-3-generic, gfx11-generic{{$}}
40+
// AMDGCN-NEXT: note: valid target CPU values are: gfx600, tahiti, gfx601, pitcairn, verde, gfx602, hainan, oland, gfx700, kaveri, gfx701, hawaii, gfx702, gfx703, kabini, mullins, gfx704, bonaire, gfx705, gfx801, carrizo, gfx802, iceland, tonga, gfx803, fiji, polaris10, polaris11, gfx805, tongapro, gfx810, stoney, gfx900, gfx902, gfx904, gfx906, gfx908, gfx909, gfx90a, gfx90c, gfx940, gfx941, gfx942, gfx1010, gfx1011, gfx1012, gfx1013, gfx1030, gfx1031, gfx1032, gfx1033, gfx1034, gfx1035, gfx1036, gfx1100, gfx1101, gfx1102, gfx1103, gfx1150, gfx1151, gfx1152, gfx1200, gfx1201, gfx9-generic, gfx10-1-generic, gfx10-3-generic, gfx11-generic, gfx12-generic{{$}}
4141

4242
// RUN: not %clang_cc1 -triple wasm64--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix WEBASM
4343
// WEBASM: error: unknown target CPU 'not-a-cpu'

llvm/docs/AMDGPUUsage.rst

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -626,6 +626,13 @@ greater than or equal to the version in which the processor was added to the gen
626626

627627
- ``gfx1150``
628628
- ``gfx1151``
629+
630+
631+
``gfx12-generic`` ``amdgcn`` - ``gfx1200`` - wavefrontsize64 - Architected No restrictions.
632+
- ``gfx1201`` - cumode flat scratch
633+
- Packed
634+
work-item
635+
IDs
629636
==================== ============== ================= ================== ================= =================================
630637

631638

@@ -1871,6 +1878,10 @@ The AMDGPU backend uses the following ELF header:
18711878
``EF_AMDGPU_MACH_AMDGCN_GFX10_3_GENERIC`` 0x053 ``gfx10-3-generic``
18721879
``EF_AMDGPU_MACH_AMDGCN_GFX11_GENERIC`` 0x054 ``gfx11-generic``
18731880
``EF_AMDGPU_MACH_AMDGCN_GFX1152`` 0x055 ``gfx1152``
1881+
*reserved* 0x056 Reserved.
1882+
*reserved* 0x057 Reserved.
1883+
*reserved* 0x058 Reserved.
1884+
``EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC`` 0x059 ``gfx12-generic``
18741885
========================================== ========== =============================
18751886

18761887
Sections

llvm/include/llvm/BinaryFormat/ELF.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -795,11 +795,15 @@ enum : unsigned {
795795
EF_AMDGPU_MACH_AMDGCN_GFX10_3_GENERIC = 0x053,
796796
EF_AMDGPU_MACH_AMDGCN_GFX11_GENERIC = 0x054,
797797
EF_AMDGPU_MACH_AMDGCN_GFX1152 = 0x055,
798+
EF_AMDGPU_MACH_AMDGCN_RESERVED_0X56 = 0x056,
799+
EF_AMDGPU_MACH_AMDGCN_RESERVED_0X57 = 0x057,
800+
EF_AMDGPU_MACH_AMDGCN_RESERVED_0X58 = 0x058,
801+
EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC = 0x059,
798802
// clang-format on
799803

800804
// First/last AMDGCN-based processors.
801805
EF_AMDGPU_MACH_AMDGCN_FIRST = EF_AMDGPU_MACH_AMDGCN_GFX600,
802-
EF_AMDGPU_MACH_AMDGCN_LAST = EF_AMDGPU_MACH_AMDGCN_GFX1152,
806+
EF_AMDGPU_MACH_AMDGCN_LAST = EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC,
803807

804808
// Indicates if the "xnack" target feature is enabled for all code contained
805809
// in the object.

llvm/include/llvm/TargetParser/TargetParser.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,10 @@ enum GPUKind : uint32_t {
117117
GK_GFX10_1_GENERIC = 193,
118118
GK_GFX10_3_GENERIC = 194,
119119
GK_GFX11_GENERIC = 195,
120+
GK_GFX12_GENERIC = 196,
120121

121122
GK_AMDGCN_GENERIC_FIRST = GK_GFX9_GENERIC,
122-
GK_AMDGCN_GENERIC_LAST = GK_GFX11_GENERIC,
123+
GK_AMDGCN_GENERIC_LAST = GK_GFX12_GENERIC,
123124
};
124125

125126
/// Instruction set architecture version.

llvm/lib/Object/ELFObjectFile.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,8 @@ StringRef ELFObjectFileBase::getAMDGPUCPUName() const {
526526
return "gfx10-3-generic";
527527
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX11_GENERIC:
528528
return "gfx11-generic";
529+
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC:
530+
return "gfx12-generic";
529531
default:
530532
llvm_unreachable("Unknown EF_AMDGPU_MACH value");
531533
}

llvm/lib/ObjectYAML/ELFYAML.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -617,6 +617,7 @@ void ScalarBitSetTraits<ELFYAML::ELF_EF>::bitset(IO &IO,
617617
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX10_1_GENERIC, EF_AMDGPU_MACH);
618618
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX10_3_GENERIC, EF_AMDGPU_MACH);
619619
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX11_GENERIC, EF_AMDGPU_MACH);
620+
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC, EF_AMDGPU_MACH);
620621
switch (Object->Header.ABIVersion) {
621622
default:
622623
// ELFOSABI_AMDGPU_PAL, ELFOSABI_AMDGPU_MESA3D support *_V3 flags.

llvm/lib/Target/AMDGPU/AMDGPU.td

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1562,6 +1562,10 @@ def FeatureISAVersion12 : FeatureSet<
15621562
FeatureScalarDwordx3Loads,
15631563
FeatureDPPSrc1SGPR]>;
15641564

1565+
def FeatureISAVersion12_Generic: FeatureSet<
1566+
!listconcat(FeatureISAVersion12.Features,
1567+
[FeatureRequiresCOV6])>;
1568+
15651569
//===----------------------------------------------------------------------===//
15661570

15671571
def AMDGPUInstrInfo : InstrInfo {

llvm/lib/Target/AMDGPU/GCNProcessors.td

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -308,12 +308,15 @@ def : ProcessorModel<"gfx11-generic", GFX11SpeedModel,
308308
// GCN GFX12.
309309
//===----------------------------------------------------------------------===//
310310

311-
// TODO: gfx12-generic ?
312-
313311
def : ProcessorModel<"gfx1200", GFX12SpeedModel,
314312
FeatureISAVersion12.Features
315313
>;
316314

317315
def : ProcessorModel<"gfx1201", GFX12SpeedModel,
318316
FeatureISAVersion12.Features
319317
>;
318+
319+
// [gfx1200, gfx1201]
320+
def : ProcessorModel<"gfx12-generic", GFX12SpeedModel,
321+
FeatureISAVersion12_Generic.Features
322+
>;

llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ StringRef AMDGPUTargetStreamer::getArchNameFromElfMach(unsigned ElfMach) {
140140
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX10_1_GENERIC: AK = GK_GFX10_1_GENERIC; break;
141141
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX10_3_GENERIC: AK = GK_GFX10_3_GENERIC; break;
142142
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX11_GENERIC: AK = GK_GFX11_GENERIC; break;
143+
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC: AK = GK_GFX12_GENERIC; break;
143144
case ELF::EF_AMDGPU_MACH_NONE: AK = GK_NONE; break;
144145
default: AK = GK_NONE; break;
145146
}
@@ -223,6 +224,7 @@ unsigned AMDGPUTargetStreamer::getElfMach(StringRef GPU) {
223224
case GK_GFX10_1_GENERIC: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX10_1_GENERIC;
224225
case GK_GFX10_3_GENERIC: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX10_3_GENERIC;
225226
case GK_GFX11_GENERIC: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX11_GENERIC;
227+
case GK_GFX12_GENERIC: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC;
226228
case GK_NONE: return ELF::EF_AMDGPU_MACH_NONE;
227229
}
228230
// clang-format on
@@ -744,6 +746,9 @@ unsigned AMDGPUTargetELFStreamer::getEFlagsV6() {
744746
case AMDGPU::GK_GFX11_GENERIC:
745747
Version = GenericVersion::GFX11;
746748
break;
749+
case AMDGPU::GK_GFX12_GENERIC:
750+
Version = GenericVersion::GFX12;
751+
break;
747752
default:
748753
break;
749754
}

llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ static constexpr unsigned GFX9 = 1;
5151
static constexpr unsigned GFX10_1 = 1;
5252
static constexpr unsigned GFX10_3 = 1;
5353
static constexpr unsigned GFX11 = 1;
54+
static constexpr unsigned GFX12 = 1;
5455
} // namespace GenericVersion
5556

5657
enum { AMDHSA_COV4 = 4, AMDHSA_COV5 = 5, AMDHSA_COV6 = 6 };

llvm/lib/TargetParser/TargetParser.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ constexpr GPUInfo AMDGCNGPUs[] = {
132132
{{"gfx10-1-generic"}, {"gfx10-1-generic"}, GK_GFX10_1_GENERIC, FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_XNACK|FEATURE_WGP},
133133
{{"gfx10-3-generic"}, {"gfx10-3-generic"}, GK_GFX10_3_GENERIC, FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP},
134134
{{"gfx11-generic"}, {"gfx11-generic"}, GK_GFX11_GENERIC, FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP},
135+
{{"gfx12-generic"}, {"gfx12-generic"}, GK_GFX12_GENERIC, FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP},
135136
// clang-format on
136137
};
137138

@@ -159,6 +160,8 @@ StringRef llvm::AMDGPU::getArchFamilyNameAMDGCN(GPUKind AK) {
159160
return "gfx10";
160161
case AMDGPU::GK_GFX11_GENERIC:
161162
return "gfx11";
163+
case AMDGPU::GK_GFX12_GENERIC:
164+
return "gfx12";
162165
default: {
163166
StringRef ArchName = getArchNameAMDGCN(AK);
164167
return ArchName.empty() ? "" : ArchName.drop_back(2);
@@ -294,6 +297,7 @@ AMDGPU::IsaVersion AMDGPU::getIsaVersion(StringRef GPU) {
294297
case GK_GFX10_1_GENERIC: return {10, 1, 0};
295298
case GK_GFX10_3_GENERIC: return {10, 3, 0};
296299
case GK_GFX11_GENERIC: return {11, 0, 3};
300+
case GK_GFX12_GENERIC: return {12, 0, 0};
297301
default: return {0, 0, 0};
298302
}
299303
// clang-format on
@@ -315,6 +319,7 @@ void AMDGPU::fillAMDGPUFeatureMap(StringRef GPU, const Triple &T,
315319
switch (parseArchAMDGCN(GPU)) {
316320
case GK_GFX1201:
317321
case GK_GFX1200:
322+
case GK_GFX12_GENERIC:
318323
Features["ci-insts"] = true;
319324
Features["dot7-insts"] = true;
320325
Features["dot8-insts"] = true;
@@ -557,6 +562,7 @@ static bool isWave32Capable(StringRef GPU, const Triple &T) {
557562
case GK_GFX1011:
558563
case GK_GFX1013:
559564
case GK_GFX1010:
565+
case GK_GFX12_GENERIC:
560566
case GK_GFX11_GENERIC:
561567
case GK_GFX10_3_GENERIC:
562568
case GK_GFX10_1_GENERIC:

llvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@
115115
; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx10-1-generic -mattr=+xnack < %s | FileCheck --check-prefixes=GFX10_1_GENERIC_XNACK %s
116116
; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx10-3-generic < %s | FileCheck --check-prefixes=GFX10_3_GENERIC %s
117117
; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx11-generic < %s | FileCheck --check-prefixes=GFX11_GENERIC %s
118+
; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx12-generic < %s | FileCheck --check-prefixes=GFX12_GENERIC %s
118119

119120
; GFX600: .amdgcn_target "amdgcn-amd-amdhsa--gfx600"
120121
; GFX601: .amdgcn_target "amdgcn-amd-amdhsa--gfx601"
@@ -211,6 +212,7 @@
211212
; GFX10_1_GENERIC_XNACK: .amdgcn_target "amdgcn-amd-amdhsa--gfx10-1-generic:xnack+"
212213
; GFX10_3_GENERIC: .amdgcn_target "amdgcn-amd-amdhsa--gfx10-3-generic"
213214
; GFX11_GENERIC: .amdgcn_target "amdgcn-amd-amdhsa--gfx11-generic"
215+
; GFX12_GENERIC: .amdgcn_target "amdgcn-amd-amdhsa--gfx12-generic"
214216

215217
define amdgpu_kernel void @directive_amdgcn_target() {
216218
ret void

llvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
; RUN: llc -filetype=obj --amdhsa-code-object-version=6 -mtriple=amdgcn -mcpu=gfx10-1-generic < %s | llvm-readobj --file-header - | FileCheck --check-prefixes=ALL,ARCH-GCN,GFX10_1_GENERIC %s
8383
; RUN: llc -filetype=obj --amdhsa-code-object-version=6 -mtriple=amdgcn -mcpu=gfx10-3-generic < %s | llvm-readobj --file-header - | FileCheck --check-prefixes=ALL,ARCH-GCN,GFX10_3_GENERIC %s
8484
; RUN: llc -filetype=obj --amdhsa-code-object-version=6 -mtriple=amdgcn -mcpu=gfx11-generic < %s | llvm-readobj --file-header - | FileCheck --check-prefixes=ALL,ARCH-GCN,GFX11_GENERIC %s
85+
; RUN: llc -filetype=obj --amdhsa-code-object-version=6 -mtriple=amdgcn -mcpu=gfx12-generic < %s | llvm-readobj --file-header - | FileCheck --check-prefixes=ALL,ARCH-GCN,GFX12_GENERIC %s
8586

8687
; FIXME: With the default attributes the eflags are not accurate for
8788
; xnack and sramecc. Subsequent Target-ID patches will address this.
@@ -161,6 +162,7 @@
161162
; GFX10_1_GENERIC: EF_AMDGPU_MACH_AMDGCN_GFX10_1_GENERIC (0x52)
162163
; GFX10_3_GENERIC: EF_AMDGPU_MACH_AMDGCN_GFX10_3_GENERIC (0x53)
163164
; GFX11_GENERIC: EF_AMDGPU_MACH_AMDGCN_GFX11_GENERIC (0x54)
165+
; GFX12_GENERIC: EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC (0x59)
164166
; ALL: ]
165167

166168
define amdgpu_kernel void @elf_header() {

llvm/test/CodeGen/AMDGPU/generic-targets-require-v6.ll

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
1-
; RUN: not llc -march=amdgcn -mcpu=gfx9-generic --amdhsa-code-object-version=5 -o - %s 2>&1 | FileCheck --check-prefix=GFX9-V5 %s
2-
; RUN: not llc -march=amdgcn -mcpu=gfx10-1-generic --amdhsa-code-object-version=5 -o - %s 2>&1 | FileCheck --check-prefix=GFX101-V5 %s
3-
; RUN: not llc -march=amdgcn -mcpu=gfx10-3-generic --amdhsa-code-object-version=5 -o - %s 2>&1 | FileCheck --check-prefix=GFX103-V5 %s
4-
; RUN: not llc -march=amdgcn -mcpu=gfx11-generic --amdhsa-code-object-version=5 -o - %s 2>&1 | FileCheck --check-prefix=GFX11-V5 %s
1+
; RUN: not llc -mtriple=amdgcn -mcpu=gfx9-generic --amdhsa-code-object-version=5 -o - %s 2>&1 | FileCheck --check-prefix=GFX9-V5 %s
2+
; RUN: not llc -mtriple=amdgcn -mcpu=gfx10-1-generic --amdhsa-code-object-version=5 -o - %s 2>&1 | FileCheck --check-prefix=GFX101-V5 %s
3+
; RUN: not llc -mtriple=amdgcn -mcpu=gfx10-3-generic --amdhsa-code-object-version=5 -o - %s 2>&1 | FileCheck --check-prefix=GFX103-V5 %s
4+
; RUN: not llc -mtriple=amdgcn -mcpu=gfx11-generic --amdhsa-code-object-version=5 -o - %s 2>&1 | FileCheck --check-prefix=GFX11-V5 %s
5+
; RUN: not llc -mtriple=amdgcn -mcpu=gfx12-generic --amdhsa-code-object-version=5 -o - %s 2>&1 | FileCheck --check-prefix=GFX12-V5 %s
56

6-
; RUN: llc -march=amdgcn -mcpu=gfx9-generic --amdhsa-code-object-version=6 -o - %s
7-
; RUN: llc -march=amdgcn -mcpu=gfx10-1-generic --amdhsa-code-object-version=6 -o - %s
8-
; RUN: llc -march=amdgcn -mcpu=gfx10-3-generic --amdhsa-code-object-version=6 -o - %s
9-
; RUN: llc -march=amdgcn -mcpu=gfx11-generic --amdhsa-code-object-version=6 -o - %s
7+
; RUN: llc -mtriple=amdgcn -mcpu=gfx9-generic --amdhsa-code-object-version=6 -o - %s
8+
; RUN: llc -mtriple=amdgcn -mcpu=gfx10-1-generic --amdhsa-code-object-version=6 -o - %s
9+
; RUN: llc -mtriple=amdgcn -mcpu=gfx10-3-generic --amdhsa-code-object-version=6 -o - %s
10+
; RUN: llc -mtriple=amdgcn -mcpu=gfx11-generic --amdhsa-code-object-version=6 -o - %s
11+
; RUN: llc -mtriple=amdgcn -mcpu=gfx12-generic --amdhsa-code-object-version=6 -o - %s
1012

1113
; GFX9-V5: gfx9-generic is only available on code object version 6 or better
1214
; GFX101-V5: gfx10-1-generic is only available on code object version 6 or better
1315
; GFX103-V5: gfx10-3-generic is only available on code object version 6 or better
1416
; GFX11-V5: gfx11-generic is only available on code object version 6 or better
17+
; GFX12-V5: gfx12-generic is only available on code object version 6 or better
1518

1619
define void @foo() {
1720
ret void

llvm/test/CodeGen/AMDGPU/hsa-generic-target-features.ll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@
44
; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx10-3-generic < %s | FileCheck -check-prefix=CU %s
55
; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx11-generic -mattr=+cumode < %s | FileCheck -check-prefix=NOCU %s
66
; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx11-generic < %s | FileCheck -check-prefix=CU %s
7+
; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx12-generic < %s | FileCheck -check-prefix=CU %s
78

89
; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx10-1-generic -mattr=+wavefrontsize32,-wavefrontsize64 < %s | FileCheck -check-prefix=W32 %s
910
; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx10-1-generic -mattr=-wavefrontsize32,+wavefrontsize64 < %s | FileCheck -check-prefix=W64 %s
1011
; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx10-3-generic -mattr=+wavefrontsize32,-wavefrontsize64 < %s | FileCheck -check-prefix=W32 %s
1112
; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx10-3-generic -mattr=-wavefrontsize32,+wavefrontsize64 < %s | FileCheck -check-prefix=W64 %s
1213
; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx11-generic -mattr=+wavefrontsize32,-wavefrontsize64 < %s | FileCheck -check-prefix=W32 %s
1314
; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx11-generic -mattr=-wavefrontsize32,+wavefrontsize64 < %s | FileCheck -check-prefix=W64 %s
15+
; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx12-generic -mattr=-wavefrontsize32,+wavefrontsize64 < %s | FileCheck -check-prefix=W64 %s
1416

1517
; Checks 10.1, 10.3 and 11 generic targets allow cumode/wave64.
1618

llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,10 @@
258258
# RUN: llvm-readobj -S --file-headers %t.o.AMDGCN_GFX11_GENERIC | FileCheck --check-prefixes=ELF-AMDGCN-ALL,ELF-AMDGCN-GFX11_GENERIC %s
259259
# RUN: obj2yaml %t.o.AMDGCN_GFX11_GENERIC | FileCheck --check-prefixes=YAML-AMDGCN-ALL,YAML-AMDGCN-GFX11_GENERIC %s
260260

261+
# RUN: sed -e 's/<BITS>/64/' -e 's/<MACH>/AMDGCN_GFX12_GENERIC/' %s | yaml2obj -o %t.o.AMDGCN_GFX12_GENERIC
262+
# RUN: llvm-readobj -S --file-headers %t.o.AMDGCN_GFX12_GENERIC | FileCheck --check-prefixes=ELF-AMDGCN-ALL,ELF-AMDGCN-GFX12_GENERIC %s
263+
# RUN: obj2yaml %t.o.AMDGCN_GFX12_GENERIC | FileCheck --check-prefixes=YAML-AMDGCN-ALL,YAML-AMDGCN-GFX12_GENERIC %s
264+
261265

262266
# ELF-R600-ALL: Format: elf32-amdgpu
263267
# ELF-R600-ALL: Arch: r600
@@ -471,6 +475,9 @@
471475
# ELF-AMDGCN-GFX11_GENERIC: EF_AMDGPU_MACH_AMDGCN_GFX11_GENERIC (0x54)
472476
# YAML-AMDGCN-GFX11_GENERIC: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX11_GENERIC ]
473477

478+
# ELF-AMDGCN-GFX12_GENERIC: EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC (0x59)
479+
# YAML-AMDGCN-GFX12_GENERIC: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC ]
480+
474481
# ELF-AMDGCN-ALL: ]
475482

476483

llvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ define amdgpu_kernel void @test_kernel() {
66
;
77
; ----------------------------------GFX12--------------------------------------
88
;
9+
; RUN: llc -mtriple=amdgcn-amd-amdhsa --amdhsa-code-object-version=6 -mcpu=gfx12-generic -filetype=obj -O0 -o %t.o %s
10+
; RUN: llvm-objdump -D --arch-name=amdgcn -mllvm --amdhsa-code-object-version=6 --mcpu=gfx12-generic %t.o > %t-specify.txt
11+
; RUN: llvm-objdump -D -mllvm --amdhsa-code-object-version=6 %t.o > %t-detect.txt
12+
; RUN: diff %t-specify.txt %t-detect.txt
13+
;
914
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1201 -filetype=obj -O0 -o %t.o %s
1015
; RUN: llvm-objdump -D --arch-name=amdgcn --mcpu=gfx1201 %t.o > %t-specify.txt
1116
; RUN: llvm-objdump -D %t.o > %t-detect.txt

llvm/test/tools/llvm-readobj/ELF/AMDGPU/elf-headers.test

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,9 @@
448448
# RUN: yaml2obj %s -o %t -DABI_VERSION=2 -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1201
449449
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=ALL,KNOWN-ABI-VERSION,SINGLE-FLAG --match-full-lines -DABI_VERSION=2 -DFILE=%t -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1201 -DFLAG_VALUE=0x4E
450450

451+
# RUN: yaml2obj %s -o %t -DABI_VERSION=4 -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC
452+
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=ALL,KNOWN-ABI-VERSION,SINGLE-FLAG --match-full-lines -DABI_VERSION=4 -DFILE=%t -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC -DFLAG_VALUE=0x59
453+
451454
--- !ELF
452455
FileHeader:
453456
Class: ELFCLASS64

0 commit comments

Comments
 (0)