1. 25 May, 2016 17 commits
    • AVX-512F: Add vectorizer support builtins · bf9a1a07
      gcc/
      	* config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
      	V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
      	* config/i386/i386.c (enum ix86_builtins): Add
      	IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
      	IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
      	IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
      	IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
      	IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
      	IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
      	(builtin_description bdesc_args): Add __builtin_ia32_floorps512,
      	__builtin_ia32_ceilps512, __builtin_ia32_truncps512,
      	__builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
      	__builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
      	__builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
      	__builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
      	Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
      	__builtin_ia32_cvtps2dq512_mask.
      	(ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
      	V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
      	(ix86_builtin_vectorized_function): Handle builtins mentioned above.
      	* config/i386/sse.md
      	(<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
      	Rename to ...
      	(avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
      	(<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
      	to ...
      	(avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
      	(avx512f_vec_pack_sfix_v8df): New define_expand.
      	(avx512f_roundpd512): Rename to ...
      	(avx512f_round<castmode>512): ... this.  Change iterator.
      	(avx512f_roundps512_sfix): New define_expand.
      	(round<mode>2_sfix): Change iterator.
      gcc/testsuite/
      	* gcc.target/i386/avx512f-ceil-vec-1.c: New test.
      	* gcc.target/i386/avx512f-ceil-vec-2.c: New test.
      	* gcc.target/i386/avx512f-ceilf-sfix-vec-1.c: New test.
      	* gcc.target/i386/avx512f-ceilf-sfix-vec-2.c: New test.
      	* gcc.target/i386/avx512f-ceilf-vec-1.c: New test.
      	* gcc.target/i386/avx512f-ceilf-vec-2.c: New test.
      	* gcc.target/i386/avx512f-floor-vec-1.c: New test.
      	* gcc.target/i386/avx512f-floor-vec-2.c: New test.
      	* gcc.target/i386/avx512f-floorf-sfix-vec-1.c: New test.
      	* gcc.target/i386/avx512f-floorf-sfix-vec-2.c: New test.
      	* gcc.target/i386/avx512f-floorf-vec-1.c: New test.
      	* gcc.target/i386/avx512f-floorf-vec-2.c: New test.
      	* gcc.target/i386/avx512f-rint-sfix-vec-1.c: New test.
      	* gcc.target/i386/avx512f-rint-sfix-vec-2.c: New test.
      	* gcc.target/i386/avx512f-rintf-sfix-vec-1.c: New test.
      	* gcc.target/i386/avx512f-rintf-sfix-vec-2.c: New test.
      	* gcc.target/i386/avx512f-round-sfix-vec-1.c: New test.
      	* gcc.target/i386/avx512f-round-sfix-vec-2.c: New test.
      	* gcc.target/i386/avx512f-roundf-sfix-vec-1.c: New test.
      	* gcc.target/i386/avx512f-roundf-sfix-vec-2.c: New test.
      	* gcc.target/i386/avx512f-trunc-vec-1.c: New test.
      	* gcc.target/i386/avx512f-trunc-vec-2.c: New test.
      	* gcc.target/i386/avx512f-truncf-vec-1.c: New test.
      	* gcc.target/i386/avx512f-truncf-vec-2.c: New test.
      
      From-SVN: r236709
      Ilya Verbin committed
    • re PR c/71266 (gcc ICE on x86_64-linux-gnu in "store_parm_decls_oldstyle") · a23faf7a
      	PR c/71266
      	* c-decl.c (store_parm_decls_oldstyle): Skip non-PARM_DECLs.
      
      	* gcc.dg/noncompile/old-style-parm-3.c: New test.
      
      From-SVN: r236708
      Marek Polacek committed
    • re PR c/71265 (gcc ICE on x86_64-linux-gnu with “seg fault”) · 95efe6b6
      	PR c/71265
      	* c-decl.c (c_make_fname_decl): Don't check seen_error.
      
      	* gcc.dg/noncompile/pr71265.c: New test.
      
      From-SVN: r236707
      Marek Polacek committed
    • * ru.po: Update. · be650bb9
      From-SVN: r236705
      Joseph Myers committed
    • msp430.c (msp430_attr): Produce an error if a static interrupt handler is detected. · e56989ff
      	* config/msp430/msp430.c (msp430_attr): Produce an error if a
      	static interrupt handler is detected.
      	* config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
      	default linker script.
      	* config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
      	the low part of a symbolic pointer.
      
      From-SVN: r236704
      Nick Clifton committed
    • crt0.s: Delete. · 69a6d5ad
      	libgcc/
      	* config/nvptx/crt0.s: Delete.
      	* config/nvptx/crt0.c: New.
      	* t-nvptx: Update.
      
      	gcc/testsuite/
      	* gcc.c-torture/execute/921110-1.c: Fix abort decl.
      	add missing 2016-05-20  Nathan Sidwell  <nathan@acm.org> entry
      
      From-SVN: r236702
      Nathan Sidwell committed
    • re PR tree-optimization/71261 (Trunk GCC hangs on knl and broadwell targets) · 3072d4ea
      2016-05-25  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/71261
      	* tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
      	interesting stmt instead of immediate uses when looking
      	for the use operand to replace.
      
      	* c-c++-common/torture/pr71261.c: New testcase.
      
      From-SVN: r236701
      Richard Biener committed
    • Fix dump output typo · a86f2f6f
      	* ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
      
      From-SVN: r236700
      Martin Liska committed
    • re PR tree-optimization/71264 (ICE in convert_move) · e412ece4
      2016-05-25  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/71264
      	* tree-vect-stmts.c (vect_init_vector): Properly deal with
      	vector type val.
      
      	* gcc.dg/vect/pr71264.c: New testcase.
      
      From-SVN: r236699
      Richard Biener committed
    • re PR c++/55992 (constexpr static member function not recognised in templated using statement) · b9e551ad
      2016-05-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/55992
      	* g++.dg/cpp0x/alias-decl-53.C: New.
      	* g++.dg/cpp0x/alias-decl-54.C: Likewise.
      
      From-SVN: r236698
      Paolo Carlini committed
    • Remove _GLIBCXX14_USE_CONSTEXPR · 834f4c43
      	* include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
      	* include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
      	Remove const qualification on function. Replace
      	_GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
      	(_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
      	(_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
      
      From-SVN: r236697
      Jonathan Wakely committed
    • re PR tree-optimization/71239 (ICE in operand_equal_p (fold-const.c:2769)) · 6aa1abe5
      Fix PR tree-optimization/71239.
      
      	* g++.dg/pr71239.C: New test.
      	PR tree-optimization/71239
      	* tree.c (array_at_struct_end_p): Do not call operand_equal_p
      	if DECL_SIZE is NULL.
      
      From-SVN: r236696
      Martin Liska committed
    • timevar.def (TV_TREE_LOOP_IFCVT): Add. · 6ca8e33c
      2016-05-25  Richard Biener  <rguenther@suse.de>
      
      	* timevar.def (TV_TREE_LOOP_IFCVT): Add.
      	* tree-if-conv.c (pass_data_if_conversion): Use it.
      
      From-SVN: r236695
      Richard Biener committed
    • lambda-generic-static1.C: Use target c++14. · 021fad86
      2016-05-24  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/cpp1y/lambda-generic-static1.C: Use target c++14.
      	* g++.dg/cpp1y/lambda-generic-static2.C: Likewise.
      
      From-SVN: r236694
      Paolo Carlini committed
    • pr58135.c: Rename to ... · 842d162e
      2016-05-25  Richard Biener  <rguenther@suse.de>
      
      	* gcc/testsuite/gcc.dg/vect/pr58135.c: Rename to ...
      	* gcc/testsuite/gcc.dg/vect/bb-slp-pr58135.c: ... this.
      
      From-SVN: r236693
      Richard Biener committed
    • cgraph.c (cgraph_node::get_availability): Fix typo in comment. · 65c74eb2
      * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
      * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
      * varpool.c (varpool_node::get_availability): Likewise.
      
      From-SVN: r236690
      Bernd Edlinger committed
    • Daily bump. · 568da5e6
      From-SVN: r236689
      GCC Administrator committed
  2. 24 May, 2016 23 commits
    • * g++.dg/pr65295.C: Use target c++14. · f184a36c
      From-SVN: r236683
      Marek Polacek committed
    • altivec.md (VNEG iterator): New iterator for VNEGW/VNEGD instructions. · c3eaf15a
      [gcc]
      2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/altivec.md (VNEG iterator): New iterator for
      	VNEGW/VNEGD instructions.
      	(p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
      	(neg<mode>2): Add expander for V2DImode added in ISA 2.06, and
      	support for ISA 3.0 VNEGW/VNEGD instructions.
      
      [gcc/testsuite]
      2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/p9-vneg.c: New test for ISA 3.0 VNEGW/VNEGD
      	instructions.
      
      From-SVN: r236679
      Michael Meissner committed
    • c-parser.c (c_parser_oacc_declare): Add support for GOMP_MAP_FIRSTPRIVATE_POINTER. · e46c7770
      	gcc/c/
      	* c-parser.c (c_parser_oacc_declare): Add support for
      	GOMP_MAP_FIRSTPRIVATE_POINTER.
      	* c-typeck.c (handle_omp_array_sections_1): Replace bool is_omp
      	argument with enum c_omp_region_type ort.
      	(handle_omp_array_sections): Likewise.  Update call to
      	handle_omp_array_sections_1.
      	(c_finish_omp_clauses): Add specific errors and warning messages for
      	OpenACC.  Use firsrtprivate pointers for OpenACC subarrays.  Update
      	call to handle_omp_array_sections.
      
      	gcc/cp/
      	* parser.c (cp_parser_oacc_declare): Add support for
      	GOMP_MAP_FIRSTPRIVATE_POINTER.
      	* semantics.c (handle_omp_array_sections_1): Replace bool is_omp
      	argument with enum c_omp_region_type ort.  Don't privatize OpenACC
      	non-static members.
      	(handle_omp_array_sections): Replace bool is_omp argument with enum
      	c_omp_region_type ort.  Update call to handle_omp_array_sections_1.
      	(finish_omp_clauses): Add specific errors and warning messages for
      	OpenACC.  Use firsrtprivate pointers for OpenACC subarrays.  Update
      	call to handle_omp_array_sections.
      
      	gcc/
      	* gimplify.c (omp_notice_variable): Use zero-length arrays for data
      	pointers inside OACC_DATA regions.
      	(gimplify_scan_omp_clauses): Prune firstprivate clause associated
      	with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
      	(gimplify_adjust_omp_clauses): Fix typo in comment.
      
      	gcc/testsuite/
      	* c-c++-common/goacc/data-clause-duplicate-1.c: Adjust test.
      	* c-c++-common/goacc/deviceptr-1.c: Likewise.
      	* c-c++-common/goacc/kernels-alias-3.c: Likewise.
      	* c-c++-common/goacc/kernels-alias-4.c: Likewise.
      	* c-c++-common/goacc/kernels-alias-5.c: Likewise.
      	* c-c++-common/goacc/kernels-alias-8.c: Likewise.
      	* c-c++-common/goacc/kernels-alias-ipa-pta-3.c: Likewise.
      	* c-c++-common/goacc/pcopy.c: Likewise.
      	* c-c++-common/goacc/pcopyin.c: Likewise.
      	* c-c++-common/goacc/pcopyout.c: Likewise.
      	* c-c++-common/goacc/pcreate.c: Likewise.
      	* c-c++-common/goacc/pr70688.c: New test.
      	* c-c++-common/goacc/present-1.c: Adjust test.
      	* c-c++-common/goacc/reduction-5.c: Likewise.
      	* g++.dg/goacc/data-1.C: New test.
      
      	libgomp/
      	* oacc-mem.c (acc_malloc): Update handling of shared-memory targets.
      	(acc_free): Likewise.
      	(acc_memcpy_to_device): Likewise.
      	(acc_memcpy_from_device): Likewise.
      	(acc_deviceptr): Likewise.
      	(acc_hostptr): Likewise.
      	(acc_is_present): Likewise.
      	(acc_map_data): Likewise.
      	(acc_unmap_data): Likewise.
      	(present_create_copy): Likewise.
      	(delete_copyout): Likewise.
      	(update_dev_host): Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Remove xfail.
      	* testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/data-2.c: Adjust test.
      	* testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/enter_exit-lib.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/lib-13.c: Adjust test so that
      	it only runs on nvptx targets.
      	* testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
      
      From-SVN: r236678
      Cesar Philippidis committed
    • altivec.md (VParity): New mode iterator for vector parity built-in functions. · 4bfc9db7
      [gcc]
      2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/altivec.md (VParity): New mode iterator for vector
      	parity built-in functions.
      	(p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
      	zeros.
      	(p9v_parity<mode>2): Likewise.
      	* config/rs6000/vector.md (VEC_IP): New mode iterator for vector
      	parity.
      	(ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
      	(parity<mode>2): ISA 3.0 expander for vector parity.
      	* config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
      	power9 built-ins.
      	(BU_P9_64BIT_MISC_0): Likewise.
      	(BU_P9_MISC_0): Likewise.
      	(BU_P9V_AV_1): Likewise.
      	(BU_P9V_AV_2): Likewise.
      	(BU_P9V_AV_3): Likewise.
      	(BU_P9V_AV_P): Likewise.
      	(BU_P9V_VSX_1): Likewise.
      	(BU_P9V_OVERLOAD_1): Likewise.
      	(BU_P9V_OVERLOAD_2): Likewise.
      	(BU_P9V_OVERLOAD_3): Likewise.
      	(VCTZB): Add vector count trailing zeros support.
      	(VCTZH): Likewise.
      	(VCTZW): Likewise.
      	(VCTZD): Likewise.
      	(VPRTYBD): Add vector parity support.
      	(VPRTYBQ): Likewise.
      	(VPRTYBW): Likewise.
      	(VCTZ): Add overloaded vector count trailing zeros support.
      	(VPRTYB): Add overloaded vector parity support.
      	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
      	overloaded vector count trailing zeros and parity instructions.
      	* config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
      	vector parity support.
      	* config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
      	trailing zeros support.
      	(vec_cntlz): Likewise.
      	(vec_vctzb): Likewise.
      	(vec_vctzd): Likewise.
      	(vec_vctzh): Likewise.
      	(vec_vctzw): Likewise.
      	(vec_vprtyb): Add ISA 3.0 vector parity support.
      	(vec_vprtybd): Likewise.
      	(vec_vprtybw): Likewise.
      	(vec_vprtybq): Likewise.
      	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
      	the ISA 3.0 vector count trailing zeros and vector parity built-in
      	functions.
      
      [gcc/testsuite]
      2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/p9-vparity.c: New file to check ISA 3.0
      	vector parity built-in functions.
      	* gcc.target/powerpc/ctz-3.c: New file to check ISA 3.0 vector
      	count trailing zeros automatic vectorization.
      	* gcc.target/powerpc/ctz-4.c: New file to check ISA 3.0 vector
      	count trailing zeros built-in functions.
      
      From-SVN: r236677
      Michael Meissner committed
    • lambda-generic-static1.C: Use target c++14. · fe3473a6
      2016-05-24  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/cpp1y/lambda-generic-static1.C: Use target c++14.
      	* g++.dg/cpp1y/lambda-generic-static2.C: Likewise.
      
      From-SVN: r236676
      Paolo Carlini committed
    • tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb when there is stmt_to_insert. · 2bc145af
      gcc/ChangeLog:
      
      2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	* tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
      	when there is stmt_to_insert.
      
      
      gcc/testsuite/ChangeLog:
      
      2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	* gcc.dg/tree-ssa/reassoc-44.c: New test.
      
      From-SVN: r236673
      Kugan Vivekanandarajah committed
    • lhs-1.c: Fix testcase to avoid subreg changes. · 26869fdb
      	* gcc.target/powerpc/lhs-1.c: Fix testcase to avoid subreg changes.
      
      From-SVN: r236672
      Pat Haugen committed
    • re PR c++/50436 (Crash or hang on invalid template code) · b2dc9c3b
      2016-05-24  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/50436
      	* g++.dg/template/crash123.C: New.
      	* g++.dg/template/crash124.C: Likewise.
      
      From-SVN: r236671
      Paolo Carlini committed
    • PR c++/70584 - don't force indirection to an rvalue · 66f90a17
      	* cp-gimplify.c (cp_fold_maybe_rvalue): Loop in case cp_fold
      	returns a decl.
      	(cp_fold) [INDIRECT_REF]: Don't fold to an rvalue.
      
      From-SVN: r236670
      Jason Merrill committed
    • c++config (_GLIBCXX14_USE_CONSTEXPR): New. · 732eb076
      2016-05-24  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
      	* include/bits/hashtable_policy.h
      	(_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
      	having load factor management.
      	(_Mask_range_hashing): New.
      	(__clp2): New.
      	(_Power2_rehash_policy): New.
      	(_Inserts<>): Remove last template parameter, _Unique_keys, so that
      	partial specializations only depend on whether iterators are constant
      	or not.
      	* testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
      	test new hash policy.
      	* testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_set/insert/hash_policy.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
      	New.
      	* testsuite/performance/23_containers/insert/54075.cc: Add benchmark
      	using the new hash policy.
      	* testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
      
      From-SVN: r236669
      François Dumont committed
    • PR c++/71147 - [6 Regression] Flexible array member wrongly rejected in template · f65e97fd
      gcc/ChangeLog:
      2016-05-24  Martin Sebor  <msebor@redhat.com>
      
      	PR c++/71147
      	* gcc/tree.h (complete_or_array_type_p): New inline function.
      
      gcc/testsuite/ChangeLog:
      2016-05-24  Martin Sebor  <msebor@redhat.com>
      
      	PR c++/71147
      	* g++.dg/ext/flexary16.C: New test.
      
      gcc/cp/ChangeLog:
      2016-05-24  Martin Sebor  <msebor@redhat.com>
      
      	PR c++/71147
      	* decl.c (layout_var_decl, grokdeclarator): Use complete_or_array_type_p.
      	* pt.c (instantiate_class_template_1): Try to complete the element
      	type of a flexible array member.
      	(can_complete_type_without_circularity): Handle arrays of unknown bound.
      	* typeck.c (complete_type): Also complete the type of the elements of
      	arrays with an unspecified bound.
      
      From-SVN: r236664
      Martin Sebor committed
    • i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define. · 8e0dc054
      	* config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
      	* config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
      	rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
      
      From-SVN: r236662
      Jakub Jelinek committed
    • sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Limit 1st alternative to noavx isa... · a0caac98
      	* config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
      	Limit 1st alternative to noavx isa, split 2nd alternative into one
      	noavx and one avx alternative, use *x and Bm in the former and
      	x and m in the latter.
      
      From-SVN: r236661
      Jakub Jelinek committed
    • sse.md (vec_set<mode>_0): Use sse4_noavx isa instead of sse4 for the first alternative... · 7733939d
      	* config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
      	of sse4 for the first alternative, drop %v from the template
      	and d operand modifier.  Split second alternative into one sse4_noavx
      	and one avx alternative, use *x instead of *v in the former and v
      	instead of *v in the latter.
      	(*sse4_1_extractps): Use noavx isa instead of * for the first
      	alternative, drop %v from the template.  Split second alternative into
      	one noavx and one avx alternative, use *x instead of *v in the
      	former and v instead of *v in the latter.
      	(<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
      	with noavx and the last one with avx.
      	(sse4_1_phminposuw): Guard first alternative with noavx isa,
      	split the second one into one noavx and one avx alternative,
      	use *x and Bm in the former and x and m in the latter one.
      	(<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
      	alternatives.
      
      From-SVN: r236660
      Jakub Jelinek committed
    • sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit first two alternatives to noavx... · 520c86db
      	* config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
      	first two alternatives to noavx, use *x instead of *v in the second
      	one, add avx alternative without *.
      	(sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
      	sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
      	sse4_1_<code>v2siv2di2<mask_name>): Likewise.
      
      From-SVN: r236659
      Jakub Jelinek committed
    • avx-ceil-sfix-2-vec.c: Define __NO_MATH_INLINES before math.h is included. · a6f5ac7f
      	* gcc.target/i386/avx-ceil-sfix-2-vec.c: Define __NO_MATH_INLINES before
      	math.h is included.
      	* gcc.target/i386/avx-floor-sfix-2-vec.c: Likewise.
      	* gcc.target/i386/avx-rint-sfix-2-vec.c: Likewise.
      	* gcc.target/i386/avx-round-sfix-2-vec.c: Likewise.
      	* gcc.target/i386/avx512f-ceil-sfix-vec-1.c: Likewise.
      	* gcc.target/i386/avx512f-floor-sfix-vec-1.c: Likewise.
      	* gcc.target/i386/sse4_1-ceil-sfix-vec.c: Likewise.
      	* gcc.target/i386/sse4_1-ceil-vec.c: Likewise.
      	* gcc.target/i386/sse4_1-ceilf-sfix-vec.c: Likewise.
      	* gcc.target/i386/sse4_1-ceilf-vec.c: Likewise.
      	* gcc.target/i386/sse4_1-floor-sfix-vec.c: Likewise.
      	* gcc.target/i386/sse4_1-floor-vec.c: Likewise.
      	* gcc.target/i386/sse4_1-rint-sfix-vec.c: Likewise.
      	* gcc.target/i386/sse4_1-rint-vec.c: Likewise.
      	* gcc.target/i386/sse4_1-rintf-sfix-vec.c: Likewise.
      	* gcc.target/i386/sse4_1-rintf-vec.c: Likewise.
      	* gcc.target/i386/sse4_1-round-sfix-vec.c: Likewise.
      	* gcc.target/i386/sse4_1-round-vec.c: Likewise.
      	* gcc.target/i386/sse4_1-roundf-sfix-vec.c: Likewise.
      	* gcc.target/i386/sse4_1-roundf-vec.c: Likewise.
      	* gcc.target/i386/sse4_1-trunc-vec.c: Likewise.
      	* gcc.target/i386/sse4_1-truncf-vec.c: Likewise.
      	* gcc.target/i386/sse4_1-floorf-sfix-vec.c: Likewise.
      	* gcc.target/i386/sse4_1-floorf-vec.c: Likewise.
      
      From-SVN: r236656
      Ilya Verbin committed
    • p9-vpermr.c: New test for ISA 3.0 vpermr support. · 27bad558
      gcc/testsuite/ChangeLog:
      
      2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
      	    Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	* gcc.target/powerpc/p9-vpermr.c: New test for ISA 3.0 vpermr
      	support.
      
      
      
      Co-Authored-By: Kelvin Nilsen <kelvin@gcc.gnu.org>
      
      From-SVN: r236655
      Michael Meissner committed
    • tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path): New function, extracted from... · 081fdda6
      	* tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
      	New function, extracted from...
      	(fsm_find_control_statement_thread_paths): Here.  Use the new function.
      	Allow simple copies and constant initializations in the SSA chain.
      
      From-SVN: r236653
      Jeff Law committed
    • re PR c++/69872 (-Wnarrowing note without warning/errror) · 72f382fb
      /cp
      2016-05-24  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/69872
      	* typeck2.c (check_narrowing): Check pedwarn return value.
      
      /testsuite
      2016-05-24  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/69872
      	* g++.dg/warn/Wno-narrowing1.C: New.
      
      From-SVN: r236651
      Paolo Carlini committed
    • re PR middle-end/71249 (-Wswitch-unreachable false positive for a compound… · ef2ec9d9
      re PR middle-end/71249 (-Wswitch-unreachable false positive for a compound statement containing a used label)
      
      	PR c/71249
      	* gimplify.c (gimplify_switch_expr): Look into the innermost lexical
      	scope.
      
      	* c-c++-common/Wswitch-unreachable-2.c: New test.
      
      From-SVN: r236649
      Marek Polacek committed
    • re PR c++/71257 (OpenMP declare simd linear with ref modifier doesn't accept… · 7adb26f2
      re PR c++/71257 (OpenMP declare simd linear with ref modifier doesn't accept references to non-integer/non-pointer)
      
      	PR c++/71257
      	* tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
      	SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
      	SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
      	SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
      	SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
      
      	* semantics.c (finish_omp_clauses) <case OMP_CLAUSE_LINEAR>:
      	For OMP_CLAUSE_LINEAR_REF don't require type to be
      	integral or pointer.
      
      	* g++.dg/vect/simd-clone-6.cc: New test.
      	* g++.dg/gomp/declare-simd-6.C: New test.
      
      From-SVN: r236648
      Jakub Jelinek committed
    • re PR middle-end/70434 (adding an extraneous cast to vector type results in inferior code) · e90434e3
      	PR middle-end/70434
      	PR c/69504
      	* c-c++-common/vector-subscript-5.c (foo): Move ; out of the ifdef.
      
      From-SVN: r236647
      Jakub Jelinek committed
    • Add priority_queue::value_compare (LWG 2684) · 8be062c6
      	* include/bits/stl_queue.h (priority_queue::value_compare): Define.
      
      From-SVN: r236646
      Jonathan Wakely committed