1. 27 Sep, 2017 15 commits
    • compiler: fix crash on struct that embeds pointer type · 762cc1fb
          
          The type verification code that enforces rules about the types of
          embedded struct fields was not properly handling the case where the
          pointed-to type is a pointer type, e.g.
          
            type s *struct{ C int }
            type t struct{ *s }
          
          which is illegal according to the spec. Tweak the verifier to catch
          this case, and add a guard in the lowering pass to make sure that we
          don't crash on invalid accesses to field "C" in type "t" above.
          
          Fixes golang/go#22050
          
          Reviewed-on: https://go-review.googlesource.com/66530
      
      From-SVN: r253236
      Ian Lance Taylor committed
    • haifa-sched: fix autopref_rank_for_schedule qsort comparator · ab90c27b
      	* haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
      	first, always call autopref_rank_data otherwise.
      
      From-SVN: r253235
      Alexander Monakov committed
    • [BRIGFE] Improved support for function and module scope group · d4b7f2ee
      segment variables.
          
      PRM specs defines function and module scope group segment variables
      as an experimental feature. However, PRM test suite uses and
      hcc relies on them. In addition, hcc assumes certain group variable
      layout in its dynamic group segment allocation code.
          
      We cannot have global group memory offsets if we want to
      both have kernel-specific group segment size and multiple kernels
      calling the same functions that use function scope group memory
      variables.
          
      Now group segment is handled by separate book keeping of module
      scope and function (kernel) offsets. Each function has a "frame"
      in the group segment offset to which is given as an argument.
      
      From-SVN: r253233
      Pekka Jääskeläinen committed
    • graphite-scop-detection.c (find_scop_parameters): Move loop bound handling ... · 6f0e6f08
      2017-09-27  Richard Biener  <rguenther@suse.de>
      
      	* graphite-scop-detection.c (find_scop_parameters): Move
      	loop bound handling ...
      	(gather_bbs::before_dom_children): ... here, avoiding the need
      	to build scop_info->loop_nest.
      	(record_loop_in_sese): Remove.
      	* sese.h (sese_info_t::loop_nest): Remove.
      	* sese.c (new_sese_info): Do not allocate loop_nest.
      	(free_sese_info): Do not free loop_nest.
      
      From-SVN: r253232
      Richard Biener committed
    • net: check Getsockname error return · 509b9b7a
          
          Reviewed-on: https://go-review.googlesource.com/64550
      
      From-SVN: r253231
      Ian Lance Taylor committed
    • re PR c++/82159 (ICE: in assign_temp, at function.c:961) · b55c7343
      	PR c++/82159
      	* gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
      	lhs from calls if the lhs has addressable type.
      
      	* g++.dg/opt/pr82159.C: New test.
      
      From-SVN: r253230
      Jakub Jelinek committed
    • graphite.h (scop::max_alias_set): New member. · 99124c31
      2017-09-27  Richard Biener  <rguenther@suse.de>
      
      	* graphite.h (scop::max_alias_set): New member.
      	* graphite-scop-detection.c: Remove references to non-existing
      	--param in comments.
      	(build_alias_sets): Record the maximum alias set used for drs.
      	(build_scops): Support zero as unlimited for
      	--param graphite-max-arrays-per-scop.
      	* graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
      	and inline into ...
      	(build_poly_sr_1): ... here.  Compute alias set based on the
      	maximum alias set used for drs rather than
      	PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
      
      From-SVN: r253229
      Richard Biener committed
    • Fix libgomp.oacc-c-c++-common/parallel-reduction.c for non-nvidia devices · 84c8627c
      2017-09-27  Tom de Vries  <tom@codesourcery.com>
      
      	* testsuite/libgomp.oacc-c-c++-common/parallel-reduction.c (main):
      	Remove acc_device_nvidia references.
      
      From-SVN: r253228
      Tom de Vries committed
    • graphite-optimize-isl.c (get_schedule_for_node_st): Allow --param… · c1f80eef
      graphite-optimize-isl.c (get_schedule_for_node_st): Allow --param loop-block-tile-size=0 to disable tiling.
      
      2017-09-27  Richard Biener  <rguenther@suse.de>
      
      	* graphite-optimize-isl.c (get_schedule_for_node_st): Allow
      	--param loop-block-tile-size=0 to disable tiling.
      
      From-SVN: r253227
      Richard Biener committed
    • invoke.texi (graphite-max-bbs-per-function): Remove. · d2552094
      2017-09-27  Richard Biener  <rguenther@suse.de>
      
      	* doc/invoke.texi (graphite-max-bbs-per-function): Remove.
      	(graphite-max-nb-scop-params): Document special value zero.
      	* domwalk.h (dom_walker::STOP): New symbolical constant.
      	(dom_walker::dom_walker): Add optional parameter for bb to
      	RPO mapping.
      	(dom_walker::~dom_walker): Declare.
      	(dom_walker::before_dom_children): Document STOP return value.
      	(dom_walker::m_user_bb_to_rpo): New member.
      	(dom_walker::m_bb_to_rpo): Likewise.
      	* domwalk.c (dom_walker::dom_walker): Compute bb to RPO
      	mapping here if not provided by the user.
      	(dom_walker::~dom_walker): Free bb to RPO mapping if not
      	provided by the user.
      	(dom_walker::STOP): Define.
      	(dom_walker::walk): Do not compute bb to RPO mapping here.
      	Support STOP return value from before_dom_children to stop
      	walking.
      	* graphite-optimize-isl.c (optimize_isl): If the schedule
      	is the same still generate code if -fgraphite-identity
      	or -floop-parallelize-all are given.
      	* graphite-scop-detection.c: Include cfganal.h.
      	(gather_bbs::gather_bbs): Get and pass through bb to RPO
      	mapping.
      	(gather_bbs::before_dom_children): Return STOP for BBs
      	not in the region.
      	(build_scops): Compute bb to RPO mapping and pass it to
      	the domwalk.  Treat --param graphite-max-nb-scop-params=0
      	as not limiting the number of params.
      	* graphite.c (graphite_initialize): Remove limit on the
      	number of basic-blocks in a function.
      	* params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
      	(PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
      	default value of 10.
      
      From-SVN: r253226
      Richard Biener committed
    • Placate gcc.misc-tests/help.exp regarding -Wdo-subscript · 04620f22
      	gcc/fortran/
      	* lang.opt <Wdo-subscript>: End help text with a period.
      
      From-SVN: r253225
      Thomas Schwinge committed
    • pr65947-9.c: Requires char to be signed by default. · 7ba950d3
      Fails on S/390 with char defaulting to unsigned char.
      
      gcc/testsuite/ChangeLog:
      
      2017-09-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.dg/vect/pr65947-9.c: Use signed char explicitly.
      
      From-SVN: r253224
      Andreas Krebbel committed
    • vsx.md (peephole for optimizing move SF to GPR): Adjust code to eliminate… · 7a6ed74d
      vsx.md (peephole for optimizing move SF to GPR): Adjust code to eliminate needing to do the shift right 32-bits operation after...
      
      [gcc]
      2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
      	Adjust code to eliminate needing to do the shift right 32-bits
      	operation after XSCVDPSPN.
      
      [gcc/testsuite]
      2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/pr71977-1.c: Update test to know that we
      	don't generate a 32-bit shift after doing XSCVDPSPN.
      	* gcc.target/powerpc/direct-move-float1.c: Likewise.
      	* gcc.target/powerpc/direct-move-float3.c: New test.
      
      From-SVN: r253223
      Michael Meissner committed
    • Daily bump. · f305b232
      From-SVN: r253222
      GCC Administrator committed
    • match.pd ((X / Y) == 0 -> X < Y): New pattern. · 1d6fadee
      2017-09-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      
      	* match.pd ((X / Y) == 0 -> X < Y): New pattern.
      	((X / Y) != 0 -> X >= Y): Likewise.
      
      testsuite/
      	* gcc.dg/tree-ssa/cmpdiv.c: New test.
      
      From-SVN: r253218
      Prathamesh Kulkarni committed
  2. 26 Sep, 2017 25 commits
    • rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R, [...]): Add support for builtins vector… · 1262c6cf
      rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R, [...]): Add support for builtins vector unsigned char vec_xl_len_r (unsigned char *...
      
      gcc/ChangeLog:
      
      2017-09-26  Carl Love  <cel@us.ibm.com>
      
      	* config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
      	P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
      	vector unsigned char vec_xl_len_r (unsigned char *, size_t);
      	void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
      	* config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
      	* config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
      	definitions and overloading.
      	* config/rs6000/rs6000.c (altivec_expand_builtin): Add case
      	statement for P9V_BUILTIN_XST_LEN_R.
      	(altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
      	* config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
      	define_expand and define_insn for the instructions and builtins.
      	* doc/extend.texi: Update the built-in documentation file for the new
      	built-in functions.
      	* config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
      	define_insn for the instructions
      
      gcc/testsuite/ChangeLog:
      
      2017-09-26  Carl Love  <cel@us.ibm.com>
      
      	* gcc.target/powerpc/builtins-5-p9-runnable.c: Add new runable test
      	file for the new built-ins and the existing built-ins.
      
      From-SVN: r253217
      Carl Love committed
    • re PR target/39570 (cabs and cabsf are named differently on NetBSD 5) · b460e64d
      2017-09-26  Krister Walfridsson  <krister.walfridsson@gmail.com>
      
      	PR target/39570
      	* gcc/config/netbsd-protos.h: New file.
      	* gcc/config/netbsd.c: New file.
      	* gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
      	* gcc/config/t-netbsd: New file.
      	* gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
      	(tmake_file) Add t-netbsd.
      	(extra_objs) Add netbsd.o.
      
      From-SVN: r253216
      Krister Walfridsson committed
    • Commit ChangeLog entries from previous commit. · 3c549718
      From-SVN: r253215
      Thomas Koenig committed
    • re PR fortran/82143 (add a -fdefault-real-16 flag) · 63b62fa0
      2017-09-26  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/82143
      	PR fortran/82324
      	* doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
      
      2017-09-26  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/82143
      	PR fortran/82324
      	* lib/target-supports.exp (check_effective_target_fortran_real_10): New.
      	* gfortran.dg/promotion_3.f90: Only run if real(16) is available.
      	* gfortran.dg/promotion_4.f90: Only run if real(10) is available.
      	Don't assume that DOUBLE PRECISION has kind=16.
      
      From-SVN: r253214
      Janus Weil committed
    • vsx.md (vsx_xscvdpspn): Eliminate useless alternative constraint. · 57e6b981
      2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/vsx.md (vsx_xscvdpspn): Eliminate useless
      	alternative constraint.
      	(vsx_xscvspdpn): Likewise.
      	(vsx_xscvspdpn_scalar): Likewise.
      
      From-SVN: r253213
      Michael Meissner committed
    • vsx.md (vsx_xscvspdp_scalar2): Move insn so that it is adjacent to the other XSCVSPDP insns. · 2f448503
      2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
      	it is adjacent to the other XSCVSPDP insns.
      
      From-SVN: r253212
      Michael Meissner committed
    • frontend-passes.c (do_subscript): Don't do anything if inside an associate list. · 885b8230
      2017-09-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	* frontend-passes.c (do_subscript): Don't do anything
      	if inside an associate list.
      
      2017-09-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	* gfortran.dg/gomp/associate1.f90: Remove unnecessary
      	warning from associate construct and do loop.
      
      From-SVN: r253211
      Thomas Koenig committed
    • rs6000.md (movsi_from_df): Optimize converting a DFmode to a SFmode... · 6c1f23ff
      2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.md (movsi_from_df): Optimize converting a
      	DFmode to a SFmode, and then needing to move the SFmode to a GPR
      	to use the XSCVDPSP instruction instead of FRSP and XSCVDPSPN.
      
      From-SVN: r253210
      Michael Meissner committed
    • rs6000.md (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift right… · d33a4d86
      rs6000.md (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift right or vector extract after...
      
      2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.md (movsi_from_sf): Adjust code to
      	eliminate doing a 32-bit shift right or vector extract after doing
      	XSCVDPSPN.  Use zero_extendsidi2 instead of p8_mfvsrd_4_disf to
      	move the value to the GPRs.
      	(movdi_from_sf_zero_ext): Likewise.
      	(reload_gpr_from_vsxsf): Likewise.
      	(p8_mfvsrd_4_disf): Delete, no longer used.
      
      From-SVN: r253209
      Michael Meissner committed
    • rs6000.md (extendsi<mode>2): Add a splitter to do sign extension from a vector… · 8615012c
      rs6000.md (extendsi<mode>2): Add a splitter to do sign extension from a vector register to a GPR by doing a...
      
      2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
      	sign extension from a vector register to a GPR by doing a 32-bit
      	direct move and then an EXTSW.
      	(extendsi<mode>2 splitter): Likewise.
      
      From-SVN: r253208
      Michael Meissner committed
    • Make SRA qsort comparator transitive · 973c150c
      2017-09-26  Martin Jambor  <mjambor@suse.cz>
      
      	* tree-sra.c (compare_access_positions): Put integral types first,
      	stabilize sorting of integral types, remove conditions putting
      	non-full-precision integers last.
      	(sort_and_splice_var_accesses): Disable scalarization if a
      	non-integert would be represented by a non-full-precision integer.
      
      From-SVN: r253207
      Martin Jambor committed
    • associate1.f90: Really commit change from 2017-09-25. · 5714abff
      2017-09-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	* gfortran.dg/gomp/associate1.f90: Really commit change
      	from 2017-09-25.
      	* gfortran.dg/predcom-1.f: Likewise.
      	* gfortran.dg/unconstrained_commons.f: Likewise.
      
      From-SVN: r253206
      Thomas Koenig committed
    • Enable no-exec stacks for more targets using the Linux kernel. · 938b6f1e
      Building glibc for many different configurations and running the
      compilation parts of the testsuite runs into failures of the
      elf/check-execstack test for hppa and microblaze.  Those
      configurations default to executable stacks in the Linux kernel
      because of VM_DATA_DEFAULT_FLAGS definitions including VM_EXEC
      (VM_DATA_DEFAULT_FLAGS being the default definition of
      VM_STACK_DEFAULT_FLAGS).
      
      This fails because those configurations are not generating
      .note.GNU-stack sections to indicate that programs do not need an
      executable stack.  This patch fixes GCC to generate those sections on
      those architectures (when configured for a target using the Linux
      kernel), as it does on other architectures, together with adding that
      section to libgcc .S sources, with the same code as used on other
      architectures (or a variant using "#ifdef __linux__" instead of the
      usual "#if defined(__ELF__) && defined(__linux__)" for microblaze, as
      that configuration doesn't use elfos.h and so doesn't define __ELF__).
      
      This suffices to eliminate that glibc test failure.  (For hppa, the
      compilation parts of the glibc testsuite still fail because of the
      separate elf/check-textrel failure.)
      
      gcc:
      	* config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
      	* config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
      	* config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
      	* config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
      	Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
      	conditionals inside the function instead of around it.  Call
      	file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
      	(TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
      
      libgcc:
      	* config/microblaze/crti.S, config/microblaze/crtn.S,
      	config/microblaze/divsi3.S, config/microblaze/moddi3.S,
      	config/microblaze/modsi3.S, config/microblaze/muldi3_hard.S,
      	config/microblaze/mulsi3.S,
      	config/microblaze/stack_overflow_exit.S,
      	config/microblaze/udivsi3.S, config/microblaze/umodsi3.S,
      	config/pa/milli64.S: Add .note.GNU-stack section.
      
      From-SVN: r253204
      Joseph Myers committed
    • graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite, fold in ... · ca617fd2
      2017-09-26  Richard Biener  <rguenther@suse.de>
      
      	* graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
      	fold in ...
      	(scop_detection::build_scop_breadth): ... this.  Removed.
      	(scop_detection::loop_is_valid_in_scop): Fold into single caller.
      	(scop_detection::harmful_stmt_in_bb): Likewise.
      	(scop_detection::graphite_can_represent_stmt): Likewise.
      	(scop_detection::loop_body_is_valid_scop): Likewise.  Remove recursion.
      	(scop_detection::can_represent_loop): Remove recursion, fold in ...
      	(scop_detection::can_represent_loop_1): ... this.  Removed.
      	(scop_detection::harmful_loop_in_region): Simplify after inlining
      	the above and remove more quadraticness.
      	(build_scops): Adjust.
      	* tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
      	quadraticness.
      
      From-SVN: r253203
      Richard Biener committed
    • re PR target/82267 (x32: unnecessary address-size prefixes. Why isn't… · 343cb589
      re PR target/82267 (x32: unnecessary address-size prefixes.  Why isn't -maddress-mode=long the default?)
      
      	PR target/82267
      	* config/i386/i386.c (ix86_print_operand_address_as): Only test
      	REGNO (base) == SP_REG if base is a REG.
      
      From-SVN: r253202
      Jakub Jelinek committed
    • re PR middle-end/35691 (Missed (a == 0) && (b == 0) into (a|(typeof(a)(b)) == 0… · caab3763
      re PR middle-end/35691 (Missed (a == 0) && (b == 0) into (a|(typeof(a)(b)) == 0 when the types don't match)
      
      	PR middle-end/35691
      	* tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
      	if it is different SSA_NAME.
      	(optimize_range_tests_cmp_bitwise): New function.
      	(optimize_range_tests): Call it.
      
      	* gcc.dg/pr35691-5.c: New test.
      	* gcc.dg/pr35691-6.c: New test.
      
      From-SVN: r253201
      Jakub Jelinek committed
    • Fix changelog entry. · 18b10d78
      From-SVN: r253200
      Andreas Krebbel committed
    • re PR tree-optimization/82321 (ICE in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:707) · 621e5370
      2017-09-26  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/82321
      	* graphite.c (canonicalize_loop_closed_ssa): Properly check
      	for the def being inside the loop.
      
      	* gcc.dg/graphite/pr82321.c: New testcase.
      
      From-SVN: r253199
      Richard Biener committed
    • S/390: Fix vmslg instruction and builtin. · 17ec4b79
      gcc/ChangeLog:
      
      2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/vx-builtins.md ("vmslg"): Add missing operand in
      	assembler output.
      	* config/s390/s390-builtins.def: Fix constraint on op4.
      
      From-SVN: r253198
      Andreas Krebbel committed
    • S/390: Fix vector fp unordered compares · 0c9ce4e6
      V2DF mode was still hard-coded here.
      
      gcc/ChangeLog:
      
      2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.c (s390_expand_vec_compare): Use the new mode
      	independent expanders.
      	* config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
      	("vec_ordered", "vec_unordered"): New expanders.
      
      From-SVN: r253197
      Andreas Krebbel committed
    • S/390: Set the preferred mode for float vectors · 41067f07
      gcc/ChangeLog:
      
      2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
      	for SFmode.
      
      From-SVN: r253196
      Andreas Krebbel committed
    • S/390: Fix rtl standard names for vector unpack low->lo · d55409bf
      gcc/ChangeLog:
      
      2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
      	vec_unpacks_lo_v16qi.
      	("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
      
      From-SVN: r253195
      Andreas Krebbel committed
    • S/390: Add FP vec_pack/unpack · a55e2541
      gcc/ChangeLog:
      
      2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/vector.md ("vec_unpacks_lo_v4sf")
      	("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
      	("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
      
      From-SVN: r253194
      Andreas Krebbel committed
    • S/390: Add support for vec_shr · 252c6f56
      gcc/ChangeLog:
      
      2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/predicates.md ("const_shift_by_byte_operand"): New
      	predicate.
      	* config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
      	and V16QI.
      	("*vec_slb<mode>"): New insn pattern.
      	("vec_shr_<mode>"): New expander.
      	* config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
      	and force the shift count operand to V16QImode.
      	("vec_srb<mode>"): Set shift count mode to V16QI.
      
      From-SVN: r253193
      Andreas Krebbel committed
    • S/390: Add widening vector mult lo/hi patterns · da7853cc
      Add support for widening vector multiply lo/hi patterns.  These do not
      directly match on IBM Z instructions but can be emulated with even/odd
      + vector merge.
      
      gcc/ChangeLog:
      
      2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/vector.md ("vec_widen_umult_lo_<mode>")
      	("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
      	("vec_widen_smult_hi_<mode>"): New expander definitions.
      
      From-SVN: r253192
      Andreas Krebbel committed