Merge pull request #36 from Wunkolo/avx512-vrsqrt14ps

Use more accurate `ReciprocalSqrt` when available
This commit is contained in:
Asriel
2025-03-28 21:01:31 -07:00
committed by GitHub
+7
View File
@@ -114,6 +114,13 @@ internal static class Intrinsics
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector256<float> ReciprocalSqrt(Vector256<float> data) public static Vector256<float> ReciprocalSqrt(Vector256<float> data)
{ {
#if !IS_DETERMINISTIC
// Accurate to 14 bits
if (Avx512F.VL.IsSupported)
return Avx512F.VL.ReciprocalSqrt14(data);
#endif
// Accurate to 12 bits
if (Avx.IsSupported) if (Avx.IsSupported)
return Avx.ReciprocalSqrt(data); return Avx.ReciprocalSqrt(data);