diff options
author | Tim Renouf <tpr.llvm@botech.co.uk> | 2019-08-13 18:57:55 +0000 |
---|---|---|
committer | Tim Renouf <tpr.llvm@botech.co.uk> | 2019-08-13 18:57:55 +0000 |
commit | 10db641aabf059eb9acf9f7649a9c1cc21955b59 (patch) | |
tree | 18ef3ae6218d7f7c1d9c69cc0584a91eef08a595 /llvm | |
parent | fc76d8551f54e0a8b99306741d6d818b90334d6a (diff) | |
download | bcm5719-llvm-10db641aabf059eb9acf9f7649a9c1cc21955b59.tar.gz bcm5719-llvm-10db641aabf059eb9acf9f7649a9c1cc21955b59.zip |
[AMDGPU] Fix to 'Fold readlane from copy of SGPR or imm'
That change (r363670) could leave a copy from vgpr to sgpr. Fixed.
Differential Revision: https://reviews.llvm.org/D66133
Change-Id: I00c3fe6fda2e8e1e36f53195b881b1449c777ea4
llvm-svn: 368736
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/lib/Target/AMDGPU/SIFoldOperands.cpp | 3 | ||||
-rw-r--r-- | llvm/test/CodeGen/AMDGPU/fold-readlane.mir | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp b/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp index 1b6981121f8..ca8448ab674 100644 --- a/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp +++ b/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp @@ -676,6 +676,9 @@ void SIFoldOperands::foldOperand( // => // %sgpr1 = COPY %sgpr0 UseMI->setDesc(TII->get(AMDGPU::COPY)); + UseMI->getOperand(1).setReg(OpToFold.getReg()); + UseMI->getOperand(1).setSubReg(OpToFold.getSubReg()); + UseMI->getOperand(1).setIsKill(false); UseMI->RemoveOperand(2); // Remove exec read (or src1 for readlane) return; } diff --git a/llvm/test/CodeGen/AMDGPU/fold-readlane.mir b/llvm/test/CodeGen/AMDGPU/fold-readlane.mir index 3c68686aa4a..711df358042 100644 --- a/llvm/test/CodeGen/AMDGPU/fold-readlane.mir +++ b/llvm/test/CodeGen/AMDGPU/fold-readlane.mir @@ -15,7 +15,7 @@ body: | # GCN: %0:vgpr_32 = V_MOV_B32_e32 123, implicit $exec # GCN: %1:sreg_32_xm0 = S_MOV_B32 123 # GCN: %2:vgpr_32 = V_MOV_B32_e32 123, implicit $exec -# GCN: %3:sreg_32_xm0 = S_MOV_B32 123 +# GCN: %3:sreg_32_xm0 = COPY %1 --- name: fold-imm-readfirstlane-readfirstlane @@ -33,7 +33,7 @@ body: | # GCN-LABEL: name: fold-copy-readfirstlane{{$}} # GCN: %0:sreg_32_xm0 = COPY $sgpr10 # GCN: %1:vgpr_32 = COPY %0 -# GCN: %2:sreg_32_xm0 = COPY %1 +# GCN: %2:sreg_32_xm0 = COPY %0 --- name: fold-copy-readfirstlane tracksRegLiveness: true |