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 /include/zfs_fletcher.h | |
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 'include/zfs_fletcher.h')
-rw-r--r-- | include/zfs_fletcher.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/zfs_fletcher.h b/include/zfs_fletcher.h index 5c7a61c56..9e8b2cf7c 100644 --- a/include/zfs_fletcher.h +++ b/include/zfs_fletcher.h @@ -143,6 +143,10 @@ extern const fletcher_4_ops_t fletcher_4_avx2_ops; extern const fletcher_4_ops_t fletcher_4_avx512f_ops; #endif +#if defined(__x86_64) && defined(HAVE_AVX512BW) +extern const fletcher_4_ops_t fletcher_4_avx512bw_ops; +#endif + #if defined(__aarch64__) extern const fletcher_4_ops_t fletcher_4_aarch64_neon_ops; #endif |