[llvm] [VPlan] Use VPWidenIntrinsicRecipe to support binary and unary operations with EVL-vectorization (PR #114205)
Alexey Bataev via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 1 11:31:23 PDT 2024
================
@@ -970,24 +967,45 @@ void VPWidenIntrinsicRecipe::execute(VPTransformState &State) {
Args.push_back(Arg);
}
- // Use vector version of the intrinsic.
- Module *M = State.Builder.GetInsertBlock()->getModule();
- Function *VectorF =
- Intrinsic::getOrInsertDeclaration(M, VectorIntrinsicID, TysForDecl);
- assert(VectorF && "Can't retrieve vector intrinsic.");
+ if (VPIntrinsic::isVPIntrinsic(VectorIntrinsicID) &&
+ VectorIntrinsicID != Intrinsic::vp_select) {
+ VectorBuilder VBuilder(State.Builder);
----------------
alexey-bataev wrote:
I don't think we need to use VectorBuilder here, the intrinsic call may be emitted directly as a regular intrinsic
https://github.com/llvm/llvm-project/pull/114205
More information about the llvm-commits
mailing list