summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp b/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
index 67c86c3b8b9..599c9d71552 100644
--- a/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
+++ b/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
@@ -233,11 +233,10 @@ static bool isSubregOf(const MachineOperand &SubReg,
if (SuperReg.getReg() != SubReg.getReg())
return false;
- LaneBitmask::Type SuperMask =
- TRI->getSubRegIndexLaneMask(SuperReg.getSubReg()).getAsInteger();
- LaneBitmask::Type SubMask =
- TRI->getSubRegIndexLaneMask(SubReg.getSubReg()).getAsInteger();
- return TRI->regmaskSubsetEqual(&SubMask, &SuperMask);
+ LaneBitmask SuperMask = TRI->getSubRegIndexLaneMask(SuperReg.getSubReg());
+ LaneBitmask SubMask = TRI->getSubRegIndexLaneMask(SubReg.getSubReg());
+ SuperMask |= ~SubMask;
+ return SuperMask.all();
}
uint64_t SDWASrcOperand::getSrcMods() const {
OpenPOWER on IntegriCloud