- // MIR for `test` before GVN + // MIR for `test` after GVN fn test(_1: bool, _2: bool) -> bool { debug x => _1; debug y => _2; let mut _0: bool; let _3: bool; let mut _4: 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); + nop; StorageLive(_4); _4 = _2; - _3 = BitOr(move _4, const true); + _3 = const true; StorageDead(_4); - StorageLive(_5); + nop; 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); + nop; + nop; return; } }