[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