https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108552
--- Comment #24 from Richard Biener <rguenth at gcc dot gnu.org> --- Does diff --git a/gcc/tree-ssa-loop-ivopts.cc b/gcc/tree-ssa-loop-ivopts.cc index 0dd47910f97..f780c0ce08c 100644 --- a/gcc/tree-ssa-loop-ivopts.cc +++ b/gcc/tree-ssa-loop-ivopts.cc @@ -2241,7 +2241,7 @@ may_be_nonaddressable_p (tree expr) { case VAR_DECL: /* Check if it's a register variable. */ - return DECL_HARD_REGISTER (expr); + return DECL_HARD_REGISTER (expr) || DECL_NONALIASED (expr); case TARGET_MEM_REF: /* TARGET_MEM_REFs are translated directly to valid MEMs on the fix it?