From 24b2a15a832a4ada89c40badfe3742e5fe10891f Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Mon, 30 Apr 2012 23:30:06 +0200 Subject: [PATCH] re PR target/53141 (gcc.target/i386/bmi2-mulx32-[12]a.c) PR target/53141 * config/i386/i386.md (*umul3_1): Switch places of constraints 0 and 1. From-SVN: r187000 --- gcc/ChangeLog | 17 ++++++++++++----- gcc/config/i386/i386.md | 22 +++++++++++----------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 60053595c65..a020376d3c4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-04-30 Uros Bizjak + + PR target/53141 + * config/i386/i386.md (*umul3_1): Switch places of + constraints 0 and 1. + 012-04-30 Jan Hubicka * 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. @@ -66,11 +71,12 @@ * optimize.c (maybe_clone_body): Use symtab_add_to_same_comdat_group. * method.c (use_thunk): Likewise. * semantics.c (maybe_add_lambda_conv_op): Likewise. - * decl2.c (maybe_emit_vtables): Likewise. + * decl2.c (maybe_emit_vtables): Likewise. (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 diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 9047a31a01b..ea77c203b49 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -6814,29 +6814,29 @@ (set_attr "mode" "SI")]) (define_insn "*umul3_1" - [(set (match_operand: 0 "register_operand" "=A,r") + [(set (match_operand: 0 "register_operand" "=r,A") (mult: (zero_extend: - (match_operand:DWIH 1 "nonimmediate_operand" "%0,d")) + (match_operand:DWIH 1 "nonimmediate_operand" "%d,0")) (zero_extend: (match_operand:DWIH 2 "nonimmediate_operand" "rm,rm")))) (clobber (reg:CC FLAGS_REG))] "!(MEM_P (operands[1]) && MEM_P (operands[2]))" "@ - mul{}\t%2 - #" - [(set_attr "isa" "*,bmi2") - (set_attr "type" "imul,imulx") - (set_attr "length_immediate" "0,*") + # + mul{}\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" "")]) ;; Convert mul to the mulx pattern to avoid flags dependency. -- 2.30.2