================
@@ -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