https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86097

--- Comment #3 from Tom de Vries <vries at gcc dot gnu.org> ---
Tentative patch:
...
diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c
index bf425afd436..555842b8420 100644
--- a/gcc/tree-ssa-loop-manip.c
+++ b/gcc/tree-ssa-loop-manip.c
@@ -1542,7 +1542,7 @@ canonicalize_loop_ivs (struct loop *loop, tree *nit, bool
bump_in_latc
h)
   precision = GET_MODE_PRECISION (mode);
   type = build_nonstandard_integer_type (precision, unsigned_p);

-  if (original_precision != precision)
+  if (original_precision != precision || type != TREE_TYPE (*nit))
     {
       *nit = fold_convert (type, *nit);
       *nit = force_gimple_operand (*nit, &stmts, true, NULL_TREE);
...

Reply via email to