+2024-08-16 Andrew Pinski <pinskia@gmail.com>
+
+ * tree-ssa-phiopt.cc (factor_out_conditional_operation): Update
+ comment.
+
+2024-08-15 Vineet Gupta <vineetg@rivosinc.com>
+
+ * config/riscv/riscv.md: define_insn for fclass insn.
+ define_expand for isfinite, isnormal, isinf.
+
+2024-08-15 Roger Sayle <roger@nextmovesoftware.com>
+ Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*extendv2di2_highpart_stv_noavx512vl): Split
+ to an improved implementation on !TARGET_XOP. On TARGET_XOP, use
+ a new pseudo for the intermediate to simplify register allocation.
+
+2024-08-15 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR middle-end/116236
+ * rtlanal.cc (decompose_normal_address): Try to distinguish
+ bases and indices based on mode, before resorting to "baseness".
+
+2024-08-15 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR testsuite/116343
+ * recog.h (insn_propagation::apply_to_note): Declare.
+ * recog.cc (insn_propagation::apply_to_note): New function.
+ * late-combine.cc (insn_combination::substitute_note): Use
+ apply_to_note instead of apply_to_rvalue.
+ * rtl-ssa/changes.cc (rtl_ssa::changes_are_worthwhile): Improve
+ dumping of costs for noop moves.
+
+2024-08-15 Xi Ruoyao <xry111@xry111.site>
+
+ * config/loongarch/loongarch.md (extendsidi2): Add ("=r", "f")
+ alternative and use movfr2gr.s for it. The spec clearly states
+ movfr2gr.s sign extends the value to GRLEN.
+ (fclass_<fmt>): Make the result SImode instead of a floating
+ mode. The fclass results are really not FP values.
+ (FCLASS_MASK): New define_int_iterator.
+ (fclass_optab): New define_int_attr.
+ (<FCLASS_MASK:fclass_optab><ANYF:mode>): New define_expand
+ template.
+
+2024-08-15 liuhongt <hongtao.liu@intel.com>
+
+ PR target/116274
+ * config/i386/i386-expand.cc (ix86_expand_vector_move):
+ Restrict special case TImode to 128-bit vector conversions via
+ V2DI under ix86_pre_reload_split ().
+ * config/i386/i386.cc (inline_secondary_memory_needed):
+ Movement between GENERAL_REGS and SSE_REGS for TImode doesn't
+ need secondary reload.
+ * config/i386/i386.md (*extendsidi2_rex64): Add a
+ define_peephole2 after it.
+
+2024-08-15 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR target/116371
+ * config/aarch64/aarch64-sve-builtins-sve2.h (svpext): Rename to...
+ (svpext_lane): ...this.
+ * config/aarch64/aarch64-sve-builtins-sve2.cc (svpext_impl): Rename
+ to...
+ (svpext_lane_impl): ...this and update instantiation accordingly.
+ * config/aarch64/aarch64-sve-builtins-sve2.def (svpext): Rename to...
+ (svpext_lane): ...this.
+
+2024-08-15 Haochen Gui <guihaoc@gcc.gnu.org>
+
+ * config/rs6000/rs6000.md (floatti<mode>2, floatunsti<mode>2,
+ fix_trunc<mode>ti2): Add guard TARGET_FLOAT128_HW.
+ * config/rs6000/vsx.md (xsxexpqp_<IEEE128:mode>_<V2DI_DI:mode>,
+ xsxsigqp_<IEEE128:mode>_<VEC_TI:mode>, xsiexpqpf_<mode>,
+ xsiexpqp_<IEEE128:mode>_<V2DI_DI:mode>, xscmpexpqp_<code>_<mode>,
+ *xscmpexpqp, xststdcnegqp_<mode>): Replace guard TARGET_P9_VECTOR
+ with TARGET_FLOAT128_HW.
+ (xststdc_<mode>, *xststdc_<mode>, isinf<mode>2): Add guard
+ TARGET_FLOAT128_HW for the IEEE128 modes.
+
+2024-08-15 Haochen Gui <guihaoc@gcc.gnu.org>
+
+ PR target/97786
+ * config/rs6000/vsx.md (isnormal<mode>2): New expand.
+
+2024-08-15 Haochen Gui <guihaoc@gcc.gnu.org>
+
+ PR target/97786
+ * config/rs6000/vsx.md (isfinite<mode>2): New expand.
+
+2024-08-15 Haochen Gui <guihaoc@gcc.gnu.org>
+
+ PR target/97786
+ * config/rs6000/rs6000.md (constant VSX_TEST_DATA_CLASS_NAN,
+ VSX_TEST_DATA_CLASS_POS_INF, VSX_TEST_DATA_CLASS_NEG_INF,
+ VSX_TEST_DATA_CLASS_POS_ZERO, VSX_TEST_DATA_CLASS_NEG_ZERO,
+ VSX_TEST_DATA_CLASS_POS_DENORMAL, VSX_TEST_DATA_CLASS_NEG_DENORMAL):
+ Define.
+ (mode_attr sdq, vsx_altivec, wa_v, x): Define.
+ (mode_iterator IEEE_FP): Define.
+ * config/rs6000/vsx.md (isinf<mode>2): New expand.
+ (expand xststdcqp_<mode>, xststdc<sd>p): Combine into...
+ (expand xststdc_<mode>): ...this.
+ (insn *xststdcqp_<mode>, *xststdc<sd>p): Combine into...
+ (insn *xststdc_<mode>): ...this.
+ * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Rename
+ CODE_FOR_xststdcqp_kf as CODE_FOR_xststdc_kf,
+ CODE_FOR_xststdcqp_tf as CODE_FOR_xststdc_tf.
+ * config/rs6000/rs6000-builtins.def: Rename xststdcdp as xststdc_df,
+ xststdcsp as xststdc_sf, xststdcqp_kf as xststdc_kf.
+
+2024-08-15 Haochen Gui <guihaoc@gcc.gnu.org>
+
+ * gimple-range-op.cc (class cfn_isfinite): New.
+ (op_cfn_finite): New variables.
+ (gimple_range_op_handler::maybe_builtin_call): Handle
+ CFN_BUILT_IN_ISFINITE.
+ * value-range.h (class frange): Declear known_isnormal and
+ known_isdenormal_or_zero.
+ (frange::known_isnormal): Define.
+ (frange::known_isdenormal_or_zero): Define.
+
+2024-08-15 Haochen Gui <guihaoc@gcc.gnu.org>
+
+ * gimple-range-op.cc (class cfn_isfinite): New.
+ (op_cfn_finite): New variables.
+ (gimple_range_op_handler::maybe_builtin_call): Handle
+ CFN_BUILT_IN_ISFINITE.
+
+2024-08-15 Haochen Gui <guihaoc@gcc.gnu.org>
+
+ PR target/114678
+ * gimple-range-op.cc (class cfn_isinf): New.
+ (op_cfn_isinf): New variables.
+ (gimple_range_op_handler::maybe_builtin_call): Handle
+ CASE_FLT_FN (BUILT_IN_ISINF).
+
2024-08-14 Marek Polacek <polacek@redhat.com>
PR c++/116015
+2024-08-15 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/116320
+ * semantics.cc (check_accessibility_of_qualified_id): Try
+ currently_open_class when using the object type as the
+ effective qualifying type.
+
+2024-08-15 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/116327
+ PR c++/104981
+ PR c++/115550
+ * coroutines.cc (morph_fn_to_coro): Use build_fold_indirect_ref
+ instead of cp_build_fold_indirect_ref.
+
2024-08-14 Marek Polacek <polacek@redhat.com>
PR c++/116015
+2024-08-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/116387
+ * resolve.cc (resolve_operator): Use %L rather than %%L in format
+ string.
+
+2024-08-15 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/110033
+ * class.cc (gfc_is_class_scalar_expr): Coarray refs that ref
+ only self, aka this image, are regarded as scalar, too.
+ * resolve.cc (resolve_assoc_var): Ignore this image coarray refs
+ and do not build a new class type.
+ * trans-expr.cc (gfc_get_caf_token_offset): Get the caf token
+ from the descriptor for associated variables.
+ (gfc_conv_variable): Same.
+ (gfc_trans_pointer_assignment): Assign token to temporary
+ associate variable, too.
+ (gfc_trans_scalar_assign): Add flag that assign is for associate
+ and use it to assign the token.
+ (is_assoc_assign): Detect that expressions are for associate
+ assign.
+ (gfc_trans_assignment_1): Treat associate assigns like pointer
+ assignments where possible.
+ * trans-stmt.cc (trans_associate_var): Set same_class only for
+ class-targets.
+ * trans.h (gfc_trans_scalar_assign): Add flag to
+ trans_scalar_assign for marking associate assignments.
+
+2024-08-15 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ * arith.cc (reduce_unary): Use expr.corank.
+ (reduce_binary_ac): Same.
+ (reduce_binary_ca): Same.
+ (reduce_binary_aa): Same.
+ * array.cc (gfc_match_array_ref): Same.
+ * check.cc (dim_corank_check): Same.
+ (gfc_check_move_alloc): Same.
+ (gfc_check_image_index): Same.
+ * class.cc (gfc_add_class_array_ref): Same.
+ (finalize_component): Same.
+ * data.cc (gfc_assign_data_value): Same.
+ * decl.cc (match_clist_expr): Same.
+ (add_init_expr_to_sym): Same.
+ * expr.cc (simplify_intrinsic_op): Same.
+ (simplify_parameter_variable): Same.
+ (gfc_check_assign_symbol): Same.
+ (gfc_get_variable_expr): Same.
+ (gfc_add_full_array_ref): Same.
+ (gfc_lval_expr_from_sym): Same.
+ (gfc_get_corank): Removed.
+ * frontend-passes.cc (callback_reduction): Use expr.corank.
+ (create_var): Same.
+ (combine_array_constructor): Same.
+ (optimize_minmaxloc): Same.
+ * gfortran.h (gfc_get_corank): Add corank to gfc_expr.
+ * intrinsic.cc (gfc_get_intrinsic_function_symbol): Use
+ expr.corank.
+ (gfc_convert_type_warn): Same.
+ (gfc_convert_chartype): Same.
+ * iresolve.cc (resolve_bound): Same.
+ (gfc_resolve_cshift): Same.
+ (gfc_resolve_eoshift): Same.
+ (gfc_resolve_logical): Same.
+ (gfc_resolve_matmul): Same.
+ * match.cc (copy_ts_from_selector_to_associate): Same.
+ * matchexp.cc (gfc_get_parentheses): Same.
+ * parse.cc (parse_associate): Same.
+ * primary.cc (gfc_match_rvalue): Same.
+ * resolve.cc (resolve_structure_cons): Same.
+ (resolve_actual_arglist): Same.
+ (resolve_elemental_actual): Same.
+ (resolve_generic_f0): Same.
+ (resolve_unknown_f): Same.
+ (resolve_operator): Same.
+ (gfc_expression_rank): Same and set dimen_type for coarray to
+ default.
+ (gfc_op_rank_conformable): Use expr.corank.
+ (add_caf_get_intrinsic): Same.
+ (resolve_variable): Same.
+ (gfc_fixup_inferred_type_refs): Same.
+ (check_host_association): Same.
+ (resolve_compcall): Same.
+ (resolve_expr_ppc): Same.
+ (resolve_assoc_var): Same.
+ (fixup_array_ref): Same.
+ (resolve_select_type): Same.
+ (add_comp_ref): Same.
+ (get_temp_from_expr): Same.
+ (resolve_fl_var_and_proc): Same.
+ (resolve_symbol): Same.
+ * symbol.cc (gfc_is_associate_pointer): Same.
+ * trans-array.cc (walk_coarray): Same.
+ (gfc_conv_expr_descriptor): Same.
+ (gfc_walk_array_ref): Same.
+ * trans-array.h (gfc_walk_array_ref): Same.
+ * trans-expr.cc (gfc_get_ultimate_alloc_ptr_comps_caf_token):
+ Same.
+ * trans-intrinsic.cc (trans_this_image): Same.
+ (trans_image_index): Same.
+ (conv_intrinsic_cobound): Same.
+ (gfc_walk_intrinsic_function): Same.
+ (conv_intrinsic_move_alloc): Same.
+ * trans-stmt.cc (gfc_trans_lock_unlock): Same.
+ (trans_associate_var): Same and adapt to slightly different
+ behaviour of expr.corank and gfc_get_corank.
+ (gfc_trans_allocate): Same.
+ * trans.cc (gfc_add_finalizer_call): Same.
+
2024-08-14 Harald Anlauf <anlauf@gmx.de>
* simplify.cc (gfc_simplify_sizeof): Clear used gmp variable.
+2024-08-15 Vineet Gupta <vineetg@rivosinc.com>
+
+ * gcc.target/riscv/fclass.c: New tests.
+
+2024-08-15 Roger Sayle <roger@nextmovesoftware.com>
+ Uros Bizjak <ubizjak@gmail.com>
+
+ * g++.target/i386/pr116275-2.C: New test case.
+
+2024-08-15 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/115583
+ * g++.dg/cpp23/consteval-if13.C: Compile with -O.
+
+2024-08-15 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR testsuite/116343
+ * gcc.dg/torture/pr116343.c: New test.
+
+2024-08-15 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/110033
+ * gfortran.dg/coarray/associate_1.f90: New test.
+
+2024-08-15 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/116320
+ * g++.dg/template/access42.C: New test.
+
+2024-08-15 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/116327
+ PR c++/104981
+ PR c++/115550
+ * g++.dg/coroutines/pr104981-preview-this.C: Improve coverage by
+ adding a non-static data member use within the coroutine member
+ function.
+ * g++.dg/coroutines/pr116327-preview-this.C: New test.
+
+2024-08-15 Xi Ruoyao <xry111@xry111.site>
+
+ * gcc.target/loongarch/fclass-compile.c: New test.
+ * gcc.target/loongarch/fclass-run.c: New test.
+
+2024-08-15 liuhongt <hongtao.liu@intel.com>
+
+ * gcc.target/i386/pr116274.c: New test.
+ * gcc.target/i386/pr113560.c: Scan either mulq or mulx.
+
+2024-08-15 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR target/116371
+ * gcc.target/aarch64/sme2/acle-asm/pext_c16.c,
+ gcc.target/aarch64/sme2/acle-asm/pext_c16_x2.c,
+ gcc.target/aarch64/sme2/acle-asm/pext_c32.c,
+ gcc.target/aarch64/sme2/acle-asm/pext_c32_x2.c,
+ gcc.target/aarch64/sme2/acle-asm/pext_c64.c,
+ gcc.target/aarch64/sme2/acle-asm/pext_c64_x2.c,
+ gcc.target/aarch64/sme2/acle-asm/pext_c8.c,
+ gcc.target/aarch64/sme2/acle-asm/pext_c8_x2.c: Replace with...
+ * gcc.target/aarch64/sme2/acle-asm/pext_lane_c16.c,
+ gcc.target/aarch64/sme2/acle-asm/pext_lane_c16_x2.c,
+ gcc.target/aarch64/sme2/acle-asm/pext_lane_c32.c,
+ gcc.target/aarch64/sme2/acle-asm/pext_lane_c32_x2.c,
+ gcc.target/aarch64/sme2/acle-asm/pext_lane_c64.c,
+ gcc.target/aarch64/sme2/acle-asm/pext_lane_c64_x2.c,
+ gcc.target/aarch64/sme2/acle-asm/pext_lane_c8.c,
+ gcc.target/aarch64/sme2/acle-asm/pext_lane_c8_x2.c: ...these new tests,
+ testing for svpext_lane instead of svpext.
+
+2024-08-15 Haochen Gui <guihaoc@gcc.gnu.org>
+
+ * gcc.target/powerpc/float128-cmp2-runnable.c: Replace
+ ppc_float128_sw with ppc_float128_hw and remove p9vector_hw.
+
+2024-08-15 Haochen Gui <guihaoc@gcc.gnu.org>
+
+ PR target/97786
+ * gcc.target/powerpc/pr97786-7.c: New test.
+ * gcc.target/powerpc/pr97786-8.c: New test.
+
+2024-08-15 Haochen Gui <guihaoc@gcc.gnu.org>
+
+ PR target/97786
+ * gcc.target/powerpc/pr97786-4.c: New test.
+ * gcc.target/powerpc/pr97786-5.c: New test.
+
+2024-08-15 Haochen Gui <guihaoc@gcc.gnu.org>
+
+ PR target/97786
+ * gcc.target/powerpc/pr97786-1.c: New test.
+ * gcc.target/powerpc/pr97786-2.c: New test.
+
+2024-08-15 Haochen Gui <guihaoc@gcc.gnu.org>
+
+ * gcc.dg/tree-ssa/range-isnormal.c: New test.
+
+2024-08-15 Haochen Gui <guihaoc@gcc.gnu.org>
+
+ * gcc.dg/tree-ssa/range-isfinite.c: New test.
+
+2024-08-15 Haochen Gui <guihaoc@gcc.gnu.org>
+
+ PR target/114678
+ * gcc.dg/tree-ssa/range-isinf.c: New test.
+ * gcc.dg/tree-ssa/range-sincos.c: Remove xfail for s390.
+ * gcc.dg/tree-ssa/vrp-float-abs-1.c: Likewise.
+
2024-08-14 Marek Polacek <polacek@redhat.com>
PR c++/116015