Skip to content

Commit 481e76f

Browse files
committed
WIP. Use XOR3 in additional locations.
1 parent c6eeb2a commit 481e76f

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

src/arch/vpclmulqdq.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ impl VpclmulqdqOps {
192192

193193
/// Fold from 4 x 256-bit to 1 x 128-bit
194194
#[inline]
195-
#[target_feature(enable = "avx2,sse2,sse4.1,pclmulqdq")]
195+
#[target_feature(enable = "avx2,sse2,sse4.1,pclmulqdq,avx512f,avx512vl,vpclmulqdq")]
196196
unsafe fn fold_from_256_to_128(
197197
&self,
198198
x: [Simd256; 4],
@@ -242,7 +242,7 @@ impl VpclmulqdqOps {
242242
// Fold and XOR
243243
let folded = self.carryless_mul_00(v128[i], fold_coefficients[i]);
244244
let folded2 = self.carryless_mul_11(v128[i], fold_coefficients[i]);
245-
acc = self.xor_vectors(acc, self.xor_vectors(folded, folded2));
245+
acc = self.xor3_vectors(acc, folded, folded2);
246246
}
247247

248248
acc

src/crc64/algorithm.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ impl EnhancedCrcWidth for crate::structs::Width64 {
114114
let clmul1 = ops.carryless_mul_00(x, mu_poly);
115115
let clmul2 = ops.carryless_mul_10(clmul1, mu_poly);
116116
let clmul1_shifted = ops.shift_left_8(clmul1);
117-
let final_xor = ops.xor_vectors(ops.xor_vectors(clmul2, clmul1_shifted), x);
117+
let final_xor = ops.xor3_vectors(clmul2, clmul1_shifted, x);
118118

119119
ops.extract_u64s(final_xor)[1]
120120
} else {

0 commit comments

Comments
 (0)