]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
9 years ago[RTL ifcvt] PR rtl-optimization/66940: Avoid signed overflow in noce_get_alt_condition
ktkachov [Wed, 25 May 2016 15:53:21 +0000 (15:53 +0000)] 
[RTL ifcvt] PR rtl-optimization/66940: Avoid signed overflow in noce_get_alt_condition

PR rtl-optimization/66940
* ifcvt.c (noce_get_alt_condition): Check that incrementing or
decrementing desired_val will not overflow before performing these
operations.

* gcc.c-torture/execute/pr66940.c: New test.

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

9 years agoAVX-512F: Add vectorizer support builtins
iverbin [Wed, 25 May 2016 15:08:14 +0000 (15:08 +0000)] 
AVX-512F: Add vectorizer support builtins

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.

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

9 years ago PR c/71266
mpolacek [Wed, 25 May 2016 14:58:39 +0000 (14:58 +0000)] 
PR c/71266
* c-decl.c (store_parm_decls_oldstyle): Skip non-PARM_DECLs.

* gcc.dg/noncompile/old-style-parm-3.c: New test.

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

9 years ago PR c/71265
mpolacek [Wed, 25 May 2016 14:57:34 +0000 (14:57 +0000)] 
PR c/71265
* c-decl.c (c_make_fname_decl): Don't check seen_error.

* gcc.dg/noncompile/pr71265.c: New test.

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

9 years ago * ru.po: Update.
jsm28 [Wed, 25 May 2016 14:48:34 +0000 (14:48 +0000)] 
* ru.po: Update.

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

9 years ago * config/msp430/msp430.c (msp430_attr): Produce an error if a
nickc [Wed, 25 May 2016 14:31:46 +0000 (14:31 +0000)] 
* 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.

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

9 years ago libgcc/
nathan [Wed, 25 May 2016 12:25:01 +0000 (12:25 +0000)] 
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

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

9 years ago2016-05-25 Richard Biener <rguenther@suse.de>
rguenth [Wed, 25 May 2016 11:49:03 +0000 (11:49 +0000)] 
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.

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

9 years agoFix dump output typo
marxin [Wed, 25 May 2016 11:17:23 +0000 (11:17 +0000)] 
Fix dump output typo

* ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.

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

9 years ago2016-05-25 Richard Biener <rguenther@suse.de>
rguenth [Wed, 25 May 2016 10:57:53 +0000 (10:57 +0000)] 
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.

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

9 years ago2016-05-25 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Wed, 25 May 2016 09:50:46 +0000 (09:50 +0000)] 
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.

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

9 years agoRemove _GLIBCXX14_USE_CONSTEXPR
redi [Wed, 25 May 2016 09:36:28 +0000 (09:36 +0000)] 
Remove _GLIBCXX14_USE_CONSTEXPR

* 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.

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

9 years agoFix PR tree-optimization/71239.
marxin [Wed, 25 May 2016 09:10:16 +0000 (09:10 +0000)] 
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.

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

9 years ago2016-05-25 Richard Biener <rguenther@suse.de>
rguenth [Wed, 25 May 2016 08:52:22 +0000 (08:52 +0000)] 
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.

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

9 years ago2016-05-24 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Wed, 25 May 2016 08:49:22 +0000 (08:49 +0000)] 
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.

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

9 years ago2016-05-25 Richard Biener <rguenther@suse.de>
rguenth [Wed, 25 May 2016 08:21:35 +0000 (08:21 +0000)] 
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.

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

9 years ago* cgraph.c (cgraph_node::get_availability): Fix typo in comment.
edlinger [Wed, 25 May 2016 07:38:32 +0000 (07:38 +0000)] 
* 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.

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

9 years agoDaily bump.
gccadmin [Wed, 25 May 2016 00:16:19 +0000 (00:16 +0000)] 
Daily bump.

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

9 years ago * g++.dg/pr65295.C: Use target c++14.
mpolacek [Tue, 24 May 2016 23:41:06 +0000 (23:41 +0000)] 
* g++.dg/pr65295.C: Use target c++14.

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

9 years ago[gcc]
meissner [Tue, 24 May 2016 23:19:08 +0000 (23:19 +0000)] 
[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.

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

9 years ago gcc/c/
cesar [Tue, 24 May 2016 22:54:21 +0000 (22:54 +0000)] 
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.

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

9 years ago[gcc]
meissner [Tue, 24 May 2016 22:45:45 +0000 (22:45 +0000)] 
[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.

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

9 years ago2016-05-24 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Tue, 24 May 2016 22:38:00 +0000 (22:38 +0000)] 
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.

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

9 years agogcc/ChangeLog:
kugan [Tue, 24 May 2016 22:29:27 +0000 (22:29 +0000)] 
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.

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

9 years ago * gcc.target/powerpc/lhs-1.c: Fix testcase to avoid subreg changes.
pthaugen [Tue, 24 May 2016 22:24:16 +0000 (22:24 +0000)] 
* gcc.target/powerpc/lhs-1.c: Fix testcase to avoid subreg changes.

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

9 years ago2016-05-24 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Tue, 24 May 2016 21:32:29 +0000 (21:32 +0000)] 
2016-05-24  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/50436
* g++.dg/template/crash123.C: New.
* g++.dg/template/crash124.C: Likewise.

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

