RalfJung wrote: Yeah double-float-double would be wrong to optimize away since the payload gets truncated. But float-double-float should be legal, and [LLVM does it](https://gcc.godbolt.org/z/q8PGMf7qj). https://github.com/llvm/llvm-project/pull/68554