As per #114818 (comment), BitArray.CopyTo could benefit from using the cross platform intrinsic APIs rather than the platform specific ones.
This can be achieved by swapping out these API calls:
Avx512BW.IsSupported -> Vector512.IsHardwareAccelerated
Avx512BW.Shuffle(x, y) -> Vector512.Shuffle(x, y)
Avx512F.And(x, y) -> x & y
Avx512BW.Min(x, y) -> Vector512.Min(x, y)
Avx512F.Store(x, y) -> y.Store(x)
Similar changes could also be made to the Avx2 path (using Vector256) and so on.
As per #114818 (comment),
BitArray.CopyTocould benefit from using the cross platform intrinsic APIs rather than the platform specific ones.This can be achieved by swapping out these API calls:
Avx512BW.IsSupported->Vector512.IsHardwareAcceleratedAvx512BW.Shuffle(x, y)->Vector512.Shuffle(x, y)Avx512F.And(x, y)->x & yAvx512BW.Min(x, y)->Vector512.Min(x, y)Avx512F.Store(x, y)->y.Store(x)Similar changes could also be made to the
Avx2path (usingVector256) and so on.