From 41ff6a885f453780000023b9593ec7f36fa66c82 Mon Sep 17 00:00:00 2001 From: icedrocket <114203630+icedrocket@users.noreply.github.com> Date: Fri, 10 Feb 2023 17:00:09 +0900 Subject: [PATCH 1/2] Update LLVM submodule --- src/llvm-project | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/llvm-project b/src/llvm-project index 477e7285b12f8..fd949f3034f8a 160000 --- a/src/llvm-project +++ b/src/llvm-project @@ -1 +1 @@ -Subproject commit 477e7285b12f876ad105188cfcfc8adda7dc29aa +Subproject commit fd949f3034f8a422ecfffa889c2823485dde4bdd From 313f04f4fff32ecf376c8af0e5d80e196f2bc056 Mon Sep 17 00:00:00 2001 From: icedrocket <114203630+icedrocket@users.noreply.github.com> Date: Thu, 23 Feb 2023 08:39:23 +0900 Subject: [PATCH 2/2] Add regression test for #105626 --- tests/ui/numbers-arithmetic/issue-105626.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/ui/numbers-arithmetic/issue-105626.rs diff --git a/tests/ui/numbers-arithmetic/issue-105626.rs b/tests/ui/numbers-arithmetic/issue-105626.rs new file mode 100644 index 0000000000000..f97edd510c9e6 --- /dev/null +++ b/tests/ui/numbers-arithmetic/issue-105626.rs @@ -0,0 +1,17 @@ +// run-pass +// only-x86 +// min-system-llvm-version: 16 +// compile-flags: -Ctarget-feature=+sse2 + +use std::hint::black_box; + +fn main() { + let n: i64 = black_box(0x3fffffdfffffff); + let r = f32::from_bits(0x5a7fffff); + + assert_ne!((n as f64) as f32, n as f32); + + // FIXME: these assertions fail if only x87 is enabled + assert_eq!(n as i64 as f32, r); + assert_eq!(n as u64 as f32, r); +}