Skip to content

Commit 813e521

Browse files
committed
[AMDGPU] Add gfx11 subtarget ELF definition
This is the first patch of a series to upstream support for the new subtarget. Contributors: Jay Foad <jay.foad@amd.com> Konstantin Zhuravlyov <kzhuravl_dev@outlook.com> Patch 1/N for upstreaming AMDGPU gfx11 architectures. Reviewed By: foad, kzhuravl, #amdgpu Differential Revision: https://reviews.llvm.org/D124536
1 parent b481512 commit 813e521

File tree

11 files changed

+148
-7
lines changed

11 files changed

+148
-7
lines changed

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, gfx1010, gfx1011, gfx1012, gfx1013, gfx1030, gfx1031, gfx1032, gfx1033, gfx1034, gfx1035, gfx1036{{$}}
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, gfx1010, gfx1011, gfx1012, gfx1013, gfx1030, gfx1031, gfx1032, gfx1033, gfx1034, gfx1035, gfx1036, gfx1100, gfx1101, gfx1102, gfx1103{{$}}
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: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,36 @@ Every processor supports every OS ABI (see :ref:`amdgpu-os`) with the following
444444
Add product
445445
names.
446446

447+
**GCN GFX11** [AMD-GCN-GFX11]_
448+
-----------------------------------------------------------------------------------------------------------------------
449+
``gfx1100`` ``amdgcn`` dGPU - cumode - Architected - *pal-amdpal* *TBA*
450+
- wavefrontsize64 flat
451+
scratch .. TODO::
452+
- Packed
453+
work-item Add product
454+
IDs names.
455+
456+
``gfx1101`` ``amdgcn`` dGPU - cumode - Architected *TBA*
457+
- wavefrontsize64 flat
458+
scratch .. TODO::
459+
- Packed
460+
work-item Add product
461+
IDs names.
462+
463+
``gfx1102`` ``amdgcn`` dGPU - cumode - Architected *TBA*
464+
- wavefrontsize64 flat
465+
scratch .. TODO::
466+
- Packed
467+
work-item Add product
468+
IDs names.
469+
470+
``gfx1103`` ``amdgcn`` APU - cumode - Architected *TBA*
471+
- wavefrontsize64 flat
472+
scratch .. TODO::
473+
- Packed
474+
work-item Add product
475+
IDs names.
476+
447477
=========== =============== ============ ===== ================= =============== =============== ======================
448478

449479
.. _amdgpu-target-features:
@@ -1244,11 +1274,13 @@ The AMDGPU backend uses the following ELF header:
12441274
``EF_AMDGPU_MACH_AMDGCN_GFX1034`` 0x03e ``gfx1034``
12451275
``EF_AMDGPU_MACH_AMDGCN_GFX90A`` 0x03f ``gfx90a``
12461276
``EF_AMDGPU_MACH_AMDGCN_GFX940`` 0x040 ``gfx940``
1247-
*reserved* 0x041 Reserved.
1277+
``EF_AMDGPU_MACH_AMDGCN_GFX1100`` 0x041 ``gfx1100``
12481278
``EF_AMDGPU_MACH_AMDGCN_GFX1013`` 0x042 ``gfx1013``
12491279
*reserved* 0x043 Reserved.
1250-
*reserved* 0x044 Reserved.
1280+
``EF_AMDGPU_MACH_AMDGCN_GFX1103`` 0x044 ``gfx1103``
12511281
``EF_AMDGPU_MACH_AMDGCN_GFX1036`` 0x045 ``gfx1036``
1282+
``EF_AMDGPU_MACH_AMDGCN_GFX1101`` 0x046 ``gfx1101``
1283+
``EF_AMDGPU_MACH_AMDGCN_GFX1102`` 0x047 ``gfx1102``
12521284
==================================== ========== =============================
12531285

12541286
Sections

