https://github.com/mbrkusanin created 
https://github.com/llvm/llvm-project/pull/205363

gfx11-7-generic = 0x062
gfx13-generic = 0x063

Co-Authored-By: Claude [email protected]

From 292f3783261baa0d1a59cab3b1962ec4ae0b07b1 Mon Sep 17 00:00:00 2001
From: Mirko Brkusanin <[email protected]>
Date: Tue, 23 Jun 2026 16:53:51 +0200
Subject: [PATCH] [AMDGPU] Add more generic targets

gfx11-7-generic = 0x062
gfx13-generic   = 0x063

Co-Authored-By: Claude [email protected]
---
 clang/include/clang/Basic/OffloadArch.h           |  4 +++-
 clang/lib/Basic/OffloadArch.cpp                   |  4 +++-
 clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp          |  4 +++-
 clang/test/Driver/amdgpu-macros.cl                |  2 ++
 clang/test/Driver/amdgpu-mcpu.cl                  |  4 ++++
 .../Driver/offload-arch-translation-amdgpu.cu     |  4 ++++
 clang/test/Misc/target-invalid-cpu-note/amdgcn.c  |  4 +++-
 clang/test/Misc/target-invalid-cpu-note/nvptx.c   |  4 +++-
 llvm/docs/AMDGPUUsage.rst                         | 15 +++++++++++++++
 llvm/include/llvm/BinaryFormat/ELF.h              |  8 ++++++--
 .../llvm/TargetParser/AMDGPUTargetParser.def      |  4 +++-
 .../llvm/TargetParser/AMDGPUTargetParser.h        |  2 +-
 llvm/lib/Target/AMDGPU/AMDGPU.td                  |  8 ++++++++
 llvm/lib/Target/AMDGPU/GCNProcessors.td           | 10 ++++++++++
 .../AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp  | 10 ++++++++++
 llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h     |  2 ++
 llvm/lib/TargetParser/AMDGPUTargetParser.cpp      |  2 ++
 .../CodeGen/AMDGPU/directive-amdgcn-target.ll     |  4 ++++
 llvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll |  4 ++++
 .../CodeGen/AMDGPU/generic-targets-require-v6.ll  |  6 ++++++
 .../CodeGen/AMDGPU/hsa-generic-target-features.ll |  8 +++++++-
 .../test/Object/AMDGPU/elf-header-flags-mach.yaml | 14 ++++++++++++++
 .../tools/llvm-objdump/ELF/AMDGPU/subtarget.ll    | 10 ++++++++++
 .../llvm-readobj/ELF/AMDGPU/elf-headers.test      |  6 ++++++
 offload/plugins-nextgen/common/src/Utils/ELF.cpp  |  2 +-
 25 files changed, 134 insertions(+), 11 deletions(-)

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;
+      break;
     default:
       break;
     }
diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h 
b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
index 1623dc72d2810..e660a47bdafa1 100644
--- a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+++ b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
@@ -58,8 +58,10 @@ static constexpr unsigned GFX9_4 = 1;
 static constexpr unsigned GFX10_1 = 1;
 static constexpr unsigned GFX10_3 = 1;
 static constexpr unsigned GFX11 = 1;
+static constexpr unsigned GFX11_7 = 1;
 static constexpr unsigned GFX12 = 1;
 static constexpr unsigned GFX12_5 = 1;
+static constexpr unsigned GFX13 = 1;
 } // namespace GenericVersion
 
 enum { AMDHSA_COV4 = 4, AMDHSA_COV5 = 5, AMDHSA_COV6 = 6 };
