Many builtins, such as @intCast, infer the return type from the result type. However, other builtins that I would expect to use result types, such as @extern, @mulAdd, @unionInit (this one has an unapproved proposal), and @cVaArg, do not.
Is there a reason why these builtins (and possibly even builtins like @shuffle, @select, @cmpxchgStrong, @cmpxchgWeak, @atomicLoad, and @atomicRmw) do not use result types or is this just because no one has changed this until now?
Originally result type inference has been added just to make casting more convenient.
I think the other functions are just used to rarely, so no one bothered adding it or asking for it.
As for @atomicRmw in particular, the return value of it is often ignored, so it may not make sense to use result type inference for it. The rest seems reasonable to me though.