================ @@ -19040,6 +19040,48 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID, CGM.getIntrinsic(Intrinsic::amdgcn_s_sendmsg_rtn, {ResultType}); return Builder.CreateCall(F, {Arg}); } + case AMDGPU::BI__builtin_amdgcn_global_load_lds: { + SmallVector<Value *, 5> Args; + unsigned ICEArguments = 0; + ASTContext::GetBuiltinTypeError Error; + getContext().GetBuiltinType(BuiltinID, Error, &ICEArguments); + assert(Error == ASTContext::GE_None && "Should not codegen an error"); + Function *F = CGM.getIntrinsic(Intrinsic::amdgcn_global_load_lds); + llvm::FunctionType *FTy = F->getFunctionType(); + for (unsigned i = 0, e = E->getNumArgs(); i != e; ++i) { + Value *ArgValue = EmitScalarOrConstFoldImmArg(ICEArguments, i, E); + llvm::Type *PTy = FTy->getParamType(i); + if (PTy != ArgValue->getType()) { + if (auto *PtrTy = dyn_cast<llvm::PointerType>(PTy)) { + if (PtrTy->getAddressSpace() != + ArgValue->getType()->getPointerAddressSpace()) { + ArgValue = Builder.CreateAddrSpaceCast( + ArgValue, llvm::PointerType::get(getLLVMContext(), + PtrTy->getAddressSpace())); + } + } ---------------- shiltian wrote:
Aha, good to know! https://github.com/llvm/llvm-project/pull/93064 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits