/* bit manipulation macros needed for e500 SPE */
#define EV_BITREVERSE16(x) \
- (((x) & 0x0001) << 15) \
- | (((x) & 0x0002) << 13) \
- | (((x) & 0x0004) << 11) \
- | (((x) & 0x0008) << 9) \
- | (((x) & 0x0010) << 7) \
- | (((x) & 0x0020) << 5) \
- | (((x) & 0x0040) << 3) \
- | (((x) & 0x0080) << 1) \
- | (((x) & 0x0100) >> 1) \
- | (((x) & 0x0200) >> 3) \
- | (((x) & 0x0400) >> 5) \
- | (((x) & 0x0800) >> 7) \
- | (((x) & 0x1000) >> 9) \
- | (((x) & 0x2000) >> 11) \
- | (((x) & 0x4000) >> 13) \
- | (((x) & 0x8000) >> 15)
+ ((((x) & 0x0001) << 15) \
+ | (((x) & 0x0002) << 13) \
+ | (((x) & 0x0004) << 11) \
+ | (((x) & 0x0008) << 9) \
+ | (((x) & 0x0010) << 7) \
+ | (((x) & 0x0020) << 5) \
+ | (((x) & 0x0040) << 3) \
+ | (((x) & 0x0080) << 1) \
+ | (((x) & 0x0100) >> 1) \
+ | (((x) & 0x0200) >> 3) \
+ | (((x) & 0x0400) >> 5) \
+ | (((x) & 0x0800) >> 7) \
+ | (((x) & 0x1000) >> 9) \
+ | (((x) & 0x2000) >> 11) \
+ | (((x) & 0x4000) >> 13) \
+ | (((x) & 0x8000) >> 15))
/* saturation helpers */
#define EV_MUL16_SSF(a,b) ((int64_t)((int32_t)(int16_t)(a) * (int32_t)(int16_t)(b)) << 1)