================
@@ -18660,6 +18660,10 @@ case Builtin::BI__builtin_hlsl_elementwise_isinf: {
         llvm::FunctionType::get(IntTy, {}, false), 
"__hlsl_wave_get_lane_index",
         {}, false, true));
   }
+  case Builtin::BI__builtin_hlsl_wave_is_first_lane: {
+    Intrinsic::ID ID = CGM.getHLSLRuntime().getWaveIsFirstLaneIntrinsic();
+    return EmitRuntimeCall(Intrinsic::getDeclaration(&CGM.getModule(), ID));
----------------
Keenuts wrote:

The reason is convergence intrinsics: The EmitRuntimeCall checks for 
convergence intrinsics and generates them, while CreateIntrinsic doesn't.
We could add the code required for this in CreateIntrinsic, but it would 
require moving some existing logic in codegen into the IRBuilder (things around 
convergence intrinsic gen).
So I preferred to add some inconsistencies here (and use EmitRuntimeCall) but 
avoid  larger code changes.

https://github.com/llvm/llvm-project/pull/103299
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to