summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/slang/hlsl.meta.slang7
-rw-r--r--tests/hlsl-intrinsic/scalar-float.slang2
-rw-r--r--tests/hlsl-intrinsic/scalar-float.slang.expected.txt6
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