internal static void ToVector4 <TPixel>(
                Configuration configuration,
                PixelOperations <TPixel> pixelOperations,
                ReadOnlySpan <TPixel> sourcePixels,
                Span <Vector4> destVectors,
                PixelConversionModifiers modifiers)
                where TPixel : struct, IPixel <TPixel>
            {
                Guard.NotNull(configuration, nameof(configuration));
                Guard.DestinationShouldNotBeTooShort(sourcePixels, destVectors, nameof(destVectors));

                int count = sourcePixels.Length;

                // Not worth for small buffers:
                if (count < Vector4ConversionThreshold)
                {
                    Default.UnsafeToVector4(sourcePixels, destVectors, modifiers);

                    return;
                }

                // Using the last quarter of 'destVectors' as a temporary buffer to avoid allocation:
                int countWithoutLastItem                      = count - 1;
                ReadOnlySpan <TPixel> reducedSource           = sourcePixels.Slice(0, countWithoutLastItem);
                Span <Rgba32>         lastQuarterOfDestBuffer = MemoryMarshal.Cast <Vector4, Rgba32>(destVectors).Slice((3 * count) + 1, countWithoutLastItem);

                pixelOperations.ToRgba32(configuration, reducedSource, lastQuarterOfDestBuffer);

                // 'destVectors' and 'lastQuarterOfDestBuffer' are overlapping buffers,
                // but we are always reading/writing at different positions:
                SimdUtils.BulkConvertByteToNormalizedFloat(
                    MemoryMarshal.Cast <Rgba32, byte>(lastQuarterOfDestBuffer),
                    MemoryMarshal.Cast <Vector4, float>(destVectors.Slice(0, countWithoutLastItem)));

                destVectors[countWithoutLastItem] = sourcePixels[countWithoutLastItem].ToVector4();

                // TODO: Investigate optimized 1-pass approach!
                ApplyForwardConversionModifiers(destVectors, modifiers);
            }