https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108934
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Yes GCC 11.x produces wrong code too, remove constexpr from uint64_x_2_t_to_ld and temp_uint64_x_2_t_to_ld to see that: uint64_x_2_t_to_ld: .long 1 .long 0 .long 0 .long 0 temp_uint64_x_2_t_to_ld: .long 1 .long 0 .long 0 .long 0