re PR target/53141 (gcc.target/i386/bmi2-mulx32-[12]a.c)
PR target/53141 * config/i386/i386.md (*umul<mode><dwi>3_1): Switch places of constraints 0 and 1. From-SVN: r187000
This commit is contained in:
parent
65d630d474
commit
24b2a15a83
|
@ -1,3 +1,9 @@
|
|||
2012-04-30 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/53141
|
||||
* config/i386/i386.md (*umul<mode><dwi>3_1): Switch places of
|
||||
constraints 0 and 1.
|
||||
|
||||
012-04-30 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* cgraph.c (ld_plugin_symbol_resolution_names): Move to symtab.c
|
||||
|
@ -35,8 +41,7 @@
|
|||
(varpool_remove_unreferenced_decls): Remove.
|
||||
* ipa-inline-transform.c (clone_inlined_nodes): Dissolve comdat groups.
|
||||
(preserve_function_body_p): Make static.
|
||||
* toplev.c (compile_file): Update comments;
|
||||
update.
|
||||
* toplev.c (compile_file): Update comments; update.
|
||||
* cgraphunit.c: Update comments.
|
||||
(cgraph_expand_all_functions): Rename to ...
|
||||
(expand_all_functions): ... this one; update.
|
||||
|
@ -70,7 +75,8 @@
|
|||
(cp_write_global_declarations): Use finalize_compilation_unit.
|
||||
* parser.c (cp_parser_asm_definition): Use add_asm_node.
|
||||
* lto-streamer-in.c (lto_input_toplevel_asms): Use add_asm_node
|
||||
* c-decl.c (c_write_global_declarations): Use finalize_compilation_unit.
|
||||
* c-decl.c (c_write_global_declarations): Use
|
||||
finalize_compilation_unit.
|
||||
* langhooks.c (write_global_declarations): Update.
|
||||
* ipa.c (cgraph_externally_visible_p): Update.
|
||||
(dissolve_same_comdat_group_list): Remove.
|
||||
|
@ -84,7 +90,8 @@
|
|||
(symtab_make_decl_local): New.
|
||||
* passes.c (register_pass): Update comments.
|
||||
* c-parser.c (c_parser_asm_definition): Update.
|
||||
* varpool.c (varpool_analyze_node): Use fixup_same_cpp_alias_visibility.
|
||||
* varpool.c (varpool_analyze_node): Use
|
||||
fixup_same_cpp_alias_visibility.
|
||||
(varpool_remove_unreferenced_decls): Make static.
|
||||
(varpool_assemble_pending_decls): Rename to ...
|
||||
(varpool_output_variables): ... this one; call
|
||||
|
|
|
@ -6814,29 +6814,29 @@
|
|||
(set_attr "mode" "SI")])
|
||||
|
||||
(define_insn "*umul<mode><dwi>3_1"
|
||||
[(set (match_operand:<DWI> 0 "register_operand" "=A,r")
|
||||
[(set (match_operand:<DWI> 0 "register_operand" "=r,A")
|
||||
(mult:<DWI>
|
||||
(zero_extend:<DWI>
|
||||
(match_operand:DWIH 1 "nonimmediate_operand" "%0,d"))
|
||||
(match_operand:DWIH 1 "nonimmediate_operand" "%d,0"))
|
||||
(zero_extend:<DWI>
|
||||
(match_operand:DWIH 2 "nonimmediate_operand" "rm,rm"))))
|
||||
(clobber (reg:CC FLAGS_REG))]
|
||||
"!(MEM_P (operands[1]) && MEM_P (operands[2]))"
|
||||
"@
|
||||
mul{<imodesuffix>}\t%2
|
||||
#"
|
||||
[(set_attr "isa" "*,bmi2")
|
||||
(set_attr "type" "imul,imulx")
|
||||
(set_attr "length_immediate" "0,*")
|
||||
#
|
||||
mul{<imodesuffix>}\t%2"
|
||||
[(set_attr "isa" "bmi2,*")
|
||||
(set_attr "type" "imulx,imul")
|
||||
(set_attr "length_immediate" "*,0")
|
||||
(set (attr "athlon_decode")
|
||||
(cond [(eq_attr "alternative" "0")
|
||||
(cond [(eq_attr "alternative" "1")
|
||||
(if_then_else (eq_attr "cpu" "athlon")
|
||||
(const_string "vector")
|
||||
(const_string "double"))]
|
||||
(const_string "*")))
|
||||
(set_attr "amdfam10_decode" "double,*")
|
||||
(set_attr "bdver1_decode" "direct,*")
|
||||
(set_attr "prefix" "orig,vex")
|
||||
(set_attr "amdfam10_decode" "*,double")
|
||||
(set_attr "bdver1_decode" "*,direct")
|
||||
(set_attr "prefix" "vex,orig")
|
||||
(set_attr "mode" "<MODE>")])
|
||||
|
||||
;; Convert mul to the mulx pattern to avoid flags dependency.
|
||||
|
|
Loading…
Reference in New Issue