From e295041ee69582e543871c5ebe49dc31cf3b2ff2 Mon Sep 17 00:00:00 2001 From: Changpeng Fang Date: Tue, 2 Dec 2025 15:49:18 -0800 Subject: [PATCH 1/2] [AMDGPU][NFC] Add occupancy checks for gfx950 and gfx1250 --- llvm/test/CodeGen/AMDGPU/occupancy-levels.ll | 82 ++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/llvm/test/CodeGen/AMDGPU/occupancy-levels.ll b/llvm/test/CodeGen/AMDGPU/occupancy-levels.ll index d1ab92e1d48ff..7b6ed77e06e46 100644 --- a/llvm/test/CodeGen/AMDGPU/occupancy-levels.ll +++ b/llvm/test/CodeGen/AMDGPU/occupancy-levels.ll @@ -1,4 +1,5 @@ ; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -mattr=-xnack < %s | FileCheck --check-prefixes=GCN,GFX9 %s +; RUN: llc -mtriple=amdgcn -mcpu=gfx950 -mattr=-xnack < %s | FileCheck --check-prefixes=GCN,GFX950 %s ; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=-xnack < %s | FileCheck --check-prefixes=GCN,GFX10,GFX10W32,GFX1010,GFX1010W32 %s ; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=-xnack -mattr=+wavefrontsize64 < %s | FileCheck --check-prefixes=GCN,GFX10,GFX10W64,GFX1010,GFX1010W64 %s ; RUN: llc -mtriple=amdgcn -mcpu=gfx1030 < %s | FileCheck --check-prefixes=GCN,GFX10,GFX10W32,GFX1030,GFX1030W32 %s @@ -19,49 +20,60 @@ ; RUN: llc -mtriple=amdgcn -mcpu=gfx1153 -mattr=+wavefrontsize64 < %s | FileCheck --check-prefixes=GCN,GFX1030,GFX1030W64 %s ; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 < %s | FileCheck --check-prefixes=GCN,GFX1100,GFX1100W32 %s ; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 < %s | FileCheck --check-prefixes=GCN,GFX1100,GFX1100W64 %s +; RUN: llc -mtriple=amdgcn -mcpu=gfx1250 < %s | FileCheck --check-prefixes=GCN,GFX1250 %s ; GCN-LABEL: {{^}}max_occupancy: ; GFX9: ; Occupancy: 10 +; GFX950: ; Occupancy: 8 ; GFX1010: ; Occupancy: 20 ; GFX1030: ; Occupancy: 16 ; GFX1100: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @max_occupancy() #10 { ret void } ; GCN-LABEL: {{^}}limited_occupancy_3: ; GFX9: ; Occupancy: 3 +; GFX950: ; Occupancy: 3 ; GFX10W64: ; Occupancy: 3 ; GFX10W32: ; Occupancy: 4 ; GFX1100W64: ; Occupancy: 3 ; GFX1100W32: ; Occupancy: 5 +; GFX1250: ; Occupancy: 3 define amdgpu_kernel void @limited_occupancy_3() #0 { ret void } ; GCN-LABEL: {{^}}limited_occupancy_18: ; GFX9: ; Occupancy: 10 +; GFX950: ; Occupancy: 8 ; GFX1010: ; Occupancy: 18 ; GFX1030: ; Occupancy: 16 ; GFX1100: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @limited_occupancy_18() #1 { ret void } ; GCN-LABEL: {{^}}limited_occupancy_19: ; GFX9: ; Occupancy: 10 +; GFX950: ; Occupancy: 8 ; GFX1010: ; Occupancy: 20 ; GFX1030: ; Occupancy: 16 ; GFX1100: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @limited_occupancy_19() #2 { ret void } ; GCN-LABEL: {{^}}used_24_vgprs: ; GFX9: ; Occupancy: 10 +; GFX950: ; Occupancy: 8 ; GFX1010: ; Occupancy: 20 ; GFX1030: ; Occupancy: 16 ; GFX1100: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @used_24_vgprs() #10 { call void asm sideeffect "", "~{v23}" () ret void @@ -69,10 +81,12 @@ define amdgpu_kernel void @used_24_vgprs() #10 { ; GCN-LABEL: {{^}}used_28_vgprs: ; GFX9: ; Occupancy: 9 +; GFX950: ; Occupancy: 8 ; GFX1010W64: ; Occupancy: 18 ; GFX1010W32: ; Occupancy: 20 ; GFX1030: ; Occupancy: 16 ; GFX1100: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @used_28_vgprs() #10 { call void asm sideeffect "", "~{v27}" () ret void @@ -80,10 +94,12 @@ define amdgpu_kernel void @used_28_vgprs() #10 { ; GCN-LABEL: {{^}}used_32_vgprs: ; GFX9: ; Occupancy: 8 +; GFX950: ; Occupancy: 8 ; GFX10W64: ; Occupancy: 16 ; GFX1010W32: ; Occupancy: 20 ; GFX1030W32: ; Occupancy: 16 ; GFX1100: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @used_32_vgprs() #10 { call void asm sideeffect "", "~{v31}" () ret void @@ -91,11 +107,13 @@ define amdgpu_kernel void @used_32_vgprs() #10 { ; GCN-LABEL: {{^}}used_36_vgprs: ; GFX9: ; Occupancy: 7 +; GFX950: ; Occupancy: 8 ; GFX1010W64: ; Occupancy: 14 ; GFX1010W32: ; Occupancy: 20 ; GFX1030W64: ; Occupancy: 12 ; GFX1030W32: ; Occupancy: 16 ; GFX1100: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @used_36_vgprs() #10 { call void asm sideeffect "", "~{v35}" () ret void @@ -103,10 +121,12 @@ define amdgpu_kernel void @used_36_vgprs() #10 { ; GCN-LABEL: {{^}}used_40_vgprs: ; GFX9: ; Occupancy: 6 +; GFX950: ; Occupancy: 8 ; GFX10W64: ; Occupancy: 12 ; GFX1010W32: ; Occupancy: 20 ; GFX1030W32: ; Occupancy: 16 ; GFX1100: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @used_40_vgprs() #10 { call void asm sideeffect "", "~{v39}" () ret void @@ -114,11 +134,13 @@ define amdgpu_kernel void @used_40_vgprs() #10 { ; GCN-LABEL: {{^}}used_44_vgprs: ; GFX9: ; Occupancy: 5 +; GFX950: ; Occupancy: 8 ; GFX1010W64: ; Occupancy: 11 ; GFX1010W32: ; Occupancy: 20 ; GFX1030W64: ; Occupancy: 10 ; GFX1030W32: ; Occupancy: 16 ; GFX1100: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @used_44_vgprs() #10 { call void asm sideeffect "", "~{v43}" () ret void @@ -126,10 +148,12 @@ define amdgpu_kernel void @used_44_vgprs() #10 { ; GCN-LABEL: {{^}}used_48_vgprs: ; GFX9: ; Occupancy: 5 +; GFX950: ; Occupancy: 8 ; GFX10W64: ; Occupancy: 10 ; GFX1010W32: ; Occupancy: 20 ; GFX1030W32: ; Occupancy: 16 ; GFX1100: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @used_48_vgprs() #10 { call void asm sideeffect "", "~{v47}" () ret void @@ -137,11 +161,13 @@ define amdgpu_kernel void @used_48_vgprs() #10 { ; GCN-LABEL: {{^}}used_56_vgprs: ; GFX9: ; Occupancy: 4 +; GFX950: ; Occupancy: 8 ; GFX10W64: ; Occupancy: 9 ; GFX1010W32: ; Occupancy: 18 ; GFX1030W32: ; Occupancy: 16 ; GFX1100W64: ; Occupancy: 12 ; GFX1100W32: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @used_56_vgprs() #10 { call void asm sideeffect "", "~{v55}" () ret void @@ -149,10 +175,12 @@ define amdgpu_kernel void @used_56_vgprs() #10 { ; GCN-LABEL: {{^}}used_64_vgprs: ; GFX9: ; Occupancy: 4 +; GFX950: ; Occupancy: 8 ; GFX10W64: ; Occupancy: 8 ; GFX10W32: ; Occupancy: 16 ; GFX1100W64: ; Occupancy: 10 ; GFX1100W32: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @used_64_vgprs() #10 { call void asm sideeffect "", "~{v63}" () ret void @@ -160,11 +188,13 @@ define amdgpu_kernel void @used_64_vgprs() #10 { ; GCN-LABEL: {{^}}used_72_vgprs: ; GFX9: ; Occupancy: 3 +; GFX950: ; Occupancy: 7 ; GFX10W64: ; Occupancy: 7 ; GFX1010W32: ; Occupancy: 14 ; GFX1030W32: ; Occupancy: 12 ; GFX1100W64: ; Occupancy: 10 ; GFX1100W32: ; Occupancy: 16 +; GFX1250: ; Occupancy: 12 define amdgpu_kernel void @used_72_vgprs() #10 { call void asm sideeffect "", "~{v71}" () ret void @@ -172,10 +202,12 @@ define amdgpu_kernel void @used_72_vgprs() #10 { ; GCN-LABEL: {{^}}used_80_vgprs: ; GFX9: ; Occupancy: 3 +; GFX950: ; Occupancy: 6 ; GFX10W64: ; Occupancy: 6 ; GFX10W32: ; Occupancy: 12 ; GFX1100W64: ; Occupancy: 9 ; GFX1100W32: ; Occupancy: 16 +; GFX1250: ; Occupancy: 12 define amdgpu_kernel void @used_80_vgprs() #10 { call void asm sideeffect "", "~{v79}" () ret void @@ -183,12 +215,14 @@ define amdgpu_kernel void @used_80_vgprs() #10 { ; GCN-LABEL: {{^}}used_84_vgprs: ; GFX9: ; Occupancy: 3 +; GFX950: ; Occupancy: 5 ; GFX1010W64: ; Occupancy: 6 ; GFX1010W32: ; Occupancy: 11 ; GFX1030W64: ; Occupancy: 5 ; GFX1030W32: ; Occupancy: 10 ; GFX1100W64: ; Occupancy: 9 ; GFX1100W32: ; Occupancy: 16 +; GFX1250: ; Occupancy: 10 define amdgpu_kernel void @used_84_vgprs() #10 { call void asm sideeffect "", "~{v83}" () ret void @@ -196,11 +230,13 @@ define amdgpu_kernel void @used_84_vgprs() #10 { ; GCN-LABEL: {{^}}used_88_vgprs: ; GFX9: ; Occupancy: 2 +; GFX950: ; Occupancy: 5 ; GFX10W64: ; Occupancy: 5 ; GFX1010W32: ; Occupancy: 11 ; GFX1030W32: ; Occupancy: 10 ; GFX1100W64: ; Occupancy: 8 ; GFX1100W32: ; Occupancy: 16 +; GFX1250: ; Occupancy: 10 define amdgpu_kernel void @used_88_vgprs() #10 { call void asm sideeffect "", "~{v87}" () ret void @@ -208,10 +244,12 @@ define amdgpu_kernel void @used_88_vgprs() #10 { ; GCN-LABEL: {{^}}used_96_vgprs: ; GFX9: ; Occupancy: 2 +; GFX950: ; Occupancy: 5 ; GFX10W64: ; Occupancy: 5 ; GFX10W32: ; Occupancy: 10 ; GFX1100W64: ; Occupancy: 8 ; GFX1100W32: ; Occupancy: 16 +; GFX1250: ; Occupancy: 10 define amdgpu_kernel void @used_96_vgprs() #10 { call void asm sideeffect "", "~{v95}" () ret void @@ -219,11 +257,13 @@ define amdgpu_kernel void @used_96_vgprs() #10 { ; GCN-LABEL: {{^}}used_100_vgprs: ; GFX9: ; Occupancy: 2 +; GFX950: ; Occupancy: 4 ; GFX1010W64: ; Occupancy: 5 ; GFX1030W64: ; Occupancy: 4 ; GFX10W32: ; Occupancy: 9 ; GFX1100W64: ; Occupancy: 7 ; GFX1100W32: ; Occupancy: 12 +; GFX1250: ; Occupancy: 9 define amdgpu_kernel void @used_100_vgprs() #10 { call void asm sideeffect "", "~{v99}" () ret void @@ -231,10 +271,12 @@ define amdgpu_kernel void @used_100_vgprs() #10 { ; GCN-LABEL: {{^}}used_112_vgprs: ; GFX9: ; Occupancy: 2 +; GFX950: ; Occupancy: 4 ; GFX10W64: ; Occupancy: 4 ; GFX10W32: ; Occupancy: 9 ; GFX1100W64: ; Occupancy: 6 ; GFX1100W32: ; Occupancy: 12 +; GFX1250: ; Occupancy: 9 define amdgpu_kernel void @used_112_vgprs() #10 { call void asm sideeffect "", "~{v111}" () ret void @@ -242,10 +284,12 @@ define amdgpu_kernel void @used_112_vgprs() #10 { ; GCN-LABEL: {{^}}used_128_vgprs: ; GFX9: ; Occupancy: 2 +; GFX950: ; Occupancy: 4 ; GFX10W64: ; Occupancy: 4 ; GFX10W32: ; Occupancy: 8 ; GFX1100W64: ; Occupancy: 5 ; GFX1100W32: ; Occupancy: 10 +; GFX1250: ; Occupancy: 8 define amdgpu_kernel void @used_128_vgprs() #10 { call void asm sideeffect "", "~{v127}" () ret void @@ -253,10 +297,12 @@ define amdgpu_kernel void @used_128_vgprs() #10 { ; GCN-LABEL: {{^}}used_144_vgprs: ; GFX9: ; Occupancy: 1 +; GFX950: ; Occupancy: 3 ; GFX10W64: ; Occupancy: 3 ; GFX10W32: ; Occupancy: 7 ; GFX1100W64: ; Occupancy: 5 ; GFX1100W32: ; Occupancy: 10 +; GFX1250: ; Occupancy: 7 define amdgpu_kernel void @used_144_vgprs() #10 { call void asm sideeffect "", "~{v143}" () ret void @@ -264,11 +310,13 @@ define amdgpu_kernel void @used_144_vgprs() #10 { ; GCN-LABEL: {{^}}used_168_vgprs: ; GFX9: ; Occupancy: 1 +; GFX950: ; Occupancy: 3 ; GFX10W64: ; Occupancy: 3 ; GFX1010W32: ; Occupancy: 6 ; GFX1030W32: ; Occupancy: 5 ; GFX1100W64: ; Occupancy: 4 ; GFX1100W32: ; Occupancy: 9 +; GFX1250: ; Occupancy: 5 define amdgpu_kernel void @used_168_vgprs() #10 { call void asm sideeffect "", "~{v167}" () ret void @@ -276,11 +324,13 @@ define amdgpu_kernel void @used_168_vgprs() #10 { ; GCN-LABEL: {{^}}used_200_vgprs: ; GFX9: ; Occupancy: 1 +; GFX950: ; Occupancy: 2 ; GFX10W64: ; Occupancy: 2 ; GFX1010W32: ; Occupancy: 5 ; GFX1030W32: ; Occupancy: 4 ; GFX1100W64: ; Occupancy: 3 ; GFX1100W32: ; Occupancy: 7 +; GFX1250: ; Occupancy: 4 define amdgpu_kernel void @used_200_vgprs() #10 { call void asm sideeffect "", "~{v199}" () ret void @@ -288,10 +338,12 @@ define amdgpu_kernel void @used_200_vgprs() #10 { ; GCN-LABEL: {{^}}used_256_vgprs: ; GFX9: ; Occupancy: 1 +; GFX950: ; Occupancy: 2 ; GFX10W64: ; Occupancy: 2 ; GFX10W32: ; Occupancy: 4 ; GFX1100W64: ; Occupancy: 2 ; GFX1100W32: ; Occupancy: 5 +; GFX1250: ; Occupancy: 4 define amdgpu_kernel void @used_256_vgprs() #10 { call void asm sideeffect "", "~{v255}" () ret void @@ -299,9 +351,11 @@ define amdgpu_kernel void @used_256_vgprs() #10 { ; GCN-LABEL: {{^}}used_80_sgprs: ; GFX9: ; Occupancy: 10 +; GFX950: ; Occupancy: 8 ; GFX1010: ; Occupancy: 20 ; GFX1030: ; Occupancy: 16 ; GFX1100: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @used_80_sgprs() #10 { call void asm sideeffect "", "~{s79}" () ret void @@ -309,9 +363,11 @@ define amdgpu_kernel void @used_80_sgprs() #10 { ; GCN-LABEL: {{^}}used_88_sgprs: ; GFX9: ; Occupancy: 9 +; GFX950: ; Occupancy: 8 ; GFX1010: ; Occupancy: 20 ; GFX1030: ; Occupancy: 16 ; GFX1100: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @used_88_sgprs() #10 { call void asm sideeffect "", "~{s87}" () ret void @@ -319,9 +375,11 @@ define amdgpu_kernel void @used_88_sgprs() #10 { ; GCN-LABEL: {{^}}used_100_sgprs: ; GFX9: ; Occupancy: 8 +; GFX950: ; Occupancy: 7 ; GFX1010: ; Occupancy: 20 ; GFX1030: ; Occupancy: 16 ; GFX1100: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @used_100_sgprs() #10 { call void asm sideeffect "", "~{s99}" () ret void @@ -329,9 +387,11 @@ define amdgpu_kernel void @used_100_sgprs() #10 { ; GCN-LABEL: {{^}}used_101_sgprs: ; GFX9: ; Occupancy: 7 +; GFX950: ; Occupancy: 7 ; GFX1010: ; Occupancy: 20 ; GFX1030: ; Occupancy: 16 ; GFX1100: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @used_101_sgprs() #10 { call void asm sideeffect "", "~{s100}" () ret void @@ -339,10 +399,12 @@ define amdgpu_kernel void @used_101_sgprs() #10 { ; GCN-LABEL: {{^}}used_lds_6552: ; GFX9: ; Occupancy: 8 +; GFX950: ; Occupancy: 8 ; GFX1010W64: ; Occupancy: 20 ; GFX1030W64: ; Occupancy: 16 ; GFX10W32: ; Occupancy: 16 ; GFX1100: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 @lds6552 = internal addrspace(3) global [6552 x i8] poison, align 4 define amdgpu_kernel void @used_lds_6552() { store volatile i8 1, ptr addrspace(3) @lds6552 @@ -351,10 +413,12 @@ define amdgpu_kernel void @used_lds_6552() { ; GCN-LABEL: {{^}}used_lds_6556: ; GFX9: ; Occupancy: 8 +; GFX950: ; Occupancy: 8 ; GFX1010W64: ; Occupancy: 20 ; GFX1030W64: ; Occupancy: 16 ; GFX10W32: ; Occupancy: 16 ; GFX1100: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 @lds6556 = internal addrspace(3) global [6556 x i8] poison, align 4 define amdgpu_kernel void @used_lds_6556() { store volatile i8 1, ptr addrspace(3) @lds6556 @@ -363,10 +427,12 @@ define amdgpu_kernel void @used_lds_6556() { ; GCN-LABEL: {{^}}used_lds_13112: ; GFX9: ; Occupancy: 8 +; GFX950: ; Occupancy: 8 ; GFX1010W64: ; Occupancy: 20 ; GFX1030W64: ; Occupancy: 16 ; GFX10W32: ; Occupancy: 16 ; GFX1100: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16 @lds13112 = internal addrspace(3) global [13112 x i8] poison, align 4 define amdgpu_kernel void @used_lds_13112() { store volatile i8 1, ptr addrspace(3) @lds13112 @@ -375,10 +441,12 @@ define amdgpu_kernel void @used_lds_13112() { ; GCN-LABEL: {{^}}used_lds_8252_max_group_size_64: ; GFX9: ; Occupancy: 2{{$}} +; GFX950: ; Occupancy: 5{{$}} ; GFX10W64: ; Occupancy: 4{{$}} ; GFX10W32: ; Occupancy: 8{{$}} ; GFX1100W64: ; Occupancy: 4{{$}} ; GFX1100W32: ; Occupancy: 8{{$}} +; GFX1250: ; Occupancy: 10 @lds8252 = internal addrspace(3) global [8252 x i8] poison, align 4 define amdgpu_kernel void @used_lds_8252_max_group_size_64() #3 { store volatile i8 1, ptr addrspace(3) @lds8252 @@ -387,10 +455,12 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_64() #3 { ; GCN-LABEL: {{^}}used_lds_8252_max_group_size_96: ; GFX9: ; Occupancy: 4{{$}} +; GFX950: ; Occupancy: 8{{$}} ; GFX10W64: ; Occupancy: 8{{$}} ; GFX10W32: ; Occupancy: 12{{$}} ; GFX1100W64: ; Occupancy: 8{{$}} ; GFX1100W32: ; Occupancy: 12{{$}} +; GFX1250: ; Occupancy: 12 define amdgpu_kernel void @used_lds_8252_max_group_size_96() #4 { store volatile i8 1, ptr addrspace(3) @lds8252 ret void @@ -398,10 +468,12 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_96() #4 { ; GCN-LABEL: {{^}}used_lds_8252_max_group_size_128: ; GFX9: ; Occupancy: 4{{$}} +; GFX950: ; Occupancy: 8{{$}} ; GFX10W64: ; Occupancy: 8{{$}} ; GFX10W32: ; Occupancy: 15{{$}} ; GFX1100W64: ; Occupancy: 8{{$}} ; GFX1100W32: ; Occupancy: 15{{$}} +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @used_lds_8252_max_group_size_128() #5 { store volatile i8 1, ptr addrspace(3) @lds8252 ret void @@ -409,11 +481,13 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_128() #5 { ; GCN-LABEL: {{^}}used_lds_8252_max_group_size_192: ; GFX9: ; Occupancy: 6{{$}} +; GFX950: ; Occupancy: 8{{$}} ; GFX10W64: ; Occupancy: 12{{$}} ; GFX1010W32: ; Occupancy: 20{{$}} ; GFX1030W32: ; Occupancy: 15{{$}} ; GFX1100W64: ; Occupancy: 12{{$}} ; GFX1100W32: ; Occupancy: 15{{$}} +; GFX1250: ; Occupancy: 15 define amdgpu_kernel void @used_lds_8252_max_group_size_192() #6 { store volatile i8 1, ptr addrspace(3) @lds8252 ret void @@ -421,11 +495,13 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_192() #6 { ; GCN-LABEL: {{^}}used_lds_8252_max_group_size_256: ; GFX9: ; Occupancy: 7{{$}} +; GFX950: ; Occupancy: 8{{$}} ; GFX10W64: ; Occupancy: 15{{$}} ; GFX1010W32: ; Occupancy: 20{{$}} ; GFX1030W32: ; Occupancy: 16{{$}} ; GFX1100W64: ; Occupancy: 15{{$}} ; GFX1100W32: ; Occupancy: 16{{$}} +; GFX1250: ; Occupancy: 16 define amdgpu_kernel void @used_lds_8252_max_group_size_256() #7 { store volatile i8 1, ptr addrspace(3) @lds8252 ret void @@ -433,9 +509,11 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_256() #7 { ; GCN-LABEL: {{^}}used_lds_8252_max_group_size_512: ; GFX9: ; Occupancy: 10{{$}} +; GFX950: ; Occupancy: 8{{$}} ; GFX1010: ; Occupancy: 20{{$}} ; GFX1030: ; Occupancy: 16{{$}} ; GFX1100: ; 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 ret void @@ -443,10 +521,12 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_512() #8 { ; GCN-LABEL: {{^}}used_lds_8252_max_group_size_1024: ; GFX9: ; Occupancy: 8{{$}} +; GFX950: ; Occupancy: 8{{$}} ; GFX1010W32: ; Occupancy: 16{{$}} ; GFX1010W64: ; Occupancy: 20{{$}} ; GFX1030: ; Occupancy: 16{{$}} ; GFX1100: ; 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 ret void @@ -454,8 +534,10 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_1024() #9 { ; GCN-LABEL: {{^}}used_lds_8252_max_group_size_32: ; GFX9: ; Occupancy: 2{{$}} +; GFX950: ; Occupancy: 5{{$}} ; GFX10: ; Occupancy: 4{{$}} ; GFX1100: ; Occupancy: 4{{$}} +; GFX1250: ; Occupancy: 10 define amdgpu_kernel void @used_lds_8252_max_group_size_32() #10 { store volatile i8 1, ptr addrspace(3) @lds8252 ret void From 964adea800a5ea7767c7b71e805f388f6412b2d5 Mon Sep 17 00:00:00 2001 From: Changpeng Fang Date: Tue, 2 Dec 2025 15:54:36 -0800 Subject: [PATCH 2/2] Minor additions --- llvm/test/CodeGen/AMDGPU/occupancy-levels.ll | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/llvm/test/CodeGen/AMDGPU/occupancy-levels.ll b/llvm/test/CodeGen/AMDGPU/occupancy-levels.ll index 7b6ed77e06e46..9278c024f8905 100644 --- a/llvm/test/CodeGen/AMDGPU/occupancy-levels.ll +++ b/llvm/test/CodeGen/AMDGPU/occupancy-levels.ll @@ -446,7 +446,7 @@ define amdgpu_kernel void @used_lds_13112() { ; GFX10W32: ; Occupancy: 8{{$}} ; GFX1100W64: ; Occupancy: 4{{$}} ; GFX1100W32: ; Occupancy: 8{{$}} -; GFX1250: ; Occupancy: 10 +; GFX1250: ; Occupancy: 10{{$}} @lds8252 = internal addrspace(3) global [8252 x i8] poison, align 4 define amdgpu_kernel void @used_lds_8252_max_group_size_64() #3 { store volatile i8 1, ptr addrspace(3) @lds8252 @@ -460,7 +460,7 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_64() #3 { ; GFX10W32: ; Occupancy: 12{{$}} ; GFX1100W64: ; Occupancy: 8{{$}} ; GFX1100W32: ; Occupancy: 12{{$}} -; GFX1250: ; Occupancy: 12 +; GFX1250: ; Occupancy: 12{{$}} define amdgpu_kernel void @used_lds_8252_max_group_size_96() #4 { store volatile i8 1, ptr addrspace(3) @lds8252 ret void @@ -473,7 +473,7 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_96() #4 { ; GFX10W32: ; Occupancy: 15{{$}} ; GFX1100W64: ; Occupancy: 8{{$}} ; GFX1100W32: ; Occupancy: 15{{$}} -; GFX1250: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16{{$}} define amdgpu_kernel void @used_lds_8252_max_group_size_128() #5 { store volatile i8 1, ptr addrspace(3) @lds8252 ret void @@ -487,7 +487,7 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_128() #5 { ; GFX1030W32: ; Occupancy: 15{{$}} ; GFX1100W64: ; Occupancy: 12{{$}} ; GFX1100W32: ; Occupancy: 15{{$}} -; GFX1250: ; Occupancy: 15 +; GFX1250: ; Occupancy: 15{{$}} define amdgpu_kernel void @used_lds_8252_max_group_size_192() #6 { store volatile i8 1, ptr addrspace(3) @lds8252 ret void @@ -501,7 +501,7 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_192() #6 { ; GFX1030W32: ; Occupancy: 16{{$}} ; GFX1100W64: ; Occupancy: 15{{$}} ; GFX1100W32: ; Occupancy: 16{{$}} -; GFX1250: ; Occupancy: 16 +; GFX1250: ; Occupancy: 16{{$}} define amdgpu_kernel void @used_lds_8252_max_group_size_256() #7 { store volatile i8 1, ptr addrspace(3) @lds8252 ret void @@ -513,7 +513,7 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_256() #7 { ; GFX1010: ; Occupancy: 20{{$}} ; GFX1030: ; Occupancy: 16{{$}} ; GFX1100: ; Occupancy: 16{{$}} -; GFX1250: ; 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 ret void @@ -526,7 +526,7 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_512() #8 { ; GFX1010W64: ; Occupancy: 20{{$}} ; GFX1030: ; Occupancy: 16{{$}} ; GFX1100: ; Occupancy: 16{{$}} -; GFX1250: ; 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 ret void @@ -537,7 +537,7 @@ define amdgpu_kernel void @used_lds_8252_max_group_size_1024() #9 { ; GFX950: ; Occupancy: 5{{$}} ; GFX10: ; Occupancy: 4{{$}} ; GFX1100: ; Occupancy: 4{{$}} -; GFX1250: ; Occupancy: 10 +; GFX1250: ; Occupancy: 10{{$}} define amdgpu_kernel void @used_lds_8252_max_group_size_32() #10 { store volatile i8 1, ptr addrspace(3) @lds8252 ret void