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]; }