The standard dialect currently offers
sitofp operations, which convert values between floating point and signed integer types. The Standard-to-LLVM conversion provides one-to-one lowerings from these operations to the corresponding operations in the LLVM dialect. While the LLVM dialect also offers
uitofp operations, supporting unsigned integer types, no such operations exist in standard.
In our project, we have implemented these “missing” conversions in a separate “standard extension” dialect, supporting a general facility for casting between different numeric types. It seems likely that anyone implementing a generic numeric cast will end up doing something similar.
I propose that
std.uitofp operations should be added, complementary to the existing signed conversions.