1#ifndef SIMDUTF_SWAP_BYTES_H
2#define SIMDUTF_SWAP_BYTES_H
7constexpr inline simdutf_warn_unused uint16_t
8u16_swap_bytes(
const uint16_t word) {
9 return uint16_t((word >> 8) | (word << 8));
12constexpr inline simdutf_warn_unused uint32_t
13u32_swap_bytes(
const uint32_t word) {
14 return ((word >> 24) & 0xff) |
15 ((word << 8) & 0xff0000) |
16 ((word >> 8) & 0xff00) |
17 ((word << 24) & 0xff000000);
21template <endianness big_endian>
constexpr uint32_t swap_if_needed(uint32_t c) {
22 return !match_system(big_endian) ? scalar::u32_swap_bytes(c) : c;
27template <endianness big_endian>
constexpr uint16_t swap_if_needed(uint16_t c) {
28 return !match_system(big_endian) ? scalar::u16_swap_bytes(c) : c;