forked from OSchip/llvm-project
AMDGPU: Fix unreachable when counting register usage of SGPR96
llvm-svn: 358447
This commit is contained in:
parent
fbdd2a1887
commit
101abd219b
|
@ -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");
|
||||
}
|
||||
|
|
|
@ -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 }
|
||||
|
|
Loading…
Reference in New Issue