Closes #12033
IR Before:
```llvm
normal-return: ; preds = %while_body
%113 = load i64* %i
%114 = sub i64 %113, 1
store i64 %114, i64* %i
br label %while_cond
```
IR After:
```llvm
normal-return: ; preds = %while_cond
store i8 %11, i8* %0
%18 = load i8* %0, !range !0
call void @_ZN9Temporary9glue_drop19he4ee51d3c03b9cf4ajE(%struct.Temporary* %10)
%19 = bitcast %struct.Temporary* %10 to i8*
call void @_ZN2rt11global_heap14exchange_free_19h4fabdf24a2250163aj4v0.0E(i8* %19)
%20 = icmp ne i8 %18, 0
br i1 %20, label %while_body, label %while_exit
```