https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127913
--- Comment #4 from Oleksandr Kulkov <adamant.pwn at gmail dot com> --- Hi Michael, Richard mentioned in comment 3 that you prototyped a type promotion/demotion pass. Could you share it, or say where it stands? I am looking at the same loop in LLVM (https://github.com/llvm/llvm-project/issues/232368). The length variable there only shrinks, so it fits in 64 bits. Proving that needs the loop's exit condition on the back edge. Does your prototype handle a loop-carried value like that, or only straight-line code?
