diff options
| author | Marek Olsak <marek.olsak@amd.com> | 2015-02-03 21:53:01 +0000 |
|---|---|---|
| committer | Marek Olsak <marek.olsak@amd.com> | 2015-02-03 21:53:01 +0000 |
| commit | 707a6d0c203d9fb2b3cab27f12ea69418f748125 (patch) | |
| tree | 0f9ca11fa233497d3b85ad1714829c21125f8054 /llvm/lib/Target/R600/SIInstrInfo.cpp | |
| parent | 690c5baa6d30eabce59767568fe0ea371fa91199 (diff) | |
| download | bcm5719-llvm-707a6d0c203d9fb2b3cab27f12ea69418f748125.tar.gz bcm5719-llvm-707a6d0c203d9fb2b3cab27f12ea69418f748125.zip | |
R600/SI: Fix B64 VALU shifts on VI
SI only has standard versions. VI only has REV versions.
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
llvm-svn: 228037
Diffstat (limited to 'llvm/lib/Target/R600/SIInstrInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/R600/SIInstrInfo.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/lib/Target/R600/SIInstrInfo.cpp b/llvm/lib/Target/R600/SIInstrInfo.cpp index 3c863ebbd3a..7e2c0bd9ec2 100644 --- a/llvm/lib/Target/R600/SIInstrInfo.cpp +++ b/llvm/lib/Target/R600/SIInstrInfo.cpp @@ -2046,6 +2046,24 @@ void SIInstrInfo::moveToVALU(MachineInstr &TopInst) const { swapOperands(Inst); } break; + case AMDGPU::S_LSHL_B64: + if (ST.getGeneration() >= AMDGPUSubtarget::VOLCANIC_ISLANDS) { + NewOpcode = AMDGPU::V_LSHLREV_B64; + swapOperands(Inst); + } + break; + case AMDGPU::S_ASHR_I64: + if (ST.getGeneration() >= AMDGPUSubtarget::VOLCANIC_ISLANDS) { + NewOpcode = AMDGPU::V_ASHRREV_I64; + swapOperands(Inst); + } + break; + case AMDGPU::S_LSHR_B64: + if (ST.getGeneration() >= AMDGPUSubtarget::VOLCANIC_ISLANDS) { + NewOpcode = AMDGPU::V_LSHRREV_B64; + swapOperands(Inst); + } + break; case AMDGPU::S_BFE_U64: case AMDGPU::S_BFM_B64: |

