[llvm] [LoopVectorize] Enable vectorisation of early exit loops with live-outs (PR #120567)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 29 12:12:54 PST 2025
================
@@ -697,14 +697,21 @@ Value *VPInstruction::generate(VPTransformState &State) {
Value *A = State.get(getOperand(0));
return Builder.CreateOrReduce(A);
}
-
+ case VPInstruction::ExtractFirstActive: {
+ Value *Vec = State.get(getOperand(0));
+ Value *Mask = State.get(getOperand(1));
+ Value *Ctz = Builder.CreateCountTrailingZeroElems(
+ Builder.getInt64Ty(), Mask, true, "first.active.lane");
+ return Builder.CreateExtractElement(Vec, Ctz);
----------------
fhahn wrote:
nit: could also use a name here
https://github.com/llvm/llvm-project/pull/120567
More information about the llvm-commits
mailing list