Commit 0d5e0c1b by Uros Bizjak

re PR target/49600 (Bad SSE2 int->float split in i386.md)

	PR target/49600
	* config/i386/i386.md (SSE2 int->float split): Push operand 1 in
	general register to memory for !TARGET_INTER_UNIT_MOVES.

From-SVN: r175817
parent a648cfe8
2011-07-04 Uros Bizjak <ubizjak@gmail.com>
PR target/49600
* config/i386/i386.md (SSE2 int->float split): Push operand 1 in
general register to memory for !TARGET_INTER_UNIT_MOVES.
2011-07-04 Georg-Johann Lay <avr@gjlay.de> 2011-07-04 Georg-Johann Lay <avr@gjlay.de>
PR target/44643 PR target/44643
...@@ -8,8 +14,7 @@ ...@@ -8,8 +14,7 @@
* doc/extend.texi (AVR Built-in Functions): Update documentation * doc/extend.texi (AVR Built-in Functions): Update documentation
of __builtin_avr_fmul*. of __builtin_avr_fmul*.
* config/avr/avr.c (avr_init_builtins): Don't depend on * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
AVR_HAVE_MUL.
* config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto. * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
* config/avr/avr.md (fmul): Rename to fmul_insn. * config/avr/avr.md (fmul): Rename to fmul_insn.
(fmuls): Rename to fmuls_insn. (fmuls): Rename to fmuls_insn.
...@@ -107,8 +112,7 @@ ...@@ -107,8 +112,7 @@
2011-07-01 Richard Guenther <rguenther@suse.de> 2011-07-01 Richard Guenther <rguenther@suse.de>
PR tree-optimization/49603 PR tree-optimization/49603
* tree-vect-stmts.c (vectorizable_load): Remove unnecessary * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
assert.
2011-06-30 Martin Jambor <mjambor@suse.cz> 2011-06-30 Martin Jambor <mjambor@suse.cz>
...@@ -188,8 +192,7 @@ ...@@ -188,8 +192,7 @@
PR tree-optimization/46787 PR tree-optimization/46787
* tree-data-ref.c (dr_address_invariant_p): Remove. * tree-data-ref.c (dr_address_invariant_p): Remove.
(find_data_references_in_stmt): Invariant accesses are ok now. (find_data_references_in_stmt): Invariant accesses are ok now.
* tree-vect-stmts.c (vectorizable_load): Handle invariant * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
loads.
* tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
invariant loads. invariant loads.
...@@ -275,9 +278,8 @@ ...@@ -275,9 +278,8 @@
* config/arm/unwind-arm.c (enum __cxa_type_match_result): New. * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
(cxa_type_match): Correct declaration. (cxa_type_match): Correct declaration.
(__gnu_unwind_pr_common): Reconstruct (__gnu_unwind_pr_common): Reconstruct additional indirection
additional indirection when __cxa_type_match returns when __cxa_type_match returns succeeded_with_ptr_to_base.
succeeded_with_ptr_to_base.
2011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 2011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
...@@ -293,7 +295,7 @@ ...@@ -293,7 +295,7 @@
Detect subregs via recursive descent instead of via SUBREG_LOC. Detect subregs via recursive descent instead of via SUBREG_LOC.
2011-06-29 Georg-Johann Lay <avr@gjlay.de> 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
* config/avr/avr.c (avr_encode_section_info): Dispatch to * config/avr/avr.c (avr_encode_section_info): Dispatch to
default_encode_section_info. default_encode_section_info.
...@@ -310,14 +312,13 @@ ...@@ -310,14 +312,13 @@
2011-06-29 Jakub Jelinek <jakub@redhat.com> 2011-06-29 Jakub Jelinek <jakub@redhat.com>
PR debug/49567 PR debug/49567
* dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
for non-MODE_INT modes instead of asserting the mode has MODE_INT non-MODE_INT modes instead of asserting the mode has MODE_INT class.
class.
2011-06-29 Georg-Johann Lay <avr@gjlay.de> 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
PR target/34734 PR target/34734
* config/avr/avr.c (avr_handle_progmem_attribute): Move warning * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
about uninitialized data attributed 'progmem' from here... about uninitialized data attributed 'progmem' from here...
(avr_encode_section_info): ...to this new function. (avr_encode_section_info): ...to this new function.
(TARGET_ENCODE_SECTION_INFO): New define. (TARGET_ENCODE_SECTION_INFO): New define.
...@@ -325,7 +326,7 @@ ...@@ -325,7 +326,7 @@
section flag SECTION_WRITE. section flag SECTION_WRITE.
2011-06-29 Georg-Johann Lay <avr@gjlay.de> 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
* config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3, * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
_xmulhisi3_exit. _xmulhisi3_exit.
* config/avr/libgcc.S (_xmulhisi3_exit): New Function. * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
...@@ -387,13 +388,12 @@ ...@@ -387,13 +388,12 @@
* gcc.c: Include params.h. * gcc.c: Include params.h.
(set_option_handlers): Also use common_handle_option and (set_option_handlers): Also use common_handle_option and
target_handle_option. target_handle_option.
(main): Call global_init_params, finish_params and (main): Call global_init_params, finish_params and init_options_struct.
init_options_struct.
* opts.c (debug_type_names): Move from toplev.c. * opts.c (debug_type_names): Move from toplev.c.
(print_filtered_help): Access quiet_flag through opts pointer. (print_filtered_help): Access quiet_flag through opts pointer.
(common_handle_option): Return early in the driver for some (common_handle_option): Return early in the driver for some options.
options. Access in_lto_p, dwarf_version and Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
warn_maybe_uninitialized through opts pointer. opts pointer.
* toplev.c (in_lto_p): Move to common.opt. * toplev.c (in_lto_p): Move to common.opt.
(debug_type_names): Move to opts.c. (debug_type_names): Move to opts.c.
* Makefile.in (OBJS): Remove opts.o. * Makefile.in (OBJS): Remove opts.o.
...@@ -402,8 +402,7 @@ ...@@ -402,8 +402,7 @@
2011-06-28 Kai Tietz <ktietz@redhat.com> 2011-06-28 Kai Tietz <ktietz@redhat.com>
* tree-ssa-forwprop.c (simplify_bitwise_binary): Improve * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
type sinking.
2011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 2011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
...@@ -437,8 +436,7 @@ ...@@ -437,8 +436,7 @@
(genprogrtl): Add attr-common. (genprogrtl): Add attr-common.
* genattr.c (main): Include insn-attr-common.h. Don't generate * genattr.c (main): Include insn-attr-common.h. Don't generate
definitions of DELAY_SLOTS or INSN_SCHEDULING. definitions of DELAY_SLOTS or INSN_SCHEDULING.
* opts.c: Include insn-attr-common.h instead of rtl.h and * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
insn-attr.h.
2011-06-28 Georg-Johann Lay <avr@gjlay.de> 2011-06-28 Georg-Johann Lay <avr@gjlay.de>
...@@ -535,9 +533,8 @@ ...@@ -535,9 +533,8 @@
2011-06-27 Nick Clifton <nickc@redhat.com> 2011-06-27 Nick Clifton <nickc@redhat.com>
* config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
convert bit position of highest bit set into a count of the high bit position of highest bit set into a count of the high zero bits.
zero bits.
2011-06-27 Eric Botcazou <ebotcazou@adacore.com> 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
...@@ -559,8 +556,8 @@ ...@@ -559,8 +556,8 @@
* tree-ssa-math-opts.c (do_shift_rotate): Zero bits * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
out of type precision after operation. out of type precision after operation.
(find_bswap): Take for limit value the integer auto- (find_bswap): Take for limit value the integer auto-promotion
promotion into account. into account.
2011-06-27 Eric Botcazou <ebotcazou@adacore.com> 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
...@@ -590,8 +587,7 @@ ...@@ -590,8 +587,7 @@
clear some builtins on VMS. Calls vms_patch_builtins. clear some builtins on VMS. Calls vms_patch_builtins.
(ia64_asm_output_external): Remove DO_CRTL_NAME. (ia64_asm_output_external): Remove DO_CRTL_NAME.
* config/ia64/vms64.h: Do not include vms-crtl-64.h * config/ia64/vms64.h: Do not include vms-crtl-64.h
* config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
tm_p_file.
2011-06-27 Tristan Gingold <gingold@adacore.com> 2011-06-27 Tristan Gingold <gingold@adacore.com>
...@@ -694,8 +690,7 @@ ...@@ -694,8 +690,7 @@
PR target/49335 PR target/49335
* config/arm/predicates.md (add_operator): New. * config/arm/predicates.md (add_operator): New.
* config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
in Thumb2.
2011-06-24 Andi Kleen <ak@linux.intel.com> 2011-06-24 Andi Kleen <ak@linux.intel.com>
...@@ -791,9 +786,8 @@ ...@@ -791,9 +786,8 @@
PR libgomp/49490 PR libgomp/49490
* omp-low.c (expand_omp_for_static_nochunk): Only * omp-low.c (expand_omp_for_static_nochunk): Only
use n ceil/ nthreads size for the first use n ceil/ nthreads size for the first n % nthreads threads in the
n % nthreads threads in the team instead of team instead of all threads except for the last few ones which
all threads except for the last few ones which
get less work or none at all. get less work or none at all.
PR debug/49496 PR debug/49496
...@@ -814,8 +808,7 @@ ...@@ -814,8 +808,7 @@
2011-06-22 Nathan Sidwell <nathan@codesourcery.com> 2011-06-22 Nathan Sidwell <nathan@codesourcery.com>
* config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
typo.
* config.gcc (arm*-*-linux*): Default to gnu tls. * config.gcc (arm*-*-linux*): Default to gnu tls.
(arm*-*-*): Add --with-tls option. (arm*-*-*): Add --with-tls option.
(all_defaults): Add 'tls'. (all_defaults): Add 'tls'.
...@@ -851,7 +844,7 @@ ...@@ -851,7 +844,7 @@
* cgraphunit.c (assemble_thunk): Use correct return type. * cgraphunit.c (assemble_thunk): Use correct return type.
2011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru> 2011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
Dmitry Melnik <dm@ispras.ru> Dmitry Melnik <dm@ispras.ru>
* config/arm/arm.c (neon_immediate_valid_for_shift): New function. * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
(neon_output_shift_immediate): Ditto. (neon_output_shift_immediate): Ditto.
...@@ -897,9 +890,8 @@ ...@@ -897,9 +890,8 @@
of base type reference as argument. of base type reference as argument.
(resolve_addr_in_expr): Likewise. Fix keep computation. (resolve_addr_in_expr): Likewise. Fix keep computation.
(convert_descriptor_to_signed): Renamed to... (convert_descriptor_to_signed): Renamed to...
(convert_descriptor_to_mode): ... this. For wider types convert (convert_descriptor_to_mode): ... this. For wider types convert to
to unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
untyped.
(typed_binop): New function. (typed_binop): New function.
(scompare_loc_descriptor, ucompare_loc_descriptor, (scompare_loc_descriptor, ucompare_loc_descriptor,
minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
...@@ -952,8 +944,7 @@ ...@@ -952,8 +944,7 @@
debug args vector from old_decl to new_decl. debug args vector from old_decl to new_decl.
* ipa-prop.c (ipa_modify_call_arguments): For optimized away * ipa-prop.c (ipa_modify_call_arguments): For optimized away
or modified parameters, add debug bind stmts before call or modified parameters, add debug bind stmts before call
setting DEBUG_EXPR_DECL which is remembered in debug args setting DEBUG_EXPR_DECL which is remembered in debug args vector.
vector.
* cfgexpand.c (expand_call_stmt): Call expand_debug_expr * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
on DECL_DEBUG_EXPRs from debug args vector. on DECL_DEBUG_EXPRs from debug args vector.
(expand_debug_source_expr): New function. (expand_debug_source_expr): New function.
...@@ -962,9 +953,8 @@ ...@@ -962,9 +953,8 @@
* var-tracking.c (prepare_call_arguments): Add debug args * var-tracking.c (prepare_call_arguments): Add debug args
to call_arguments if any. to call_arguments if any.
* dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr, * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
output_loc_operands, output_loc_operands_raw, output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
resolve_addr_in_expr, compare_loc_operands): Handle compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
DW_OP_GNU_parameter_ref.
(get_ref_die_offset, parameter_ref_descriptor): New functions. (get_ref_die_offset, parameter_ref_descriptor): New functions.
(mem_loc_descriptor): Handle DEBUG_PARAMETER_REF. (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
(gen_subprogram_die): Handle parameters identified by (gen_subprogram_die): Handle parameters identified by
...@@ -997,7 +987,7 @@ ...@@ -997,7 +987,7 @@
if the function has no attributes. if the function has no attributes.
* tree.c (is_attribute_with_length_p): Removed. * tree.c (is_attribute_with_length_p): Removed.
(is_attribute_p): Removed. (is_attribute_p): Removed.
(private_is_attribute_p): New. (private_is_attribute_p): New.
(private_lookup_attribute): New. (private_lookup_attribute): New.
(lookup_attribute): Removed. (lookup_attribute): Removed.
(lookup_ident_attribute): New. (lookup_ident_attribute): New.
...@@ -1016,7 +1006,7 @@ ...@@ -1016,7 +1006,7 @@
in the form 'text', not '__text__'. in the form 'text', not '__text__'.
(private_is_attribute_p, private_lookup_attribute): New. (private_is_attribute_p, private_lookup_attribute): New.
Updated comments. Updated comments.
2011-06-21 Andrew MacLeod <amacleod@redhat.com> 2011-06-21 Andrew MacLeod <amacleod@redhat.com>
* builtins.c: Add sync_ or SYNC__ to builtin names. * builtins.c: Add sync_ or SYNC__ to builtin names.
......
...@@ -5022,11 +5022,20 @@ ...@@ -5022,11 +5022,20 @@
if (GET_CODE (op1) == SUBREG) if (GET_CODE (op1) == SUBREG)
op1 = SUBREG_REG (op1); op1 = SUBREG_REG (op1);
if (GENERAL_REG_P (op1) && TARGET_INTER_UNIT_MOVES) if (GENERAL_REG_P (op1))
{ {
operands[4] = simplify_gen_subreg (V4SImode, operands[0], <MODE>mode, 0); operands[4] = simplify_gen_subreg (V4SImode, operands[0], <MODE>mode, 0);
emit_insn (gen_sse2_loadld (operands[4], if (TARGET_INTER_UNIT_MOVES)
CONST0_RTX (V4SImode), operands[1])); emit_insn (gen_sse2_loadld (operands[4],
CONST0_RTX (V4SImode), operands[1]));
else
{
operands[5] = ix86_force_to_memory (GET_MODE (operands[1]),
operands[1]);
emit_insn (gen_sse2_loadld (operands[4],
CONST0_RTX (V4SImode), operands[5]));
ix86_free_from_memory (GET_MODE (operands[1]));
}
} }
/* We can ignore possible trapping value in the /* We can ignore possible trapping value in the
high part of SSE register for non-trapping math. */ high part of SSE register for non-trapping math. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment