Check whether a vector of QIs can store all indices
[platform/upstream/gcc.git] / gcc / ChangeLog
index d3c4063..c7091a9 100644 (file)
@@ -1,3 +1,677 @@
+2018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * optabs-query.c (can_vec_perm_var_p): Check whether lowering
+       to qimode could truncate the indices.
+       * optabs.c (expand_vec_perm_var): Likewise.
+
+2018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * Makefile.in (OBJS): Add vec-perm-indices.o.
+       * vec-perm-indices.h: New file.
+       * vec-perm-indices.c: Likewise.
+       * target.h (vec_perm_indices): Replace with a forward class
+       declaration.
+       (auto_vec_perm_indices): Move to vec-perm-indices.h.
+       * optabs.h: Include vec-perm-indices.h.
+       (expand_vec_perm): Delete.
+       (selector_fits_mode_p, expand_vec_perm_var): Declare.
+       (expand_vec_perm_const): Declare.
+       * target.def (vec_perm_const_ok): Replace with...
+       (vec_perm_const): ...this new hook.
+       * doc/tm.texi.in (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Replace with...
+       (TARGET_VECTORIZE_VEC_PERM_CONST): ...this new hook.
+       * doc/tm.texi: Regenerate.
+       * optabs.def (vec_perm_const): Delete.
+       * doc/md.texi (vec_perm_const): Likewise.
+       (vec_perm): Refer to TARGET_VECTORIZE_VEC_PERM_CONST.
+       * expr.c (expand_expr_real_2): Use expand_vec_perm_const rather than
+       expand_vec_perm for constant permutation vectors.  Assert that
+       the mode of variable permutation vectors is the integer equivalent
+       of the mode that is being permuted.
+       * optabs-query.h (selector_fits_mode_p): Declare.
+       * optabs-query.c: Include vec-perm-indices.h.
+       (selector_fits_mode_p): New function.
+       (can_vec_perm_const_p): Check whether targetm.vectorize.vec_perm_const
+       is defined, instead of checking whether the vec_perm_const_optab
+       exists.  Use targetm.vectorize.vec_perm_const instead of
+       targetm.vectorize.vec_perm_const_ok.  Check whether the indices
+       fit in the vector mode before using a variable permute.
+       * optabs.c (shift_amt_for_vec_perm_mask): Take a mode and a
+       vec_perm_indices instead of an rtx.
+       (expand_vec_perm): Replace with...
+       (expand_vec_perm_const): ...this new function.  Take the selector
+       as a vec_perm_indices rather than an rtx.  Also take the mode of
+       the selector.  Update call to shift_amt_for_vec_perm_mask.
+       Use targetm.vectorize.vec_perm_const instead of vec_perm_const_optab.
+       Use vec_perm_indices::new_expanded_vector to expand the original
+       selector into bytes.  Check whether the indices fit in the vector
+       mode before using a variable permute.
+       (expand_vec_perm_var): Make global.
+       (expand_mult_highpart): Use expand_vec_perm_const.
+       * fold-const.c: Includes vec-perm-indices.h.
+       * tree-ssa-forwprop.c: Likewise.
+       * tree-vect-data-refs.c: Likewise.
+       * tree-vect-generic.c: Likewise.
+       * tree-vect-loop.c: Likewise.
+       * tree-vect-slp.c: Likewise.
+       * tree-vect-stmts.c: Likewise.
+       * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm_const):
+       Delete.
+       * config/aarch64/aarch64-simd.md (vec_perm_const<mode>): Delete.
+       * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const)
+       (aarch64_vectorize_vec_perm_const_ok): Fuse into...
+       (aarch64_vectorize_vec_perm_const): ...this new function.
+       (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete.
+       (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
+       * config/arm/arm-protos.h (arm_expand_vec_perm_const): Delete.
+       * config/arm/vec-common.md (vec_perm_const<mode>): Delete.
+       * config/arm/arm.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete.
+       (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
+       (arm_expand_vec_perm_const, arm_vectorize_vec_perm_const_ok): Merge
+       into...
+       (arm_vectorize_vec_perm_const): ...this new function.  Explicitly
+       check for NEON modes.
+       * config/i386/i386-protos.h (ix86_expand_vec_perm_const): Delete.
+       * config/i386/sse.md (VEC_PERM_CONST, vec_perm_const<mode>): Delete.
+       * config/i386/i386.c (ix86_expand_vec_perm_const_1): Update comment.
+       (ix86_expand_vec_perm_const, ix86_vectorize_vec_perm_const_ok): Merge
+       into...
+       (ix86_vectorize_vec_perm_const): ...this new function.  Incorporate
+       the old VEC_PERM_CONST conditions.
+       * config/ia64/ia64-protos.h (ia64_expand_vec_perm_const): Delete.
+       * config/ia64/vect.md (vec_perm_const<mode>): Delete.
+       * config/ia64/ia64.c (ia64_expand_vec_perm_const)
+       (ia64_vectorize_vec_perm_const_ok): Merge into...
+       (ia64_vectorize_vec_perm_const): ...this new function.
+       * config/mips/loongson.md (vec_perm_const<mode>): Delete.
+       * config/mips/mips-msa.md (vec_perm_const<mode>): Delete.
+       * config/mips/mips-ps-3d.md (vec_perm_constv2sf): Delete.
+       * config/mips/mips-protos.h (mips_expand_vec_perm_const): Delete.
+       * config/mips/mips.c (mips_expand_vec_perm_const)
+       (mips_vectorize_vec_perm_const_ok): Merge into...
+       (mips_vectorize_vec_perm_const): ...this new function.
+       * config/powerpcspe/altivec.md (vec_perm_constv16qi): Delete.
+       * config/powerpcspe/paired.md (vec_perm_constv2sf): Delete.
+       * config/powerpcspe/spe.md (vec_perm_constv2si): Delete.
+       * config/powerpcspe/vsx.md (vec_perm_const<mode>): Delete.
+       * config/powerpcspe/powerpcspe-protos.h (altivec_expand_vec_perm_const)
+       (rs6000_expand_vec_perm_const): Delete.
+       * config/powerpcspe/powerpcspe.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK):
+       Delete.
+       (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
+       (altivec_expand_vec_perm_const_le): Take each operand individually.
+       Operate on constant selectors rather than rtxes.
+       (altivec_expand_vec_perm_const): Likewise.  Update call to
+       altivec_expand_vec_perm_const_le.
+       (rs6000_expand_vec_perm_const): Delete.
+       (rs6000_vectorize_vec_perm_const_ok): Delete.
+       (rs6000_vectorize_vec_perm_const): New function.
+       (rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of
+       an element count and rtx array.
+       (rs6000_expand_extract_even): Update call accordingly.
+       (rs6000_expand_interleave): Likewise.
+       * config/rs6000/altivec.md (vec_perm_constv16qi): Delete.
+       * config/rs6000/paired.md (vec_perm_constv2sf): Delete.
+       * config/rs6000/vsx.md (vec_perm_const<mode>): Delete.
+       * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_const)
+       (rs6000_expand_vec_perm_const): Delete.
+       * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete.
+       (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
+       (altivec_expand_vec_perm_const_le): Take each operand individually.
+       Operate on constant selectors rather than rtxes.
+       (altivec_expand_vec_perm_const): Likewise.  Update call to
+       altivec_expand_vec_perm_const_le.
+       (rs6000_expand_vec_perm_const): Delete.
+       (rs6000_vectorize_vec_perm_const_ok): Delete.
+       (rs6000_vectorize_vec_perm_const): New function.  Remove stray
+       reference to the SPE evmerge intructions.
+       (rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of
+       an element count and rtx array.
+       (rs6000_expand_extract_even): Update call accordingly.
+       (rs6000_expand_interleave): Likewise.
+       * config/sparc/sparc.md (vec_perm_constv8qi): Delete in favor of...
+       * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): ...this
+       new function.
+       (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
+
+2018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * optabs.c (expand_vec_perm_1): Assert that SEL has an integer
+       vector mode and that that mode matches the mode of the data
+       being permuted.
+       (expand_vec_perm): Split handling of non-CONST_VECTOR selectors
+       out into expand_vec_perm_var.  Do all CONST_VECTOR handling here,
+       directly using expand_vec_perm_1 when forcing selectors into
+       registers.
+       (expand_vec_perm_var): New function, split out from expand_vec_perm.
+
+2018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * optabs-query.h (can_vec_perm_p): Delete.
+       (can_vec_perm_var_p, can_vec_perm_const_p): Declare.
+       * optabs-query.c (can_vec_perm_p): Split into...
+       (can_vec_perm_var_p, can_vec_perm_const_p): ...these two functions.
+       (can_mult_highpart_p): Use can_vec_perm_const_p to test whether a
+       particular selector is valid.
+       * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
+       * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
+       (vect_grouped_load_supported): Likewise.
+       (vect_shift_permute_load_chain): Likewise.
+       * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
+       (vect_transform_slp_perm_load): Likewise.
+       * tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
+       (vectorizable_bswap): Likewise.
+       (vect_gen_perm_mask_checked): Likewise.
+       * fold-const.c (fold_ternary_loc): Likewise.  Don't take
+       implementations of variable permutation vectors into account
+       when deciding which selector to use.
+       * tree-vect-loop.c (have_whole_vector_shift): Don't check whether
+       vec_perm_const_optab is supported; instead use can_vec_perm_const_p
+       with a false third argument.
+       * tree-vect-generic.c (lower_vec_perm): Use can_vec_perm_const_p
+       to test whether the constant selector is valid and can_vec_perm_var_p
+       to test whether a variable selector is valid.
+
+2018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * optabs-query.h (can_vec_perm_p): Take a const vec_perm_indices *.
+       * optabs-query.c (can_vec_perm_p): Likewise.
+       * fold-const.c (fold_vec_perm): Take a const vec_perm_indices &
+       instead of vec_perm_indices.
+       * tree-vectorizer.h (vect_gen_perm_mask_any): Likewise,
+       (vect_gen_perm_mask_checked): Likewise,
+       * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise,
+       (vect_gen_perm_mask_checked): Likewise,
+
+2018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * optabs-query.h (qimode_for_vec_perm): Declare.
+       * optabs-query.c (can_vec_perm_p): Split out qimode search to...
+       (qimode_for_vec_perm): ...this new function.
+       * optabs.c (expand_vec_perm): Use qimode_for_vec_perm.
+
+2018-01-02  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
+
+       * rtlanal.c (canonicalize_condition): Return 0 if final rtx
+       does not have a conditional at the top.
+
+2018-01-02  Richard Biener  <rguenther@suse.de>
+
+       * ipa-inline.c (big_speedup_p): Fix expression.
+
+2018-01-02  Jan Hubicka  <hubicka@ucw.cz>
+
+       PR target/81616
+       * config/i386/x86-tune-costs.h: Increase cost of integer load costs
+       for generic 4->6.
+
+2018-01-02  Jan Hubicka  <hubicka@ucw.cz>
+
+       PR target/81616
+       Generic tuning.
+       * x86-tune-costs.h (generic_cost): Reduce cost of FDIV 20->17,
+       cost of sqrt 20->14, DIVSS 18->13, DIVSD 32->17, SQRtSS 30->14
+       and SQRTsD 58->18, cond_not_taken_branch_cost. 2->1. Increase
+       cond_taken_branch_cost 3->4.
+
+2018-01-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/83581
+       * tree-loop-distribution.c (pass_loop_distribution::execute): Return
+       TODO_cleanup_cfg if any changes have been made.
+
+       PR middle-end/83608
+       * expr.c (store_expr_with_bounds): Use simplify_gen_subreg instead of
+       convert_modes if target mode has the right side, but different mode
+       class.
+
+       PR middle-end/83609
+       * expr.c (expand_assignment): Fix up a typo in simplify_gen_subreg
+       last argument when extracting from CONCAT.  If either from_real or
+       from_imag is NULL, use expansion through memory.  If result is not
+       a CONCAT and simplify_gen_subreg fails, try to simplify_gen_subreg
+       the parts directly to inner mode, if even that fails, use expansion
+       through memory.
+
+       PR middle-end/83623
+       * expmed.c (expand_shift_1): For 2-byte rotates by BITS_PER_UNIT,
+       check for bswap in mode rather than HImode and use that in expand_unop
+       too.
+
+2017-12-31  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/83536
+       * config/i386/i386.c (ix86_attribute_table): Remove excess
+       initializer for "shared" attribute.
+
+2017-12-30  Tom de Vries  <tom@codesourcery.com>
+
+       PR libgomp/83046
+       * omp-expand.c (expand_omp_target): If in_lto_p, mark offload_funcs with
+       DECL_PRESERVE_P.
+       * lto-streamer-out.c (prune_offload_funcs): New function.  Remove
+       offload_funcs entries that no longer have a corresponding cgraph_node.
+       Mark the remaining ones as DECL_PRESERVE_P.
+       (output_lto): Call prune_offload_funcs.
+
+2017-12-30  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
+       vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>,
+       vpshrd_<mode><mask_name>, vpshld_<mode><mask_name>,
+       vpshrdv_<mode>, vpshrdv_<mode>_mask, vpshrdv_<mode>_maskz,
+       vpshrdv_<mode>_maskz_1, vpshldv_<mode>, vpshldv_<mode>_mask,
+       vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1, vpdpbusd_<mode>,
+       vpdpbusd_<mode>_mask, vpdpbusd_<mode>_maskz, vpdpbusd_<mode>_maskz_1,
+       vpdpbusds_<mode>, vpdpbusds_<mode>_mask, vpdpbusds_<mode>_maskz,
+       vpdpbusds_<mode>_maskz_1, vpdpwssd_<mode>, vpdpwssd_<mode>_mask,
+       vpdpwssd_<mode>_maskz, vpdpwssd_<mode>_maskz_1, vpdpwssds_<mode>,
+       vpdpwssds_<mode>_mask, vpdpwssds_<mode>_maskz,
+       vpdpwssds_<mode>_maskz_1, vaesdec_<mode>, vaesdeclast_<mode>,
+       vaesenc_<mode>, vpclmulqdq_<mode>,
+       avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Formatting fixes.
+
+2017-12-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * builtins.def: (_Float<N> and _Float<N>X BUILT_IN_CEIL): Add
+       _Float<N> and _Float<N>X variants for rounding built-in
+       functions.
+       (_Float<N> and _Float<N>X BUILT_IN_FLOOR): Likewise.
+       (_Float<N> and _Float<N>X BUILT_IN_NEARBYINT): Likewise.
+       (_Float<N> and _Float<N>X BUILT_IN_RINT): Likewise.
+       (_Float<N> and _Float<N>X BUILT_IN_ROUND): Likewise.
+       (_Float<N> and _Float<N>X BUILT_IN_TRUNC): Likewise.
+       * builtins.c (mathfn_built_in_2): Likewise.
+       * internal-fn.def (CEIL): Likewise.
+       (FLOOR): Likewise.
+       (NEARBYINT): Likewise.
+       (RINT): Likewise.
+       (ROUND): Likewise.
+       (TRUNC): Likewise.
+       * convert.c (convert_to_integer_1): Likewise.
+       * fold-const.c (tree_call_nonnegative_warnv_p): Likewise.
+       (integer_valued_real_call_p): Likewise.
+       * fold-const-call.c (fold_const_call_ss): Likewise.
+       * gencfn-macros.c (print_case_cfn): Change CFN and operator
+       printers to take a const char * suffix instead of a bool.
+       (print_define_operator_list): Likewise.
+       (fltall_suffixes): New list of suffixes, that include the
+       traditional suffixes as well as all of the _Float<N> and
+       _Float<N>X suffixes.
+       (main): For _Float<N> and _Float<N>X functions, emit both
+       <name>_FN and <name>_ALL variants.  The <macro>_FN variant only
+       has the _Float<N> and _Float<N>X case names or operators.  The
+       <name>_ALL variant has both the traditional and the
+       _Float<N>/_Float<N>X case names or operators.
+       * match.pd (COPYSIGN optimizations): Provide optimizations for
+       _Float<N> and _Float<N>X types where possible.
+       (MIN/MAX optimizations): Likewise.
+       (sqrt optimizations): Likewise.
+       (rounding optimizations): Likewise.
+
+2017-12-28  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * config/powerpcspe/powerpcspe.md (ieee_128bit_negative_zero): Use
+       gen_int_mode rather than GEN_INT.
+       * config/rs6000/rs6000.md (ieee_128bit_negative_zero): Likewise.
+
+2017-12-28  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * emit-rtl.c (gen_const_vec_series): Use valid_for_const_vector_p
+       instead of CONSTANT_P.
+       (gen_vec_series): Likewise.
+       * simplify-rtx.c (simplify_binary_operation_1): Likewise.
+
+2017-12-28  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * config/m68k/m68k.md (ashrdi3_const1, lshrdi3_const1): Add
+       CC_STATUS_INIT.
+
+2017-12-27  Kugan Vivekanandarajah  <kuganv@linaro.org>
+
+       * config/aarch64/aarch64-simd.md (aarch64_ld1x2<VQ:mode>): New.
+       (aarch64_ld1x2<VDC:mode>): Likewise.
+       (aarch64_simd_ld1<mode>_x2): Likewise.
+       (aarch64_simd_ld1<mode>_x2): Likewise.
+       * config/aarch64/arm_neon.h (vld1_u8_x2): New.
+       (vld1_s8_x2): Likewise.
+       (vld1_u16_x2): Likewise.
+       (vld1_s16_x2): Likewise.
+       (vld1_u32_x2): Likewise.
+       (vld1_s32_x2): Likewise.
+       (vld1_u64_x2): Likewise.
+       (vld1_s64_x2): Likewise.
+       (vld1_f16_x2): Likewise.
+       (vld1_f32_x2): Likewise.
+       (vld1_f64_x2): Likewise.
+       (vld1_p8_x2): Likewise.
+       (vld1_p16_x2): Likewise.
+       (vld1_p64_x2): Likewise.
+       (vld1q_u8_x2): Likewise.
+       (vld1q_s8_x2): Likewise.
+       (vld1q_u16_x2): Likewise.
+       (vld1q_s16_x2): Likewise.
+       (vld1q_u32_x2): Likewise.
+       (vld1q_s32_x2): Likewise.
+       (vld1q_u64_x2): Likewise.
+       (vld1q_s64_x2): Likewise.
+       (vld1q_f16_x2): Likewise.
+       (vld1q_f32_x2): Likewise.
+       (vld1q_f64_x2): Likewise.
+       (vld1q_p8_x2): Likewise.
+       (vld1q_p16_x2): Likewise.
+       (vld1q_p64_x2): Likewise.
+
+2017-12-27  Martin Liska  <mliska@suse.cz>
+
+       PR tree-optimization/83552
+       * tree-ssa-strlen.c (fold_strstr_to_strncmp): Assign result
+       of get_string_lenth to a SSA_NAME if not a GIMPLE value.
+
+2017-12-27  Tom de Vries  <tom@codesourcery.com>
+
+       * config/nvptx/nvptx.c (nvptx_option_override): Disable
+       -gstatement-frontiers.
+
+2017-12-26  Alexander Monakov  <amonakov@ispras.ru>
+
+       PR rtl-optimization/83513
+       * sel-sched.c (sel_rank_for_schedule): Order by non-zero usefulness
+       before priority comparison.
+
+2017-12-25  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/83488
+       * config/i386/i386.opt (-mavx512vpopcntdq, -mmavx512bitalg): Move from
+       ix86_isa_flags2 to ix86_isa_flags.
+       * config/i386/i386-c.c (ix86_target_macros_internal): Test
+       OPTION_MASK_ISA_AVX512BITALG and OPTION_MASK_ISA_AVX512VPOPCNTDQ in
+       isa_flags rather than isa_flags2.
+       * config/i386/i386.c (ix86_target_string): Move -mavx512vpopcntdq
+       and -mavx512bitalg from isa2_opts to isa_opts.
+       (ix86_option_override_internal): Test OPTION_MASK_ISA_AVX512VPOPCNTDQ
+       in x_ix86_isa_flags_explicit rather than x_ix86_isa_flags2_explicit
+       and set it in x_ix86_isa_flags rather than x_ix86_isa_flags2.
+       Formatting fixes.
+       (def_builtin): Treat OPTION_MASK_ISA_AVX512BW or
+       OPTION_MASK_ISA_AVX512F ored with another option similarly to
+       OPTION_MASK_ISA_AVX512VL.  Even for OPTION_MASK_ISA_AVX512VL don't
+       clear it if mask is just OPTION_MASK_ISA_AVX512VL itself.
+       (ix86_expand_builtin): Don't handle OPTION_MASK_ISA_GFNI and
+       OPTION_MASK_ISA_VPCLMULQDQ specially, instead handle
+       OPTION_MASK_ISA_AVX512BW and OPTION_MASK_ISA_AVX512F that way.
+       * config/i386/i386-builtin.def: Move AVX512VPOPCNTDQ and AVX512BITALG
+       builtins from bdesc_args2 to bdesc_args section.
+       (__builtin_ia32_compressstoreuqi512_mask,
+       __builtin_ia32_compressstoreuhi512_mask,
+       __builtin_ia32_compressstoreuqi256_mask,
+       __builtin_ia32_expandloadqi512_mask,
+       __builtin_ia32_expandloadqi512_maskz,
+       __builtin_ia32_expandloadhi512_mask,
+       __builtin_ia32_expandloadhi512_maskz,
+       __builtin_ia32_compressqi512_mask, __builtin_ia32_compresshi512_mask,
+       __builtin_ia32_compressqi256_mask, __builtin_ia32_expandqi512_mask,
+       __builtin_ia32_expandqi512_maskz, __builtin_ia32_expandhi512_mask,
+       __builtin_ia32_expandhi512_maskz, __builtin_ia32_expandqi256_mask,
+       __builtin_ia32_expandqi256_maskz, __builtin_ia32_vpshrd_v32hi_mask,
+       __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshrdv_v32hi_mask,
+       __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshldv_v32hi_mask,
+       __builtin_ia32_vpshldv_v32hi_maskz,
+       __builtin_ia32_vpopcountb_v64qi_mask,
+       __builtin_ia32_vpopcountw_v32hi_mask,
+       __builtin_ia32_vpshufbitqmb512_mask,
+       __builtin_ia32_vpshufbitqmb256_mask): Add
+       " | OPTION_MASK_ISA_AVX512BW".
+       (__builtin_ia32_expandloadqi256_mask,
+       __builtin_ia32_expandloadqi256_maskz,
+       __builtin_ia32_vpopcountb_v32qi_mask): Add
+       " | OPTION_MASK_ISA_AVX512VL | OPTION_MASK_ISA_AVX512BW".
+       (__builtin_ia32_expandloadhi256_mask,
+       __builtin_ia32_expandloadhi256_maskz,
+       __builtin_ia32_expandloadqi128_mask,
+       __builtin_ia32_expandloadqi128_maskz,
+       __builtin_ia32_expandloadhi128_mask,
+       __builtin_ia32_expandloadhi128_maskz,
+       __builtin_ia32_vpshrd_v16hi, __builtin_ia32_vpshrd_v16hi_mask,
+       __builtin_ia32_vpshrd_v8hi, __builtin_ia32_vpshrd_v8hi_mask,
+       __builtin_ia32_vpshrd_v8si, __builtin_ia32_vpshrd_v8si_mask,
+       __builtin_ia32_vpshrd_v4si, __builtin_ia32_vpshrd_v4si_mask,
+       __builtin_ia32_vpshrd_v4di, __builtin_ia32_vpshrd_v4di_mask,
+       __builtin_ia32_vpshrd_v2di, __builtin_ia32_vpshrd_v2di_mask,
+       __builtin_ia32_vpshld_v16hi, __builtin_ia32_vpshld_v16hi_mask,
+       __builtin_ia32_vpshld_v8hi, __builtin_ia32_vpshld_v8hi_mask,
+       __builtin_ia32_vpshld_v8si, __builtin_ia32_vpshld_v8si_mask,
+       __builtin_ia32_vpshld_v4si, __builtin_ia32_vpshld_v4si_mask,
+       __builtin_ia32_vpshld_v4di, __builtin_ia32_vpshld_v4di_mask,
+       __builtin_ia32_vpshld_v2di, __builtin_ia32_vpshld_v2di_mask,
+       __builtin_ia32_vpshrdv_v16hi, __builtin_ia32_vpshrdv_v16hi_mask,
+       __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi,
+       __builtin_ia32_vpshrdv_v8hi_mask, __builtin_ia32_vpshrdv_v8hi_maskz,
+       __builtin_ia32_vpshrdv_v8si, __builtin_ia32_vpshrdv_v8si_mask,
+       __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si,
+       __builtin_ia32_vpshrdv_v4si_mask, __builtin_ia32_vpshrdv_v4si_maskz,
+       __builtin_ia32_vpshrdv_v4di, __builtin_ia32_vpshrdv_v4di_mask,
+       __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di,
+       __builtin_ia32_vpshrdv_v2di_mask, __builtin_ia32_vpshrdv_v2di_maskz,
+       __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask,
+       __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi,
+       __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz,
+       __builtin_ia32_vpshldv_v8si, __builtin_ia32_vpshldv_v8si_mask,
+       __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si,
+       __builtin_ia32_vpshldv_v4si_mask, __builtin_ia32_vpshldv_v4si_maskz,
+       __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask,
+       __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di,
+       __builtin_ia32_vpshldv_v2di_mask, __builtin_ia32_vpshldv_v2di_maskz,
+       __builtin_ia32_vpopcountb_v32qi, __builtin_ia32_vpopcountb_v16qi,
+       __builtin_ia32_vpopcountb_v16qi_mask, __builtin_ia32_vpopcountw_v16hi,
+       __builtin_ia32_vpopcountw_v16hi_mask, __builtin_ia32_vpopcountw_v8hi,
+       __builtin_ia32_vpopcountw_v8hi_mask): Add
+       " | OPTION_MASK_ISA_AVX512VL".
+       * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16,
+       _mm512_shrdi_epi32, _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32,
+       _mm512_shrdi_epi64, _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64,
+       _mm512_shldi_epi16, _mm512_shldi_epi32, _mm512_mask_shldi_epi32,
+       _mm512_maskz_shldi_epi32, _mm512_shldi_epi64, _mm512_mask_shldi_epi64,
+       _mm512_maskz_shldi_epi64, _mm512_shrdv_epi16, _mm512_shrdv_epi32,
+       _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64,
+       _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64, _mm512_shldv_epi16,
+       _mm512_shldv_epi32, _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32,
+       _mm512_shldv_epi64, _mm512_mask_shldv_epi64,
+       _mm512_maskz_shldv_epi64): Don't require avx512bw for these intrinsics.
+       * config/i386/avx512bitalgintrin.h (_mm_bitshuffle_epi64_mask,
+       _mm_mask_bitshuffle_epi64_mask): Likewise.
+       * common/config/i386/i386-common.c
+       (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
+       OPTION_MASK_ISA_AVX512BITALG_SET): Or in OPTION_MASK_ISA_AVX512F_SET.
+       (OPTION_MASK_ISA_AVX512F_UNSET): Or in
+       OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET and
+       OPTION_MASK_ISA_AVX512BITALG_UNSET.
+       (OPTION_MASK_ISA2_AVX512F_UNSET,
+       OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Define.
+       (ix86_handle_option): For -mno-general-regs-only, clear from
+       ix86_isa_flags2 OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET rather than
+       just OPTION_MASK_ISA_MPX.  For -mno-sse{,2,3,4,4.1,4.2,avx,avx2} and
+       -mno-ssse3 clear OPTION_MASK_ISA2_AVX512F_UNSET bits from
+       ix86_isa_flags2.  For -mno-avx512f likewise, instead of masking
+       individually listed ISAs.  For -m{,no-}avx512{vpopcntdq,bitalg} adjust
+       for moving from ix86_isa_flags2 to ix86_isa_flags.
+
+2017-12-23  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/83553
+       * fold-const.c (struct contains_label_data): New type.
+       (contains_label_1): Return non-NULL even for CASE_LABEL_EXPR, unless
+       inside of a SWITCH_BODY seen during the walk.
+       (contains_label_p): Use walk_tree instead of
+       walk_tree_without_duplicates, prepare data for contains_label_1 and
+       provide own pset.
+
+2017-12-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/83547
+       * tree-iterator.c (alloc_stmt_list): Start with cleared
+       TREE_SIDE_EFFECTS regardless whether a new STATEMENT_LIST is allocated
+       or old one reused.
+
+       PR target/83488
+       * config/i386/avx512vnniintrin.h: Don't check for __AVX512F__ nor
+       enable avx512f explicitly in #pragma GCC target.
+       * config/i386/i386-builtin.def (__builtin_ia32_vpdpbusd_v8si,
+       __builtin_ia32_vpdpbusd_v8si_mask, __builtin_ia32_vpdpbusd_v8si_maskz,
+       __builtin_ia32_vpdpbusd_v4si, __builtin_ia32_vpdpbusd_v4si_mask,
+       __builtin_ia32_vpdpbusd_v4si_maskz, __builtin_ia32_vpdpbusds_v8si,
+       __builtin_ia32_vpdpbusds_v8si_mask,
+       __builtin_ia32_vpdpbusds_v8si_maskz, __builtin_ia32_vpdpbusds_v4si,
+       __builtin_ia32_vpdpbusds_v4si_mask,
+       __builtin_ia32_vpdpbusds_v4si_maskz, __builtin_ia32_vpdpwssd_v8si,
+       __builtin_ia32_vpdpwssd_v8si_mask, __builtin_ia32_vpdpwssd_v8si_maskz,
+       __builtin_ia32_vpdpwssd_v4si, __builtin_ia32_vpdpwssd_v4si_mask,
+       __builtin_ia32_vpdpwssd_v4si_maskz, __builtin_ia32_vpdpwssds_v8si,
+       __builtin_ia32_vpdpwssds_v8si_mask,
+       __builtin_ia32_vpdpwssds_v8si_maskz, __builtin_ia32_vpdpwssds_v4si,
+       __builtin_ia32_vpdpwssds_v4si_mask,
+       __builtin_ia32_vpdpwssds_v4si_maskz): Use
+       OPTION_MASK_ISA_AVX512VNNI | OPTION_MASK_ISA_AVX512VL instead of
+       just OPTION_MASK_ISA_AVX512VNNI.
+
+2017-12-22  Martin Jambor  <mjambor@suse.cz>
+
+       PR lto/82027
+       * lto-cgraph.c (output_cgraph_opt_summary_p): Also check former
+       clones.
+
+2017-12-22  Julia Koval  <julia.koval@intel.com>
+           Sebastian Peryt  <sebastian.peryt@intel.com>
+
+       * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BITALG_SET,
+       OPTION_MASK_ISA_AVX512BITALG_UNSET): New.
+       (ix86_handle_option): Handle -mavx512bitalg, fix 4VNNIW formatting.
+       * config.gcc: Add avx512vpopcntdqvlintrin.h and avx512bitalgintrin.h.
+       * config/i386/avx512bitalgintrin.h (_mm512_popcnt_epi8, _mm512_popcnt_epi16,
+       _mm512_mask_popcnt_epi8, _mm512_maskz_popcnt_epi8, _mm512_mask_popcnt_epi16,
+       _mm512_maskz_popcnt_epi16, _mm512_bitshuffle_epi64_mask, _mm256_popcnt_epi8,
+       _mm512_mask_bitshuffle_epi64_mask, _mm256_mask_popcnt_epi8, _mm_popcnt_epi8,
+       _mm256_maskz_popcnt_epi8, _mm_bitshuffle_epi64_mask, _mm256_popcnt_epi16,
+       _mm_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask,
+       _mm256_mask_bitshuffle_epi64_mask, _mm_popcnt_epi16, _mm_maskz_popcnt_epi8,
+       _mm256_mask_popcnt_epi16, _mm256_maskz_popcnt_epi16, _mm_mask_popcnt_epi8,
+       _mm_mask_popcnt_epi16, _mm_maskz_popcnt_epi16): New intrinsics.
+       * config/i386/avx512vpopcntdqvlintrin.h (_mm_popcnt_epi32, _mm_popcnt_epi64,
+       _mm_mask_popcnt_epi32, _mm_maskz_popcnt_epi32, _mm256_popcnt_epi32,
+       _mm256_mask_popcnt_epi32, _mm256_maskz_popcnt_epi32, _mm_mask_popcnt_epi64,
+       _mm_maskz_popcnt_epi64, _mm256_popcnt_epi64, _mm256_mask_popcnt_epi64,
+       _mm256_maskz_popcnt_epi64): New intrinsics.
+       * config/i386/cpuid.h (bit_AVX512BITALG): New bit.
+       * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mavx512bitalg.
+       * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI, V64QI_FTYPE_V64QI,
+       V4DI_FTYPE_V4DI, UHI_FTYPE_V2DI_V2DI_UHI, USI_FTYPE_V4DI_V4DI_USI,
+       V4SI_FTYPE_V4SI_V4SI_UHI, V8SI_FTYPE_V8SI_V8SI_UHI): New types.
+       * config/i386/i386-builtin.def (__builtin_ia32_vpopcountq_v4di,
+       __builtin_ia32_vpopcountq_v4di_mask, __builtin_ia32_vpopcountq_v2di,
+       __builtin_ia32_vpopcountq_v2di_mask, __builtin_ia32_vpopcountd_v4si,
+       __builtin_ia32_vpopcountd_v4si_mask, __builtin_ia32_vpopcountd_v8si,
+       __builtin_ia32_vpopcountd_v8si_mask, __builtin_ia32_vpopcountb_v64qi,
+       __builtin_ia32_vpopcountb_v64qi_mask, __builtin_ia32_vpopcountb_v32qi,
+       __builtin_ia32_vpopcountb_v32qi_mask, __builtin_ia32_vpopcountb_v16qi,
+       __builtin_ia32_vpopcountb_v16qi_mask, __builtin_ia32_vpopcountw_v32hi,
+       __builtin_ia32_vpopcountw_v32hi_mask, __builtin_ia32_vpopcountw_v16hi,
+       __builtin_ia32_vpopcountw_v16hi_mask, __builtin_ia32_vpopcountw_v8hi,
+       __builtin_ia32_vpopcountw_v8hi_mask, __builtin_ia32_vpshufbitqmb128_mask,
+       __builtin_ia32_vpshufbitqmb256_mask,
+       __builtin_ia32_vpshufbitqmb512_mask): New builtins.
+       * config/i386/i386-c.c (__AVX512BITALG__): New.
+       * config/i386/i386.c (isa2_opts): Add -mavx512bitalg.
+       (ix86_valid_target_attribute_inner_p): Ditto.
+       (ix86_expand_args_builtin): Handle new types.
+       * config/i386/i386.h (TARGET_AVX512BITALG, TARGET_AVX512BITALG_P): New.
+       * config/i386/i386.opt: Add -mavx512bitalg.
+       * config/i386/immintrin.h: Add avx512vpopcntdqvlintrin.h and
+       avx512bitalgintrin.h.
+       * config/i386/sse.md (VI48_AVX512VLBW): New iterator.
+       (vpopcount<mode><mask_name>): Add more types.
+       (avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): New.
+       * doc/invoke.texi: Add -mavx512bitalg and -mavx512vpopcntdq.
+
+2017-12-22  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
+
+       * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET):
+       Or in OPTION_MASK_ISA_AVX512F_SET.
+       (OPTION_MASK_ISA_AVX512F_UNSET): Or in
+       OPTION_MASK_ISA_AVX512VNNI_UNSET.
+       (ix86_handle_option): Adjust for
+       OPTION_MASK_ISA_AVX512VNNI_*SET being in ix86_isa_flags.
+       * config/i386/i386-builtin.def: Move VNNI builtins from ARGS2
+       section to ARGS.
+       * config/i386/i386-c.c: Check for OPTION_MASK_ISA_AVX512VNNI in
+       isa_flag instead of isa_flag2.
+       * config/i386/i386.c (ix86_target_string): Move -mavx512vnni from
+       isa_opts2 to isa_opts.
+       * config/i386/i386.opt (mavx512vnni): Move from ix86_isa_flags2
+       to ix86_isa_flags.
+
+2017-12-22  Mike Stump  <mikestump@comcast.net>
+            Eric Botcazou  <ebotcazou@adacore.com>
+
+       * doc/extend.texi (Loop-Specific Pragmas): Document pragma GCC unroll.
+
+2017-12-21  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/83487
+       * config/i386/i386.c (ix86_function_arg_boundary): Return
+       PARM_BOUNDARY for TYPE_EMPTY_P types.
+
+       PR c/83448
+       * gimple-ssa-sprintf.c (maybe_warn): Don't call set_caret_index
+       if navail is >= dir.len.
+
+2017-12-21  Steve Ellcey  <sellcey@cavium.com>
+
+       * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES): Fix
+       triplet for ilp32.
+
+2017-12-21  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/80747
+       PR rtl-optimization/83512
+       * cfgrtl.c (force_nonfallthru_and_redirect): When splitting
+       succ edge from ENTRY, copy partition from e->dest to the newly
+       created bb.
+       * bb-reorder.c (reorder_basic_blocks_simple): If last_tail is
+       ENTRY, use BB_PARTITION of its successor block as current_partition.
+       Don't copy partition when splitting succ edge from ENTRY.
+
+       PR tree-optimization/83523
+       * tree-ssa-math-opts.c (is_widening_mult_p): Return false if
+       for INTEGER_TYPE TYPE_OVERFLOW_TRAPS.
+       (convert_mult_to_fma): Likewise.
+
+       PR tree-optimization/83521
+       * tree-ssa-phiopt.c (factor_out_conditional_conversion): Use
+       gimple_build_assign without code on result of
+       fold_build1 (VIEW_CONVERT_EXPR, ...), as it might not create
+       a VIEW_CONVERT_EXPR.
+
+2017-12-21  Andrew Pinski  <apinski@cavium.com>
+           Steve Ellcey  <sellcey@cavium.com>
+
+       * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES): Handle
+       multi-arch for ilp32.
+
+2017-12-21  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/83467
+       * config/i386/i386.md (*ashl<mode>3_mask): Add operand
+       constraints to operand 2.
+       (*ashl<mode>3_mask_1): Ditto.
+       (*<shift_insn><mode>3_mask): Ditto.
+       (*<shift_insn><mode>3_mask_1): Ditto.
+       (*<rotate_insn><mode>3_mask): Ditto.
+       (*<rotate_insn><mode>3_mask_1): Ditto.
+
+2017-12-21  Alexandre Oliva  <aoliva@redhat.com>
+
+       * reorg.c (make_return_insns): Reemit each insn with its own location.
+
 2017-12-21  James Greenhalgh  <james.greenhalgh@arm.com>
 
        * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code
        (expand_builtin_strcmp): Call maybe_warn_nonstring_arg.
        (expand_builtin_strncmp): Same.
 
