1. 30 Dec, 2019 11 commits
    • Fix macro reference in gthr-vxworks-tls.c · 49cfaa2a
      2019-12-30  Olivier Hainque  <hainque@adacore.com>
      
      	libgcc/
      	* config/gthr-vxworks-tls.c (__gthread_getspecific): Fix
      	reference to the internal VX_GET_TLS_DATA interface.
      
      From-SVN: r279775
      Olivier Hainque committed
    • Fix typo in macro name guarding conditional in vxcrtstuff.c · 89b9a554
      2019-12-30  Olivier Hainque  <hainque@adacore.com>
      
      	libgcc/
      	* config/vxcrtstuff.c: Fix incorrect spelling of
      	USE_INITFINI_ARRAY in guard.
      
      From-SVN: r279774
      Olivier Hainque committed
    • re PR libgomp/93066 (libgomp/target.c:525:46: error: expected expression before ')' token) · 5ee5eddb
      	PR libgomp/93066
      	* inclhack.def (hpux_c99_inttypes3): Fix defines for INTPTR_MAX
      	and UINTPTR_MAX, and missing define for SIZE_MAX.
      	* fixincl.x: Regenerate.
      	* tests/base/inttypes.h: Update for above fix.
      
      From-SVN: r279773
      John David Anglin committed
    • Fix builtin functions needlessly using VIEW_CONVERT_EXPRs on their operands. · 4559be23
      gcc/
      	PR target/92923
      	* config/rs6000/rs6000-builtin.def (VAND, VANDC, VNOR, VOR, VXOR):
      	Delete.
      	(EQV_V16QI_UNS, EQV_V8HI_UNS, EQV_V4SI_UNS, EQV_V2DI_UNS, EQV_V1TI_UNS,
      	NAND_V16QI_UNS, NAND_V8HI_UNS, NAND_V4SI_UNS, NAND_V2DI_UNS,
      	NAND_V1TI_UNS, ORC_V16QI_UNS, ORC_V8HI_UNS, ORC_V4SI_UNS, ORC_V2DI_UNS,
      	ORC_V1TI_UNS, VAND_V16QI_UNS, VAND_V16QI, VAND_V8HI_UNS, VAND_V8HI,
      	VAND_V4SI_UNS, VAND_V4SI, VAND_V2DI_UNS, VAND_V2DI, VAND_V4SF,
      	VAND_V2DF, VANDC_V16QI_UNS, VANDC_V16QI, VANDC_V8HI_UNS, VANDC_V8HI,
      	VANDC_V4SI_UNS, VANDC_V4SI, VANDC_V2DI_UNS, VANDC_V2DI, VANDC_V4SF,
      	VANDC_V2DF, VNOR_V16QI_UNS, VNOR_V16QI, VNOR_V8HI_UNS, VNOR_V8HI,
      	VNOR_V4SI_UNS, VNOR_V4SI, VNOR_V2DI_UNS, VNOR_V2DI, VNOR_V4SF,
      	VNOR_V2DF, VOR_V16QI_UNS, VOR_V16QI, VOR_V8HI_UNS, VOR_V8HI,
      	VOR_V4SI_UNS, VOR_V4SI, VOR_V2DI_UNS, VOR_V2DI, VOR_V4SF, VOR_V2DF,
      	VXOR_V16QI_UNS, VXOR_V16QI, VXOR_V8HI_UNS, VXOR_V8HI,
      	VXOR_V4SI_UNS, VXOR_V4SI, VXOR_V2DI_UNS, VXOR_V2DI, VXOR_V4SF,
      	VXOR_V2DF): Add definitions.
      	* config/rs6000/rs6000-call.c (altivec_overloaded_builtins)
      	<ALTIVEC_BUILTIN_VAND, ALTIVEC_BUILTIN_VANDC, ALTIVEC_BUILTIN_VNOR,
      	ALTIVEC_BUILTIN_VOR, ALTIVEC_BUILTIN_VXOR>: Remove.
      	<ALTIVEC_BUILTIN_VAND_V4SF, ALTIVEC_BUILTIN_VAND_V2DF,
      	ALTIVEC_BUILTIN_VAND_V2DI, ALTIVEC_BUILTIN_VAND_V2DI_UNS,
      	ALTIVEC_BUILTIN_VAND_V4SI_UNS, ALTIVEC_BUILTIN_VAND_V4SI,
      	ALTIVEC_BUILTIN_VAND_V8HI_UNS, ALTIVEC_BUILTIN_VAND_V8HI,
      	ALTIVEC_BUILTIN_VAND_V16QI, ALTIVEC_BUILTIN_VAND_V16QI_UNS,
      	ALTIVEC_BUILTIN_VANDC_V4SF, ALTIVEC_BUILTIN_VANDC_V2DF,
      	ALTIVEC_BUILTIN_VANDC_V2DI, ALTIVEC_BUILTIN_VANDC_V2DI_UNS,
      	ALTIVEC_BUILTIN_VANDC_V4SI_UNS, ALTIVEC_BUILTIN_VANDC_V4SI,
      	ALTIVEC_BUILTIN_VANDC_V8HI_UNS, ALTIVEC_BUILTIN_VANDC_V8HI,
      	ALTIVEC_BUILTIN_VANDC_V16QI, ALTIVEC_BUILTIN_VANDC_V16QI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V4SF, ALTIVEC_BUILTIN_VNOR_V2DF,
      	ALTIVEC_BUILTIN_VNOR_V2DI, ALTIVEC_BUILTIN_VNOR_V2DI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V4SI, ALTIVEC_BUILTIN_VNOR_V4SI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V8HI, ALTIVEC_BUILTIN_VNOR_V8HI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V16QI, ALTIVEC_BUILTIN_VNOR_V16QI_UNS,
      	ALTIVEC_BUILTIN_VOR_V4SF, ALTIVEC_BUILTIN_VOR_V2DF,
      	ALTIVEC_BUILTIN_VOR_V2DI, ALTIVEC_BUILTIN_VOR_V2DI_UNS,
      	ALTIVEC_BUILTIN_VOR_V4SI_UNS, ALTIVEC_BUILTIN_VOR_V4SI,
      	ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V8HI,
      	ALTIVEC_BUILTIN_VOR_V16QI, ALTIVEC_BUILTIN_VOR_V16QI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V4SF, ALTIVEC_BUILTIN_VXOR_V2DF,
      	ALTIVEC_BUILTIN_VXOR_V2DI, ALTIVEC_BUILTIN_VXOR_V2DI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V4SI_UNS, ALTIVEC_BUILTIN_VXOR_V4SI,
      	ALTIVEC_BUILTIN_VXOR_V8HI, ALTIVEC_BUILTIN_VXOR_V8HI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V16QI, ALTIVEC_BUILTIN_VXOR_V16QI_UNS>: Add
      	definitions.
      	<P8V_BUILTIN_EQV_V16QI, P8V_BUILTIN_EQV_V8HI, P8V_BUILTIN_EQV_V4SI,
      	P8V_BUILTIN_EQV_V2DI, P8V_BUILTIN_NAND_V16QI, P8V_BUILTIN_NAND_V8HI,
      	P8V_BUILTIN_NAND_V4SI, P8V_BUILTIN_NAND_V2DI, P8V_BUILTIN_ORC_V16QI,
      	P8V_BUILTIN_ORC_V8HI, P8V_BUILTIN_ORC_V4SI,
      	P8V_BUILTIN_ORC_V2DI>: Change unsigned usages to use the new *_UNS
      	definition names.
      	(rs6000_gimple_fold_builtin) <ALTIVEC_BUILTIN_VAND_V16QI_UNS,
      	ALTIVEC_BUILTIN_VAND_V16QI, ALTIVEC_BUILTIN_VAND_V8HI_UNS,
      	ALTIVEC_BUILTIN_VAND_V8HI, ALTIVEC_BUILTIN_VAND_V4SI_UNS,
      	ALTIVEC_BUILTIN_VAND_V4SI, ALTIVEC_BUILTIN_VAND_V2DI_UNS,
      	ALTIVEC_BUILTIN_VAND_V2DI, ALTIVEC_BUILTIN_VAND_V4SF,
      	ALTIVEC_BUILTIN_VAND_V2DF, ALTIVEC_BUILTIN_VANDC_V16QI_UNS,
      	ALTIVEC_BUILTIN_VANDC_V16QI, ALTIVEC_BUILTIN_VANDC_V8HI_UNS,
      	ALTIVEC_BUILTIN_VANDC_V8HI, ALTIVEC_BUILTIN_VANDC_V4SI_UNS,
      	ALTIVEC_BUILTIN_VANDC_V4SI, ALTIVEC_BUILTIN_VANDC_V2DI_UNS,
      	ALTIVEC_BUILTIN_VANDC_V2DI, ALTIVEC_BUILTIN_VANDC_V4SF,
      	ALTIVEC_BUILTIN_VANDC_V2DF, P8V_BUILTIN_NAND_V16QI_UNS,
      	P8V_BUILTIN_NAND_V8HI_UNS, P8V_BUILTIN_NAND_V4SI_UNS,
      	P8V_BUILTIN_NAND_V2DI_UNS, P8V_BUILTIN_NAND_V2DI,
      	ALTIVEC_BUILTIN_VOR_V16QI_UNS, ALTIVEC_BUILTIN_VOR_V16QI,
      	ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V8HI,
      	ALTIVEC_BUILTIN_VOR_V4SI_UNS, ALTIVEC_BUILTIN_VOR_V4SI,
      	ALTIVEC_BUILTIN_VOR_V2DI_UNS, ALTIVEC_BUILTIN_VOR_V2DI,
      	ALTIVEC_BUILTIN_VOR_V4SF, ALTIVEC_BUILTIN_VOR_V2DF,
      	P8V_BUILTIN_ORC_V16QI_UNS, P8V_BUILTIN_ORC_V8HI_UNS,
      	P8V_BUILTIN_ORC_V4SI_UNS, P8V_BUILTIN_ORC_V2DI_UNS,
      	P8V_BUILTIN_ORC_V2DI, ALTIVEC_BUILTIN_VXOR_V16QI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V16QI, ALTIVEC_BUILTIN_VXOR_V8HI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V8HI, ALTIVEC_BUILTIN_VXOR_V4SI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V4SI, ALTIVEC_BUILTIN_VXOR_V2DI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V2DI, ALTIVEC_BUILTIN_VXOR_V4SF,
      	ALTIVEC_BUILTIN_VXOR_V2DF, ALTIVEC_BUILTIN_VNOR_V16QI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V16QI, ALTIVEC_BUILTIN_VNOR_V8HI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V8HI, ALTIVEC_BUILTIN_VNOR_V4SI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V4SI, ALTIVEC_BUILTIN_VNOR_V2DI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V2DI, ALTIVEC_BUILTIN_VNOR_V4SF,
      	ALTIVEC_BUILTIN_VNOR_V2DF>: Use new definition names.
      	(builtin_function_type) <ALTIVEC_BUILTIN_VAND_V16QI_UNS,
      	ALTIVEC_BUILTIN_VAND_V8HI_UNS, ALTIVEC_BUILTIN_VAND_V4SI_UNS,
      	ALTIVEC_BUILTIN_VAND_V2DI_UNS, ALTIVEC_BUILTIN_VANDC_V16QI_UNS,
      	ALTIVEC_BUILTIN_VANDC_V8HI_UNS, ALTIVEC_BUILTIN_VANDC_V4SI_UNS,
      	ALTIVEC_BUILTIN_VANDC_V2DI_UNS, ALTIVEC_BUILTIN_VNOR_V16QI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V8HI_UNS, ALTIVEC_BUILTIN_VNOR_V4SI_UNS,
      	ALTIVEC_BUILTIN_VNOR_V2DI_UNS, ALTIVEC_BUILTIN_VOR_V16QI_UNS,
      	ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V4SI_UNS,
      	ALTIVEC_BUILTIN_VOR_V2DI_UNS, ALTIVEC_BUILTIN_VXOR_V16QI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V8HI_UNS, ALTIVEC_BUILTIN_VXOR_V4SI_UNS,
      	ALTIVEC_BUILTIN_VXOR_V2DI_UNS, P8V_BUILTIN_EQV_V16QI_UNS,
      	P8V_BUILTIN_EQV_V8HI_UNS, P8V_BUILTIN_EQV_V4SI_UNS,
      	P8V_BUILTIN_EQV_V2DI_UNS, P8V_BUILTIN_EQV_V1TI_UNS,
      	P8V_BUILTIN_NAND_V16QI_UNS, P8V_BUILTIN_NAND_V8HI_UNS,
      	P8V_BUILTIN_NAND_V4SI_UNS, P8V_BUILTIN_NAND_V2DI_UNS,
      	P8V_BUILTIN_NAND_V1TI_UNS, P8V_BUILTIN_ORC_V16QI_UNS,
      	P8V_BUILTIN_ORC_V8HI_UNS, P8V_BUILTIN_ORC_V4SI_UNS,
      	P8V_BUILTIN_ORC_V2DI_UNS, P8V_BUILTIN_ORC_V1TI_UNS>: Handle unsigned
      	builtins.
      
      gcc/testsuite/
             PR target/92923
             * gcc.target/powerpc/pr92923-1.c: New test.
             * gcc.target/powerpc/pr92923-2.c: Likewise.
      
      From-SVN: r279772
      Peter Bergner committed
    • Remove assert in reshape_init_r. · a5650762
      Asserting !BRACE_ENCLOSED_INITIALIZER_P seems pretty pointless, since
      that checks for init_list_type_node, and a compound literal won't have
      that type, nor will we see that type if we just checked that it's
      something else.
      
      	* decl.c (reshape_init_r): Remove assert.
      
      From-SVN: r279771
      Marek Polacek committed
    • decl2.c (delete_sanity): Add location_t parameter and use it throughout. · 04e4997a
      /gcc/cp
      2019-12-30  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* decl2.c (delete_sanity): Add location_t parameter and use
      	it throughout.
      	* init.c (build_vec_delete_1): Likewise.
      	(build_delete): Likewise.
      	(build_vec_delete): Likewise.
      	(perform_target_ctor): Adjust call.
      	(perform_member_init): Likewise.
      	(build_vec_init): Likewise.
      	* decl.c (cxx_maybe_build_cleanup): Likewise.
      	* pt.c (tsubst_copy_and_build): Likewise.
      	* parser.c (cp_parser_delete_expression): Likewise, pass the
      	combined_loc.
      	* cp-tree.h: Update declarations.
      
      /libcc1
      2019-12-30  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* libcp1plugin.cc (plugin_build_unary_expr): Update delete_sanity
      	call.
      
      /gcc/testsuite
      2019-12-30  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/init/delete1.C: Check locations too.
      	* g++.dg/ipa/pr85607.C: Likewise.
      	* g++.dg/warn/Wdelete-incomplete-1.C: Likewise.
      	* g++.dg/warn/delete-non-virtual-dtor.C: Likewise.
      	* g++.dg/warn/incomplete1.C: Likewise.
      
      From-SVN: r279768
      Paolo Carlini committed
    • re PR fortran/91651 ([F03] Implement KIND argument for INDEX) · 9332e5ac
      2019-12-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/91651
      	* gfortran.dg/index_3.f90: Fix PR number.
      
      From-SVN: r279766
      Thomas Koenig committed
    • re PR fortran/91651 ([F03] Implement KIND argument for INDEX) · f1cc032c
      2019-12-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/91651
      	Fix PR numbers in ChangeLog.
      
      From-SVN: r279765
      Thomas Koenig committed
    • Remove KIND argument from INDEX so it does not mess up scalarization. · d0984735
      2019-12-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/91541
      	* intrinsic.c (add_sym_4ind): New function.
      	(add_functions): Use it for INDEX.
      	(resolve_intrinsic): Also call f1m for INDEX.
      	* intrinsic.h (gfc_resolve_index_func): Adjust prototype to
      	take a gfc_arglist instead of individual arguments.
      	* iresolve.c (gfc_resolve_index_func): Adjust arguments.
      	Remove KIND argument if present, and make sure this is
      	not done twice.
      	* trans-decl.c: Include "intrinsic.h".
      	(gfc_get_extern_function_decl): Special case for resolving INDEX.
      
      2019-12-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/91541
      	* gfortran.dg/index_3.f90: New test.
      
      From-SVN: r279763
      Thomas Koenig committed
    • Catch division by zero errors in array sizes. · 67251118
      2019-12-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/92961
      	* gfortran.h (gfc_seen_div0): Add declaration.
      	* arith.h (gfc_seen_div0): Add definition.
      	(eval_intrinsic): For integer division by zero, set gfc_seen_div0.
      	* decl.c (variable_decl):  If resolution resp. simplification
      	fails for array spec and a division of zero error has been
      	seen, return MATCH_ERROR.
      
      2019-12-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/92961
      	* gfortran.dg/arith_divide_2.f90: New test.
      
      From-SVN: r279762
      Thomas Koenig committed
    • Daily bump. · c3182576
      From-SVN: r279761
      GCC Administrator committed
  2. 29 Dec, 2019 6 commits
    • re PR c++/92745 (Initializing array with vec4 results in compile error) · 769019d9
      	PR c++/92745
      	* g++.dg/cpp0x/initlist118.C: Add -Wno-psabi -w to dg-options.
      
      From-SVN: r279758
      Jakub Jelinek committed
    • PR c++/88337 - Implement P1327R1: Allow dynamic_cast in constexpr. · 22edf943
      This patch implements
      <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1327r1.html>.
      
      When build_dynamic_cast realizes that a dynamic_cast needs a run-time check, it
      generates a call to __dynamic_cast -- see dyncast.cc in libsupc++ for its
      definition.  The gist of my approach is to evaluate such a call at compile time.
      
      	* constexpr.c (cxx_dynamic_cast_fn_p): New function.
      	(extract_obj_from_addr_offset): New function.
      	(get_component_with_type): New function.
      	(cxx_eval_dynamic_cast_fn): New function.
      	(cxx_eval_call_expression): Call cxx_eval_dynamic_cast_fn for a call
      	to __dynamic_cast.
      	(potential_constant_expression_1): Don't give up on
      	cxx_dynamic_cast_fn_p.
      	* rtti.c (build_dynamic_cast_1): When creating a call to
      	__dynamic_cast, use the location of the original expression.
      
      	* g++.dg/cpp2a/constexpr-dynamic1.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic10.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic11.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic12.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic13.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic14.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic15.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic16.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic17.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic2.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic3.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic4.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic5.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic6.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic7.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic8.C: New test.
      	* g++.dg/cpp2a/constexpr-dynamic9.C: New test.
      
      From-SVN: r279755
      Marek Polacek committed
    • re PR target/93078 (Missing fma and round functions auto-vectorization with x86-64 (sse2)) · 6ec06754
      	PR target/93078
      	* config/i386/i386-builtins.c (ix86_builtin_vectorized_function):
      	Remove CASE_CFN_RINT handling.
      	* config/i386/i386-builtin.def (IX86_BUILTIN_RINTPD,
      	IX86_BUILTIN_RINTPS, IX86_BUILTIN_RINTPD256, IX86_BUILTIN_RINTPS256):
      	Remove.
      	* config/i386/sse.md (nearbyint<mode>2, rint<mode>2): New expanders
      	with VF iterator.
      
      	* gcc.target/i386/sse4_1-pr93078.c: New test.
      	* gcc.target/i386/avx-pr93078.c: New test.
      	* gcc.target/i386/avx512f-pr93078.c: New test.
      
      From-SVN: r279754
      Jakub Jelinek committed
    • Unshare DR_STEP before gimplifying it · f0657516
      In this testcase we use an unmasked SVE loop with an Advanced SIMD
      epilogue (because we don't yet support fully-masked downward loops).
      The main loop uses a gather load for the strided access while the
      epilogue loop builds the access from scalars instead.  In both cases
      we gimplify expressions based on the DR_STEP and insert them in the
      loop preheader.
      
      The problem was that the gather load code didn't copy the DR_STEP before
      gimplifying it, meaning that the epilogue loop tried to reuse a result
      from the (non-dominating) main loop preheader.
      
      It looks at first glance like there could be other instances of this too,
      but this patch just deals with the gather/scatter case.
      
      2019-12-29  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-stmts.c (vect_get_strided_load_store_ops): Copy
      	DR_STEP before gimplifying it.
      
      gcc/testsuite/
      	* gcc.dg/vect/vect-strided-epilogue-1.c: New test.
      
      From-SVN: r279753
      Richard Sandiford committed
    • Check for a supported comparison when using EXTRACT_LAST_REDUCTION · 4bbd661e
      The EXTRACT_LAST_REDUCTION handling needs to generate a separate
      comparison instruction that feeds the vector mask argument of the
      IFN_EXTRACT_LAST call.  We weren't checking whether that comparison
      was supported, leading to an ICE on the testcase.
      
      2019-12-29  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-stmts.c (vectorizable_condition): For extract-last
      	reductions, check that the target supports the required comparison
      	operation.
      
      gcc/testsuite/
      	* gcc.dg/vect/vect-cond-12.c: New test.
      
      From-SVN: r279752
      Richard Sandiford committed
    • Daily bump. · ba2bf6fe
      From-SVN: r279751
      GCC Administrator committed
  3. 28 Dec, 2019 2 commits
  4. 27 Dec, 2019 3 commits
    • [AArch64] Fix typo in V_INT_CONTAINER · 3261d8ba
      All VNx2 V_INT_CONTAINER entries should map to VNx2DI.  The lower-case
      version was already correct.
      
      2019-12-27  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* config/aarch64/iterators.md (V_INT_CONTAINER): Fix VNx2SF entry.
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/mixed_size_11.c: New test.
      
      From-SVN: r279743
      Richard Sandiford committed
    • Add missing target check for fully-masked fold-left reductions · cd8aa0d1
      The fold-left reduction code has a (rarely-used) fallback that handles
      cases in which the loop is fully-masked and the target has no native
      support for the reduction.  The fallback includea a VEC_COND_EXPR
      between the reduction vector and a safe value, so we should check
      whether that VEC_COND_EXPR is supported.
      
      2019-12-27  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-loop.c (vectorizable_reduction): Check whether the
      	target supports the required VEC_COND_EXPR operation before
      	allowing the fallback handling of masked fold-left reductions.
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/mixed_size_10.c: New test.
      
      From-SVN: r279742
      Richard Sandiford committed
    • Daily bump. · 049e64f8
      From-SVN: r279739
      GCC Administrator committed
  5. 26 Dec, 2019 2 commits
  6. 25 Dec, 2019 2 commits
    • Define HAVE_ for math long double functions declared in vxworks headers · 85129ff1
      When cross-building for vxworks, test for declarations of long double
      functions in math.h.  We don't normally test for these functions when
      cross compiling, because link tests don't work, or ever really, but
      not defining them as available causes replacements to be defined in
      ways that may cause duplicate definition linker errors if the units
      defining both the replacement and the actual implementation are
      brought in because of other symbols.
      
      
      for libstdc++-v3/ChangeLog
      
      	* crossconfig.m4 (GLIBCXX_CROSSCONFIG) [*-vxworks*]: Define
      	long double functions as available if declared by math.h.
      	(GLIBCXX_CHECK_MATH_DECL, GLIBCXX_CHECK_MATH_DECLS): New.
      	* configure: Rebuild.
      
      From-SVN: r279731
      Alexandre Oliva committed
    • Daily bump. · de0db051
      From-SVN: r279730
      GCC Administrator committed
  7. 24 Dec, 2019 3 commits
  8. 23 Dec, 2019 4 commits
    • Restrict 'c-c++-common/goacc/mdc-1.c' to LP64, LLP64 · c36371aa
      The tree dump scanning has certain expectations.
      
      	gcc/testsuite/
      	* c-c++-common/goacc/mdc-1.c: Restrict to LP64, LLP64.
      
      From-SVN: r279720
      Thomas Schwinge committed
    • [C++] Make same_type_p return false for gnu_vector_type_p differences (PR 92789) · b8c9cc51
      As Jason pointed out in the review of the C++ gnu_vector_type_p patch:
      
          https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00173.html
      
      the real fix for the XFAILs in acle/general-c++/gnu_vectors_*.C is to
      make same_type_p return false for two types if one is gnu_vector_type_p
      and the other isn't.  This patch does that and fixes the fallout.
      
      Originally I'd tried to make it so that "X *" and "Y *" are
      interconvertible whenever X and Y are, and similarly for
      "X &" and "Y &".  That doesn't fall out naturally though,
      and is different from how -flax-vector-conversions works.
      The patch therefore accepts all the consequences of making
      X and Y !same_type_p instead of trying to work around them.
      
      2019-12-23  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/cp/
      	PR c++/92789
      	* typeck.c (structural_comptypes): Make sure that two vector types
      	agree on gnu_vector_type_p.
      
      gcc/testsuite/
      	PR c++/92789
      	* g++.dg/ext/sve-sizeless-2.C (statements): Expect pointer
      	difference and comparisons between GNU and non-GNU types
      	to be rejected.  Expect __is_same to be false for such pairs.
      	* g++.target/aarch64/sve/acle/general-c++/gnu_vectors_1.C: Remove
      	XFAILs.  Expect conversions between SVE vector pointers and
      	GNU vector pointers to be rejected.  Test references.
      	* g++.target/aarch64/sve/acle/general-c++/gnu_vectors_2.C: Likewise.
      
      From-SVN: r279717
      Richard Sandiford committed
    • [C++] Fix ICE for binding lax vector conversions to references (PR 93014) · 96bea935
      This test:
      
      typedef unsigned int v4si __attribute__ ((vector_size(16)));
      typedef unsigned char v16qi __attribute__ ((vector_size(16)));
      extern v16qi x;
      v4si &y = x;
      
      ICEs with:
      
      a.c:4:11: internal compiler error: in convert_like_real, at cp/call.c:7670
      
      This started with r260780, which had the effect of making lvalue_kind
      look through VIEW_CONVERT_EXPR in all cases, not just for location
      wrappers.  This also means that:
      
      typedef unsigned int v4si __attribute__ ((vector_size(16)));
      typedef unsigned char v16qi __attribute__ ((vector_size(16)));
      extern v16qi x;
      v4si &y = reinterpret_cast<v4si>(x);
      
      is now valid despite the result of the cast being an rvalue.
      
      The patch attempts to fix that by calling rvalue on the input to the
      conversion, so that the tree looks the same as for:
      
        extern v16qi x;
        v4si &y = (v4si)x;
      
      which is already handled correctly.
      
      2019-12-23  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/cp/
      	* cvt.c (ocp_convert): Apply rvalue to the source of vector
      	conversions.
      	* typeck.c (build_reinterpret_cast_1): Likewise.
      
      gcc/testsuite/
      	* g++.dg/ext/vector39.C: New test.
      
      From-SVN: r279716
      Richard Sandiford committed
    • Daily bump. · 3bdc2218
      From-SVN: r279715
      GCC Administrator committed
  9. 22 Dec, 2019 7 commits
    • Add OpenACC 2.6 `acc_get_property' support · 6c84c8bf
      Add generic support for the OpenACC 2.6 `acc_get_property' and
      `acc_get_property_string' routines, as well as full handlers for the
      host and the NVPTX offload targets and minimal handlers for the HSA,
      Intel MIC, and AMD GCN offload targets.
      
      Included are C/C++ and Fortran tests that, in particular, print
      the property values for acc_property_vendor, acc_property_memory,
      acc_property_free_memory, acc_property_name, and acc_property_driver.
      The output looks as follows:
      
      Vendor: GNU
      Name: GOMP
      Total memory: 0
      Free memory: 0
      Driver: 1.0
      
      with the host driver (where the memory related properties are not
      supported for the host device and yield 0, conforming to the standard)
      and output like:
      
      Vendor: Nvidia
      Total memory: 12651462656
      Free memory: 12202737664
      Name: TITAN V
      Driver: CUDA Driver 9.1
      
      with the NVPTX driver.
      
      2019-12-22  Maciej W. Rozycki  <macro@codesourcery.com>
      	    Frederik Harwath  <frederik@codesourcery.com>
      	    Thomas Schwinge  <tschwinge@codesourcery.com>
      
      	include/
      	* gomp-constants.h (gomp_device_property): New enum.
      
      	libgomp/
      	* libgomp.h (gomp_device_descr): Add `get_property_func' member.
      	* libgomp-plugin.h (gomp_device_property_value): New union.
      	(gomp_device_property_value): New prototype.
      	* openacc.h (acc_device_t): Add `acc_device_current' enumeration
      	constant.
      	(acc_device_property_t): New enum.
      	(acc_get_property, acc_get_property_string): New prototypes.
      	* oacc-init.c (acc_get_device_type): Also assert that result
      	is not `acc_device_current'.
      	(get_property_any, acc_get_property, acc_get_property_string):
      	New functions.
      	* openacc.f90 (openacc_kinds): Add `acc_device_current' and
      	`acc_property_memory', `acc_property_free_memory',
      	`acc_property_name', `acc_property_vendor' and
      	`acc_property_driver' constants.  Add `acc_device_property' data
      	type.
      	(openacc_internal): Add `acc_get_property' and
      	`acc_get_property_string' interfaces.  Add `acc_get_property_h',
      	`acc_get_property_string_h', `acc_get_property_l' and
      	`acc_get_property_string_l'.
      	* oacc-host.c (host_get_property): New function.
      	(host_dispatch): Wire it.
      	* target.c (gomp_load_plugin_for_device): Handle `get_property'.
      	* libgomp.map (OACC_2.6): Add `acc_get_property', `acc_get_property_h_',
      	`acc_get_property_string' and `acc_get_property_string_h_' symbols.
      	* libgomp.texi (OpenACC Runtime Library Routines): Add
      	`acc_get_property'.
      	(acc_get_property): New node.
      	* plugin/plugin-gcn.c (GOMP_OFFLOAD_get_property): New
      	function (stub).
      	* plugin/plugin-hsa.c (GOMP_OFFLOAD_get_property): New function.
      	* plugin/plugin-nvptx.c (CUDA_CALLS): Add `cuDeviceGetName',
      	`cuDeviceTotalMem', `cuDriverGetVersion' and `cuMemGetInfo'
      	calls.
      	(GOMP_OFFLOAD_get_property): New function.
      	(struct ptx_device): Add new field "name".
      	(cuda_driver_version_s): Add new static variable ...
      	(nvptx_init): ... and init from here.
      
      	* testsuite/libgomp.oacc-c-c++-common/acc_get_property.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-2.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-3.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-aux.c: New file
      	with test helper functions.
      
      	* testsuite/libgomp.oacc-fortran/acc_get_property.f90: New test.
      
      	liboffloadmic/
      	* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_property):
      	New function.
      
      Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
      
      
      Co-Authored-By: Frederik Harwath <frederik@codesourcery.com>
      Co-Authored-By: Thomas Schwinge <tschwinge@codesourcery.com>
      
      From-SVN: r279710
      Maciej W. Rozycki committed
    • Restrict some aarch64 testcases to little-endian · edadb8ad
      
      2019-12-21  Andrew Pinski  <apinski@marvell.com>
      
              PR testsuite/92998
              * gcc.target/aarch64/sve/acle/general/dupq_1.c:
              Restrict to aarch64_little_endian only.
              * gcc.target/aarch64/torture/simd-abi-8.c:
              Likewise.
      
      From-SVN: r279709
      Andrew Pinski committed
    • libgomp/test: Fix compilation for build sysroot · c8e759b4
      Fix a problem with the libgomp testsuite using a method to determine
      the compiler to use resulting in the tool being different from one the
      library has been built with, and causing a catastrophic failure from the
      lack of a suitable `--sysroot=' option where the `--with-build-sysroot='
      configuration option has been used to build the compiler resulting in
      the inability to link executables.
      
      Address this problem by defining the compiler to use, via the
      GCC_UNDER_TEST TCL variable, set in the DejaGNU configuration file from
      $CC by autoconf, which will have all the required options set for the
      target compiler to build executables in the environment configured,
      removing failures like:
      
      .../bin/riscv64-linux-gnu-ld: cannot find crt1.o: No such file or directory
      .../bin/riscv64-linux-gnu-ld: cannot find -lm
      .../bin/riscv64-linux-gnu-ld: cannot find -lpthread
      .../bin/riscv64-linux-gnu-ld: cannot find -lc
      .../bin/riscv64-linux-gnu-ld: cannot find -latomic
      collect2: error: ld returned 1 exit status
      compiler exited with status 1
      FAIL: libgomp.c/../libgomp.c-c++-common/atomic-18.c (test for excess errors)
      Excess errors:
      .../bin/riscv64-linux-gnu-ld: cannot find crt1.o: No such file or directory
      .../bin/riscv64-linux-gnu-ld: cannot find -lm
      .../bin/riscv64-linux-gnu-ld: cannot find -lpthread
      .../bin/riscv64-linux-gnu-ld: cannot find -lc
      .../bin/riscv64-linux-gnu-ld: cannot find -latomic
      
      UNRESOLVED: libgomp.c/../libgomp.c-c++-common/atomic-18.c compilation failed to produce executable
      
      and bringing overall test results for the `riscv64-linux-gnu' target
      (here with the `x86_64-linux-gnu' host and RISC-V QEMU in the Linux user
      emulation mode as the target board) from:
      
      		=== libgomp Summary ===
      
      # of expected passes		44
      # of unexpected failures	3274
      # of unresolved testcases	3241
      # of unsupported tests		548
      
      to:
      
      		=== libgomp Summary ===
      
      # of expected passes		6834
      # of unexpected failures	4
      # of expected failures		4
      # of unsupported tests		518
      
      	libgomp/
      	* testsuite/libgomp-test-support.exp.in (GCC_UNDER_TEST): New
      	variable.
      
      From-SVN: r279708
      Maciej W. Rozycki committed
    • * doc/invoke.texi (-flto): Use "compile time" as a noun. · 20ff65f8
      From-SVN: r279707
      Gerald Pfeifer committed
    • testsuite: Fix run-time tracking down of `libgcc_s' · d42b84f4
      Fix a catastrophic libgo testsuite failure in cross-compilation where
      the shared `libgcc_s' library cannot be found by the loader at run time
      in build-tree testing and consequently all test cases fail the execution
      stage, giving output (here with the `x86_64-linux-gnu' host and the
      `riscv64-linux-gnu' target, with RISC-V QEMU in the Linux user emulation
      mode as the target board) like:
      
      spawn qemu-riscv64 -E LD_LIBRARY_PATH=.:.../riscv64-linux-gnu/lib64/lp64d/libgo/.libs ./a.exe
      ./a.exe: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory
      FAIL: archive/tar
      
      To do so rework `gcc-set-multilib-library-path' so as not to rely on the
      `rootme' TCL variable to have been preset in testsuite invocation, which
      only works for the GCC test suites and not for library test suites, and
      also use `remote_exec host' rather than `exec' to invoke the compiler in
      determination of `libgcc_s' locations, so that the solution works in
      remote testing as well while also avoiding the hardcoded limit of the
      executable's path length imposed by `exec'.
      
      This is based on an observation that the multilib root directory can be
      determined by stripping out the multilib directory in effect as printed
      with the `-print-multi-directory' option from the path produced by the
      `-print-file-name=' option.  And then individual full multilib paths can
      be assembled for the other multilibs by appending their respective
      multilib directories to the multilib root directory.
      
      Unlike with the old solution the full multilib paths are not checked for
      the presence of the shared `libgcc_s' library there, but that is
      supposed to be harmless.  Also the full multilib path for the multilib
      used with the compiler used for testing will now come first, which
      should reduce run-time processing in the usual case.
      
      With this change in place test output instead looks like:
      
      spawn qemu-riscv64 -E LD_LIBRARY_PATH=.:.../riscv64-linux-gnu/lib64/lp64d/libgo/.libs:..././gcc/lib64/lp64d:..././gcc/.:..././gcc/lib32/ilp32:..././gcc/lib32/ilp32d:..././gcc/lib64/lp64 ./a.exe
      PASS
      PASS: archive/tar
      
      No summary comparison, because the libgo testsuite does not provide one
      in this configuration for some reason, however this change improves
      overall results from 0 PASSes and 159 FAILs to 133 PASSes and 26 FAILs.
      
      	gcc/testsuite/
      	* lib/gcc-defs.exp (gcc-set-multilib-library-path): Use
      	`-print-file-name=' to determine the multilib root directory.
      	Use `remote_exec host' rather than `exec' to invoke the
      	compiler.
      
      From-SVN: r279706
      Maciej W. Rozycki committed
    • Daily bump. · bcfcf777
      From-SVN: r279705
      GCC Administrator committed
    • libada: Fix shared library installation with `--disable-libada' · 5cb34da7
      Provide a default value of $(toolexeclibdir) for $(ADA_RTL_DSO_DIR), so
      that in a `--disable-libada' configuration `make install' places shared
      gnatlib libraries, built with `make -C gcc gnatlib-shared', in their
      intended version-specific location, fixing a commit r276424 ("libada:
      Respect `--enable-version-specific-runtime-libs'") regression.
      
      	gcc/ada/
      	* gcc-interface/Makefile.in (toolexeclibdir): New variable.
      
      From-SVN: r279702
      Maciej W. Rozycki committed