Support clwb x86 instruction.

gcc/
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_CLWB_UNSET,
	OPTION_MASK_ISA_CLWB_SET): New.
	(ix86_handle_option): Handle OPT_mclwb.
	* config.gcc: Add clwbintrin.h.
	* config/i386/clwbintrin.h: New file.
	* config/i386/cpuid.h (bit_CLWB): Define.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect clwb. 
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__CLWB__.
	* config/i386/i386.c (ix86_target_string): Add -mclwb.
	(PTA_CLWB): Define.
	(ix86_option_override_internal): Handle new option.
	(ix86_valid_target_attribute_inner_p): Add clwb.
	(ix86_builtins): Add IX86_BUILTIN_CLWB.
	(ix86_init_mmx_sse_builtins): Add __builtin_ia32_clwb.
	(ix86_expand_builtin): Handle IX86_BUILTIN_CLWB.
	* config/i386/i386.h (TARGET_CLWB, TARGET_CLWB_P): Define.
	* config/i386/i386.md (unspecv): Add UNSPECV_CLWB.
	(clwb): New instruction.
	* config/i386/i386.opt: Add mclwb.
	* config/i386/x86intrin.h: Include clwbintrin.h.

gcc/testsuite/

	* g++.dg/other/i386-2.C: Add -mclwb.
	* g++.dg/other/i386-3.C: Ditto.
	* gcc.target/i386/clwb-1.c: New test.
	* gcc.target/i386/sse-12.c: Add new options.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-14.c: Ditto.
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217933 138bc75d-0d04-0410-961f-82ee72b054a4
PR debug/38757 gcc does not emit DW_LANG_C99.

For C and C++ add the language standard version in use to lang_hooks.name.
Change users of lang_hook.name to check with new functions lang_GNU_C or
lang_GNU_CXX. In dwarf2out.c output the DW_LANG_C version from the
lang_hooks.name and merge any LTO TRANSLATION_UNIT_LANGUAGE found. Adds
two testcases to dwarf2.exp to check the right DWARF DW_AT_language is set
on the compile_unit depending on the -std=c89 or -std=c99 setting.

gcc/c-family/ChangeLog

	PR debug/38757
	* c-opts.c (set_std_c89): Set lang_hooks.name.
	(set_std_c99): Likewise.
	(set_std_c11): Likewise.
	(set_std_cxx98): Likewise.
	(set_std_cxx11): Likewise.
	(set_std_cxx14): Likewise.
	(set_std_cxx1z): Likewise.

gcc/ChangeLog

	PR debug/38757
	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use lang_GNU_C.
	* config/darwin.c (darwin_file_end): Use lang_GNU_CXX.
	(darwin_override_options): Likewise.
	* config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
	Likewise.
	* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
	Likewise.
	* dbxout.c (get_lang_number): Likewise.
	(dbxout_type): Likewise.
	(dbxout_symbol_location): Likewise.
	* dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
	also for DW_LANG_{C,C99,ObjC}.
	(highest_c_language): New function.
	(gen_compile_unit_die): Call highest_c_language to merge LTO
	TRANSLATION_UNIT_LANGUAGE. Use strncmp language_string to
	determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
	* fold-const.c (fold_cond_expr_with_comparison): Use lang_GNU_CXX.
	* langhooks.h (struct lang_hooks): Add version comment to name.
	(lang_GNU_C): New function declaration.
	(lang_GNU_CXX): Likewise.
	* langhooks.c (lang_GNU_C): New function.
	(lang_GNU_CXX): Likewise.
	* vmsdbgout.c (vmsdbgout_init): Use lang_GNU_C and lang_GNU_CXX.

gcc/testsuite/ChangeLog

	PR debug/38757
	* gcc.dg/debug/dwarf2/lang-c89.c: New test.
	* gcc.dg/debug/dwarf2/lang-c99.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217934 138bc75d-0d04-0410-961f-82ee72b054a4
Add x86 pcommit instruction.

