diff options
| author | Ellie Hermaszewska <ellieh@nvidia.com> | 2023-10-27 06:03:34 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-26 15:03:34 -0700 |
| commit | 41e17d370d67a584fbac9bbbe435c057c18715f4 (patch) | |
| tree | 7d262d4734186fda93ea32ab9f1a7c31b7ef2e1c /source/slang | |
| parent | bee74b16eafa64ccc33bb386a1dc753cd6c41a82 (diff) | |
Make the exponent return value from frexp int (#3284)
* Make the exponent return value from frexp int
Fixes https://github.com/shader-slang/slang/issues/3282
* Update slang-llvm.
---------
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang')
| -rw-r--r-- | source/slang/hlsl.meta.slang | 8 |
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); } |
