Skip to content

Commit 293e8b0

Browse files
committed
simd: drop 2 unnecessary instructions
1 parent efcdae7 commit 293e8b0

File tree

2 files changed

+6
-7
lines changed

2 files changed

+6
-7
lines changed

src/simd/avx2.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,9 @@ unsafe fn match_header_value_char_32_avx(buf: &[u8]) -> usize {
108108
let tab = _mm256_cmpeq_epi8(dat, TAB);
109109
let del = _mm256_cmpeq_epi8(dat, DEL);
110110
let bit = _mm256_andnot_si256(del, _mm256_or_si256(low, tab));
111-
let rev = _mm256_cmpeq_epi8(bit, _mm256_setzero_si256());
112-
let res = _mm256_movemask_epi8(rev) as u32;
113-
114-
res.trailing_zeros() as usize
111+
let res = _mm256_movemask_epi8(bit) as u32;
112+
// TODO: use .trailing_ones() once MSRV >= 1.46
113+
(!res).trailing_zeros() as usize
115114
}
116115

117116
#[test]

src/simd/sse42.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,10 @@ unsafe fn match_header_value_char_16_sse(buf: &[u8]) -> usize {
9797
let tab = _mm_cmpeq_epi8(dat, TAB);
9898
let del = _mm_cmpeq_epi8(dat, DEL);
9999
let bit = _mm_andnot_si128(del, _mm_or_si128(low, tab));
100-
let rev = _mm_cmpeq_epi8(bit, _mm_setzero_si128());
101-
let res = _mm_movemask_epi8(rev) as u16;
100+
let res = _mm_movemask_epi8(bit) as u16;
102101

103-
res.trailing_zeros() as usize
102+
// TODO: use .trailing_ones() once MSRV >= 1.46
103+
(!res).trailing_zeros() as usize
104104
}
105105

106106
#[test]

0 commit comments

Comments
 (0)