Commit Graph

164585 Commits

Author SHA1 Message Date
GCC Administrator
0067ddcc0f Daily bump.
From-SVN: r265366
2018-10-22 00:17:02 +00:00
William Schmidt
5d9c5a9668 emmintrin.h (_mm_movemask_pd): Replace __vector __m64 with __vector unsigned long long for compatibility.
2018-10-21  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Jinsong Ji  <jji@us.ibm.com>

	* config/rs6000/emmintrin.h (_mm_movemask_pd): Replace __vector
	__m64 with __vector unsigned long long for compatibility.
	(_mm_movemask_epi8): Likewise.
	* config/rs6000/xmmintrin.h (_mm_cvtps_pi32): Likewise.
	(_mm_cvttps_pi32): Likewise.
	(_mm_cvtpi32_ps): Likewise.
	(_mm_cvtps_pi16): Likewise.
	(_mm_loadh_pi): Likewise.
	(_mm_storeh_pi): Likewise.
	(_mm_movehl_ps): Likewise.
	(_mm_movelh_ps): Likewise.
	(_mm_loadl_pi): Likewise.
	(_mm_storel_pi): Likewise.
	(_mm_movemask_ps): Likewise.
	(_mm_shuffle_pi16): Likewise.

From-SVN: r265362
2018-10-21 23:30:51 +00:00
H.J. Lu
9d165ca698 Move testsuite ChangeLog entries to testsuite/ChangeLog
From-SVN: r265360
2018-10-21 13:38:27 -07:00
H.J. Lu
3be6195b32 i386: Update AVX512 FMSUB/FNMADD/FNMSUB tests
Update AVX512 tests to test the newly added FMSUB, FNMADD and FNMSUB
builtin functions.

	PR target/72782
	* gcc.target/i386/avx-1.c (__builtin_ia32_vfmsubpd512_mask): New.
	(__builtin_ia32_vfmsubpd512_maskz): Likewise.
	(__builtin_ia32_vfmsubps512_mask): Likewise.
	(__builtin_ia32_vfmsubps512_maskz): Likewise.
	(__builtin_ia32_vfnmaddpd512_mask3): Likewise.
	(__builtin_ia32_vfnmaddpd512_maskz): Likewise.
	(__builtin_ia32_vfnmaddps512_mask3): Likewise.
	(__builtin_ia32_vfnmaddps512_maskz): Likewise.
	(__builtin_ia32_vfnmsubpd512_maskz): Likewise.
	(__builtin_ia32_vfnmsubps512_maskz): Likewise.
	* testsuite/gcc.target/i386/sse-13.c
	(__builtin_ia32_vfmsubpd512_mask): Likewise.
	(__builtin_ia32_vfmsubpd512_maskz): Likewise.
	(__builtin_ia32_vfmsubps512_mask): Likewise.
	(__builtin_ia32_vfmsubps512_maskz): Likewise.
	(__builtin_ia32_vfnmaddpd512_mask3): Likewise.
	(__builtin_ia32_vfnmaddpd512_maskz): Likewise.
	(__builtin_ia32_vfnmaddps512_mask3): Likewise.
	(__builtin_ia32_vfnmaddps512_maskz): Likewise.
	(__builtin_ia32_vfnmsubpd512_maskz): Likewise.
	(__builtin_ia32_vfnmsubps512_maskz): Likewise.
	* testsuite/gcc.target/i386/sse-23.c
	(__builtin_ia32_vfmsubpd512_mask): Likewise.
	(__builtin_ia32_vfmsubpd512_maskz): Likewise.
	(__builtin_ia32_vfmsubps512_mask): Likewise.
	(__builtin_ia32_vfmsubps512_maskz): Likewise.
	(__builtin_ia32_vfnmaddpd512_mask3): Likewise.
	(__builtin_ia32_vfnmaddpd512_maskz): Likewise.
	(__builtin_ia32_vfnmaddps512_mask3): Likewise.
	(__builtin_ia32_vfnmaddps512_maskz): Likewise.
	(__builtin_ia32_vfnmsubpd512_maskz): Likewise.
	(__builtin_ia32_vfnmsubps512_maskz): Likewise.

