* arm.c (arm_cirrus_insn_p): Delete.
	(cirrus_reorg): Delete.
	(arm_reorg): Don't call cirrus_reorg.
	(arm_final_prescan_insn_p): Don't check for cirrus insns.
	* arm.md (define_attr "type"): Remove mav_farith and mav_dmult.
	(adddi3, subdi3): Remove Maverick support.
	(arm_adddi3): Likewise.
	(adddi_sesidi_di, adddi_zesidi_di): Likewise.
	(addsf3, adddf3): Likewise.
	(subsf3, subdf3): Likewise.
	(mulsf3, muldf3): Likewise.
	(ashldi3, ashrdi3, lshrdi3): Likewise.
	(floatsisf2, floatsidf2): Likewise.
	(fix_truncsfsi2, fix_truncdfsi2): Likewise.
	(arm_movdi, thumb1_movdi_insn): Likewise.
	(arm_cmpdi_insn): Likewise.
	(cirrus_cmpsf, cirrus_cmpdf, cirrus_cmpdi): Likewise.
	(cirrus.md): Don't include.
	* cirrus.md: Delete file.
	* t-arm (MD_INCLUDES): Remove cirrus.md.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188622 138bc75d-0d04-0410-961f-82ee72b054a4
	PR target/53639
	* config/i386/i386.md (*anddi_1 into *andsi_1_zext splitter): New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188629 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/i386/i386.md (*zero_extendsidi2): Mark movd alternatives
	SSE2 only.  Remove x,x alternative.
	(*zero_extendsidi2_rex64): Ditto.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188630 138bc75d-0d04-0410-961f-82ee72b054a4
	PR target/53568
	* config/sh/sh.md: Add peephole for swapbsi2.
	(*swapbisi2_and_shl8, *swapbhisi2): New insns and splits.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188632 138bc75d-0d04-0410-961f-82ee72b054a4
Fix my previous commit to:

	* config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative.
	(*zero_extendsidi2_rex64): Ditto.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188634 138bc75d-0d04-0410-961f-82ee72b054a4
	* doc/xml/manual/status_cxx2011.xml: Correct C++11 status table.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188635 138bc75d-0d04-0410-961f-82ee72b054a4
	PR libstdc++/53648
	* include/std/tuple (__empty_not_final): Do not use EBO for tuples.
	* testsuite/20_util/tuple/53648.cc: New.
	* testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error line
	number.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188636 138bc75d-0d04-0410-961f-82ee72b054a4
	PR libstdc++/53270
	* include/ext/concurrence.h (__mutex, __recursive_mutex, __cond): Use
	NSDMI in C++11 mode.
	* include/ext/rope (_Refcount_Base): Likewise. Destroy mutex in
	destructor when initialized by function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188637 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/tilegx/sync.md (atomic_fetch_sub<mode>): Fix typo.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188639 138bc75d-0d04-0410-961f-82ee72b054a4
Update sysdep/sh/locks.h with atomic builtins
	* sysdep/sh/locks.h (__cas_lock): Remove.
	(__cas_start_atomic, __cas_end_atomic): Likewise.
	(compare_and_swap): Call __sync_bool_compare_and_swap.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188640 138bc75d-0d04-0410-961f-82ee72b054a4
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188645 138bc75d-0d04-0410-961f-82ee72b054a4
	PR libstdc++/53578
	* include/ext/concurrence.h (__recursive_mutex::_S_destroy): Fix
	narrowing conversion.
	* include/std/mutex (__recursive_mutex_base::_S_destroy): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188646 138bc75d-0d04-0410-961f-82ee72b054a4
	(*zero_extendsidi2_rex64): Remove isa attribute.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188648 138bc75d-0d04-0410-961f-82ee72b054a4
2012-06-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* sysdep/s390/locks.h (compare_and_swap, release_set)
	(read_barrier, write_barrier): Use the GCC atomic builtins.




