With this clang/test/CodeGen/builtins-nvptx-sm_70.cu is crashing: lib/IR/Instructions.cpp:299: void llvm::CallInst::init(llvm::FunctionType *, llvm::Value *, ArrayRef<llvm::Value *>, ArrayRef<llvm::OperandBundleDef>, const llvm::Twine &): Assertion `(i >= FTy->getNumParams()|| FTy->getParamType(i) == Args[i]->getType()) && "Calling a function with a bad signature!"' failed.
Cheers, Rafael Artem Belevich via cfe-commits <cfe-commits@lists.llvm.org> writes: > Author: tra > Date: Tue Mar 20 10:18:59 2018 > New Revision: 328006 > > URL: http://llvm.org/viewvc/llvm-project?rev=328006&view=rev > Log: > [NVPTX] Make tensor load/store intrinsics overloaded. > > This way we can support address-space specific variants without explicitly > encoding the space in the name of the intrinsic. Less intrinsics to deal with > -> > less boilerplate. > > Added a bit of tablegen magic to match/replace an intrinsics with a pointer > argument in particular address space with the space-specific instruction > variant. > > Updated tests to use non-default address spaces. > > Differential Revision: https://reviews.llvm.org/D43268 > > Modified: > cfe/trunk/lib/CodeGen/CGBuiltin.cpp > > Modified: cfe/trunk/lib/CodeGen/CGBuiltin.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuiltin.cpp?rev=328006&r1=328005&r2=328006&view=diff > ============================================================================== > --- cfe/trunk/lib/CodeGen/CGBuiltin.cpp (original) > +++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp Tue Mar 20 10:18:59 2018 > @@ -10527,8 +10527,7 @@ Value *CodeGenFunction::EmitNVPTXBuiltin > llvm_unreachable("Unexpected builtin ID."); > } > Value *Result = > - Builder.CreateCall(CGM.getIntrinsic(IID), > - {Builder.CreatePointerCast(Src, VoidPtrTy), Ldm}); > + Builder.CreateCall(CGM.getIntrinsic(IID, Src->getType()), {Src, > Ldm}); > > // Save returned values. > for (unsigned i = 0; i < NumResults; ++i) { > @@ -10567,10 +10566,9 @@ Value *CodeGenFunction::EmitNVPTXBuiltin > default: > llvm_unreachable("Unexpected builtin ID."); > } > - Function *Intrinsic = CGM.getIntrinsic(IID); > + Function *Intrinsic = CGM.getIntrinsic(IID, Dst->getType()); > llvm::Type *ParamType = Intrinsic->getFunctionType()->getParamType(1); > - SmallVector<Value *, 10> Values; > - Values.push_back(Builder.CreatePointerCast(Dst, VoidPtrTy)); > + SmallVector<Value *, 10> Values = {Dst}; > for (unsigned i = 0; i < NumResults; ++i) { > Value *V = Builder.CreateAlignedLoad( > Builder.CreateGEP(Src.getPointer(), llvm::ConstantInt::get(IntTy, > i)), > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits