[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