+2023-07-14 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * config/arm/arm-mve-builtins-base.cc (vcmlaq, vcmlaq_rot90)
+ (vcmlaq_rot180, vcmlaq_rot270): New.
+ * config/arm/arm-mve-builtins-base.def (vcmlaq, vcmlaq_rot90)
+ (vcmlaq_rot180, vcmlaq_rot270): New.
+ * config/arm/arm-mve-builtins-base.h: (vcmlaq, vcmlaq_rot90)
+ (vcmlaq_rot180, vcmlaq_rot270): New.
+ * config/arm/arm-mve-builtins.cc
+ (function_instance::has_inactive_argument): Handle vcmlaq,
+ vcmlaq_rot90, vcmlaq_rot180, vcmlaq_rot270.
+ * config/arm/arm_mve.h (vcmlaq): Delete.
+ (vcmlaq_rot180): Delete.
+ (vcmlaq_rot270): Delete.
+ (vcmlaq_rot90): Delete.
+ (vcmlaq_m): Delete.
+ (vcmlaq_rot180_m): Delete.
+ (vcmlaq_rot270_m): Delete.
+ (vcmlaq_rot90_m): Delete.
+ (vcmlaq_f16): Delete.
+ (vcmlaq_rot180_f16): Delete.
+ (vcmlaq_rot270_f16): Delete.
+ (vcmlaq_rot90_f16): Delete.
+ (vcmlaq_f32): Delete.
+ (vcmlaq_rot180_f32): Delete.
+ (vcmlaq_rot270_f32): Delete.
+ (vcmlaq_rot90_f32): Delete.
+ (vcmlaq_m_f32): Delete.
+ (vcmlaq_m_f16): Delete.
+ (vcmlaq_rot180_m_f32): Delete.
+ (vcmlaq_rot180_m_f16): Delete.
+ (vcmlaq_rot270_m_f32): Delete.
+ (vcmlaq_rot270_m_f16): Delete.
+ (vcmlaq_rot90_m_f32): Delete.
+ (vcmlaq_rot90_m_f16): Delete.
+ (__arm_vcmlaq_f16): Delete.
+ (__arm_vcmlaq_rot180_f16): Delete.
+ (__arm_vcmlaq_rot270_f16): Delete.
+ (__arm_vcmlaq_rot90_f16): Delete.
+ (__arm_vcmlaq_f32): Delete.
+ (__arm_vcmlaq_rot180_f32): Delete.
+ (__arm_vcmlaq_rot270_f32): Delete.
+ (__arm_vcmlaq_rot90_f32): Delete.
+ (__arm_vcmlaq_m_f32): Delete.
+ (__arm_vcmlaq_m_f16): Delete.
+ (__arm_vcmlaq_rot180_m_f32): Delete.
+ (__arm_vcmlaq_rot180_m_f16): Delete.
+ (__arm_vcmlaq_rot270_m_f32): Delete.
+ (__arm_vcmlaq_rot270_m_f16): Delete.
+ (__arm_vcmlaq_rot90_m_f32): Delete.
+ (__arm_vcmlaq_rot90_m_f16): Delete.
+ (__arm_vcmlaq): Delete.
+ (__arm_vcmlaq_rot180): Delete.
+ (__arm_vcmlaq_rot270): Delete.
+ (__arm_vcmlaq_rot90): Delete.
+ (__arm_vcmlaq_m): Delete.
+ (__arm_vcmlaq_rot180_m): Delete.
+ (__arm_vcmlaq_rot270_m): Delete.
+ (__arm_vcmlaq_rot90_m): Delete.
+
+2023-07-14 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * config/arm/arm_mve_builtins.def (vcmlaq_rot90_f)
+ (vcmlaq_rot270_f, vcmlaq_rot180_f, vcmlaq_f): Add "_f" suffix.
+ * config/arm/iterators.md (MVE_VCMLAQ_M): New.
+ (mve_insn): Add vcmla.
+ (rot): Add VCMLAQ_M_F, VCMLAQ_ROT90_M_F, VCMLAQ_ROT180_M_F,
+ VCMLAQ_ROT270_M_F.
+ (mve_rot): Add VCMLAQ_M_F, VCMLAQ_ROT90_M_F, VCMLAQ_ROT180_M_F,
+ VCMLAQ_ROT270_M_F.
+ * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Rename into ...
+ (@mve_<mve_insn>q<mve_rot>_f<mode>): ... this.
+ (mve_vcmlaq_m_f<mode>, mve_vcmlaq_rot180_m_f<mode>)
+ (mve_vcmlaq_rot270_m_f<mode>, mve_vcmlaq_rot90_m_f<mode>): Merge
+ into ...
+ (@mve_<mve_insn>q<mve_rot>_m_f<mode>): ... this.
+
+2023-07-14 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * config/arm/arm-mve-builtins-base.cc (vcmulq, vcmulq_rot90)
+ (vcmulq_rot180, vcmulq_rot270): New.
+ * config/arm/arm-mve-builtins-base.def (vcmulq, vcmulq_rot90)
+ (vcmulq_rot180, vcmulq_rot270): New.
+ * config/arm/arm-mve-builtins-base.h: (vcmulq, vcmulq_rot90)
+ (vcmulq_rot180, vcmulq_rot270): New.
+ * config/arm/arm_mve.h (vcmulq_rot90): Delete.
+ (vcmulq_rot270): Delete.
+ (vcmulq_rot180): Delete.
+ (vcmulq): Delete.
+ (vcmulq_m): Delete.
+ (vcmulq_rot180_m): Delete.
+ (vcmulq_rot270_m): Delete.
+ (vcmulq_rot90_m): Delete.
+ (vcmulq_x): Delete.
+ (vcmulq_rot90_x): Delete.
+ (vcmulq_rot180_x): Delete.
+ (vcmulq_rot270_x): Delete.
+ (vcmulq_rot90_f16): Delete.
+ (vcmulq_rot270_f16): Delete.
+ (vcmulq_rot180_f16): Delete.
+ (vcmulq_f16): Delete.
+ (vcmulq_rot90_f32): Delete.
+ (vcmulq_rot270_f32): Delete.
+ (vcmulq_rot180_f32): Delete.
+ (vcmulq_f32): Delete.
+ (vcmulq_m_f32): Delete.
+ (vcmulq_m_f16): Delete.
+ (vcmulq_rot180_m_f32): Delete.
+ (vcmulq_rot180_m_f16): Delete.
+ (vcmulq_rot270_m_f32): Delete.
+ (vcmulq_rot270_m_f16): Delete.
+ (vcmulq_rot90_m_f32): Delete.
+ (vcmulq_rot90_m_f16): Delete.
+ (vcmulq_x_f16): Delete.
+ (vcmulq_x_f32): Delete.
+ (vcmulq_rot90_x_f16): Delete.
+ (vcmulq_rot90_x_f32): Delete.
+ (vcmulq_rot180_x_f16): Delete.
+ (vcmulq_rot180_x_f32): Delete.
+ (vcmulq_rot270_x_f16): Delete.
+ (vcmulq_rot270_x_f32): Delete.
+ (__arm_vcmulq_rot90_f16): Delete.
+ (__arm_vcmulq_rot270_f16): Delete.
+ (__arm_vcmulq_rot180_f16): Delete.
+ (__arm_vcmulq_f16): Delete.
+ (__arm_vcmulq_rot90_f32): Delete.
+ (__arm_vcmulq_rot270_f32): Delete.
+ (__arm_vcmulq_rot180_f32): Delete.
+ (__arm_vcmulq_f32): Delete.
+ (__arm_vcmulq_m_f32): Delete.
+ (__arm_vcmulq_m_f16): Delete.
+ (__arm_vcmulq_rot180_m_f32): Delete.
+ (__arm_vcmulq_rot180_m_f16): Delete.
+ (__arm_vcmulq_rot270_m_f32): Delete.
+ (__arm_vcmulq_rot270_m_f16): Delete.
+ (__arm_vcmulq_rot90_m_f32): Delete.
+ (__arm_vcmulq_rot90_m_f16): Delete.
+ (__arm_vcmulq_x_f16): Delete.
+ (__arm_vcmulq_x_f32): Delete.
+ (__arm_vcmulq_rot90_x_f16): Delete.
+ (__arm_vcmulq_rot90_x_f32): Delete.
+ (__arm_vcmulq_rot180_x_f16): Delete.
+ (__arm_vcmulq_rot180_x_f32): Delete.
+ (__arm_vcmulq_rot270_x_f16): Delete.
+ (__arm_vcmulq_rot270_x_f32): Delete.
+ (__arm_vcmulq_rot90): Delete.
+ (__arm_vcmulq_rot270): Delete.
+ (__arm_vcmulq_rot180): Delete.
+ (__arm_vcmulq): Delete.
+ (__arm_vcmulq_m): Delete.
+ (__arm_vcmulq_rot180_m): Delete.
+ (__arm_vcmulq_rot270_m): Delete.
+ (__arm_vcmulq_rot90_m): Delete.
+ (__arm_vcmulq_x): Delete.
+ (__arm_vcmulq_rot90_x): Delete.
+ (__arm_vcmulq_rot180_x): Delete.
+ (__arm_vcmulq_rot270_x): Delete.
+
+2023-07-14 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * config/arm/arm_mve_builtins.def (vcmulq_rot90_f)
+ (vcmulq_rot270_f, vcmulq_rot180_f, vcmulq_f): Add "_f" suffix.
+ * config/arm/iterators.md (MVE_VCADDQ_VCMULQ)
+ (MVE_VCADDQ_VCMULQ_M): New.
+ (mve_insn): Add vcmul.
+ (rot): Add VCMULQ_M_F, VCMULQ_ROT90_M_F, VCMULQ_ROT180_M_F,
+ VCMULQ_ROT270_M_F.
+ (VCMUL): Delete.
+ (mve_rot): Add VCMULQ_M_F, VCMULQ_ROT90_M_F, VCMULQ_ROT180_M_F,
+ VCMULQ_ROT270_M_F.
+ * config/arm/mve.md (mve_vcmulq<mve_rot><mode>): Merge into
+ @mve_<mve_insn>q<mve_rot>_f<mode>.
+ (mve_vcmulq_m_f<mode>, mve_vcmulq_rot180_m_f<mode>)
+ (mve_vcmulq_rot270_m_f<mode>, mve_vcmulq_rot90_m_f<mode>): Merge
+ into @mve_<mve_insn>q<mve_rot>_m_f<mode>.
+
+2023-07-14 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * config/arm/arm-mve-builtins-base.cc (vcaddq_rot90)
+ (vcaddq_rot270, vhcaddq_rot90, vhcaddq_rot270): New.
+ * config/arm/arm-mve-builtins-base.def (vcaddq_rot90)
+ (vcaddq_rot270, vhcaddq_rot90, vhcaddq_rot270): New.
+ * config/arm/arm-mve-builtins-base.h: (vcaddq_rot90)
+ (vcaddq_rot270, vhcaddq_rot90, vhcaddq_rot270): New.
+ * config/arm/arm-mve-builtins-functions.h (class
+ unspec_mve_function_exact_insn_rot): New.
+ * config/arm/arm_mve.h (vcaddq_rot90): Delete.
+ (vcaddq_rot270): Delete.
+ (vhcaddq_rot90): Delete.
+ (vhcaddq_rot270): Delete.
+ (vcaddq_rot270_m): Delete.
+ (vcaddq_rot90_m): Delete.
+ (vhcaddq_rot270_m): Delete.
+ (vhcaddq_rot90_m): Delete.
+ (vcaddq_rot90_x): Delete.
+ (vcaddq_rot270_x): Delete.
+ (vhcaddq_rot90_x): Delete.
+ (vhcaddq_rot270_x): Delete.
+ (vcaddq_rot90_u8): Delete.
+ (vcaddq_rot270_u8): Delete.
+ (vhcaddq_rot90_s8): Delete.
+ (vhcaddq_rot270_s8): Delete.
+ (vcaddq_rot90_s8): Delete.
+ (vcaddq_rot270_s8): Delete.
+ (vcaddq_rot90_u16): Delete.
+ (vcaddq_rot270_u16): Delete.
+ (vhcaddq_rot90_s16): Delete.
+ (vhcaddq_rot270_s16): Delete.
+ (vcaddq_rot90_s16): Delete.
+ (vcaddq_rot270_s16): Delete.
+ (vcaddq_rot90_u32): Delete.
+ (vcaddq_rot270_u32): Delete.
+ (vhcaddq_rot90_s32): Delete.
+ (vhcaddq_rot270_s32): Delete.
+ (vcaddq_rot90_s32): Delete.
+ (vcaddq_rot270_s32): Delete.
+ (vcaddq_rot90_f16): Delete.
+ (vcaddq_rot270_f16): Delete.
+ (vcaddq_rot90_f32): Delete.
+ (vcaddq_rot270_f32): Delete.
+ (vcaddq_rot270_m_s8): Delete.
+ (vcaddq_rot270_m_s32): Delete.
+ (vcaddq_rot270_m_s16): Delete.
+ (vcaddq_rot270_m_u8): Delete.
+ (vcaddq_rot270_m_u32): Delete.
+ (vcaddq_rot270_m_u16): Delete.
+ (vcaddq_rot90_m_s8): Delete.
+ (vcaddq_rot90_m_s32): Delete.
+ (vcaddq_rot90_m_s16): Delete.
+ (vcaddq_rot90_m_u8): Delete.
+ (vcaddq_rot90_m_u32): Delete.
+ (vcaddq_rot90_m_u16): Delete.
+ (vhcaddq_rot270_m_s8): Delete.
+ (vhcaddq_rot270_m_s32): Delete.
+ (vhcaddq_rot270_m_s16): Delete.
+ (vhcaddq_rot90_m_s8): Delete.
+ (vhcaddq_rot90_m_s32): Delete.
+ (vhcaddq_rot90_m_s16): Delete.
+ (vcaddq_rot270_m_f32): Delete.
+ (vcaddq_rot270_m_f16): Delete.
+ (vcaddq_rot90_m_f32): Delete.
+ (vcaddq_rot90_m_f16): Delete.
+ (vcaddq_rot90_x_s8): Delete.
+ (vcaddq_rot90_x_s16): Delete.
+ (vcaddq_rot90_x_s32): Delete.
+ (vcaddq_rot90_x_u8): Delete.
+ (vcaddq_rot90_x_u16): Delete.
+ (vcaddq_rot90_x_u32): Delete.
+ (vcaddq_rot270_x_s8): Delete.
+ (vcaddq_rot270_x_s16): Delete.
+ (vcaddq_rot270_x_s32): Delete.
+ (vcaddq_rot270_x_u8): Delete.
+ (vcaddq_rot270_x_u16): Delete.
+ (vcaddq_rot270_x_u32): Delete.
+ (vhcaddq_rot90_x_s8): Delete.
+ (vhcaddq_rot90_x_s16): Delete.
+ (vhcaddq_rot90_x_s32): Delete.
+ (vhcaddq_rot270_x_s8): Delete.
+ (vhcaddq_rot270_x_s16): Delete.
+ (vhcaddq_rot270_x_s32): Delete.
+ (vcaddq_rot90_x_f16): Delete.
+ (vcaddq_rot90_x_f32): Delete.
+ (vcaddq_rot270_x_f16): Delete.
+ (vcaddq_rot270_x_f32): Delete.
+ (__arm_vcaddq_rot90_u8): Delete.
+ (__arm_vcaddq_rot270_u8): Delete.
+ (__arm_vhcaddq_rot90_s8): Delete.
+ (__arm_vhcaddq_rot270_s8): Delete.
+ (__arm_vcaddq_rot90_s8): Delete.
+ (__arm_vcaddq_rot270_s8): Delete.
+ (__arm_vcaddq_rot90_u16): Delete.
+ (__arm_vcaddq_rot270_u16): Delete.
+ (__arm_vhcaddq_rot90_s16): Delete.
+ (__arm_vhcaddq_rot270_s16): Delete.
+ (__arm_vcaddq_rot90_s16): Delete.
+ (__arm_vcaddq_rot270_s16): Delete.
+ (__arm_vcaddq_rot90_u32): Delete.
+ (__arm_vcaddq_rot270_u32): Delete.
+ (__arm_vhcaddq_rot90_s32): Delete.
+ (__arm_vhcaddq_rot270_s32): Delete.
+ (__arm_vcaddq_rot90_s32): Delete.
+ (__arm_vcaddq_rot270_s32): Delete.
+ (__arm_vcaddq_rot270_m_s8): Delete.
+ (__arm_vcaddq_rot270_m_s32): Delete.
+ (__arm_vcaddq_rot270_m_s16): Delete.
+ (__arm_vcaddq_rot270_m_u8): Delete.
+ (__arm_vcaddq_rot270_m_u32): Delete.
+ (__arm_vcaddq_rot270_m_u16): Delete.
+ (__arm_vcaddq_rot90_m_s8): Delete.
+ (__arm_vcaddq_rot90_m_s32): Delete.
+ (__arm_vcaddq_rot90_m_s16): Delete.
+ (__arm_vcaddq_rot90_m_u8): Delete.
+ (__arm_vcaddq_rot90_m_u32): Delete.
+ (__arm_vcaddq_rot90_m_u16): Delete.
+ (__arm_vhcaddq_rot270_m_s8): Delete.
+ (__arm_vhcaddq_rot270_m_s32): Delete.
+ (__arm_vhcaddq_rot270_m_s16): Delete.
+ (__arm_vhcaddq_rot90_m_s8): Delete.
+ (__arm_vhcaddq_rot90_m_s32): Delete.
+ (__arm_vhcaddq_rot90_m_s16): Delete.
+ (__arm_vcaddq_rot90_x_s8): Delete.
+ (__arm_vcaddq_rot90_x_s16): Delete.
+ (__arm_vcaddq_rot90_x_s32): Delete.
+ (__arm_vcaddq_rot90_x_u8): Delete.
+ (__arm_vcaddq_rot90_x_u16): Delete.
+ (__arm_vcaddq_rot90_x_u32): Delete.
+ (__arm_vcaddq_rot270_x_s8): Delete.
+ (__arm_vcaddq_rot270_x_s16): Delete.
+ (__arm_vcaddq_rot270_x_s32): Delete.
+ (__arm_vcaddq_rot270_x_u8): Delete.
+ (__arm_vcaddq_rot270_x_u16): Delete.
+ (__arm_vcaddq_rot270_x_u32): Delete.
+ (__arm_vhcaddq_rot90_x_s8): Delete.
+ (__arm_vhcaddq_rot90_x_s16): Delete.
+ (__arm_vhcaddq_rot90_x_s32): Delete.
+ (__arm_vhcaddq_rot270_x_s8): Delete.
+ (__arm_vhcaddq_rot270_x_s16): Delete.
+ (__arm_vhcaddq_rot270_x_s32): Delete.
+ (__arm_vcaddq_rot90_f16): Delete.
+ (__arm_vcaddq_rot270_f16): Delete.
+ (__arm_vcaddq_rot90_f32): Delete.
+ (__arm_vcaddq_rot270_f32): Delete.
+ (__arm_vcaddq_rot270_m_f32): Delete.
+ (__arm_vcaddq_rot270_m_f16): Delete.
+ (__arm_vcaddq_rot90_m_f32): Delete.
+ (__arm_vcaddq_rot90_m_f16): Delete.
+ (__arm_vcaddq_rot90_x_f16): Delete.
+ (__arm_vcaddq_rot90_x_f32): Delete.
+ (__arm_vcaddq_rot270_x_f16): Delete.
+ (__arm_vcaddq_rot270_x_f32): Delete.
+ (__arm_vcaddq_rot90): Delete.
+ (__arm_vcaddq_rot270): Delete.
+ (__arm_vhcaddq_rot90): Delete.
+ (__arm_vhcaddq_rot270): Delete.
+ (__arm_vcaddq_rot270_m): Delete.
+ (__arm_vcaddq_rot90_m): Delete.
+ (__arm_vhcaddq_rot270_m): Delete.
+ (__arm_vhcaddq_rot90_m): Delete.
+ (__arm_vcaddq_rot90_x): Delete.
+ (__arm_vcaddq_rot270_x): Delete.
+ (__arm_vhcaddq_rot90_x): Delete.
+ (__arm_vhcaddq_rot270_x): Delete.
+
+2023-07-14 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * config/arm/arm_mve_builtins.def (vcaddq_rot90_, vcaddq_rot270_)
+ (vcaddq_rot90_f, vcaddq_rot90_f): Add "_" or "_f" suffix.
+ * config/arm/iterators.md (mve_insn): Add vcadd, vhcadd.
+ (isu): Add UNSPEC_VCADD90, UNSPEC_VCADD270, VCADDQ_ROT270_M_U,
+ VCADDQ_ROT270_M_S, VCADDQ_ROT90_M_U, VCADDQ_ROT90_M_S,
+ VHCADDQ_ROT90_M_S, VHCADDQ_ROT270_M_S, VHCADDQ_ROT90_S,
+ VHCADDQ_ROT270_S.
+ (rot): Add VCADDQ_ROT90_M_F, VCADDQ_ROT90_M_S, VCADDQ_ROT90_M_U,
+ VCADDQ_ROT270_M_F, VCADDQ_ROT270_M_S, VCADDQ_ROT270_M_U,
+ VHCADDQ_ROT90_S, VHCADDQ_ROT270_S, VHCADDQ_ROT90_M_S,
+ VHCADDQ_ROT270_M_S.
+ (mve_rot): Add VCADDQ_ROT90_M_F, VCADDQ_ROT90_M_S,
+ VCADDQ_ROT90_M_U, VCADDQ_ROT270_M_F, VCADDQ_ROT270_M_S,
+ VCADDQ_ROT270_M_U, VHCADDQ_ROT90_S, VHCADDQ_ROT270_S,
+ VHCADDQ_ROT90_M_S, VHCADDQ_ROT270_M_S.
+ (supf): Add VHCADDQ_ROT90_M_S, VHCADDQ_ROT270_M_S,
+ VHCADDQ_ROT90_S, VHCADDQ_ROT270_S, UNSPEC_VCADD90,
+ UNSPEC_VCADD270.
+ (VCADDQ_ROT270_M): Delete.
+ (VCADDQ_M_F VxCADDQ VxCADDQ_M): New.
+ (VCADDQ_ROT90_M): Delete.
+ * config/arm/mve.md (mve_vcaddq<mve_rot><mode>)
+ (mve_vhcaddq_rot270_s<mode>, mve_vhcaddq_rot90_s<mode>): Merge
+ into ...
+ (@mve_<mve_insn>q<mve_rot>_<supf><mode>): ... this.
+ (mve_vcaddq<mve_rot><mode>): Rename into ...
+ (@mve_<mve_insn>q<mve_rot>_f<mode>): ... this
+ (mve_vcaddq_rot270_m_<supf><mode>)
+ (mve_vcaddq_rot90_m_<supf><mode>, mve_vhcaddq_rot270_m_s<mode>)
+ (mve_vhcaddq_rot90_m_s<mode>): Merge into ...
+ (@mve_<mve_insn>q<mve_rot>_m_<supf><mode>): ... this.
+ (mve_vcaddq_rot270_m_f<mode>, mve_vcaddq_rot90_m_f<mode>): Merge
+ into ...
+ (@mve_<mve_insn>q<mve_rot>_m_f<mode>): ... this.
+
+2023-07-14 Roger Sayle <roger@nextmovesoftware.com>
+
+ PR target/110588
+ * config/i386/i386.md (*bt<mode>_setcqi): Prefer string form
+ preparation statement over braces for a single statement.
+ (*bt<mode>_setncqi): Likewise.
+ (*bt<mode>_setncqi_2): New define_insn_and_split.
+
+2023-07-14 Roger Sayle <roger@nextmovesoftware.com>
+
+ * config/i386/i386-expand.cc (ix86_expand_move): Generalize special
+ case inserting of 64-bit values into a TImode register, to handle
+ both DImode and DFmode using either *insvti_lowpart_1
+ or *isnvti_highpart_1.
+
+2023-07-14 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/110206
+ * fwprop.cc (contains_paradoxical_subreg_p): Move to ...
+ * rtlanal.cc (contains_paradoxical_subreg_p): ... here.
+ * rtlanal.h (contains_paradoxical_subreg_p): Add prototype.
+ * cprop.cc (try_replace_reg): Do not set REG_EQUAL note
+ when the original source contains a paradoxical subreg.
+
+2023-07-14 Jan Hubicka <jh@suse.cz>
+
+ * passes.cc (execute_function_todo): Remove
+ TODO_rebuild_frequencies
+ * passes.def: Add rebuild_frequencies pass.
+ * predict.cc (estimate_bb_frequencies): Drop
+ force parameter.
+ (tree_estimate_probability): Update call of
+ estimate_bb_frequencies.
+ (rebuild_frequencies): Turn into a pass; verify CFG profile consistency
+ first and do not rebuild if not necessary.
+ (class pass_rebuild_frequencies): New.
+ (make_pass_rebuild_frequencies): New.
+ * profile-count.h: Add profile_count::very_large_p.
+ * tree-inline.cc (optimize_inline_calls): Do not return
+ TODO_rebuild_frequencies
+ * tree-pass.h (TODO_rebuild_frequencies): Remove.
+ (make_pass_rebuild_frequencies): Declare.
+
+2023-07-14 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/autovec.md (cond_len_fma<mode>): New pattern.
+ * config/riscv/riscv-protos.h (enum insn_type): New enum.
+ (expand_cond_len_ternop): New function.
+ * config/riscv/riscv-v.cc (emit_nonvlmax_fp_ternary_tu_insn): Ditto.
+ (expand_cond_len_ternop): Ditto.
+
+2023-07-14 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ PR target/110657
+ * config/bpf/bpf.md: Enable instruction scheduling.
+
+2023-07-14 Tamar Christina <tamar.christina@arm.com>
+
+ PR tree-optimization/109154
+ * tree-if-conv.cc (INCLUDE_ALGORITHM): Include.
+ (struct bb_predicate): Add no_predicate_stmts.
+ (set_bb_predicate): Increase predicate count.
+ (set_bb_predicate_gimplified_stmts): Conditionally initialize
+ no_predicate_stmts.
+ (get_bb_num_predicate_stmts): New.
+ (init_bb_predicate): Initialzie no_predicate_stmts.
+ (release_bb_predicate): Cleanup no_predicate_stmts.
+ (insert_gimplified_predicates): Preserve no_predicate_stmts.
+
+2023-07-14 Tamar Christina <tamar.christina@arm.com>
+
+ PR tree-optimization/109154
+ * tree-if-conv.cc (gen_simplified_condition,
+ gen_phi_nest_statement): New.
+ (gen_phi_arg_condition, predicate_scalar_phi): Use it.
+
+2023-07-14 Richard Biener <rguenther@suse.de>
+
+ * gimple.h (gimple_phi_arg): New const overload.
+ (gimple_phi_arg_def): Make gimple arg const.
+ (gimple_phi_arg_def_from_edge): New inline function.
+ * tree-phinodes.h (gimple_phi_arg_imm_use_ptr_from_edge):
+ Likewise.
+ * tree-ssa-operands.h (PHI_ARG_DEF_FROM_EDGE): Direct to
+ new inline function.
+ (PHI_ARG_DEF_PTR_FROM_EDGE): Likewise.
+
+2023-07-14 Monk Chiang <monk.chiang@sifive.com>
+
+ * common/config/riscv/riscv-common.cc:
+ (riscv_implied_info): Add zihintntl item.
+ (riscv_ext_version_table): Ditto.
+ (riscv_ext_flag_table): Ditto.
+ * config/riscv/riscv-opts.h (MASK_ZIHINTNTL): New macro.
+ (TARGET_ZIHINTNTL): Ditto.
+
+2023-07-14 Die Li <lidie@eswincomputing.com>
+
+ * config/riscv/riscv.md: Remove redundant portion in and<mode>3.
+
+2023-07-14 Oleg Endo <olegendo@gcc.gnu.org>
+
+ PR target/101469
+ * config/sh/sh.md (peephole2): Handle case where eliminated reg is also
+ used by the address of the following memory operand.
+
2023-07-13 Mikael Pettersson <mikpelinux@gmail.com>
PR target/107841