[llvm] [VectorUtils][VPlan] Consolidate VPWidenIntrinsicRecipe::onlyFirstLaneUsed and isVectorIntrinsicWithScalarOpAtArg (PR #137497)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 30 02:00:28 PDT 2025


================
@@ -1364,10 +1364,11 @@ StringRef VPWidenIntrinsicRecipe::getIntrinsicName() const {
 
 bool VPWidenIntrinsicRecipe::onlyFirstLaneUsed(const VPValue *Op) const {
   assert(is_contained(operands(), Op) && "Op must be an operand of the recipe");
-  // Vector predication intrinsics only demand the the first lane the last
-  // operand (the EVL operand).
-  return VPIntrinsic::isVPIntrinsic(VectorIntrinsicID) &&
-         Op == getOperand(getNumOperands() - 1);
+  return all_of(enumerate(operands()), [this, &Op](auto &&X) {
----------------
fhahn wrote:

might be simpler to just use, if it works

```suggestion
  return all_of(enumerate(operands()), [this, &Op](const auto &X) {
```

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


More information about the llvm-commits mailing list