Commit 7b4323e1 authored by Junekey Jeon's avatar Junekey Jeon Committed by Victor Zverovich

Add rotr

parent f1bd6f77
...@@ -816,6 +816,16 @@ struct uint128_wrapper { ...@@ -816,6 +816,16 @@ struct uint128_wrapper {
} }
}; };
// Compilers should be able to optimize this into the ror instruction.
inline std::uint32_t rotr(uint32_t n, uint32_t r) noexcept {
r &= 31;
return (n >> r) | (n << (32 - r));
}
inline std::uint64_t rotr(uint64_t n, uint32_t r) noexcept {
r &= 63;
return (n >> r) | (n << (64 - r));
}
// Implementation of Dragonbox algorithm: https://github.com/jk-jeon/dragonbox. // Implementation of Dragonbox algorithm: https://github.com/jk-jeon/dragonbox.
namespace dragonbox { namespace dragonbox {
// Computes 128-bit result of multiplication of two 64-bit unsigned integers. // Computes 128-bit result of multiplication of two 64-bit unsigned integers.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment