about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAugie Fackler <augie@google.com>2025-05-27 10:52:09 -0400
committerAugie Fackler <augie@google.com>2025-05-27 11:20:52 -0400
commita963e6fc386cb91d33ff4ca020ceaf7bf590ee27 (patch)
treec6832864885f8b82f7b5d97bc74a9e7805a47f5c
parent0fc6f1672bdde8163164f10e46d2d9ffcaeb2161 (diff)
downloadrust-a963e6fc386cb91d33ff4ca020ceaf7bf590ee27.tar.gz
rust-a963e6fc386cb91d33ff4ca020ceaf7bf590ee27.zip
tests: mark option-niche-eq as fixed on LLVM 21
Some combination of recent Rust changes (between 3d86494a0d01 and
aa57e46e24a4 from what I can tell) and changes in LLVM 21 (not recently,
as best I can tell) have caused this test to start showing the behavior
we want, so it's time to move this test to a proper place and mark it as
fixed on LLVM 21.
-rw-r--r--tests/codegen/option-niche-eq.rs11
-rw-r--r--tests/codegen/option-niche-unfixed/option-bool-eq.rs15
2 files changed, 11 insertions, 15 deletions
diff --git a/tests/codegen/option-niche-eq.rs b/tests/codegen/option-niche-eq.rs
index a39e2870a0f..3900cb79aa2 100644
--- a/tests/codegen/option-niche-eq.rs
+++ b/tests/codegen/option-niche-eq.rs
@@ -1,5 +1,7 @@
+//@ revisions: REGULAR LLVM21
 //@ min-llvm-version: 20
 //@ compile-flags: -Copt-level=3 -Zmerge-functions=disabled
+//@ [LLVM21] min-llvm-version: 21
 #![crate_type = "lib"]
 
 extern crate core;
@@ -74,3 +76,12 @@ pub fn niche_eq(l: Option<EnumWithNiche>, r: Option<EnumWithNiche>) -> bool {
     // CHECK-NEXT: ret i1
     l == r
 }
+
+// LLVM21-LABEL: @bool_eq
+#[no_mangle]
+pub fn bool_eq(l: Option<bool>, r: Option<bool>) -> bool {
+    // LLVM21: start:
+    // LLVM21-NEXT: icmp eq i8
+    // LLVM21-NEXT: ret i1
+    l == r
+}
diff --git a/tests/codegen/option-niche-unfixed/option-bool-eq.rs b/tests/codegen/option-niche-unfixed/option-bool-eq.rs
deleted file mode 100644
index fa0e7836afb..00000000000
--- a/tests/codegen/option-niche-unfixed/option-bool-eq.rs
+++ /dev/null
@@ -1,15 +0,0 @@
-//@ should-fail
-//@ compile-flags: -Copt-level=3 -Zmerge-functions=disabled
-//! FIXME(#49892)
-//! Tests that LLVM does not fully optimize comparisons of `Option<bool>`.
-//! If this starts passing, it can be moved to `tests/codegen/option-niche-eq.rs`
-#![crate_type = "lib"]
-
-// CHECK-LABEL: @bool_eq
-#[no_mangle]
-pub fn bool_eq(l: Option<bool>, r: Option<bool>) -> bool {
-    // CHECK: start:
-    // CHECK-NEXT: icmp eq i8
-    // CHECK-NEXT: ret i1
-    l == r
-}