summaryrefslogtreecommitdiffstats
path: root/include/zfs_fletcher.h
diff options
context:
space:
mode:
authorRomain Dolbeau <[email protected]>2019-10-30 20:26:14 +0100
committerBrian Behlendorf <[email protected]>2019-10-30 12:26:14 -0700
commit0b2a642351f375cb9be3d2569a0ac0417340c741 (patch)
tree5c5e58e318f33f44220293d35690314eaec85e7a /include/zfs_fletcher.h
parentbae11ba8dc1dd992643dd0ab0b5cc3b3cc197fe9 (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.h4
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