https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83952
--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> --- But at least we could perform strength reduction in IVOPTs, replacing for (i = 0; i < 100; i++) { val = 2 * i; a[i] = val; } with for (i = 0, j = 0; i < 100; i++, j+=2) { val = j; a[i] = val; } I guess we might even consider this but reject it based on costs. Iff we then could see that j is only used in a int to float conversion we might evaluate precision/round-off issues and elide the IV to float ...