[llvm] [VPlan] Handle FirstActiveLane when unrolling. (PR #145394)

via llvm-commits llvm-commits at lists.llvm.org
Sun Jun 29 08:01:27 PDT 2025


================
@@ -856,9 +856,32 @@ Value *VPInstruction::generate(VPTransformState &State) {
     return Builder.CreateOrReduce(Res);
   }
   case VPInstruction::FirstActiveLane: {
-    Value *Mask = State.get(getOperand(0));
-    return Builder.CreateCountTrailingZeroElems(Builder.getInt64Ty(), Mask,
-                                                true, Name);
+    if (getNumOperands() == 1) {
+      Value *Mask = State.get(getOperand(0));
+      return Builder.CreateCountTrailingZeroElems(Builder.getInt64Ty(), Mask,
+                                                  true, Name);
----------------
ayalz wrote:

```suggestion
      Value *LastActiveLaneInMask = Builder.CreateCountTrailingZeroElems(
          Int64, Mask, /* ZeroIsPoison */ true, Name);
      return LastActiveLaneInMask;
```
consistent with below.

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


More information about the llvm-commits mailing list