Skip to content

Commit 14c399c

Browse files
committed
Auto merge of rust-lang#141739 - GuillaumeGomez:rollup-ivboqwd, r=GuillaumeGomez
Rollup of 11 pull requests Successful merges: - rust-lang#137574 (Make `std/src/num` mirror `core/src/num`) - rust-lang#141384 (Enable review queue tracking) - rust-lang#141448 (A variety of improvements to the codegen backends) - rust-lang#141636 (avoid some usages of `&mut P<T>` in AST visitors) - rust-lang#141676 (float: Disable `total_cmp` sNaN tests for `f16`) - rust-lang#141705 (Add eslint as part of `tidy` run) - rust-lang#141715 (Add `loongarch64` with `d` feature to `f32::midpoint` fast path) - rust-lang#141723 (Provide secrets to try builds with new bors) - rust-lang#141728 (Fix false documentation of FnCtxt::diverges) - rust-lang#141729 (resolve target-libdir directly from rustc) - rust-lang#141732 (creader: Remove extraenous String::clone) r? `@ghost` `@rustbot` modify labels: rollup
2 parents 96897df + 9f9af6d commit 14c399c

File tree

8 files changed

+49
-39
lines changed

8 files changed

+49
-39
lines changed

core/src/num/f32.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -999,6 +999,7 @@ impl f32 {
999999
target_arch = "x86_64",
10001000
target_arch = "aarch64",
10011001
all(any(target_arch = "riscv32", target_arch = "riscv64"), target_feature = "d"),
1002+
all(target_arch = "loongarch64", target_feature = "d"),
10021003
all(target_arch = "arm", target_feature = "vfp2"),
10031004
target_arch = "wasm32",
10041005
target_arch = "wasm64",

coretests/tests/floats/f16.rs

Lines changed: 40 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -596,12 +596,15 @@ fn test_total_cmp() {
596596
f16::from_bits(f16::NAN.to_bits() | quiet_bit_mask())
597597
}
598598

599-
fn s_nan() -> f16 {
600-
f16::from_bits((f16::NAN.to_bits() & !quiet_bit_mask()) + 42)
601-
}
599+
// FIXME(f16_f128): Tests involving sNaN are disabled because without optimizations,
600+
// `total_cmp` is getting incorrectly lowered to code that includes a `extend`/`trunc` round
601+
// trip, which quiets sNaNs. See: https://github.com/llvm/llvm-project/issues/104915
602+
// fn s_nan() -> f16 {
603+
// f16::from_bits((f16::NAN.to_bits() & !quiet_bit_mask()) + 42)
604+
// }
602605

603606
assert_eq!(Ordering::Equal, (-q_nan()).total_cmp(&-q_nan()));
604-
assert_eq!(Ordering::Equal, (-s_nan()).total_cmp(&-s_nan()));
607+
// assert_eq!(Ordering::Equal, (-s_nan()).total_cmp(&-s_nan()));
605608
assert_eq!(Ordering::Equal, (-f16::INFINITY).total_cmp(&-f16::INFINITY));
606609
assert_eq!(Ordering::Equal, (-f16::MAX).total_cmp(&-f16::MAX));
607610
assert_eq!(Ordering::Equal, (-2.5_f16).total_cmp(&-2.5));
@@ -622,11 +625,11 @@ fn test_total_cmp() {
622625
assert_eq!(Ordering::Equal, 2.5_f16.total_cmp(&2.5));
623626
assert_eq!(Ordering::Equal, f16::MAX.total_cmp(&f16::MAX));
624627
assert_eq!(Ordering::Equal, f16::INFINITY.total_cmp(&f16::INFINITY));
625-
assert_eq!(Ordering::Equal, s_nan().total_cmp(&s_nan()));
628+
// assert_eq!(Ordering::Equal, s_nan().total_cmp(&s_nan()));
626629
assert_eq!(Ordering::Equal, q_nan().total_cmp(&q_nan()));
627630

628-
assert_eq!(Ordering::Less, (-q_nan()).total_cmp(&-s_nan()));
629-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-f16::INFINITY));
631+
// assert_eq!(Ordering::Less, (-q_nan()).total_cmp(&-s_nan()));
632+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-f16::INFINITY));
630633
assert_eq!(Ordering::Less, (-f16::INFINITY).total_cmp(&-f16::MAX));
631634
assert_eq!(Ordering::Less, (-f16::MAX).total_cmp(&-2.5));
632635
assert_eq!(Ordering::Less, (-2.5_f16).total_cmp(&-1.5));
@@ -646,11 +649,11 @@ fn test_total_cmp() {
646649
assert_eq!(Ordering::Less, 1.5_f16.total_cmp(&2.5));
647650
assert_eq!(Ordering::Less, 2.5_f16.total_cmp(&f16::MAX));
648651
assert_eq!(Ordering::Less, f16::MAX.total_cmp(&f16::INFINITY));
649-
assert_eq!(Ordering::Less, f16::INFINITY.total_cmp(&s_nan()));
650-
assert_eq!(Ordering::Less, s_nan().total_cmp(&q_nan()));
652+
// assert_eq!(Ordering::Less, f16::INFINITY.total_cmp(&s_nan()));
653+
// assert_eq!(Ordering::Less, s_nan().total_cmp(&q_nan()));
651654

652-
assert_eq!(Ordering::Greater, (-s_nan()).total_cmp(&-q_nan()));
653-
assert_eq!(Ordering::Greater, (-f16::INFINITY).total_cmp(&-s_nan()));
655+
// assert_eq!(Ordering::Greater, (-s_nan()).total_cmp(&-q_nan()));
656+
// assert_eq!(Ordering::Greater, (-f16::INFINITY).total_cmp(&-s_nan()));
654657
assert_eq!(Ordering::Greater, (-f16::MAX).total_cmp(&-f16::INFINITY));
655658
assert_eq!(Ordering::Greater, (-2.5_f16).total_cmp(&-f16::MAX));
656659
assert_eq!(Ordering::Greater, (-1.5_f16).total_cmp(&-2.5));
@@ -670,10 +673,10 @@ fn test_total_cmp() {
670673
assert_eq!(Ordering::Greater, 2.5_f16.total_cmp(&1.5));
671674
assert_eq!(Ordering::Greater, f16::MAX.total_cmp(&2.5));
672675
assert_eq!(Ordering::Greater, f16::INFINITY.total_cmp(&f16::MAX));
673-
assert_eq!(Ordering::Greater, s_nan().total_cmp(&f16::INFINITY));
674-
assert_eq!(Ordering::Greater, q_nan().total_cmp(&s_nan()));
676+
// assert_eq!(Ordering::Greater, s_nan().total_cmp(&f16::INFINITY));
677+
// assert_eq!(Ordering::Greater, q_nan().total_cmp(&s_nan()));
675678

676-
assert_eq!(Ordering::Less, (-q_nan()).total_cmp(&-s_nan()));
679+
// assert_eq!(Ordering::Less, (-q_nan()).total_cmp(&-s_nan()));
677680
assert_eq!(Ordering::Less, (-q_nan()).total_cmp(&-f16::INFINITY));
678681
assert_eq!(Ordering::Less, (-q_nan()).total_cmp(&-f16::MAX));
679682
assert_eq!(Ordering::Less, (-q_nan()).total_cmp(&-2.5));
@@ -694,29 +697,29 @@ fn test_total_cmp() {
694697
assert_eq!(Ordering::Less, (-q_nan()).total_cmp(&2.5));
695698
assert_eq!(Ordering::Less, (-q_nan()).total_cmp(&f16::MAX));
696699
assert_eq!(Ordering::Less, (-q_nan()).total_cmp(&f16::INFINITY));
697-
assert_eq!(Ordering::Less, (-q_nan()).total_cmp(&s_nan()));
698-
699-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-f16::INFINITY));
700-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-f16::MAX));
701-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-2.5));
702-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-1.5));
703-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-1.0));
704-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-0.5));
705-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-f16::MIN_POSITIVE));
706-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-max_subnorm()));
707-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-min_subnorm()));
708-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-0.0));
709-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&0.0));
710-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&min_subnorm()));
711-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&max_subnorm()));
712-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&f16::MIN_POSITIVE));
713-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&0.5));
714-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&1.0));
715-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&1.5));
716-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&2.5));
717-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&f16::MAX));
718-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&f16::INFINITY));
719-
assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&s_nan()));
700+
// assert_eq!(Ordering::Less, (-q_nan()).total_cmp(&s_nan()));
701+
702+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-f16::INFINITY));
703+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-f16::MAX));
704+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-2.5));
705+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-1.5));
706+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-1.0));
707+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-0.5));
708+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-f16::MIN_POSITIVE));
709+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-max_subnorm()));
710+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-min_subnorm()));
711+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&-0.0));
712+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&0.0));
713+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&min_subnorm()));
714+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&max_subnorm()));
715+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&f16::MIN_POSITIVE));
716+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&0.5));
717+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&1.0));
718+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&1.5));
719+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&2.5));
720+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&f16::MAX));
721+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&f16::INFINITY));
722+
// assert_eq!(Ordering::Less, (-s_nan()).total_cmp(&s_nan()));
720723
}
721724

