about summary refs log tree commit diff
diff options
context:
space:
mode:
authorCamille GILLOT <gillot.camille@gmail.com>2023-12-02 20:18:14 +0000
committerCamille GILLOT <gillot.camille@gmail.com>2023-12-02 20:18:14 +0000
commit3fc03948a8470fee27d5eee02ad6f4b29f6977d8 (patch)
treea9bd8faf93dc3d5ab72d378b3d387b79e3573cf7
parente8e35c81271a78c59336b54dcd3b65ae13122bf4 (diff)
downloadrust-3fc03948a8470fee27d5eee02ad6f4b29f6977d8.tar.gz
rust-3fc03948a8470fee27d5eee02ad6f4b29f6977d8.zip
FileCheck boolean_identities.
-rw-r--r--tests/mir-opt/const_prop/boolean_identities.rs12
-rw-r--r--tests/mir-opt/const_prop/boolean_identities.test.ConstProp.diff32
2 files changed, 36 insertions, 8 deletions
diff --git a/tests/mir-opt/const_prop/boolean_identities.rs b/tests/mir-opt/const_prop/boolean_identities.rs
index 781cce8c7dd..2aa038034d8 100644
--- a/tests/mir-opt/const_prop/boolean_identities.rs
+++ b/tests/mir-opt/const_prop/boolean_identities.rs
@@ -1,10 +1,16 @@
-// skip-filecheck
 // unit-test: ConstProp
-// compile-flags: -O -Zmir-opt-level=4
 
 // EMIT_MIR boolean_identities.test.ConstProp.diff
 pub fn test(x: bool, y: bool) -> bool {
-    (y | true) & (x & false)
+    // CHECK-LABEL: fn test(
+    // CHECK: debug a => [[a:_.*]];
+    // CHECK: debug b => [[b:_.*]];
+    // CHECK: [[a]] = const true;
+    // CHECK: [[b]] = const false;
+    // CHECK: _0 = const false;
+    let a = (y | true);
+    let b = (x & false);
+    a & b
 }
 
 fn main() {
diff --git a/tests/mir-opt/const_prop/boolean_identities.test.ConstProp.diff b/tests/mir-opt/const_prop/boolean_identities.test.ConstProp.diff
index d805341991d..41e1acdff59 100644
--- a/tests/mir-opt/const_prop/boolean_identities.test.ConstProp.diff
+++ b/tests/mir-opt/const_prop/boolean_identities.test.ConstProp.diff
@@ -5,20 +5,42 @@
       debug x => _1;
       debug y => _2;
       let mut _0: bool;
-      let mut _3: bool;
+      let _3: bool;
       let mut _4: bool;
-      let mut _5: bool;
       let mut _6: bool;
+      let mut _7: bool;
+      let mut _8: bool;
+      scope 1 {
+          debug a => _3;
+          let _5: bool;
+          scope 2 {
+              debug b => _5;
+          }
+      }
   
       bb0: {
           StorageLive(_3);
--         _3 = BitOr(_2, const true);
+          StorageLive(_4);
+          _4 = _2;
+-         _3 = BitOr(move _4, const true);
 +         _3 = const true;
+          StorageDead(_4);
           StorageLive(_5);
--         _5 = BitAnd(_1, const false);
--         _0 = BitAnd(move _3, move _5);
+          StorageLive(_6);
+          _6 = _1;
+-         _5 = BitAnd(move _6, const false);
 +         _5 = const false;
+          StorageDead(_6);
+          StorageLive(_7);
+-         _7 = _3;
++         _7 = const true;
+          StorageLive(_8);
+-         _8 = _5;
+-         _0 = BitAnd(move _7, move _8);
++         _8 = const false;
 +         _0 = const false;
+          StorageDead(_8);
+          StorageDead(_7);
           StorageDead(_5);
           StorageDead(_3);
           return;