summaryrefslogtreecommitdiff
path: root/source/slang
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang')
-rw-r--r--source/slang/hlsl.meta.slang8
1 files changed, 5 insertions, 3 deletions
diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang
index 1d5c68a0d..92ccbe9c5 100644
--- a/source/slang/hlsl.meta.slang
+++ b/source/slang/hlsl.meta.slang
@@ -2888,18 +2888,20 @@ matrix<T, N, M> frac(matrix<T, N, M> x)
// Split float into mantissa and exponent
__generic<T : __BuiltinFloatingPointType>
+__target_intrinsic(cpp, "$P_frexp($0, $1)")
+__target_intrinsic(cuda, "$P_frexp($0, $1)")
__target_intrinsic(hlsl)
__target_intrinsic(glsl)
__target_intrinsic(spirv, "OpExtInst resultType resultId glsl450 Frexp _0 _1")
[__readNone]
-T frexp(T x, out T exp);
+T frexp(T x, out int exp);
__generic<T : __BuiltinFloatingPointType, let N : int>
__target_intrinsic(hlsl)
__target_intrinsic(glsl)
__target_intrinsic(spirv, "OpExtInst resultType resultId glsl450 Frexp _0 _1")
[__readNone]
-vector<T, N> frexp(vector<T, N> x, out vector<T, N> exp)
+vector<T, N> frexp(vector<T, N> x, out vector<int, N> exp)
{
VECTOR_MAP_BINARY(T, N, frexp, x, exp);
}
@@ -2907,7 +2909,7 @@ vector<T, N> frexp(vector<T, N> x, out vector<T, N> exp)
__generic<T : __BuiltinFloatingPointType, let N : int, let M : int, let L : int>
__target_intrinsic(hlsl)
[__readNone]
-matrix<T, N, M> frexp(matrix<T, N, M> x, out matrix<T, N, M, L> exp)
+matrix<T, N, M> frexp(matrix<T, N, M> x, out matrix<int, N, M, L> exp)
{
MATRIX_MAP_BINARY(T, N, M, frexp, x, exp);
}