[clang] [llvm] [AMDGPU] Add more generic targets (PR #205363)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 23 08:17:35 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-binary-utilities
Author: Mirko BrkuĊĦanin (mbrkusanin)
<details>
<summary>Changes</summary>
gfx11-7-generic = 0x062
gfx13-generic = 0x063
Co-Authored-By: Claude noreply@<!-- -->anthropic.com
---
Patch is 38.68 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/205363.diff
25 Files Affected:
- (modified) clang/include/clang/Basic/OffloadArch.h (+3-1)
- (modified) clang/lib/Basic/OffloadArch.cpp (+3-1)
- (modified) clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp (+3-1)
- (modified) clang/test/Driver/amdgpu-macros.cl (+2)
- (modified) clang/test/Driver/amdgpu-mcpu.cl (+4)
- (modified) clang/test/Driver/offload-arch-translation-amdgpu.cu (+4)
- (modified) clang/test/Misc/target-invalid-cpu-note/amdgcn.c (+3-1)
- (modified) clang/test/Misc/target-invalid-cpu-note/nvptx.c (+3-1)
- (modified) llvm/docs/AMDGPUUsage.rst (+15)
- (modified) llvm/include/llvm/BinaryFormat/ELF.h (+6-2)
- (modified) llvm/include/llvm/TargetParser/AMDGPUTargetParser.def (+3-1)
- (modified) llvm/include/llvm/TargetParser/AMDGPUTargetParser.h (+1-1)
- (modified) llvm/lib/Target/AMDGPU/AMDGPU.td (+8)
- (modified) llvm/lib/Target/AMDGPU/GCNProcessors.td (+10)
- (modified) llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp (+10)
- (modified) llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h (+2)
- (modified) llvm/lib/TargetParser/AMDGPUTargetParser.cpp (+2)
- (modified) llvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll (+4)
- (modified) llvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll (+4)
- (modified) llvm/test/CodeGen/AMDGPU/generic-targets-require-v6.ll (+6)
- (modified) llvm/test/CodeGen/AMDGPU/hsa-generic-target-features.ll (+7-1)
- (modified) llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml (+14)
- (modified) llvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll (+10)
- (modified) llvm/test/tools/llvm-readobj/ELF/AMDGPU/elf-headers.test (+6)
- (modified) offload/plugins-nextgen/common/src/Utils/ELF.cpp (+1-1)
``````````diff
diff --git a/clang/include/clang/Basic/OffloadArch.h b/clang/include/clang/Basic/OffloadArch.h
index 5ad2129b9548c..552f1b0316ccf 100644
--- a/clang/include/clang/Basic/OffloadArch.h
+++ b/clang/include/clang/Basic/OffloadArch.h
@@ -112,15 +112,17 @@ enum class OffloadArch {
GFX1152,
GFX1153,
GFX1154,
+ GFX11_7_GENERIC,
GFX1170,
GFX1171,
GFX1172,
GFX12_GENERIC,
GFX1200,
GFX1201,
+ GFX12_5_GENERIC,
GFX1250,
GFX1251,
- GFX12_5_GENERIC,
+ GFX13_GENERIC,
GFX1310,
AMDGCNSPIRV,
Generic, // A processor model named 'generic' if the target backend defines a
diff --git a/clang/lib/Basic/OffloadArch.cpp b/clang/lib/Basic/OffloadArch.cpp
index 8cf97d1f7597e..2a333662455e4 100644
--- a/clang/lib/Basic/OffloadArch.cpp
+++ b/clang/lib/Basic/OffloadArch.cpp
@@ -105,15 +105,17 @@ static const OffloadArchToStringMap ArchNames[] = {
GFX(1152), // gfx1152
GFX(1153), // gfx1153
GFX(1154), // gfx1154
+ {OffloadArch::GFX11_7_GENERIC, "gfx11-7-generic", "compute_amdgcn"},
GFX(1170), // gfx1170
GFX(1171), // gfx1171
GFX(1172), // gfx1172
{OffloadArch::GFX12_GENERIC, "gfx12-generic", "compute_amdgcn"},
GFX(1200), // gfx1200
GFX(1201), // gfx1201
+ {OffloadArch::GFX12_5_GENERIC, "gfx12-5-generic", "compute_amdgcn"},
GFX(1250), // gfx1250
GFX(1251), // gfx1251
- {OffloadArch::GFX12_5_GENERIC, "gfx12-5-generic", "compute_amdgcn"},
+ {OffloadArch::GFX13_GENERIC, "gfx13-generic", "compute_amdgcn"},
GFX(1310), // gfx1310
{OffloadArch::AMDGCNSPIRV, "amdgcnspirv", "compute_amdgcn"},
// Intel CPUs
diff --git a/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp b/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
index dec3bca0ef3eb..3fccd3a291d37 100644
--- a/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
+++ b/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
@@ -2367,15 +2367,17 @@ void CGOpenMPRuntimeGPU::processRequiresDirective(const OMPRequiresDecl *D) {
case OffloadArch::GFX1152:
case OffloadArch::GFX1153:
case OffloadArch::GFX1154:
+ case OffloadArch::GFX11_7_GENERIC:
case OffloadArch::GFX1170:
case OffloadArch::GFX1171:
case OffloadArch::GFX1172:
case OffloadArch::GFX12_GENERIC:
case OffloadArch::GFX1200:
case OffloadArch::GFX1201:
+ case OffloadArch::GFX12_5_GENERIC:
case OffloadArch::GFX1250:
case OffloadArch::GFX1251:
- case OffloadArch::GFX12_5_GENERIC:
+ case OffloadArch::GFX13_GENERIC:
case OffloadArch::GFX1310:
case OffloadArch::AMDGCNSPIRV:
case OffloadArch::Generic:
diff --git a/clang/test/Driver/amdgpu-macros.cl b/clang/test/Driver/amdgpu-macros.cl
index 21b6db8445a8f..f162b0cc541df 100644
--- a/clang/test/Driver/amdgpu-macros.cl
+++ b/clang/test/Driver/amdgpu-macros.cl
@@ -144,8 +144,10 @@
// 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
// 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
// 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
+// RUN: %clang -E -dM -target amdgcn -mcpu=gfx11-7-generic %s 2>&1 | FileCheck --check-prefixes=ARCH-GCN,FAST_FMAF %s -DWAVEFRONT_SIZE=32 -DCPU=gfx11_7_generic -DFAMILY=GFX11
// 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
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx12-5-generic %s 2>&1 | FileCheck --check-prefixes=ARCH-GCN,FAST_FMAF %s -DWAVEFRONT_SIZE=32 -DCPU=gfx12_5_generic -DFAMILY=GFX12
+// RUN: %clang -E -dM -target amdgcn -mcpu=gfx13-generic %s 2>&1 | FileCheck --check-prefixes=ARCH-GCN,FAST_FMAF %s -DWAVEFRONT_SIZE=32 -DCPU=gfx13_generic -DFAMILY=GFX13
// ARCH-GCN-DAG: #define FP_FAST_FMA 1
// ARCH-GCN-DAG: #define FP_FAST_FMA_HALF 1
diff --git a/clang/test/Driver/amdgpu-mcpu.cl b/clang/test/Driver/amdgpu-mcpu.cl
index 97f4153525fe2..931e08fcd9f01 100644
--- a/clang/test/Driver/amdgpu-mcpu.cl
+++ b/clang/test/Driver/amdgpu-mcpu.cl
@@ -128,8 +128,10 @@
// RUN: %clang -### -target amdgcn -mcpu=gfx10-1-generic %s 2>&1 | FileCheck --check-prefix=GFX10_1_GENERIC %s
// RUN: %clang -### -target amdgcn -mcpu=gfx10-3-generic %s 2>&1 | FileCheck --check-prefix=GFX10_3_GENERIC %s
// RUN: %clang -### -target amdgcn -mcpu=gfx11-generic %s 2>&1 | FileCheck --check-prefix=GFX11_GENERIC %s
+// RUN: %clang -### -target amdgcn -mcpu=gfx11-7-generic %s 2>&1 | FileCheck --check-prefix=GFX11_7_GENERIC %s
// RUN: %clang -### -target amdgcn -mcpu=gfx12-generic %s 2>&1 | FileCheck --check-prefix=GFX12_GENERIC %s
// RUN: %clang -### -target amdgcn -mcpu=gfx12-5-generic %s 2>&1 | FileCheck --check-prefix=GFX12_5_GENERIC %s
+// RUN: %clang -### -target amdgcn -mcpu=gfx13-generic %s 2>&1 | FileCheck --check-prefix=GFX13_GENERIC %s
// GCNDEFAULT-NOT: -target-cpu
// GFX600: "-target-cpu" "gfx600"
@@ -190,5 +192,7 @@
// GFX10_1_GENERIC: "-target-cpu" "gfx10-1-generic"
// GFX10_3_GENERIC: "-target-cpu" "gfx10-3-generic"
// GFX11_GENERIC: "-target-cpu" "gfx11-generic"
+// GFX11_7_GENERIC: "-target-cpu" "gfx11-7-generic"
// GFX12_GENERIC: "-target-cpu" "gfx12-generic"
// GFX12_5_GENERIC: "-target-cpu" "gfx12-5-generic"
+// GFX13_GENERIC: "-target-cpu" "gfx13-generic"
diff --git a/clang/test/Driver/offload-arch-translation-amdgpu.cu b/clang/test/Driver/offload-arch-translation-amdgpu.cu
index bf542870cd24d..a5176315fbaf2 100644
--- a/clang/test/Driver/offload-arch-translation-amdgpu.cu
+++ b/clang/test/Driver/offload-arch-translation-amdgpu.cu
@@ -65,8 +65,10 @@
// RUN: %clang -x hip -### --target=x86_64-linux-gnu -c --cuda-gpu-arch=gfx10-1-generic -nogpuinc -nogpulib %s 2>&1 | FileCheck --check-prefixes=HIP,GFX10_1_GENERIC %s
// RUN: %clang -x hip -### --target=x86_64-linux-gnu -c --cuda-gpu-arch=gfx10-3-generic -nogpuinc -nogpulib %s 2>&1 | FileCheck --check-prefixes=HIP,GFX10_3_GENERIC %s
// RUN: %clang -x hip -### --target=x86_64-linux-gnu -c --cuda-gpu-arch=gfx11-generic -nogpuinc -nogpulib %s 2>&1 | FileCheck --check-prefixes=HIP,GFX11_GENERIC %s
+// RUN: %clang -x hip -### --target=x86_64-linux-gnu -c --cuda-gpu-arch=gfx11-7-generic -nogpuinc -nogpulib %s 2>&1 | FileCheck --check-prefixes=HIP,GFX11_7_GENERIC %s
// RUN: %clang -x hip -### --target=x86_64-linux-gnu -c --cuda-gpu-arch=gfx12-generic -nogpuinc -nogpulib %s 2>&1 | FileCheck --check-prefixes=HIP,GFX12_GENERIC %s
// RUN: %clang -x hip -### --target=x86_64-linux-gnu -c --cuda-gpu-arch=gfx12-5-generic -nogpuinc -nogpulib %s 2>&1 | FileCheck --check-prefixes=HIP,GFX12_5_GENERIC %s
+// RUN: %clang -x hip -### --target=x86_64-linux-gnu -c --cuda-gpu-arch=gfx13-generic -nogpuinc -nogpulib %s 2>&1 | FileCheck --check-prefixes=HIP,GFX13_GENERIC %s
//
// Feature modifier coverage
@@ -135,7 +137,9 @@
// GFX10_1_GENERIC: triple=amdgcn-amd-amdhsa,arch=gfx10-1-generic
// GFX10_3_GENERIC: triple=amdgcn-amd-amdhsa,arch=gfx10-3-generic
// GFX11_GENERIC: triple=amdgcn-amd-amdhsa,arch=gfx11-generic
+// GFX11_7_GENERIC: triple=amdgcn-amd-amdhsa,arch=gfx11-7-generic
// GFX12_GENERIC: triple=amdgcn-amd-amdhsa,arch=gfx12-generic
// GFX12_5_GENERIC: triple=amdgcn-amd-amdhsa,arch=gfx12-5-generic
+// GFX13_GENERIC: triple=amdgcn-amd-amdhsa,arch=gfx13-generic
// SPIRV: triple=spirv64-amd-amdhsa,arch=amdgcnspirv
diff --git a/clang/test/Misc/target-invalid-cpu-note/amdgcn.c b/clang/test/Misc/target-invalid-cpu-note/amdgcn.c
index 44c6a61b184af..0f4336d15e698 100644
--- a/clang/test/Misc/target-invalid-cpu-note/amdgcn.c
+++ b/clang/test/Misc/target-invalid-cpu-note/amdgcn.c
@@ -76,10 +76,12 @@
// CHECK-SAME: {{^}}, gfx1251
// CHECK-SAME: {{^}}, gfx1310
// CHECK-SAME: {{^}}, gfx9-generic
+// CHECK-SAME: {{^}}, gfx9-4-generic
// CHECK-SAME: {{^}}, gfx10-1-generic
// CHECK-SAME: {{^}}, gfx10-3-generic
// CHECK-SAME: {{^}}, gfx11-generic
+// CHECK-SAME: {{^}}, gfx11-7-generic
// CHECK-SAME: {{^}}, gfx12-generic
-// CHECK-SAME: {{^}}, gfx9-4-generic
// CHECK-SAME: {{^}}, gfx12-5-generic
+// CHECK-SAME: {{^}}, gfx13-generic
// CHECK-SAME: {{$}}
diff --git a/clang/test/Misc/target-invalid-cpu-note/nvptx.c b/clang/test/Misc/target-invalid-cpu-note/nvptx.c
index 6c234cc3a5c5c..decbdfd44d6eb 100644
--- a/clang/test/Misc/target-invalid-cpu-note/nvptx.c
+++ b/clang/test/Misc/target-invalid-cpu-note/nvptx.c
@@ -94,15 +94,17 @@
// CHECK-SAME: {{^}}, gfx1152
// CHECK-SAME: {{^}}, gfx1153
// CHECK-SAME: {{^}}, gfx1154
+// CHECK-SAME: {{^}}, gfx11-7-generic
// CHECK-SAME: {{^}}, gfx1170
// CHECK-SAME: {{^}}, gfx1171
// CHECK-SAME: {{^}}, gfx1172
// CHECK-SAME: {{^}}, gfx12-generic
// CHECK-SAME: {{^}}, gfx1200
// CHECK-SAME: {{^}}, gfx1201
+// CHECK-SAME: {{^}}, gfx12-5-generic
// CHECK-SAME: {{^}}, gfx1250
// CHECK-SAME: {{^}}, gfx1251
-// CHECK-SAME: {{^}}, gfx12-5-generic
+// CHECK-SAME: {{^}}, gfx13-generic
// CHECK-SAME: {{^}}, gfx1310
// CHECK-SAME: {{^}}, amdgcnspirv
// CHECK-SAME: {{$}}
diff --git a/llvm/docs/AMDGPUUsage.rst b/llvm/docs/AMDGPUUsage.rst
index 8aad903f98561..2b522395ee892 100644
--- a/llvm/docs/AMDGPUUsage.rst
+++ b/llvm/docs/AMDGPUUsage.rst
@@ -701,6 +701,12 @@ Generic processor code objects are versioned. See :ref:`amdgpu-generic-processor
- ``gfx1103``
+ ``gfx11-7-generic`` ``amdgcn`` - ``gfx1170`` - wavefrontsize64 - Architected No restrictions.
+ - ``gfx1171`` - cumode flat scratch
+ - ``gfx1172`` - Packed
+ work-item
+ IDs
+
``gfx12-generic`` ``amdgcn`` - ``gfx1200`` - wavefrontsize64 - Architected No restrictions.
- ``gfx1201`` - cumode flat scratch
- Packed
@@ -712,6 +718,12 @@ Generic processor code objects are versioned. See :ref:`amdgpu-generic-processor
- Packed
work-item
IDs
+
+ ``gfx13-generic`` ``amdgcn`` - ``gfx1310`` - wavefrontsize64 - Architected No restrictions.
+ - cumode flat scratch
+ - Packed
+ work-item
+ IDs
==================== ============== ================= ================== ================= =================================
.. _amdgpu-generic-processor-versioning:
@@ -3063,6 +3075,9 @@ The AMDGPU backend uses the following ELF header:
``EF_AMDGPU_MACH_AMDGCN_GFX1171`` 0x05e ``gfx1171``
``EF_AMDGPU_MACH_AMDGCN_GFX9_4_GENERIC`` 0x05f ``gfx9-4-generic``
*reserved* 0x060 Reserved.
+ *reserved* 0x061 Reserved.
+ ``EF_AMDGPU_MACH_AMDGCN_GFX11_7_GENERIC`` 0x062 ``gfx11-7-generic``
+ ``EF_AMDGPU_MACH_AMDGCN_GFX13_GENERIC`` 0x063 ``gfx13-generic``
*reserved* 0x070 Reserved.
========================================== ========== =============================
diff --git a/llvm/include/llvm/BinaryFormat/ELF.h b/llvm/include/llvm/BinaryFormat/ELF.h
index 5b9ed6100f20f..3f1889f236ea1 100644
--- a/llvm/include/llvm/BinaryFormat/ELF.h
+++ b/llvm/include/llvm/BinaryFormat/ELF.h
@@ -840,7 +840,9 @@ enum {
X(0x5c, EF_AMDGPU_MACH_AMDGCN_GFX1172, "gfx1172") \
X(0x5d, EF_AMDGPU_MACH_AMDGCN_GFX1170, "gfx1170") \
X(0x5e, EF_AMDGPU_MACH_AMDGCN_GFX1171, "gfx1171") \
- X(0x5f, EF_AMDGPU_MACH_AMDGCN_GFX9_4_GENERIC, "gfx9-4-generic")
+ X(0x5f, EF_AMDGPU_MACH_AMDGCN_GFX9_4_GENERIC, "gfx9-4-generic") \
+ X(0x62, EF_AMDGPU_MACH_AMDGCN_GFX11_7_GENERIC, "gfx11-7-generic") \
+ X(0x63, EF_AMDGPU_MACH_AMDGCN_GFX13_GENERIC, "gfx13-generic")
enum : unsigned {
// clang-format off
@@ -868,10 +870,12 @@ enum : unsigned {
EF_AMDGPU_MACH_AMDGCN_RESERVED_0X4D = 0x04d,
EF_AMDGPU_MACH_AMDGCN_RESERVED_0X56 = 0x056,
EF_AMDGPU_MACH_AMDGCN_RESERVED_0X57 = 0x057,
+ EF_AMDGPU_MACH_AMDGCN_RESERVED_0X60 = 0x060,
+ EF_AMDGPU_MACH_AMDGCN_RESERVED_0X61 = 0x061,
// First/last AMDGCN-based processors.
EF_AMDGPU_MACH_AMDGCN_FIRST = EF_AMDGPU_MACH_AMDGCN_GFX600,
- EF_AMDGPU_MACH_AMDGCN_LAST = EF_AMDGPU_MACH_AMDGCN_GFX9_4_GENERIC,
+ EF_AMDGPU_MACH_AMDGCN_LAST = EF_AMDGPU_MACH_AMDGCN_GFX13_GENERIC,
// Indicates if the "xnack" target feature is enabled for all code contained
// in the object.
diff --git a/llvm/include/llvm/TargetParser/AMDGPUTargetParser.def b/llvm/include/llvm/TargetParser/AMDGPUTargetParser.def
index 3c8b756ae2705..9e633e16b80dc 100644
--- a/llvm/include/llvm/TargetParser/AMDGPUTargetParser.def
+++ b/llvm/include/llvm/TargetParser/AMDGPUTargetParser.def
@@ -142,12 +142,14 @@ AMDGCN_GPU ("gfx1310", GK_GFX1310, (13, 1, 0), FEATURE_FAST_FMA_F32|FEAT
// TODO: Split up this API depending on its caller so
// generic target handling is more obvious and less risky.
AMDGCN_GPU ("gfx9-generic", GK_GFX9_GENERIC, ( 9, 0, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK|FEATURE_XNACK_ON_OFF_MODES)
+AMDGCN_GPU ("gfx9-4-generic", GK_GFX9_4_GENERIC, ( 9, 4, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK|FEATURE_XNACK_ON_OFF_MODES|FEATURE_SRAMECC)
AMDGCN_GPU ("gfx10-1-generic", GK_GFX10_1_GENERIC, (10, 1, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_XNACK|FEATURE_XNACK_ON_OFF_MODES|FEATURE_WGP)
AMDGCN_GPU ("gfx10-3-generic", GK_GFX10_3_GENERIC, (10, 3, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
AMDGCN_GPU ("gfx11-generic", GK_GFX11_GENERIC, (11, 0, 3), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
+AMDGCN_GPU ("gfx11-7-generic", GK_GFX11_7_GENERIC, (11, 7, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
AMDGCN_GPU ("gfx12-generic", GK_GFX12_GENERIC, (12, 0, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
-AMDGCN_GPU ("gfx9-4-generic", GK_GFX9_4_GENERIC, ( 9, 4, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK|FEATURE_XNACK_ON_OFF_MODES|FEATURE_SRAMECC)
AMDGCN_GPU ("gfx12-5-generic", GK_GFX12_5_GENERIC, (12, 5, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_XNACK)
+AMDGCN_GPU ("gfx13-generic", GK_GFX13_GENERIC, (13, 1, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
#undef AMDGCN_GPU
#undef AMDGCN_GPU_ALIAS
diff --git a/llvm/include/llvm/TargetParser/AMDGPUTargetParser.h b/llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
index 1376f0942852d..ba447dd346d80 100644
--- a/llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+++ b/llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
@@ -39,7 +39,7 @@ enum GPUKind : uint32_t {
#include "AMDGPUTargetParser.def"
GK_AMDGCN_GENERIC_FIRST = GK_GFX9_GENERIC,
- GK_AMDGCN_GENERIC_LAST = GK_GFX12_5_GENERIC,
+ GK_AMDGCN_GENERIC_LAST = GK_GFX13_GENERIC,
};
/// Instruction set architecture version.
diff --git a/llvm/lib/Target/AMDGPU/AMDGPU.td b/llvm/lib/Target/AMDGPU/AMDGPU.td
index 705e76ebeb7e5..84c4f46a0d8d2 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPU.td
+++ b/llvm/lib/Target/AMDGPU/AMDGPU.td
@@ -2071,6 +2071,10 @@ def FeatureISAVersion11_7_Common : FeatureSet<
FeatureMinimum3Maximum3F16,
FeatureNoF16PseudoScalarTransInlineConstants])>;
+def FeatureISAVersion11_7_Generic: FeatureSet<
+ !listconcat(FeatureISAVersion11_7_Common.Features,
+ [FeatureRequiresCOV6])>;
+
def FeatureISAVersion12 : FeatureSet<
[FeatureGFX12,
FeatureBackOffBarrier,
@@ -2341,6 +2345,10 @@ def FeatureISAVersion13 : FeatureSet<
FeatureSmemPrefetchInsts
]>;
+def FeatureISAVersion13_Generic: FeatureSet<
+ !listconcat(FeatureISAVersion13.Features,
+ [FeatureRequiresCOV6])>;
+
//===----------------------------------------------------------------------===//
def AMDGPUInstrInfo : InstrInfo {
diff --git a/llvm/lib/Target/AMDGPU/GCNProcessors.td b/llvm/lib/Target/AMDGPU/GCNProcessors.td
index 20c9655739890..2edd83527992c 100644
--- a/llvm/lib/Target/AMDGPU/GCNProcessors.td
+++ b/llvm/lib/Target/AMDGPU/GCNProcessors.td
@@ -326,6 +326,11 @@ def : ProcessorModel<"gfx11-generic", GFX11SpeedModel,
FeatureISAVersion11_Generic.Features
>;
+// [gfx1170, gfx1171, gfx1172]
+def : ProcessorModel<"gfx11-7-generic", GFX11SpeedModel,
+ FeatureISAVersion11_7_Generic.Features
+>;
+
//===----------------------------------------------------------------------===//
// GCN GFX12.
//===----------------------------------------------------------------------===//
@@ -363,3 +368,8 @@ def : ProcessorModel<"gfx12-5-generic", GFX125xGenericSpeedModel,
def : ProcessorModel<"gfx1310", GFX12SpeedModel,
FeatureISAVersion13.Features
>;
+
+// [gfx1310]
+def : ProcessorModel<"gfx13-generic", GFX12SpeedModel,
+ FeatureISAVersion13_Generic.Features
+>;
diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
index 5db46edf18e67..97bcec66fe318 100644
--- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
+++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
@@ -131,8 +131,10 @@ StringRef AMDGPUTargetStreamer::getArchNameFromElfMach(unsigned ElfMach) {
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX10_1_GENERIC: AK = GK_GFX10_1_GENERIC; break;
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX10_3_GENERIC: AK = GK_GFX10_3_GENERIC; break;
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX11_GENERIC: AK = GK_GFX11_GENERIC; break;
+ case ELF::EF_AMDGPU_MACH_AMDGCN_GFX11_7_GENERIC: AK = GK_GFX11_7_GENERIC; break;
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC: AK = GK_GFX12_GENERIC; break;
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX12_5_GENERIC: AK = GK_GFX12_5_GENERIC; break;
+ case ELF::EF_AMDGPU_MACH_AMDGCN_GFX13_GENERIC: AK = GK_GFX13_GENERIC; break;
case ELF::EF_AMDGPU_MACH_NONE: AK = GK_NONE; break;
default: AK = GK_NONE; break;
}
@@ -224,8 +226,10 @@ unsigned AMDGPUTargetStreamer::getElfMach(StringRef GPU) {
case GK_GFX10_1_GENERIC: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX10_1_GENERIC;
case GK_GFX10_3_GENERIC: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX10_3_GENERIC;
case GK_GFX11_GENERIC: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX11_GENERIC;
+ case GK_GFX11_7_GENERIC: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX11_7_GENERIC;
case GK_GFX12_GENERIC: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC;
case GK_GFX12_5_GENERIC: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX12_5_GENERIC;
+ case GK_GFX13_GENERIC: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX13_GENERIC;
case GK_NONE: return ELF::EF_AMDGPU_MACH_NONE;
}
// clang-format on
@@ -969,12 +973,18 @@ unsigned AMDGPUTargetELFStreamer::getEFlagsV6() {
case AMDGPU::GK_GFX11_GENERIC:
Version = GenericVersion::GFX11;
break;
+ case AMDGPU::GK_GFX11_7_GENERIC:
+ Version = GenericVersion::GFX11_7;
+ break;
case AMDGPU::GK_GFX12_GENERIC:
Version = GenericVersion::GFX12;
break;
case AMDGPU::GK_GFX12_5_GENERIC:
Version = GenericVersion::GFX12_5;
break;
+ case AMDGPU::GK_GFX13_GENERIC:
+ Version = GenericVersion::GFX13;
+ ...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/205363
More information about the llvm-commits
mailing list