ref: 10e8e99e07e8bfc3d2fc68efe95a572e8adc65a0
dir: /bitreverse.c/
#include "platform.h" uint32_t __builtin_bitreverse32(uint32_t x) { uint32_t m; x = (x >> 16) | (x << 16); m = 0xff00ff00; x = ((x & m) >> 8) | ((x & ~m) << 8); m = 0xf0f0f0f0; x = ((x & m) >> 4) | ((x & ~m) << 4); m = 0xcccccccc; x = ((x & m) >> 2) | ((x & ~m) << 2); m = 0xaaaaaaaa; x = ((x & m) >> 1) | ((x & ~m) << 1); return x; }