22#define ALIGNAS_SSE alignas(SSE_ALIGNMENT)
28template<
typename T> [[nodiscard]]
static ALWAYS_INLINE T unalignedLoad(
const void* p)
31 memcpy(&
t, p,
sizeof(
t));
36 memcpy(p, &
t,
sizeof(
t));
40 return unalignedLoad<uint16_t>(p);
43 return unalignedLoad<uint32_t>(p);
46 return unalignedLoad<uint64_t>(p);
ALWAYS_INLINE uint64_t unalignedLoad64(const void *p)
ALWAYS_INLINE void unalignedStore64(void *p, uint64_t v)
ALWAYS_INLINE uint16_t unalignedLoad16(const void *p)
constexpr size_t SSE_ALIGNMENT
ALWAYS_INLINE void unalignedStore16(void *p, uint16_t v)
ALWAYS_INLINE void unalignedStore32(void *p, uint32_t v)
ALWAYS_INLINE uint32_t unalignedLoad32(const void *p)