This patch extends the gather/scatter pass in MVEGatherScatterLowering.cpp to enable the transformation of masked scatters into calls to arm's masked scatter intrinsic.
Details
Diff Detail
Event Timeline
llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp | ||
---|---|---|
542 | This can just call isLegalMaskedGather, like we do for isLegalMaskedStore | |
llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp | ||
292 | This looks like it's gone back to an older version? | |
459–465 | This might be better as bool Changed = false; for (IntrinsicInst *I : Gathers) Changed |= lowerGather(I); for (IntrinsicInst *I : Scatters) Changed |= lowerScatter(I); As we might not be altering the gathers/scatters that we see, leaving them for the legalise pass to scalarise. |
LGTM. Thanks.
llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp | ||
---|---|---|
459–460 | You probably don't need these two lines any more. |
llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp | ||
---|---|---|
459–460 | No, I don't. Thanks for spotting. |
This can just call isLegalMaskedGather, like we do for isLegalMaskedStore