diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2023-07-06 10:50:39 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-06 10:50:39 -0400 |
| commit | 4a88139a86596fd1a546af84ab3210ea3013c58d (patch) | |
| tree | 06d6a539aad1efd8a505a6b5e7af96a6f6a30336 | |
| parent | 946a1b294e1e511d4bb32817d0c82828b5305113 (diff) | |
Add support for length for scalar floating point types. (#2965)
| -rw-r--r-- | source/slang/hlsl.meta.slang | 7 | ||||
| -rw-r--r-- | tests/hlsl-intrinsic/scalar-float.slang | 2 | ||||
| -rw-r--r-- | tests/hlsl-intrinsic/scalar-float.slang.expected.txt | 6 |
3 files changed, 12 insertions, 3 deletions
diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang index 05fcee323..3847168ab 100644 --- a/source/slang/hlsl.meta.slang +++ b/source/slang/hlsl.meta.slang @@ -2596,6 +2596,13 @@ T length(vector<T, N> x) return sqrt(dot(x, x)); } +// Scalar float length +__generic<T : __BuiltinFloatingPointType> +T length(T x) +{ + return abs(x); +} + // Linear interpolation __generic<T : __BuiltinFloatingPointType> __target_intrinsic(hlsl) diff --git a/tests/hlsl-intrinsic/scalar-float.slang b/tests/hlsl-intrinsic/scalar-float.slang index a5756b01b..bc9d24a0e 100644 --- a/tests/hlsl-intrinsic/scalar-float.slang +++ b/tests/hlsl-intrinsic/scalar-float.slang @@ -28,6 +28,8 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) ft += acos(f); ft += atan(f); + ft += length(f - 0.5); + ft += atan2(f, 2.0); { diff --git a/tests/hlsl-intrinsic/scalar-float.slang.expected.txt b/tests/hlsl-intrinsic/scalar-float.slang.expected.txt index 2b6c42d94..335393cd1 100644 --- a/tests/hlsl-intrinsic/scalar-float.slang.expected.txt +++ b/tests/hlsl-intrinsic/scalar-float.slang.expected.txt @@ -1,4 +1,4 @@ -FFFFFB7F -FFFFFFAD +FFFFFB87 +FFFFFFB1 3FA -85F +863 |
