[llvm] [LV] Add initial support for vectorizing literal struct return values (PR #109833)
Benjamin Maxwell via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 5 01:45:47 PST 2024
================
@@ -9607,7 +9624,7 @@ void VPReplicateRecipe::execute(VPTransformState &State) {
VectorType::get(UI->getType(), State.VF));
State.set(this, Poison);
}
- State.packScalarIntoVectorValue(this, *State.Lane);
+ State.packScalarIntoWideValue(this, *State.Lane);
----------------
MacDue wrote:
I also don't see a use case for the loads/stores of struct types either, as they'll be replaced with scalar loads/stores before vectorization anyway (and can already be handled). I think that holds for most struct types (generally, I don't think you want to keep aggregate types around).
The only use cases I know of (and was working towards) are vector intrinsics and library functions, which return multiple values as a struct of vectors, where this patch seems like a fairly non-intrusive way to make it possible for both intrinsics and calls.
https://github.com/llvm/llvm-project/pull/109833
More information about the llvm-commits
mailing list