@@ -735,7 +735,7 @@ static bool hasSourceMods(const SDNode *N) {
735
735
case ISD::INLINEASM:
736
736
case ISD::INLINEASM_BR:
737
737
case AMDGPUISD::DIV_SCALE:
738
- case ISD::INTRINSIC_W_CHAIN:
738
+ case ISD::INTRINSIC_W_CHAIN:
739
739
740
740
// TODO: Should really be looking at the users of the bitcast. These are
741
741
// problematic because bitcasts are used to legalize all stores to integer
@@ -4086,9 +4086,8 @@ SDValue AMDGPUTargetLowering::performShlCombine(SDNode *N,
4086
4086
LHSAND, Zero);
4087
4087
SDValue Hi =
4088
4088
DAG.getNode (ISD::EXTRACT_VECTOR_ELT, SL, MVT::i32 , LHSAND, One);
4089
- SDValue AndMask = DAG.getConstant (0x1f , SL, MVT::i32 );
4090
- SDValue LoAnd = DAG.getNode (ISD::AND, SL, MVT::i32 , Lo, AndMask);
4091
- SDValue HiAnd = DAG.getNode (ISD::AND, SL, MVT::i32 , Hi, AndMask);
4089
+ SDValue LoAnd = DAG.getNode (ISD::AND, SL, MVT::i32 , Lo, RHSAND->getOperand (0 ));
4090
+ SDValue HiAnd = DAG.getNode (ISD::AND, SL, MVT::i32 , Hi, RHSAND->getOperand (0 ));
4092
4091
SDValue Trunc = DAG.getNode (ISD::TRUNCATE, SL, MVT::i32 , LHS);
4093
4092
if (AndIndex == 0 || AndIndex == 1 )
4094
4093
return DAG.getNode (ISD::SHL, SL, MVT::i32 , Trunc,
0 commit comments