[llvm] [VPlan] Add VPInstruction to unpack vector values to scalars. (PR #155670)

via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 8 14:00:52 PDT 2025


================
@@ -1064,6 +1064,11 @@ class LLVM_ABI_FOR_TEST VPInstruction : public VPRecipeWithIRFlags,
     ResumeForEpilogue,
     /// Returns the value for vscale.
     VScale,
+    /// Extracts all lanes from its (non-scalable) vector operand. This is an
+    /// abstract VPInstruction whose single defined VPValue represents VF
+    /// scalars extracted from a vector, to be replaced by VF ExtractElement
+    /// VPInstructions.
+    Unpack,
----------------
ayalz wrote:

Good to place next to BuildStructVector and BuildVector "Pack" cases - which btw are concrete rather than abstract. (An analogous concrete Unpack which defines VF distinct VPValues could be introduced only after replicating by VF.)

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


More information about the llvm-commits mailing list