https://gcc.gnu.org/g:ed58012c3d680ba9599bee348529077df4595f54
commit ed58012c3d680ba9599bee348529077df4595f54 Author: Mikael Morin <[email protected]> Date: Mon Oct 6 15:27:49 2025 +0200 Correction régression loop_versioning_6.f90 Diff: --- gcc/gimple-loop-versioning.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gcc/gimple-loop-versioning.cc b/gcc/gimple-loop-versioning.cc index a265def81021..fdbbfecb8af8 100644 --- a/gcc/gimple-loop-versioning.cc +++ b/gcc/gimple-loop-versioning.cc @@ -1063,8 +1063,12 @@ loop_versioning::analyze_stride (address_info &address, - the stride is an SSA name that is invariant in STMT's loop, since otherwise versioning isn't possible. */ if (term.versioning_value == NULL_TREE) - term.versioning_value = build_int_cst (TREE_TYPE (stride), - address.type_size / term.multiplier); + { + term.versioning_value = build_int_cst (TREE_TYPE (stride), + address.type_size / term.multiplier); + if (integer_zerop (term.versioning_value)) + term.versioning_value = build_one_cst (TREE_TYPE (stride)); + } unsigned HOST_WIDE_INT access_size = address.max_offset - address.min_offset; unsigned HOST_WIDE_INT final_stride; if (acceptable_multiplier_p (term.versioning_value, term.multiplier,
