http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59142
--- Comment #7 from Charles Baylis <charles.baylis at linaro dot org> --- Comparing reduced.cpp.153r.cse1 in r172837 and the previous commit. --- reduced.cpp.153r.cse1 from gcc trunk r172835 [works] (insn 18 17 19 2 (parallel [ (set (mem/s:SI (reg/f:SI 138) [5 MEM[(struct A *)0B]+0 S4 A32]) (reg:SI 0 r0)) (set (mem/s:SI (plus:SI (reg/f:SI 138) (const_int 4 [0x4])) [5 MEM[(struct A *)0B]+4 S4 A32]) (reg:SI 1 r1)) ]) reference/reduced.cpp:6 373 {*stm2_ia} (nil)) --- reduced.cpp.153r.cse1 from gcc trunk r172837 [has ICE] (insn 24 23 25 2 (parallel [ (set (mem/s:SI (reg/f:SI 141) [5 MEM[(struct A *)0B]+0 S4 A32]) (reg:SI 0 r0)) (set (mem/s:SI (plus:SI (reg/f:SI 141) (const_int 4 [0x4])) [5 MEM[(struct A *)0B]+4 S4 A32]) (reg/f:SI 26 afp)) <--- r1 changed to afp here ]) reference/reduced.cpp:6 373 {*stm2_ia} (nil)) This gets re-written later: -- reduced.cpp.190r.ira from gcc trunk r172837 (insn 24 29 28 2 (parallel [ (set (mem/s:SI (reg/f:SI 4 r4 [141]) [5 MEM[(struct A *)0B]+0 S4 A32 ]) (reg:SI 0 r0)) (set (mem/s:SI (plus:SI (reg/f:SI 4 r4 [141]) (const_int 4 [0x4])) [5 MEM[(struct A *)0B]+4 S4 A32]) (plus:SI (reg/f:SI 13 sp) <---\__ was aftp (const_int 1048 [0x418]))) <---/ ]) reference/reduced.cpp:6 373 {*stm2_ia} (nil)) The (plus:SI (reg/f:SI 13 sp) (const_int 1048 [0x418])) is the invalid operand which causes the ICE during final.