AMDGPU: Handle or in multi-use shl ptr combine
llvm-svn: 318223
diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
index 0be8e81..f7fe652 100644
--- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
@@ -5199,8 +5199,8 @@
// We only do this to handle cases where it's profitable when there are
// multiple uses of the add, so defer to the standard combine.
- // TODO: Support or
- if (N0.getOpcode() != ISD::ADD || N0->hasOneUse())
+ if ((N0.getOpcode() != ISD::ADD && N0.getOpcode() != ISD::OR) ||
+ N0->hasOneUse())
return SDValue();
const ConstantSDNode *CN1 = dyn_cast<ConstantSDNode>(N1);