1. 21 Oct, 2018 8 commits
    • i386: Enable AVX512 memory broadcast for FNMSUB · 38ef6fb1
      Many AVX512 vector operations can broadcast from a scalar memory source.
      This patch enables memory broadcast for FNMSUB operations.  In order to
      support AVX512 memory broadcast for FNMSUB, FNMSUB builtin functions are
      also added, instead of passing the negated value to FMA builtin functions.
      
      gcc/
      
      	PR target/72782
      	* config/i386/avx512fintrin.h (_mm512_fnmsub_round_pd): Use
      	__builtin_ia32_vfnmsubpd512_mask.
      	(_mm512_mask_fnmsub_round_pd): Likewise.
      	(_mm512_fnmsub_pd): Likewise.
      	(_mm512_mask_fnmsub_pd): Likewise.
      	(_mm512_maskz_fnmsub_round_pd): Use
      	__builtin_ia32_vfnmsubpd512_maskz.
      	(_mm512_maskz_fnmsub_pd): Likewise.
      	(_mm512_fnmsub_round_ps): Use __builtin_ia32_vfnmsubps512_mask.
      	(_mm512_mask_fnmsub_round_ps): Likewise.
      	(_mm512_fnmsub_ps): Likewise.
      	(_mm512_mask_fnmsub_ps): Likewise.
      	(_mm512_maskz_fnmsub_round_ps): Use
      	__builtin_ia32_vfnmsubps512_maskz.
      	(_mm512_maskz_fnmsub_ps): Likewise.
      	* config/i386/avx512vlintrin.h (_mm256_mask_fnmsub_pd): Use
      	__builtin_ia32_vfnmsubpd256_mask.
      	(_mm256_maskz_fnmsub_pd): Use __builtin_ia32_vfnmsubpd256_maskz.
      	(_mm_mask_fnmsub_pd): Use __builtin_ia32_vfmaddpd128_mask
      	(_mm_maskz_fnmsub_pd): Use __builtin_ia32_vfnmsubpd128_maskz.
      	(_mm256_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_mask.
      	(_mm256_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_mask.
      	(_mm256_maskz_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_maskz.
      	(_mm_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps128_mask.
      	(_mm_maskz_fnmsub_ps): Use __builtin_ia32_vfnmsubps128_maskz.
      	* config/i386/fmaintrin.h (_mm_fnmsub_pd): Use
      	__builtin_ia32_vfnmsubpd.
      	(_mm256_fnmsub_pd): Use __builtin_ia32_vfnmsubpd256.
      	(_mm_fnmsub_ps): Use __builtin_ia32_vfnmsubps.
      	(_mm256_fnmsub_ps): Use __builtin_ia32_vfnmsubps256.
      	(_mm_fnmsub_sd): Use __builtin_ia32_vfnmsubsd3.
      	(_mm_fnmsub_ss): Use __builtin_ia32_vfnmsubss3.
      	* config/i386/i386-builtin.def: Add
      	__builtin_ia32_vfnmsubpd256_mask,
      	__builtin_ia32_vfnmsubpd256_maskz,
      	__builtin_ia32_vfnmsubpd128_mask,
      	__builtin_ia32_vfnmsubpd128_maskz,
      	__builtin_ia32_vfnmsubps256_mask,
      	__builtin_ia32_vfnmsubps256_maskz,
      	__builtin_ia32_vfnmsubps128_mask,
      	__builtin_ia32_vfnmsubps128_maskz,
      	__builtin_ia32_vfnmsubpd512_mask,
      	__builtin_ia32_vfnmsubpd512_maskz,
      	__builtin_ia32_vfnmsubps512_mask,
      	__builtin_ia32_vfnmsubps512_maskz, __builtin_ia32_vfnmsubss3,
      	__builtin_ia32_vfnmsubsd3, __builtin_ia32_vfnmsubps,
      	__builtin_ia32_vfnmsubpd, __builtin_ia32_vfnmsubps256 and.
      	__builtin_ia32_vfnmsubpd256.
      	* config/i386/sse.md (fma4i_fnmsub_<mode>): New.
      	(<avx512>_fnmsub_<mode>_maskz<round_expand_name>): Likewise.
      	(*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1):
      	Likewise.
      	(*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_2):
      	Likewise.
      	(*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_3):
      	Likewise.
      	(fmai_vmfnmsub_<mode><round_name>): Likewise.
      
      gcc/testsuite/
      
      	PR target/72782
      	* gcc.target/i386/avx512f-fnmsub-df-zmm-1.c: New test.
      	* gcc.target/i386/avx512f-fnmsub-sf-zmm-1.c: Likewise.
      	* gcc.target/i386/avx512f-fnmsub-sf-zmm-2.c: Likewise.
      	* gcc.target/i386/avx512f-fnmsub-sf-zmm-3.c: Likewise.
      	* gcc.target/i386/avx512f-fnmsub-sf-zmm-4.c: Likewise.
      	* gcc.target/i386/avx512f-fnmsub-sf-zmm-5.c: Likewise.
      	* gcc.target/i386/avx512f-fnmsub-sf-zmm-6.c: Likewise.
      	* gcc.target/i386/avx512f-fnmsub-sf-zmm-7.c: Likewise.
      	* gcc.target/i386/avx512f-fnmsub-sf-zmm-8.c: Likewise.
      	* gcc.target/i386/avx512vl-fnmsub-sf-xmm-1.c: Likewise.
      	* gcc.target/i386/avx512vl-fnmsub-sf-ymm-1.c: Likewise.
      
      From-SVN: r265358
      H.J. Lu committed
    • i386: Enable AVX512 memory broadcast for FNMADD · 5ca94977
      Many AVX512 vector operations can broadcast from a scalar memory source.
      This patch enables memory broadcast for FNMADD operations.  In order to
      support AVX512 memory broadcast for FNMADD, FNMADD builtin functions are
      also added, instead of passing the negated value to FMA builtin functions.
      
      gcc/
      
      	PR target/72782
      	* config/i386/avx512fintrin.h (_mm512_fnmadd_round_pd): Use
      	__builtin_ia32_vfnmaddpd512_mask.
      	(_mm512_mask_fnmadd_round_pd): Likewise.
      	(_mm512_fnmadd_pd): Likewise.
      	(_mm512_mask_fnmadd_pd): Likewise.
      	(_mm512_maskz_fnmadd_round_pd): Use
      	__builtin_ia32_vfnmaddpd512_maskz.
      	(_mm512_maskz_fnmadd_pd): Likewise.
      	(_mm512_fnmadd_round_ps): Use __builtin_ia32_vfnmaddps512_mask.
      	(_mm512_mask_fnmadd_round_ps): Likewise.
      	(_mm512_fnmadd_ps): Likewise.
      	(_mm512_mask_fnmadd_ps): Likewise.
      	(_mm512_maskz_fnmadd_round_ps): Use
      	__builtin_ia32_vfnmaddps512_maskz.
      	(_mm512_maskz_fnmadd_ps): Likewise.
      	* config/i386/avx512vlintrin.h (_mm256_mask_fnmadd_pd): Use
      	__builtin_ia32_vfnmaddpd256_mask.
      	(_mm256_maskz_fnmadd_pd): Use __builtin_ia32_vfnmaddpd256_maskz.
      	(_mm_mask_fnmadd_pd): Use __builtin_ia32_vfmaddpd128_mask
      	(_mm_maskz_fnmadd_pd): Use __builtin_ia32_vfnmaddpd128_maskz.
      	(_mm256_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_mask.
      	(_mm256_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_mask.
      	(_mm256_maskz_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_maskz.
      	(_mm_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps128_mask.
      	(_mm_maskz_fnmadd_ps): Use __builtin_ia32_vfnmaddps128_maskz.
      	* config/i386/fmaintrin.h (_mm_fnmadd_pd): Use
      	__builtin_ia32_vfnmaddpd.
      	(_mm256_fnmadd_pd): Use __builtin_ia32_vfnmaddpd256.
      	(_mm_fnmadd_ps): Use __builtin_ia32_vfnmaddps.
      	(_mm256_fnmadd_ps): Use __builtin_ia32_vfnmaddps256.
      	(_mm_fnmadd_sd): Use __builtin_ia32_vfnmaddsd3.
      	(_mm_fnmadd_ss): Use __builtin_ia32_vfnmaddss3.
      	* config/i386/i386-builtin.def: Add
      	__builtin_ia32_vfnmaddpd256_mask,
      	__builtin_ia32_vfnmaddpd256_maskz,
      	__builtin_ia32_vfnmaddpd128_mask,
      	__builtin_ia32_vfnmaddpd128_maskz,
      	__builtin_ia32_vfnmaddps256_mask,
      	__builtin_ia32_vfnmaddps256_maskz,
      	__builtin_ia32_vfnmaddps128_mask,
      	__builtin_ia32_vfnmaddps128_maskz,
      	__builtin_ia32_vfnmaddpd512_mask,
      	__builtin_ia32_vfnmaddpd512_maskz,
      	__builtin_ia32_vfnmaddps512_mask,
      	__builtin_ia32_vfnmaddps512_maskz, __builtin_ia32_vfnmaddss3,
      	__builtin_ia32_vfnmaddsd3, __builtin_ia32_vfnmaddps,
      	__builtin_ia32_vfnmaddpd, __builtin_ia32_vfnmaddps256 and.
      	__builtin_ia32_vfnmaddpd256.
      	* config/i386/sse.md (fma4i_fnmadd_<mode>): New.
      	(<avx512>_fnmadd_<mode>_maskz<round_expand_name>): Likewise.
      	(*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1):
      	Likewise.
      	(*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_2):
      	Likewise.
      	(*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_3):
      	Likewise.
      	(fmai_vmfnmadd_<mode><round_name>): Likewise.
      
      gcc/testsuite/
      
      	PR target/72782
      	* gcc.target/i386/avx512f-fnmadd-df-zmm-1.c: New test.
      	* gcc.target/i386/avx512f-fnmadd-sf-zmm-1.c: Likewise.
      	* gcc.target/i386/avx512f-fnmadd-sf-zmm-2.c: Likewise.
      	* gcc.target/i386/avx512f-fnmadd-sf-zmm-3.c: Likewise.
      	* gcc.target/i386/avx512f-fnmadd-sf-zmm-4.c: Likewise.
      	* gcc.target/i386/avx512f-fnmadd-sf-zmm-5.c: Likewise.
      	* gcc.target/i386/avx512f-fnmadd-sf-zmm-6.c: Likewise.
      	* gcc.target/i386/avx512f-fnmadd-sf-zmm-7.c: Likewise.
      	* gcc.target/i386/avx512f-fnmadd-sf-zmm-8.c: Likewise.
      	* gcc.target/i386/avx512vl-fnmadd-sf-xmm-1.c: Likewise.
      	* gcc.target/i386/avx512vl-fnmadd-sf-ymm-1.c: Likewise.
      
      From-SVN: r265357
      H.J. Lu committed
    • Enable AVX512 memory broadcast for FMSUB · fe7f972d
      Many AVX512 vector operations can broadcast from a scalar memory source.
      This patch enables memory broadcast for FMSUB operations.  In order to
      support AVX512 memory broadcast for FMSUB, FMSUB builtin functions are
      also added, instead of passing the negated value to FMA builtin functions.
      
      gcc/
      
      	PR target/72782
      	* config/i386/avx512fintrin.h (_mm512_fmsub_round_pd): Use
      	__builtin_ia32_vfmsubpd512_mask.
      	(_mm512_mask_fmsub_round_pd): Likewise.
      	(_mm512_fmsub_pd): Likewise.
      	(_mm512_mask_fmsub_pd): Likewise.
      	(_mm512_maskz_fmsub_round_pd): Use
      	__builtin_ia32_vfmsubpd512_maskz.
      	(_mm512_maskz_fmsub_pd): Likewise.
      	(_mm512_fmsub_round_ps): Use __builtin_ia32_vfmsubps512_mask.
      	(_mm512_mask_fmsub_round_ps): Likewise.
      	(_mm512_fmsub_ps): Likewise.
      	(_mm512_mask_fmsub_ps): Likewise.
      	(_mm512_maskz_fmsub_round_ps): Use
      	__builtin_ia32_vfmsubps512_maskz.
      	(_mm512_maskz_fmsub_ps): Likewise.
      	* config/i386/avx512vlintrin.h (_mm256_mask_fmsub_pd): Use
      	__builtin_ia32_vfmsubpd256_mask.
      	(_mm256_maskz_fmsub_pd): Use __builtin_ia32_vfmsubpd256_maskz.
      	(_mm_mask_fmsub_pd): Use __builtin_ia32_vfmaddpd128_mask
      	(_mm_maskz_fmsub_pd): Use __builtin_ia32_vfmsubpd128_maskz.
      	(_mm256_mask_fmsub_ps): Use __builtin_ia32_vfmsubps256_mask.
      	(_mm256_mask_fmsub_ps): Use __builtin_ia32_vfmsubps256_mask.
      	(_mm256_maskz_fmsub_ps): Use __builtin_ia32_vfmsubps256_maskz.
      	(_mm_mask_fmsub_ps): Use __builtin_ia32_vfmsubps128_mask.
      	(_mm_maskz_fmsub_ps): Use __builtin_ia32_vfmsubps128_maskz.
      	* config/i386/fmaintrin.h (_mm_fmsub_pd): Use
      	__builtin_ia32_vfmsubpd.
      	(_mm256_fmsub_pd): Use __builtin_ia32_vfmsubpd256.
      	(_mm_fmsub_ps): Use __builtin_ia32_vfmsubps.
      	(_mm256_fmsub_ps): Use __builtin_ia32_vfmsubps256.
      	(_mm_fmsub_sd): Use __builtin_ia32_vfmsubsd3.
      	(_mm_fmsub_ss): Use __builtin_ia32_vfmsubss3.
      	* config/i386/i386-builtin.def: Add
      	__builtin_ia32_vfmsubpd256_mask,
      	__builtin_ia32_vfmsubpd256_maskz,
      	__builtin_ia32_vfmsubpd128_mask,
      	__builtin_ia32_vfmsubpd128_maskz,
      	__builtin_ia32_vfmsubps256_mask,
      	__builtin_ia32_vfmsubps256_maskz,
      	__builtin_ia32_vfmsubps128_mask,
      	__builtin_ia32_vfmsubps128_maskz,
      	__builtin_ia32_vfmsubpd512_mask,
      	__builtin_ia32_vfmsubpd512_maskz,
      	__builtin_ia32_vfmsubps512_mask,
      	__builtin_ia32_vfmsubps512_maskz, __builtin_ia32_vfmsubss3,
      	__builtin_ia32_vfmsubsd3, __builtin_ia32_vfmsubps,
      	__builtin_ia32_vfmsubpd, __builtin_ia32_vfmsubps256 and.
      	__builtin_ia32_vfmsubpd256.
      	* config/i386/sse.md (fma4i_fmsub_<mode>): New.
      	(<avx512>_fmsub_<mode>_maskz<round_expand_name>): Likewise.
      	(*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1):
      	Likewise.
      	(*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_2):
      	Likewise.
      	(*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_3):
      	Likewise.
      	(fmai_vmfmsub_<mode><round_name>): Likewise.
      
      gcc/testsuite/
      
      	PR target/72782
      	* gcc.target/i386/avx512f-fmsub-df-zmm-1.c: New test.
      	* gcc.target/i386/avx512f-fmsub-sf-zmm-1.c: Likewise.
      	* gcc.target/i386/avx512f-fmsub-sf-zmm-2.c: Likewise.
      	* gcc.target/i386/avx512f-fmsub-sf-zmm-3.c: Likewise.
      	* gcc.target/i386/avx512f-fmsub-sf-zmm-4.c: Likewise.
      	* gcc.target/i386/avx512f-fmsub-sf-zmm-5.c: Likewise.
      	* gcc.target/i386/avx512f-fmsub-sf-zmm-6.c: Likewise.
      	* gcc.target/i386/avx512f-fmsub-sf-zmm-7.c: Likewise.
      	* gcc.target/i386/avx512f-fmsub-sf-zmm-8.c: Likewise.
      	* gcc.target/i386/avx512vl-fmsub-sf-xmm-1.c: Likewise.
      	* gcc.target/i386/avx512vl-fmsub-sf-ymm-1.c: Likewise.
      
      From-SVN: r265356
      H.J. Lu committed
    • re PR fortran/71880 (pointer to allocatable character) · 88c08ac4
      2018-10-21  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/71880
      	* trans-expr.c (gfc_trans_pointer_assignment): Set the string
      	length for array valued deferred length lhs.
      
      2018-10-21  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/71880
      	* gfortran.dg/deferred_character_31.f90 : New test.
      
      From-SVN: r265353
      Paul Thomas committed
    • i386: Update FP add/sub with AVX512 memory broadcast · ea1adf1d
      	* config/i386/sse.md (*<plusminus_insn><mode>3<mask_name>_bcst_1):
      	Remove plus.  Renamed to ...
      	(*sub<mode>3<mask_name>_bcst): This.
      	(*add<mode>3<mask_name>_bcst_2): Renamede to ...
      	(*add<mode>3<mask_name>_bcst): This.
      
      From-SVN: r265352
      H.J. Lu committed
    • i386: Enable AVX512 memory broadcast for FP mul · c038638e
      Many AVX512 vector operations can broadcast from a scalar memory source.
      This patch enables memory broadcast for FP mul operations.
      
      gcc/
      
      	PR target/72782
      	* config/i386/sse.md (*mul<mode>3<mask_name>_bcst): New.
      
      gcc/testsuite/
      
      	PR target/72782
      	* gcc.target/i386/avx512f-mul-df-zmm-1.c: New test.
      	* gcc.target/i386/avx512f-mul-sf-zmm-1.c: Likewise.
      	* gcc.target/i386/avx512f-mul-sf-zmm-2.c: Likewise.
      	* gcc.target/i386/avx512f-mul-sf-zmm-3.c: Likewise.
      	* gcc.target/i386/avx512f-mul-sf-zmm-4.c: Likewise.
      	* gcc.target/i386/avx512f-mul-sf-zmm-5.c: Likewise.
      	* gcc.target/i386/avx512f-mul-sf-zmm-6.c: Likewise.
      	* gcc.target/i386/avx512vl-mul-sf-xmm-1.c: Likewise.
      	* gcc.target/i386/avx512vl-mul-sf-ymm-1.c: Likewise.
      
      From-SVN: r265351
      H.J. Lu committed
    • i386: Add missing AVX512VL or/xor intrinsics · 01fd9f8d
      gcc/
      
      	PR target/87662
      	* i386/avx512vlintrin.h (_mm256_or_epi32): New.
      	(_mm_or_epi32): Likewise.
      	(_mm256_xor_epi32): Likewise.
      	(_mm_xor_epi32): Likewise.
      	(_mm256_or_epi64): Likewise.
      	(_mm_or_epi64): Likewise.
      	(_mm256_xor_epi64): Likewise.
      	(_mm_xor_epi64): Likewise.
      
      gcc/testsuite/
      
      	PR target/87662
      	* gcc.target/i386/pr87662.c
      
      From-SVN: r265350
      H.J. Lu committed
    • Daily bump. · 69862942
      From-SVN: r265349
      GCC Administrator committed
  2. 20 Oct, 2018 6 commits
  3. 19 Oct, 2018 22 commits
    • re PR middle-end/85488 (segmentation fault when compiling code using the… · 173670e2
      re PR middle-end/85488 (segmentation fault when compiling code using the ordered(n) clause in OpenMP 4.5)
      
      	PR middle-end/85488
      	PR middle-end/87649
      	* omp-low.c (check_omp_nesting_restrictions): Diagnose ordered without
      	depend closely nested inside of loop with ordered clause with
      	a parameter.
      
      	* c-c++-common/gomp/doacross-2.c: New test.
      	* c-c++-common/gomp/sink-3.c: Expect another error during error
      	recovery.
      
      From-SVN: r265335
      Jakub Jelinek committed
    • Skip tests for GNU extensions when testing with strict mode · f3245887
      Tests for the implicit allocator rebinding extension will fail if the
      extension is disabled, so skip them.
      
      	* testsuite/23_containers/array/requirements/explicit_instantiation/
      	3.cc: Skip test when compiled with a -std=c++NN strict mode.
      	* testsuite/23_containers/deque/requirements/explicit_instantiation/
      	3.cc: Likewise.
      	* testsuite/23_containers/forward_list/requirements/
      	explicit_instantiation/3.cc: Likewise.
      	* testsuite/23_containers/list/requirements/explicit_instantiation/
      	3.cc: Likewise.
      	* testsuite/23_containers/map/requirements/explicit_instantiation/
      	3.cc: Likewise.
      	* testsuite/23_containers/multimap/requirements/explicit_instantiation/
      	3.cc: Likewise.
      	* testsuite/23_containers/multiset/requirements/explicit_instantiation/
      	3.cc: Likewise.
      	* testsuite/23_containers/set/requirements/explicit_instantiation/
      	3.cc: Likewise.
      	* testsuite/23_containers/unordered_map/requirements/
      	explicit_instantiation/3.cc: Likewise.
      	* testsuite/23_containers/unordered_multimap/requirements/
      	explicit_instantiation/3.cc: Likewise.
      	* testsuite/23_containers/unordered_multiset/requirements/
      	explicit_instantiation/3.cc: Likewise.
      	* testsuite/23_containers/unordered_set/requirements/
      	explicit_instantiation/3.cc: Likewise.
      	* testsuite/23_containers/vector/ext_pointer/explicit_instantiation/
      	3.cc: Likewise.
      	* testsuite/23_containers/vector/requirements/explicit_instantiation/
      	3.cc: Likewise.
      
      From-SVN: r265334
      Jonathan Wakely committed
    • Fix testsuite failures due to extra errors in strict dialects · 92bab152
      When __STRICT_ANSI__ is defined the incorrect allocators used in these
      tests also trigger and additional static assertion. Prune those extra
      errors so that the tests don't fail when built with strict dialects.
      
      	* testsuite/23_containers/deque/48101_neg.cc: Prune additional errors
      	printed when __STRICT_ANSI__ is defined.
      	* testsuite/23_containers/forward_list/48101_neg.cc: Likewise.
      	* testsuite/23_containers/list/48101_neg.cc: Likewise.
      	* testsuite/23_containers/multiset/48101_neg.cc: Likewise.
      	* testsuite/23_containers/set/48101_neg.cc: Likewise.
      	* testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise.
      	* testsuite/23_containers/unordered_set/48101_neg.cc: Likewise.
      	* testsuite/23_containers/vector/48101_neg.cc: Likewise.
      
      From-SVN: r265333
      Jonathan Wakely committed
    • Conditionally disable tests of non-standard extensions · f8f39390
      These tests include uses of the extension to allow allocators with the
      wrong value_type in containers. Skip those parts of the tests when
      __STRICT_ANIS__ is defined.
      
      	* testsuite/23_containers/forward_list/requirements/
      	explicit_instantiation/5.cc [__STRICT_ANSI__]: Don't test non-standard
      	extension.
      	* testsuite/23_containers/list/requirements/explicit_instantiation/
      	5.cc [__STRICT_ANSI__]: Likewise.
      	* testsuite/23_containers/map/requirements/explicit_instantiation/5.cc
      	[__STRICT_ANSI__]: Likewise.
      	* testsuite/23_containers/multimap/requirements/explicit_instantiation/
      	5.cc [__STRICT_ANSI__]: Likewise.
      	* testsuite/23_containers/multiset/requirements/explicit_instantiation/
      	5.cc [__STRICT_ANSI__]: Likewise.
      	* testsuite/23_containers/set/requirements/explicit_instantiation/5.cc
      	[__STRICT_ANSI__]: Likewise.
      	* testsuite/23_containers/unordered_map/requirements/debug_container.cc
      	[__STRICT_ANSI__]: Likewise.
      	* testsuite/23_containers/unordered_map/requirements/
      	explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
      	* testsuite/23_containers/unordered_multimap/requirements/
      	explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
      	* testsuite/23_containers/unordered_multiset/requirements/
      	explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
      	* testsuite/23_containers/unordered_set/requirements/
      	explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
      
      From-SVN: r265332
      Jonathan Wakely committed
    • Fix tests that use allocators with incorrect value types · 78ed0f80
      As a GNU extension we allow containers to be instantiated with
      allocators that use a different value type from the container, and
      automatically rebind the allocator to the correct type. This extension
      is disabled in strict modes (when __STRICT_ANSI__ is defined, i.e.
      -std=c++NN dialects). These testcases unintentionally rely on the
      extension and so fail for strict modes.
      
      Tests which intentionally make use of the extension will still fail in
      strict dialects, but will be addressed in a later change.
      
      	* testsuite/20_util/scoped_allocator/1.cc: Use allocator with correct
      	value type for the container.
      	* testsuite/23_containers/forward_list/cons/14.cc: Likewise.
      	* testsuite/23_containers/map/56613.cc: Likewise.
      	* testsuite/23_containers/unordered_map/55043.cc: Likewise.
      	* testsuite/23_containers/unordered_map/allocator/copy.cc: Likewise.
      	* testsuite/23_containers/unordered_map/allocator/copy_assign.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_map/allocator/minimal.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_map/allocator/move.cc: Likewise.
      	* testsuite/23_containers/unordered_map/allocator/move_assign.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_map/allocator/noexcept.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_map/cons/81891.cc: Likewise.
      	* testsuite/23_containers/unordered_map/requirements/exception/
      	basic.cc: Likewise.
      	* testsuite/23_containers/unordered_map/requirements/exception/
      	generation_prohibited.cc: Likewise.
      	* testsuite/23_containers/unordered_map/requirements/exception/
      	propagation_consistent.cc: Likewise.
      	* testsuite/23_containers/unordered_multimap/55043.cc: Likewise.
      	* testsuite/23_containers/unordered_multimap/allocator/copy.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_multimap/allocator/copy_assign.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_multimap/allocator/minimal.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_multimap/allocator/move.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_multimap/allocator/move_assign.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_multimap/allocator/noexcept.cc:
      	Likewise.
      	* testsuite/23_containers/unordered_multimap/requirements/exception/
      	basic.cc: Likewise.
      	* testsuite/23_containers/unordered_multimap/requirements/exception/
      	generation_prohibited.cc: Likewise.
      	* testsuite/23_containers/unordered_multimap/requirements/exception/
      	propagation_consistent.cc: Likewise.
      	* testsuite/23_containers/unordered_multimap/requirements/
      	explicit_instantiation/5.cc: Likewise.
      	* testsuite/ext/malloc_allocator/sanity.cc: Likewise.
      
      From-SVN: r265331
      Jonathan Wakely committed
    • Disable tests that only pass for GNU dialects · e7f2d0bd
      The airy and hypergeometric functions are non-standard extensions and
      are only defined for -std=gnu++NN dialects, not -std=c++NN ones.
      
      	* ext/special_functions/airy_ai/check_nan.cc: Skip test for
      	non-standard extension when a strict -std=c++NN dialect is used.
      	* ext/special_functions/airy_ai/check_value.cc: Likewise.
      	* ext/special_functions/airy_ai/compile.cc: Likewise.
      	* ext/special_functions/airy_bi/check_nan.cc: Likewise.
      	* ext/special_functions/airy_bi/check_value.cc: Likewise.
      	* ext/special_functions/airy_bi/compile.cc: Likewise.
      	* ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
      	* ext/special_functions/conf_hyperg/check_value.cc: Likewise.
      	* ext/special_functions/conf_hyperg/compile.cc: Likewise.
      	* ext/special_functions/hyperg/check_nan.cc: Likewise.
      	* ext/special_functions/hyperg/check_value.cc: Likewise.
      	* ext/special_functions/hyperg/compile.cc: Likewise.
      
      From-SVN: r265330
      Jonathan Wakely committed
    • Remove duplicate tests · 88412b71
      These tests originally existed to check the containers in C++11 mode,
      when the default was C++98 mode. Now that the default is C++14 (and we
      run most tests for all modes) it serves no purpose to have two copies of
      the tests when neither is explicitly using -std=gnu++98 anyway.
      
      	* testsuite/23_containers/list/requirements/explicit_instantiation/
      	5_c++0x.cc: Remove redundant test that is functionally identical to
      	the 5.cc test.
      	* testsuite/23_containers/map/requirements/explicit_instantiation/
      	5_c++0x.cc: Likewise.
      	* testsuite/23_containers/multimap/requirements/explicit_instantiation/
      	5_c++0x.cc: Likewise.
      	* testsuite/23_containers/multiset/requirements/explicit_instantiation/
      	5_c++0x.cc: Likewise.
      	* testsuite/23_containers/set/requirements/explicit_instantiation/
      	5_c++0x.cc: Likewise.
      
      From-SVN: r265329
      Jonathan Wakely committed
    • gccint.texi: add user experience guidelines · 92646d25
      gcc/ChangeLog:
      	* Makefile.in (TEXI_GCCINT_FILES): Add ux.texi.
      	* doc/gccint.texi: Include ux.texi and use it in top-level menu.
      	* doc/ux.texi: New file.
      
      From-SVN: r265322
      David Malcolm committed
    • compiler: don't export any functions with special names · 12d5ebf9
          
          This keeps init functions from appearing in the export data.  Checking
          for special names in general means that we don't need to check
          specifically for nested functions or thunks, which have special names.
          
          Reviewed-on: https://go-review.googlesource.com/c/143237
      
      From-SVN: r265321
      Ian Lance Taylor committed
    • re PR tree-optimization/87473 (ICE in create_add_on_incoming_edge, at… · 3146c60f
      re PR tree-optimization/87473 (ICE in create_add_on_incoming_edge, at gimple-ssa-strength-reduction.c:2344)
      
      [gcc]
      
      2018-10-19  Bill Schmidt  <wschmidt@linux.ibm.com>
      
      	PR tree-optimization/87473
      	* gimple-ssa-strength-reduction.c (record_phi_increments_1): For
      	phi arguments identical to the base expression of the phi
      	candidate, record a phi-adjust increment of zero minus the index
      	expression of the hidden basis.
      	(phi_incr_cost_1): For phi arguments identical to the base
      	expression of the phi candidate, the difference to compare against
      	the increment is zero minus the index expression of the hidden
      	basis, and there is no potential savings from replacing the (phi)
      	statement.
      	(ncd_with_phi): For phi arguments identical to the base expression
      	of the phi candidate, the difference to compare against the
      	increment is zero minus the index expression of the hidden basis.
      	(all_phi_incrs_profitable_1): For phi arguments identical to the
      	base expression of the phi candidate, the increment to be checked
      	for profitability is zero minus the index expression of the hidden
      	basis.
      
      [gcc/testsuite]
      
      2018-10-19  Bill Schmidt  <wschmidt@linux.ibm.com>
      
      	PR tree-optimization/87473
      	* gcc.c-torture/compile/pr87473.c: New file.
      
      From-SVN: r265319
      William Schmidt committed
    • rs6000: Put CR0 first in REG_ALLOC_ORDER · 273f3d4b
      IRA and LRA prefer to use CR7 (which is first in REG_ALLOC_ORDER) over
      CR0, although the latter often is cheaper ("x" vs. "y" constraints).
      We should figure out why this is and fix it; but until that is done,
      this patch makes CR0 the first allocated register: it improves the
      current code, and it is required for later patches to be effective.
      
      (It changes two testcases to no longer look at what CR field is
      allocated).
      
      
      	* config/rs6000/rs6000.h (REG_ALLOC_ORDER): Move 68 (that is, CR0) to
      	be the first CR field allocated.
      
      gcc/testsuite/
      	* gcc.target/powerpc/safe-indirect-jump-2.c: Do not check assigned CR
      	field number.
      	* gcc.target/powerpc/safe-indirect-jump-3.c: Ditto.
      
      From-SVN: r265318
      Segher Boessenkool committed
    • re PR tree-optimization/87645 (gcc hangs up on vr_values::vrp_visit_assignment_or_call) · cba40f68
      2018-10-19  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/87645
      	* gcc.dg/torture/pr87645.c: New testcase.
      
      From-SVN: r265317
      Richard Biener committed
    • re PR tree-optimization/87657 (SLP ICE in libgfortran matmul_i2_vanilla) · 6d264876
      2018-10-19  Richard Biener  <rguenther@suse.de>
      
      	PR target/87657
      	* config/i386/i386.c (ix86_builtin_vectorization_cost): Use
      	TYPE_VECTOR_SUBPARTS and avoid relying on vector mode.
      
      	* gcc.target/i386/pr87657.c: New testcase.
      
      From-SVN: r265316
      Richard Biener committed
    • Fix compilation error with _GLIBCXX_PARALLEL · 30f7c08d
      	* include/bits/regex_executor.tcc (_Backref_matcher::_M_apply): Use
      	_GLIBCXX_STD_A to refer to normal mode algorithms.
      	* testsuite/28_regex/headers/regex/parallel_mode.cc: New test.
      	* testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Remove empty
      	whitespace.
      
      From-SVN: r265314
      Jonathan Wakely committed
    • Fix testsuite failures in Debug Mode · 7b1e8acf
      This fixes the following testsuite failures on ia32 when compiled with
      -D_GLIBCXX_DEBUG:
      
      FAIL: 23_containers/map/modifiers/erase/dr130-linkage-check.cc
      FAIL: 23_containers/multimap/modifiers/erase/dr130-linkage-check.cc
      FAIL: 23_containers/multiset/modifiers/erase/dr130-linkage-check.cc
      FAIL: 23_containers/set/modifiers/erase/dr130-linkage-check.cc
      
      The normal mode containers already use the abi-tag to mangle these
      overloads differently, but the debug mode versions weren't fixed.
      
      	* include/debug/map.h (map::erase(iterator)): Add abi-tag so that
      	C++11 version mangles differently from incompatible C++98 version.
      	* include/debug/multimap.h (multimap::erase(iterator)): Likewise.
      	* include/debug/multiset.h (multiset::erase(iterator))
      	(multiset::erase(const_iterator, const_iterator)): Likewise.
      	* include/debug/set.h (set::erase(iterator))
      	(multiset::erase(const_iterator, const_iterator)): Likewise.
      
      From-SVN: r265313
      Jonathan Wakely committed
    • Fix oversight in previous commit · ba52922f
      From-SVN: r265312
      Eric Botcazou committed
    • i386: Enable AVX512 memory broadcast for FP add · 13e29c36
      Many AVX512 vector operations can broadcast from a scalar memory source.
      This patch enables memory broadcast for FP add operations.
      
      gcc/
      
      	PR target/72782
      	* config/i386/sse.md
      	(*<plusminus_insn><mode>3<mask_name>_bcst_1): New.
      	(*add<mode>3<mask_name>_bcst_2): Likewise.
      
      gcc/testsuite/
      
      	PR target/72782
      	* gcc.target/i386/avx512-binop-1.h: New file.
      	* gcc.target/i386/avx512-binop-2.h: Likewise.
      	* gcc.target/i386/avx512-binop-3.h: Likewise.
      	* gcc.target/i386/avx512-binop-4.h: Likewise.
      	* gcc.target/i386/avx512-binop-5.h: Likewise.
      	* gcc.target/i386/avx512-binop-6.h: Likewise.
      	* gcc.target/i386/avx512f-add-df-zmm-1.c: Likewise.
      	* gcc.target/i386/avx512f-add-sf-zmm-1.c: Likewise.
      	* gcc.target/i386/avx512f-add-sf-zmm-2.c: Likewise.
      	* gcc.target/i386/avx512f-add-sf-zmm-3.c: Likewise.
      	* gcc.target/i386/avx512f-add-sf-zmm-4.c: Likewise.
      	* gcc.target/i386/avx512f-add-sf-zmm-5.c: Likewise.
      	* gcc.target/i386/avx512f-add-sf-zmm-6.c: Likewise.
      	* gcc.target/i386/avx512f-sub-df-zmm-1.c: Likewise.
      	* gcc.target/i386/avx512f-sub-sf-zmm-1.c: Likewise.
      	* gcc.target/i386/avx512f-sub-sf-zmm-2.c: Likewise.
      	* gcc.target/i386/avx512f-sub-sf-zmm-3.c: Likewise.
      	* gcc.target/i386/avx512f-sub-sf-zmm-4.c: Likewise.
      	* gcc.target/i386/avx512f-sub-sf-zmm-5.c: Likewise.
      	* gcc.target/i386/avx512vl-add-sf-xmm-1.c: Likewise.
      	* gcc.target/i386/avx512vl-add-sf-ymm-1.c: Likewise.
      	* gcc.target/i386/avx512vl-sub-sf-xmm-1.c: Likewise.
      	* gcc.target/i386/avx512vl-sub-sf-ymm-1.c: Likewise.
      
      From-SVN: r265311
      H.J. Lu committed
    • i386: Use register_operand in AVX512 FMA with memory broadcast · 3b1778b7
      Use "register_operand" in AVX512 FMA with memory broadcast when only
      registers are allowed.
      
      	* config/i386/sse.md
      	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1):
      	Replace nonimmediate_operand with register_operand.
      	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2):
      	Likewise.
      	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3):
      	Likewise.
      
      From-SVN: r265310
      H.J. Lu committed
    • lra: fix spill_hard_reg_in_range clobber check · 3664a0f1
      FROM..TO range might contain NOTE_INSN_DELETED insns, for which the
      corresponding entries in lra_insn_recog_data[] are NULLs.  Example from
      the problematic code from PR87596:
      
          (note 148 154 68 7 NOTE_INSN_DELETED)
      
      lra_insn_recog_data[] is used directly only when the insn in question
      is taken from insn_bitmap, which is not the case here.  In other
      situations lra_get_insn_recog_data () guarded by INSN_P () or other
      stricter predicate are used.  So we need to do this here as well.
      
      A tiny detail worth noting: I put the INSN_P () check before the
      insn_bitmap check, because I believe that insn_bitmap can contain only
      real insns anyway.
      
      gcc/ChangeLog:
      
      2018-10-19  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	PR rtl-optimization/87596
      	* lra-constraints.c (spill_hard_reg_in_range): Use INSN_P () +
      	lra_get_insn_recog_data () instead of lra_insn_recog_data[]
      	for instructions in FROM..TO range.
      
      gcc/testsuite/ChangeLog:
      
      2018-10-19  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	PR rtl-optimization/87596
      	* gcc.target/i386/pr87596.c: New test.
      
      From-SVN: r265306
      Ilya Leoshkevich committed
    • cfgexpand.c (expand_one_var): Use specific wording in error message for non-local frame variables. · ba9a8625
      	* cfgexpand.c (expand_one_var): Use specific wording in error message
      	for non-local frame variables.
      	* stor-layout.c (layout_decl): Do not issue a warning for them.
      
      From-SVN: r265305
      Eric Botcazou committed
    • Reset insn priority after inc/ref replacement · 079c81d0
      This patch recomputes the insn priority when a replacement for one of its
      dependent insns is applied.
      
      gcc/ChangeLog:
      
      	* haifa-sched.c (priority): Add force_recompute parameter.
      	(apply_replacement): Call priority () with force_recompute = true.
      	(restore_pattern): Likewise.
      
      From-SVN: r265304
      Robin Dapp committed
    • Daily bump. · e75883a5
      From-SVN: r265303
      GCC Administrator committed
  4. 18 Oct, 2018 4 commits