summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2023-07-06 10:50:39 -0400
committerGitHub <noreply@github.com>2023-07-06 10:50:39 -0400
commit4a88139a86596fd1a546af84ab3210ea3013c58d (patch)
tree06d6a539aad1efd8a505a6b5e7af96a6f6a30336
parent946a1b294e1e511d4bb32817d0c82828b5305113 (diff)
Add support for length for scalar floating point types. (#2965)
-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