[llvm] 4ee5a04 - [amdgpu] Fix check of VCC.
Michael Liao via llvm-commits
llvm-commits at lists.llvm.org
Wed May 6 11:16:46 PDT 2020
Author: Michael Liao
Date: 2020-05-06T14:16:37-04:00
New Revision: 4ee5a04187aadfb646e49d1d002a7c3da07ff254
URL: https://github.com/llvm/llvm-project/commit/4ee5a04187aadfb646e49d1d002a7c3da07ff254
DIFF: https://github.com/llvm/llvm-project/commit/4ee5a04187aadfb646e49d1d002a7c3da07ff254.diff
LOG: [amdgpu] Fix check of VCC.
Summary: - Need to include checking on the new 16-bit subregs.
Reviewers: rampitec
Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79498
Added:
llvm/test/CodeGen/AMDGPU/asm-printer-check-vcc.mir
Modified:
llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
index 88644e010d35..2c3cbd8423a7 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
@@ -727,6 +727,10 @@ AMDGPUAsmPrinter::SIFunctionResourceInfo AMDGPUAsmPrinter::analyzeResourceUsage(
case AMDGPU::VCC:
case AMDGPU::VCC_LO:
case AMDGPU::VCC_HI:
+ case AMDGPU::VCC_LO_LO16:
+ case AMDGPU::VCC_LO_HI16:
+ case AMDGPU::VCC_HI_LO16:
+ case AMDGPU::VCC_HI_HI16:
Info.UsesVCC = true;
continue;
diff --git a/llvm/test/CodeGen/AMDGPU/asm-printer-check-vcc.mir b/llvm/test/CodeGen/AMDGPU/asm-printer-check-vcc.mir
new file mode 100644
index 000000000000..ee0dbbc657e0
--- /dev/null
+++ b/llvm/test/CodeGen/AMDGPU/asm-printer-check-vcc.mir
@@ -0,0 +1,23 @@
+# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -start-after=livedebugvalues -verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN %s
+
+# GCN-LABEL: foo:
+# GCN: s_getpc_b64 vcc
+# GCN: s_add_u32 vcc_lo, vcc_lo, bar at rel32@lo+4
+# GCN: s_addc_u32 vcc_hi, vcc_hi, bar at rel32@hi+4
+--- |
+ define amdgpu_kernel void @foo() {
+ ret void
+ }
+ @bar = external protected local_unnamed_addr addrspace(4) externally_initialized global i32, align 4
+---
+name: foo
+tracksRegLiveness: true
+frameInfo:
+ hasCalls: true
+body: |
+ bb.0:
+ BUNDLE implicit-def $vcc, implicit-def $vcc_lo, implicit-def $vcc_lo_lo16, implicit-def $vcc_lo_hi16, implicit-def $vcc_hi, implicit-def $vcc_hi_lo16, implicit-def $vcc_hi_hi16, implicit-def $scc {
+ $vcc = S_GETPC_B64
+ $vcc_lo = S_ADD_U32 internal $vcc_lo, target-flags(amdgpu-rel32-lo) @bar + 4, implicit-def $scc
+ $vcc_hi = S_ADDC_U32 internal $vcc_hi, target-flags(amdgpu-rel32-hi) @bar + 4, implicit-def $scc, implicit internal $scc
+ }
More information about the llvm-commits
mailing list