[PATCH] D129067: [CodeGen] Complex deinterleaving vector splitting
Dave Green via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 5 03:09:26 PDT 2022
dmgreen added a comment.
Can we do the splitting on the Target side of the boundary? So it gets asked to create a "v8f32 vcmul" from two values and generates a series for "extract-subvector; vcmul; insert-subvector" each of size v4i32. I don't think the pass/graph would actually need to change, it would just be up to the backend to generate something equivalent. Then the graph in simpler, and all the added shuffles would optimize away.
See lowerInterleavedLoad (https://github.com/llvm/llvm-project/blob/main/llvm/lib/Target/ARM/ARMISelLowering.cpp#L21400) and lowerInterleavedStore (https://github.com/llvm/llvm-project/blob/main/llvm/lib/Target/ARM/ARMISelLowering.cpp#L21548) for examples of that.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D129067/new/
https://reviews.llvm.org/D129067
More information about the llvm-commits
mailing list