Skip to content

Commit e8811ad

Browse files
authored
[AMDGPU] Fix unreachable reg bit width (#122107)
Add register class bit width for SReg_256_XNULL and SReg_128_XNULL
1 parent 4089314 commit e8811ad

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2487,6 +2487,7 @@ unsigned getRegBitWidth(unsigned RCID) {
24872487
case AMDGPU::AReg_128_Align2RegClassID:
24882488
case AMDGPU::AV_128RegClassID:
24892489
case AMDGPU::AV_128_Align2RegClassID:
2490+
case AMDGPU::SReg_128_XNULLRegClassID:
24902491
return 128;
24912492
case AMDGPU::SGPR_160RegClassID:
24922493
case AMDGPU::SReg_160RegClassID:
@@ -2523,6 +2524,7 @@ unsigned getRegBitWidth(unsigned RCID) {
25232524
case AMDGPU::AReg_256_Align2RegClassID:
25242525
case AMDGPU::AV_256RegClassID:
25252526
case AMDGPU::AV_256_Align2RegClassID:
2527+
case AMDGPU::SReg_256_XNULLRegClassID:
25262528
return 256;
25272529
case AMDGPU::SGPR_288RegClassID:
25282530
case AMDGPU::SReg_288RegClassID:
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
2+
# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -run-pass=postmisched -o - %s | FileCheck %s
3+
---
4+
name: test_xnull_256
5+
body: |
6+
bb.0:
7+
; CHECK-LABEL: name: test_xnull_256
8+
; CHECK: IMAGE_STORE_V4_V2_gfx90a $vgpr0_vgpr1_vgpr2_vgpr3, killed $vgpr8_vgpr9, killed $sgpr24_sgpr25_sgpr26_sgpr27_sgpr28_sgpr29_sgpr30_sgpr31, 15, -1, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), addrspace 8)
9+
; CHECK-NEXT: $vgpr2 = V_LSHRREV_B32_e32 4, killed $vgpr2, implicit $exec
10+
IMAGE_STORE_V4_V2_gfx90a $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr8_vgpr9, $sgpr24_sgpr25_sgpr26_sgpr27_sgpr28_sgpr29_sgpr30_sgpr31, 15, -1, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable store (s128), addrspace 8)
11+
$vgpr2 = V_LSHRREV_B32_e32 4, $vgpr2, implicit $exec
12+
...
13+
14+
15+
# FIXME: We need xnull_128 test case (which reach unreachable in function AMDGPU::getRegBitWidth). Currently cannot find one

0 commit comments

Comments
 (0)