------- Additional Comments From steven at gcc dot gnu dot org 2005-01-27 01:43 ------- GCC can't see that this is a NOP because of the zero_extend: #(insn 34 30 37 (set (reg:DI 0 ax [orig:76 D.1460 ] [76]) # (zero_extend:DI (reg:SI 0 ax [orig:70 D.1460 ] [70]))) 111 {zero_extendsidi2_rex64} (insn_list:REG_DEP_ANTI 30 (insn_list:REG_DEP_TRUE 29 (nil))) # (nil)) mov %eax, %eax # D.1460, D.1460 # 34 zero_extendsidi2_rex64/1 [length = 3] Perhaps we should have a peephole2 for this. I'm curious why we can not eliminate the move earlier on, though.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17387