diff options
| author | Trevor Gross <t.gross35@gmail.com> | 2025-02-23 14:30:25 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-23 14:30:25 -0500 |
| commit | a2bb4d748db15454900f5830cfc6ab1c7311ea8b (patch) | |
| tree | 8de549d2a4c71a53a6a5e9bc96216c4a657b3b12 /compiler/rustc_codegen_gcc | |
| parent | 31719b59c87272e956e0855bf96e7f9239f46150 (diff) | |
| parent | b9d0555d11736f96b4fbbb83bfed94a7098a9ba7 (diff) | |
| download | rust-a2bb4d748db15454900f5830cfc6ab1c7311ea8b.tar.gz rust-a2bb4d748db15454900f5830cfc6ab1c7311ea8b.zip | |
Rollup merge of #136543 - RalfJung:round-ties-even, r=tgross35
intrinsics: unify rint, roundeven, nearbyint in a single round_ties_even intrinsic LLVM has three intrinsics here that all do the same thing (when used in the default FP environment). There's no reason Rust needs to copy that historically-grown mess -- let's just have one intrinsic and leave it up to the LLVM backend to decide how to lower that. Suggested by `@hanna-kruppe` in https://github.com/rust-lang/rust/issues/136459; Cc `@tgross35` try-job: test-various
Diffstat (limited to 'compiler/rustc_codegen_gcc')
| -rw-r--r-- | compiler/rustc_codegen_gcc/src/intrinsic/mod.rs | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/compiler/rustc_codegen_gcc/src/intrinsic/mod.rs b/compiler/rustc_codegen_gcc/src/intrinsic/mod.rs index 433868e238a..f8672c07299 100644 --- a/compiler/rustc_codegen_gcc/src/intrinsic/mod.rs +++ b/compiler/rustc_codegen_gcc/src/intrinsic/mod.rs @@ -84,14 +84,11 @@ fn get_simple_intrinsic<'gcc, 'tcx>( sym::ceilf64 => "ceil", sym::truncf32 => "truncf", sym::truncf64 => "trunc", - sym::rintf32 => "rintf", - sym::rintf64 => "rint", - sym::nearbyintf32 => "nearbyintf", - sym::nearbyintf64 => "nearbyint", + // We match the LLVM backend and lower this to `rint`. + sym::round_ties_even_f32 => "rintf", + sym::round_ties_even_f64 => "rint", sym::roundf32 => "roundf", sym::roundf64 => "round", - sym::roundevenf32 => "roundevenf", - sym::roundevenf64 => "roundeven", sym::abort => "abort", _ => return None, }; |
