diff options
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.cpp b/llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.cpp index 16d7f2c4f9e59..989937a597fb2 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.cpp @@ -43,3 +43,12 @@ AMDGPU::getBaseWithConstantOffset(MachineRegisterInfo &MRI, Register Reg) { return std::make_tuple(Reg, 0, Def); } + +bool AMDGPU::isLegalVOP3PShuffleMask(ArrayRef<int> Mask) { + assert(Mask.size() == 2); + + // If one half is undef, the other is trivially in the same reg. + if (Mask[0] == -1 || Mask[1] == -1) + return true; + return (Mask[0] & 2) == (Mask[1] & 2); +} |