Fixed uint64_rol/r.

This commit is contained in:
Branimir Karadžić
2018-07-22 15:44:36 -07:00
parent ccb2be0f7c
commit e55bdf6e64
2 changed files with 14 additions and 2 deletions

View File

@@ -677,12 +677,12 @@ namespace bx
inline uint64_t uint64_rol(uint64_t _a, int _sa)
{
return ( _a << _sa) | (_a >> (32-_sa) );
return ( _a << _sa) | (_a >> (64-_sa) );
}
inline uint64_t uint64_ror(uint64_t _a, int _sa)
{
return ( _a >> _sa) | (_a << (32-_sa) );
return ( _a >> _sa) | (_a << (64-_sa) );
}
inline uint64_t uint64_add(uint64_t _a, uint64_t _b)

View File

@@ -83,3 +83,15 @@ TEST_CASE("uint32_testpow2", "")
}
}
}
TEST_CASE("uint32_roX", "")
{
REQUIRE(bx::uint32_rol(0x80000000, 1) == 1);
REQUIRE(bx::uint32_ror(1, 1) == 0x80000000);
}
TEST_CASE("uint64_roX", "")
{
REQUIRE(bx::uint64_rol(0x8000000000000000, 1) == 1);
REQUIRE(bx::uint64_ror(1, 1) == 0x8000000000000000);
}