https://github.com/spall updated https://github.com/llvm/llvm-project/pull/132804
>From 140b17c6972ac7f867dc342f29121d71e079c9db Mon Sep 17 00:00:00 2001 From: Sarah Spall <sarahsp...@microsoft.com> Date: Mon, 24 Mar 2025 11:38:21 -0700 Subject: [PATCH 1/2] half overloads are defined all the time --- .../lib/Headers/hlsl/hlsl_alias_intrinsics.h | 48 ++++++++++++------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h b/clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h index 585e905c7bf5d..d1e23007f92ff 100644 --- a/clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h +++ b/clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h @@ -134,16 +134,18 @@ double4 abs(double4); /// \brief Returns the arccosine of the input value, \a Val. /// \param Val The input value. -#ifdef __HLSL_ENABLE_16_BIT +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos) half acos(half); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos) half2 acos(half2); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos) half3 acos(half3); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos) half4 acos(half4); -#endif _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos) float acos(float); @@ -447,16 +449,18 @@ double4 asdouble(uint4, uint4); /// \brief Returns the arcsine of the input value, \a Val. /// \param Val The input value. -#ifdef __HLSL_ENABLE_16_BIT +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin) half asin(half); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin) half2 asin(half2); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin) half3 asin(half3); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin) half4 asin(half4); -#endif _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin) float asin(float); @@ -475,16 +479,18 @@ float4 asin(float4); /// \brief Returns the arctangent of the input value, \a Val. /// \param Val The input value. -#ifdef __HLSL_ENABLE_16_BIT +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan) half atan(half); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan) half2 atan(half2); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan) half3 atan(half3); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan) half4 atan(half4); -#endif _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan) float atan(float); @@ -505,16 +511,18 @@ float4 atan(float4); /// \param y The y-coordinate. /// \param x The x-coordinate. -#ifdef __HLSL_ENABLE_16_BIT +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2) half atan2(half y, half x); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2) half2 atan2(half2 y, half2 x); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2) half3 atan2(half3 y, half3 x); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2) half4 atan2(half4 y, half4 x); -#endif _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2) float atan2(float y, float x); @@ -721,16 +729,18 @@ float4 cos(float4); /// \brief Returns the hyperbolic cosine of the input value, \a Val. /// \param Val The input value. -#ifdef __HLSL_ENABLE_16_BIT +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh) half cosh(half); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh) half2 cosh(half2); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh) half3 cosh(half3); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh) half4 cosh(half4); -#endif _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh) float cosh(float); @@ -2124,16 +2134,18 @@ float4 sin(float4); /// \brief Returns the hyperbolic sine of the input value, \a Val. /// \param Val The input value. -#ifdef __HLSL_ENABLE_16_BIT +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh) half sinh(half); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh) half2 sinh(half2); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh) half3 sinh(half3); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh) half4 sinh(half4); -#endif _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh) float sinh(float); @@ -2215,16 +2227,18 @@ float4 step(float4, float4); /// \brief Returns the tangent of the input value, \a Val. /// \param Val The input value. -#ifdef __HLSL_ENABLE_16_BIT +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan) half tan(half); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan) half2 tan(half2); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan) half3 tan(half3); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan) half4 tan(half4); -#endif _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan) float tan(float); @@ -2243,16 +2257,18 @@ float4 tan(float4); /// \brief Returns the hyperbolic tangent of the input value, \a Val. /// \param Val The input value. -#ifdef __HLSL_ENABLE_16_BIT +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh) half tanh(half); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh) half2 tanh(half2); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh) half3 tanh(half3); +_HLSL_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh) half4 tanh(half4); -#endif _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh) float tanh(float); >From 7b0677a5b68fabb2fc4851cbd7ffd017acd9b50f Mon Sep 17 00:00:00 2001 From: Sarah Spall <sarahsp...@microsoft.com> Date: Mon, 24 Mar 2025 12:02:30 -0700 Subject: [PATCH 2/2] use _HLSL_16BIT_AVAILABILITY --- .../lib/Headers/hlsl/hlsl_alias_intrinsics.h | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h b/clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h index d1e23007f92ff..b0ff9075377d8 100644 --- a/clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h +++ b/clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h @@ -134,16 +134,16 @@ double4 abs(double4); /// \brief Returns the arccosine of the input value, \a Val. /// \param Val The input value. -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos) half acos(half); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos) half2 acos(half2); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos) half3 acos(half3); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_acos) half4 acos(half4); @@ -449,16 +449,16 @@ double4 asdouble(uint4, uint4); /// \brief Returns the arcsine of the input value, \a Val. /// \param Val The input value. -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin) half asin(half); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin) half2 asin(half2); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin) half3 asin(half3); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_asin) half4 asin(half4); @@ -479,16 +479,16 @@ float4 asin(float4); /// \brief Returns the arctangent of the input value, \a Val. /// \param Val The input value. -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan) half atan(half); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan) half2 atan(half2); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan) half3 atan(half3); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan) half4 atan(half4); @@ -511,16 +511,16 @@ float4 atan(float4); /// \param y The y-coordinate. /// \param x The x-coordinate. -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2) half atan2(half y, half x); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2) half2 atan2(half2 y, half2 x); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2) half3 atan2(half3 y, half3 x); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_atan2) half4 atan2(half4 y, half4 x); @@ -729,16 +729,16 @@ float4 cos(float4); /// \brief Returns the hyperbolic cosine of the input value, \a Val. /// \param Val The input value. -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh) half cosh(half); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh) half2 cosh(half2); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh) half3 cosh(half3); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_cosh) half4 cosh(half4); @@ -2134,16 +2134,16 @@ float4 sin(float4); /// \brief Returns the hyperbolic sine of the input value, \a Val. /// \param Val The input value. -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh) half sinh(half); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh) half2 sinh(half2); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh) half3 sinh(half3); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_sinh) half4 sinh(half4); @@ -2227,16 +2227,16 @@ float4 step(float4, float4); /// \brief Returns the tangent of the input value, \a Val. /// \param Val The input value. -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan) half tan(half); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan) half2 tan(half2); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan) half3 tan(half3); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tan) half4 tan(half4); @@ -2257,16 +2257,16 @@ float4 tan(float4); /// \brief Returns the hyperbolic tangent of the input value, \a Val. /// \param Val The input value. -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh) half tanh(half); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh) half2 tanh(half2); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh) half3 tanh(half3); -_HLSL_AVAILABILITY(shadermodel, 6.2) +_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) _HLSL_BUILTIN_ALIAS(__builtin_elementwise_tanh) half4 tanh(half4); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits