summaryrefslogtreecommitdiffstats
path: root/include/zfs_fletcher.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/zfs_fletcher.h')
-rw-r--r--include/zfs_fletcher.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/zfs_fletcher.h b/include/zfs_fletcher.h
index 85c2b5a7e..1f113ae2f 100644
--- a/include/zfs_fletcher.h
+++ b/include/zfs_fletcher.h
@@ -77,6 +77,10 @@ typedef struct zfs_fletcher_avx512 {
uint64_t v[8] __attribute__((aligned(64)));
} zfs_fletcher_avx512_t;
+typedef struct zfs_fletcher_aarch64_neon {
+ uint64_t v[2] __attribute__((aligned(16)));
+} zfs_fletcher_aarch64_neon_t;
+
typedef union fletcher_4_ctx {
zio_cksum_t scalar;
@@ -90,6 +94,9 @@ typedef union fletcher_4_ctx {
#if defined(__x86_64) && defined(HAVE_AVX512F)
zfs_fletcher_avx512_t avx512[4];
#endif
+#if defined(__aarch64__)
+ zfs_fletcher_aarch64_neon_t aarch64_neon[4];
+#endif
} fletcher_4_ctx_t;
/*
@@ -128,6 +135,10 @@ extern const fletcher_4_ops_t fletcher_4_avx2_ops;
extern const fletcher_4_ops_t fletcher_4_avx512f_ops;
#endif
+#if defined(__aarch64__)
+extern const fletcher_4_ops_t fletcher_4_aarch64_neon_ops;
+#endif
+
#ifdef __cplusplus
}
#endif