Re: [PATCH 4/8] lib/crc: Turn NEON intrin sics crc64 implementation into common code
Josh Law <[email protected]>
| Newsgroups | gmane.linux.kernel.cryptoapi,gmane.linux.ports.arm.kernel,gmane.linux.raid |
|---|---|
| Message-ID | <[email protected]> |
Hi ard.
diff --git a/lib/crc/arm64/crc64-neon.h b/lib/crc/arm64/crc64-neon.h
new file mode 100644
index 000000000000..fcd5b1e6f812
--- /dev/null
+++ b/lib/crc/arm64/crc64-neon.h
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+static inline uint64x2_t pmull64(uint64x2_t a, uint64x2_t b)
+{
return vreinterpretq_u64_p128(vmull_p64(vgetq_lane_u64(a, 0),
vgetq_lane_u64(b, 0)));
+}
+static inline uint64x2_t pmull64_high(uint64x2_t a, uint64x2_t b)
+{
poly64x2_t l = vreinterpretq_p64_u64(a);
poly64x2_t m = vreinterpretq_p64_u64(b);
return vreinterpretq_u64_p128(vmull_high_p64(l, m));
+}
Makes sense.
Moving these polynomial multiplication wrappers into their own header is
good.
Reviewed-by: Josh Law <[email protected]>
Thanks!