[llvm] [AMDGPU][NFC] Add gfx12 +cumode coverage to occupancy-levels.ll (PR #214210)
Mariusz Sikora via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 5 05:14:23 PDT 2026
https://github.com/mariusz-sikora-at-amd created https://github.com/llvm/llvm-project/pull/214210
None
>From c5e8e6b03960065222b3acb63ee38168ea9d9c6c Mon Sep 17 00:00:00 2001
From: Mariusz Sikora <mariusz.sikora at amd.com>
Date: Wed, 5 Aug 2026 08:01:47 -0400
Subject: [PATCH] [AMDGPU][NFC] Add gfx12 +cumode coverage to
occupancy-levels.ll
---
llvm/test/CodeGen/AMDGPU/occupancy-levels.ll | 73 +++++++++++++++++++-
1 file changed, 71 insertions(+), 2 deletions(-)
diff --git a/llvm/test/CodeGen/AMDGPU/occupancy-levels.ll b/llvm/test/CodeGen/AMDGPU/occupancy-levels.ll
index 53d9c49ae087a..22203931528e9 100644
--- a/llvm/test/CodeGen/AMDGPU/occupancy-levels.ll
+++ b/llvm/test/CodeGen/AMDGPU/occupancy-levels.ll
@@ -26,8 +26,10 @@
; RUN: llc -mtriple=amdgpu11.52 -mattr=+wavefrontsize64 < %s | FileCheck --check-prefixes=GCN,GFX1030,GFX1030W64 %s
; RUN: llc -mtriple=amdgpu11.53 < %s | FileCheck --check-prefixes=GCN,GFX1030,GFX1030W32 %s
; RUN: llc -mtriple=amdgpu11.53 -mattr=+wavefrontsize64 < %s | FileCheck --check-prefixes=GCN,GFX1030,GFX1030W64 %s
-; RUN: llc -mtriple=amdgpu12.00 < %s | FileCheck --check-prefixes=GCN,GFX1100,GFX1100W32 %s
-; RUN: llc -mtriple=amdgpu12.00 -mattr=+wavefrontsize64 < %s | FileCheck --check-prefixes=GCN,GFX1100,GFX1100W64 %s
+; RUN: llc -mtriple=amdgpu12.00 < %s | FileCheck --check-prefixes=GCN,GFX1200,GFX1200W32,GFX1200W32WG %s
+; RUN: llc -mtriple=amdgpu12.00 -mattr=+wavefrontsize64 < %s | FileCheck --check-prefixes=GCN,GFX1200,GFX1200W64,GFX1200W64WG %s
+; RUN: llc -mtriple=amdgpu12.00 -mattr=+cumode < %s | FileCheck --check-prefixes=GCN,GFX1200,GFX1200W32,GFX1200W32CU %s
+; RUN: llc -mtriple=amdgpu12.00 -mattr=+wavefrontsize64,+cumode < %s | FileCheck --check-prefixes=GCN,GFX1200,GFX1200W64,GFX1200W64CU %s
; RUN: llc -mtriple=amdgpu12.50 < %s | FileCheck --check-prefixes=GCN,GFX1250 %s
; RUN: llc -mtriple=amdgpu13.10 < %s | FileCheck --check-prefixes=GCN,GFX1100,GFX1100W32 %s
@@ -40,6 +42,7 @@
; GFX1010: ; Occupancy: 20
; GFX1030: ; Occupancy: 16
; GFX1100: ; Occupancy: 16
+; GFX1200: ; Occupancy: 16
; GFX1250: ; Occupancy: 16
define amdgpu_kernel void @max_occupancy() #10 {
ret void
@@ -55,6 +58,8 @@ define amdgpu_kernel void @max_occupancy() #10 {
; GFX10W32: ; Occupancy: 4
; GFX1100W64: ; Occupancy: 3
; GFX1100W32: ; Occupancy: 5
+; GFX1200W32: ; Occupancy: 5
+; GFX1200W64: ; Occupancy: 3
; GFX1250: ; Occupancy: 3
define amdgpu_kernel void @limited_occupancy_3() #0 {
ret void
@@ -69,6 +74,7 @@ define amdgpu_kernel void @limited_occupancy_3() #0 {
; GFX1010: ; Occupancy: 18
; GFX1030: ; Occupancy: 16
; GFX1100: ; Occupancy: 16
+; GFX1200: ; Occupancy: 16
; GFX1250: ; Occupancy: 16
define amdgpu_kernel void @limited_occupancy_18() #1 {
ret void
@@ -83,6 +89,7 @@ define amdgpu_kernel void @limited_occupancy_18() #1 {
; GFX1010: ; Occupancy: 20
; GFX1030: ; Occupancy: 16
; GFX1100: ; Occupancy: 16
+; GFX1200: ; Occupancy: 16
; GFX1250: ; Occupancy: 16
define amdgpu_kernel void @limited_occupancy_19() #2 {
ret void
@@ -97,6 +104,7 @@ define amdgpu_kernel void @limited_occupancy_19() #2 {
; GFX1010: ; Occupancy: 20
; GFX1030: ; Occupancy: 16
; GFX1100: ; Occupancy: 16
+; GFX1200: ; Occupancy: 16
; GFX1250: ; Occupancy: 16
define amdgpu_kernel void @used_24_vgprs() #10 {
call void asm sideeffect "", "~{v23}" ()
@@ -113,6 +121,7 @@ define amdgpu_kernel void @used_24_vgprs() #10 {
; GFX1010W32: ; Occupancy: 20
; GFX1030: ; Occupancy: 16
; GFX1100: ; Occupancy: 16
+; GFX1200: ; Occupancy: 16
; GFX1250: ; Occupancy: 16
define amdgpu_kernel void @used_28_vgprs() #10 {
call void asm sideeffect "", "~{v27}" ()
@@ -129,6 +138,7 @@ define amdgpu_kernel void @used_28_vgprs() #10 {
; GFX1010W32: ; Occupancy: 20
; GFX1030W32: ; Occupancy: 16
; GFX1100: ; Occupancy: 16
+; GFX1200: ; Occupancy: 16
; GFX1250: ; Occupancy: 16
define amdgpu_kernel void @used_32_vgprs() #10 {
call void asm sideeffect "", "~{v31}" ()
@@ -146,6 +156,7 @@ define amdgpu_kernel void @used_32_vgprs() #10 {
; GFX1030W64: ; Occupancy: 12
; GFX1030W32: ; Occupancy: 16
; GFX1100: ; Occupancy: 16
+; GFX1200: ; Occupancy: 16
; GFX1250: ; Occupancy: 16
define amdgpu_kernel void @used_36_vgprs() #10 {
call void asm sideeffect "", "~{v35}" ()
@@ -162,6 +173,7 @@ define amdgpu_kernel void @used_36_vgprs() #10 {
; GFX1010W32: ; Occupancy: 20
; GFX1030W32: ; Occupancy: 16
; GFX1100: ; Occupancy: 16
+; GFX1200: ; Occupancy: 16
; GFX1250: ; Occupancy: 16
define amdgpu_kernel void @used_40_vgprs() #10 {
call void asm sideeffect "", "~{v39}" ()
@@ -179,6 +191,7 @@ define amdgpu_kernel void @used_40_vgprs() #10 {
; GFX1030W64: ; Occupancy: 10
; GFX1030W32: ; Occupancy: 16
; GFX1100: ; Occupancy: 16
+; GFX1200: ; Occupancy: 16
; GFX1250: ; Occupancy: 16
define amdgpu_kernel void @used_44_vgprs() #10 {
call void asm sideeffect "", "~{v43}" ()
@@ -195,6 +208,7 @@ define amdgpu_kernel void @used_44_vgprs() #10 {
; GFX1010W32: ; Occupancy: 20
; GFX1030W32: ; Occupancy: 16
; GFX1100: ; Occupancy: 16
+; GFX1200: ; Occupancy: 16
; GFX1250: ; Occupancy: 16
define amdgpu_kernel void @used_48_vgprs() #10 {
call void asm sideeffect "", "~{v47}" ()
@@ -212,6 +226,8 @@ define amdgpu_kernel void @used_48_vgprs() #10 {
; GFX1030W32: ; Occupancy: 16
; GFX1100W64: ; Occupancy: 12
; GFX1100W32: ; Occupancy: 16
+; GFX1200W32: ; Occupancy: 16
+; GFX1200W64: ; Occupancy: 12
; GFX1250: ; Occupancy: 16
define amdgpu_kernel void @used_56_vgprs() #10 {
call void asm sideeffect "", "~{v55}" ()
@@ -228,6 +244,8 @@ define amdgpu_kernel void @used_56_vgprs() #10 {
; GFX10W32: ; Occupancy: 16
; GFX1100W64: ; Occupancy: 10
; GFX1100W32: ; Occupancy: 16
+; GFX1200W32: ; Occupancy: 16
+; GFX1200W64: ; Occupancy: 10
; GFX1250: ; Occupancy: 16
define amdgpu_kernel void @used_64_vgprs() #10 {
call void asm sideeffect "", "~{v63}" ()
@@ -245,6 +263,8 @@ define amdgpu_kernel void @used_64_vgprs() #10 {
; GFX1030W32: ; Occupancy: 12
; GFX1100W64: ; Occupancy: 10
; GFX1100W32: ; Occupancy: 16
+; GFX1200W32: ; Occupancy: 16
+; GFX1200W64: ; Occupancy: 10
; GFX1250: ; Occupancy: 12
define amdgpu_kernel void @used_72_vgprs() #10 {
call void asm sideeffect "", "~{v71}" ()
@@ -261,6 +281,8 @@ define amdgpu_kernel void @used_72_vgprs() #10 {
; GFX10W32: ; Occupancy: 12
; GFX1100W64: ; Occupancy: 9
; GFX1100W32: ; Occupancy: 16
+; GFX1200W32: ; Occupancy: 16
+; GFX1200W64: ; Occupancy: 9
; GFX1250: ; Occupancy: 12
define amdgpu_kernel void @used_80_vgprs() #10 {
call void asm sideeffect "", "~{v79}" ()
@@ -279,6 +301,8 @@ define amdgpu_kernel void @used_80_vgprs() #10 {
; GFX1030W32: ; Occupancy: 10
; GFX1100W64: ; Occupancy: 9
; GFX1100W32: ; Occupancy: 16
+; GFX1200W32: ; Occupancy: 16
+; GFX1200W64: ; Occupancy: 9
; GFX1250: ; Occupancy: 10
define amdgpu_kernel void @used_84_vgprs() #10 {
call void asm sideeffect "", "~{v83}" ()
@@ -296,6 +320,8 @@ define amdgpu_kernel void @used_84_vgprs() #10 {
; GFX1030W32: ; Occupancy: 10
; GFX1100W64: ; Occupancy: 8
; GFX1100W32: ; Occupancy: 16
+; GFX1200W32: ; Occupancy: 16
+; GFX1200W64: ; Occupancy: 8
; GFX1250: ; Occupancy: 10
define amdgpu_kernel void @used_88_vgprs() #10 {
call void asm sideeffect "", "~{v87}" ()
@@ -312,6 +338,8 @@ define amdgpu_kernel void @used_88_vgprs() #10 {
; GFX10W32: ; Occupancy: 10
; GFX1100W64: ; Occupancy: 8
; GFX1100W32: ; Occupancy: 16
+; GFX1200W32: ; Occupancy: 16
+; GFX1200W64: ; Occupancy: 8
; GFX1250: ; Occupancy: 10
define amdgpu_kernel void @used_96_vgprs() #10 {
call void asm sideeffect "", "~{v95}" ()
@@ -329,6 +357,8 @@ define amdgpu_kernel void @used_96_vgprs() #10 {
; GFX10W32: ; Occupancy: 9
; GFX1100W64: ; Occupancy: 7
; GFX1100W32: ; Occupancy: 12
+; GFX1200W32: ; Occupancy: 12
+; GFX1200W64: ; Occupancy: 7
; GFX1250: ; Occupancy: 9
define amdgpu_kernel void @used_100_vgprs() #10 {
call void asm sideeffect "", "~{v99}" ()
@@ -345,6 +375,8 @@ define amdgpu_kernel void @used_100_vgprs() #10 {
; GFX10W32: ; Occupancy: 9
; GFX1100W64: ; Occupancy: 6
; GFX1100W32: ; Occupancy: 12
+; GFX1200W32: ; Occupancy: 12
+; GFX1200W64: ; Occupancy: 6
; GFX1250: ; Occupancy: 9
define amdgpu_kernel void @used_112_vgprs() #10 {
call void asm sideeffect "", "~{v111}" ()
@@ -361,6 +393,8 @@ define amdgpu_kernel void @used_112_vgprs() #10 {
; GFX10W32: ; Occupancy: 8
; GFX1100W64: ; Occupancy: 5
; GFX1100W32: ; Occupancy: 10
+; GFX1200W32: ; Occupancy: 10
+; GFX1200W64: ; Occupancy: 5
; GFX1250: ; Occupancy: 8
define amdgpu_kernel void @used_128_vgprs() #10 {
call void asm sideeffect "", "~{v127}" ()
@@ -377,6 +411,8 @@ define amdgpu_kernel void @used_128_vgprs() #10 {
; GFX10W32: ; Occupancy: 7
; GFX1100W64: ; Occupancy: 5
; GFX1100W32: ; Occupancy: 10
+; GFX1200W32: ; Occupancy: 10
+; GFX1200W64: ; Occupancy: 5
; GFX1250: ; Occupancy: 7
define amdgpu_kernel void @used_144_vgprs() #10 {
call void asm sideeffect "", "~{v143}" ()
@@ -394,6 +430,8 @@ define amdgpu_kernel void @used_144_vgprs() #10 {
; GFX1030W32: ; Occupancy: 5
; GFX1100W64: ; Occupancy: 4
; GFX1100W32: ; Occupancy: 9
+; GFX1200W32: ; Occupancy: 9
+; GFX1200W64: ; Occupancy: 4
; GFX1250: ; Occupancy: 5
define amdgpu_kernel void @used_168_vgprs() #10 {
call void asm sideeffect "", "~{v167}" ()
@@ -411,6 +449,8 @@ define amdgpu_kernel void @used_168_vgprs() #10 {
; GFX1030W32: ; Occupancy: 4
; GFX1100W64: ; Occupancy: 3
; GFX1100W32: ; Occupancy: 7
+; GFX1200W32: ; Occupancy: 7
+; GFX1200W64: ; Occupancy: 3
; GFX1250: ; Occupancy: 4
define amdgpu_kernel void @used_200_vgprs() #10 {
call void asm sideeffect "", "~{v199}" ()
@@ -427,6 +467,8 @@ define amdgpu_kernel void @used_200_vgprs() #10 {
; GFX10W32: ; Occupancy: 4
; GFX1100W64: ; Occupancy: 2
; GFX1100W32: ; Occupancy: 5
+; GFX1200W32: ; Occupancy: 5
+; GFX1200W64: ; Occupancy: 2
; GFX1250: ; Occupancy: 4
define amdgpu_kernel void @used_256_vgprs() #10 {
call void asm sideeffect "", "~{v255}" ()
@@ -444,6 +486,7 @@ define amdgpu_kernel void @used_256_vgprs() #10 {
; GFX1010: ; Occupancy: 20
; GFX1030: ; Occupancy: 16
; GFX1100: ; Occupancy: 16
+; GFX1200: ; Occupancy: 16
; GFX1250: ; Occupancy: 16
define amdgpu_kernel void @used_80_sgprs() #10 {
call void asm sideeffect "", "~{s79}" ()
@@ -461,6 +504,7 @@ define amdgpu_kernel void @used_80_sgprs() #10 {
; GFX1010: ; Occupancy: 20
; GFX1030: ; Occupancy: 16
; GFX1100: ; Occupancy: 16
+; GFX1200: ; Occupancy: 16
; GFX1250: ; Occupancy: 16
define amdgpu_kernel void @used_88_sgprs() #10 {
call void asm sideeffect "", "~{s87}" ()
@@ -478,6 +522,7 @@ define amdgpu_kernel void @used_88_sgprs() #10 {
; GFX1010: ; Occupancy: 20
; GFX1030: ; Occupancy: 16
; GFX1100: ; Occupancy: 16
+; GFX1200: ; Occupancy: 16
; GFX1250: ; Occupancy: 16
define amdgpu_kernel void @used_100_sgprs() #10 {
call void asm sideeffect "", "~{s99}" ()
@@ -495,6 +540,7 @@ define amdgpu_kernel void @used_100_sgprs() #10 {
; GFX1010: ; Occupancy: 20
; GFX1030: ; Occupancy: 16
; GFX1100: ; Occupancy: 16
+; GFX1200: ; Occupancy: 16
; GFX1250: ; Occupancy: 16
define amdgpu_kernel void @used_101_sgprs() #10 {
call void asm sideeffect "", "~{s100}" ()
@@ -511,6 +557,7 @@ define amdgpu_kernel void @used_101_sgprs() #10 {
; GFX1030W64: ; Occupancy: 16
; GFX10W32: ; Occupancy: 16
; GFX1100: ; Occupancy: 16
+; GFX1200: ; Occupancy: 16
; GFX1250: ; Occupancy: 16
@lds6552 = internal addrspace(3) global [6552 x i8] poison, align 4
define amdgpu_kernel void @used_lds_6552() {
@@ -528,6 +575,7 @@ define amdgpu_kernel void @used_lds_6552() {
; GFX1030W64: ; Occupancy: 16
; GFX10W32: ; Occupancy: 16
; GFX1100: ; Occupancy: 16
+; GFX1200: ; Occupancy: 16
; GFX1250: ; Occupancy: 16
@lds6556 = internal addrspace(3) global [6556 x i8] poison, align 4
define amdgpu_kernel void @used_lds_6556() {
@@ -545,6 +593,7 @@ define amdgpu_kernel void @used_lds_6556() {
; GFX1030W64: ; Occupancy: 16
; GFX10W32: ; Occupancy: 16
; GFX1100: ; Occupancy: 16
+; GFX1200: ; Occupancy: 16
; GFX1250: ; Occupancy: 16
@lds13112 = internal addrspace(3) global [13112 x i8] poison, align 4
define amdgpu_kernel void @used_lds_13112() {
@@ -562,6 +611,9 @@ define amdgpu_kernel void @used_lds_13112() {
; GFX10W32: ; Occupancy: 8{{$}}
; GFX1100W64: ; Occupancy: 4{{$}}
; GFX1100W32: ; Occupancy: 8{{$}}
+; GFX1200W32WG: ; Occupancy: 8{{$}}
+; GFX1200W32CU: ; Occupancy: 7{{$}}
+; GFX1200W64: ; Occupancy: 4{{$}}
; GFX1250: ; Occupancy: 8{{$}}
@lds8252 = internal addrspace(3) global [8252 x i8] poison, align 4
define amdgpu_kernel void @used_lds_8252_max_group_size_64() #3 {
@@ -579,6 +631,10 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_64() #3 {
; GFX10W32: ; Occupancy: 12{{$}}
; GFX1100W64: ; Occupancy: 8{{$}}
; GFX1100W32: ; Occupancy: 12{{$}}
+; GFX1200W32WG: ; Occupancy: 12{{$}}
+; GFX1200W32CU: ; Occupancy: 11{{$}}
+; GFX1200W64WG: ; Occupancy: 8{{$}}
+; GFX1200W64CU: ; Occupancy: 7{{$}}
; GFX1250: ; Occupancy: 12{{$}}
define amdgpu_kernel void @used_lds_8252_max_group_size_96() #4 {
store volatile i8 1, ptr addrspace(3) @lds8252
@@ -595,6 +651,10 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_96() #4 {
; GFX10W32: ; Occupancy: 15{{$}}
; GFX1100W64: ; Occupancy: 8{{$}}
; GFX1100W32: ; Occupancy: 15{{$}}
+; GFX1200W32WG: ; Occupancy: 15{{$}}
+; GFX1200W32CU: ; Occupancy: 14{{$}}
+; GFX1200W64WG: ; Occupancy: 8{{$}}
+; GFX1200W64CU: ; Occupancy: 7{{$}}
; GFX1250: ; Occupancy: 16{{$}}
define amdgpu_kernel void @used_lds_8252_max_group_size_128() #5 {
store volatile i8 1, ptr addrspace(3) @lds8252
@@ -612,6 +672,9 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_128() #5 {
; GFX1030W32: ; Occupancy: 15{{$}}
; GFX1100W64: ; Occupancy: 12{{$}}
; GFX1100W32: ; Occupancy: 15{{$}}
+; GFX1200W32: ; Occupancy: 15{{$}}
+; GFX1200W64WG: ; Occupancy: 12{{$}}
+; GFX1200W64CU: ; Occupancy: 11{{$}}
; GFX1250: ; Occupancy: 15{{$}}
define amdgpu_kernel void @used_lds_8252_max_group_size_192() #6 {
store volatile i8 1, ptr addrspace(3) @lds8252
@@ -629,6 +692,9 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_192() #6 {
; GFX1030W32: ; Occupancy: 16{{$}}
; GFX1100W64: ; Occupancy: 15{{$}}
; GFX1100W32: ; Occupancy: 16{{$}}
+; GFX1200W32: ; Occupancy: 16{{$}}
+; GFX1200W64WG: ; Occupancy: 15{{$}}
+; GFX1200W64CU: ; Occupancy: 14{{$}}
; GFX1250: ; Occupancy: 16{{$}}
define amdgpu_kernel void @used_lds_8252_max_group_size_256() #7 {
store volatile i8 1, ptr addrspace(3) @lds8252
@@ -644,6 +710,7 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_256() #7 {
; GFX1010: ; Occupancy: 20{{$}}
; GFX1030: ; Occupancy: 16{{$}}
; GFX1100: ; Occupancy: 16{{$}}
+; GFX1200: ; Occupancy: 16{{$}}
; GFX1250: ; Occupancy: 16{{$}}
define amdgpu_kernel void @used_lds_8252_max_group_size_512() #8 {
store volatile i8 1, ptr addrspace(3) @lds8252
@@ -660,6 +727,7 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_512() #8 {
; GFX1010W64: ; Occupancy: 20{{$}}
; GFX1030: ; Occupancy: 16{{$}}
; GFX1100: ; Occupancy: 16{{$}}
+; GFX1200: ; Occupancy: 16{{$}}
; GFX1250: ; Occupancy: 16{{$}}
define amdgpu_kernel void @used_lds_8252_max_group_size_1024() #9 {
store volatile i8 1, ptr addrspace(3) @lds8252
@@ -674,6 +742,7 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_1024() #9 {
; GFX950: ; Occupancy: 5{{$}}
; GFX10: ; Occupancy: 4{{$}}
; GFX1100: ; Occupancy: 4{{$}}
+; GFX1200: ; Occupancy: 4{{$}}
; GFX1250: ; Occupancy: 8{{$}}
define amdgpu_kernel void @used_lds_8252_max_group_size_32() #10 {
store volatile i8 1, ptr addrspace(3) @lds8252
More information about the llvm-commits
mailing list