[Bug tree-optimization/105596] Loop counter widened to 128-bit unnecessarily
peter at cordes dot ca
gcc-bugzilla@gcc.gnu.org
Fri May 13 18:01:16 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105596
--- Comment #1 from Peter Cordes <peter at cordes dot ca> ---
https://godbolt.org/z/aoG55T5Yq
gcc -O3 -m32 has the same problem with unsigned long long total and unsigned
i.
Pretty much identical instruction sequences in the loop for all 3 versions,
doing add/adc to increment i, for example. (Plus a bit of spilling).
fact_gcc_handhold still compiles without the unnecessary widening.
Perhaps should retitle to widen to a "2-register type".
IDK how easily this occurs in real-world loops with 64 and 32-bit integers on
32-bit machines, but that's probably more of a concern for wasting more clock
cycles worldwide.
More information about the Gcc-bugs
mailing list