1. 27 Jun, 2016 3 commits
    • re PR libstdc++/71640 (include/c++/7.0.0/bits/hashtable.h:293:7: error: too many… · dc448fa0
      re PR libstdc++/71640 (include/c++/7.0.0/bits/hashtable.h:293:7: error: too many template parameters in template redeclaration)
      
      2016-06-27  François Dumont  <fdumont@gcc.gnu.org>
      
      	PR libstdc++/71640
      	* include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
      	friend declaration.
      
      From-SVN: r237803
      François Dumont committed
    • [ARM][testsuite] Add missing guards to fp16 AdvSIMD tests · b65ffc79
      2016-06-27  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	* gcc.target/aarch64/advsimd-intrinsics/vget_lane.c: Add ifdef
      	around fp16 code.
      	* gcc.target/aarch64/advsimd-intrinsics/vreinterpret.c: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vstX_lane.c: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f16_indices_1.c:
      	Add arm_neon_fp16_ok effective target.
      	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f16_indices_1.c: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f16_indices_1.c: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f16_indices_1.c: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f16_indices_1.c: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f16_indices_1.c: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f16_indices_1.c: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f16_indices_1.c: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f16_indices_1.c: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f16_indices_1.c: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f16_indices_1.c: Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f16_indices_1.c: Likewise.
      
      From-SVN: r237798
      Christophe Lyon committed
    • Daily bump. · 74a1b6ff
      From-SVN: r237797
      GCC Administrator committed
  2. 26 Jun, 2016 6 commits
  3. 25 Jun, 2016 6 commits
  4. 24 Jun, 2016 18 commits
    • P0145R2: Refining Expression Order for C++ (complex LHS of =). · a25bd9e6
      gcc/c-common/
      	* c-common.c (verify_tree) [COMPOUND_EXPR]: Fix handling on LHS of
      	MODIFY_EXPR.
      gcc/cp/
      	* typeck.c (cp_build_modify_expr): Leave COMPOUND_EXPR on LHS.
      
      From-SVN: r237775
      Jason Merrill committed
    • rs6000-builtin.def (BU_FLOAT128_2): New #define. · 53605f35
      [gcc]
      
      2016-06-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
      	(BU_FLOAT128_1): Likewise.
      	(FABSQ): Likewise.
      	(COPYSIGNQ): Likewise.
      	(RS6000_BUILTIN_NANQ): Likewise.
      	(RS6000_BUILTIN_NANSQ): Likewise.
      	(RS6000_BUILTIN_INFQ): Likewise.
      	(RS6000_BUILTIN_HUGE_VALQ): Likewise.
      	* config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
      	(TARGET_FOLD_BUILTIN): New #define.
      	(rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
      	(rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
      	(rs6000_fold_builtin): New target hook implementation, handling
      	folding of 128-bit NaNs and infinities.
      	(rs6000_init_builtins): Initialize const_str_type_node; ensure all
      	entries are filled in to avoid problems during bootstrap
      	self-test; define builtins for 128-bit NaNs and infinities.
      	(rs6000_opt_mask): Add entry for float128.
      	* config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
      	(RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
      	(rs6000_builtin_type_index): Add RS6000_BTI_const_str.
      	(const_str_type_node): New #define.
      	* config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
      	to a define_expand that dispatches to either copysign<mode>3_soft
      	or copysign<mode>3_hard.
      	(copysign<mode>3_hard): Rename from copysign<mode>3.
      	(copysign<mode>3_soft): New define_insn.
      	* doc/extend.texi: Document new builtins.
      
      [gcc/testsuite]
      
      2016-06-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/abs128-1.c: New.
      	* gcc.target/powerpc/copysign128-1.c: New.
      	* gcc.target/powerpc/inf128-1.c: New.
      	* gcc.target/powerpc/nan128-1.c: New.
      
      From-SVN: r237774
      Bill Schmidt committed
    • Fix get_target_expr for bit-field expressions. · 6e085858
      	* tree.c (get_target_expr_sfinae): Handle bit-fields.
      	(build_target_expr): Call mark_rvalue_use.
      
      From-SVN: r237773
      Jason Merrill committed
    • cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using PRIu64 instead of lu. · 65e009bb
      	* cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
      	PRIu64 instead of lu.
      
      From-SVN: r237772
      Jakub Jelinek committed
    • re PR debug/71642 (ICE: in gen_type_die_with_usage, at dwarf2out.c:22729) · 7b22b4c6
      	PR debug/71642
      	* tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
      	copy the type name.
      
      From-SVN: r237771
      Eric Botcazou committed
    • re PR tree-optimization/71647 (aligned(x:32) in #pragma omp simd does not work) · 37e373c2
      	PR tree-optimization/71647
      	* omp-low.c (lower_rec_input_clauses): Convert
      	omp_clause_aligned_alignment (c) to size_type_node for the
      	last argument of __builtin_assume_aligned.
      
      	* gcc.target/i386/pr71647.c: New test.
      
      From-SVN: r237769
      Jakub Jelinek committed
    • Call tls_get_addr via GOT for GNU TLS if possible · de86ff8f
      There are extensions to x86-64 psABI:
      
      https://groups.google.com/forum/#!topic/x86-64-abi/de5_KnLHxtI
      
      and i386 psABI:
      
      https://groups.google.com/forum/#!topic/ia32-abi/awsRSvJOJfs
      
      to call tls_get_addr via GOT.  X86 assembler and linker in binutils 2.27
      implemented
      
      call *__tls_get_addr@GOTPCREL(%rip)
      
      in 64-bit and
      
      call *___tls_get_addr@GOT(%reg)
      
      in 32-bit to access global and local thread loal variables in shared
      library.  We check if 32-bit x86 assembler and linker work with
      
      call *___tls_get_addr@GOT(%reg)
      
      as 32-bit and 64-bit assembler and linker are enabled togther.
      
      In 32-bit, since any integer register except EAX, which is used to pass
      parameter to ___tls_get_addr, and ESP, can be used as GOT base, a new
      register class, TLS_GOTBASE_REGS, along with a new constraint, Yb, are
      added.  They are used to improve register allocation for 32-bit dynamic
      TLS patterns.
      
      gcc/
      
      	* configure.ac (calling ___tls_get_addr via GOT): New
      	assembler/linker check.
      	(HAVE_AS_IX86_TLS_GET_ADDR_GOT): New.  Defined to 1 if 32-bit
      	assembler and linker supports calling ___tls_get_addr via GOT.
      	Otherise, defined to 0.
      	* config.in: Regenerated.
      	* configure: Likewise.
      	* config/i386/constraints.md (Yb): New constraint.
      	* config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
      	(REG_CLASS_NAMES): Likewise.
      	(REG_CLASS_CONTENTS): Likewise.
      	* config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
      	the b constraint with the Yb constraint.  Call ___tls_get_addr
      	via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
      	is 1.
      	(*tls_local_dynamic_base_32_gnu): Likewise.
      	(*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
      	GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
      	(*tls_local_dynamic_base_64_<mode>): Likewise.
      
      gcc/testsuite/
      
      	* gcc.target/i386/noplt-gd-1.c: New test.
      	* gcc.target/i386/noplt-gd-2.c: Likewise.
      	* gcc.target/i386/noplt-gd-3.c: Likewise.
      	* gcc.target/i386/noplt-ld-1.c: Likewise.
      	* gcc.target/i386/noplt-ld-2.c: Likewise.
      	* gcc.target/i386/noplt-ld-3.c: Likewise.
      	* lib/target-supports.exp
      	(check_effective_target_tls_get_addr_via_got): New.
      
      From-SVN: r237765
      H.J. Lu committed
    • * gcc.dg/vect/vect-bool-cmp.c: Revert unwanted change. · a7898180
      From-SVN: r237764
      Uros Bizjak committed
    • Dump profile-based number of iterations · 199b1891
      	* analyze_brprob.py: Parse and display average number
      	of loop iterations.
      	* cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
      	* cfgloop.h: Change 'struct loop' to 'const struct loop' for a
      	few functions.
      	* cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
      	argument to true if the expected number of iterations is
      	loop-based.
      
      From-SVN: r237762
      Martin Liska committed
    • vect-nb-iter-ub-1.c: Remove default vector testsuite compile flags. · 04619cb8
      2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
      
      	* gcc.dg/vect/vect-nb-iter-ub-1.c: Remove default vector
      	testsuite compile flags.
      	* gcc.dg/vect/vect-nb-iter-ub-2.c: Ditto.
      	* gcc.dg/vect/vect-nb-iter-ub-3.c: Ditto.
      
      2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
      
      	* g++dg/vect/pr36684.cc: Add dg-do compile.
      	* gcc.dg/vect/O3-pr70130.c: Remove dg-do run.
      	* gcc.dg/vect/pr70021.c: Ditto.
      	* gcc.dg/vect/pr70138-1.c: Ditto.
      	* gcc.dg/vect/pr70138-2.c: Ditto.
      	* gcc.dg/vect/pr70354-1.c: Ditto.
      	* gcc.dg/vect/pr70354-2.c: Ditto.
      	* gcc.dg/vect/pr71259.c: Ditto.
      	* gcc.dg/vect/pr71416-1.c: Ditto.
      	* gcc.dg/vect/slp-43.c: Ditto.
      	* gcc.dg/vect/slp-45.c: Ditto.
      	* gcc.dg/vect/vect-nb-iter-ub-1.c: Ditto.
      	* gcc.dg/vect/vect-nb-iter-ub-2.c: Ditto.
      	* gcc.dg/vect/vect-nb-iter-ub-3.c: Ditto.
      	* gfortran.dg/vect/pr69980.f90: Ditto.
      
      2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
      
      	* gcc.dg/vect/O3-pr70130.c: Include tree-vect.h and call check_vect.
      	* gcc.dg/vect/bb-slp-30.c: Ditto.
      	* gcc.dg/vect/costmodel/i386/costmodel-vect-33.c: Ditto.
      	* gcc.dg/vect/fast-math-bb-slp-call-3.c: Ditto.
      	* gcc.dg/vect/pr45902.c: Ditto.
      	* gcc.dg/vect/pr48172.c: Ditto.
      	* gcc.dg/vect/pr48377.c: Ditto.
      	* gcc.dg/vect/pr49038.c: Ditto.
      	* gcc.dg/vect/pr49771.c: Ditto.
      	* gcc.dg/vect/pr52091.c: Ditto.
      	* gcc.dg/vect/pr53185-2.c: Ditto.
      	* gcc.dg/vect/pr56826.c: Ditto.
      	* gcc.dg/vect/pr60276.c: Ditto.
      	* gcc.dg/vect/pr62021.c: Ditto.
      	* gcc.dg/vect/pr63530.c: Ditto.
      	* gcc.dg/vect/pr65518.c: Ditto.
      	* gcc.dg/vect/pr65947-1.c: Ditto.
      	* gcc.dg/vect/pr65947-10.c: Ditto.
      	* gcc.dg/vect/pr65947-11.c: Ditto.
      	* gcc.dg/vect/pr65947-12.c: Ditto.
      	* gcc.dg/vect/pr65947-13.c: Ditto.
      	* gcc.dg/vect/pr65947-2.c: Ditto.
      	* gcc.dg/vect/pr65947-3.c: Ditto.
      	* gcc.dg/vect/pr65947-4.c: Ditto.
      	* gcc.dg/vect/pr65947-5.c: Ditto.
      	* gcc.dg/vect/pr65947-6.c: Ditto.
      	* gcc.dg/vect/pr65947-7.c: Ditto.
      	* gcc.dg/vect/pr65947-8.c: Ditto.
      	* gcc.dg/vect/pr65947-9.c: Ditto.
      	* gcc.dg/vect/pr71416-1.c: Ditto.
      	* gcc.dg/vect/pr71439.c: Ditto.
      	* gcc.dg/vect/slp-widen-mult-half.c: Ditto.
      	* gcc.dg/vect/vect-bswap16.c: Ditto.
      	* gcc.dg/vect/vect-bswap32.c: Ditto.
      	* gcc.dg/vect/vect-bswap64.c: Ditto.
      	* gcc.dg/vect/vect-live-1.c: Ditto.
      	* gcc.dg/vect/vect-live-2.c: Ditto.
      	* gcc.dg/vect/vect-live-3.c: Ditto.
      	* gcc.dg/vect/vect-live-4.c: Ditto.
      	* gcc.dg/vect/vect-live-5.c: Ditto.
      	* gcc.dg/vect/vect-live-slp-1.c: Ditto.
      	* gcc.dg/vect/vect-live-slp-2.c: Ditto.
      	* gcc.dg/vect/vect-live-slp-3.c: Ditto.
      	* gcc.dg/vect/vect-nb-iter-ub-1.c: Ditto.
      	* gcc.dg/vect/vect-nb-iter-ub-2.c: Ditto.
      	* gcc.dg/vect/vect-nb-iter-ub-3.c: Ditto.
      	* gcc.dg/vect/vect-neg-store-1.c: Ditto.
      	* gcc.dg/vect/vect-neg-store-2.c: Ditto.
      	* gcc.dg/vect/vect-outer-pr69720.c: Ditto.
      	* gcc.dg/vect/vect-reduc-mul_1.c: Ditto.
      	* gcc.dg/vect/vect-reduc-mul_2.c: Ditto.
      	* gcc.dg/vect/vect-reduc-or_1.c: Ditto.
      	* gcc.dg/vect/vect-reduc-or_2.c: Ditto.
      	* gcc.dg/vect/vect-widen-mult-const-s16.c: Ditto.
      	* gcc.dg/vect/vect-widen-mult-const-u16.c: Ditto.
      	* gcc.dg/vect/vect-widen-mult-half-u8.c: Ditto.
      	* gcc.dg/vect/vect-widen-mult-half.c: Ditto.
      
      From-SVN: r237761
      Uros Bizjak committed
    • float128-cmp-invalid.c (main): Use __builtin_nanq. · da224bcb
      	* gcc.dg/torture/float128-cmp-invalid.c (main): Use __builtin_nanq.
      
      From-SVN: r237760
      Uros Bizjak committed
    • tree-vect.h (check_vect): Handle __SSE4_2__. · 936ff030
      	* gcc.dg/vect/tree-vect.h (check_vect): Handle __SSE4_2__.
      
      From-SVN: r237759
      Uros Bizjak committed
    • configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to assemble for 32bit target. · e1ebd31d
      	* configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
      	assemble for 32bit target.
      	(HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
      	and $ld_ix86_gld_32_opt to link for 32bit target.
      	(HAVE_AS_IX86_TLSLDMPLT): Ditto.
      	* configure: Regenerate.
      
      From-SVN: r237758
      Uros Bizjak committed
    • [ARM][1/4] Replace uses of int_log2 by exact_log2 · 68a86323
      	* config/arm/arm.c (int_log2): Delete definition and prototype.
      	(shift_op): Use exact_log2 instead of int_log2.
      	(vfp3_const_double_for_fract_bits): Likewise.
      
      From-SVN: r237757
      Kyrylo Tkachov committed
    • Enable non-PIC noplt tests on 32-bit x86 target · dfee2870
      Since non-PIC noplt works on 32-bit x86 target now with assembler/linker
      support, enable non-PIC noplt tests on 32-bit x86 target.  main in
      noplt-2.c and noplt-4.c are renamed to bar to avoid stack re-alignment
      in main for 32-bit target, which disables tailcall optimization.
      
      	* gcc.target/i386/noplt-1.c: Don't disable for ia32.  Scan for
      	ia32 if R_386_GOT32X relocation is supported.
      	* gcc.target/i386/noplt-3.c: Likewise.
      	* gcc.target/i386/noplt-2.c: Likewise.
      	(main): Renamed to ...
      	(bar): This.
      	* gcc.target/i386/noplt-4.c: Likewise.
      	(main): Renamed to ...
      	(bar): This.
      	* gcc.target/i386/pr67400-3.c: Don't disable for ia32.
      	* gcc.target/i386/pr67400-5.c: Likewise.
      
      From-SVN: r237756
      H.J. Lu committed
    • call.c (magic_varargs_p): Return 3 for __builtin_*_overflow_p. · 00085092
      	* call.c (magic_varargs_p): Return 3 for __builtin_*_overflow_p.
      	(build_over_call): For magic == 3, do no conversion only on 3rd
      	argument.
      
      	* c-c++-common/torture/builtin-arith-overflow-p-19.c: Run for C++ too.
      	* g++.dg/ext/builtin-arith-overflow-2.C: New test.
      
      From-SVN: r237755
      Jakub Jelinek committed
    • internal-fn.c (expand_arith_set_overflow): New function. · a86451b9
      	* internal-fn.c (expand_arith_set_overflow): New function.
      	(expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
      	Use it.
      	(expand_arith_overflow_result_store): Likewise.  Handle precision
      	smaller than mode precision.
      	* tree-vrp.c (extract_range_basic): For imag part, handle
      	properly signed 1-bit precision result.
      	* doc/extend.texi (__builtin_add_overflow): Document that last
      	argument can't be pointer to enumerated or boolean type.
      	(__builtin_add_overflow_p): Document that last argument can't
      	have enumerated or boolean type.
      
      	* c-common.c (check_builtin_function_arguments): Require last
      	argument of BUILT_IN_*_OVERFLOW_P to have INTEGER_TYPE type.
      	Adjust wording of diagnostics for BUILT_IN_*_OVERLFLOW
      	if the last argument is pointer to enumerated or boolean type.
      
      	* c-c++-common/builtin-arith-overflow-1.c (generic_wrong_type, f3,
      	f4): Adjust expected diagnostics.
      	* c-c++-common/torture/builtin-arith-overflow.h (TP): New macro.
      	(T): If OVFP is defined, redefine to TP.
      	* c-c++-common/torture/builtin-arith-overflow-12.c: Adjust comment.
      	* c-c++-common/torture/builtin-arith-overflow-p-1.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-2.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-3.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-4.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-5.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-6.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-7.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-8.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-9.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-10.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-11.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-12.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-13.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-14.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-15.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-16.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-17.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-18.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-19.c: New test.
      	* g++.dg/ext/builtin-arith-overflow-1.C: Pass 0 instead of C
      	as last argument to __builtin_add_overflow_p.
      
      From-SVN: r237754
      Jakub Jelinek committed
    • Daily bump. · 43535362
      From-SVN: r237753
      GCC Administrator committed
  5. 23 Jun, 2016 7 commits
    • array (array<>::swap): Fix noexcept qualificaton for zero-size array. · e615c24c
      2016-06-23  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/debug/array (array<>::swap): Fix noexcept qualificaton for
      	zero-size array.
      
      From-SVN: r237747
      François Dumont committed
    • pr33834_2.cc: Use dg-additional-options instead of dg-options and remove default vector... · 7bb5d5f4
      	* g++.dg/vect/pr33834_2.cc: Use dg-additional-options instead of
      	dg-options and remove default vector testsuite compile flags.
      	* g++.dg/vect/pr33860a.cc: Ditto.
      	* g++.dg/vect/pr45470-a.cc: Ditto.
      	* g++.dg/vect/pr45470-b.cc: Ditto.
      	* g++.dg/vect/pr60896.cc: Ditto.
      	* gcc.dg/vect/no-tree-pre-pr45241.c: Ditto.
      	* gcc.dg/vect/pr18308.c: Ditto.
      	* gcc.dg/vect/pr24049.c: Ditto.
      	* gcc.dg/vect/pr33373.c: Ditto.
      	* gcc.dg/vect/pr36228.c: Ditto.
      	* gcc.dg/vect/pr42395.c: Ditto.
      	* gcc.dg/vect/pr42604.c: Ditto.
      	* gcc.dg/vect/pr46663.c: Ditto.
      	* gcc.dg/vect/pr48765.c: Ditto.
      	* gcc.dg/vect/pr49093.c: Ditto.
      	* gcc.dg/vect/pr49352.c: Ditto.
      	* gcc.dg/vect/pr52298.c: Ditto.
      	* gcc.dg/vect/pr52870.c: Ditto.
      	* gcc.dg/vect/pr53185.c: Ditto.
      	* gcc.dg/vect/pr53773.c: Ditto.
      	* gcc.dg/vect/pr56695.c: Ditto.
      	* gcc.dg/vect/pr62171.c: Ditto.
      	* gcc.dg/vect/pr63530.c: Ditto.
      	* gcc.dg/vect/pr68339.c: Ditto.
      	* gcc.dg/vect/pr71259.c: Ditto.
      	* gcc.dg/vect/vect-82_64.c: Ditto.
      	* gcc.dg/vect/vect-83_64.c: Ditto.
      	* gcc.dg/vect/vect-debug-pr41926.c: Ditto.
      	* gcc.dg/vect/vect-shift-2-big-array.c: Ditto.
      	* gcc.dg/vect/vect-shift-2.c: Ditto.
      	* gfortran.dg/vect/fast-math-mgrid-resid.f: Ditto.
      	* gfortran.dg/vect/pr39318.f90: Ditto.
      	* gfortran.dg/vect/pr45714-a.f: Ditto.
      	* gfortran.dg/vect/pr45714-b.f: Ditto.
      	* gfortran.dg/vect/pr46213.f90: Ditto.
      
      From-SVN: r237745
      Uros Bizjak committed
    • predicates.md (splat_input_operand): Rework. · 2d4bb02f
      [gcc]
      2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
      	    Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* config/rs6000/predicates.md (splat_input_operand): Rework.
      	Don't allow constants, since the insns that use this predicate
      	don't support constants.  Constants are handled by other insns
      	that are created via combine.  During and after register
      	allocation, only allow indexed or indirect addresses, and not
      	general addresses.  Only allow modes supported by the hardware.
      	* config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
      	comment.  Move check for using VSPLTIS<x> to a common location,
      	instead of doing it in two different places.
      
      [gcc/testsuite]
      2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
      	    Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/p9-splat-5.c: New test.
      
      
      Co-Authored-By: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
      
      From-SVN: r237743
      Michael Meissner committed
    • driver-i386.c (host_detect_local_cpu): Set PROCESSOR_PENTIUMPRO for… · a239d460
      driver-i386.c (host_detect_local_cpu): Set PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
      
      	* config/i386/driver-i386.c (host_detect_local_cpu): Set
      	PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
      	<case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
      	signature_CENTAUR_ebx.
      
      From-SVN: r237741
      Jocelyn Mayer committed
    • re PR tree-optimization/71488 (Wrong code for vector comparisons with ivybridge… · f6d1b868
      re PR tree-optimization/71488 (Wrong code for vector comparisons with ivybridge and westmere targets)
      
      	PR tree-optimization/71488
      	* gcc.target/i386/i386.exp (check_effective_target_sse4): Move to ...
      	* lib/target-supports.exp: ... here.
      	(check_sse4_hw_available): New procedure.
      	(check_effective_target_sse4_runtime): Ditto.
      	* g++.dg/pr71488.C (dg-additional-options): Use -msse4 instead of
      	-march=westmere for sse4_runtime targets.
      	* gcc.dg/vect/vect-bool-cmp.c: Include "tree-vect.h".
      	(dg-additional-options): Use for sse4_runtime targets.
      	(main): Call check_vect ().
      	(dg-final): Perform scan only for sse4_runtime targets.
      
      From-SVN: r237738
      Uros Bizjak committed
    • Apply missing changes · 49677530
      From-SVN: r237737
      H.J. Lu committed
    • i386: Access external function via GOT slot for -fno-plt · c0597759
      i386 psABI has been updated to clarify that R_386_GOT32X and R_386_GOT32
      relocations can be used to access GOT without base register when PIC is
      disabled:
      
      https://groups.google.com/forum/#!topic/ia32-abi/awsRSvJOJfs
      
      32-bit x86 assembler and linker from binutils 2.26.1 and 2.27 support
      
      call/jmp *_start@GOT
      cmpl $0, bar@GOT
      
      for both normal and IFUNC functions.  We check if 32-bit x86 assembler
      and linker have the fix for:
      
      https://sourceware.org/bugzilla/show_bug.cgi?id=20244
      
      before accessing external function via GOT slot for -fno-plt in both PIC
      and non-PIC modes.
      
      	PR target/66232
      	PR target/67400
      	* configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
      	(as_ix86_gas_32_opt): This.
      	(ld_ix86_tls_ldm_opt): Renamed to ...
      	(ld_ix86_gld_32_opt): This.
      	(R_386_TLS_LDM reloc): Updated.
      	(R_386_GOT32X reloc): New assembler/linker check.
      	(HAVE_AS_IX86_GOT32X): New.  Defined to 1 if 32-bit assembler and
      	linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT".  Otherise,
      	defined to 0.
      	* config.in: Regenerated.
      	* configure: Likewise.
      	* config/i386/i386.c (ix86_force_load_from_GOT_p): Return
      	true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
      	(ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
      	if ix86_force_load_from_GOT_p returns true.
      	(ix86_print_operand_address_as): Also support UNSPEC_GOT if
      	ix86_force_load_from_GOT_p returns true.
      	(ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
      	the external function address via the GOT slot.
      	(ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
      	HAVE_AS_IX86_GOT32X before returning false.
      	(ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
      	32-bit mode if ix86_nopic_noplt_attribute_p returns true.
      
      gcc/testsuite/
      
      	PR target/66232
      	PR target/67400
      	* gcc.target/i386/pr66232-14.c: New file.
      	* gcc.target/i386/pr66232-15.c: Likewise.
      	* gcc.target/i386/pr66232-16.c: Likewise.
      	* gcc.target/i386/pr66232-17.c: Likewise.
      	* gcc.target/i386/pr67400-1.c: Don't disable for ia32.  Scan for
      	ia32 if R_386_GOT32X relocation is supported.
      	* gcc.target/i386/pr67400-2.c: Likewise.
      	* gcc.target/i386/pr67400-3.c: Likewise.
      	* gcc.target/i386/pr67400-4.c: Likewise.
      	* gcc.target/i386/pr67400-6.c: Likewise.
      	* gcc.target/i386/pr67400-7.c: Likewise.
      	* lib/target-supports.exp (check_effective_target_got32x_reloc):
      	New.
      
      From-SVN: r237736
      H.J. Lu committed