[llvm] [LV] Add initial support for vectorizing literal struct return values (PR #109833)

Benjamin Maxwell via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 4 08:42:31 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 can't comment much on struct-of-vectors vs vector-of-structs, other than that this patch is very much focused on struct-of-vectors. The reason is this aligns with LLVM intrinsics that return multiple results and support vector types.

e.g. https://llvm.org/docs/LangRef.html#llvm-sincos-intrinsic,  https://llvm.org/docs/LangRef.html#llvm-sadd-with-overflow-intrinsics, or https://llvm.org/docs/LangRef.html#llvm-frexp-intrinsic

https://github.com/llvm/llvm-project/pull/109833


More information about the llvm-commits mailing list