AMDGPU: Fix unreachable when counting register usage of SGPR96

llvm-svn: 358447
This commit is contained in:
Matt Arsenault 2019-04-15 20:51:12 +00:00
parent fbdd2a1887
commit 101abd219b
2 changed files with 16 additions and 0 deletions

View File

@ -705,6 +705,9 @@ AMDGPUAsmPrinter::SIFunctionResourceInfo AMDGPUAsmPrinter::analyzeResourceUsage(
} else if (AMDGPU::VReg_512RegClass.contains(Reg)) {
IsSGPR = false;
Width = 16;
} else if (AMDGPU::SReg_96RegClass.contains(Reg)) {
IsSGPR = true;
Width = 3;
} else {
llvm_unreachable("Unknown register class");
}

View File

@ -224,6 +224,19 @@ define amdgpu_kernel void @usage_direct_recursion(i32 %n) #0 {
ret void
}
; Make sure there's no assert when a sgpr96 is used.
; GCN-LABEL: {{^}}count_use_sgpr96_external_call
; GCN: ; sgpr96 s[{{[0-9]+}}:{{[0-9]+}}]
; CI: NumSgprs: 48
; VI-NOBUG: NumSgprs: 48
; VI-BUG: NumSgprs: 96
; GCN: NumVgprs: 24
define amdgpu_kernel void @count_use_sgpr96_external_call() {
entry:
tail call void asm sideeffect "; sgpr96 $0", "s"(<3 x i32> <i32 10, i32 11, i32 12>) #1
call void @external()
ret void
}
attributes #0 = { nounwind noinline norecurse }
attributes #1 = { nounwind noinline norecurse }