@@ -15147,7 +15147,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) {
1514715147 SmallVector<Value *> OpVecs;
1514815148 SmallVector<Type *, 2> TysForDecl;
1514915149 // Add return type if intrinsic is overloaded on it.
15150- if (UseIntrinsic && isVectorIntrinsicWithOverloadTypeAtArg(ID, -1))
15150+ if (UseIntrinsic && isVectorIntrinsicWithOverloadTypeAtArg(ID, -1, TTI ))
1515115151 TysForDecl.push_back(VecTy);
1515215152 auto *CEI = cast<CallInst>(VL0);
1515315153 for (unsigned I : seq<unsigned>(0, CI->arg_size())) {
@@ -15162,7 +15162,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) {
1516215162 It->second.first < DL->getTypeSizeInBits(CEI->getType()))
1516315163 ScalarArg = Builder.getFalse();
1516415164 OpVecs.push_back(ScalarArg);
15165- if (isVectorIntrinsicWithOverloadTypeAtArg(ID, I))
15165+ if (isVectorIntrinsicWithOverloadTypeAtArg(ID, I, TTI ))
1516615166 TysForDecl.push_back(ScalarArg->getType());
1516715167 continue;
1516815168 }
@@ -15184,7 +15184,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) {
1518415184 }
1518515185 LLVM_DEBUG(dbgs() << "SLP: OpVec[" << I << "]: " << *OpVec << "\n");
1518615186 OpVecs.push_back(OpVec);
15187- if (UseIntrinsic && isVectorIntrinsicWithOverloadTypeAtArg(ID, I))
15187+ if (UseIntrinsic && isVectorIntrinsicWithOverloadTypeAtArg(ID, I, TTI ))
1518815188 TysForDecl.push_back(OpVec->getType());
1518915189 }
1519015190
0 commit comments