https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109109
--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Weird, at least on the current trunk when reverting all 4 i386.md hunks vs. all but the 3_3 one I see differences in both _Z22trx_undo_get_first_recRK11fil_space_tjtjRPK11buf_block_tP5mtr_tP7dberr_t and _ZL18trx_undo_free_pageP10trx_rseg_tbjjP5mtr_tP7dberr_t So, are you sure it is the latter that matters? There indeed is this shift + ior in page_id_t(rseg->space->id, page_no) How many times is this function called? What is rseg->space->id, hdr_page_no and page_no and what values receive the buf_page_get_gen callees?