https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103550

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
#include<bit>
#include<cstdint>

inline constexpr std::uint_least64_t s0(std::uint_least64_t x) noexcept
{
        return std::rotr(x,1)^std::rotr(x,8)^(x>>7);
}

inline constexpr std::uint_least64_t s1(auto x) noexcept
{
        return std::rotr(x,19)^std::rotr(x,61)^(x>>6);
}

void rd(std::uint_least64_t* x) noexcept
{
    x[0]+=s0(x[1])+s1(x[14])+x[9];
}

Reply via email to