[dpdk-dev,v4,2/5] hash: add new rte_hash_crc_8byte call

Message ID 1e51cc071c1c206dbebf1e714aa80fc37afcf9f4.1416318389.git.e_zhumabekov@sts.kz (mailing list archive)
State Superseded, archived
Headers

Commit Message

Yerden Zhumabekov Nov. 18, 2014, 2:03 p.m. UTC
  SSE4.2 provides _mm_crc32_u64 intrinsic with 8-byte operand.

Signed-off-by: Yerden Zhumabekov <e_zhumabekov@sts.kz>
---
 lib/librte_hash/rte_hash_crc.h |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)
  

Patch

diff --git a/lib/librte_hash/rte_hash_crc.h b/lib/librte_hash/rte_hash_crc.h
index 4d7532a..15f687a 100644
--- a/lib/librte_hash/rte_hash_crc.h
+++ b/lib/librte_hash/rte_hash_crc.h
@@ -380,6 +380,22 @@  rte_hash_crc_4byte(uint32_t data, uint32_t init_val)
 }
 
 /**
+ * Use single crc32 instruction to perform a hash on a 8 byte value.
+ *
+ * @param data
+ *   Data to perform hash on.
+ * @param init_val
+ *   Value to initialise hash generator.
+ * @return
+ *   32bit calculated hash value.
+ */
+static inline uint32_t
+rte_hash_crc_8byte(uint64_t data, uint32_t init_val)
+{
+	return _mm_crc32_u64(init_val, data);
+}
+
+/**
  * Use crc32 instruction to perform a hash.
  *
  * @param data