-2017-12-20  Alexandre Oliva <aoliva@redhat.com>
+2017-12-20  Alexandre Oliva  <aoliva@redhat.com>
 
        PR bootstrap/83396
        * cfgexpand.c (label_rtx_for_bb): Revert SFN changes that
        poly_int64.  Use strip_offset_and_add to handle (plus X (const)).
 
 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
-            Alan Hayward  <alan.hayward@arm.com>
+           Alan Hayward  <alan.hayward@arm.com>
            David Sherwood  <david.sherwood@arm.com>
 
        * rtl.h (reg_attrs::offset): Change from HOST_WIDE_INT to poly_int64.
        of a PARALLEL.
 
 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
-            Alan Hayward  <alan.hayward@arm.com>
+           Alan Hayward  <alan.hayward@arm.com>
            David Sherwood  <david.sherwood@arm.com>
 
        * target.def (truly_noop_truncation): Take poly_uint64s instead of
 2017-12-20  Tom de Vries  <tom@codesourcery.com>
 
        PR middle-end/83423
-       * config/i386/i386.c (ix86_static_chain): Move DECL_STATIC_CHAIN test ...
+       * config/i386/i386.c (ix86_static_chain): Move
+       DECL_STATIC_CHAIN test ...
        * calls.c (rtx_for_static_chain): ... here.  New function.
        * calls.h (rtx_for_static_chain): Declare.
        * builtins.c (expand_builtin_setjmp_receiver): Use rtx_for_static_chain
        character load case, if get_stridx on MEM_REF's operand doesn't
        look usable, retry with get_addr_stridx.
 
