diff options
author | Romain Dolbeau <[email protected]> | 2019-10-30 20:26:14 +0100 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2019-10-30 12:26:14 -0700 |
commit | 0b2a642351f375cb9be3d2569a0ac0417340c741 (patch) | |
tree | 5c5e58e318f33f44220293d35690314eaec85e7a /module/zcommon/zfs_fletcher.c | |
parent | bae11ba8dc1dd992643dd0ab0b5cc3b3cc197fe9 (diff) |
Add AVX512BW variant of fletcher
It is much faster than AVX512F when byteswapping on Skylake-SP
and newer, as we can do the byteswap in a single vshufb instead
of many instructions.
Reviewed by: Gvozden Neskovic <[email protected]>
Reviewed-by: Chunwei Chen <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Romain Dolbeau <[email protected]>
Closes #9517
Diffstat (limited to 'module/zcommon/zfs_fletcher.c')
-rw-r--r-- | module/zcommon/zfs_fletcher.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/module/zcommon/zfs_fletcher.c b/module/zcommon/zfs_fletcher.c index 1280ace31..f955dc8d9 100644 --- a/module/zcommon/zfs_fletcher.c +++ b/module/zcommon/zfs_fletcher.c @@ -184,6 +184,9 @@ static const fletcher_4_ops_t *fletcher_4_impls[] = { #if defined(__x86_64) && defined(HAVE_AVX512F) &fletcher_4_avx512f_ops, #endif +#if defined(__x86_64) && defined(HAVE_AVX512BW) + &fletcher_4_avx512bw_ops, +#endif #if defined(__aarch64__) &fletcher_4_aarch64_neon_ops, #endif |