[llvm] [LoopVectorize] Generate wide active lane masks (PR #147535)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 14 12:49:38 PDT 2025


================
@@ -846,6 +849,14 @@ Value *VPInstruction::generate(VPTransformState &State) {
       Res->setName(Name);
     return Res;
   }
+  case VPInstruction::ExtractSubvector: {
+    Value *Vec = State.get(getOperand(0));
+    assert(State.VF.isVector());
+    auto Idx = cast<ConstantInt>(getOperand(1)->getLiveInIRValue());
+    auto ResTy = VectorType::get(
+        State.TypeAnalysis.inferScalarType(getOperand(0)), State.VF);
+    return Builder.CreateExtractVector(ResTy, Vec, Idx);
----------------
fhahn wrote:

If this maps 1-1 to an intrinsic, can we just use VPWidenIntrinsic instead?

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


More information about the llvm-commits mailing list