[llvm] [AArch64] Improve index selection for histograms (PR #111150)
James Chesterman via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 17 01:26:14 PDT 2024
================
@@ -12353,6 +12355,37 @@ SDValue DAGCombiner::visitMLOAD(SDNode *N) {
return SDValue();
}
+SDValue DAGCombiner::visitMHISTOGRAM(SDNode *N) {
+ MaskedHistogramSDNode *HG = cast<MaskedHistogramSDNode>(N);
+ SDValue Chain = HG->getChain();
+ SDValue Inc = HG->getInc();
+ SDValue Mask = HG->getMask();
+ SDValue BasePtr = HG->getBasePtr();
+ SDValue Index = HG->getIndex();
+ SDLoc DL(HG);
+
+ EVT MemVT = HG->getMemoryVT();
+ MachineMemOperand *MMO = HG->getMemOperand();
+ ISD::MemIndexType IndexType = HG->getIndexType();
+
+ if (ISD::isConstantSplatVectorAllZeros(Mask.getNode())) {
+ return Chain;
+ }
+ SDValue Ops[] = {Chain, Inc, Mask, BasePtr, Index,
+ HG->getScale(), HG->getIntID()};
----------------
JamesChesterman wrote:
I think so yes. I think it's probably because the last two arguments are so long and it wants to match the positions of the arguments above it.
https://github.com/llvm/llvm-project/pull/111150
More information about the llvm-commits
mailing list