================ @@ -4704,6 +4754,43 @@ void llvm::UpgradeIntrinsicCall(CallBase *CI, Function *NewFn) { CI->eraseFromParent(); return; } + case Intrinsic::nvvm_mapa_shared_cluster: { + // Create a new call with the correct address space. + NewCall = + Builder.CreateCall(NewFn, {CI->getArgOperand(0), CI->getArgOperand(1)}); + Value *Res = NewCall; + Res = Builder.CreateAddrSpaceCast( + Res, Builder.getPtrTy(NVPTXAS::ADDRESS_SPACE_GENERIC)); + Res = Builder.CreateAddrSpaceCast( + Res, Builder.getPtrTy(NVPTXAS::ADDRESS_SPACE_SHARED)); ---------------- modiking wrote:
Not in this case. `nvvm_mapa_shared_cluster` when upgraded returns a `shared_cluster` pointer but the original IR expects a `shared` pointer so the casts are done accordingly https://github.com/llvm/llvm-project/pull/135444 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits