#[cfg(feature = "unchecked")]
#[inline(always)]
pub(crate) unsafe fn lz_extend_raw(
strptr: *const u8,
matchptr: *const u8,
start_len: u32,
max_len: u32,
) -> u32 {
unsafe {
let mut len = start_len;
while len + 8 <= max_len {
let off = len as usize;
let sw = core::ptr::read_unaligned(strptr.add(off) as *const u64);
let mw = core::ptr::read_unaligned(matchptr.add(off) as *const u64);
let xor = sw ^ mw;
if xor != 0 {
len += xor.trailing_zeros() >> 3;
return len.min(max_len);
}
len += 8;
}
while len < max_len && *strptr.add(len as usize) == *matchptr.add(len as usize) {
len += 1;
}
len
}
}