1. 23 Sep, 2016 40 commits
    • Implement P0138R2, C++17 construction rules for enum class values · d664d76d
      	Implement P0138R2, C++17 construction rules for enum class values
      	* cp-tree.h (is_direct_enum_init): Declare.
      	* decl.c (is_direct_enum_init): New function.
      	(reshape_init): Use it.
      	* typeck.c (convert_for_assignment): Likewise.
      
      	* g++.dg/cpp1z/direct-enum-init1.C: New test.
      
      From-SVN: r240449
      Jakub Jelinek committed
    • Make-lang.in (check-c++1z): Pass RUNTESTFLAGS down to make check-g++. · 24cae8cb
      	* Make-lang.in (check-c++1z): Pass RUNTESTFLAGS down to
      	make check-g++.
      
      From-SVN: r240448
      Jakub Jelinek committed
    • Avoid reallocation for basic_string::clear() · 13190419
      	PR libstdc++/56166
      	PR libstdc++/77582
      	* include/bits/basic_string.h (basic_string::clear()): Drop reference
      	and use empty rep.
      	* include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
      	Likewise.
      	* testsuite/21_strings/basic_string/56166.cc: New.
      	* testsuite/ext/vstring/modifiers/clear/56166.cc: New.
      
      From-SVN: r240447
      Jonathan Wakely committed
    • Optimize truncating a basic_string · a922c5ff
      	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
      	(basic_string::erase(size_type, size_type)): Add fast path for
      	truncating the string, by calling _M_set_length directly.
      	(basic_string::erase(__const_iterator, __const_iterator)): Likewise.
      	* include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
      	(basic_string::resize(size_type, _CharT)): Likewise.
      
      From-SVN: r240446
      Jonathan Wakely committed
    • vec.h (vNULL): Extend comment to say = vNULL initialization isn't needed for static vars. · b862552d
      	* vec.h (vNULL): Extend comment to say = vNULL initialization
      	isn't needed for static vars.
      
      From-SVN: r240445
      Jakub Jelinek committed
    • sel-sched-ir.c (sel_global_bb_info, [...]): Remove unnecessary = vNULL… · 7de76362
      sel-sched-ir.c (sel_global_bb_info, [...]): Remove unnecessary = vNULL initialization of file scope vec.
      
      	* sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info,
      	loop_nests, s_i_d, last_added_blocks): Remove unnecessary
      	= vNULL initialization of file scope vec.
      	* passes.c (pass_tab, enabled_pass_uid_range_tab,
      	disabled_pass_uid_range_tab): Likewise.
      	* haifa-sched.c (sched_luids, h_i_d): Likewise.
      	* tree-chkp-opt.c (check_infos): Likewise.
      	* sel-sched.c (vec_av_set, vec_temp_moveop_nops): Likewise.
      c/
      	* c-parser.c (incomplete_record_decls): Remove unnecessary
      	= vNULL initialization of file scope vec.
      cp/
      	* constexpr.c (call_stack): Remove unnecessary
      	= vNULL initialization of file scope vec.
      
      From-SVN: r240444
      Jakub Jelinek committed
    • vec.h (vnull::operator vec): Add constexpr keyword for C++11 and later. · 3d1ba08f
      	* vec.h (vnull::operator vec): Add constexpr keyword for
      	C++11 and later.
      
      From-SVN: r240443
      Jakub Jelinek committed
    • Fix gcc.dg/tree-ssa/builtin-sprintf-warn-4.c · 3b31f720
      gcc/testsuite/ChangeLog
      	PR preprocessor/77672
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-4.c (test): Update
      	expected multiline output from first warning to reflect change
      	in r240434.
      
      From-SVN: r240442
      David Malcolm committed
    • builtin-sprintf-warn-2.c: Fix xfail pattern. · 592459bf
      2016-09-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/testsuite/
          * gcc.dg/tree-ssa/builtin-sprintf-warn-2.c: Fix xfail pattern.
      
      From-SVN: r240441
      Thomas Preud'homme committed
    • Fix incorrect file in ChangeLog on previous commit · b571e480
      gcc/
      	* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call
      	to duplicate_ssa_name_ptr_info.
      
      From-SVN: r240440
      Matthew Fortune committed
    • Ensure points-to information is maintained for prefetch. · ed481942
      gcc/
              PR tree-optimization/77654
              * tree-ssa-alias.c (issue_prefetch_ref): Add call
              to duplicate_ssa_name_ptr_info.
      
      From-SVN: r240439
      Doug Gilmore committed
    • re PR testsuite/77411 (object-size-9.c -fpic -m32 failure) · 0af06385
      2016-09-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
                  Tom de Vries  <tom@codesourcery.com>
      
              PR testsuite/77411
              * c-c++-common/ubsan/object-size-9.c: Call __builtin_exit in C++.
      
      Co-Authored-By: Tom de Vries <tom@codesourcery.com>
      
      From-SVN: r240437
      Bernd Edlinger committed
    • atomic-12.c: Skip for C++1z. · 8f01b67a
      	* c-c++-common/gomp/atomic-12.c: Skip for C++1z.
      	* c-c++-common/gomp/atomic-13.c: Likewise.
      	* c-c++-common/gomp/atomic-14.c: Likewise.
      	* c-c++-common/pr60439.c: Remove invalid code.
      	* g++.dg/expr/bitfield4.C: Robustify for C++1z.
      	* g++.dg/expr/bitfield5.C: Likewise.
      	* g++.dg/expr/bitfield6.C: Likewise.
      	* g++.dg/expr/bool1.C: Likewise.
      	* g++.dg/expr/bool3.C: Likewise.
      	* g++.dg/expr/lval3.C: Likewise.
      	* g++.dg/expr/lval4.C: Likewise.
      	* g++.old-deja/g++.jason/bool5.C: Likewise.
      
      From-SVN: r240436
      Marek Polacek committed
    • * configure.ac: Define HAVE_MEMALIGN for newlib. · 7be8d663
      From-SVN: r240435
      Jason Merrill committed
    • Provide location information for terminator characters (PR preprocessor/77672) · bbd6fcf3
      substring_loc::get_location currently fails for the final terminator
      character in a STRING_CST from the C frontend, so that format_warning_va
      falls back to using the location of the string as a whole.
      
      This patch tweaks things [1] so that we use the final closing quote
      as the location of the terminator character, as requested in
      PR preprocessor/77672.
      
      [1] specifically, cpp_interpret_string_1.
      
      gcc/ChangeLog:
      	PR preprocessor/77672
      	* input.c (selftest::test_lexer_string_locations_simple): Update
      	test to expect location information of the terminator character
      	at the location of the final closing quote.
      	(selftest::test_lexer_string_locations_hex): Likewise.
      	(selftest::test_lexer_string_locations_oct): Likewise.
      	(selftest::test_lexer_string_locations_letter_escape_1): Likewise.
      	(selftest::test_lexer_string_locations_letter_escape_2): Likewise.
      	(selftest::test_lexer_string_locations_ucn4): Likewise.
      	(selftest::test_lexer_string_locations_ucn8): Likewise.
      	(selftest::test_lexer_string_locations_u8): Likewise.
      	(selftest::test_lexer_string_locations_utf8_source): Likewise.
      	(selftest::test_lexer_string_locations_concatenation_1): Likewise.
      	(selftest::test_lexer_string_locations_concatenation_2): Likewise.
      	(selftest::test_lexer_string_locations_concatenation_3): Likewise.
      	(selftest::test_lexer_string_locations_macro): Likewise.
      	(selftest::test_lexer_string_locations_long_line): Likewise.
      
      gcc/testsuite/ChangeLog:
      	PR preprocessor/77672
      	* gcc.dg/plugin/diagnostic-test-string-literals-1.c
      	(test_terminator_location): New function.
      
      libcpp/ChangeLog:
      	PR preprocessor/77672
      	* charset.c (cpp_interpret_string_1): Add a source_range for the
      	NUL-terminator, using the location of the trailing quote of the
      	final string.
      
      From-SVN: r240434
      David Malcolm committed
    • Really commit testcase intended for r240230. · 30faeb0f
      2016-09-23  Fritz Reese  <fritzoreese@gmail.com>
      
      Really commit testcase intended for r240230.
      
      	* gcc/testsuite/gfortran.dg/dec_structure_15.f90: Really commit.
      
      From-SVN: r240433
      Fritz Reese committed
    • tree-ssa-sccvn.c (visit_reference_op_call): Value number virtual definition to virtual use if... · 113d06a4
      2016-09-23  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-sccvn.c (visit_reference_op_call): Value number
      	virtual definition to virtual use if the call devirtualizes
      	to a const or pure function.
      	(visit_use): Also visit calls we can devirtualize to a
      	const or pure function.
      
      	* gcc.dg/tree-ssa/ssa-fre-56.c: New testcase.
      
      From-SVN: r240431
      Richard Biener committed
    • re PR tree-optimization/77697 (suspicious code in tree-ssa-forwprop.c) · 26bedff5
      2016-09-23  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/77697
      	* tree-ssa-forwprop.c (defcodefor_name): Remove bogus code,
      	signal error if we have sth ternary or unhandled.
      
      From-SVN: r240430
      Richard Biener committed
    • Revert bogus dg-extract-results.sh change · 643e0854
      	* dg-extract-results.sh: Revert bogus change.
      
      From-SVN: r240429
      Rainer Orth committed
    • [PATCH 17/17][ARM] Add tests for NEON FP16 ACLE intrinsics. · cab9e1df
      testsuite/
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* gcc.target/advsimd-intrinsics/advsimd-intrinsics.exp: Enable
      	-march=armv8.2-a+fp16 when supported by the hardware.
      	* gcc.target/aarch64/advsimd-intrinsics/binary_op_float.inc: New.
      	* gcc.target/aarch64/advsimd-intrinsics/binary_op_no64.inc:
      	Add F16 tests, enabled if macro HAS_FLOAT16_VARIANT is defined.  Add
      	semi-colons to a macro invocations.
      	* gcc.target/aarch64/advsimd-intrinsics/cmp_fp_op.inc: Add F16
      	tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is
      	defined.
      	* gcc.target/aarch64/advsimd-intrinsics/cmp_op.inc: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/cmp_zero_op.inc: New.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vabd.c: Add F16
      	tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is
      	defined.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vabs.c: Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vadd.c: Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vcage.c: Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vcagt.c: Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vcale.c: Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vcalt.c: Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vceq.c: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vceqz_1.c: New.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vcge.c: Add F16
      	tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is
      	defined.
      	* gcc.target/aarch64/advsimd-intrinsics/vcgez_1.c: New.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vcgt.c: Add F16
      	tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is
      	defined.
      	* gcc.target/aarch64/advsimd-intrinsics/vcgtz_1.c: New.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vcle.c: Add F16
      	tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is
      	defined.
      	* gcc.target/aarch64/advsimd-intrinsics/vclez_1.c: New.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vclt.c: Add F16
      	tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is
      	defined.
      	* gcc.target/aarch64/advsimd-intrinsics/vcltz_1.c: New.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vcvt.c: Add F16
      	tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is
      	defined.  Also fix some white-space.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvtX.inc: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvta_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvtm_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvtp_1.c: New.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vfma.c: Add F16
      	tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is
      	defined.  Also fix some long lines and white-space.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vfms.c: Add F16
      	tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is
      	defined.  Also fix some long lines and white-space.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vmax.c: Add F16
      	tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is
      	defined.
      	* gcc.target/aarch64/advsimd-intrinsics/vmaxnm_1.c: New.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vmin.c: Add F16
      	tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is
      	defined.
      	* gcc.target/aarch64/advsimd-intrinsics/vminnm_1.c: New.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vmul.c: Add F16
      	tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is
      	defined.
      	* gcc.target/aarch64/advsimd-intrinsics/vmul_lane.c: Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vmul_n.c:
      	Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vneg.c:
      	Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vpXXX.inc: Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vpadd.c:
      	Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vpmax.c:
      	Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vpmin.c:
      	Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vrecpe.c:
      	Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vrecps.c:
      	Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vrnd.c:
      	Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vrndX.inc: Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vrnda.c:
      	Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vrndm.c:
      	Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vrndn.c:
      	Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vrndp.c:
      	Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vrndx.c:
      	Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vrsqrte.c: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vrsqrts.c: Likewise.
      	* gcc.target/gcc.target/aarch64/advsimd-intrinsics/vsub.c:
      	Likewise.
      
      From-SVN: r240427
      Matthew Wahab committed
    • [PATCH 16/17][ARM] Add tests for VFP FP16 ACLE instrinsics. · da9b2e69
      testsuite/
      2016-09-23  Jiong Wang  <jiong.wang@arm.com>
      	    Matthew Wahab  <matthew.wahab@arm.com>
      
      	* gcc.target/aarch64/advsimd-intrinsics/binary_scalar_op.inc: New.
      	* gcc.target/aarch64/advsimd-intrinsics/unary_scalar_op.inc: New.
      	* gcc.target/aarch64/advsimd-intrinsics/ternary_scalar_op.inc: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vabsh_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vaddh_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvtah_s32_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvtah_u32_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_s32_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_u32_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_s32_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_u32_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvth_n_s32_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvth_n_u32_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvth_s32_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvth_u32_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvtmh_s32_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvtmh_u32_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvtnh_s32_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvtnh_u32_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvtph_s32_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vcvtph_u32_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vdivh_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vfmah_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vfmsh_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vmaxnmh_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vminnmh_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vmulh_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vnegh_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vrndah_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vrndh_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vrndih_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vrndmh_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vrndnh_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vrndph_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vrndxh_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vsqrth_f16_1.c: New.
      	* gcc.target/aarch64/advsimd-intrinsics/vsubh_f16_1.c: New.
      
      
      Co-Authored-By: Matthew Wahab <matthew.wahab@arm.com>
      
      From-SVN: r240426
      Jiong Wang committed
    • [PATCH 15/17][ARM] Add tests for ARMv8.2-A FP16 support. · 785cf02f
      testsuite/
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* gcc.target/arm/armv8_2-fp16-neon-1.c: New.
      	* gcc.target/arm/armv8_2-fp16-scalar-1.c: New.
      	* gcc.target/arm/armv8_2-fp16-scalar-2.c: New.
      	* gcc.target/arm/attr-fp16-arith-1.c: Add a test of intrinsics
      	support.
      
      From-SVN: r240425
      Matthew Wahab committed
    • [PATCH 14/17][ARM] Add NEON FP16 instrinsics. · de955a69
      gcc/
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* config/arm/arm_neon.h (vabd_f16): New.
      	(vabdq_f16): New.
      	(vabs_f16): New.
      	(vabsq_f16): New.
      	(vadd_f16): New.
      	(vaddq_f16): New.
      	(vcage_f16): New.
      	(vcageq_f16): New.
      	(vcagt_f16): New.
      	(vcagtq_f16): New.
      	(vcale_f16): New.
      	(vcaleq_f16): New.
      	(vcalt_f16): New.
      	(vcaltq_f16): New.
      	(vceq_f16): New.
      	(vceqq_f16): New.
      	(vceqz_f16): New.
      	(vceqzq_f16): New.
      	(vcge_f16): New.
      	(vcgeq_f16): New.
      	(vcgez_f16): New.
      	(vcgezq_f16): New.
      	(vcgt_f16): New.
      	(vcgtq_f16): New.
      	(vcgtz_f16): New.
      	(vcgtzq_f16): New.
      	(vcle_f16): New.
      	(vcleq_f16): New.
      	(vclez_f16): New.
      	(vclezq_f16): New.
      	(vclt_f16): New.
      	(vcltq_f16): New.
      	(vcltz_f16): New.
      	(vcltzq_f16): New.
      	(vcvt_f16_s16): New.
      	(vcvt_f16_u16): New.
      	(vcvt_s16_f16): New.
      	(vcvt_u16_f16): New.
      	(vcvtq_f16_s16): New.
      	(vcvtq_f16_u16): New.
      	(vcvtq_s16_f16): New.
      	(vcvtq_u16_f16): New.
      	(vcvta_s16_f16): New.
      	(vcvta_u16_f16): New.
      	(vcvtaq_s16_f16): New.
      	(vcvtaq_u16_f16): New.
      	(vcvtm_s16_f16): New.
      	(vcvtm_u16_f16): New.
      	(vcvtmq_s16_f16): New.
      	(vcvtmq_u16_f16): New.
      	(vcvtn_s16_f16): New.
      	(vcvtn_u16_f16): New.
      	(vcvtnq_s16_f16): New.
      	(vcvtnq_u16_f16): New.
      	(vcvtp_s16_f16): New.
      	(vcvtp_u16_f16): New.
      	(vcvtpq_s16_f16): New.
      	(vcvtpq_u16_f16): New.
      	(vcvt_n_f16_s16): New.
      	(vcvt_n_f16_u16): New.
      	(vcvtq_n_f16_s16): New.
      	(vcvtq_n_f16_u16): New.
      	(vcvt_n_s16_f16): New.
      	(vcvt_n_u16_f16): New.
      	(vcvtq_n_s16_f16): New.
      	(vcvtq_n_u16_f16): New.
      	(vfma_f16): New.
      	(vfmaq_f16): New.
      	(vfms_f16): New.
      	(vfmsq_f16): New.
      	(vmax_f16): New.
      	(vmaxq_f16): New.
      	(vmaxnm_f16): New.
      	(vmaxnmq_f16): New.
      	(vmin_f16): New.
      	(vminq_f16): New.
      	(vminnm_f16): New.
      	(vminnmq_f16): New.
      	(vmul_f16): New.
      	(vmul_lane_f16): New.
      	(vmul_n_f16): New.
      	(vmulq_f16): New.
      	(vmulq_lane_f16): New.
      	(vmulq_n_f16): New.
      	(vneg_f16): New.
      	(vnegq_f16): New.
      	(vpadd_f16): New.
      	(vpmax_f16): New.
      	(vpmin_f16): New.
      	(vrecpe_f16): New.
      	(vrecpeq_f16): New.
      	(vrnd_f16): New.
      	(vrndq_f16): New.
      	(vrnda_f16): New.
      	(vrndaq_f16): New.
      	(vrndm_f16): New.
      	(vrndmq_f16): New.
      	(vrndn_f16): New.
      	(vrndnq_f16): New.
      	(vrndp_f16): New.
      	(vrndpq_f16): New.
      	(vrndx_f16): New.
      	(vrndxq_f16): New.
      	(vrsqrte_f16): New.
      	(vrsqrteq_f16): New.
      	(vrecps_f16): New.
      	(vrecpsq_f16): New.
      	(vrsqrts_f16): New.
      	(vrsqrtsq_f16): New.
      	(vsub_f16): New.
      	(vsubq_f16): New.
      
      From-SVN: r240424
      Matthew Wahab committed
    • [PATCH 13/17][ARM] Add VFP FP16 instrinsics. · 29c3d574
      gcc/
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* config.gcc (extra_headers): Add arm_fp16.h
      	* config/arm/arm_fp16.h: New.
      	* config/arm/arm_neon.h: Include "arm_fp16.h".
      
      From-SVN: r240423
      Matthew Wahab committed
    • [PATCH 12/17][ARM] Add builtins for NEON FP16 intrinsics. · 0768b127
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf
      	variants).
      	(vmulf): New (v8hf, v4hf variants).
      	(vfma): New (v8hf, v4hf variants).
      	(vfms): New (v8hf, v4hf variants).
      	(vsub): New (v8hf, v4hf variants).
      	(vcage): New (v8hf, v4hf variants).
      	(vcagt): New (v8hf, v4hf variants).
      	(vcale): New (v8hf, v4hf variants).
      	(vcalt): New (v8hf, v4hf variants).
      	(vceq): New (v8hf, v4hf variants).
      	(vcgt): New (v8hf, v4hf variants).
      	(vcge): New (v8hf, v4hf variants).
      	(vcle): New (v8hf, v4hf variants).
      	(vclt): New (v8hf, v4hf variants).
      	(vceqz): New (v8hf, v4hf variants).
      	(vcgez): New (v8hf, v4hf variants).
      	(vcgtz): New (v8hf, v4hf variants).
      	(vcltz): New (v8hf, v4hf variants).
      	(vclez): New (v8hf, v4hf variants).
      	(vabd): New (v8hf, v4hf variants).
      	(vmaxf): New (v8hf, v4hf variants).
      	(vmaxnm): New (v8hf, v4hf variants).
      	(vminf): New (v8hf, v4hf variants).
      	(vminnm): New (v8hf, v4hf variants).
      	(vpmaxf): New (v4hf variant).
      	(vpminf): New (v4hf variant).
      	(vpadd): New (v4hf variant).
      	(vrecps): New (v8hf, v4hf variants).
      	(vrsqrts): New (v8hf, v4hf variants).
      	(vabs): New (v8hf, v4hf variants).
      	(vneg): New (v8hf, v4hf variants).
      	(vrecpe): New (v8hf, v4hf variants).
      	(vrnd): New (v8hf, v4hf variants).
      	(vrnda): New (v8hf, v4hf variants).
      	(vrndm): New (v8hf, v4hf variants).
      	(vrndn): New (v8hf, v4hf variants).
      	(vrndp): New (v8hf, v4hf variants).
      	(vrndx): New (v8hf, v4hf variants).
      	(vrsqrte): New (v8hf, v4hf variants).
      	(vmul_lane): Add v4hf and v8hf variants.
      	(vmul_n): Add v4hf and v8hf variants.
      	(vext): New (v8hf, v4hf variants).
      	(vcvts): New (v8hi, v4hi variants).
      	(vcvts): New (v8hf, v4hf variants).
      	(vcvtu): New (v8hi, v4hi variants).
      	(vcvtu): New (v8hf, v4hf variants).
      	(vcvts_n): New (v8hf, v4hf variants).
      	(vcvtu_n): New (v8hi, v4hi variants).
      	(vcvts_n): New (v8hi, v4hi variants).
      	(vcvtu_n): New (v8hf, v4hf variants).
      	(vbsl): New (v8hf, v4hf variants).
      	(vcvtas): New (v8hf, v4hf variants).
      	(vcvtau): New (v8hf, v4hf variants).
      	(vcvtms): New (v8hf, v4hf variants).
      	(vcvtmu): New (v8hf, v4hf variants).
      	(vcvtns): New (v8hf, v4hf variants).
      	(vcvtnu): New (v8hf, v4hf variants).
      	(vcvtps): New (v8hf, v4hf variants).
      	(vcvtpu): New (v8hf, v4hf variants).
      
      From-SVN: r240422
      Matthew Wahab committed
    • [PATCH 11/17][ARM] Add builtins for VFP FP16 intrinsics. · 66e31c3d
      gcc/
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* config/arm/arm-builtins.c (hf_UP): New.
      	(si_UP): New.
      	(vfp_builtin_data): New.  Update comment.
      	(enum arm_builtins): Include "arm_vfp_builtins.def".
      	(ARM_BUILTIN_VFP_PATTERN_START): New.
      	(arm_init_vfp_builtins): New.
      	(arm_init_builtins): Add arm_init_vfp_builtins.
      	(arm_expand_vfp_builtin): New.
      	(arm_expand_builtins): Update for arm_expand_vfp_builtin.  Fix
      	long line.
      	* config/arm/arm_vfp_builtins.def: New file.
      	* config/arm/t-arm (arm.o): Add arm_vfp_builtins.def.
      	(arm-builtins.o): Likewise.
      
      From-SVN: r240421
      Matthew Wahab committed
    • Drop TREE_OVERFLOW · 1e401340
      gcc/ChangeLog:
      
      2016-09-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	PR ipa/77677
      	* ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
      	from constant while creating value range.
      
      gcc/testsuite/ChangeLog:
      
      2016-09-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	PR ipa/77677
      	* gcc.dg/torture/pr77677.c: New test.
      
      From-SVN: r240420
      Kugan Vivekanandarajah committed
    • trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Use the old caf- interface where possible. · 8ed3eeac
      gcc/fortran/ChangeLog:
      
      2016-09-23  Andre Vehreschild  <vehre@gcc.gnu.org>
      
      	* trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Use the old caf-
      	interface where possible.
      
      gcc/testsuite/ChangeLog:
      
      2016-09-23  Andre Vehreschild  <vehre@gcc.gnu.org>
      
      	* gfortran.dg/coarray_lib_comm_1.f90: Using the old caf-interface
      	here now.
      
      From-SVN: r240419
      Andre Vehreschild committed
    • [PATCH][IRA]Initialize ira_use_lra_p early by moving the initialization into · 23427d51
      ira_init_once ().
      
      ira_use_lra_p previously will be used unintialized in backend_init_target ().
      
      gcc/
      
      2016-09-23  Renlin Li  <renlin.li@arm.com>
      
      	* ira.c (ira): Move ira_use_lra_p initialization code to ...
      	(ira_init_once): Here.
      
      From-SVN: r240418
      Renlin Li committed
    • hooks.h (hook_uint_uintp_false): Rename to... · bf072854
      	* hooks.h (hook_uint_uintp_false): Rename to...
      	(hook_bool_uint_uintp_false): ... this.
      	* hooks.c (hook_uint_uintp_false): Rename to...
      	(hook_bool_uint_uintp_false): ... this.
      	* target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false
      	instead of hook_uint_uintp_false.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r240417
      Uros Bizjak committed
    • [PATCH 10/17][ARM] Refactor support code for NEON builtins. · bce2b8f9
      gcc/
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* config/arm/arm-builtins.c (arm_init_neon_builtin): New.
      	(arm_init_builtins): Move body of a loop to the standalone
      	function arm_init_neon_builtin.
      	(arm_expand_neon_builtin_1): New.  Update comment.  Function body
      	moved from arm_neon_builtin with some white-space fixes.
      	(arm_expand_neon_builtin): Move code into the standalone function
      	arm_expand_neon_builtin_1.
      
      From-SVN: r240416
      Matthew Wahab committed
    • [PATCH 9/17][ARM] Add NEON FP16 arithmetic instructions. · 55a9b91b
      gcc/
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* config/arm/iterators.md (VCVTHI): New.
      	(NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE.  Fix a long line.
      	(NEON_VAGLTE): New.
      	(VFM_LANE_AS): New.
      	(VH_CVTTO): New.
      	(V_reg): Add HF, V4HF and V8HF.  Fix white-space.
      	(V_HALF): Add V4HF.  Fix white-space.
      	(V_if_elem): Add HF, V4HF and V8HF.  Fix white-space.
      	(V_s_elem): Likewise.
      	(V_sz_elem): Fix white-space.
      	(V_elem_ch): Likewise.
      	(VH_elem_ch): New.
      	(scalar_mul_constraint): Add V8HF and V4HF.
      	(Is_float_mode): Fix white-space.
      	(Is_d_reg): Add V4HF and V8HF.  Fix white-space.
      	(q): Add HF.  Fix white-space.
      	(float_sup): New.
      	(float_SUP): New.
      	(cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT.
      	(neon_vfm_lane_as): New.
      	* config/arm/neon.md (add<mode>3_fp16): New.
      	(sub<mode>3_fp16): New.
      	(mul<mode>3add<mode>_neon): New.
      	(fma<VH:mode>4_intrinsic): New.
      	(fmsub<VCVTF:mode>4_intrinsic): Fix white-space.
      	(fmsub<VH:mode>4_intrinsic): New.
      	(<absneg_str><mode>2): New.
      	(neon_v<absneg_str><mode>): New.
      	(neon_v<fp16_rnd_str><mode>): New.
      	(neon_vrsqrte<mode>): New.
      	(neon_vpaddv4hf): New.
      	(neon_vadd<mode>): New.
      	(neon_vsub<mode>): New.
      	(neon_vmulf<mode>): New.
      	(neon_vfma<VH:mode>): New.
      	(neon_vfms<VH:mode>): New.
      	(neon_vc<cmp_op><mode>): New.
      	(neon_vc<cmp_op><mode>_fp16insn): New
      	(neon_vc<cmp_op_unsp><mode>_fp16insn_unspec): New.
      	(neon_vca<cmp_op><mode>): New.
      	(neon_vca<cmp_op><mode>_fp16insn): New.
      	(neon_vca<cmp_op_unsp><mode>_fp16insn_unspec): New.
      	(neon_vc<cmp_op>z<mode>): New.
      	(neon_vabd<mode>): New.
      	(neon_v<maxmin>f<mode>): New.
      	(neon_vp<maxmin>fv4hf: New.
      	(neon_<fmaxmin_op><mode>): New.
      	(neon_vrecps<mode>): New.
      	(neon_vrsqrts<mode>): New.
      	(neon_vrecpe<mode>): New (VH variant).
      	(neon_vdup_lane<mode>_internal): New.
      	(neon_vdup_lane<mode>): New.
      	(neon_vcvt<sup><mode>): New (VCVTHI variant).
      	(neon_vcvt<sup><mode>): New (VH variant).
      	(neon_vcvt<sup>_n<mode>): New (VH variant).
      	(neon_vcvt<sup>_n<mode>): New (VCVTHI variant).
      	(neon_vcvt<vcvth_op><sup><mode>): New.
      	(neon_vmul_lane<mode>): New.
      	(neon_vmul_n<mode>): New.
      	* config/arm/unspecs.md (UNSPEC_VCALE): New
      	(UNSPEC_VCALT): New.
      	(UNSPEC_VFMA_LANE): New.
      	(UNSPECS_VFMS_LANE): New.
      
      testsuite/
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* gcc.target/arm/armv8_2-fp16-arith-1.c: Use arm_v8_2a_fp16_neon
      	options.  Add tests for float16x4_t and float16x8_t.
      
      From-SVN: r240415
      Matthew Wahab committed
    • S/390: Improved risbg usage. · 64c744b9
      gcc/ChangeLog:
      
      2016-09-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
      
      	* config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
      	("*extzv<mode><clobbercc_or_nocc>"):
      	Correct a typo in a comment.
      	Merged patterns.
      	("*insv<mode>_zEC12", "*insv<mode>_z10")
      	("*insv<mode><clobbercc_or_nocc>"): Ditto.
      	("*insv<mode>_zEC12_appendbitsleft")
      	("*insv<mode><clobbercc_or_nocc>_appendbitsleft")
      	("*insv<mode>_z10_appendbitsleft"): Ditto.
      	("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift")
      	("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto.
      	Provide pattern with operands switched.
      	("*pre_z10_extv<mode>"):
      	Use new subst patterns.
      	("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze")
      	("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr")
      	("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot")
      	("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly")
      	("*<risbg_n>_<mode>_ior_and_lshiftrt")
      	("*<risbg_n>_sidi_ior_and_lshiftrt")
      	("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"):
      	New patterns.
      	("*extzv_<mode>_sll", "*extzv_<mode>_srl")
      	("*extzv_<mode>_srl<clobbercc_or_nocc>")
      	("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn
      	on zEC12.
      	("SINT"): New mode_iterator with SI, HI, QI.
      	* config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond")
      	("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern
      	duplication.
      	
      gcc/testsuite/ChangeLog:
      
      2016-09-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
      
      	* gcc.target/s390/risbg-ll-1.c: Ported risbg tests from llvm.
      	* gcc.target/s390/risbg-ll-2.c: Ditto.
      	* gcc.target/s390/risbg-ll-3.c: Ditto.
      
      From-SVN: r240414
      Dominik Vogt committed
    • S/390: Enable wraparound in s390_contiguous_bitmask_p. · c2586c82
      gcc/ChangeLog:
      
      2016-09-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
      
      	* config/s390/predicates.md ("contiguous_bitmask_operand"): Adapt to new
      	interface of s390_contiguous_bitmask_p.
      	("contiguous_bitmask_nowrap_operand"): New predicate.
      	* ("*anddi3_cc", "*anddi3_cconly", "*anddi3"): Replace NxxDq with NxxDw.
      	* config/s390/constraints.md ("NxxDw", "NxxSq"): Adapt to new interface
      	of s390_contiguous_bitmask_p.
      	* ("NxxDw"): Rename NxxDq constraint to NxxDw.
      	("NxxSw"): New constraint.
      	* config/s390/s390.md ("*andsi3_zarch"): Enable bitmask wraparound.
      	* config/s390/s390-protos.h (s390_contiguous_bitmask_p): Updated
      	interface.
      	(s390_contiguous_bitmask_nowrap_p): Export.
      	* config/s390/s390.c (s390_contiguous_bitmask_nowrap_p): New name of
      	former s390_contiguous_bitmask_p.
      	(s390_contiguous_bitmask_p): Use s390_contiguous_bitmask_nowrap_p to
      	detect contiguous bit ranges with wraparound.  Change signature to
      	return START and END position instead of POS and LENGTH.
      	(s390_contiguous_bitmask_vector_p): Remove extra code for continous bit
      	ranges with wraparound.
      	(s390_extzv_shift_ok): Use s390_contiguous_bitmask_nowrap_p.
      	(s390_contiguous_bitmask_vector_p,s390_extzv_shift_ok,print_operand):
      	Adapt to new signature of s390_contiguous_bitmask_p.
      
      From-SVN: r240413
      Dominik Vogt committed
    • tree-vect-loop-manip.c (create_intersect_range_checks_index): New. · 822f18cd
      	* tree-vect-loop-manip.c (create_intersect_range_checks_index): New.
      	(create_intersect_range_checks): New.
      	(vect_create_cond_for_alias_checks): Call above function.
      
      From-SVN: r240412
      Bin Cheng committed
    • [PATCH 8/17][ARM] Add VFP FP16 arithmetic instructions. · d403b8d4
      gcc/
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* config/arm/iterators.md (Code iterators): Fix some white-space
      	in the comments.
      	(GLTE): New.
      	(ABSNEG): New
      	(FCVT): Moved from vfp.md.
      	(VCVT_HF_US_N): New.
      	(VCVT_SI_US_N): New.
      	(VCVT_HF_US): New.
      	(VCVTH_US): New.
      	(FP16_RND): New.
      	(absneg_str): New.
      	(FCVTI32typename): Moved from vfp.md.
      	(sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S,
      	UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S,
      	UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N,
      	UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N,  UNSPEC_VCVTH_S_N,
      	UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U.
      	(vcvth_op): New.
      	(fp16_rnd_str): New.
      	(fp16_rnd_insn): New.
      	* config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New.
      	(UNSPEC_VCVT_HF_U_N): New.
      	(UNSPEC_VCVT_SI_S_N): New.
      	(UNSPEC_VCVT_SI_U_N): New.
      	(UNSPEC_VCVTH_S): New.
      	(UNSPEC_VCVTH_U): New.
      	(UNSPEC_VCVTA_S): New.
      	(UNSPEC_VCVTA_U): New.
      	(UNSPEC_VCVTM_S): New.
      	(UNSPEC_VCVTM_U): New.
      	(UNSPEC_VCVTN_S): New.
      	(UNSPEC_VCVTN_U): New.
      	(UNSPEC_VCVTP_S): New.
      	(UNSPEC_VCVTP_U): New.
      	(UNSPEC_VCVTP_S): New.
      	(UNSPEC_VCVTP_U): New.
      	(UNSPEC_VRND): New.
      	(UNSPEC_VRNDA): New.
      	(UNSPEC_VRNDI): New.
      	(UNSPEC_VRNDM): New.
      	(UNSPEC_VRNDN): New.
      	(UNSPEC_VRNDP): New.
      	(UNSPEC_VRNDX): New.
      	* config/arm/vfp.md (<absneg_str>hf2): New.
      	(neon_vabshf): New.
      	(neon_v<fp16_rnd_str>hf): New.
      	(neon_vrndihf): New.
      	(addhf3): New.
      	(subhf3): New.
      	(divhf3): New.
      	(mulhf3): New.
      	(*mulsf3neghf_vfp): New.
      	(*negmulhf3_vfp): New.
      	(*mulsf3addhf_vfp): New.
      	(*mulhf3subhf_vfp): New.
      	(*mulhf3neghfaddhf_vfp): New.
      	(*mulhf3neghfsubhf_vfp): New.
      	(fmahf4): New.
      	(neon_vfmahf): New.
      	(fmsubhf4_fp16): New.
      	(neon_vfmshf): New.
      	(*fnmsubhf4): New.
      	(*fnmaddhf4): New.
      	(neon_vsqrthf): New.
      	(neon_vrsqrtshf): New.
      	(FCVT): Move to iterators.md.
      	(FCVTI32typename): Likewise.
      	(neon_vcvth<sup>hf): New.
      	(neon_vcvth<sup>si): New.
      	(neon_vcvth<sup>_nhf_unspec): New.
      	(neon_vcvth<sup>_nhf): New.
      	(neon_vcvth<sup>_nsi_unspec): New.
      	(neon_vcvth<sup>_nsi): New.
      	(neon_vcvt<vcvth_op>h<sup>si): New.
      	(neon_<fmaxmin_op>hf): New.
      
      testsuite/
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* gcc.target/arm/armv8_2-fp16-arith-1.c: New.
      	* gcc.target/arm/armv8_2-fp16-conv-1.c: New.
      
      From-SVN: r240411
      Matthew Wahab committed
    • Add missing ChangeLog from r240375 · e2080e79
      From-SVN: r240410
      Tamar Christina committed
    • S/390: Mode attrs "bitoff[_plus]" simplify risbg instructions. · 576987fc
      Add a new mode attribute to simplify some instruction patterns.
      
      gcc/ChangeLog:
      
      2016-09-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
      
      	* config/s390/s390.md (bitoff, bitoff_plus): Neq mode attributes.
      	("*extzv<mode>_zEC12", "*insv<mode>_zEC12", "*insv<mode>_z10")
      	("*insv<mode>_zEC12_appendbitsleft")
      	("*insv<mode>_z10_appendbitsleft", "*r<noxa>sbg_<mode>_sll")
      	("*r<noxa>sbg_<mode>_srl"): Use new attributes.
      
      gcc/testsuite/ChangeLog:
      
      2016-09-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
      
      	* gcc.target/s390/md/rXsbg_mode_sXl.c: Adapt expected assembly
      	output to the simplified instructions.
      
      From-SVN: r240409
      Dominik Vogt committed
    • ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero. · 199d1d48
      	* ipa-cp.c (ipcp_store_vr_results): Avoid static local
      	var zero.
      	* sreal.h (sreal::min, sreal::max): Avoid static local vars,
      	construct values without normalization.
      	* tree-ssa-sccvn.c (vn_reference_lookup_3): Don't initialize
      	static local lhs_ops to vNULL.
      cp/
      	* name-lookup.c (store_bindings, store_class_bindings): Don't
      	initialize static local bindings_need_stored to vNULL.
      
      From-SVN: r240408
      Jakub Jelinek committed
    • [PATCH 7/17][ARM] Add FP16 data movement instructions. · 4ffc8099
      gcc/
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      	    Jiong Wang <jiong.wang@arm.com>
      
      	* config/arm/arm.c (coproc_secondary_reload_class): Make HFmode
      	available when FP16 instructions are available.
      	(output_move_vfp): Add support for 16-bit data moves.
      	(arm_validize_comparison): Fix some white-space.  Support HFmode
      	by conversion to SFmode.
      	* config/arm/arm.md (truncdfhf2): Fix a comment.
      	(extendhfdf2): Likewise.
      	(cstorehf4): New.
      	(movsicc): Fix some white-space.
      	(movhfcc): New.
      	(movsfcc): Fix some white-space.
      	(*cmovhf): New.
      	* config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16
      	instructions are available.
      	(*thumb2_movhi_vfp): Likewise.
      	(*arm_movhi_fp16): New.
      	(*thumb2_movhi_fp16): New.
      	(*movhf_vfp_fp16): New.
      	(*movhf_vfp_neon): Disable when VFP FP16 instructions are
      	available.
      	(*movhf_vfp): Likewise.
      	(extendhfsf2): Enable when VFP FP16 instructions are available.
      	(truncsfhf2):  Enable when VFP FP16 instructions are available.
      
      testsuite/
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* gcc.target/arm/armv8_2_fp16-move-1.c: New.
      	* gcc.target/arm/fp16-aapcs-1.c: Update expected output.
      
      
      Co-Authored-By: Jiong Wang <jiong.wang@arm.com>
      
      From-SVN: r240407
      Matthew Wahab committed