http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54682
--- Comment #3 from Oleg Endo <olegendo at gcc dot gnu.org> --- A related case from CSiBE, linux-2.4.23-pre3-testplatform/net/ipv4/igmp.c, function _add_grhead: .L275: mov #0,r0 mov.b r11,@r8 mov.b r0,@(1,r8) mov #0,r0 << redundant constant load mov.w r0,@(2,r8) mov.l @(4,r10),r1 mov.l r1,@(4,r8) mov.l @(32,r9),r1 mov.w @(6,r1),r0 The redundant load of 'r0' with constant '0' is probably introduced by reload. If converted to 'mov r0,r0' it would probably be eliminated automatically.