typedef VTYPE(ulong, VECT_SIZE) u64x;
#endif
-// this one needs to die
-#define allx(r) r
-
static inline u32 l32_from_64_S (u64 a)
{
const u32 r = (u32) (a);
static inline u64 rotr64_S (const u64 a, const u32 n)
{
- #if (DEVICE_TYPE == DEVICE_TYPE_GPU)
-
- #ifdef amd_bitalign
-
const u32 a0 = h32_from_64_S (a);
const u32 a1 = l32_from_64_S (a);
const u64 r = hl32_to_64_S (t0, t1);
- #else
-
- const u64 r = rotate (a, (u64) 64 - n);
-
- #endif
-
- #else
-
- const u64 r = rotate (a, (u64) 64 - n);
-
- #endif
-
return r;
}
static inline u64x rotr64 (const u64x a, const u32 n)
{
- #if (DEVICE_TYPE == DEVICE_TYPE_GPU)
-
- #ifdef amd_bitalign
const u32x a0 = h32_from_64 (a);
const u32x a1 = l32_from_64 (a);
const u64x r = hl32_to_64 (t0, t1);
- #else
-
- const u64x r = rotate (a, (u64) 64 - n);
-
- #endif
-
- #else
-
- const u64x r = rotate (a, (u64) 64 - n);
-
- #endif
-
return r;
}
static inline u32 __bfe (const u32 a, const u32 b, const u32 c)
{
-#ifdef amd_bfe
return amd_bfe (a, b, c);
-#else
- #define BIT(x) (1 << (x))
- #define BIT_MASK(x) (BIT (x) - 1)
- #define BFE(x,y,z) (((x) >> (y)) & BIT_MASK (z))
-
- return BFE (a, b, c);
-#endif
}
static inline u32 amd_bytealign_S (const u32 a, const u32 b, const u32 c)
{
-#ifdef amd_bytealign
return amd_bytealign (a, b, c);
-#else
- const u64 tmp = ((((u64) a) << 32) | ((u64) b)) >> ((c & 3) * 8);
-
- return (u32) (tmp);
-#endif
}
#endif