summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2019-05-17 12:02:31 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2019-05-17 12:02:31 +0000
commita3b5a386fa7b8bbb8c156131146b037a5b8a3daf (patch)
treedaef5733c8c0ce5199db304839445b2db77005c4 /llvm/lib/Target
parentb3dc73634c492085c861127953ed2f4ccade2fcc (diff)
downloadbcm5719-llvm-a3b5a386fa7b8bbb8c156131146b037a5b8a3daf.tar.gz
bcm5719-llvm-a3b5a386fa7b8bbb8c156131146b037a5b8a3daf.zip
AMDGPU/GlobalISel: Use subreg index instead of extra unmerge
This saves instructions and extra steps, but I'm not sure about introducing subregister indexes at this point. llvm-svn: 361022
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp10
1 files changed, 2 insertions, 8 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
index 5ae472cd514..6a3e216a4f5 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
@@ -589,21 +589,15 @@ void AMDGPURegisterBankInfo::executeInWaterfallLoop(
MRI.setRegClass(CurrentLaneOpRegLo, &AMDGPU::SReg_32_XM0RegClass);
MRI.setRegClass(CurrentLaneOpRegHi, &AMDGPU::SReg_32_XM0RegClass);
- // FIXME: Should be able to just use a subreg index here.
- auto Unmerge32 = B.buildUnmerge(S32, UnmergePiece);
-
- MRI.setRegClass(Unmerge32.getReg(0), &AMDGPU::VGPR_32RegClass);
- MRI.setRegClass(Unmerge32.getReg(1), &AMDGPU::VGPR_32RegClass);
-
// Read the next variant <- also loop target.
BuildMI(*LoopBB, I, DL, TII->get(AMDGPU::V_READFIRSTLANE_B32),
CurrentLaneOpRegLo)
- .addReg(Unmerge32.getReg(0));
+ .addReg(UnmergePiece, 0, AMDGPU::sub0);
// Read the next variant <- also loop target.
BuildMI(*LoopBB, I, DL, TII->get(AMDGPU::V_READFIRSTLANE_B32),
CurrentLaneOpRegHi)
- .addReg(Unmerge32.getReg(1));
+ .addReg(UnmergePiece, 0, AMDGPU::sub1);
CurrentLaneOpReg =
B.buildMerge(LLT::scalar(64),
OpenPOWER on IntegriCloud