using System; namespace Unity.Burst.Intrinsics { /// /// Static methods and properties for X86 instruction intrinsics. /// public unsafe static partial class X86 { private static v128 GenericCSharpLoad(void* ptr) { return *(v128*)ptr; } private static void GenericCSharpStore(void* ptr, v128 val) { *(v128*)ptr = val; } private static sbyte Saturate_To_Int8(int val) { if (val > sbyte.MaxValue) return sbyte.MaxValue; else if (val < sbyte.MinValue) return sbyte.MinValue; return (sbyte)val; } private static byte Saturate_To_UnsignedInt8(int val) { if (val > byte.MaxValue) return byte.MaxValue; else if (val < byte.MinValue) return byte.MinValue; return (byte)val; } private static short Saturate_To_Int16(int val) { if (val > short.MaxValue) return short.MaxValue; else if (val < short.MinValue) return short.MinValue; return (short)val; } private static ushort Saturate_To_UnsignedInt16(int val) { if (val > ushort.MaxValue) return ushort.MaxValue; else if (val < ushort.MinValue) return ushort.MinValue; return (ushort)val; } private static bool IsNaN(uint v) { return (v & 0x7fffffffu) > 0x7f800000; } private static bool IsNaN(ulong v) { return (v & 0x7ffffffffffffffful) > 0x7ff0000000000000ul; } } }