[PATCH] D63520: correct SILowerI1Copies for vgprs
David Salinas via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 18 15:11:30 PDT 2019
david-salinas created this revision.
david-salinas added reviewers: arsenm, nhaehnle.
Herald added subscribers: llvm-commits, wdng, jvesely.
Herald added a project: LLVM.
Repository:
rL LLVM
https://reviews.llvm.org/D63520
Files:
lib/Target/AMDGPU/SILowerI1Copies.cpp
test/CodeGen/AMDGPU/si-lower-i1-copies-vgpr.mir
Index: test/CodeGen/AMDGPU/si-lower-i1-copies-vgpr.mir
===================================================================
--- /dev/null
+++ test/CodeGen/AMDGPU/si-lower-i1-copies-vgpr.mir
@@ -0,0 +1,31 @@
+# RUN: llc -mtriple=amdgcn-amd-amdhsa -verify-machineinstrs -run-pass=si-i1-copies -o - %s
+# GCN-LABEL: name: inserted_cmp_operand_class
+---
+name: inserted_cmp_operand_class
+tracksRegLiveness: true
+machineFunctionInfo:
+ isEntryFunction: true
+body: |
+ bb.0:
+ successors: %bb.3
+
+ S_BRANCH %bb.3
+
+ bb.1:
+ successors: %bb.2
+
+ %0:vreg_1 = COPY %1
+
+ bb.2:
+ %2:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
+ %3:sreg_64_xexec = COPY %0
+ S_ENDPGM 0
+
+ bb.3:
+ successors: %bb.1
+
+ %4:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
+ %5:sreg_32_xm0 = S_MOV_B32 0
+ %6:sreg_64 = V_CMP_EQ_U32_e64 killed %4, killed %5, implicit $exec
+ %1:vreg_1 = COPY %6
+ S_BRANCH %bb.1
Index: lib/Target/AMDGPU/SILowerI1Copies.cpp
===================================================================
--- lib/Target/AMDGPU/SILowerI1Copies.cpp
+++ lib/Target/AMDGPU/SILowerI1Copies.cpp
@@ -688,8 +688,9 @@
unsigned SrcReg = MI.getOperand(1).getReg();
assert(!MI.getOperand(1).getSubReg());
- if (!TargetRegisterInfo::isVirtualRegister(SrcReg) ||
- !isLaneMaskReg(SrcReg)) {
+ if (AMDGPU::VGPR_32RegClass.contains(SrcReg) &&
+ (!TargetRegisterInfo::isVirtualRegister(SrcReg) ||
+ !isLaneMaskReg(SrcReg))) {
assert(TII->getRegisterInfo().getRegSizeInBits(SrcReg, *MRI) == 32);
unsigned TmpReg = createLaneMaskReg(*MF);
BuildMI(MBB, MI, DL, TII->get(AMDGPU::V_CMP_NE_U32_e64), TmpReg)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D63520.205445.patch
Type: text/x-patch
Size: 1718 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190618/ada9dee6/attachment.bin>
More information about the llvm-commits
mailing list