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

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
It seems like it is one of these which is causing the miscompile:
   const uint64_t s0 = WHIRL_S[get_byte<0>(x0)];
   const uint64_t s1 = WHIRL_S[get_byte<1>(x1)];
   const uint64_t s2 = WHIRL_S[get_byte<2>(x2)];
   const uint64_t s3 = WHIRL_S[get_byte<3>(x3)];
   const uint64_t s4 = WHIRL_S[get_byte<4>(x4)];
   const uint64_t s5 = WHIRL_S[get_byte<5>(x5)];
   const uint64_t s6 = WHIRL_S[get_byte<6>(x6)];
   const uint64_t s7 = WHIRL_S[get_byte<7>(x7)];


not inlining get_byte (via gnu::noinline) allows it to run without a seg fault.

Reply via email to