#pragma once #include static inline uint32_t sign_extend(uint32_t word, uint32_t size) { const uint32_t mask = 1U << (size - 1); return (word ^ mask) - mask; } static inline uint64_t sign_extend_64(uint64_t word, uint32_t size) { const uint64_t mask = 1ULL << (size - 1); return (word ^ mask) - mask; }