ref: 566f7310af3a2606f4fe504e9025b3a65fafc906
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;
}