gcc/

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
	OPTION_MASK_ISA_PCOMMIT_SET): New.
	(ix86_handle_option): Handle OPT_mpcommit.
	* config.gcc: Add pcommitintrin.h
	* config/i386/pcommitintrin.h: New file.
	* config/i386/cpuid.h (bit_PCOMMIT): Define.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect pcommit.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__PCOMMIT__.
	* config/i386/i386.c (ix86_target_string): Add -mpcommit.
	(PTA_PCOMMIT): Define.
	(ix86_option_override_internal): Handle new option.
	(ix86_valid_target_attribute_inner_p): Add pcommit.
	(ix86_builtins): Add IX86_BUILTIN_PCOMMIT.
	(bdesc_special_args): Add __builtin_ia32_pcommit.
	* config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Define.
	* config/i386/i386.md (unspecv): Add UNSPECV_PCOMMIT.
	(pcommit): New instruction.
	* config/i386/i386.opt: Add mpcommit.
	* config/i386/x86intrin.h: Include pcommitintrin.h.

gcc/testsuite/

	* g++.dg/other/i386-2.C: Add -mpcommit.
	* g++.dg/other/i386-3.C: Ditto.
	* gcc.target/i386/pcommit-1.c: New test.
	* gcc.target/i386/sse-12.c: Add new options.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-14.c: Ditto.
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217935 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Implement vsqrt_f64 intrinsic

	* config/aarch64/arm_neon.h (vsqrt_f64): New intrinsic.

	* gcc.target/aarch64/simd/vsqrt_f64_1.c



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217936 138bc75d-0d04-0410-961f-82ee72b054a4
Always use PIC option with -shared in libtool

Libtool needs to pass PIC option -shared when creating shared object to
link regular object files with slim-lto archive.

	PR bootstrap/63784
	* libtool.m4: Add $pic_flag with -shared.

boehm-gc/

	PR bootstrap/63784
	* configure: Regenerated.

gcc/

	PR bootstrap/63784
	* configure: Regenerated.

libatomic/

	PR bootstrap/63784
	* configure: Regenerated.

libbacktrace/

	PR bootstrap/63784
	* configure: Regenerated.

libcc1/

	PR bootstrap/63784
	* configure: Regenerated.

libcilkrts/

	PR bootstrap/63784
	* configure: Regenerated.

libffi/

	PR bootstrap/63784
	* configure: Regenerated.

libgfortran/

	PR bootstrap/63784
	* configure: Regenerated.

libgomp/

	PR bootstrap/63784
	* configure: Regenerated.

libitm/

	PR bootstrap/63784
	* configure: Regenerated.

libjava/

	PR bootstrap/63784
	* configure: Regenerated.

libjava/classpath/

	PR bootstrap/63784
	* configure: Regenerated.

libobjc/

	PR bootstrap/63784
	* configure: Regenerated.

libquadmath/

	PR bootstrap/63784
	* configure: Regenerated.

libsanitizer/

	PR bootstrap/63784
	* configure: Regenerated.

libssp/

	PR bootstrap/63784
	* configure: Regenerated.

libstdc++-v3/

	PR bootstrap/63784
	* configure: Regenerated.

libvtv/

	PR bootstrap/63784
	* configure: Regenerated.

lto-plugin/

	PR bootstrap/63784
	* configure: Regenerated.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217937 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Add vector pattern for __builtin_ctz

  gcc/
    * config/aarch64/iterators.md (VS): New mode iterator.
    (vsi2qi): New mode attribute.
    (VSI2QI): Likewise.
    * config/aarch64/aarch64-simd-builtins.def: New entry for ctz.
    * config/aarch64/aarch64-simd.md (ctz<mode>2): New pattern for ctz.
    * config/aarch64/aarch64-builtins.c
    (aarch64_builtin_vectorized_function): Support BUILT_IN_CTZ.

  gcc/testsuite/
    * gcc.target/aarch64/vect_ctz_1.c: New testcase.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217938 138bc75d-0d04-0410-961f-82ee72b054a4
Refine configure guard for MIPS .module availability

gcc/

	* configure.ac: When checking for MIPS .module support ensure that
	o32 FPXX is supported to avoid a second configure check.
	* configure: Regenerate.


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