diff --git a/llvm/lib/TargetParser/AMDGPUTargetParser.cpp 
b/llvm/lib/TargetParser/AMDGPUTargetParser.cpp
index bc9a94c4bbade..d22e0ea8b4ff3 100644
--- a/llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+++ b/llvm/lib/TargetParser/AMDGPUTargetParser.cpp
@@ -215,6 +215,7 @@ static void fillAMDGCNFeatureMap(StringRef GPU, const 
Triple &T,
     Features["swmmac-gfx1250-insts"] = true;
     [[fallthrough]];
   case GK_GFX1310:
+  case GK_GFX13_GENERIC:
     Features["cube-insts"] = true;
     Features["cvt-pknorm-vop2-insts"] = true;
     Features["lerp-inst"] = true;
@@ -311,6 +312,7 @@ static void fillAMDGCNFeatureMap(StringRef GPU, const 
Triple &T,
   case GK_GFX1170:
   case GK_GFX1171:
   case GK_GFX1172:
+  case GK_GFX11_7_GENERIC:
     Features["ci-insts"] = true;
     Features["dot7-insts"] = true;
     Features["dot8-insts"] = true;
diff --git a/llvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll 
b/llvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll
index 7f1923edeb204..0164332637131 100644
--- a/llvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll
+++ b/llvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll
@@ -122,8 +122,10 @@
 ; 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
 ; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx10-3-generic < %s | FileCheck --check-prefixes=GFX10_3_GENERIC %s
 ; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx11-generic < %s | FileCheck --check-prefixes=GFX11_GENERIC %s
+; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx11-7-generic < %s | FileCheck --check-prefixes=GFX11_7_GENERIC %s
 ; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx12-generic < %s | FileCheck --check-prefixes=GFX12_GENERIC %s
 ; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx12-5-generic < %s | FileCheck --check-prefixes=GFX12_5_GENERIC %s
+; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx13-generic < %s | FileCheck --check-prefixes=GFX13_GENERIC %s
 
 ; GFX600: .amdgcn_target "amdgcn-amd-amdhsa-unknown-gfx600"
 ; GFX601: .amdgcn_target "amdgcn-amd-amdhsa-unknown-gfx601"
@@ -227,8 +229,10 @@
 ; GFX10_1_GENERIC_XNACK:    .amdgcn_target 
"amdgcn-amd-amdhsa-unknown-gfx10-1-generic:xnack+"
 ; GFX10_3_GENERIC:          .amdgcn_target 
"amdgcn-amd-amdhsa-unknown-gfx10-3-generic"
 ; GFX11_GENERIC:            .amdgcn_target 
"amdgcn-amd-amdhsa-unknown-gfx11-generic"
+; GFX11_7_GENERIC:          .amdgcn_target 
"amdgcn-amd-amdhsa-unknown-gfx11-7-generic"
 ; GFX12_GENERIC:            .amdgcn_target 
"amdgcn-amd-amdhsa-unknown-gfx12-generic"
 ; GFX12_5_GENERIC:          .amdgcn_target 
"amdgcn-amd-amdhsa-unknown-gfx12-5-generic"
+; GFX13_GENERIC:            .amdgcn_target 
"amdgcn-amd-amdhsa-unknown-gfx13-generic"
 
 define amdgpu_kernel void @directive_amdgcn_target() {
   ret void
diff --git a/llvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll 
b/llvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll
index 04b7415b8a4da..bcc8e96cedd6e 100644
--- a/llvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll
+++ b/llvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll
@@ -90,8 +90,10 @@
 ; 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
 ; 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
 ; 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
+; RUN: llc -filetype=obj --amdhsa-code-object-version=6 -mtriple=amdgcn 
-mcpu=gfx11-7-generic < %s | llvm-readobj --file-header - | FileCheck 
--check-prefixes=ALL,ARCH-GCN,GFX11_7_GENERIC %s
 ; 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
 ; RUN: llc -filetype=obj --amdhsa-code-object-version=6 -mtriple=amdgcn 
-mcpu=gfx12-5-generic < %s | llvm-readobj --file-header - | FileCheck 
--check-prefixes=ALL,ARCH-GCN,GFX12_5_GENERIC %s
+; RUN: llc -filetype=obj --amdhsa-code-object-version=6 -mtriple=amdgcn 
-mcpu=gfx13-generic < %s | llvm-readobj --file-header - | FileCheck 
--check-prefixes=ALL,ARCH-GCN,GFX13_GENERIC %s
 
 ; FIXME: With the default attributes the eflags are not accurate for
 ; xnack and sramecc. Subsequent Target-ID patches will address this.
@@ -179,8 +181,10 @@
 ; GFX10_1_GENERIC:    EF_AMDGPU_MACH_AMDGCN_GFX10_1_GENERIC (0x52)
 ; GFX10_3_GENERIC:    EF_AMDGPU_MACH_AMDGCN_GFX10_3_GENERIC (0x53)
 ; GFX11_GENERIC:      EF_AMDGPU_MACH_AMDGCN_GFX11_GENERIC (0x54)
+; GFX11_7_GENERIC:    EF_AMDGPU_MACH_AMDGCN_GFX11_7_GENERIC (0x62)
 ; GFX12_GENERIC:      EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC (0x59)
 ; GFX12_5_GENERIC:    EF_AMDGPU_MACH_AMDGCN_GFX12_5_GENERIC (0x5B)
+; GFX13_GENERIC:      EF_AMDGPU_MACH_AMDGCN_GFX13_GENERIC (0x63)
 ; ALL:         ]
 
 define amdgpu_kernel void @elf_header() {
diff --git a/llvm/test/CodeGen/AMDGPU/generic-targets-require-v6.ll 
b/llvm/test/CodeGen/AMDGPU/generic-targets-require-v6.ll
index 9d06165ceb773..00a13a0fb68d2 100644
--- a/llvm/test/CodeGen/AMDGPU/generic-targets-require-v6.ll
+++ b/llvm/test/CodeGen/AMDGPU/generic-targets-require-v6.ll
@@ -3,24 +3,30 @@
 ; RUN: not llc -mtriple=amdgcn -mcpu=gfx10-1-generic 
--amdhsa-code-object-version=5 -o - %s 2>&1 | FileCheck 
--check-prefix=GFX101-V5 %s
 ; RUN: not llc -mtriple=amdgcn -mcpu=gfx10-3-generic 
--amdhsa-code-object-version=5 -o - %s 2>&1 | FileCheck 
--check-prefix=GFX103-V5 %s
 ; RUN: not llc -mtriple=amdgcn -mcpu=gfx11-generic 
--amdhsa-code-object-version=5 -o - %s 2>&1 | FileCheck --check-prefix=GFX11-V5 
%s
+; RUN: not llc -mtriple=amdgcn -mcpu=gfx11-7-generic 
--amdhsa-code-object-version=5 -o - %s 2>&1 | FileCheck 
--check-prefix=GFX117-V5 %s
 ; RUN: not llc -mtriple=amdgcn -mcpu=gfx12-generic 
--amdhsa-code-object-version=5 -o - %s 2>&1 | FileCheck --check-prefix=GFX12-V5 
%s
 ; RUN: not llc -mtriple=amdgcn -mcpu=gfx12-5-generic 
--amdhsa-code-object-version=5 -o - %s 2>&1 | FileCheck 
--check-prefix=GFX125-V5 %s
+; RUN: not llc -mtriple=amdgcn -mcpu=gfx13-generic 
--amdhsa-code-object-version=5 -o - %s 2>&1 | FileCheck --check-prefix=GFX13-V5 
%s
 
 ; RUN: llc -mtriple=amdgcn -mcpu=gfx9-generic --amdhsa-code-object-version=6 
-o - %s
 ; RUN: llc -mtriple=amdgcn -mcpu=gfx9-4-generic --amdhsa-code-object-version=6 
-o - %s
 ; RUN: llc -mtriple=amdgcn -mcpu=gfx10-1-generic 
--amdhsa-code-object-version=6 -o - %s
 ; RUN: llc -mtriple=amdgcn -mcpu=gfx10-3-generic 
--amdhsa-code-object-version=6 -o - %s
 ; RUN: llc -mtriple=amdgcn -mcpu=gfx11-generic --amdhsa-code-object-version=6 
-o - %s
+; RUN: llc -mtriple=amdgcn -mcpu=gfx11-7-generic 
--amdhsa-code-object-version=6 -o - %s
 ; RUN: llc -mtriple=amdgcn -mcpu=gfx12-generic --amdhsa-code-object-version=6 
-o - %s
 ; RUN: llc -mtriple=amdgcn -mcpu=gfx12-5-generic 
--amdhsa-code-object-version=6 -o - %s
+; RUN: llc -mtriple=amdgcn -mcpu=gfx13-generic --amdhsa-code-object-version=6 
-o - %s
 
 ; GFX9-V5:   gfx9-generic is only available on code object version 6 or better
 ; GFX9-4-V5: gfx9-4-generic is only available on code object version 6 or 
better
 ; GFX101-V5: gfx10-1-generic is only available on code object version 6 or 
better
 ; GFX103-V5: gfx10-3-generic is only available on code object version 6 or 
better
 ; GFX11-V5:  gfx11-generic is only available on code object version 6 or better
+; GFX117-V5: gfx11-7-generic is only available on code object version 6 or 
better
 ; GFX12-V5:  gfx12-generic is only available on code object version 6 or better
 ; GFX125-V5: gfx12-5-generic is only available on code object version 6 or 
better
+; GFX13-V5:  gfx13-generic is only available on code object version 6 or better
 
 define void @foo() {
   ret void
diff --git a/llvm/test/CodeGen/AMDGPU/hsa-generic-target-features.ll 
b/llvm/test/CodeGen/AMDGPU/hsa-generic-target-features.ll
index 864c99c34f728..23b8ea9962f90 100644
--- a/llvm/test/CodeGen/AMDGPU/hsa-generic-target-features.ll
+++ b/llvm/test/CodeGen/AMDGPU/hsa-generic-target-features.ll
@@ -4,6 +4,9 @@
 ; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx10-3-generic < %s | FileCheck -check-prefix=CU %s
 ; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx11-generic -mattr=+cumode < %s | FileCheck -check-prefix=NOCU %s
 ; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx11-generic < %s | FileCheck -check-prefix=CU %s
+; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx11-7-generic -mattr=+cumode < %s | FileCheck -check-prefix=NOCU %s
+; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx11-7-generic < %s | FileCheck -check-prefix=CU %s
+; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx12-generic -mattr=+cumode < %s | FileCheck -check-prefix=NOCU %s
 ; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx12-generic < %s | FileCheck -check-prefix=CU %s
 
 ; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx10-1-generic -mattr=+wavefrontsize32 < %s | FileCheck 
-check-prefix=W32 %s
@@ -12,10 +15,13 @@
 ; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx10-3-generic -mattr=+wavefrontsize64 < %s | FileCheck 
-check-prefix=W64 %s
 ; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx11-generic -mattr=+wavefrontsize32 < %s | FileCheck -check-prefix=W32 
%s
 ; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx11-generic -mattr=+wavefrontsize64 < %s | FileCheck -check-prefix=W64 
%s
+; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx11-7-generic -mattr=+wavefrontsize32 < %s | FileCheck 
-check-prefix=W32 %s
+; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx11-7-generic -mattr=+wavefrontsize64 < %s | FileCheck 
-check-prefix=W64 %s
+; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx12-generic -mattr=+wavefrontsize32 < %s | FileCheck -check-prefix=W32 
%s
 ; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx12-generic -mattr=+wavefrontsize64 < %s | FileCheck -check-prefix=W64 
%s
 ; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa 
-mcpu=gfx12-5-generic < %s | FileCheck -check-prefix=W32 %s
 
-; Checks 10.1, 10.3 and 11 generic targets allow cumode/wave64.
+; Checks 10.1, 10.3, 11, 11.7 and 12 generic targets allow cumode/wave64.
 
 ; NOCU:    .amdhsa_workgroup_processor_mode 0
 ; NOCU:    .workgroup_processor_mode: 0
diff --git a/llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml 
b/llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml
index 94d5c19b3faa8..9975a52a6c68e 100644
--- a/llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml
+++ b/llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml
@@ -290,6 +290,10 @@
 # RUN: llvm-readobj -S --file-headers %t.o.AMDGCN_GFX11_GENERIC | FileCheck 
--check-prefixes=ELF-AMDGCN-ALL,ELF-AMDGCN-GFX11_GENERIC %s
 # RUN: obj2yaml %t.o.AMDGCN_GFX11_GENERIC | FileCheck 
--check-prefixes=YAML-AMDGCN-ALL,YAML-AMDGCN-GFX11_GENERIC %s
 
+# RUN: sed -e 's/<BITS>/64/' -e 's/<MACH>/AMDGCN_GFX11_7_GENERIC/' %s | 
yaml2obj -o %t.o.AMDGCN_GFX11_7_GENERIC
+# RUN: llvm-readobj -S --file-headers %t.o.AMDGCN_GFX11_7_GENERIC | FileCheck 
--check-prefixes=ELF-AMDGCN-ALL,ELF-AMDGCN-GFX11_7_GENERIC %s
+# RUN: obj2yaml %t.o.AMDGCN_GFX11_7_GENERIC | FileCheck 
--check-prefixes=YAML-AMDGCN-ALL,YAML-AMDGCN-GFX11_7_GENERIC %s
+
 # RUN: sed -e 's/<BITS>/64/' -e 's/<MACH>/AMDGCN_GFX12_GENERIC/' %s | yaml2obj 
-o %t.o.AMDGCN_GFX12_GENERIC
 # RUN: llvm-readobj -S --file-headers %t.o.AMDGCN_GFX12_GENERIC | FileCheck 
--check-prefixes=ELF-AMDGCN-ALL,ELF-AMDGCN-GFX12_GENERIC %s
 # RUN: obj2yaml %t.o.AMDGCN_GFX12_GENERIC | FileCheck 
--check-prefixes=YAML-AMDGCN-ALL,YAML-AMDGCN-GFX12_GENERIC %s
@@ -298,6 +302,10 @@
 # RUN: llvm-readobj -S --file-headers %t.o.AMDGCN_GFX12_5_GENERIC | FileCheck 
--check-prefixes=ELF-AMDGCN-ALL,ELF-AMDGCN-GFX12_5_GENERIC %s
 # RUN: obj2yaml %t.o.AMDGCN_GFX12_5_GENERIC | FileCheck 
--check-prefixes=YAML-AMDGCN-ALL,YAML-AMDGCN-GFX12_5_GENERIC %s
 
+# RUN: sed -e 's/<BITS>/64/' -e 's/<MACH>/AMDGCN_GFX13_GENERIC/' %s | yaml2obj 
-o %t.o.AMDGCN_GFX13_GENERIC
+# RUN: llvm-readobj -S --file-headers %t.o.AMDGCN_GFX13_GENERIC | FileCheck 
--check-prefixes=ELF-AMDGCN-ALL,ELF-AMDGCN-GFX13_GENERIC %s
+# RUN: obj2yaml %t.o.AMDGCN_GFX13_GENERIC | FileCheck 
--check-prefixes=YAML-AMDGCN-ALL,YAML-AMDGCN-GFX13_GENERIC %s
+
 
 # ELF-R600-ALL:       Format: elf32-amdgpu
 # ELF-R600-ALL:       Arch: r600
@@ -535,12 +543,18 @@
 # ELF-AMDGCN-GFX11_GENERIC:   EF_AMDGPU_MACH_AMDGCN_GFX11_GENERIC (0x54)
 # YAML-AMDGCN-GFX11_GENERIC:  Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX11_GENERIC ]
 
+# ELF-AMDGCN-GFX11_7_GENERIC:   EF_AMDGPU_MACH_AMDGCN_GFX11_7_GENERIC (0x62)
+# YAML-AMDGCN-GFX11_7_GENERIC:  Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX11_7_GENERIC 
]
+
 # ELF-AMDGCN-GFX12_GENERIC:   EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC (0x59)
 # YAML-AMDGCN-GFX12_GENERIC:  Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC ]
 
 # ELF-AMDGCN-GFX12_5_GENERIC:   EF_AMDGPU_MACH_AMDGCN_GFX12_5_GENERIC (0x5B)
 # YAML-AMDGCN-GFX12_5_GENERIC:  Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX12_5_GENERIC 
]
 
+# ELF-AMDGCN-GFX13_GENERIC:   EF_AMDGPU_MACH_AMDGCN_GFX13_GENERIC (0x63)
+# YAML-AMDGCN-GFX13_GENERIC:  Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX13_GENERIC ]
+
 # ELF-AMDGCN-ALL:       ]
 
 
diff --git a/llvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll 
b/llvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll
index ce5d4032cd420..df34fd13f7026 100644
--- a/llvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll
+++ b/llvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll
@@ -11,6 +11,11 @@ define amdgpu_kernel void @test_kernel() {
 ; RUN: llvm-objdump -D %t.o > %t-detect.txt
 ; RUN: diff %t-specify.txt %t-detect.txt
 ;
+; RUN: llc -mtriple=amdgcn-amd-amdhsa --amdhsa-code-object-version=6 
-mcpu=gfx13-generic -filetype=obj -O0 -o %t.o %s
+; RUN: llvm-objdump -D --arch-name=amdgcn -mllvm 
--amdhsa-code-object-version=6 --mcpu=gfx13-generic %t.o > %t-specify.txt
+; RUN: llvm-objdump -D -mllvm --amdhsa-code-object-version=6 %t.o > 
%t-detect.txt
+; RUN: diff %t-specify.txt %t-detect.txt
+;
 ; ----------------------------------GFX12--------------------------------------
 ;
 ; RUN: llc -mtriple=amdgcn-amd-amdhsa --amdhsa-code-object-version=6 
-mcpu=gfx12-generic -filetype=obj -O0 -o %t.o %s
@@ -45,6 +50,11 @@ define amdgpu_kernel void @test_kernel() {
 
 ; ----------------------------------GFX11--------------------------------------
 ;
+; RUN: llc -mtriple=amdgcn-amd-amdhsa --amdhsa-code-object-version=6 
-mcpu=gfx11-7-generic -filetype=obj -O0 -o %t.o %s
+; RUN: llvm-objdump -D --arch-name=amdgcn -mllvm 
--amdhsa-code-object-version=6 --mcpu=gfx11-7-generic %t.o > %t-specify.txt
+; RUN: llvm-objdump -D -mllvm --amdhsa-code-object-version=6 %t.o > 
%t-detect.txt
+; RUN: diff %t-specify.txt %t-detect.txt
+
 ; RUN: llc -mtriple=amdgcn-amd-amdhsa --amdhsa-code-object-version=6 
-mcpu=gfx11-generic -filetype=obj -O0 -o %t.o %s
 ; RUN: llvm-objdump -D --arch-name=amdgcn -mllvm 
--amdhsa-code-object-version=6 --mcpu=gfx11-generic %t.o > %t-specify.txt
 ; RUN: llvm-objdump -D -mllvm --amdhsa-code-object-version=6 %t.o > 
%t-detect.txt
diff --git a/llvm/test/tools/llvm-readobj/ELF/AMDGPU/elf-headers.test 
b/llvm/test/tools/llvm-readobj/ELF/AMDGPU/elf-headers.test
index 2dc41ad792c3f..848d9784025df 100644
--- a/llvm/test/tools/llvm-readobj/ELF/AMDGPU/elf-headers.test
+++ b/llvm/test/tools/llvm-readobj/ELF/AMDGPU/elf-headers.test
@@ -469,6 +469,9 @@
 # RUN: yaml2obj %s -o %t -DABI_VERSION=2 
-DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1172
 # 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_GFX1172 
-DFLAG_VALUE=0x5C
 
+# RUN: yaml2obj %s -o %t -DABI_VERSION=4 
-DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX11_7_GENERIC
+# 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_GFX11_7_GENERIC 
-DFLAG_VALUE=0x62
+
 # RUN: yaml2obj %s -o %t -DABI_VERSION=0 
-DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1200
 # 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_GFX1200 
-DFLAG_VALUE=0x48
 
@@ -520,6 +523,9 @@
 # RUN: yaml2obj %s -o %t -DABI_VERSION=2 
-DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX1310
 # 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_GFX1310 
-DFLAG_VALUE=0x50
 
+# RUN: yaml2obj %s -o %t -DABI_VERSION=4 
-DFLAG_NAME=EF_AMDGPU_MACH_AMDGCN_GFX13_GENERIC
+# 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_GFX13_GENERIC 
-DFLAG_VALUE=0x63
+
 --- !ELF
 FileHeader:
   Class:           ELFCLASS64
diff --git a/offload/plugins-nextgen/common/src/Utils/ELF.cpp 
b/offload/plugins-nextgen/common/src/Utils/ELF.cpp
index 6ddf8f1a3d270..0150b6d394a2b 100644
--- a/offload/plugins-nextgen/common/src/Utils/ELF.cpp
+++ b/offload/plugins-nextgen/common/src/Utils/ELF.cpp
@@ -77,7 +77,7 @@ checkMachineImpl(const object::ELFObjectFile<ELFT> &ELFObj, 
uint16_t EMachine) {
       return createError("invalid AMD ABI version, must be version 5 or 
above");
     if ((Header.e_flags & EF_AMDGPU_MACH) < EF_AMDGPU_MACH_AMDGCN_GFX700 ||
         (Header.e_flags & EF_AMDGPU_MACH) >
-            EF_AMDGPU_MACH_AMDGCN_GFX9_4_GENERIC)
+            EF_AMDGPU_MACH_AMDGCN_GFX13_GENERIC)
       return createError("unsupported AMDGPU architecture");
   } else if (Header.e_machine == EM_CUDA) {
     if (Header.e_ident[EI_ABIVERSION] == ELFABIVERSION_CUDA_V1) {

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to