diff --git a/ChocolArm64/Instructions/VectorHelper.cs b/ChocolArm64/Instructions/VectorHelper.cs index a3ae5df688..ee8ee1ea90 100644 --- a/ChocolArm64/Instructions/VectorHelper.cs +++ b/ChocolArm64/Instructions/VectorHelper.cs @@ -500,268 +500,78 @@ namespace ChocolArm64.Instructions return Sse41.Insert(vector, Vector128.CreateScalarUnsafe(value), 0b1110); } + // Zero helpers [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorSByteZero() - { - if (Sse2.IsSupported) - { - return Vector128.Zero; - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorSByteZero() => Vector128.Zero; [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorInt16Zero() - { - if (Sse2.IsSupported) - { - return Vector128.Zero; - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorInt16Zero() => Vector128.Zero; [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorInt32Zero() - { - if (Sse2.IsSupported) - { - return Vector128.Zero; - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorInt32Zero() => Vector128.Zero; [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorInt64Zero() - { - if (Sse2.IsSupported) - { - return Vector128.Zero; - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorInt64Zero() => Vector128.Zero; [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorSingleZero() - { - if (Sse.IsSupported) - { - return Vector128.Zero; - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorSingleZero() => Vector128.Zero; [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorDoubleZero() - { - if (Sse2.IsSupported) - { - return Vector128.Zero; - } + public static Vector128 VectorDoubleZero() => Vector128.Zero; - throw new PlatformNotSupportedException(); - } + // Cast helpers + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Vector128 VectorSingleToSByte(Vector128 vector) => vector.As(); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorSingleToSByte(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorSingleToInt16(Vector128 vector) => vector.As(); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorSingleToInt16(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorSingleToInt32(Vector128 vector) => vector.As(); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorSingleToInt32(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorSingleToInt64(Vector128 vector) => vector.As(); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorSingleToInt64(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorSingleToByte(Vector128 vector) => vector.As(); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorSingleToByte(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorSingleToUInt16(Vector128 vector) => vector.As(); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorSingleToUInt16(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorSingleToUInt32(Vector128 vector) => vector.As(); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorSingleToUInt32(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorSingleToUInt64(Vector128 vector) => vector.As(); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorSingleToUInt64(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorSingleToDouble(Vector128 vector) => vector.As(); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorSingleToDouble(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorSByteToSingle(Vector128 vector) => vector.As(); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorSByteToSingle(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorInt16ToSingle(Vector128 vector) => vector.As(); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorInt16ToSingle(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorInt32ToSingle(Vector128 vector) => vector.As(); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorInt32ToSingle(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorInt64ToSingle(Vector128 vector) => vector.As(); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorInt64ToSingle(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorByteToSingle(Vector128 vector) => vector.As(); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorByteToSingle(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorUInt16ToSingle(Vector128 vector) => vector.As(); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorUInt16ToSingle(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorUInt32ToSingle(Vector128 vector) => vector.As(); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorUInt32ToSingle(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorUInt64ToSingle(Vector128 vector) => vector.As(); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorUInt64ToSingle(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vector128 VectorDoubleToSingle(Vector128 vector) - { - if (Sse.IsSupported) - { - return vector.As(); - } - - throw new PlatformNotSupportedException(); - } + public static Vector128 VectorDoubleToSingle(Vector128 vector) => vector.As(); } }