https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63620
--- Comment #4 from Uroš Bizjak <ubizjak at gmail dot com> --- Please note that: (define_insn "*pushtf" [(set (match_operand:TF 0 "push_operand" "=<,<") (match_operand:TF 1 "general_no_elim_operand" "x,*roF"))] "TARGET_64BIT || TARGET_SSE" { /* This insn should be already split before reg-stack. */ gcc_unreachable (); } [(set_attr "isa" "*,x64") (set_attr "type" "multi") (set_attr "unit" "sse,*") (set_attr "mode" "TF,DI")]) in effect looks like: (define_insn "*pushtf" [(set (match_operand:TF 0 "push_operand" "=<") (match_operand:TF 1 "general_no_elim_operand" "x"))] on 32bit x86, due to "isa" attribute.