@@ -27395,9 +27395,11 @@ SDValue AArch64TargetLowering::LowerVECTOR_HISTOGRAM(SDValue Op,
2739527395 SDValue IncSplat = DAG.getSplatVector(MemVT, DL, Inc);
2739627396 SDValue Ops[] = {Chain, PassThru, Mask, Ptr, Index, Scale};
2739727397
27398- // Set the MMO to load only, rather than load|store.
27399- MachineMemOperand *GMMO = HG->getMemOperand();
27400- GMMO->setFlags(MachineMemOperand::MOLoad);
27398+ MachineMemOperand *MMO = HG->getMemOperand();
27399+ // Create an MMO for the gather, without load|store flags.
27400+ MachineMemOperand *GMMO = DAG.getMachineFunction().getMachineMemOperand(
27401+ MMO->getPointerInfo(), MachineMemOperand::MOLoad, MMO->getSize(),
27402+ MMO->getAlign(), MMO->getAAInfo());
2740127403 ISD::MemIndexType IndexType = HG->getIndexType();
2740227404 SDValue Gather =
2740327405 DAG.getMaskedGather(DAG.getVTList(MemVT, MVT::Other), MemVT, DL, Ops,
@@ -27412,10 +27414,10 @@ SDValue AArch64TargetLowering::LowerVECTOR_HISTOGRAM(SDValue Op,
2741227414 SDValue Mul = DAG.getNode(ISD::MUL, DL, MemVT, HistCnt, IncSplat);
2741327415 SDValue Add = DAG.getNode(ISD::ADD, DL, MemVT, Gather, Mul);
2741427416
27415- // Create a new MMO for the scatter.
27417+ // Create an MMO for the scatter, without load|store flags .
2741627418 MachineMemOperand *SMMO = DAG.getMachineFunction().getMachineMemOperand(
27417- GMMO ->getPointerInfo(), MachineMemOperand::MOStore, GMMO ->getSize(),
27418- GMMO ->getAlign(), GMMO ->getAAInfo());
27419+ MMO ->getPointerInfo(), MachineMemOperand::MOStore, MMO ->getSize(),
27420+ MMO ->getAlign(), MMO ->getAAInfo());
2741927421
2742027422 SDValue ScatterOps[] = {GChain, Add, Mask, Ptr, Index, Scale};
2742127423 SDValue Scatter = DAG.getMaskedScatter(DAG.getVTList(MVT::Other), MemVT, DL,
0 commit comments