@@ -960,37 +960,24 @@ void VPWidenIntrinsicRecipe::execute(VPTransformState &State) {
960960 Args.push_back (Arg);
961961 }
962962
963- if (VPIntrinsic::isVPIntrinsic (VectorIntrinsicID)) {
964- // Use vector version of the vector predicate Intrinsic
965- IRBuilderBase &BuilderIR = State.Builder ;
966- VectorBuilder VBuilder (BuilderIR);
967- Value *Mask = BuilderIR.CreateVectorSplat (State.VF , BuilderIR.getTrue ());
968- VBuilder.setMask (Mask).setEVL (Args.back ());
969- Args.pop_back ();
970- Value *VPInst = VBuilder.createSimpleIntrinsic (
971- VectorIntrinsicID, TysForDecl[0 ], Args, " vp.call" );
972- if (!VPInst->getType ()->isVoidTy ())
973- State.set (this , VPInst);
974- State.addMetadata (VPInst,
975- dyn_cast_or_null<Instruction>(getUnderlyingValue ()));
976- } else {
977- // Use vector version of the intrinsic.
978- Module *M = State.Builder .GetInsertBlock ()->getModule ();
979- Function *VectorF =
980- Intrinsic::getOrInsertDeclaration (M, VectorIntrinsicID, TysForDecl);
981- assert (VectorF && " Can't retrieve vector intrinsic." );
982-
983- auto *CI = cast_or_null<CallInst>(getUnderlyingValue ());
984- SmallVector<OperandBundleDef, 1 > OpBundles;
985- if (CI)
986- CI->getOperandBundlesAsDefs (OpBundles);
987-
988- CallInst *V = State.Builder .CreateCall (VectorF, Args, OpBundles);
989- setFlags (V);
990- if (!V->getType ()->isVoidTy ())
991- State.set (this , V);
992- State.addMetadata (V, CI);
993- }
963+ // Use vector version of the intrinsic.
964+ Module *M = State.Builder .GetInsertBlock ()->getModule ();
965+ Function *VectorF =
966+ Intrinsic::getOrInsertDeclaration (M, VectorIntrinsicID, TysForDecl);
967+ assert (VectorF && " Can't retrieve vector intrinsic." );
968+
969+ auto *CI = cast_or_null<CallInst>(getUnderlyingValue ());
970+ SmallVector<OperandBundleDef, 1 > OpBundles;
971+ if (CI)
972+ CI->getOperandBundlesAsDefs (OpBundles);
973+
974+ CallInst *V = State.Builder .CreateCall (VectorF, Args, OpBundles);
975+
976+ setFlags (V);
977+
978+ if (!V->getType ()->isVoidTy ())
979+ State.set (this , V);
980+ State.addMetadata (V, dyn_cast_or_null<Instruction>(getUnderlyingValue ()));
994981}
995982
996983InstructionCost VPWidenIntrinsicRecipe::computeCost (ElementCount VF,
0 commit comments