diff --git a/src/Kalk.Core/Modules/HardwareIntrinsics/IntrinsicsModuleBase.cs b/src/Kalk.Core/Modules/HardwareIntrinsics/IntrinsicsModuleBase.cs index 2045de7..b5f10cc 100644 --- a/src/Kalk.Core/Modules/HardwareIntrinsics/IntrinsicsModuleBase.cs +++ b/src/Kalk.Core/Modules/HardwareIntrinsics/IntrinsicsModuleBase.cs @@ -153,6 +153,22 @@ private T ToArg(int argIndex, object value, int align = 0) where T : u var dimension = targetSize / baseElementSize; if (dimension == 1) { + // Handle Vector64 + if (typeof(System.Runtime.Intrinsics.Vector64) == typeof(T)) + { + var tValue = Engine.ToObject(argIndex, value); + return (T)(object)(System.Runtime.Intrinsics.Vector64.Create(tValue)); + } + if (typeof(System.Runtime.Intrinsics.Vector64) == typeof(T)) + { + var tValue = Engine.ToObject(argIndex, value); + return (T)(object)(System.Runtime.Intrinsics.Vector64.Create(tValue)); + } + if (typeof(System.Runtime.Intrinsics.Vector64) == typeof(T)) + { + var tValue = Engine.ToObject(argIndex, value); + return (T)(object)(System.Runtime.Intrinsics.Vector64.Create(tValue)); + } return Engine.ToObject(argIndex, value); } else