================
@@ -387,6 +387,65 @@ float3 asin(float3);
 _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin)
 float4 asin(float4);
 
+//===----------------------------------------------------------------------===//
+// asuint builtins
+//===----------------------------------------------------------------------===//
+
+/// \fn uint asuint(T Val)
+/// \brief Interprets the bit pattern of x as an unsigned integer.
+/// \param Val The input value.
+
+__attribute__((__always_inline__, __nodebug__)) static inline uint
----------------
bogner wrote:

I kind of disagree with this, and I find the version with the macro pretty hard 
to follow.
1. Even if we have a macro to help with the attributes or something, it 
shouldn't be called "alias" - this isn't an alias at all (because of the static 
assert).
2. I don't really like that this single macro is defining multiple functions. 
The uses of `_HLSL_BUILTIN_ALIAS` decorate the definitions but each definition 
is written out clearly in source.

I could see some value in putting the `__attribute__((__always_inline__, 
__nodebug__))` bit in a macro so that it's easy to be consistent, but I don't 
think the function definitions themselves should be done this way.

https://github.com/llvm/llvm-project/pull/107292
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to