|
|
@ -621,6 +621,8 @@ namespace SixLabors.ImageSharp |
|
|
internal static unsafe void ByteToNormalizedFloat( |
|
|
internal static unsafe void ByteToNormalizedFloat( |
|
|
ReadOnlySpan<byte> source, |
|
|
ReadOnlySpan<byte> source, |
|
|
Span<float> dest) |
|
|
Span<float> dest) |
|
|
|
|
|
{ |
|
|
|
|
|
fixed (byte* sourceBase = source) |
|
|
{ |
|
|
{ |
|
|
if (Avx2.IsSupported) |
|
|
if (Avx2.IsSupported) |
|
|
{ |
|
|
{ |
|
|
@ -628,8 +630,6 @@ namespace SixLabors.ImageSharp |
|
|
|
|
|
|
|
|
int n = dest.Length / Vector256<byte>.Count; |
|
|
int n = dest.Length / Vector256<byte>.Count; |
|
|
|
|
|
|
|
|
byte* sourceBase = (byte*)Unsafe.AsPointer(ref MemoryMarshal.GetReference(source)); |
|
|
|
|
|
|
|
|
|
|
|
ref Vector256<float> destBase = |
|
|
ref Vector256<float> destBase = |
|
|
ref Unsafe.As<float, Vector256<float>>(ref MemoryMarshal.GetReference(dest)); |
|
|
ref Unsafe.As<float, Vector256<float>>(ref MemoryMarshal.GetReference(dest)); |
|
|
|
|
|
|
|
|
@ -663,8 +663,6 @@ namespace SixLabors.ImageSharp |
|
|
|
|
|
|
|
|
int n = dest.Length / Vector128<byte>.Count; |
|
|
int n = dest.Length / Vector128<byte>.Count; |
|
|
|
|
|
|
|
|
byte* sourceBase = (byte*)Unsafe.AsPointer(ref MemoryMarshal.GetReference(source)); |
|
|
|
|
|
|
|
|
|
|
|
ref Vector128<float> destBase = |
|
|
ref Vector128<float> destBase = |
|
|
ref Unsafe.As<float, Vector128<float>>(ref MemoryMarshal.GetReference(dest)); |
|
|
ref Unsafe.As<float, Vector128<float>>(ref MemoryMarshal.GetReference(dest)); |
|
|
|
|
|
|
|
|
@ -709,6 +707,7 @@ namespace SixLabors.ImageSharp |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
/// <see cref="NormalizedFloatToByteSaturate"/> as many elements as possible, slicing them down (keeping the remainder).
|
|
|
/// <see cref="NormalizedFloatToByteSaturate"/> as many elements as possible, slicing them down (keeping the remainder).
|
|
|
|