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
Details
Diff Detail
Diff Detail
Event Timeline
| llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp | ||
|---|---|---|
| 542 ↗ | (On Diff #238523) | 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? | |
| 458–464 | 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. | |
Comment Actions
LGTM. Thanks.
| llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp | ||
|---|---|---|
| 458–459 | You probably don't need these two lines any more. | |
| llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp | ||
|---|---|---|
| 458–459 | No, I don't. Thanks for spotting. | |
This looks like it's gone back to an older version?