From-SVN: r265359
2018-10-21 13:30:06 -07:00
H.J. Lu
38ef6fb19d i386: Enable AVX512 memory broadcast for FNMSUB
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
2018-10-21 13:28:56 -07:00
H.J. Lu
5ca9497788 i386: Enable AVX512 memory broadcast for FNMADD
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
2018-10-21 13:27:09 -07:00
H.J. Lu
fe7f972d6e Enable AVX512 memory broadcast for FMSUB
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
2018-10-21 13:24:50 -07:00
Paul Thomas
88c08ac43c re PR fortran/71880 (pointer to allocatable character)
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
2018-10-21 17:32:06 +00:00
H.J. Lu
ea1adf1d53 i386: Update FP add/sub with AVX512 memory broadcast
* 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
2018-10-21 03:46:48 -07:00
H.J. Lu
c038638ea9 i386: Enable AVX512 memory broadcast for FP mul
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
2018-10-21 03:35:36 -07:00
H.J. Lu
01fd9f8d21 i386: Add missing AVX512VL or/xor intrinsics
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
2018-10-21 03:23:58 -07:00
GCC Administrator
69862942e1 Daily bump.
From-SVN: r265349
2018-10-21 00:16:34 +00:00
H.J. Lu
fda5d5e6e0 i386: Enable AVX512 memory broadcast for FP div
Many AVX512 vector operations can broadcast from a scalar memory source.
This patch enables memory broadcast for FP div operations.

gcc/

	PR target/72782
	* config/i386/sse.md (*<avx512>_div<mode>3<mask_name>_bcst): New.

gcc/testsuite/

	PR target/72782
	* gcc.target/i386/avx512f-div-df-zmm-1.c: New test.
	* gcc.target/i386/avx512f-div-sf-zmm-1.c: Likewise.
	* gcc.target/i386/avx512f-div-sf-zmm-2.c: Likewise.
	* gcc.target/i386/avx512f-div-sf-zmm-3.c: Likewise.
	* gcc.target/i386/avx512f-div-sf-zmm-4.c: Likewise.
	* gcc.target/i386/avx512f-div-sf-zmm-5.c: Likewise.
	* gcc.target/i386/avx512vl-div-sf-xmm-1.c: Likewise.
	* gcc.target/i386/avx512vl-div-sf-ymm-1.c: Likewise.

From-SVN: r265345
2018-10-20 13:41:10 -07:00
François Dumont
f65c0c735e testsuite_containers.h (forward_members_unordered<>::forward_members_unordered (const value_type&)): Add local_iterator pre and post increment checks.
2018-10-20  François Dumont  <fdumont@gcc.gnu.org>

	* testsuite/util/testsuite_containers.h
	(forward_members_unordered<>::forward_members_unordered
	(const value_type&)): Add local_iterator pre and post increment checks.
	* config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 new symbol.