git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188649 138bc75d-0d04-0410-961f-82ee72b054a4
* sysdep/m68k/locks.h (compare_and_swap): Use
__sync_bool_compare_and_swap.
(release_set): Use write_barrier instead of inlining it.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188650 138bc75d-0d04-0410-961f-82ee72b054a4
	PR middle-end/53590
	* common.opt (-fdelete-dead-exceptions): New switch.
	* doc/invoke.texi (Code Gen Options): Document it.
	* cse.c (count_reg_usage) <CALL_INSN>: Use !insn_nothrow_p in lieu of
	insn_could_throw_p predicate.  Do not skip an insn that could throw
	if dead exceptions can be deleted.
	(insn_live_p): Likewise, do not return true in that case.
	* dce.c (can_alter_cfg): New flag.
	(deletable_insn_p): Do not return false for an insn that can throw if
	the CFG can be altered and dead exceptions can be deleted.
	(init_dce): Set can_alter_cfg to false for fast DCE, true otherwise.
	* dse.c (scan_insn): Use !insn_nothrow_p in lieu of insn_could_throw_
	predicate. Do not preserve an insn that could throw if dead exceptions
	can be deleted.
	* function.h (struct function): Add can_delete_dead_exceptions flag.
	* function.c (allocate_struct_function): Set it.
	* lto-streamer-in.c (input_struct_function_base): Stream it.
	* lto-streamer-out.c (input_struct_function_base): Likewise.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark a
	statement that could throw as necessary if dead exceptions can be
	deleted.
ada/
	* gcc-interface/misc.c (gnat_init_options_struct): Set
	opts->x_flag_delete_dead_exceptions to 1.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188651 138bc75d-0d04-0410-961f-82ee72b054a4
	PR ada/53592
	* gcc-interface/gigi.h (maybe_vector_array): Make static inline.
	* gcc-interface/utils.c (maybe_vector_array): Delete.
	* gcc-interface/trans.c (gnat_to_gnu) <N_Indexed_Component>: Mark the
	array object as addressable if it has vector type and is on the LHS.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188653 138bc75d-0d04-0410-961f-82ee72b054a4
2012-06-15  Richard Guenther  <rguenther@suse.de>

	* gcc.c-torture/execute/20120615-1.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188655 138bc75d-0d04-0410-961f-82ee72b054a4
	PR tree-optimization/51581
	* expr.h (choose_multiplier): New prototype.
	* expmed.c (choose_multiplier): No longer static.
	Change multiplier_ptr from rtx * to UHWI *.
	(expand_divmod): Adjust callers.
	* tree-vect-patterns.c (vect_recog_sdivmod_pow2_pattern):
	Renamed to...
	(vect_recog_divmod_pattern): ... this.  Pass bb_vinfo as last
	argument to new_stmt_vec_info.  Attempt to optimize also divisions
	by non-pow2 constants if integer vector division isn't supported.
	* tree-vect-stmts.c (vect_analyze_stmt): If node != NULL,
	don't look at pattern stmts and sequences.

	* gcc.c-torture/execute/pr51581-1.c: New test.
	* gcc.c-torture/execute/pr51581-2.c: New test.
	* gcc.dg/vect/pr51581-1.c: New test.
	* gcc.dg/vect/pr51581-2.c: New test.
	* gcc.dg/vect/pr51581-3.c: New test.
	* gcc.target/i386/avx-pr51581-1.c: New test.
	* gcc.target/i386/avx-pr51581-2.c: New test.
	* gcc.target/i386/avx2-pr51581-1.c: New test.
	* gcc.target/i386/avx2-pr51581-2.c: New test.
	* gcc.dg/vect/slp-26.c (main1): Divide by 0x8031 instead of 3.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188656 138bc75d-0d04-0410-961f-82ee72b054a4
	* tree-vect-patterns.c (vect_pattern_recog): Don't unnecessarily
	allocate and free bbs array for the SLP case.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188657 138bc75d-0d04-0410-961f-82ee72b054a4