diff options
| author | bprb <58124331+bprb@users.noreply.github.com> | 2024-11-20 14:52:34 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-20 14:52:34 -0800 |
| commit | 4f6b928f54d2cc7f1fb6f40c16be7754b2ddcdc6 (patch) | |
| tree | f9e885b0a79f8f3b398c691eb4855da670119438 | |
| parent | 54ec7553c20673c541298ac39b95ccd25542aa7a (diff) | |
Add Matrix overload for exp10() core lib function (#5620)
Fixes #5579
| -rw-r--r-- | source/slang/hlsl.meta.slang | 12 | ||||
| -rw-r--r-- | tests/hlsl-intrinsic/matrix-double.slang | 1 | ||||
| -rw-r--r-- | tests/hlsl-intrinsic/matrix-double.slang.expected.txt | 8 | ||||
| -rw-r--r-- | tests/hlsl-intrinsic/matrix-float.slang | 1 | ||||
| -rw-r--r-- | tests/hlsl-intrinsic/matrix-float.slang.expected.txt | 8 |
5 files changed, 22 insertions, 8 deletions
diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang index 256f65224..7eb4af135 100644 --- a/source/slang/hlsl.meta.slang +++ b/source/slang/hlsl.meta.slang @@ -8245,6 +8245,18 @@ vector<T,N> exp10(vector<T,N> x) } } +__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> +[__readNone] +[require(cpp_cuda_glsl_hlsl_metal_spirv_wgsl, sm_4_0_version)] +matrix<T,N,M> exp10(matrix<T,N,M> x) +{ + __target_switch + { + default: + MATRIX_MAP_UNARY(T, N, M, exp10, x); + } +} + /// Convert 16-bit float stored in low bits of integer /// @category conversion Conversion functions diff --git a/tests/hlsl-intrinsic/matrix-double.slang b/tests/hlsl-intrinsic/matrix-double.slang index 6df89bb40..a21574855 100644 --- a/tests/hlsl-intrinsic/matrix-double.slang +++ b/tests/hlsl-intrinsic/matrix-double.slang @@ -91,6 +91,7 @@ void test1(inout FloatMatrix ft, inout FloatMatrix f, int idx) ft += exp2(f); ft += exp(f); + ft += exp10(f); ft += frac(f * makeFloatMatrix(3)); ft += ceil(f * makeFloatMatrix(5) - makeFloatMatrix(3)); diff --git a/tests/hlsl-intrinsic/matrix-double.slang.expected.txt b/tests/hlsl-intrinsic/matrix-double.slang.expected.txt index 0067ec549..0f4ef5262 100644 --- a/tests/hlsl-intrinsic/matrix-double.slang.expected.txt +++ b/tests/hlsl-intrinsic/matrix-double.slang.expected.txt @@ -1,5 +1,5 @@ type: double --363.570686 --128.281824 -134.883405 -383.294965 +-359.422651 +-120.905458 +148.000645 +406.621082 diff --git a/tests/hlsl-intrinsic/matrix-float.slang b/tests/hlsl-intrinsic/matrix-float.slang index f61097a0c..4cd35bc65 100644 --- a/tests/hlsl-intrinsic/matrix-float.slang +++ b/tests/hlsl-intrinsic/matrix-float.slang @@ -96,6 +96,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) ft += exp2(f); ft += exp(f); + ft += exp10(f); ft += frac(f * makeFloatMatrix(3)); ft += ceil(f * makeFloatMatrix(5) - makeFloatMatrix(3)); diff --git a/tests/hlsl-intrinsic/matrix-float.slang.expected.txt b/tests/hlsl-intrinsic/matrix-float.slang.expected.txt index d7c998048..06f7b94a8 100644 --- a/tests/hlsl-intrinsic/matrix-float.slang.expected.txt +++ b/tests/hlsl-intrinsic/matrix-float.slang.expected.txt @@ -1,5 +1,5 @@ type: float --916.058716 --315.978027 -358.120331 -1035.545532 +-905.656372 +-297.479736 +391.015503 +1094.042358 |