722725
#[test]

std/src/lib.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -585,11 +585,13 @@ pub use alloc_crate::string;
585585
#[stable(feature = "rust1", since = "1.0.0")]
586586
pub use alloc_crate::vec;
587587

588-
#[unstable(feature = "f128", issue = "116909")]
588+
#[path = "num/f128.rs"]
589589
pub mod f128;
590-
#[unstable(feature = "f16", issue = "116909")]
590+
#[path = "num/f16.rs"]
591591
pub mod f16;
592+
#[path = "num/f32.rs"]
592593
pub mod f32;
594+
#[path = "num/f64.rs"]
593595
pub mod f64;
594596

595597
#[macro_use]

std/src/f128.rs renamed to std/src/num/f128.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
//!
55
//! Mathematically significant numbers are provided in the `consts` sub-module.
66
7+
#![unstable(feature = "f128", issue = "116909")]
8+
79
#[unstable(feature = "f128", issue = "116909")]
810
pub use core::f128::consts;
911

std/src/f16.rs renamed to std/src/num/f16.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
//!
55
//! Mathematically significant numbers are provided in the `consts` sub-module.
66
7+
#![unstable(feature = "f16", issue = "116909")]
8+
79
#[unstable(feature = "f16", issue = "116909")]
810
pub use core::f16::consts;
911

File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)