diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/core.meta.slang | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/source/slang/core.meta.slang b/source/slang/core.meta.slang index 478487250..249a084b1 100644 --- a/source/slang/core.meta.slang +++ b/source/slang/core.meta.slang @@ -1642,6 +1642,17 @@ extension vector<T,N> : IInteger [__unsafeForceInlineEarly] __init(int v) { this = vector<T,N>(T(v)); } [OverloadRank(-1)] [__unsafeForceInlineEarly] __init(int64_t v) { this = vector<T,N>(T(v)); } + + [OverloadRank(-1)] + __implicit_conversion($(kConversionCost_Default)) + __intrinsic_op($(kIROp_CastFloatToInt)) + __generic<U:__BuiltinFloatingPointType> + __init(vector<U, N> other); + + [OverloadRank(-1)] + __intrinsic_op($(kIROp_IntCast)) + __generic<U:__BuiltinIntegerType> + __init(vector<U, N> other); } __generic<T:__BuiltinFloatingPointType, let N : int> @@ -1660,6 +1671,17 @@ extension vector<T,N> : IFloat [__unsafeForceInlineEarly] float toFloat() { return __realCast<float>(this[0]); } [OverloadRank(-1)] + __implicit_conversion($(kConversionCost_Default)) + __intrinsic_op($(kIROp_FloatCast)) + __generic<U:__BuiltinFloatingPointType> + __init(vector<U, N> other); + + [OverloadRank(-1)] + __intrinsic_op($(kIROp_CastIntToFloat)) + __generic<U:__BuiltinIntegerType> + __init(vector<U, N> other); + + [OverloadRank(-1)] [__unsafeForceInlineEarly] __init(int v) { this = vector<T,N>(T(v)); } [OverloadRank(-1)] [__unsafeForceInlineEarly] __init(float v) { this = vector<T,N>(T(v)); } |
