- Value *BC0 =
- Builder.CreateBitCast(Arg0,
- VectorType::get(Type::getInt64Ty(C), 2),
- "cast");
- Value *BC1 =
- Builder.CreateBitCast(Arg1,
- VectorType::get(Type::getInt64Ty(C), 2),
- "cast");
-
- CallInst* NewCall = Builder.CreateCall2(NewFn, BC0, BC1, Name);
+ Type *NewVecTy = VectorType::get(Type::getInt64Ty(C), 2);
+
+ Value *BC0 = Builder.CreateBitCast(Arg0, NewVecTy, "cast");
+ Value *BC1 = Builder.CreateBitCast(Arg1, NewVecTy, "cast");
+
+ Type *Ty[] = {NewVecTy, NewVecTy};
+ CallInst *NewCall = Builder.CreateCall2(
+ FunctionType::get(CI->getType(), Ty, false), NewFn, BC0, BC1, Name);