https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88846
--- Comment #2 from David Edelsohn <dje at gcc dot gnu.org> --- (insn 9 2 7 2 (set (reg:DF 125) (mem/u/c:DF (reg/f:SI 124) [0 S8 A64])) "pr69776-2.c":11:7 503 {*movdf_hardfloat32} (expr_list:REG_DEAD (reg/f:SI 124) (expr_list:REG_EQUIV (mem:DF (reg:SI 127) [2 *qd_4(D)+0 S8 A32]) (nil)))) the actual insn has the read as alias set 0 so aliasing anything but, the REG_EQUIV has set 2 and LRA uses that here that REG_EQUIV is put there by IRA (during the IRA pass, anyway) the reason you don't get an REG_EQUIV added on linux is there already is one (for the 0.0 in there; on AIX we don't have that for some reason) dse1 has put it there (a REG_EQUAL actually)