http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44578
--- Comment #8 from Uros Bizjak <ubizjak at gmail dot com> 2013-04-29 17:13:30 UTC --- Please try following patch, it fixes the testcase for me (note "!" for ?*y alternative): --cut here-- Index: i386.md =================================================================== --- i386.md (revision 198401) +++ i386.md (working copy) @@ -3049,10 +3049,10 @@ (define_insn "*zero_extendsidi2" [(set (match_operand:DI 0 "nonimmediate_operand" - "=r,?r,?o,r ,o,?*Ym,?*y,?*Yi,?*x") + "=r,?r,?o,r ,o,?*Ym,?!*y,?*Yi,?*x") (zero_extend:DI (match_operand:SI 1 "x86_64_zext_operand" - "0 ,rm,r ,rmWz,0,r ,m ,r ,m")))] + "0 ,rm,r ,rmWz,0,r ,m ,r ,m")))] "" { switch (get_attr_type (insn)) --cut here--