summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/slang/core.meta.slang22
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)); }