[clang] [Clang][HLSL] Use EmitIntrinsicCall instead of EmitRuntimeCall for intrinsic (PR #197380)

Matt Arsenault via cfe-commits cfe-commits at lists.llvm.org
Wed May 13 01:27:22 PDT 2026


================
@@ -5233,17 +5233,32 @@ llvm::CallInst *CodeGenFunction::EmitRuntimeCall(llvm::FunctionCallee callee,
                                                  const llvm::Twine &name) {
   llvm::CallInst *call = Builder.CreateCall(
       callee, args, getBundlesForFunclet(callee.getCallee()), name);
-  // Intrinsics must use CallingConv::C; only apply the runtime CC to
-  // non-intrinsic callees.
-  if (auto *F = dyn_cast<llvm::Function>(callee.getCallee());
-      !F || !F->isIntrinsic())
-    call->setCallingConv(getRuntimeCC());
+  call->setCallingConv(getRuntimeCC());
 
   if (CGM.shouldEmitConvergenceTokens() && call->isConvergent())
     return cast<llvm::CallInst>(addConvergenceControlToken(call));
   return call;
 }
 
+llvm::CallInst *CodeGenFunction::EmitIntrinsicCall(llvm::FunctionCallee Callee,
----------------
arsenm wrote:

If this is going to be the intrinsic specific function, it should take an Intrinsic ID?

https://github.com/llvm/llvm-project/pull/197380


More information about the cfe-commits mailing list