@@ -15297,8 +15297,6 @@ static SDValue reduceANDOfAtomicLoad(SDNode *N,
1529715297 return SDValue();
1529815298
1529915299 EVT LoadedVT = ALoad->getMemoryVT();
15300- EVT ResultVT = N->getValueType(0);
15301-
1530215300 uint64_t Mask = maskTrailingOnes<uint64_t>(LoadedVT.getSizeInBits());
1530315301 uint64_t ExpectedMask = LoadedVT.getSizeInBits() == 8 ? 0xFF
1530415302 : LoadedVT.getSizeInBits() == 16 ? 0xFFFF
@@ -15307,13 +15305,9 @@ static SDValue reduceANDOfAtomicLoad(SDNode *N,
1530715305 if (Mask != ExpectedMask)
1530815306 return SDValue();
1530915307
15310- SDLoc DL(N);
15311- SDValue Chain = ALoad->getChain();
15312- SDValue Ptr = ALoad->getBasePtr();
15313- MachineMemOperand *MemOp = ALoad->getMemOperand();
15314- SDValue ZextLoad = DAG.getExtLoad(ISD::ZEXTLOAD, DL, ResultVT, Chain, Ptr,
15315- MemOp->getPointerInfo(), LoadedVT,
15316- MemOp->getAlign(), MemOp->getFlags());
15308+ SDValue ZextLoad = DAG.getAtomicLoad(
15309+ ISD::ZEXTLOAD, SDLoc(N), ALoad->getMemoryVT(), N->getValueType(0),
15310+ ALoad->getChain(), ALoad->getBasePtr(), ALoad->getMemOperand());
1531715311 DCI.CombineTo(N, ZextLoad);
1531815312 DAG.ReplaceAllUsesOfValueWith(SDValue(N0.getNode(), 1), ZextLoad.getValue(1));
1531915313 DCI.recursivelyDeleteUnusedNodes(N0.getNode());
0 commit comments