S/390: movdf improvements
[gcc.git] / gcc / ChangeLog
index 5259dce80a509b98afa9c695b96a614798897e46..bf69f7a4d8dd3c77850c9212ad2663963fe16176 100644 (file)
@@ -1,5 +1,120 @@
+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.
+
+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.
+
+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.
+
+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.
+
+2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
+       the file.
+
+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.
+
+2017-03-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/80112
+       * loop-doloop.c (doloop_condition_get): Don't check condition
+       if cmp isn't SET with IF_THEN_ELSE src.
+
+2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+       PR tree-optimization/80158
+       * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
+       replacing a candidate statement, also replace it for the
+       candidate's alternate interpretation.
+       (replace_rhs_if_not_dup): Likewise.
+       (replace_one_candidate): Likewise.
+
+2017-03-24  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/80167
+       * graphite-isl-ast-to-gimple.c
+       (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
+       properly.
+       (translate_isl_ast_to_gimple::get_rename): Likewise.
+
+2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+
+       * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
+       handling of certain combinations of target options, including the
+       combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
+       -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
+
+2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       PR target/71436
+       * config/arm/arm.md (*load_multiple): Add reload_completed to
+       matching condition.
+
+2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+            Richard Biener  <rguenth@suse.com>
+
+       PR tree-optimization/79908
+       PR tree-optimization/80136
+       * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
+       been cast away, gimplify_and_add suffices.
+
+2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de> 
+
+       * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
+
+2017-03-23  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/80032
+       * gimplify.c (gimple_push_cleanup): Forced unconditional
+       cleanups still have to go to the conditional_cleanups
+       sequence.
+
 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
 
+       PR tree-optimization/80072
+       * tree-ssa-reassoc.c (struct operand_entry): Change id field type
+       to unsigned int.
+       (next_operand_entry_id): Change type to unsigned int.
+       (sort_by_operand_rank): Make sure to return the right return value
+       even if unsigned fields are bigger than INT_MAX.
+       (struct oecount): Change cnt and id type to unsigned int.
+       (oecount_hasher::equal): Formatting fix.
+       (oecount_cmp): Make sure to return the right return value
+       even if unsigned fields are bigger than INT_MAX.
+       (undistribute_ops_list): Change next_oecount_id type to unsigned int.
+
        PR c++/80129
        * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
        TREE_READONLY on result if writing it more than once.