https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112536
--- Comment #11 from Sam James <sjames at gcc dot gnu.org> ---
Reduced from llvm:
```
void swap() {
unsigned Defs, Kills;
while (Kills && Defs) {
int __trans_tmp_3 = __builtin_ctz(Kills);
unsigned KReg = __builtin_ctz(Defs), DReg = __trans_tmp_3;
swap();
Kills &= ~(1 << KReg);
Defs &= ~(1 << DReg);
}
}
```
