1. 04 Apr, 2019 2 commits
    • DF usage in loop-invariant.c (PR46590) · 6541e97d
      - df_live is already present at -O2, so we only need to add it and
        mark all blocks dirty for -O
      
      - df_process_deferred_rescans should be enough to force a rescan of
        blocks affected by moving invariants, but calling it in find_defs
        means that we don't do any rescans for the final loop
      
      2019-04-04  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	PR rtl-optimization/46590
      	* loop-invariant.c (find_defs): Move df_remove_problem and
      	df_process_deferred_rescans to move_invariants.
      	Move df_live_add_problem and df_live_set_all_dirty calls
      	to move_invariants.
      	(move_invariants): Likewise.
      	(move_loop_invariants): Likewise, making the df_live calls
      	conditional on -O.  Remove the problem again if we added it
      	locally.
      
      From-SVN: r270142
      Richard Sandiford committed
    • Daily bump. · 325d3f46
      From-SVN: r270141
      GCC Administrator committed
  2. 03 Apr, 2019 21 commits
  3. 02 Apr, 2019 17 commits
    • * gcc.target/visium/bit_shift.c: xfail. · 5e4ea79d
      From-SVN: r270105
      Jeff Law committed
    • re PR target/89902 (ICE: in extract_insn, at recog.c:2310: unrecognizable insn with -mavx512bitalg) · f401d623
      	PR target/89902
      	PR target/89903
      	* config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
      	Return false for variable DImode shifts.
      	(dimode_scalar_chain::compute_convert_gain): Do not handle
      	register count operand in variable DImode shifts.
      	(dimode_scalar_chain::make_vector_copies): Remove support to copy
      	count argument of a variable shift instruction to a vector register.
      	(dimode_scalar_chain::convert_reg): Remove support to convert
      	count argument of a variable shift instruction.
      
      testsuite/ChangeLog:
      
      	PR target/89902
      	PR target/89903
      	* gcc.target/i386/pr70799-4.c: Remove.
      	* gcc.target/i386/pr70799-5.c: Remove.
      	* gcc.target/i386/pr89902.c: New test.
      	* gcc.target/i386/pr89903.c: Ditto.
      
      From-SVN: r270102
      Uros Bizjak committed
    • sel-sched: skip outer loop in get_all_loop_exits (PR 84206) · 6fb8055e
      2019-04-02  Andrey Belevantsev  <abel@ispras.ru>
      
      	PR rtl-optimization/84206
      	* sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
      	iterating over loop headers.
      
      	* gcc.dg/pr84206.c: New test.
      
      From-SVN: r270096
      Andrey Belevantsev committed
    • sel-sched: fixup reset of first_insn (PR 85876) · 7dc69ec0
      2019-04-02  Andrey Belevantsev  <abel@ispras.ru>
      
      	PR rtl-optimization/85876
      	* sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
      	beyond the original fence.
      
      	* gcc.dg/pr85876.c: New test.
      
      From-SVN: r270095
      Andrey Belevantsev committed
    • Obsolete Cell Broadband Engine SPU target support · 43f47cdf
      gcc/ChangeLog:
      2019-04-02  Ulrich Weigand  <uweigand@de.ibm.com>
      
              * config.gcc: Mark spu* targets as deprecated/obsolete.
      
      From-SVN: r270092
      Ulrich Weigand committed
    • S/390: arch13: vector float-int conversion builtins · 59f78799
      gcc/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/s390-builtin-types.def: New builtin function type
      	definitions. Remove unused types.
      	* config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
      	(s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
      	(s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
      	overloaded builtins.
      	(s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
      	(s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
      	* config/s390/vecintrin.h (vec_float): New builtin macro definition.
      	(vec_double, vec_signed, vec_unsigned): Define to use the new
      	overloaded builtins.
      	* config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
      	Remove expanders.
      
      gcc/testsuite/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.target/s390/zvector/vec-double-compile.c: New test.
      	* gcc.target/s390/zvector/vec-float-compile.c: New test.
      	* gcc.target/s390/zvector/vec-signed-compile.c: New test.
      	* gcc.target/s390/zvector/vec-unsigned-compile.c: New test.
      
      From-SVN: r270091
      Andreas Krebbel committed
    • S/390: arch13: vector string search builtins · 49adc461
      gcc/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/s390-builtin-types.def: New builtin function type
      	definitions.
      	* config/s390/s390-builtins.def (s390_vec_search_string_cc)
      	(s390_vec_search_string_until_zero_cc): New overloaded builtins.
      	(s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
      	(s390_vstrszh, s390_vstrszf): New low-level builtins.
      	* config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
      	constant definitions.
      	* config/s390/vecintrin.h (vec_search_string_cc)
      	(vec_search_string_until_zero_cc): New builtin name definitions.
      	* config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
      	expanders.
      	("vec_vstrs<mode>"): New insn definition.
      
      gcc/testsuite/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.target/s390/zvector/vec-search-string-cc-1.c: New test.
      	* gcc.target/s390/zvector/vec-search-string-cc-compile.c: New test.
      	* gcc.target/s390/zvector/vec-search-string-until-zero-cc-1.c: New test.
      	* gcc.target/s390/zvector/vec-search-string-until-zero-cc-compile.c: New test.
      
      From-SVN: r270090
      Andreas Krebbel committed
    • S/390: arch13: vector shift double by bit builtins · ad7a3e39
      gcc/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/s390-builtin-types.def: Add new builtin function
      	types.
      	* config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
      	New overloaded builtins.
      	(s390_vec_sldb, s390_vec_srdb): New low-level builtins.  and
      	s390_vsrd.
      	* config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
      	(UNSPEC_VEC_SLDBYTE): ... this.
      	(UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
      	* config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
      	definitions.
      	* config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
      	Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
      	("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
      
      gcc/testsuite/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.target/s390/zvector/vec-shift-left-double-by-bit-1.c: New test.
      	* gcc.target/s390/zvector/vec-shift-right-double-by-bit-1.c: New test.
      
      From-SVN: r270089
      Andreas Krebbel committed
    • S/390: arch13: vector load byte reversed element and replicate · 6913111a
      gcc/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
      	New insn definition.
      	* config/s390/vx-builtins.md (V_HW_HSD): Move to ...
      	* config/s390/vector.md (V_HW_HSD): ... here.
      
      gcc/testsuite/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.target/s390/zvector/replicate-bswap-1.c: New test.
      	* gcc.target/s390/zvector/replicate-bswap-2.c: New test.
      
      From-SVN: r270088
      Andreas Krebbel committed
    • testsuite: do not try to add -m32 (PR 89916) · b5e100c5
      	PR testsuite/89916
      	* gcc.dg/pr86928.c: Do not attempt to add -m32.
      
      From-SVN: r270087
      Alexander Monakov committed
    • S/390: arch13: vector load/store byte reversed element for builtins · b112d1c9
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
      	* config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
      	("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
      	("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
      	New insn definitions.
      
      gcc/testsuite/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.target/s390/zvector/bswap-and-replicate-1.c: New test.
      	* gcc.target/s390/zvector/get-element-bswap-1.c: New test.
      	* gcc.target/s390/zvector/get-element-bswap-2.c: New test.
      	* gcc.target/s390/zvector/get-element-bswap-3.c: New test.
      	* gcc.target/s390/zvector/get-element-bswap-4.c: New test.
      	* gcc.target/s390/zvector/set-element-bswap-1.c: New test.
      	* gcc.target/s390/zvector/set-element-bswap-2.c: New test.
      	* gcc.target/s390/zvector/set-element-bswap-3.c: New test.
      
      From-SVN: r270086
      Andreas Krebbel committed
    • S/390: arch13: vec_reve element order reversal builtins · 3278804e
      gcc/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/s390-builtin-types.def: Add new builtin function type.
      	* config/s390/s390-builtins.def: Add overloaded builtin
      	s390_vec_reve and low-level builtins for s390_vler and s390_vster.
      	* config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
      	* config/s390/vecintrin.h (vec_reve): New builtin name definition.
      	* config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
      	("eltswap<mode>"): New expander.
      	("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
      	insn definitions.
      
      gcc/testsuite/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.target/s390/zvector/vec-reve-load-byte-z14.c: New test.
      	* gcc.target/s390/zvector/vec-reve-load-byte.c: New test.
      	* gcc.target/s390/zvector/vec-reve-load-halfword-z14.c: New test.
      	* gcc.target/s390/zvector/vec-reve-load-halfword.c: New test.
      	* gcc.target/s390/zvector/vec-reve-store-byte-z14.c: New test.
      	* gcc.target/s390/zvector/vec-reve-store-byte.c: New test.
      
      From-SVN: r270085
      Andreas Krebbel committed
    • S/390: arch13: vec_revb vector byte swap builtin · 1b3bbaf6
      gcc/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/s390-builtin-types.def: Add new builtin function types.
      	* config/s390/s390-builtins.def: Add overloaded builtin
      	s390_vec_revb. Add low-level builtins for vlbr and vstbr
      	instructions.
      	* config/s390/vecintrin.h (vec_revb): New builtin name definition.
      	* config/s390/vector.md (VT_HW_HSDT): New mode iterator.
      	("bswap<mode>"): New expander.
      	("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
      
      gcc/testsuite/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.target/s390/zvector/vec-revb-load-double-z14.c: New test.
      	* gcc.target/s390/zvector/vec-revb-load-double.c: New test.
      	* gcc.target/s390/zvector/vec-revb-store-double-z14.c: New test.
      	* gcc.target/s390/zvector/vec-revb-store-double.c: New test.
      
      From-SVN: r270084
      Andreas Krebbel committed
    • S/390: arch13: New vector builtins - preparation · e633a4f2
      gcc/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
      	* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
      	vector builtin version number in __VEC__.
      
      From-SVN: r270083
      Andreas Krebbel committed
    • S/390: arch13: Support 32 bit fp-int scalar converts · 026bfe89
      gcc/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
      	iterators.
      	(SFSI): New mode attribute.
      	("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
      	("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
      	rename to ...
      	("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
      	("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
      	("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
      	("floatsi<mode>2"): Add wcefb instruction.
      
      From-SVN: r270082
      Andreas Krebbel committed
    • S/390: arch13: Support 32 bit fp-int vector converts · 4156b056
      gcc/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/s390.md ("xde"): Extend mode attribute to vector
      	types.
      	* config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
      	mode iterators.
      	("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
      	("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
      	support 32 bit fp-int conversions. Rename to ...
      	("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
      	("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
      	("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
      	("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
      	... to these.
      
      gcc/testsuite/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.target/s390/arch13/fp-signedint-convert-1.c: New test.
      	* gcc.target/s390/arch13/fp-unsignedint-convert-1.c: New test.
      
      From-SVN: r270081
      Andreas Krebbel committed
    • S/390: arch13: Add support for new select instruction · 618eef38
      Compared to the load on condition instructions we already have the new
      select instruction allows to have a THEN and and ELSE source operand -
      but only for register to register loads.
      
      gcc/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
      	if-then-else constructs if we can use the select instruction.
      	* config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
      
      gcc/testsuite/ChangeLog:
      
      2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.target/s390/arch13/sel-1.c: New test.
      
      From-SVN: r270080
      Andreas Krebbel committed