AVX-512. Extend vpermvar insn patterns.

gcc/
	* config/i386/sse.md
	(define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
	(define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
	(define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
	"<avx2_avx512f>_permvar<mode><mask_name>".
	(define_insn "<avx512>_permvar<mode><mask_name>"): New.
	(define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
	Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
	(define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
	Ditto.
	(define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
	Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
	(define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
	Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215148 138bc75d-0d04-0410-961f-82ee72b054a4
	PR tree-optimization/63186
	* ipa-split.c (test_nonssa_use): Skip nonforced labels.
	(mark_nonssa_use): Likewise.
	(verify_non_ssa_vars): Verify all header blocks for label
	definitions.

	* gcc.dg/pr63186.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215149 138bc75d-0d04-0410-961f-82ee72b054a4
	* varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
	to access removed nodes.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215150 138bc75d-0d04-0410-961f-82ee72b054a4
AVX-512. Add vperm[it]2 insns support.

gcc/
	* config/i386/sse.md
	(define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
	"avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
	(define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
	New.
	(define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
	from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
	iterator.
	(define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
	New.
	(define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
	"avx512f_vpermi2var<mode>3_mask" and update mode iterator.
	(define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
	(define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
	"avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
	(define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
	(define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
	from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
	iterator.
	(define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
	New.
	(define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
	"avx512f_vpermt2var<mode>3_mask" and update mode iterator.
	(define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215151 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	PR target/63223
	* config/avr/avr.md (*tablejump.3byte-pc): New insn.
	(*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
	(casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
libgcc/
	PR target/63223
	* config/avr/libgcc.S (__tablejump2__): Rewrite to use RAMPZ, ELPM
	and R24 as needed.  Make work for all devices and .text locations.
	(__do_global_ctors, __do_global_dtors): Use word addresses.
	(__tablejump__, __tablejump_elpm__): Remove functions.
	* t-avr (LIB1ASMFUNCS): Remove _tablejump, _tablejump_elpm.
	Add _tablejump2.
	(XICALL, XIJMP): New macros.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215152 138bc75d-0d04-0410-961f-82ee72b054a4
	* src/powerpc/linux64.S: Emit .note.GNU-stack even when
	POWERPC64 is not defined.
	* src/powerpc/linux64_closure.S: Likewise.  Also test _CALL_ELF == 2.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215155 138bc75d-0d04-0410-961f-82ee72b054a4
Fix declarations in some tests.

	* gcc.dg/compat/struct-by-value-13_main.c (struct_by_value_13_x):
	Fix declaration.
	* gcc.dg/compat/struct-by-value-16a_main.c (struct_by_value_16a_x):
	Fix declaration.
	* gcc.dg/compat/struct-by-value-17a_main.c (struct_by_value_17a_x):
	Fix declaration.
	* gcc.dg/compat/struct-by-value-18a_main.c (struct_by_value_18a_x):
	Fix declaration.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215158 138bc75d-0d04-0410-961f-82ee72b054a4
	PR libstdc++/63219
	* include/bits/regex.h (match_results::format): Remove stray template
	parameter.
	* include/bits/regex_compiler.h (_RegexTranslator::_RegexTranslator):
	Remove parameter name to avoid -Wunused-parameter warning.
	* include/bits/regex_executor.h (_State_info::_State_info): Reorder
	mem-initializers to avoid -Wreorder warning.
	* include/bits/regex_executor.tcc (_Executor::_M_word_boundary):
	Remove parameter name to avoid -Wunused-parameter warning.
	* include/bits/regex_scanner.tcc (_Scanner::_M_advance): Add braces
	to avoid -Wempty-body warning when not in debug mode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215160 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/58678
	* ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215168 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/63139
	* pt.c (tsubst_pack_expansion): Simplify substitution into T....
	(tsubst): Don't throw away PACK_EXPANSION_EXTRA_ARGS.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215171 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Cheap fix for argument types of vmull_high_lane_{us}{16,32}

gcc/

	* config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
	types.
	(vmull_high_lane_s32): Likewise.
	(vmull_high_lane_u16): Likewise.
	(vmull_high_lane_u32): Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215176 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64 Testsuite] Add execution test of vset(q?)_lane intrinsics.

	* gcc.target/aarch64/vset_lane_1.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215177 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Replace temporary inline assembler for vset_lane

	* config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
	(vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
	vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
	vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
	vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
	vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
	vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
	Replace inline assembler with __aarch64_vset_lane_any.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215179 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Simplify vreinterpret for float64x1_t using casts.

	* config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
	TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
	aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
	aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
	Delete.

	(aarch64_fold_builtin): Remove all reinterpret cases.

	* config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.

	* config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.

	* config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
	aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
	aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
	aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
	aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
	aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
	aarch64_reinterpretv2df<mode>): Delete.

	* config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.

	* config/aarch64/arm_neon.h (vreinterpret_p8_f64,
	vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
	vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
	vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
	vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
	vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
	vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
	vreinterpret_u32_f64): Use cast.

	* config/aarch64/iterators.md (VD_RE): Delete.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215180 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/61489
	* doc/invoke.texi ([-Wmissing-field-initializers]): Update.

/cp
2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/61489
	* typeck2.c (process_init_constructor_record): Do not warn about
	missing field initializer if EMPTY_CONSTRUCTOR_P (init).

/testsuite
2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/61489
	* g++.dg/warn/Wmissing-field-initializers-1.C: New.
	* g++.old-deja/g++.other/warn5.C: Adjust.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215186 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
	tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
	instead of minus.
	* config/rs6000/vector.md (cr6_test_for_zero_reverse,
	cr6_test_for_lt_reverse): Ditto.


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

gcc/ChangeLog:
2014-09-11  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (LABEL_REF_LABEL): New macro.

	* alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
	of XEXP (, 0), where we know that we have a LABEL_REF.
	* cfgbuild.c (make_edges): Likewise.
	(purge_dead_tablejump_edges): Likewise.
	* cfgexpand.c (convert_debug_memory_address): Likewise.
	* cfgrtl.c (patch_jump_insn): Likewise.
	* combine.c (distribute_notes): Likewise.
	* cse.c (hash_rtx_cb): Likewise.
	(exp_equiv_p): Likewise.
	(fold_rtx): Likewise.
	(check_for_label_ref): Likewise.
	* cselib.c (rtx_equal_for_cselib_1): Likewise.
	(cselib_hash_rtx): Likewise.
	* emit-rtl.c (mark_label_nuses): Likewise.
	* explow.c (convert_memory_address_addr_space): Likewise.
	* final.c (output_asm_label): Likewise.
	(output_addr_const): Likewise.
	* gcse.c (add_label_notes): Likewise.
	* genconfig.c (walk_insn_part): Likewise.
	* genrecog.c (validate_pattern): Likewise.
	* ifcvt.c (cond_exec_get_condition): Likewise.
	(noce_emit_store_flag): Likewise.
	(noce_get_alt_condition): Likewise.
	(noce_get_condition): Likewise.
	* jump.c (maybe_propagate_label_ref): Likewise.
	(mark_jump_label_1): Likewise.
	(redirect_exp_1): Likewise.
	(rtx_renumbered_equal_p): Likewise.
	* lra-constraints.c (operands_match_p): Likewise.
	* reload.c (operands_match_p): Likewise.
	(find_reloads): Likewise.
	* reload1.c (set_label_offsets): Likewise.
	* reorg.c (get_branch_condition): Likewise.
	* rtl.c (rtx_equal_p_cb): Likewise.
	(rtx_equal_p): Likewise.
	* rtlanal.c (reg_mentioned_p): Likewise.
	(rtx_referenced_p): Likewise.
	(get_condition): Likewise.
	* sched-vis.c (print_value): Likewise.
	* varasm.c (const_hash_1): Likewise.
	(compare_constant): Likewise.
	(const_rtx_hash_1): Likewise.
	(output_constant_pool_1): Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215190 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-11  Marc Glisse  <marc.glisse@inria.fr>

	PR target/58757
gcc/c-family/
	* c-cppbuiltin.c (builtin_define_float_constants): Correct
	__*_DENORM_MIN__ without denormals.
gcc/
	* ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
	Directly forward to __*_DENORM_MIN__.
gcc/testsuite/
	* gcc.dg/c11-true_min-1.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215191 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
	GPR instead of P.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215193 138bc75d-0d04-0410-961f-82ee72b054a4
Also turn off OPTION_MASK_ABI_X32 for -m16

	PR target/63228
	* config/i386/i386.c (ix86_option_override_internal): Also turn
	off OPTION_MASK_ABI_X32 for -m16.


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