diff options
| -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 |