-2017-12-19  Alexandre Oliva <aoliva@redhat.com>
+2017-12-19  Alexandre Oliva  <aoliva@redhat.com>
 
        PR debug/83422
        * var-tracking.c (vt_debug_insns_local): Do not drop markers.
        * sched-rgn.c (sched_rgn_init): Likewise.
        * diagnostic-show-locus.c (layout::show_ruler): Likewise.
        * combine.c (find_split_point, simplify_if_then_else, force_to_mode,
-       if_then_else_cond, simplify_shift_const_1, simplify_comparison): Likewise.
+       if_then_else_cond, simplify_shift_const_1, simplify_comparison):
+       Likewise.
        * explow.c (eliminate_constant_term): Likewise.
        * final.c (leaf_renumber_regs_insn): Likewise.
        * cfgrtl.c (print_rtl_with_bb): Likewise.
 
        PR c++/83489
        * config/i386/i386.c (init_cumulative_args): Don't check TYPE_EMPTY_P
-       on an error node.                                                    
+       on an error node.
 
 2017-12-19  Claudiu Zissulescu  <claziss@synopsys.com>
 
        * doc/extend.texi (x86 Function Attributes): Reformat nocf_check
        example to avoid overfull hbox.
        * doc/invoke.texi (Option Summary): Add missing @gol.