From-SVN: r265344
2018-10-20 20:00:45 +00:00
Marek Polacek
be515b4ce0 *.C: Use target c++17 instead of explicit dg-options.
* g++.dg/*.C: Use target c++17 instead of explicit dg-options.
	* lib/g++-dg.exp: Don't test C++11 by default.  Add C++17 to
	the list of default stds to test.

From-SVN: r265343
2018-10-20 17:21:19 +00:00
Jakub Jelinek
ca66a6cd61 re PR middle-end/87647 (ICE on valid code in decode_addr_const, at varasm.c:2958)
PR middle-end/87647
	* varasm.c (decode_addr_const): Handle COMPOUND_LITERAL_EXPR.

	* gcc.c-torture/compile/pr87647.c: New test.

From-SVN: r265341
2018-10-20 10:58:00 +02:00
Andreas Schwab
79e61dc249 * doc/ux.texi: Move @section directly after @node.
From-SVN: r265340
2018-10-20 07:29:15 +00:00
GCC Administrator
425057a316 Daily bump.
From-SVN: r265339
2018-10-20 00:17:03 +00:00
Jakub Jelinek
173670e2b4 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
2018-10-20 00:52:06 +02:00
Jonathan Wakely
f324588755 Skip tests for GNU extensions when testing with strict mode
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
2018-10-19 22:50:15 +01:00
Jonathan Wakely
92bab15297 Fix testsuite failures due to extra errors in strict dialects
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
2018-10-19 22:50:03 +01:00
Jonathan Wakely
f8f3939037 Conditionally disable tests of non-standard extensions
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
2018-10-19 22:49:49 +01:00
Jonathan Wakely
78ed0f80c3 Fix tests that use allocators with incorrect value types
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
2018-10-19 22:49:40 +01:00
Jonathan Wakely
e7f2d0bdb5 Disable tests that only pass for GNU dialects
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
2018-10-19 22:49:32 +01:00
Jonathan Wakely
88412b71ee Remove duplicate tests
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
2018-10-19 22:49:19 +01:00
David Malcolm
92646d2577 gccint.texi: add user experience guidelines
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
2018-10-19 19:50:02 +00:00
Ian Lance Taylor
12d5ebf963 compiler: don't export any functions with special names
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
2018-10-19 19:43:47 +00:00
William Schmidt
3146c60f16 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
2018-10-19 18:28:11 +00:00
Segher Boessenkool
273f3d4bb4 rs6000: Put CR0 first in REG_ALLOC_ORDER
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
2018-10-19 17:40:57 +02:00
Richard Biener
cba40f681a re PR tree-optimization/87645 (gcc hangs up on vr_values::vrp_visit_assignment_or_call)
2018-10-19  Richard Biener  <rguenther@suse.de>

	PR middle-end/87645
	* gcc.dg/torture/pr87645.c: New testcase.

From-SVN: r265317
2018-10-19 14:28:43 +00:00
Richard Biener
6d2648763a re PR tree-optimization/87657 (SLP ICE in libgfortran matmul_i2_vanilla)
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
2018-10-19 14:27:57 +00:00
Jonathan Wakely
30f7c08d96 Fix compilation error with _GLIBCXX_PARALLEL
* 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
2018-10-19 14:46:24 +01:00
Jonathan Wakely
7b1e8acfae Fix testsuite failures in Debug Mode
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
2018-10-19 14:37:05 +01:00
Eric Botcazou
ba52922f6b Fix oversight in previous commit
From-SVN: r265312
2018-10-19 10:06:40 +00:00
H.J. Lu
13e29c3648 i386: Enable AVX512 memory broadcast for FP add
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
2018-10-19 02:13:34 -07:00
H.J. Lu
3b1778b7c3 i386: Use register_operand in AVX512 FMA with memory broadcast
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
2018-10-19 01:56:37 -07:00
Ilya Leoshkevich
3664a0f184 lra: fix spill_hard_reg_in_range clobber check
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
2018-10-19 08:33:52 +00:00
Eric Botcazou
ba9a8625b0 cfgexpand.c (expand_one_var): Use specific wording in error message for non-local frame variables.
* 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
2018-10-19 07:17:20 +00:00
Robin Dapp
079c81d010 Reset insn priority after inc/ref replacement
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
2018-10-19 06:25:30 +00:00
GCC Administrator
e75883a503 Daily bump.
From-SVN: r265303
2018-10-19 00:17:06 +00:00
Ian Lance Taylor
083e9210db compiler: add COMPARE_ALIASES flag for type compare and hash
Normally aliases compare as identical to the underlying type.  Add a
    COMPARE_ALIASES flag to let them compare (and hash) differently.  This
    will be used by later patches in this series.
    
    Reviewed-on: https://go-review.googlesource.com/c/143021

From-SVN: r265297
2018-10-18 23:26:20 +00:00
Ian Lance Taylor
dbf9376f9e compiler: list indirect imports separately in export data
Previously when export data referred to a type that was not defined in
    a directly imported package, we would write the package name as
    additional information in the type's export data.  That approach
    required all type information to be read in order.  This patch changes
    the compiler to find all references to indirectly imported packages,
    and write them out as an indirectimport line in the import data.  This
    will permit us to read exported type data out of order.
    
    The type traversal used to find indirect imports is a little more
    complicated than necessary in preparation for later patches in this
    series.
    
    Reviewed-on: https://go-review.googlesource.com/c/143020

From-SVN: r265296
2018-10-18 23:22:01 +00:00
Ian Lance Taylor
442d418508 Remove ChangeLog entry for changes in gofrontend that were reverted.
From-SVN: r265295
2018-10-18 23:05:32 +00:00
Ian Lance Taylor
8cc43cb403 Revert SVN revision 264561, incorrectly committed directly to the GCC
repo rather than to the master repo.

From-SVN: r265294
2018-10-18 23:02:27 +00:00
Ian Lance Taylor
0799a08b5c compiler: rewrite Type::are_identical to use flags
A single flags parameter replaces the Cmp_tags and errors_are_identical
    parameters. The existing behavior is unchanged.
    
    This is a simplification step for future work that will add a new flag.
    
    Reviewed-on: https://go-review.googlesource.com/c/143019

From-SVN: r265293
2018-10-18 22:55:34 +00:00
H.J. Lu
28dd75a330 Limit mask of vec_merge to HOST_BITS_PER_WIDE_INT
Since mask of vec_merge is in HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT is
the maximum number of vector elements.

	* simplify-rtx.c (simplify_subreg): Limit mask of vec_merge to
	HOST_BITS_PER_WIDE_INT.
	(test_vector_ops_duplicate): Likewise.

From-SVN: r265290
2018-10-18 14:29:55 -07:00
H.J. Lu
9a91ed2a2e i386: Enable AVX512 memory broadcast for FMA
Many AVX512 vector operations can broadcast from a scalar memory source.
This patch enables memory broadcast for FMA operations.

gcc/

	PR target/72782
	* config/i386/sse.md (VF_AVX512): New.
	(avx512bcst): Likewise.
	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1):
	Likewise.
	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2):
	Likewise.
	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3):
	Likewise.

gcc/testsuite/

	PR target/72782
	* gcc.target/i386/avx512-fma-1.h: New file.
	* gcc.target/i386/avx512-fma-2.h: Likewise.
	* gcc.target/i386/avx512-fma-3.h: Likewise.
	* gcc.target/i386/avx512-fma-4.h: Likewise.
	* gcc.target/i386/avx512-fma-5.h: Likewise.
	* gcc.target/i386/avx512-fma-6.h: Likewise.
	* gcc.target/i386/avx512-fma-7.h: Likewise.
	* gcc.target/i386/avx512-fma-8.h: Likewise.
	* gcc.target/i386/avx512f-fmadd-df-zmm-1.c: Likewise.
	* gcc.target/i386/avx512f-fmadd-sf-zmm-1.c: Likewise.
	* gcc.target/i386/avx512f-fmadd-sf-zmm-2.c: Likewise.
	* gcc.target/i386/avx512f-fmadd-sf-zmm-3.c: Likewise.
	* gcc.target/i386/avx512f-fmadd-sf-zmm-4.c: Likewise.
	* gcc.target/i386/avx512f-fmadd-sf-zmm-5.c: Likewise.
	* gcc.target/i386/avx512f-fmadd-sf-zmm-6.c: Likewise.
	* gcc.target/i386/avx512f-fmadd-sf-zmm-7.c: Likewise.
	* gcc.target/i386/avx512f-fmadd-sf-zmm-8.c: Likewise.
	* gcc.target/i386/avx512vl-fmadd-sf-xmm-1.c: Likewise.
	* gcc.target/i386/avx512vl-fmadd-sf-ymm-1.c: Likewise.

From-SVN: r265288
2018-10-18 13:38:41 -07:00
Jonathan Wakely
955fe731e3 Fix tests that fail when built with different options
* testsuite/20_util/duration/cons/2.cc: Add -ffloat-store to fix
	failure when compiled without optimisation.
	* testsuite/ext/profile/mutex_extensions_neg.cc: Prune additional
	errors caused by C++17 std::pmr alias templates.

From-SVN: r265287
2018-10-18 21:04:55 +01:00
Jonathan Wakely
c0ace69ec6 PR libstdc++/87642 handle multibyte thousands separators from libc
If a locale's THOUSANDS_SEP or MON_THOUSANDS_SEP string is not a
single character we either need to narrow it to a single char or
ignore it (and therefore disable digit grouping for that facet).

	PR libstdc++/87642
	* config/locale/gnu/monetary_members.cc
	(moneypunct<char, true>::_M_initialize_moneypunct): Use
	__narrow_multibyte_chars to convert multibyte thousands separators
	to a single char.
	* config/locale/gnu/numeric_members.cc
	(numpunct<char>::_M_initialize_numpunct): Likewise.
	(__narrow_multibyte_chars): New function.

From-SVN: r265286
2018-10-18 20:57:25 +01:00
Ian Lance Taylor
e8ce849a48 compiler: drop semicolons in export data
The export data, which is approximately readable and looks something
    like Go, was first implemented back when Go still used semicolons.
    Drop the semicolons, to make it look slightly more Go like and make it
    slightly smaller.
    
    This updates the compiler and the gccgoimporter package.
    
    This introduces a new version of the export data.  There are going to
    be more changes to the export data, so this version is still subject
    to change.
    
    Reviewed-on: https://go-review.googlesource.com/c/143018

From-SVN: r265284
2018-10-18 19:35:46 +00:00