#[inline(always)]
pub fn likely(condition: bool) -> bool {
#[cold]
fn cold() {}
if !condition {
cold();
}
condition
}
#[inline(always)]
pub fn unlikely(condition: bool) -> bool {
#[cold]
fn cold() {}
if condition {
cold();
}
condition
}
#[inline(always)]
pub unsafe fn prefetch_read<T>(ptr: *const T) {
#[cfg(target_arch = "x86_64")]
{
use std::arch::x86_64::{_mm_prefetch, _MM_HINT_T0};
_mm_prefetch(ptr as *const i8, _MM_HINT_T0);
}
}
#[inline(always)]
pub unsafe fn prefetch_write<T>(ptr: *const T) {
#[cfg(target_arch = "x86_64")]
{
use std::arch::x86_64::{_mm_prefetch, _MM_HINT_T1};
_mm_prefetch(ptr as *const i8, _MM_HINT_T1);
}
}