https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121258
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I noticed LLVM does it slightly different. They do it more like: ``` uint32_t func_c(uint32_t xs, uint32_t x) { uint32_t i = xs; bool t; do { t = cond(i); i++; }while (t); // asm("":"+r"(i)); i--; return i; } ```