https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98931
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- At the end of shorten_branches the label the doloop_end insn wants to jump to has (gdb) p insn_addresses_[2361] $1 = (int &) @0x2e264ac: 22 and the doloop_end is (gdb) p insn_addresses_[2397] $2 = (int &) @0x2e2653c: 7150 If that is in bytes, then it is conservatively correct (perhaps too large), if it is in 2 byte units, then it is not accurate.