http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2014-01-19 CC| |uros at gcc dot gnu.org Summary|Improve REE for implicit |ix86_avoid_lea_for_addr is |SI->DI zero-extend |buggy Ever confirmed|0 |1 --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Ah, indeed, it is split because of the: (define_insn_and_split "*lea<mode>" [(set (match_operand:SWI48 0 "register_operand" "=r") (match_operand:SWI48 1 "address_no_seg_operand" "Ts"))] splitter. I'd say it is a bug in ix86_avoid_lea_for_addr, that shouldn't have returned true in this case, where the second operand is (zero_extend:DI (reg:SI)).