-       (C++ Dialect Options): Reformat -Wnoexcept-type example to avoid 
+       (C++ Dialect Options): Reformat -Wnoexcept-type example to avoid
        overfull hbox.
-       
+
 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
            Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        optimizing for size.  Don't pessimize blocks which will be
        copied, but all the statements will be dead.
 
-2017-12-15  Alexandre Oliva <aoliva@redhat.com>
+2017-12-15  Alexandre Oliva  <aoliva@redhat.com>
 
        PR tree-optimization/81165
        * tree-ssa-threadupdate.c (uses_in_bb): New.
        (estimate_threading_killed_stmts): New.
        * tree-ssa-threadupdate.h (estimate_threading_killed_stmts): Prototype.
-       * tree-ssa-threadedge.c 
+       * tree-ssa-threadedge.c
        (record_temporary_equivalences_from_stmts_at_dest): Expand limit
        when its hit.
 
 2017-12-15  Julia Koval  <julia.koval@intel.com>
 
        * config/i386/i386-builtin.def (__builtin_ia32_vaesenclast_v16qi,
-       __builtin_ia32_vaesenclast_v32qi, __builtin_ia32_vaesenclast_v64qi): New.
+       __builtin_ia32_vaesenclast_v32qi, __builtin_ia32_vaesenclast_v64qi):
+       New.
        * config/i386/sse.md (vaesenclast_<mode>): New pattern.
        * config/i386/vaesintrin.h (_mm256_aesenclast_epi128,
        _mm512_aesenclast_epi128, _mm_aesenclast_epi128): New intrinsics.
 2017-12-15  Julia Koval  <julia.koval@intel.com>
 
        * config/i386/i386-builtin.def (__builtin_ia32_vaesdeclast_v16qi,
-       __builtin_ia32_vaesdeclast_v32qi, __builtin_ia32_vaesdeclast_v64qi): New.
+       __builtin_ia32_vaesdeclast_v32qi, __builtin_ia32_vaesdeclast_v64qi):
+       New.
        * config/i386/sse.md (vaesdeclast_<mode>): New pattern.
        * config/i386/vaesintrin.h (_mm256_aesdeclast_epi128,
        _mm512_aesdeclast_epi128, _mm_aesdeclast_epi128): New intrinsics.
        PR bootstrap/83396
        * reload1.c (emit_input_reload_insns): Skip debug markers.
 
