To generate code compatible to streaming mode:
- Force scalarizing masked gather/scatter.
Testing files:
- expand-masked-gather.ll
- expand-masked-scatter.ll
Paths
| Differential D138588
[AArch64][SME]: Scalarize masked gather/scatter in streaming mode ClosedPublic Authored by hassnaa-arm on Nov 23 2022, 9:27 AM.
Details Summary To generate code compatible to streaming mode:
Testing files:
Diff Detail
Event TimelineComment Actions Are code generation tests all that useful for this patch? The change really affects the ScalarizeMaskedMem pass so the code generator never sees a call to gather or scatter intrinsics, which is presumably why they're no existing NEON code generation tests for these intrinsics. Perhaps instead you want to create an AArch64 version of llvm/test/Transforms/ScalarizeMaskedMemIntrin/X86/expand-masked-gather.ll (and expand-masked-scatter.ll)? Given the code change is independent of the vector length I also doubt you need to go so wide with your the number of vector lengths tested. Perhaps a test per element type and vary the vector length across those tests is enough. There might still be an issue where some other code can create a GATHER ISD node during code generation but none of the current tests test such a scenario and so we can worry about that later. This patch is all about ensuring ScalarizeMaskedMem does what we need when in streaming mode. Comment Actions Add testing files for scalarizing gather/scatter hassnaa-arm retitled this revision from [AArch64][SME]: Generate streaming-compatible code for scatter/gather to [AArch64][SME]: Scalarize masked gather/scatter in streaming mode.Nov 29 2022, 8:44 AM This revision is now accepted and ready to land.Nov 30 2022, 4:11 AM
This revision was landed with ongoing or failed builds.Nov 30 2022, 6:54 PM Closed by commit rG942f3ee40866: [AArch64][SME]: Scalarize masked gather/scatter in streaming mode. (authored by Hassnaa Hamdi <hassnaa.hamdi@arm.com>). · Explain Why This revision was automatically updated to reflect the committed changes. Comment Actions This test is failing on our bot that only builds the ARM target - https://lab.llvm.org/buildbot/#/builders/245/builds/1637 Is that command line option only available when you have AArch64? Comment Actions
Hi @DavidSpickett, hopefully I've fixed this with commit a043fcf92fa3
Revision Contents
Diff 477538 llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-masked-gather.ll
llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-masked-scatter.ll
|