apolloww wrote: Thanks for the fix! I think originally the deferred conversion is placed after `coro.end` so that it won't be counted as "use across suspend point", but it doesn't stop optimizer from breaking that assumption. https://github.com/llvm/llvm-project/pull/66706