1. 07 Nov, 2017 24 commits
    • Fix SSE bits dependencies. · d4bc3829
      gcc/
      	PR target/82812
      	* common/config/i386/i386-common.c
      	(OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): Remove MPX from flag.
      	(ix86_handle_option): Move MPX to isa_flags2 and GFNI to isa_flags.
      	* config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
      	* config/i386/i386.opt: Ditto.
      	* config/i386/i386.c (ix86_target_string): Ditto.
      	(ix86_option_override_internal): Ditto.
      	(ix86_init_mpx_builtins): Move MPX to args2.
      	(ix86_expand_builtin): Special handling for OPTION_MASK_ISA_GFNI.
      	* config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineinvqb_v64qi,
      	__builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
      	__builtin_ia32_vgf2p8affineinvqb_v32qi,
      	__builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
      	__builtin_ia32_vgf2p8affineinvqb_v16qi,
      	__builtin_ia32_vgf2p8affineinvqb_v16qi_mask): Move to ARGS array.
      
      From-SVN: r254507
      Julia Koval committed
    • Check for S_ISSOCK before use · d8dcc3a6
      	* src/filesystem/ops-common.h (make_file_type) [S_ISSOCK]: Only use
      	S_ISSOCK when defined.
      
      From-SVN: r254506
      Jonathan Wakely committed
    • re PR target/80425 (Extra inter-unit register move with zero-extension) · fa97b067
      	PR target/80425
      	* config/i386.i386.md (*zero_extendsidi2): Change (?r,*Yj), (?*Yi,r)
      	and (*x,m) to ($r,Yj), ($Yi,r) and ($x,m).
      	(zero-extendsidi peephole2): Remove peephole.
      
      testsuite/ChangeLog:
      
      	PR target/80425
      	* gcc.target/i386/pr80425-3.c: New test.
      
      From-SVN: r254505
      Uros Bizjak committed
    • compiler: don't double count "." in nested_function_num · 8b36a250
          
          Nested functions are named "outerfunc.$nestedN", where N is a
          number. nested_function_num extracts that number. The name is
          first passed to unpack_hidden_name, which handles the "." and
          should result "$nestedN". Don't expect the "." again.
          
          This fixes assertion failure when escape analysis is enabled
          and -fgo-debug-escape is on. The failure looks
          
          go1: internal compiler error: in nested_function_num, at go/gofrontend/names.cc:241
          0x7bd7d3 Gogo::nested_function_num(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
          
          Reviewed-on: https://go-review.googlesource.com/76213
      
      From-SVN: r254504
      Ian Lance Taylor committed
    • re PR c/53037 (warn_if_not_aligned(X)) · 02d7065f
      	PR c/53037
      	* stor-layout.c: Include attribs.h.
      	(handle_warn_if_not_align): Replace test on TYPE_USER_ALIGN with
      	explicit lookup of "aligned" attribute.
      
      From-SVN: r254503
      Eric Botcazou committed
    • * g++.dg/pr50763-3.C (evalPoint): Return a value. · 15ad44e7
      From-SVN: r254502
      Andreas Schwab committed
    • RISC-V: Implement movmemsi · 6ed01e6b
      Without this we aren't getting proper memcpy inlining on RISC-V systems,
      which is particularly disastrous for Dhrystone performance on RV32IM
      systems.
      
      gcc/ChangeLog
      
      2017-11-07  Andrew Waterman  <andrew@sifive.com>
      
              * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): New
              prototype.
              (riscv_expand_block_move): Likewise.
              gcc/config/riscv/riscv.h (MOVE_RATIO): Tune cost to movmemsi
              implementation.
              (RISCV_MAX_MOVE_BYTES_PER_LOOP_ITER): New define.
              (RISCV_MAX_MOVE_BYTES_STRAIGHT): New define.
              gcc/config/riscv/riscv.c (riscv_block_move_straight): New
              function.
              (riscv_adjust_block_mem): Likewise.
              (riscv_block_move_loop): Likewise.
              (riscv_expand_block_move): Likewise.
              gcc/config/riscv/riscv.md (movmemsi): New pattern.
      
      From-SVN: r254501
      Andrew Waterman committed
    • RISC-V: Define MUSL_DYNAMIC_LINKER · 4d30a85e
      Use no suffix at all in the musl dynamic linker name for hard
      float ABI. Use -sf and -sp suffixes in musl dynamic linker name
      for soft float and single precision ABIs. The following table
      outlines the musl interpreter names for the RISC-V ABI names.
      
      musl interpreter        | RISC-V ABI
      ----------------------- | -------------
      ld-musl-riscv32.so.1    | riscv32-ilp32d
      ld-musl-riscv64.so.1    | riscv64-lp64d
      ld-musl-riscv32-sf.so.1 | riscv32-ilp32
      ld-musl-riscv64-sf.so.1 | riscv64-lp64
      ld-musl-riscv32-sp.so.1 | riscv32-ilp32f
      ld-musl-riscv64-sp.so.1 | riscv64-lp64f
      
      gcc/ChangeLog
      
      2017-11-06  Michael Clark  <michaeljclark@mac.com>
      
              * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define.
              (MUSL_DYNAMIC_LINKER): Likewise.
      
      From-SVN: r254500
      Michael Clark committed
    • [AArch64] Use aarch64_reg_or_imm instead of nonmemory_operand · f32c3adb
      Some of the shift expanders accepted nonmemory_operands but were only
      able to handle register_operands or CONST_INTs.  This is probably
      academic without SVE, since we're not likely to see shifts by other
      types of constant (const_wide_ints, consts, etc).  But for SVE,
      it's possible for a vectorised shift induction to have a CONST_POLY_INT
      shift amount.
      
      This patch makes the expanders use aarch64_reg_or_imm instead.
      
      2017-11-07  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* config/aarch64/aarch64.md (ashl<mode>3, ashr<mode>3, lshr<mode>3)
      	(rotr<mode>3, rotl<mode>3): Use aarch64_reg_or_imm instead of
      	nonmmory_operand.
      
      From-SVN: r254499
      Richard Sandiford committed
    • match.pd: Fix build. · 56ccfbd6
      2017-11-07  Richard Biener  <rguenther@suse.de>
      
      	* match.pd: Fix build.
      
      From-SVN: r254498
      Richard Biener committed
    • PR71026: Canonicalize negates in division · 6a435314
      Canonicalize x / (- y) into (-x) / y.
      
      This moves negates out of the RHS of a division in order to
      allow further simplifications and potentially more reciprocal CSEs.
      
      2017-11-07  Wilco Dijkstra  <wdijkstr@arm.com>
      	    Jackson Woodruff  <jackson.woodruff@arm.com>
      
          gcc/
      	PR tree-optimization/71026
      	* match.pd: Canonicalize negate in division.
      
          testsuite/
      	PR 71026/tree-optimization/71026
      	* gcc.dg/div_neg: New test.
      
      From-SVN: r254497
      Wilco Dijkstra committed
    • PR80131: Simplification of 1U << (31 - x) · 4349b15f
      Currently the code A << (B - C) is not simplified.
      However at least a more specific case of 1U << (C -x) where
      C = precision(type) - 1 can be simplified to (1 << C) >> x.
      
      This is done by adding a new simplification rule in match.pd.
      
      2017-11-07  Sudakshina Das  <sudi.das@arm.com>
      
          gcc/
      	PR middle-end/80131
      	* match.pd: Simplify 1 << (C - x) where C = precision (x) - 1.
      
          testsuite/
      	PR middle-end/80131
      	* testsuite/gcc.dg/pr80131-1.c: New Test.
      
      From-SVN: r254496
      Sudakshina Das committed
    • More bitop simplifications in match.pd · e268a77b
      2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
      
      gcc/
      	* match.pd ((a&~b)|(a^b),(a&~b)^~a,(a|b)&~(a^b),a|~(a^b),
      	(a|b)|(a&^b),(a&b)|~(a^b),~(~a&b),~X^Y): New transformations.
      
      gcc/testsuite/
      	* gcc.dg/tree-ssa/bitops-1.c: New file.
      
      From-SVN: r254495
      Marc Glisse committed
    • More fold_negate in match.pd · 81bd903a
      gcc/ChangeLog:
      
      2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
      
      	* fold-const.c (negate_expr_p) [PLUS_EXPR, MINUS_EXPR]: Handle
      	non-scalar integral types.
      	* match.pd (negate_expr_p): Handle MINUS_EXPR.
      	(-(A-B), -(~A)): New transformations.
      
      gcc/testsuite/ChangeLog:
      
      2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
      
      	* gcc.dg/tree-ssa/negminus.c: New test.
      
      From-SVN: r254494
      Marc Glisse committed
    • [powerpcspe] Remove semicolon after do {} while (0) in SUBTARGET_OVERRIDE_OPTIONS · 13792cce
      2017-11-07  Tom de Vries  <tom@codesourcery.com>
      
      	* config/powerpcspe/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
      	semicolon after "do {} while (0)".
      	* config/powerpcspe/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
      	* config/powerpcspe/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
      	* config/powerpcspe/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
      	* config/powerpcspe/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
      	* config/powerpcspe/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
      
      From-SVN: r254493
      Tom de Vries committed
    • [rs6000] Remove semicolon after do {} while (0) in SUBTARGET_OVERRIDE_OPTIONS · e73d717b
      2017-11-07  Tom de Vries  <tom@codesourcery.com>
      
      	* config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove semicolon
      	after "do {} while (0)".
      	* config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
      	* config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
      	* config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
      	* config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
      	* config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
      
      From-SVN: r254492
      Tom de Vries committed
    • [libgcc, rs6000] Remove semicolon after do {} while (0) in REGISTER_CFA_OFFSET_FOR · 65f480c7
      2017-11-07  Tom de Vries  <tom@codesourcery.com>
      
      	* config/rs6000/aix-unwind.h (REGISTER_CFA_OFFSET_FOR): Remove semicolon
      	after "do {} while (0)".
      
      From-SVN: r254491
      Tom de Vries committed
    • [arm] Remove semicolon after while {} do (0) in HANDLE_NARROW_SHIFT_ARITH · aac11893
      2017-11-07  Tom de Vries  <tom@codesourcery.com>
      
      	PR other/82784
      	* config/arm/arm.c (HANDLE_NARROW_SHIFT_ARITH): Remove semicolon after
      	"while {} do (0)".
      	(arm_rtx_costs_internal): Add missing semicolon after
      	HANDLE_NARROW_SHIFT_ARITH call.
      
      From-SVN: r254490
      Tom de Vries committed
    • [libgcc] Remove semicolon after do {} while (0) in FP_HANDLE_EXCEPTIONS · 2a321acb
      2017-11-07  Tom de Vries  <tom@codesourcery.com>
      
      	PR other/82784
      	* config/aarch64/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Remove
      	semicolon after "do {} while (0)".
      	* config/i386/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Same.
      	* config/ia64/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Same.
      	* config/mips/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Same.
      	* config/rs6000/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Same.
      
      From-SVN: r254489
      Tom de Vries committed
    • P0704R1 - fixing const-qualified pointers to members · 96d155c6
      	* typeck2.c (build_m_component_ref): Also accept in lower stds with
      	a pedwarn.
      
      From-SVN: r254487
      Jason Merrill committed
    • Require ngettext in test of system gettext implementation · 2d041117
      gcc currently uses ngettext in a number of places (gcc/cp/pt.c,
      gcc/diagnostic.c, gcc/collect2.c).  Apparently there are (or used to
      be) gettext implementations that lack ngettext.  See config/gettext.m4.
      
      This patch arranges for intl/ to be compiled when the system gettext
      lacks ngettext.
      
      	* configure.ac: Invoke AM_GNU_GETTEXT with need_ngettext.
      	* configure: Regenerate.
      
      From-SVN: r254486
      Alan Modra committed
    • rs6000: Don't clear TARGET_ISEL implicitly · 0ed1b489
      We want to actually use isel, so we shouldn't disable it.  It is
      already not set by default on CPUs that don't have it, or where we
      do not want to use it.
      
      
      	* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
      	disable isel if it was not set explicitly.
      
      From-SVN: r254485
      Segher Boessenkool committed
    • FT32 makes use of multiple address spaces. · a297ccb5
      
      FT32 makes use of multiple address spaces. When trying to inspect
      objects in GDB, GDB was treating them as a straight "const". The cause
      seems to be in GCC DWARF2 output.
      
      This output is handled in gcc/gcc/dwarf2out.c, where modified_type_die()
      checks that TYPE has qualifiers CV_QUALS. However while TYPE has
      ADDR_SPACE qualifiers, the modified_type_die() explicitly discards the
      ADDR_SPACE qualifiers.
      
      This patch retains the ADDR_SPACE qualifiers as modified_type_die()
      outputs the DWARF type tree.  This allows the types to match, and correct
      type information for the object is emitted.
      
      [gcc]
      
      2017-11-06  James Bowman  <james.bowman@ftdichip.com>
      
      	* gcc/dwarf2out.c (modified_type_die): Retain ADDR_SPACE
      	qualifiers.
              (add_type_attribute) likewise.
      
      From-SVN: r254484
      James Bowman committed
    • Daily bump. · 853c0dfb
      From-SVN: r254483
      GCC Administrator committed
  2. 06 Nov, 2017 16 commits
    • i386: Use reference of struct ix86_frame to avoid copy · 9f8760ed
      When there is no need to make a copy of ix86_frame, we can use reference
      of struct ix86_frame to avoid copy.
      
      Tested on x86-64.
      
      	* config/i386/i386.c (ix86_can_use_return_insn_p): Use reference
      	of struct ix86_frame.
      	(ix86_initial_elimination_offset): Likewise.
      	(ix86_expand_split_stack_prologue): Likewise.
      
      From-SVN: r254480
      H.J. Lu committed
    • stack-check-12.c: Revert to initial version. · 53d855e0
      	* gcc.target/i386/stack-check-12.c: Revert to initial version.  Then..
      	Add -fomit-frame-pointer.
      
      From-SVN: r254479
      Jeff Law committed
    • Update comment in tree-vrp.h · e52781dc
      2017-11-06  Marc Glisse  <marc.glisse@inria.fr>
      
      	* tree-vrp.h (enum value_range_type): Update stale comment.
      
      From-SVN: r254478
      Marc Glisse committed
    • tr1.cc: Compile with -O0. · 187e8ee7
      2017-11-06  François Dumont  <fdumont@gcc.gnu.org>
      
      	* testsuite/libstdc++-prettyprinters/tr1.cc:  Compile with -O0.
      
      From-SVN: r254477
      François Dumont committed
    • compiler: disable escape analysis for runtime · b78e2e52
          
          Currently the runtime is hard-coded to non-escape in various places.
          Don't run escape analysis for runtime.
          
          Reviewed-on: https://go-review.googlesource.com/76210
      
      From-SVN: r254476
      Ian Lance Taylor committed
    • libgo: pass flags to recursive make · ce995d1c
          
          "make check" runs make recursively to check each package. Pass
          the flags through. So it is possible to run "make check" with
          different settings easily.
          
          Reviewed-on: https://go-review.googlesource.com/76029
      
      From-SVN: r254475
      Ian Lance Taylor committed
    • [AArch64] Pass number of units to aarch64_expand_vec_perm(_const) · 80940017
      This patch passes the number of units to aarch64_expand_vec_perm
      and aarch64_expand_vec_perm_const, which avoids a to_constant ()
      once GET_MODE_NUNITS is variable.
      
      2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm)
      	(aarch64_expand_vec_perm_const): Take the number of units too.
      	* config/aarch64/aarch64.c (aarch64_expand_vec_perm)
      	(aarch64_expand_vec_perm_const): Likewise.
      	* config/aarch64/aarch64-simd.md (vec_perm_const<mode>)
      	(vec_perm<mode>): Update accordingly.
      
      Reviewed-by: James Greenhalgh <james.greenhalgh@arm.com>
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r254469
      Richard Sandiford committed
    • [AArch64] Pass number of units to aarch64_simd_vect_par_cnst_half · f5cbabc1
      This patch passes the number of units to aarch64_simd_vect_par_cnst_half,
      which avoids a to_constant () once GET_MODE_NUNITS is variable.
      
      2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* config/aarch64/aarch64-protos.h (aarch64_simd_vect_par_cnst_half):
      	Take the number of units too.
      	* config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Likewise.
      	(aarch64_simd_check_vect_par_cnst_half): Update call accordingly,
      	but check for a vector mode before rather than after the call.
      	* config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>)
      	(move_hi_quad_<mode>, vec_unpack<su>_hi_<mode>)
      	(vec_unpack<su>_lo_<mode, vec_widen_<su>mult_lo_<mode>)
      	(vec_widen_<su>mult_hi_<mode>, vec_unpacks_lo_<mode>)
      	(vec_unpacks_hi_<mode>, aarch64_saddl2<mode>, aarch64_uaddl2<mode>)
      	(aarch64_ssubl2<mode>, aarch64_usubl2<mode>, widen_ssum<mode>3)
      	(widen_usum<mode>3, aarch64_saddw2<mode>, aarch64_uaddw2<mode>)
      	(aarch64_ssubw2<mode>, aarch64_usubw2<mode>, aarch64_sqdmlal2<mode>)
      	(aarch64_sqdmlsl2<mode>, aarch64_sqdmlal2_lane<mode>)
      	(aarch64_sqdmlal2_laneq<mode>, aarch64_sqdmlsl2_lane<mode>)
      	(aarch64_sqdmlsl2_laneq<mode>, aarch64_sqdmlal2_n<mode>)
      	(aarch64_sqdmlsl2_n<mode>, aarch64_sqdmull2<mode>)
      	(aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>)
      	(aarch64_sqdmull2_n<mode>): Update accordingly.
      
      Reviewed-by: James Greenhalgh <james.greenhalgh@arm.com>
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r254468
      Richard Sandiford committed
    • [AArch64] Pass number of units to aarch64_reverse_mask · 73e3da51
      This patch passes the number of units to aarch64_reverse_mask,
      which avoids a to_constant () once GET_MODE_NUNITS is variable.
      
      2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* config/aarch64/aarch64-protos.h (aarch64_reverse_mask): Take
      	the number of units too.
      	* config/aarch64/aarch64.c (aarch64_reverse_mask): Likewise.
      	* config/aarch64/aarch64-simd.md (vec_load_lanesoi<mode>)
      	(vec_store_lanesoi<mode>, vec_load_lanesci<mode>)
      	(vec_store_lanesci<mode>, vec_load_lanesxi<mode>)
      	(vec_store_lanesxi<mode>): Update accordingly.
      
      Reviewed-by: James Greenhalgh <james.greenhalgh@arm.com>
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r254467
      Richard Sandiford committed
    • [AArch64] Add an endian_lane_rtx helper routine · 7ac29c0f
      Later patches turn the number of vector units into a poly_int.
      We deliberately don't support applying GEN_INT to those (except
      in target code that doesn't distinguish between poly_ints and normal
      constants); gen_int_mode needs to be used instead.
      
      This patch therefore replaces instances of:
      
        GEN_INT (ENDIAN_LANE_N (builtin_mode, INTVAL (op[opc])))
      
      with uses of a new endian_lane_rtx function.
      
      2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* config/aarch64/aarch64-protos.h (aarch64_endian_lane_rtx): Declare.
      	* config/aarch64/aarch64.c (aarch64_endian_lane_rtx): New function.
      	* config/aarch64/aarch64.h (ENDIAN_LANE_N): Take the number
      	of units rather than the mode.
      	* config/aarch64/iterators.md (nunits): New mode attribute.
      	* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
      	Use aarch64_endian_lane_rtx instead of GEN_INT (ENDIAN_LANE_N ...).
      	* config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>)
      	(aarch64_dup_lane_<vswap_width_name><mode>, *aarch64_mul3_elt<mode>)
      	(*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
      	(*aarch64_mul3_elt_to_64v2df, *aarch64_mla_elt<mode>): Likewise.
      	(*aarch64_mla_elt_<vswap_width_name><mode>, *aarch64_mls_elt<mode>)
      	(*aarch64_mls_elt_<vswap_width_name><mode>, *aarch64_fma4_elt<mode>)
      	(*aarch64_fma4_elt_<vswap_width_name><mode>):: Likewise.
      	(*aarch64_fma4_elt_to_64v2df, *aarch64_fnma4_elt<mode>): Likewise.
      	(*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
      	(*aarch64_fnma4_elt_to_64v2df, reduc_plus_scal_<mode>): Likewise.
      	(reduc_plus_scal_v4sf, reduc_<maxmin_uns>_scal_<mode>): Likewise.
      	(reduc_<maxmin_uns>_scal_<mode>): Likewise.
      	(*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
      	(*aarch64_get_lane_zero_extendsi<mode>): Likewise.
      	(aarch64_get_lane<mode>, *aarch64_mulx_elt_<vswap_width_name><mode>)
      	(*aarch64_mulx_elt<mode>, *aarch64_vgetfmulx<mode>): Likewise.
      	(aarch64_sq<r>dmulh_lane<mode>, aarch64_sq<r>dmulh_laneq<mode>)
      	(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Likewise.
      	(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
      	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Likewise.
      	(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Likewise.
      	(aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
      	(aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
      	(aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Likewise.
      	(aarch64_sqdmull2_lane<mode>_internal): Likewise.
      	(aarch64_sqdmull2_laneq<mode>_internal): Likewise.
      	(aarch64_vec_load_lanesoi_lane<mode>): Likewise.
      	(aarch64_vec_store_lanesoi_lane<mode>): Likewise.
      	(aarch64_vec_load_lanesci_lane<mode>): Likewise.
      	(aarch64_vec_store_lanesci_lane<mode>): Likewise.
      	(aarch64_vec_load_lanesxi_lane<mode>): Likewise.
      	(aarch64_vec_store_lanesxi_lane<mode>): Likewise.
      	(aarch64_simd_vec_set<mode>): Update use of ENDIAN_LANE_N.
      	(aarch64_simd_vec_setv2di): Likewise.
      
      Reviewed-by: James Greenhalgh <james.greenhalgh@arm.com>
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r254466
      Richard Sandiford committed
    • Fix ChangeLog entry · 6e601f26
      From-SVN: r254465
      Richard Sandiford committed
    • rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8 definitions. · fc504349
      gcc/ChangeLog:
      
      2017-11-06  Carl Love  <cel@us.ibm.com>
      
      	* config/rs6000/rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8
      	definitions.
      	(P9V_BUILTIN_VEC_REVB): Remove the power 9 instance definitions.
      	* config/rs6000/altivec.h (vec_revb): Change the #define from power 9
      	to power 8.
      	* config/rs6000/r6000-protos.h (swap_endian_selector_for_mode): Add new
      	extern declaration.
      	* config/rs6000/rs6000.c (swap_endian_selector_for_mode): Add function.
      	* config/rs6000/rs6000-builtin.def (BU_P8V_VSX_1, BU_P8V_OVERLOAD_1):
      	Add power 8 macro expansions.
      	(BU_P9V_OVERLOAD_1): Remove power 9 overload expansion.
      	* config/rs6000/vsx.md (revb_<mode>): Add define_expand to generate
      	power 8 instructions.  (VSX_XXBR): Add iterator.
      
      gcc/testsuite/ChangeLog:
      
      2017-11-06  Carl Love  <cel@us.ibm.com>
      
      	* gcc.target/powerpc/builtins-revb-runnable.c: New runnable test file.
      
      From-SVN: r254464
      Carl Love committed
    • [Arm] Cleanup IT attributes · 113c53c3
      A recent change to remove the movdi_vfp_cortexa8 meant that ldrd was used in
      ITs block even when arm_restrict_it was enabled.  Rather than just fixing this
      latent issue, change the default of predicable_short_it to "no" so that only
      16-bit instructions need to be marked with it.  As a result there are far fewer
      patterns that need the attribute, and omitting predicable_short_it is no longer
      causing issues.
      
      	* config/arm/arm.md (predicable_short_it): Change default to "no",
      	improve documentation, remove uses that are identical to the default.
      	(enabled_for_depr_it): Rename to enabled_for_short_it.
      	* gcc/config/arm/arm-fixed.md (predicable_short_it): Remove default uses.
      	* gcc/config/arm/ldmstm.md (predicable_short_it): Likewise.
      	* gcc/config/arm/sync.md (predicable_short_it): Likewise.
      	* gcc/config/arm/thumb2.md (predicable_short_it): Likewise.
      	* gcc/config/arm/vfp.md (predicable_short_it): Likewise.
      
      From-SVN: r254463
      Wilco Dijkstra committed
    • re PR target/82748 (ICE with __builtin_fabsq and __float128 in copy_to_mode_reg, at explow.c:612) · aeed6d61
      [gcc]
      2017-11-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/82748
      	* config/rs6000/rs6000-builtin.def (BU_FLOAT128_1): Delete
      	float128 helper macros, which are no longer used after deleting
      	the old 'q' built-in functions, and moving the round to odd
      	built-in functions to being special built-in functions.
      	(BU_FLOAT128_2): Likewise.
      	(BU_FLOAT128_1_HW): Likewise.
      	(BU_FLOAT128_2_HW): Likewise.
      	(BU_FLOAT128_3_HW): Likewise.
      	(FABSQ): Delete old 'q' built-in functions.
      	(COPYSIGNQ): Likewise.
      	(SQRTF128_ODD): Move round to odd built-in functions to be
      	special built-in functions, so that we can handle
      	-mabi=ieeelongdouble.
      	(TRUNCF128_ODD): Likewise.
      	(ADDF128_ODD): Likewise.
      	(SUBF128_ODD): Likewise.
      	(MULF128_ODD): Likewise.
      	(DIVF128_ODD): Likewise.
      	(FMAF128_ODD): Likewise.
      	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Map old 'q'
      	built-in names to 'f128'.
      	* config/rs6000/rs6000.c (rs6000_fold_builtin): Remove folding the
      	old 'q' built-in functions, as the machine independent code for
      	'f128' built-in functions handles this.
      	(rs6000_expand_builtin): Add expansion for float128 round to odd
      	functions, keying off on -mabi=ieeelongdouble of whether to use
      	the KFmode or TFmode variant.
      	(rs6000_init_builtins): Initialize the _Float128 round to odd
      	built-in functions.
      	* doc/extend.texi (PowerPC Built-in Functions): Document the old
      	_Float128 'q' built-in functions are now mapped into the new
      	'f128' built-in functions.
      
      [gcc/testsuite]
      2017-11-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/82748
      	* gcc.target/powerpc/pr82748-1.c: New test.
      	* gcc.target/powerpc/pr82748-2.c: Likewise.
      
      From-SVN: r254462
      Michael Meissner committed
    • re PR c++/65579 ([C++11] gcc requires definition of a static constexpr member… · 65371a7e
      re PR c++/65579 ([C++11] gcc requires definition of a static constexpr member even though it is not odr-used)
      
      /cp
      2017-11-06  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/65579
      	* decl2.c (finish_static_data_member_decl): If there's an initializer,
      	complete the type and re-apply the quals.
      
      /testsuite
      2017-11-06  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/65579
      	* g++.dg/cpp0x/constexpr-template11.C: New.
      
      From-SVN: r254461
      Paolo Carlini committed
    • collect2.c (add_lto_object): Compile for OBJECT_COFF. · d3722bf7
      * collect2.c (add_lto_object): Compile for OBJECT_COFF.
      (scan_prog_file): Don't skip PASS_LTOINFO. Scan for LTO objects.
      
      From-SVN: r254460
      David Edelsohn committed