https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64795
Uroš Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2015-01-26 Assignee|unassigned at gcc dot gnu.org |ubizjak at gmail dot com Ever confirmed|0 |1 --- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> --- The failed insn is: #(insn 8 6 13 2 (set (mem/f/j/c:DI (symbol_ref:DI ("_ZZ4mainE1a") [flags 0x2] <var_decl 0x7fe4d00f2900 a>) [0 a.pf+0 S8 A64]) # (symbol_ref:DI ("_ZL3fn21s") [flags 0x3] <function_decl 0x7fe4d02dd0d8 fn2>)) t.ii:10 89 {*movdi_internal} # (nil)) leaq _ZL3fn21s(%rip), _ZZ4mainE1a(%rip) # 8 *movdi_internal/6 [length = 8] Patch that tightens lea constraints in testing: Index: i386.md =================================================================== --- i386.md (revision 220092) +++ i386.md (working copy) @@ -2208,7 +2208,8 @@ (const_string "ssecvt") (eq_attr "alternative" "21,22,23,24") (const_string "mskmov") - (match_operand 1 "pic_32bit_operand") + (and (match_operand 0 "register_operand") + (match_operand 1 "pic_32bit_operand")) (const_string "lea") ] (const_string "imov"))) @@ -2361,7 +2362,8 @@ (const_string "ssemov") (eq_attr "alternative" "13,14") (const_string "mskmov") - (match_operand 1 "pic_32bit_operand") + (and (match_operand 0 "register_operand") + (match_operand 1 "pic_32bit_operand")) (const_string "lea") ] (const_string "imov")))