[llvm] [LV][EVL] Support call instruction with EVL-vectorization (PR #110412)

Alexey Bataev via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 30 03:37:00 PDT 2024


================
@@ -1115,6 +1170,32 @@ void VPHistogramRecipe::print(raw_ostream &O, const Twine &Indent,
   }
 }
 
+void VPWidenCallEVLRecipe::print(raw_ostream &O, const Twine &Indent,
+                                 VPSlotTracker &SlotTracker) const {
+  O << Indent << "WIDEN-CALL ";
+
+  Function *CalledFn = getCalledScalarFunction();
+  if (CalledFn->getReturnType()->isVoidTy())
+    O << "void ";
+  else {
+    printAsOperand(O, SlotTracker);
+    O << " = ";
+  }
+
+  O << "vp.call @" << CalledFn->getName() << "(";
+  interleaveComma(arg_operands(), O, [&O, &SlotTracker](VPValue *Op) {
+    Op->printAsOperand(O, SlotTracker);
+  });
+  O << ")";
+
+  if (VectorIntrinsicID)
+    O << " (using vector intrinsic)";
+  else {
----------------
alexey-bataev wrote:

```suggestion
  if (VectorIntrinsicID) {
    O << " (using vector intrinsic)";
  } else {
```


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


More information about the llvm-commits mailing list