https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87138
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 44626 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44626&action=edit gcc9-pr87138.patch That revision just uncovered a latent bug in expand_mult_const. If val_so_far is above HOST_WIDE_INT_MAX and nmode is wider than 64-bits, it adds an incorrect REG_EQUAL note, says the partial result is equal to const_int 0x8000000000000000, which is a negative value of (__int128) (- LONG_MAX - 1), but it should actually use const_wide_int 0x08000000000000000 instead (or const_double if const_wide_int isn't supported).