9 years ago PR c++/70584 - don't force indirection to an rvalue
jason [Tue, 24 May 2016 21:06:53 +0000 (21:06 +0000)] 
PR c++/70584 - don't force indirection to an rvalue

* 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.

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

9 years ago2016-05-24 François Dumont <fdumont@gcc.gnu.org>
fdumont [Tue, 24 May 2016 20:55:57 +0000 (20:55 +0000)] 
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.

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

9 years agoPR c++/71147 - [6 Regression] Flexible array member wrongly rejected in template
msebor [Tue, 24 May 2016 20:29:36 +0000 (20:29 +0000)] 
PR c++/71147 - [6 Regression] Flexible array member wrongly rejected in template

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.

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

9 years ago * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
jakub [Tue, 24 May 2016 19:12:42 +0000 (19:12 +0000)] 
* 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.

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

9 years ago * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
jakub [Tue, 24 May 2016 19:12:06 +0000 (19:12 +0000)] 
* 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.

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

9 years ago * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
jakub [Tue, 24 May 2016 19:11:33 +0000 (19:11 +0000)] 
* 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.

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

9 years ago * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
jakub [Tue, 24 May 2016 19:10:55 +0000 (19:10 +0000)] 
* 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.

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

9 years ago * gcc.target/i386/avx-ceil-sfix-2-vec.c: Define __NO_MATH_INLINES before
iverbin [Tue, 24 May 2016 17:35:17 +0000 (17:35 +0000)] 
* 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.

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

9 years agogcc/testsuite/ChangeLog:
kelvin [Tue, 24 May 2016 17:21:18 +0000 (17:21 +0000)] 
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.

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

9 years ago * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
law [Tue, 24 May 2016 16:57:48 +0000 (16:57 +0000)] 
* 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.

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

9 years ago/cp
paolo [Tue, 24 May 2016 16:41:39 +0000 (16:41 +0000)] 
/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.

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

9 years ago PR c/71249
mpolacek [Tue, 24 May 2016 16:22:31 +0000 (16:22 +0000)] 
PR c/71249
* gimplify.c (gimplify_switch_expr): Look into the innermost lexical
scope.

* c-c++-common/Wswitch-unreachable-2.c: New test.

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

9 years ago PR c++/71257
jakub [Tue, 24 May 2016 16:19:43 +0000 (16:19 +0000)] 
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.

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

9 years ago PR middle-end/70434
jakub [Tue, 24 May 2016 16:14:34 +0000 (16:14 +0000)] 
PR middle-end/70434
PR c/69504
* c-c++-common/vector-subscript-5.c (foo): Move ; out of the ifdef.

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

9 years agoAdd priority_queue::value_compare (LWG 2684)
redi [Tue, 24 May 2016 15:59:05 +0000 (15:59 +0000)] 
Add priority_queue::value_compare (LWG 2684)

* include/bits/stl_queue.h (priority_queue::value_compare): Define.

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

9 years ago * config/i386/i386.c (ix86_preferred_reload_class): Use
uros [Tue, 24 May 2016 15:42:17 +0000 (15:42 +0000)] 
* config/i386/i386.c (ix86_preferred_reload_class): Use
IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.

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

9 years ago2016-05-24 Richard Biener <rguenther@suse.de>
rguenth [Tue, 24 May 2016 14:40:35 +0000 (14:40 +0000)] 
2016-05-24  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71240
* tree-ssa-math-opts.c (init_symbolic_number): Verify the source
has integral type.

* gcc.dg/optimize-bswapsi-5.c: New testcase.

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

9 years ago2016-05-24 Richard Biener <rguenther@suse.de>
rguenth [Tue, 24 May 2016 14:35:36 +0000 (14:35 +0000)] 
2016-05-24  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71230
* tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.

* gcc.dg/torture/pr71230.c: New testcase.
* g++.dg/torture/pr71230.C: Likewise.

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

9 years agoClean up PURE_SLP_STMT handling
rsandifo [Tue, 24 May 2016 14:05:20 +0000 (14:05 +0000)] 
Clean up PURE_SLP_STMT handling

The vectorizable_* routines had many instances of:

        slp_node || PURE_SLP_STMT (stmt_info)

which gives the misleading impression that we can have
!slp_node && PURE_SLP_STMT (stmt_info).  In this context
it's really enough to test slp_node on its own.

