about summary refs log tree commit diff
path: root/tests/codegen
diff options
context:
space:
mode:
authorScott McMurray <scottmcm@users.noreply.github.com>2025-02-02 19:23:44 -0800
committerScott McMurray <scottmcm@users.noreply.github.com>2025-02-02 21:04:10 -0800
commitf46e6be1908c7ed729655c8f601548f732ef49f4 (patch)
tree5d070451c3664dedadbb74a0f3b0cbcafdaef473 /tests/codegen
parent5e6ae8bb5c884deea85c6f18cfba79fe48ccafa0 (diff)
downloadrust-f46e6be1908c7ed729655c8f601548f732ef49f4.tar.gz
rust-f46e6be1908c7ed729655c8f601548f732ef49f4.zip
Handle the case where the `or disjoint` folds immediately to a constant
Diffstat (limited to 'tests/codegen')
-rw-r--r--tests/codegen/intrinsics/disjoint_bitor.rs12
1 files changed, 11 insertions, 1 deletions
diff --git a/tests/codegen/intrinsics/disjoint_bitor.rs b/tests/codegen/intrinsics/disjoint_bitor.rs
index be9954507b3..fc45439ee0b 100644
--- a/tests/codegen/intrinsics/disjoint_bitor.rs
+++ b/tests/codegen/intrinsics/disjoint_bitor.rs
@@ -1,4 +1,4 @@
-//@ compile-flags: -C no-prepopulate-passes
+//@ compile-flags: -C no-prepopulate-passes -Z mir-opt-level=0
 
 #![crate_type = "lib"]
 #![feature(core_intrinsics)]
@@ -18,3 +18,13 @@ pub unsafe fn disjoint_bitor_unsigned(x: u64, y: u64) -> u64 {
     // CHECK: or disjoint i64 %x, %y
     disjoint_bitor(x, y)
 }
+
+// CHECK-LABEL: @disjoint_bitor_literal
+#[no_mangle]
+pub unsafe fn disjoint_bitor_literal() -> u8 {
+    // This is a separate check because even without any passes,
+    // LLVM will fold so it's not an instruction, which can assert in LLVM.
+
+    // CHECK: store i8 3
+    disjoint_bitor(1, 2)
+}