llvm/include/llvm/BinaryFormat/ELF.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -755,15 +755,17 @@ enum : unsigned {
755755
EF_AMDGPU_MACH_AMDGCN_GFX1034 = 0x03e,
756756
EF_AMDGPU_MACH_AMDGCN_GFX90A = 0x03f,
757757
EF_AMDGPU_MACH_AMDGCN_GFX940 = 0x040,
758-
EF_AMDGPU_MACH_AMDGCN_RESERVED_0X41 = 0x041,
758+
EF_AMDGPU_MACH_AMDGCN_GFX1100 = 0x041,
759759
EF_AMDGPU_MACH_AMDGCN_GFX1013 = 0x042,
760760
EF_AMDGPU_MACH_AMDGCN_RESERVED_0X43 = 0x043,
761-
EF_AMDGPU_MACH_AMDGCN_RESERVED_0X44 = 0x044,
761+
EF_AMDGPU_MACH_AMDGCN_GFX1103 = 0x044,
762762
EF_AMDGPU_MACH_AMDGCN_GFX1036 = 0x045,
763+
EF_AMDGPU_MACH_AMDGCN_GFX1101 = 0x046,
764+
EF_AMDGPU_MACH_AMDGCN_GFX1102 = 0x047,
763765

764766
// First/last AMDGCN-based processors.
765767
EF_AMDGPU_MACH_AMDGCN_FIRST = EF_AMDGPU_MACH_AMDGCN_GFX600,
766-
EF_AMDGPU_MACH_AMDGCN_LAST = EF_AMDGPU_MACH_AMDGCN_GFX1036,
768+
EF_AMDGPU_MACH_AMDGCN_LAST = EF_AMDGPU_MACH_AMDGCN_GFX1102,
767769

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

llvm/include/llvm/Support/TargetParser.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,13 @@ enum GPUKind : uint32_t {
100100
GK_GFX1035 = 80,
101101
GK_GFX1036 = 81,
102102

103+
GK_GFX1100 = 90,
104+
GK_GFX1101 = 91,
105+
GK_GFX1102 = 92,
106+
GK_GFX1103 = 93,
107+
103108
GK_AMDGCN_FIRST = GK_GFX600,
104-
GK_AMDGCN_LAST = GK_GFX1036,
109+
GK_AMDGCN_LAST = GK_GFX1103,
105110
};
106111

107112
/// Instruction set architecture version.

llvm/lib/Object/ELFObjectFile.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,16 @@ StringRef ELFObjectFileBase::getAMDGPUCPUName() const {
485485
return "gfx1035";
486486
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1036:
487487
return "gfx1036";
488+
489+
// AMDGCN GFX11.
490+
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1100:
491+
return "gfx1100";
492+
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1101:
493+
return "gfx1101";
494+
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1102:
495+
return "gfx1102";
496+
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1103:
497+
return "gfx1103";
488498
default:
489499
llvm_unreachable("Unknown EF_AMDGPU_MACH value");
490500
}

llvm/lib/ObjectYAML/ELFYAML.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -579,6 +579,10 @@ void ScalarBitSetTraits<ELFYAML::ELF_EF>::bitset(IO &IO,
579579
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX1034, EF_AMDGPU_MACH);
580580
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX1035, EF_AMDGPU_MACH);
581581
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX1036, EF_AMDGPU_MACH);
582+
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX1100, EF_AMDGPU_MACH);
583+
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX1101, EF_AMDGPU_MACH);
584+
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX1102, EF_AMDGPU_MACH);
585+
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX1103, EF_AMDGPU_MACH);
582586
switch (Object->Header.ABIVersion) {
583587
default:
584588
// ELFOSABI_AMDGPU_PAL, ELFOSABI_AMDGPU_MESA3D support *_V3 flags.

llvm/lib/Support/TargetParser.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,10 @@ constexpr GPUInfo AMDGCNGPUs[] = {
116116
{{"gfx1034"}, {"gfx1034"}, GK_GFX1034, FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32},
117117
{{"gfx1035"}, {"gfx1035"}, GK_GFX1035, FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32},
118118
{{"gfx1036"}, {"gfx1036"}, GK_GFX1036, FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32},
119+
{{"gfx1100"}, {"gfx1100"}, GK_GFX1100, FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32},
120+
{{"gfx1101"}, {"gfx1101"}, GK_GFX1101, FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32},
121+
{{"gfx1102"}, {"gfx1102"}, GK_GFX1102, FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32},
122+
{{"gfx1103"}, {"gfx1103"}, GK_GFX1103, FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32},
119123
};
120124

121125
const GPUInfo *getArchEntry(AMDGPU::GPUKind AK, ArrayRef<GPUInfo> Table) {
@@ -231,6 +235,10 @@ AMDGPU::IsaVersion AMDGPU::getIsaVersion(StringRef GPU) {
231235
case GK_GFX1034: return {10, 3, 4};
232236
case GK_GFX1035: return {10, 3, 5};
233237
case GK_GFX1036: return {10, 3, 6};
238+
case GK_GFX1100: return {11, 0, 0};
239+
case GK_GFX1101: return {11, 0, 1};
240+
case GK_GFX1102: return {11, 0, 2};
241+
case GK_GFX1103: return {11, 0, 3};
234242
default: return {0, 0, 0};
235243
}
236244
}

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,10 @@ StringRef AMDGPUTargetStreamer::getArchNameFromElfMach(unsigned ElfMach) {
118118
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1034: AK = GK_GFX1034; break;
119119
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1035: AK = GK_GFX1035; break;
120120
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1036: AK = GK_GFX1036; break;
121+
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1100: AK = GK_GFX1100; break;
122+
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1101: AK = GK_GFX1101; break;
123+
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1102: AK = GK_GFX1102; break;
124+
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1103: AK = GK_GFX1103; break;
121125
case ELF::EF_AMDGPU_MACH_NONE: AK = GK_NONE; break;
122126
}
123127

@@ -183,6 +187,10 @@ unsigned AMDGPUTargetStreamer::getElfMach(StringRef GPU) {
183187
case GK_GFX1034: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX1034;
184188
case GK_GFX1035: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX1035;
185189
case GK_GFX1036: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX1036;
190+
case GK_GFX1100: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX1100;
191+
case GK_GFX1101: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX1101;
192+
case GK_GFX1102: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX1102;
193+
case GK_GFX1103: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX1103;
186194
case GK_NONE: return ELF::EF_AMDGPU_MACH_NONE;
187195
}
188196

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,22 @@
198198
# RUN: llvm-readobj -S --file-headers %t.o.AMDGCN_GFX1036 | FileCheck --check-prefixes=ELF-AMDGCN-ALL,ELF-AMDGCN-GFX1036 %s
199199
# RUN: obj2yaml %t.o.AMDGCN_GFX1036 | FileCheck --check-prefixes=YAML-AMDGCN-ALL,YAML-AMDGCN-GFX1036 %s
200200

201+
# RUN: sed -e 's/<BITS>/64/' -e 's/<MACH>/AMDGCN_GFX1100/' %s | yaml2obj -o %t.o.AMDGCN_GFX1100
202+
# RUN: llvm-readobj -S --file-headers %t.o.AMDGCN_GFX1100 | FileCheck --check-prefixes=ELF-AMDGCN-ALL,ELF-AMDGCN-GFX1100 %s
203+
# RUN: obj2yaml %t.o.AMDGCN_GFX1100 | FileCheck --check-prefixes=YAML-AMDGCN-ALL,YAML-AMDGCN-GFX1100 %s
204+
205+
# RUN: sed -e 's/<BITS>/64/' -e 's/<MACH>/AMDGCN_GFX1101/' %s | yaml2obj -o %t.o.AMDGCN_GFX1101
206+
# RUN: llvm-readobj -S --file-headers %t.o.AMDGCN_GFX1101 | FileCheck --check-prefixes=ELF-AMDGCN-ALL,ELF-AMDGCN-GFX1101 %s
207+
# RUN: obj2yaml %t.o.AMDGCN_GFX1101 | FileCheck --check-prefixes=YAML-AMDGCN-ALL,YAML-AMDGCN-GFX1101 %s
208+
209+
# RUN: sed -e 's/<BITS>/64/' -e 's/<MACH>/AMDGCN_GFX1102/' %s | yaml2obj -o %t.o.AMDGCN_GFX1102
210+
# RUN: llvm-readobj -S --file-headers %t.o.AMDGCN_GFX1102 | FileCheck --check-prefixes=ELF-AMDGCN-ALL,ELF-AMDGCN-GFX1102 %s
211+
# RUN: obj2yaml %t.o.AMDGCN_GFX1102 | FileCheck --check-prefixes=YAML-AMDGCN-ALL,YAML-AMDGCN-GFX1102 %s
212+
213+
# RUN: sed -e 's/<BITS>/64/' -e 's/<MACH>/AMDGCN_GFX1103/' %s | yaml2obj -o %t.o.AMDGCN_GFX1103
214+
# RUN: llvm-readobj -S --file-headers %t.o.AMDGCN_GFX1103 | FileCheck --check-prefixes=ELF-AMDGCN-ALL,ELF-AMDGCN-GFX1103 %s
215+
# RUN: obj2yaml %t.o.AMDGCN_GFX1103 | FileCheck --check-prefixes=YAML-AMDGCN-ALL,YAML-AMDGCN-GFX1103 %s
216+
201217
# ELF-R600-ALL: Format: elf32-amdgpu
202218
# ELF-R600-ALL: Arch: r600
203219
# ELF-R600-ALL: AddressSize: 32bit
@@ -365,6 +381,18 @@
365381
# ELF-AMDGCN-GFX1036: EF_AMDGPU_MACH_AMDGCN_GFX1036 (0x45)
366382
# YAML-AMDGCN-GFX1036: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX1036 ]
367383

384+
# ELF-AMDGCN-GFX1100: EF_AMDGPU_MACH_AMDGCN_GFX1100 (0x41)
385+
# YAML-AMDGCN-GFX1100: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX1100 ]
386+
387+
# ELF-AMDGCN-GFX1101: EF_AMDGPU_MACH_AMDGCN_GFX1101 (0x46)
388+
# YAML-AMDGCN-GFX1101: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX1101 ]
389+
390+
# ELF-AMDGCN-GFX1102: EF_AMDGPU_MACH_AMDGCN_GFX1102 (0x47)
391+
# YAML-AMDGCN-GFX1102: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX1102 ]
392+
393+
# ELF-AMDGCN-GFX1103: EF_AMDGPU_MACH_AMDGCN_GFX1103 (0x44)
394+
# YAML-AMDGCN-GFX1103: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX1103 ]
395+
368396
# ELF-AMDGCN-ALL: ]
369397

370398

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

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,42 @@
337337
# RUN: yaml2obj %s -o %t -DABI_VERSION=16 -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX90A
338338
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=ALL,UNKNOWN-ABI-VERSION --match-full-lines -DABI_VERSION=16 -DFILE=%t -DFLAG_VALUE=0x3F
339339

340+
# RUN: yaml2obj %s -o %t -DABI_VERSION=0 -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1100
341+
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=ALL,KNOWN-ABI-VERSION,SINGLE-FLAG --match-full-lines -DABI_VERSION=0 -DFILE=%t -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1100 -DFLAG_VALUE=0x41
342+
343+
# RUN: yaml2obj %s -o %t -DABI_VERSION=1 -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1100
344+
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=ALL,KNOWN-ABI-VERSION,SINGLE-FLAG --match-full-lines -DABI_VERSION=1 -DFILE=%t -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1100 -DFLAG_VALUE=0x41
345+
346+
# RUN: yaml2obj %s -o %t -DABI_VERSION=2 -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1100
347+
# 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_GFX1100 -DFLAG_VALUE=0x41
348+
349+
# RUN: yaml2obj %s -o %t -DABI_VERSION=0 -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1101
350+
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=ALL,KNOWN-ABI-VERSION,SINGLE-FLAG --match-full-lines -DABI_VERSION=0 -DFILE=%t -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1101 -DFLAG_VALUE=0x46
351+
352+
# RUN: yaml2obj %s -o %t -DABI_VERSION=1 -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1101
353+
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=ALL,KNOWN-ABI-VERSION,SINGLE-FLAG --match-full-lines -DABI_VERSION=1 -DFILE=%t -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1101 -DFLAG_VALUE=0x46
354+
355+
# RUN: yaml2obj %s -o %t -DABI_VERSION=2 -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1101
356+
# 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_GFX1101 -DFLAG_VALUE=0x46
357+
358+
# RUN: yaml2obj %s -o %t -DABI_VERSION=0 -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1102
359+
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=ALL,KNOWN-ABI-VERSION,SINGLE-FLAG --match-full-lines -DABI_VERSION=0 -DFILE=%t -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1102 -DFLAG_VALUE=0x47
360+
361+
# RUN: yaml2obj %s -o %t -DABI_VERSION=1 -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1102
362+
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=ALL,KNOWN-ABI-VERSION,SINGLE-FLAG --match-full-lines -DABI_VERSION=1 -DFILE=%t -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1102 -DFLAG_VALUE=0x47
363+
364+
# RUN: yaml2obj %s -o %t -DABI_VERSION=2 -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1102
365+
# 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_GFX1102 -DFLAG_VALUE=0x47
366+
367+
# RUN: yaml2obj %s -o %t -DABI_VERSION=0 -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1103
368+
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=ALL,KNOWN-ABI-VERSION,SINGLE-FLAG --match-full-lines -DABI_VERSION=0 -DFILE=%t -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1103 -DFLAG_VALUE=0x44
369+
370+
# RUN: yaml2obj %s -o %t -DABI_VERSION=1 -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1103
371+
# RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=ALL,KNOWN-ABI-VERSION,SINGLE-FLAG --match-full-lines -DABI_VERSION=1 -DFILE=%t -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1103 -DFLAG_VALUE=0x44
372+
373+
# RUN: yaml2obj %s -o %t -DABI_VERSION=2 -DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1103
374+
# 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_GFX1103 -DFLAG_VALUE=0x44
375+
340376
--- !ELF
341377
FileHeader:
342378
Class: ELFCLASS64

llvm/tools/llvm-readobj/ELFDumper.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1539,6 +1539,10 @@ const EnumEntry<unsigned> ElfHeaderAMDGPUFlagsABIVersion3[] = {
15391539
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_MACH_AMDGCN_GFX1034),
15401540
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_MACH_AMDGCN_GFX1035),
15411541
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_MACH_AMDGCN_GFX1036),
1542+
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_MACH_AMDGCN_GFX1100),
1543+
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_MACH_AMDGCN_GFX1101),
1544+
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_MACH_AMDGCN_GFX1102),
1545+
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_MACH_AMDGCN_GFX1103),
15421546
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_FEATURE_XNACK_V3),
15431547
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_FEATURE_SRAMECC_V3)
15441548
};
@@ -1595,6 +1599,10 @@ const EnumEntry<unsigned> ElfHeaderAMDGPUFlagsABIVersion4[] = {
15951599
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_MACH_AMDGCN_GFX1034),
15961600
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_MACH_AMDGCN_GFX1035),
15971601
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_MACH_AMDGCN_GFX1036),
1602+
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_MACH_AMDGCN_GFX1100),
1603+
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_MACH_AMDGCN_GFX1101),
1604+
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_MACH_AMDGCN_GFX1102),
1605+
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_MACH_AMDGCN_GFX1103),
15981606
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_FEATURE_XNACK_ANY_V4),
15991607
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_FEATURE_XNACK_OFF_V4),
16001608
LLVM_READOBJ_ENUM_ENT(ELF, EF_AMDGPU_FEATURE_XNACK_ON_V4),

0 commit comments

Comments
 (0)