1. 27 Mar, 2017 5 commits
  2. 26 Mar, 2017 4 commits
  3. 25 Mar, 2017 6 commits
    • re PR fortran/78881 ([F03] reading from string with DTIO procedure does not work properly) · 1f10d710
      2017-03-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libgfortran/78881
      	* io/io.h (st_parameter_dt): Rename unused component last_char to
      	child_saved_iostat. Move comment to gfc_unit.
      	* io/list_read.c (list_formatted_read_scalar): After call to
      	child READ procedure, save the returned iostat value for later
      	check. (finish_list_read): Only finish READ if child_saved_iostat
      	was OK.
      	* io/transfer.c (read_sf_internal): If there is a saved character
      	in last character, seek back one. Add a new check for EOR
      	condition. (read_sf): If there is a saved character
      	in last character, seek back one. (formatted_transfer_scalar_read):
      	Initialize last character before invoking child procedure.
      	(data_transfer_init): If child dtio, set advance
      	status to nonadvancing. Move update of size and check for EOR
      	condition to before child dtio return.
      
      	* gfortran.dg/dtio_26.f90: New test.
      
      From-SVN: r246478
      Jerry DeLisle committed
    • re PR fortran/80156 (Generic DTIO interface reported missing if public statement… · 41036686
      re PR fortran/80156 (Generic DTIO interface reported missing if public statement preceeds the interface block)
      
      2017-03-25  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/80156
      	PR fortran/79382
      	* decl.c (access_attr_decl): Remove the error for an absent
      	generic DTIO interface and ensure that symbol has the flavor
      	FL_PROCEDURE.
      
      2017-03-25  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/80156
      	PR fortran/79382
      	* gfortran.dg/dtio_23.f90 : Remove the dg-error and add the
      	testcase for PR80156. Add a main programme that tests that
      	the typebound generic is accessible.
      
      From-SVN: r246476
      Paul Thomas committed
    • re PR target/80180 (Incorrect codegen from rdseed intrinsic use (CVE-2017-11671)) · 59ba4493
      	PR target/80180
      	* config/i386/i386.c (ix86_expand_builtin)
      	<IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
      	flags reg setting and flags reg using instructions.
      	<IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
      	clobbering instructions to zero extend op2.
      
      From-SVN: r246475
      Uros Bizjak committed
    • install.texi (Configuration): Update link to AIX ld. · 7d437dc1
      	* doc/install.texi (Configuration) <--with-aix-soname>:
      	Update link to AIX ld.
      
      From-SVN: r246474
      Gerald Pfeifer committed
    • re PR target/80160 (operand has impossible constraints) · 5da906ca
      	PR rtl-optimization/80160
      	PR rtl-optimization/80159
      	* lra-assigns.c (must_not_spill_p): Tighten new test to also take
      	reg_alternate_class into account.
      
      	* gcc.target/i386/pr80160.c: New test.
      
      From-SVN: r246473
      Bernd Schmidt committed
    • Daily bump. · 199855f6
      From-SVN: r246472
      GCC Administrator committed
  4. 24 Mar, 2017 25 commits
    • re PR target/79904 (ICE in annotate_constant_pool_refs, at config/s390/s390.c:7909) · 7dabefa0
      	PR sanitizer/79904
      	* gcc.dg/ubsan/pr79904-2.c: Add -Wno-psabi to dg-options.
      
      From-SVN: r246468
      Jakub Jelinek committed
    • re PR target/80148 (operand has impossible constraints) · fdcfea63
      2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/80148
      	* lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
      	to consider in curr_insn_transform.
      
      From-SVN: r246467
      Vladimir Makarov committed
    • PR c++/77339 - ICE with invalid use of alias template. · 90471a3d
      	* pt.c (lookup_template_class_1): Don't try to enter the scope of an
      	alias template.
      
      From-SVN: r246462
      Jason Merrill committed
    • re PR c++/80119 (-Wmaybe-uninitialized wrongly flags the body of a short-circuited if-clause) · c8b1fbc1
      	PR c++/80119
      	* cp-gimplify.c (cp_fold): Strip CLEANUP_POINT_EXPR if the expression
      	doesn't have side effects.
      
      	* g++.dg/warn/Wuninitialized-9.C: New test.
      
      From-SVN: r246461
      Marek Polacek committed
    • genrecog.c (validate_pattern): Add VEC_SELECT validation. · c4d5ab5d
      	* genrecog.c (validate_pattern): Add VEC_SELECT validation.
      	* genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
      	and emit_mode_inner.
      
      From-SVN: r246460
      Jakub Jelinek committed
    • S/390: arch12: New builtins. · 76794c52
      This patch implements a set of low-level builtins for instruction
      which would otherwise not be emitted by the compiler plus a set of
      high-level builtins as defined by the IBM XL compiler.  The high-level
      builtins will be described in a future revision of the z/OS XL C/C++
      Programming Guide.
      
      I'll try to come up with a documentation appropriate for the GCC
      manual as well (sometimes in the future).
      
      gcc/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
      	argument to the overloaded builtin variants.  Use the new flag to
      	deprecate certain builtin variants.
      	* config/s390/s390-builtin-types.def: Add new builtin types.
      	* config/s390/s390-builtins.h: Support new flags field for
      	overloaded builtins.
      	* config/s390/s390-c.c (OB_DEF_VAR): New flags field.
      	(s390_macro_to_expand): Enable vector float data type.
      	(s390_cpu_cpp_builtins_internal): Indicate support of the new
      	builtins by incrementing the __VEC__ version number.
      	(s390_expand_overloaded_builtin): Support expansion of vec_xl and
      	vec_xst.
      	(s390_resolve_overloaded_builtin): Emit error messages depending
      	on the builtin flags.
      	* config/s390/s390.c (s390_expand_builtin): Support additional
      	flags argument.  Change error message to match the messages
      	emitted in s390-c.c.
      	* config/s390/s390.md: New UNSPEC_* constants.
      	(op_type): Add new instruction types.
      	* config/s390/vecintrin.h: Add new builtins and test data class
      	constants.
      	* config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
      	(V_HW_4, VEC_HW, VECF_HW): New mode iterators.
      	(VEC_INEXACT, VEC_NOINEXACT): New constants.
      	("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
      	("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
      	("vec_mergel<mode>"): V_HW -> VEC_HW.
      
      	("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
      	("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
      	("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
      	("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
      
      	("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
      	("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
      	("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
      	("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
      
      	("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
      	("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
      	("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
      	("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
      	("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
      	("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
      	("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
      
      	("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
      	("vec_scatter_element<V_HW_4:mode>_DI")
      	("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
      	("vec_fpint<mode>", "vflls")
      	("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
      	("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
      	("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
      	("*vec_cmphe<mode>_cc"): ... these.
      
      	("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
      	mode constant instead of magic value.
      
      gcc/testsuite/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.target/s390/target-attribute/tattr-3.c: Adjust error message
      	and remove the high-level builtin.  The error message for the
      	would prevent compilation from reaching the second.
      	* gcc.target/s390/target-attribute/tattr-4.c: Likewise.
      
      From-SVN: r246459
      Andreas Krebbel committed
    • S/390: arch12: Support new vector floating point modes. · 2de2b3f9
      This patch adds support for the new floating point vector elements (SF
      and TF) introduced with arch12.
      
      gcc/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.c (s390_expand_vec_compare): Support other
      	vector floating point modes than just V2DF.
      	(s390_expand_vcond): Likewise.
      	(s390_hard_regno_mode_ok): Allow SFmode values in VRs.
      	(s390_cannot_change_mode_class): Prevent mode changes between TF
      	and V1TF in vector registers.
      	* config/s390/s390.md (DF, SF): New mode attributes.
      	("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
      	("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
      	SFmode support for VRs.
      	* config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
      	vector fp modes.
      	(VFT, VF_HW): New mode iterators.
      	(vw, sdx): New mode attributes.
      	("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
      	("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
      	("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
      	("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
      	("vec_unorderedv2df"): Adjust the v2df only patterns to support
      	also the new vector floating point modes.  Renaming to ...
      
      	("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
      	("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
      	("abs<mode>2", "negabs<mode>2", "smax<mode>3")
      	("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
      	("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
      	("vec_unordered<mode>"): ... these.
      
      	("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
      	("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
      	("*vec_extendv2df"): New insn definitions.
      
      gcc/testsuite/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.target/s390/vxe/negfma-1.c: New test.
      
      From-SVN: r246458
      Andreas Krebbel committed
    • S/390: arch12: Support the mul/add/subtract · 7d2fd075
       instructions.
      
      gcc/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
      	("mulditi3_2", "*muldi3_sign"): New patterns.
      	("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
      	rename the pattern definition.
      
      gcc/testsuite/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.target/s390/arch12/aghsghmgh-1.c: New test.
      	* gcc.target/s390/arch12/mul-1.c: New test.
      	* gcc.target/s390/arch12/mul-2.c: New test.
      
      From-SVN: r246457
      Andreas Krebbel committed
    • S/390: arch12: Add indirect branch pattern · 2841f550
      This adds support for the branch indirect instruction.
      
      gcc/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.md ("indirect_jump"): Turn insn definition into
      	expander.
      	("*indirect_jump", "*indirect2_jump"): New pattern definitions.
      
      From-SVN: r246456
      Andreas Krebbel committed
    • S/390: arch12: Add vllezlf instruction. · 72612e4e
      This adds support for the vector load element and zero instruction and
      makes sure it is used when initializing vectors with elements while
      setting the rest to 0.
      
      gcc/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.c (s390_expand_vec_init): Use vllezl
      	instruction if possible.
      	* config/s390/vector.md (vec_halfnumelts): New mode
      	attribute.
      	("*vec_vllezlf<mode>"): New pattern.
      
      gcc/testsuite/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.target/s390/vxe/vllezlf-1.c: New test.
      
      From-SVN: r246455
      Andreas Krebbel committed
    • S/390: arch12: New vector popcount variants · 6c7774d1
      arch12 provides pop count vector instructions for bigger elements than
      just chars.
      
      gcc/testsuite/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.target/s390/vxe/popcount-1.c: New test.
      
      gcc/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
      	("popcountv4si2", "popcountv2di2"): Rename to ...
      	("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
      	("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
      	condition.
      	("popcount<mode>2_vxe"): New pattern.
      
      From-SVN: r246454
      Andreas Krebbel committed
    • S/390: arch12: Add support for new vector bit · 9ec98860
       operations.
      
      This patch adds support for the new bit operations introduced with
      arch12.
      
      The patch also renames the one complement pattern to the proper RTL
      standard name.
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.c (s390_rtx_costs): Return low costs for the
      	canonical form of ~AND to make sure the new instruction will be
      	used.
      	* config/s390/vector.md ("notand<mode>3", "ior_not<mode>3")
      	("notxor<mode>3"): Add new pattern definitions.
      	("*not<mode>"): Rename to ...
      	("one_cmpl<mode>2"): ... this.
      
      gcc/testsuite/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.target/s390/vxe/bitops-1.c: New test.
      
      From-SVN: r246453
      Andreas Krebbel committed
    • S/390: arch12: Add arch12 option. · 6654e96f
      This patch covers the mechanical work of making the new architecture
      option arch12 available wherever it will be needed later.
      
      gcc/testsuite/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.target/s390/s390.exp: Run tests in arch12 and vxe dirs.
      	* lib/target-supports.exp: Add effective target check s390_vxe.
      
      gcc/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* common/config/s390/s390-common.c (processor_flags_table): Add
      	arch12.
      	* config.gcc: Add arch12.
      	* config/s390/driver-native.c (s390_host_detect_local_cpu):
      	Default to arch12 for unknown CPU model numbers.
      	* config/s390/s390-builtins.def: Add B_VXE builtin flag.
      	* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
      	PROCESSOR_max sanity check.
      	* config/s390/s390-opts.h (enum processor_type): Add
      	PROCESSOR_ARCH12.
      	* config/s390/s390.c (processor_table): Add arch12.
      	(s390_expand_builtin): Add check for B_VXE flag.
      	(s390_issue_rate): Add PROCESSOR_ARCH12.
      	(s390_get_sched_attrmask): Likewise.
      	(s390_get_unit_mask): Likewise.
      	(s390_sched_score): Enable z13 scheduling for arch12.
      	(s390_sched_reorder): Likewise.
      	(s390_sched_variable_issue): Likewise.
      	* config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
      	PF_VXE.
      	(s390_tune_attr): Use z13 scheduling also for arch12.
      	(TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
      	(TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
      	(TARGET_VXE_P): New macros.
      	* config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
      	and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
      	* config/s390/s390.opt: Add arch12 as processor_type.
      
      From-SVN: r246452
      Andreas Krebbel committed
    • S/390: Rearrange fixuns_trunc pattern definitions. · 9751ad6e
      This reworks the fixuns_trunc* patterns a bit which got quite confusing
      after adding z13 support.  Now we just have a single RTL standard name
      expander definition ("fixuns_trunc<FP:mode><GPR:mode>2") which then
      multiplexes to either the emulation variants *_emu or the hardware
      implementations.
      
      gcc/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.md
      	("fixuns_truncdddi2", "fixuns_trunctddi2")
      	("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
      	("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
      
      	("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
      	Rename expanders to ...
      
      	("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
      	("fixuns_truncdddi2_emu"): ... these.
      
      	("fixuns_trunc<mode>si2_emu"): New expander.
      
      	("*fixuns_truncdfdi2_z13"): Rename to ...
      	("*fixuns_truncdfdi2_vx"): ... this.
      
      From-SVN: r246451
      Andreas Krebbel committed
    • S/390: Use wfc for scalar vector compares · 77c585ca
      The z13 vector support used the vector style comparison instructions
      also for the scalar compares in vector registers.  However, it is much
      more convenient to just use the compare scalar instruction for that
      purpose.  The advantage is that this instruction generates a CC result
      as our compares usually do.  So this results in quite some code to be
      removed from the backend.
      
      Regression tested on s390x.
      
      gcc/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/2964.md: Remove the single element vector compare
      	instructions which are no longer used.
      	* config/s390/s390.c (s390_select_ccmode): Remove handling of
      	vector CCmodes.
      	(s390_canonicalize_comparison): Remove handling of DFmode
      	compares.
      	(s390_expand_vec_compare_scalar): Remove function.
      	(s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
      	* config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
      	pattern.
      	("*cmp<mode>_ccs"): Add wfcdb instruction.
      
      gcc/testsuite/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.target/s390/vector/vec-scalar-cmp-1.c: Adjust for the
      	comparison instructions used from now on.
      
      From-SVN: r246450
      Andreas Krebbel committed
    • S/390: Move and rename vector check. · b5de6e84
      Move the target support routine for the vector facility to the common
      code file.  This is required to enable the generic vectorization tests
      on S/390.  While doing this the too generic name for the check (vector)
      is changed to s390_vx.  The renaming required to modify all the
      testcases currently using that check.
      
      gcc/testsuite/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.target/s390/s390.exp (check_effective_target_vector):
      	Include target-supports.exp and move target_vector check routine
      	...
      	* lib/target-supports.exp (check_effective_target_s390_vx): ... to
      	here and rename it.
      	* gcc.target/s390/htm-builtins-z13-1.c: Rename effective target
      	check from vector to s390_vx.
      	* gcc.target/s390/target-attribute/tpragma-struct-vx-1.c: Likewise.
      	* gcc.target/s390/target-attribute/tpragma-struct-vx-2.c: Likewise.
      	* gcc.target/s390/vector/stpcpy-1.c: Likewise.
      	* gcc.target/s390/vector/vec-abi-vararg-1.c: Likewise.
      	* gcc.target/s390/vector/vec-clobber-1.c: Likewise.
      	* gcc.target/s390/vector/vec-genbytemask-1.c: Likewise.
      	* gcc.target/s390/vector/vec-genmask-1.c: Likewise.
      	* gcc.target/s390/vector/vec-nopeel-1.c: Likewise.
      	* gcc.target/s390/vector/vec-vrepi-1.c: Likewise.
      
      From-SVN: r246449
      Andreas Krebbel committed
    • S/390: movdf improvements · 590961cf
      This patch add the vector load element from immediate instruction to the
      movdf/dd pattern for loading a FP zero and it removes the vector
      instructions from the mov<mode>_64 pattern. These were pointless in
      there because z13 support implies DFP support so these instructions will
      always be matched in the mov<mode>_64dfp pattern instead.
      
      Regression tested on s390x
      
      gcc/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
      	FP zero.
      	("*mov<mode>_64" DD_DF): Remove the vector instructions. These
      	will anyway by matched by mov<mode>_64dfp.
      
      From-SVN: r246448
      Andreas Krebbel committed
    • S/390: movsf/sd pattern fixes. · 298f4647
      The SD/SFmode move pattern used a wrong mnemonic for vector load
      element.
      On the vector load element instruction was an operand missing.
      
      Regression tested on s390x.
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
      	vlef/vstef.  Add missing operand to vleif.
      
      From-SVN: r246447
      Andreas Krebbel committed
    • S/390: vec_init improvements · a602f985
      This enables the vec_init pattern also for V4SF, V1TI, and V1TF.
      
      gcc/testsuite/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.target/s390/vector/vec-init-2.c: New test.
      
      gcc/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.c (s390_expand_vec_init): Enable vector load
      	pair for all vector types with 64 bit elements.
      	* config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
      	* config/s390/vector.md (V_HW_64): ... here.
      	(V_128_NOSINGLE): New mode iterator.
      	("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
      	("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
      	("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
      	("*vec_load_pairv2di"): Change to ...
      	("*vec_load_pair<mode>"): ... this one.
      
      From-SVN: r246446
      Andreas Krebbel committed
    • S/390: Improve support of 128 bit vectors in GPRs · 9d605427
      This patch improves the handling of 128 bit vectors residing in GPRs
      by adding more alternatives to the move pattern.
      
      Regression tested on s390x.
      
      gcc/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/constraints.md: Add comments.
      	(jKK): Reject element sizes > 8 bytes.
      	* config/s390/s390.c (s390_split_ok_p): Enable splitting also for
      	s_operands.
      	* config/s390/s390.md: Add the s_operand checks formerly in
      	s390_split_ok_p to various splitters where they are still
      	required.
      	* config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
      	for 128 bit vectors.  Plus two splitters.
      
      From-SVN: r246445
      Andreas Krebbel committed
    • S/390: Rename cpu facility vec to vx. · 285363a1
      gcc/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.md: Rename the cpu facilty vec to vx throughout
      	the file.
      
      From-SVN: r246444
      Andreas Krebbel committed
    • S/390: PR79904: Disallow reg + sym_ref literal pool addresses. · 085db63d
      We accept reg + sym_ref as valid address if sym_ref is a literal pool
      reference knowing that it will be rewritten as r13 + reg + offset.
      However, annotate_constant_pool_refs was never able to handle that.
      
      With the patch only single sym_refs are accepted.
      
      Regression tested on s390x.
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	PR target/79904
      	* config/s390/s390.c (s390_decompose_address): Reject reg +
      	sym_ref literal pool references.
      
      gcc/testsuite/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.dg/ubsan/pr79904-2.c: New test.
      
      From-SVN: r246443
      Andreas Krebbel committed
    • S/390: PR79893: Add diagnostics vec_load_bndry builtin. · dc4f29bc
      The boundary argument of the vec_load_bndry builtin needs to be
      rewritten.  At that point it must be constant already.  The current
      diagnostics in s390_expand_builtins is too late for this.  The patch
      adds an additional check for that builtin which will be triggered
      already during preprocessing.
      
      Regression tested on s390x.
      
      gcc/testsuite/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	PR target/79893
      	* gcc.target/s390/zvector/pr79893.c: New test.
      
      gcc/ChangeLog:
      
      2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	PR target/79893
      	* config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
      	error if the boundary argument is not constant.
      
      From-SVN: r246442
      Andreas Krebbel committed
    • re PR rtl-optimization/80112 (ICE in doloop_condition_get at loop-doloop.c:158) · 56010684
      	PR rtl-optimization/80112
      	* loop-doloop.c (doloop_condition_get): Don't check condition
      	if cmp isn't SET with IF_THEN_ELSE src.
      
      	* gcc.dg/pr80112.c: New test.
      
      From-SVN: r246441
      Jakub Jelinek committed
    • Adjust c-c++-common/Wimplicit-fallthrough-7.c etc. line numbers · f0d7b52d
      	* c-c++-common/Wimplicit-fallthrough-7.c: Adjust dg-warning
      	etc. line numbers.
      	* gcc.dg/Walloca-1.c: Likewise.
      	* gcc.dg/Walloca-2.c: Likewise.
      	* gcc.dg/Wvla-larger-than-2.c: Likewise.
      
      From-SVN: r246440
      Rainer Orth committed