https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69992
--- Comment #7 from acsawdey at gcc dot gnu.org --- I just pulled that sms branch from https://github.com/ispras/gcc-sms.git and built it on ppc64le. sms-4 does not do any better than with trunk, we still have the problem of incorrectly labeling it as possibly infinite in loop_doloop: Loop 1 is simple: simple exit 5 -> 6 infinite if: (expr_list:REG_DEP_TRUE (ne:SI (and:DI (minus:DI (plus:DI (ashift:DI (reg:DI 211) (const_int 2 [0x2])) (reg/v/f:DI 205 [ ap ])) (reg:DI 193 [ ivtmp.20 ])) (const_int 3 [0x3])) (const_int 0 [0])) (nil)) This inhibits doloop conversion and then sms cannot take place either. What arch did you test where sms-4 passed, amonakov?