summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/R600/SIFixSGPRCopies.cpp
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2014-04-07 19:45:45 +0000
committerTom Stellard <thomas.stellard@amd.com>2014-04-07 19:45:45 +0000
commit204e61bbdf51e875c49ef203d35b3a8fc016029c (patch)
treeb851af54260e3ce58ee58c62c94f36d055cb1614 /llvm/lib/Target/R600/SIFixSGPRCopies.cpp
parent50122a58906e36184fd2a0f95944fbca6c6b08f0 (diff)
downloadbcm5719-llvm-204e61bbdf51e875c49ef203d35b3a8fc016029c.tar.gz
bcm5719-llvm-204e61bbdf51e875c49ef203d35b3a8fc016029c.zip
R600/SI: Handle INSERT_SUBREG in SIFixSGPRCopies
llvm-svn: 205732
Diffstat (limited to 'llvm/lib/Target/R600/SIFixSGPRCopies.cpp')
-rw-r--r--llvm/lib/Target/R600/SIFixSGPRCopies.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/Target/R600/SIFixSGPRCopies.cpp b/llvm/lib/Target/R600/SIFixSGPRCopies.cpp
index 402f1f4d651..29d154ff425 100644
--- a/llvm/lib/Target/R600/SIFixSGPRCopies.cpp
+++ b/llvm/lib/Target/R600/SIFixSGPRCopies.cpp
@@ -256,6 +256,16 @@ bool SIFixSGPRCopies::runOnMachineFunction(MachineFunction &MF) {
TII->moveToVALU(MI);
break;
}
+ case AMDGPU::INSERT_SUBREG: {
+ const TargetRegisterClass *DstRC, *SrcRC;
+ DstRC = MRI.getRegClass(MI.getOperand(0).getReg());
+ SrcRC = MRI.getRegClass(MI.getOperand(1).getReg());
+ if (!TRI->isSGPRClass(DstRC) || !TRI->hasVGPRs(SrcRC))
+ break;
+ DEBUG(dbgs() << " Fixing INSERT_SUBREG:\n");
+ DEBUG(MI.print(dbgs()));
+ TII->moveToVALU(MI);
+ }
}
}
}
OpenPOWER on IntegriCloud