Skip to content

Commit 1459800

Browse files
committed
[AMDGPU] Fix a crash when a bool variable is used in inline asm
1 parent 315c904 commit 1459800

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

llvm/lib/Target/AMDGPU/SIISelLowering.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17670,6 +17670,11 @@ SITargetLowering::getRegForInlineAsmConstraint(const TargetRegisterInfo *TRI_,
1767017670
break;
1767117671
case 'v':
1767217672
switch (BitWidth) {
17673+
case 1:
17674+
RC = Subtarget->has1024AddressableVGPRs()
17675+
? &AMDGPU::VGPR_32_Lo256RegClass
17676+
: &AMDGPU::VGPR_32RegClass;
17677+
break;
1767317678
case 16:
1767417679
RC = Subtarget->useRealTrue16Insts() ? &AMDGPU::VGPR_16RegClass
1767517680
: &AMDGPU::VGPR_32_Lo256RegClass;
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_llc_test_checks.py UTC_ARGS: --version 6
2+
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 %s -o - | FileCheck %s
3+
; RUN: llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 %s -o - | FileCheck %s
4+
5+
define void @test(ptr %p, i1 %b) {
6+
; CHECK-LABEL: test:
7+
; CHECK: ; %bb.0:
8+
; CHECK-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9+
; CHECK-NEXT: ;;#ASMSTART
10+
; CHECK-NEXT: global_store_byte v[0:1], v2, off glc slc
11+
; CHECK-NEXT: ;;#ASMEND
12+
; CHECK-NEXT: s_setpc_b64 s[30:31]
13+
tail call void asm sideeffect "global_store_byte $0, $1, off glc slc", "v,v"(ptr %p, i1 %b)
14+
ret void
15+
}

0 commit comments

Comments
 (0)