Skip to content

Commit

Permalink
FileCheck boolean_identities.
Browse files Browse the repository at this point in the history
  • Loading branch information
cjgillot committed Dec 2, 2023
1 parent e8e35c8 commit 3fc0394
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 8 deletions.
12 changes: 9 additions & 3 deletions tests/mir-opt/const_prop/boolean_identities.rs
Original file line number Diff line number Diff line change
@@ -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() {
Expand Down
32 changes: 27 additions & 5 deletions tests/mir-opt/const_prop/boolean_identities.test.ConstProp.diff
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 3fc0394

Please sign in to comment.