Skip to content
Snippets Groups Projects
Commit b4387ac0 authored by psychocrypt's avatar psychocrypt
Browse files

fix right bitshift in `amd_bitalign`

In the current implementation the bit align is using signed integer which results in pulling in
ones in the case the sign bit is set.

- cast to unsigned integer before using bitshift
parent 2e801faf
No related branches found
No related tags found
No related merge requests found
...@@ -35,8 +35,8 @@ R"===( ...@@ -35,8 +35,8 @@ R"===(
inline uint2 amd_bitalign( const uint2 src0, const uint2 src1, const uint src2) inline uint2 amd_bitalign( const uint2 src0, const uint2 src1, const uint src2)
{ {
uint2 result; uint2 result;
result.s0 = (uint) (((((long)src0.s0) << 32) | (long)src1.s0) >> (src2)); result.s0 = (uint) (((((ulong)src0.s0) << 32) | (ulong)src1.s0) >> (src2));
result.s1 = (uint) (((((long)src0.s1) << 32) | (long)src1.s1) >> (src2)); result.s1 = (uint) (((((ulong)src0.s1) << 32) | (ulong)src1.s1) >> (src2));
return result; return result;
} }
#endif #endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment