[llvm] Add 3 way compare <=> integer intrinsics to Langref (PR #83227)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 6 08:32:56 PST 2024
scottmcm wrote:
> Is this meant to be i32?
FWIW, I feel strongly that it shouldn't be `i32`, because it would be a shame to need a `trunc` on it for both clang & rustc -- today `std::strong_ordering` (<https://cpp.godbolt.org/z/4qc7YhqW3>) and `std::cmp::Ordering` (<https://rust.godbolt.org/z/5E3fK5hf5>) are both `i8`.
Sometimes needing a lossless instruction like `sext` to get an i32 feels much more tolerable than nearly-always needing a lossy `trunc` instruction to get `i8` -- especially when we don't yet have `trunc nsw`.
I don't know enough to be able to say whether overloading it for multiple possible return types would be valuable, so I'll leave that for others to comment on.
https://github.com/llvm/llvm-project/pull/83227
More information about the llvm-commits
mailing list