There are three cases:

      loop vectorisation only:
        vectorizable_foo called only with !slp_node

      pure SLP:
        vectorizable_foo called only with slp_node

      hybrid SLP:
        (e.g. a vector that's used in SLP statements and also in a reduction)
        - vectorizable_foo called once with slp_node for the SLP uses.
        - vectorizable_foo called once with !slp_node for the non-SLP uses.

Hybrid SLP isn't possible for stores, so I added an explicit assert
for that.

I also made vectorizable_comparison static, to make it obvious that
no other callers outside tree-vect-stmts.c could use it with the
!slp && PURE_SLP_STMT combination.

Tested on aarch64-linux-gnu and x86_64-linux-gnu.

gcc/
* tree-vectorizer.h (vectorizable_comparison): Delete.
* tree-vect-loop.c (vectorizable_reduction): Remove redundant
PURE_SLP_STMT check.
* tree-vect-stmts.c (vectorizable_call): Likewise.
(vectorizable_simd_clone_call): Likewise.
(vectorizable_conversion): Likewise.
(vectorizable_assignment): Likewise.
(vectorizable_shift): Likewise.
(vectorizable_operation): Likewise.
(vectorizable_load): Likewise.
(vectorizable_condition): Likewise.
(vectorizable_store): Likewise.  Assert that we don't have
hybrid SLP.
(vectorizable_comparison): Make static.  Remove redundant
PURE_SLP_STMT check.
(vect_transform_stmt): Assert that we always have an slp_node
if PURE_SLP_STMT.

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

9 years ago[ARM][4/4] Simplify checks for CONST_INT_P and comparison against 1/0
ktkachov [Tue, 24 May 2016 14:04:03 +0000 (14:04 +0000)] 
[ARM][4/4] Simplify checks for CONST_INT_P and comparison against 1/0

* config/arm/neon.md (ashldi3_neon):  Replace comparison of INTVAL of
operands[2] against 1 with comparison against CONST1_RTX.
(<shift>di3_neon): Likewise.
* config/arm/predicates.md (const0_operand): Replace with comparison
against CONST0_RTX.

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

9 years ago[ARM][3/4] Cleanup casts from INTVAL to [unsigned] HOST_WIDE_INT
ktkachov [Tue, 24 May 2016 14:00:39 +0000 (14:00 +0000)] 
[ARM][3/4] Cleanup casts from INTVAL to [unsigned] HOST_WIDE_INT

* config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
operands[2] against 1 with comparison against CONST1_RTX.
(ashrdi3): Likewise.
(lshrdi3): Likewise.
(ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
UINTVAL.
(ashrsi3): Likewise.
(lshrsi3): Likewise.
(rotrsi3): Likewise.
(define_split above *compareqi_eq0): Likewise.
(define_split above "prologue"): Likewise.
* config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
* config/arm/predicates.md (shift_operator): Likewise.
(shift_nomul_operator): Likewise.
(sat_shift_operator): Likewise.
(thumb1_cmp_operand): Likewise.
(const_neon_scalar_shift_amount_operand): Replace manual range
check with IN_RANGE.
* config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.

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

9 years agoTighten syntax checking for OpenACC routine construct in C
tschwinge [Tue, 24 May 2016 14:00:39 +0000 (14:00 +0000)] 
Tighten syntax checking for OpenACC routine construct in C

gcc/c/
* c-parser.c (c_parser_oacc_routine): Tighten syntax checks.
gcc/testsuite/
* c-c++-common/goacc/routine-5.c: Add tests.
* g++.dg/goacc/routine-2.C: Remove duplicate tests.
* gfortran.dg/goacc/routine-6.f90: Add tests.

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

9 years ago[ARM][2/4] Replace casts of 1 to HOST_WIDE_INT by HOST_WIDE_INT_1 and HOST_WIDE_INT_1U
ktkachov [Tue, 24 May 2016 13:55:19 +0000 (13:55 +0000)] 
[ARM][2/4] Replace casts of 1 to HOST_WIDE_INT by HOST_WIDE_INT_1 and HOST_WIDE_INT_1U

* config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
with HOST_WIDE_INT_1.
(insv): Likewise.
* config/arm/arm.c (optimal_immediate_sequence): Replace cast of
1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
(arm_canonicalize_comparison): Likewise.
(thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
HOST_WIDE_INT_1.
(thumb1_size_rtx_costs): Likewise.
(vfp_const_double_index): Replace cast of 1 to unsigned
HOST_WIDE_INT with HOST_WIDE_INT_1U.
(get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
HOST_WIDE_INT_1.
(arm_asan_shadow_offset): Replace cast of 1 to unsigned
HOST_WIDE_INT with HOST_WIDE_INT_1U.
* config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
HOST_WIDE_INT with HOST_WIDE_INT_1.

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

9 years ago * tree-cfg.h (should_remove_lhs_p): New predicate.
mpolacek [Tue, 24 May 2016 13:34:37 +0000 (13:34 +0000)] 
* tree-cfg.h (should_remove_lhs_p): New predicate.
* cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
* gimplify.c (gimplify_modify_expr): Likewise.
* tree-cfg.c (verify_gimple_call): Likewise.
* tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
* gimple-fold.c: Include "tree-cfg.h".
(gimple_fold_call): Use should_remove_lhs_p.

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

9 years ago2016-05-24 Richard Biener <rguenther@suse.de>
rguenth [Tue, 24 May 2016 12:40:01 +0000 (12:40 +0000)] 
2016-05-24  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71253
* cfganal.h (control_dependences): Make robust against edge
and BB removal.
(control_dependences::control_dependences): Remove edge_list argument.
(control_dependences::get_edge): Remove.
(control_dependences::get_edge_src): Add.
(control_dependences::get_edge_dest): Likewise.
(control_dependences::m_el): Make a vector of edge src/dest index.
* cfganal.c (control_dependences::find_control_dependence): Adjust.
(control_dependences::control_dependences): Likewise.
(control_dependences::~control_dependence): Likewise.
(control_dependences::get_edge): Remove.
(control_dependences::get_edge_src): Add.
(control_dependences::get_edge_dest): Likewise.
* tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
get_edge_src.
(perform_tree_ssa_dce): Adjust.
* tree-loop-distribution.c (create_edge_for_control_dependence): Use
get_edge_src.
(pass_loop_distribution::execute): Adjust.  Do loop destroying
conditional on changed.

* gcc.dg/torture/pr71253.c: New testcase.

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

9 years ago[ARM] PR target/69857 Remove bogus early return false; in gen_operands_ldrd_strd
ktkachov [Tue, 24 May 2016 11:32:35 +0000 (11:32 +0000)] 
[ARM] PR target/69857 Remove bogus early return false; in gen_operands_ldrd_strd

PR target/69857
* config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
return.  Reindent transformation comment and mention the ARM state
behavior.

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

9 years agogcc/testsuite/ChangeLog:
kugan [Tue, 24 May 2016 10:50:01 +0000 (10:50 +0000)] 
gcc/testsuite/ChangeLog:

2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>

PR middle-end/71252
* gfortran.dg/pr71252.f90: New test.

gcc/ChangeLog:

2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>

PR middle-end/71252
* tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert after
build_and_add_sum creates new use stmt.

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

9 years agoAvoid unnecessary peeling for gaps with LD3
rsandifo [Tue, 24 May 2016 10:15:36 +0000 (10:15 +0000)] 
Avoid unnecessary peeling for gaps with LD3

vectorizable_load forces peeling for gaps if the vectorisation factor
is not a multiple of the group size, since in that case we'd normally load
beyond the original scalar accesses but drop the excess elements as part
of a following permute:

          if (loop_vinfo
              && ! STMT_VINFO_STRIDED_P (stmt_info)
              && (GROUP_GAP (vinfo_for_stmt (first_stmt)) != 0
                  || (!slp && vf % GROUP_SIZE (vinfo_for_stmt (first_stmt)) != 0)))

This isn't necessary for LOAD_LANES though, since it loads only the
data needed and does the permute itself.

Tested on aarch64-linux-gnu and x86_64-linux-gnu.

gcc/
* tree-vect-stmts.c (vectorizable_load): Reorder checks so that
load_lanes/grouped_load classification comes first.  Don't check
whether the vectorization factor is a multiple of the group size
for load_lanes.

gcc/testsuite/
* gcc.dg/vect/vect-load-lanes-peeling-1.c: New test.

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

9 years agoFix GROUP_GAP for single-element interleaving
rsandifo [Tue, 24 May 2016 10:13:35 +0000 (10:13 +0000)] 
Fix GROUP_GAP for single-element interleaving

vectorizable_load had a curious "force_peeling" variable, with no
comment explaining why we need it for single-element interleaving
but not for other cases.  I think it's simply because we weren't
initialising the GROUP_GAP correctly for single loads.

Tested on aarch64-linux-gnu and x86_64-linux-gnu.

gcc/
* tree-vect-data-refs.c (vect_analyze_group_access_1): Set
GROUP_GAP for single-element interleaving.
* tree-vect-stmts.c (vectorizable_load): Remove force_peeling
variable.

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

9 years ago2016-05-24 Richard Biener <rguenther@suse.de>
rguenth [Tue, 24 May 2016 07:55:56 +0000 (07:55 +0000)] 
2016-05-24  Richard Biener  <rguenther@suse.de>

PR middle-end/70434
PR c/69504
c-family/
* c-common.h (convert_vector_to_pointer_for_subscript): Rename to ...
(convert_vector_to_array_for_subscript): ... this.
* c-common.c (convert_vector_to_pointer_for_subscript): Use a
VIEW_CONVERT_EXPR to an array type.  Rename to ...
(convert_vector_to_array_for_subscript): ... this.

cp/
* expr.c (mark_exp_read): Handle VIEW_CONVERT_EXPR.
* constexpr.c (cxx_eval_array_reference): Handle indexed
vectors.
* typeck.c (cp_build_array_ref): Adjust.

c/
* c-typeck.c (build_array_ref): Do not complain about indexing
non-lvalue vectors.  Adjust for function name change.

* tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
bases which are accessed with non-invariant indices.
* gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.

* c-c++-common/vector-subscript-4.c: New testcase.
* c-c++-common/vector-subscript-5.c: Likewise.

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

9 years ago2016-05-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Tue, 24 May 2016 06:16:00 +0000 (06:16 +0000)] 
2016-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/71123
* io/list_read (eat_spaces): Eat '\r' as part of spaces.
        fix change log

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

9 years ago2016-05-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Tue, 24 May 2016 06:11:21 +0000 (06:11 +0000)] 
2016-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/70684
* io/list_read (eat_spaces): Eat '\r' as part of spaces.

* gfortran.dg/namelist_90.f: New test

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

9 years ago2016-05-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Tue, 24 May 2016 04:15:39 +0000 (04:15 +0000)] 
2016-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/66461
* scanner.c (gfc_next_char_literal): Clear end_flag when adjusting
current locus back to old_locus.

* gfortran.dg/unexpected_eof.f: New test

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

9 years ago PR c++/70344 - ICE with recursive constexpr
jason [Tue, 24 May 2016 03:34:55 +0000 (03:34 +0000)] 
PR c++/70344 - ICE with recursive constexpr

* constexpr.c (cxx_eval_call_expression): Check for
fun == current_function_decl again.

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

9 years agoDaily bump.
gccadmin [Tue, 24 May 2016 00:16:17 +0000 (00:16 +0000)] 
Daily bump.

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

9 years agogcc/ChangeLog:
kugan [Tue, 24 May 2016 00:14:13 +0000 (00:14 +0000)] 
gcc/ChangeLog:

2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>

PR middle-end/71170
* tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
(add_to_ops_vec): Add stmt_to_insert.
(add_repeat_to_ops_vec): Init stmt_to_insert.
(insert_stmt_before_use): New.
(transform_add_to_multiply): Remove mult_stmt insertion and add it to ops vector.
(get_ops): Init stmt_to_insert.
(maybe_optimize_range_tests): Likewise.
(rewrite_expr_tree): Insert stmt_to_insert before use stmt.
(rewrite_expr_tree_parallel): Likewise.
(reassociate_bb): Likewise.

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

9 years ago[gcc]
meissner [Mon, 23 May 2016 23:42:52 +0000 (23:42 +0000)] 
[gcc]
2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/71201
* config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
ISA 3.0 xxperm fusion alternative.
(altivec_vperm_v8hiv16qi): Likewise.
(altivec_vperm_<mode>_uns_internal): Likewise.
(vperm_v8hiv4si): Likewise.
(vperm_v16qiv8hi): Likewise.

[gcc/testsuite]
2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
    Kelvin Nilsen  <kelvin@gcc.gnu.org>

* gcc.target/powerpc/p9-permute.c: Run test on big endian as well
as little endian.

[gcc]
2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
    Kelvin Nilsen  <kelvin@gcc.gnu.org>

* config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
vpermr/xxpermr on ISA 3.0.
(altivec_expand_vec_perm_le): Likewise.
* config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
(altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
ISA 3.0.

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

9 years ago PR c++/70584 - error with parenthesized builtin arg
jason [Mon, 23 May 2016 21:21:24 +0000 (21:21 +0000)] 
PR c++/70584 - error with parenthesized builtin arg

* cp-gimplify.c (cp_fold) [INDIRECT_REF]: Call
maybe_undo_parenthesized_ref.

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

9 years ago PR c++/70735 - generic lambda and local static variable
jason [Mon, 23 May 2016 21:21:18 +0000 (21:21 +0000)] 
PR c++/70735 - generic lambda and local static variable

* pt.c (tsubst_copy): Just return a local variable from
non-template context.  Don't call rest_of_decl_compilation for
duplicated static locals.
(tsubst_decl): Set DECL_CONTEXT of local static from another
function.

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

9 years ago/cp
paolo [Mon, 23 May 2016 20:50:10 +0000 (20:50 +0000)] 
/cp
2016-05-23  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/70972
* method.c (forward_parm): Use cp_build_reference_type.

/testsuite
2016-05-23  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/70972
* g++.dg/cpp0x/inh-ctor20.C: New.
* g++.dg/cpp0x/inh-ctor21.C: Likewise.

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

9 years ago2016-05-23 François Dumont <fdumont@gcc.gnu.org>
fdumont [Mon, 23 May 2016 20:03:35 +0000 (20:03 +0000)] 
2016-05-23  François Dumont  <fdumont@gcc.gnu.org>

* include/debug/safe_iterator.h
(_Safe_iterator<>::operator->()): Implement using underlying iterator
operator ->.
* include/debug/safe_local_iterator.h
(_Safe_local_iterator<>::operator->()): Likewise.

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

9 years ago/cp
paolo [Mon, 23 May 2016 19:24:22 +0000 (19:24 +0000)] 
/cp
2016-05-22  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/69095
* parser.c (cp_parser_default_argument): Call
check_for_bare_parameter_packs.
(cp_parser_late_parsing_default_args): Likewise.

/testsuite
2016-05-22  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/69095
* g++.dg/cpp0x/variadic168.C: New.

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

9 years ago/cp
paolo [Mon, 23 May 2016 19:20:41 +0000 (19:20 +0000)] 
/cp
2016-05-23  Paolo Carlini  <paolo.carlini@oracle.com>

* pt.c (check_for_bare_parameter_packs): Improve error message
location for expressions.

/testsuite
2016-05-23  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/cpp0x/pr31445.C: Test column number too.
* g++.dg/cpp0x/pr32253.C: Likewise.
* g++.dg/cpp0x/variadic-ex13.C: Likewise.
* g++.dg/cpp0x/variadic36.C: Likewise.

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

9 years ago * config/i386/i386.h (IS_STACK_MODE): Enable for
uros [Mon, 23 May 2016 18:59:38 +0000 (18:59 +0000)] 
* config/i386/i386.h (IS_STACK_MODE): Enable for
TARGET_MIX_SSE_I387.  Rewrite using X87_FLOAT_MODE_P and
SSE_FLOAT_MODE_P macros.
* config/i386/i386.c (ix86_preferred_reload_class): Use
IS_STACK_MODE, INTEGER_CLASS_P and FLOAT_CLASS_P macros.  Cleanup
regclass processing for CONST_DOUBLE_P.
(ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
(ix86_rtx_costs): Remove redundant TARGET_80387 check
with IS_STACK_MODE macro.
* config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
with TARGET_SSE2.
(*movdf_internal): Use IS_STACK_MODE macro.
(*movsf_internal): Ditto.

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

9 years agomatch.pd: Relax some tree_nop_conversion_p
glisse [Mon, 23 May 2016 17:49:10 +0000 (17:49 +0000)] 
match.pd: Relax some tree_nop_conversion_p

2016-05-23  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.

gcc/testsuite/
* gcc.dg/fold-notshift-2.c: Adjust.

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

9 years ago * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
law [Mon, 23 May 2016 16:59:29 +0000 (16:59 +0000)] 
* tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
extracted from ...
(fsm_find_control_statement_thread_paths): Call it.

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

9 years ago[PR 71234] Avoid valgrind warning in ipa-cp
jamborm [Mon, 23 May 2016 16:31:14 +0000 (16:31 +0000)] 
[PR 71234] Avoid valgrind warning in ipa-cp

2016-05-23  Martin Jambor  <mjambor@suse.cz>

PR ipa/71234
* ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
from_global_constant if t is not NULL.

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

9 years ago PR c/49859
mpolacek [Mon, 23 May 2016 15:37:09 +0000 (15:37 +0000)] 
PR c/49859
* common.opt (Wswitch-unreachable): New option.
* doc/invoke.texi: Document -Wswitch-unreachable.
* gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
warning.

* c-c++-common/Wswitch-unreachable-1.c: New test.
* gcc.dg/Wswitch-unreachable-1.c: New test.
* c-c++-common/goacc/sb-2.c (void foo): Add dg-warning.
* g++.dg/cpp0x/lambda/lambda-switch.C (main): Likewise.
* g++.dg/gomp/block-10.C: Likewise.
* gcc.dg/gomp/block-10.c: Likewise.
* g++.dg/gomp/block-9.C: Likewise.
* gcc.dg/gomp/block-9.c: Likewise.
* g++.dg/gomp/target-1.C: Likewise.
* g++.dg/gomp/target-2.C: Likewise.
* gcc.dg/gomp/target-1.c: Likewise.
* gcc.dg/gomp/target-2.c: Likewise.
* g++.dg/gomp/taskgroup-1.C: Likewise.
* gcc.dg/gomp/taskgroup-1.c: Likewise.
* gcc.dg/gomp/teams-1.c: Likewise.
* g++.dg/gomp/teams-1.C: Likewise.
* g++.dg/overload/error3.C: Likewise.
* g++.dg/tm/jump1.C: Likewise.
* g++.dg/torture/pr40335.C: Likewise.
* gcc.dg/c99-vla-jump-5.c: Likewise.
* gcc.dg/switch-warn-1.c: Likewise.
* gcc.dg/Wjump-misses-init-1.c: Use -Wno-switch-unreachable.
* gcc.dg/nested-func-1.c: Likewise.
* gcc.dg/pr67784-4.c: Likewise.

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

9 years ago[PR libffi/65567] libffi: Fix, and simply libffi_feature_test
tschwinge [Mon, 23 May 2016 14:54:04 +0000 (14:54 +0000)] 
[PR libffi/65567] libffi: Fix, and simply libffi_feature_test

libffi/
PR libffi/65567
* testsuite/lib/libffi.exp (libffi_feature_test): Fix, and simply.

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

9 years ago * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
amker [Mon, 23 May 2016 14:44:07 +0000 (14:44 +0000)] 
* tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
TMR_INDEX is non-NULL.

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

9 years ago2016-05-23 Richard Biener <rguenther@suse.de>
rguenth [Mon, 23 May 2016 14:09:35 +0000 (14:09 +0000)] 
2016-05-23  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71230
* tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
(try_special_add_to_ops): ... here.  Always test for single-use.

* gfortran.dg/pr71230-1.f90: New testcase.
* gfortran.dg/pr71230-2.f90: Likewise.

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

9 years ago[hsa] Avoid segfault in hsa switch expansion
jamborm [Mon, 23 May 2016 11:45:13 +0000 (11:45 +0000)] 
[hsa] Avoid segfault in hsa switch expansion

2016-05-23  Martin Jambor  <mjambor@suse.cz>

* hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
default block if a PHI node in the original one would be resized.

libgomp/
* testsuite/libgomp.hsa.c/switch-sbr-2.c: New test.

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

9 years agoFix PR58135.
vekumar [Mon, 23 May 2016 09:48:54 +0000 (09:48 +0000)] 
Fix PR58135.

2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

PR tree-optimization/58135
* tree-vect-slp.c: When group size is not multiple
of vector size, allow splitting of store group at
vector boundary.

2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

* gcc.dg/vect/bb-slp-19.c:  Remove XFAIL.
* gcc.dg/vect/pr58135.c:  Add new.
* gfortran.dg/pr46519-1.f: Adjust test case.

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

9 years ago2016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Mon, 23 May 2016 09:23:42 +0000 (09:23 +0000)] 
2016-05-23  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/53401
* g++.dg/cpp0x/decltype64.C: New.

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

9 years ago[ARM, AArch64] Add missing tests for vreinterpret, operating of fp16 type.
clyon [Mon, 23 May 2016 09:16:12 +0000 (09:16 +0000)] 
[ARM, AArch64] Add missing tests for vreinterpret, operating of fp16 type.

2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vreinterpret.c: Add fp16 tests.
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c: Likewise.

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

9 years ago[ARM, AArch64] Add missing tests for intrinsics operating on poly64 and poly128 types.
clyon [Mon, 23 May 2016 09:14:37 +0000 (09:14 +0000)] 
[ARM, AArch64] Add missing tests for intrinsics operating on poly64 and poly128 types.

2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h (result):
Add poly64x1_t and poly64x2_t cases if supported.
* gcc.target/aarch64/advsimd-intrinsics/compute-ref-data.h
(buffer, buffer_pad, buffer_dup, buffer_dup_pad): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/p64_p128.c: New file.
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c: New file.
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c: New file.

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

9 years ago[ARM, AArch64] Add missing vrnd{,a,m,n,p,x} tests.
clyon [Mon, 23 May 2016 09:05:34 +0000 (09:05 +0000)] 
[ARM, AArch64] Add missing vrnd{,a,m,n,p,x} tests.

2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vrnd.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vrndX.inc: New.
* gcc.target/aarch64/advsimd-intrinsics/vrnda.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vrndm.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vrndn.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vrndp.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vrndx.c: New.

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

9 years ago[ARM, AArch64] Add missing vstX_lane fp16 tests.
clyon [Mon, 23 May 2016 09:02:51 +0000 (09:02 +0000)] 
[ARM, AArch64] Add missing vstX_lane fp16 tests.

2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vstX_lane.c: Add fp16 tests.

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

9 years ago[ARM, AArch64] Add missing vtst_p16 and vtstq_p16, and vtst_p{8,16} and vtstq_p{8...
clyon [Mon, 23 May 2016 08:59:26 +0000 (08:59 +0000)] 
[ARM, AArch64] Add missing vtst_p16 and vtstq_p16, and vtst_p{8,16} and vtstq_p{8,16} tests.

2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/
* config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.

gcc/testsuite/
* gcc.target/aarch64/advsimd-intrinsics/vtst.c: Add tests for
vtst_p8, vtstq_p8, vtst_p16 and vtstq_p16.

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

9 years agoDaily bump.
gccadmin [Mon, 23 May 2016 00:16:25 +0000 (00:16 +0000)] 
Daily bump.

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

9 years ago * gcc.target/i386/avx512bw-kunpckdq-1.c (avx512bw_test): Use "m"
jakub [Sun, 22 May 2016 18:01:43 +0000 (18:01 +0000)] 
* gcc.target/i386/avx512bw-kunpckdq-1.c (avx512bw_test): Use "m"
constraint instead of "r".
* gcc.target/i386/avx512f-additional-reg-names.c (foo): Use vpxord
insn instead of vxorpd.
* gcc.target/i386/strinline.c: Add dg-require-effective-target ia32.

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

9 years agoRevert:
uros [Sun, 22 May 2016 17:20:10 +0000 (17:20 +0000)] 
Revert:

gcc/

PR target/70738
* common/config/i386/i386-common.c
(OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
(ix86_handle_option): Disable MPX, MMX, SSE and x87 instructions
for -mgeneral-regs-only.
* config/i386/i386.c (ix86_option_override_internal): Don't
enable x87 instructions if only the general registers are
allowed.
* config/i386/i386.opt: Add -mgeneral-regs-only.
* doc/invoke.texi: Document -mgeneral-regs-only.

gcc/testsuite/

PR target/70738
* gcc.target/i386/pr70738-1.c: Likewise.
* gcc.target/i386/pr70738-2.c: Likewise.
* gcc.target/i386/pr70738-3.c: Likewise.
* gcc.target/i386/pr70738-4.c: Likewise.
* gcc.target/i386/pr70738-5.c: Likewise.
* gcc.target/i386/pr70738-6.c: Likewise.
* gcc.target/i386/pr70738-7.c: Likewise.
* gcc.target/i386/pr70738-8.c: Likewise.
* gcc.target/i386/pr70738-9.c: Likewise.

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

9 years ago * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
jakub [Sun, 22 May 2016 10:28:06 +0000 (10:28 +0000)] 
* config/i386/sse.md (vec_set_lo_<mode><mask_name>,
vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
condition.  For !TARGET_AVX512DQ, emit 32x4 instruction instead
of 64x2.

* gcc.target/i386/avx512dq-vinsert-1.c: New test.
* gcc.target/i386/avx512vl-vinsert-1.c: New test.

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

9 years ago * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
jakub [Sun, 22 May 2016 10:27:27 +0000 (10:27 +0000)] 
* config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
v constraint instead of x and vinserti32x4 insn.

* gcc.target/i386/avx512vl-vinserti32x4-3.c: New test.

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

9 years ago * config/i386/sse.md (i128vldq): New mode iterator.
jakub [Sun, 22 May 2016 10:26:52 +0000 (10:26 +0000)] 
* config/i386/sse.md (i128vldq): New mode iterator.
(avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
avx512dq and avx512vl alternatives.

* gcc.target/i386/avx512dq-vbroadcast-2.c: New test.
* gcc.target/i386/avx512vl-vbroadcast-2.c: New test.

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

9 years ago * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
jakub [Sun, 22 May 2016 10:25:55 +0000 (10:25 +0000)] 
* config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
constraint, use maybe_evex prefix instead of vex.
(vec_dupv4sf): Use v constraint instead of x for output
operand except for noavx alternative, use Yv constraint
instead of x for input.  Use maybe_evex prefix instead of vex.
(*vec_dupv4si): Likewise.
(*vec_dupv2di): Likewise.

* gcc.target/i386/avx512vl-vbroadcast-1.c: New test.

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

9 years agogcc/testsuite/ChangeLog:
kugan [Sun, 22 May 2016 08:13:13 +0000 (08:13 +0000)] 
gcc/testsuite/ChangeLog:

2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>

PR middle-end/40921
* gcc.dg/tree-ssa/pr40921.c: New test.

gcc/ChangeLog:

2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>

PR middle-end/40921
        * tree-ssa-reassoc.c (try_special_add_to_ops): New.
        (linearize_expr_tree): Call try_special_add_to_ops.
        (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.

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

9 years agoDaily bump.
gccadmin [Sun, 22 May 2016 00:16:19 +0000 (00:16 +0000)] 
Daily bump.

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

9 years ago * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
denisc [Sat, 21 May 2016 10:54:09 +0000 (10:54 +0000)] 
* config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
to computed stack_usage.

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

9 years ago PR target/71103
denisc [Sat, 21 May 2016 10:47:27 +0000 (10:47 +0000)] 
PR target/71103
* config/avr/avr.md (define_expand "mov<mode>"): If the source
operand is subreg (symbol_ref) then move the symbol ref to register.

PR target/71103
* gcc.target/avr/pr71103.c: New test.

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

9 years ago * tree.c (array_at_struct_end_p): Look through MEM_REF.
hubicka [Sat, 21 May 2016 09:46:22 +0000 (09:46 +0000)] 
* tree.c (array_at_struct_end_p): Look through MEM_REF.

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

9 years agogcc/testsuite/ChangeLog:
kugan [Sat, 21 May 2016 07:09:16 +0000 (07:09 +0000)] 
gcc/testsuite/ChangeLog:

2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>

PR middle-end/71179
* gcc.dg/tree-ssa/pr71179.c: New test.

gcc/ChangeLog:

2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>

PR middle-end/71179
* tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
VECTOR type.

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

9 years agoDaily bump.
gccadmin [Sat, 21 May 2016 00:16:21 +0000 (00:16 +0000)] 
Daily bump.

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

9 years agoPR c/71115 - [4.9/5/6/7 Regression] Missing warning: excess elements
msebor [Fri, 20 May 2016 22:23:10 +0000 (22:23 +0000)] 
PR c/71115 - [4.9/5/6/7 Regression] Missing warning: excess elements
in struct initializer

gcc/c/ChangeLog:
2016-05-20  Martin Sebor  <msebor@redhat.com>

PR c/71115
* c-typeck.c (error_init): Use
expansion_point_location_if_in_system_header.
(warning_init): Same.

gcc/testsuite/ChangeLog:
2016-05-20  Martin Sebor  <msebor@redhat.com>

PR c/71115
* gcc.dg/init-excess-2.c: New test.

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