rust/compiler
bors 0a3b557d52 Auto merge of #95317 - Jules-Bertholet:round_ties_to_even, r=pnkfelix,m-ou-se,scottmcm
Add `round_ties_even` to `f32` and `f64`

Tracking issue: #96710

Redux of #82273. See also #55107

Adds a new method, `round_ties_even`, to `f32` and `f64`, that rounds the float to the nearest integer , rounding halfway cases to the number with an even least significant bit. Uses the `roundeven` LLVM intrinsic to do this.

Of the five IEEE 754 rounding modes, this is the only one that doesn't already have a round-to-integer function exposed by Rust (others are `round`, `floor`, `ceil`, and `trunc`).  Ties-to-even is also the rounding mode used for int-to-float and float-to-float `as` casts, as well as float arithmentic operations. So not having an explicit rounding method for it seems like an oversight.

Bikeshed: this PR currently uses `round_ties_even` for the name of the method. But maybe `round_ties_to_even` is better, or `round_even`, or `round_to_even`?
2023-03-07 09:43:12 +00:00
..
rustc Add a new rustc_driver dylib to rexport rustc_driver_impl 2023-02-02 07:34:41 +01:00
rustc_abi Unify validity checks into a single query 2023-02-23 18:42:36 +00:00
rustc_apfloat
rustc_arena
rustc_ast Match unmatched backticks in comments in compiler/ 2023-03-03 08:39:00 +01:00
rustc_ast_lowering Auto merge of #108351 - petrochenkov:rmdit, r=cjgillot 2023-03-05 10:37:02 +00:00
rustc_ast_passes Remove allow(potential_query_instability) from ast_passes 2023-03-04 12:39:54 +00:00
rustc_ast_pretty Use ThinVec in various AST types. 2023-02-21 11:51:56 +11:00
rustc_attr errors: generate typed identifiers in each crate 2023-02-22 09:15:53 +00:00
rustc_baked_icu_data update ICU4X to 1.1.0 2023-02-04 22:28:59 +01:00
rustc_borrowck Auto merge of #108735 - clubby789:borrowck-unstable, r=Nilstrieb 2023-03-07 07:01:57 +00:00
rustc_builtin_macros Explain compile-time vs run-time difference in env!() error message 2023-02-28 16:44:59 +00:00
rustc_codegen_cranelift Auto merge of #95317 - Jules-Bertholet:round_ties_to_even, r=pnkfelix,m-ou-se,scottmcm 2023-03-07 09:43:12 +00:00
rustc_codegen_gcc Auto merge of #95317 - Jules-Bertholet:round_ties_to_even, r=pnkfelix,m-ou-se,scottmcm 2023-03-07 09:43:12 +00:00
rustc_codegen_llvm Auto merge of #95317 - Jules-Bertholet:round_ties_to_even, r=pnkfelix,m-ou-se,scottmcm 2023-03-07 09:43:12 +00:00
rustc_codegen_ssa Auto merge of #108351 - petrochenkov:rmdit, r=cjgillot 2023-03-05 10:37:02 +00:00
rustc_const_eval Rollup merge of #108803 - cjgillot:const-prop-normalize, r=oli-obk 2023-03-06 16:41:59 +01:00
rustc_data_structures Auto merge of #108709 - matthiaskrgr:rollup-j2tjbyx, r=matthiaskrgr 2023-03-03 22:45:58 +00:00
rustc_driver Remove unneeded extern crate 2023-02-02 07:47:39 +01:00
rustc_driver_impl refactor: statically guarantee that current error codes are documented 2023-02-26 20:12:36 +13:00
rustc_error_codes refactor: statically guarantee that current error codes are documented 2023-02-26 20:12:36 +13:00
rustc_error_messages Handle selecting the default locale better 2023-02-23 01:14:10 +01:00
rustc_errors Properly colorize multi-part suggestions in the same line 2023-03-04 00:29:52 +00:00
rustc_expand rustc_expand: make proc-macro derive error translatable 2023-03-04 07:54:29 +02:00
rustc_feature Revert "Stabilize #![feature(target_feature_11)]" 2023-03-02 13:41:17 +01:00
rustc_fs_util
rustc_graphviz Fix uninlined_format_args for some compiler crates 2023-01-05 19:01:12 +01:00
rustc_hir Only look for param in generics if it actually comes from generics 2023-02-28 06:27:56 +00:00
rustc_hir_analysis Auto merge of #95317 - Jules-Bertholet:round_ties_to_even, r=pnkfelix,m-ou-se,scottmcm 2023-03-07 09:43:12 +00:00
rustc_hir_pretty Add ErrorGuaranteed to HIR ExprKind::Err 2023-02-25 19:46:36 +00:00
rustc_hir_typeck Rollup merge of #108775 - cjgillot:issue-107860, r=compiler-errors 2023-03-05 20:57:23 +01:00
rustc_incremental Match unmatched backticks in compiler/ that are part of rustdoc 2023-03-03 08:39:00 +01:00
rustc_index Match unmatched backticks in compiler/ that are part of rustdoc 2023-03-03 08:39:00 +01:00
rustc_infer Auto merge of #108351 - petrochenkov:rmdit, r=cjgillot 2023-03-05 10:37:02 +00:00
rustc_interface Match end user facing unmatched backticks in compiler/ 2023-03-03 08:39:36 +01:00
rustc_lexer Rustdoc-ify LiteralKind note 2023-03-03 08:39:36 +01:00
rustc_lint Auto merge of #108351 - petrochenkov:rmdit, r=cjgillot 2023-03-05 10:37:02 +00:00
rustc_lint_defs Rollup merge of #108363 - cjgillot:unused-crate, r=WaffleLapkin 2023-02-27 18:48:49 +01:00
rustc_llvm Rollup merge of #108599 - nikic:drop-init, r=cuviper 2023-03-03 20:06:27 +01:00
rustc_log Rollup merge of #107895 - matthiaskrgr:cl, r=compiler-errors 2023-02-11 17:18:44 +01:00
rustc_macros Allow using bool for optional diagnostics 2023-02-27 12:54:11 +00:00
rustc_metadata Auto merge of #101550 - CraftSpider:link-dead-windows, r=wesleywiser 2023-03-05 02:00:58 +00:00
rustc_middle Auto merge of #108691 - aliemjay:closure-subject, r=jackh726 2023-03-07 03:50:22 +00:00
rustc_mir_build Auto merge of #108351 - petrochenkov:rmdit, r=cjgillot 2023-03-05 10:37:02 +00:00
rustc_mir_dataflow Erase lifetimes in SROA. 2023-03-05 18:35:30 +00:00
rustc_mir_transform Rollup merge of #108786 - saethlin:free-regions-check, r=oli-obk 2023-03-06 16:41:58 +01:00
rustc_monomorphize rustc_middle: Remove trait DefIdTree 2023-03-02 23:46:44 +04:00
rustc_parse Rollup merge of #108715 - chenyukang:yukang/cleanup-parser-delims, r=compiler-errors 2023-03-04 20:48:17 +01:00
rustc_parse_format Replace some thens with some then_somes 2023-02-16 15:26:03 +00:00
rustc_passes Rollup merge of #107801 - davidtwco:stability-implies-const, r=Nilstrieb 2023-03-06 16:41:56 +01:00
rustc_plugin_impl errors: generate typed identifiers in each crate 2023-02-22 09:15:53 +00:00
rustc_privacy rustc_middle: Remove trait DefIdTree 2023-03-02 23:46:44 +04:00
rustc_query_impl Match unmatched backticks in comments in compiler/ 2023-03-03 08:39:00 +01:00
rustc_query_system Fix a race in the query system 2023-02-28 07:47:58 +01:00
rustc_resolve Auto merge of #108351 - petrochenkov:rmdit, r=cjgillot 2023-03-05 10:37:02 +00:00
rustc_serialize Emit the enum discriminant separately for the Encodable macro 2023-02-25 01:04:56 +01:00
rustc_session Rollup merge of #108405 - Nilstrieb:lazy-crate-name-optimization-fuel, r=WaffleLapkin 2023-03-04 15:24:37 +05:30
rustc_smir
rustc_span Auto merge of #95317 - Jules-Bertholet:round_ties_to_even, r=pnkfelix,m-ou-se,scottmcm 2023-03-07 09:43:12 +00:00
rustc_symbol_mangling Rename many interner functions. 2023-02-24 07:32:24 +11:00
rustc_target Auto merge of #106476 - keith:ks/add-sanitizer-support-for-modern-ios-platforms, r=badboy 2023-02-18 05:58:41 +00:00
rustc_trait_selection Rollup merge of #108750 - compiler-errors:aaaaaaaa, r=lcnr 2023-03-06 16:41:57 +01:00
rustc_traits Add mk_canonical_var_infos_from_iter. 2023-02-24 07:33:02 +11:00
rustc_transmute rustc_middle: Remove trait DefIdTree 2023-03-02 23:46:44 +04:00
rustc_ty_utils Auto merge of #108351 - petrochenkov:rmdit, r=cjgillot 2023-03-05 10:37:02 +00:00
rustc_type_ir make first component of dyn* use pointer layout+type, and adjust DynStar comment 2023-02-18 19:24:55 +00:00