-2017-12-14  Alexandre Oliva <aoliva@redhat.com>
+2017-12-14  Alexandre Oliva  <aoliva@redhat.com>
 
        * config/i386/i386.c (rest_of_insert_endbranch): Use call loc
        for its nop_endbr.
 
        PR tree-optimization/83418
        * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr):
-       Instead of asserting we don't get unfolded comparisons deal with
-       them.
+       Instead of asserting we don't get unfolded comparisons deal with them.
 
 2017-12-14  Jakub Jelinek  <jakub@redhat.com>
 
        (ASSERT_MAYBE_NE_AT): New macros.
 
 2017-12-13  Eric Botcazou  <ebotcazou@adacore.com>
-            Dominik Vogt  <vogt@linux.vnet.ibm.com>
+           Dominik Vogt  <vogt@linux.vnet.ibm.com>
 
        PR middle-end/78468
        * emit-rtl.c (init_emit): Remove ??? comment.
        * config/rs6000/ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define.
        * config/rs6000/rs6000.c (cpu_supports_info): Use it.
 
-2017-12-13  Alexandre Oliva <aoliva@redhat.com>
+2017-12-13  Alexandre Oliva  <aoliva@redhat.com>
 
        PR bootstrap/83396
        * reload1.c (eliminate_regs_in_insn): Skip debug markers.
        * combine.c (move_deaths): If reg_stat points to a too new insn in
        last_death, do not use it: find the proper insn instead.
 
+2017-12-12  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
+
+       PR target/82190
+       * config/rs6000/rs6000-string.c (expand_block_compare,
+       expand_strn_compare): Fix set_mem_size() calls.
+
 2017-12-12  Jeff Law  <law@redhat.com>
 
        PR tree-optimization/83298