[llvm] r358447 - AMDGPU: Fix unreachable when counting register usage of SGPR96
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 15 13:51:12 PDT 2019
Author: arsenm
Date: Mon Apr 15 13:51:12 2019
New Revision: 358447
URL: http://llvm.org/viewvc/llvm-project?rev=358447&view=rev
Log:
AMDGPU: Fix unreachable when counting register usage of SGPR96
Modified:
llvm/trunk/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
llvm/trunk/test/CodeGen/AMDGPU/call-graph-register-usage.ll
Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp?rev=358447&r1=358446&r2=358447&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp Mon Apr 15 13:51:12 2019
@@ -705,6 +705,9 @@ AMDGPUAsmPrinter::SIFunctionResourceInfo
} 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");
}
Modified: llvm/trunk/test/CodeGen/AMDGPU/call-graph-register-usage.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/call-graph-register-usage.ll?rev=358447&r1=358446&r2=358447&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/call-graph-register-usage.ll (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/call-graph-register-usage.ll Mon Apr 15 13:51:12 2019
@@ -224,6 +224,19 @@ define amdgpu_kernel void @usage_direct_
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 }
More information about the llvm-commits
mailing list