+2025-08-08 Andrew Stubbs <ams@baylibre.com>
+
+ Backported from master:
+ 2025-07-30 Andrew Stubbs <ams@baylibre.com>
+ Julian Brown <julian@codesourcery.com>
+
+ * doc/tm.texi.in (TARGET_VECTORIZE_PREFER_GATHER_SCATTER): Add
+ documentation hook.
+ * doc/tm.texi: Regenerate.
+ * target.def (prefer_gather_scatter): Add target hook under vectorizer.
+ * hooks.cc (hook_bool_mode_int_unsigned_false): New function.
+ * hooks.h (hook_bool_mode_int_unsigned_false): New prototype.
+ * tree-vect-stmts.cc (vect_use_strided_gather_scatters_p): Add
+ parameters group_size and single_element_p, and rework to use
+ targetm.vectorize.prefer_gather_scatter.
+ (get_group_load_store_type): Move some of the condition into
+ vect_use_strided_gather_scatters_p.
+ * config/gcn/gcn.cc (gcn_prefer_gather_scatter): New function.
+ (TARGET_VECTORIZE_PREFER_GATHER_SCATTER): Define hook.
+
+2025-07-30 Andrew Stubbs <ams@baylibre.com>
+
+ Backported from master:
+ 2025-07-30 Andrew Stubbs <ams@baylibre.com>
+
+ * config/gcn/gcn.cc (gcn_option_override): Add note to set default for
+ param_vect_partial_vector_usage to "1".
+ * optc-save-gen.awk: Don't pass through options marked "NoOffload".
+ * params.opt (-param=vect-epilogues-nomask): Add NoOffload.
+ (-param=vect-partial-vector-usage): Likewise.
+ (-param=vect-inner-loop-cost-factor): Likewise.
+
+2025-07-30 Andrew Stubbs <ams@baylibre.com>
+
+ Backported from master:
+ 2025-07-21 Andrew Stubbs <ams@baylibre.com>
+
+ * config/gcn/gcn-valu.md (gather_load<mode><vndi>): New.
+ (scatter_store<mode><vndi>): New.
+ (mask_gather_load<mode><vndi>): New.
+ (mask_scatter_store<mode><vndi>): New.
+ * config/gcn/gcn.cc (gcn_expand_scaled_offsets): Support DImode.
+
+2025-07-30 Andrew Stubbs <ams@baylibre.com>
+
+ Backported from master:
+ 2025-07-21 Andrew Stubbs <ams@baylibre.com>
+
+ * config/gcn/gcn.cc (GEN_VNM_NOEXEC): Use USE_QHF.
+ (GEN_VNM): Likewise, and call for new ashl and mul variants.
+
+2025-07-30 Andrew Stubbs <ams@baylibre.com>
+
+ Backported from master:
+ 2025-07-21 Andrew Stubbs <ams@baylibre.com>
+
+ * config/gcn/gcn-valu.md (add<mode>3_dup): New.
+ (add<mode>3_dup_exec): New.
+ (<su>mul<mode>3_highpart_dup<exec>): New.
+ (mul<mode>3_dup): Move the vec_duplicate to operand 1.
+ (mul<mode>3_dup_exec): New.
+ (vec_series<mode>): Adjust call to gen_mul<mode>3_dup.
+ * config/gcn/gcn.cc (gcn_expand_vector_init): Likewise.
+
+2025-07-30 Andrew Stubbs <ams@baylibre.com>
+
+ Backported from master:
+ 2025-07-16 Andrew Stubbs <ams@baylibre.com>
+
+ * config/gcn/gcn-valu.md (add<mode>3_vcc_dup<exec_vcc>): Change
+ operand 2 to allow gcn_alu_operand. Swap the operands in the VCC
+ update RTL.
+ (add<mode>3_vcc_zext_dup): Likewise.
+ (add<mode>3_vcc_zext_dup_exec): Likewise.
+ (add<mode>3_vcc_zext_dup2): Likewise.
+ (add<mode>3_vcc_zext_dup2_exec): Likewise.
+
+2025-07-30 Andrew Stubbs <ams@baylibre.com>
+
+ Backported from master:
+ 2025-07-14 Andrew Stubbs <ams@baylibre.com>
+
+ * config/gcn/gcn-valu.md (vec_cmpu<mode>di_exec): Call gen_vec_cmp*,
+ not gen_vec_cmpu*.
+
+2025-07-30 Andrew Stubbs <ams@baylibre.com>
+
+ Backported from master:
+ 2025-07-14 Andrew Stubbs <ams@baylibre.com>
+
+ * config/gcn/gcn-valu.md (add<mode>3<exec_clobber>): Rename ...
+ (add<mode>3<exec>): ... to this, remove the clobber, and change the
+ instruction from v_add_co_u32 to v_add_u32.
+ (add<mode>3_dup<exec_clobber>): Rename ...
+ (add<mode>3_dup<exec>): ... to this, and likewise.
+ (sub<mode>3<exec_clobber>): Rename ...
+ (sub<mode>3<exec>): ... to this, and likewise
+ * config/gcn/gcn.md (addsi3): Remove the DI clobber, and change the
+ instruction from v_add_co_u32 to v_add_u32.
+ (addsi3_scc): Likewise.
+ (subsi3): Likewise, but for v_sub_co_u32.
+ (muldi3): Likewise.
+
2025-07-21 Thomas Schwinge <tschwinge@baylibre.com>
Backported from master:
+2025-10-22 Paul-Antoine Arras <parras@baylibre.com>
+
+ Backported from master:
+ 2025-10-21 Paul-Antoine Arras <parras@baylibre.com>
+
+ PR c/120180
+ PR fortran/122306
+ * gfortran.h (enum gfc_exec_op): Add EXEC_OMP_FIRST_OPENMP_EXEC and
+ EXEC_OMP_LAST_OPENMP_EXEC.
+ * openmp.cc (gfc_match_omp_context_selector): Remove static. Remove
+ checks on score. Add cleanup. Remove checks on trait properties.
+ (gfc_match_omp_context_selector_specification): Remove static. Adjust
+ calls to gfc_match_omp_context_selector.
+ (gfc_match_omp_declare_variant): Adjust call to
+ gfc_match_omp_context_selector_specification.
+ (match_omp_metadirective): Likewise.
+ (icode_code_error_callback): Reject all statements except
+ 'assume' and 'metadirective'.
+ (gfc_resolve_omp_context_selector): New function.
+ (resolve_omp_metadirective): Skip metadirectives which context selectors
+ can be statically resolved to false. Replace metadirective by its body
+ if only 'nothing' remains.
+ (gfc_resolve_omp_declare): Call gfc_resolve_omp_context_selector for
+ each variant.
+
2025-06-06 Tobias Burnus <tburnus@baylibre.com>
Backported from master:
+2025-10-22 Paul-Antoine Arras <parras@baylibre.com>
+
+ Backported from master:
+ 2025-10-22 Paul-Antoine Arras <parras@baylibre.com>
+
+ PR middle-end/122378
+ * c-c++-common/gomp/attrs-metadirective-2.c: Uncomment local label
+ declaration.
+ * c-c++-common/gomp/metadirective-2.c: Likewise.
+
+2025-10-22 Paul-Antoine Arras <parras@baylibre.com>
+
+ Backported from master:
+ 2025-10-21 Paul-Antoine Arras <parras@baylibre.com>
+
+ PR c/120180
+ PR fortran/122306
+ * c-c++-common/gomp/imperfect1.c: Adjust dg-error.
+ * c-c++-common/gomp/imperfect4.c: Likewise.
+ * c-c++-common/gomp/pr120180.c: Move to...
+ * c-c++-common/gomp/pr120180-1.c: ...here. Remove dg-error.
+ * g++.dg/gomp/attrs-imperfect1.C: Adjust dg-error.
+ * g++.dg/gomp/attrs-imperfect4.C: Likewise.
+ * gfortran.dg/gomp/declare-variant-2.f90: Adjust dg-error.
+ * gfortran.dg/gomp/declare-variant-20.f90: Likewise.
+ * c-c++-common/gomp/pr120180-2.c: New test.
+ * g++.dg/gomp/pr120180-1.C: New test.
+ * gfortran.dg/gomp/pr120180-1.f90: New test.
+ * gfortran.dg/gomp/pr120180-2.f90: New test.
+ * gfortran.dg/gomp/pr122306-1.f90: New file.
+ * gfortran.dg/gomp/pr122306-2.f90: New file.
+
2025-07-21 Thomas Schwinge <tschwinge@baylibre.com>
Backported from master: