- // MIR for `unary` before GVN + // MIR for `unary` after GVN fn unary(_1: i64) -> () { debug x => _1; let mut _0: (); let _2: (); let mut _3: i64; let mut _4: i64; let mut _5: i64; let _6: bool; let mut _7: i64; let _8: (); let mut _9: bool; let mut _10: bool; let mut _11: bool; let _12: (); let mut _13: bool; let mut _14: i64; let _15: (); let mut _16: bool; let mut _17: bool; let mut _18: i64; let _19: (); let mut _20: bool; let mut _21: i64; let _22: (); let mut _23: bool; let mut _24: bool; let mut _25: i64; scope 1 { debug b => _6; } bb0: { StorageLive(_2); StorageLive(_3); StorageLive(_4); StorageLive(_5); _5 = _1; - _4 = Neg(move _5); + _4 = Neg(_1); StorageDead(_5); - _3 = Neg(move _4); + _3 = _1; StorageDead(_4); - _2 = opaque::(move _3) -> [return: bb1, unwind continue]; + _2 = opaque::(_1) -> [return: bb1, unwind continue]; } bb1: { StorageDead(_3); StorageDead(_2); - StorageLive(_6); + nop; StorageLive(_7); _7 = _1; - _6 = Lt(move _7, const 13_i64); + _6 = Lt(_1, const 13_i64); StorageDead(_7); StorageLive(_8); StorageLive(_9); StorageLive(_10); StorageLive(_11); _11 = _6; - _10 = Not(move _11); + _10 = Not(_6); StorageDead(_11); - _9 = Not(move _10); + _9 = _6; StorageDead(_10); - _8 = opaque::(move _9) -> [return: bb2, unwind continue]; + _8 = opaque::(_6) -> [return: bb2, unwind continue]; } bb2: { StorageDead(_9); StorageDead(_8); StorageLive(_12); - StorageLive(_13); + nop; StorageLive(_14); _14 = _1; - _13 = Ne(move _14, const 15_i64); + _13 = Ne(_1, const 15_i64); StorageDead(_14); - _12 = opaque::(move _13) -> [return: bb3, unwind continue]; + _12 = opaque::(_13) -> [return: bb3, unwind continue]; } bb3: { - StorageDead(_13); + nop; StorageDead(_12); StorageLive(_15); StorageLive(_16); StorageLive(_17); StorageLive(_18); _18 = _1; - _17 = Eq(move _18, const 15_i64); + _17 = Eq(_1, const 15_i64); StorageDead(_18); - _16 = Not(move _17); + _16 = _13; StorageDead(_17); - _15 = opaque::(move _16) -> [return: bb4, unwind continue]; + _15 = opaque::(_13) -> [return: bb4, unwind continue]; } bb4: { StorageDead(_16); StorageDead(_15); StorageLive(_19); - StorageLive(_20); + nop; StorageLive(_21); _21 = _1; - _20 = Eq(move _21, const 35_i64); + _20 = Eq(_1, const 35_i64); StorageDead(_21); - _19 = opaque::(move _20) -> [return: bb5, unwind continue]; + _19 = opaque::(_20) -> [return: bb5, unwind continue]; } bb5: { - StorageDead(_20); + nop; StorageDead(_19); StorageLive(_22); StorageLive(_23); StorageLive(_24); StorageLive(_25); _25 = _1; - _24 = Ne(move _25, const 35_i64); + _24 = Ne(_1, const 35_i64); StorageDead(_25); - _23 = Not(move _24); + _23 = _20; StorageDead(_24); - _22 = opaque::(move _23) -> [return: bb6, unwind continue]; + _22 = opaque::(_20) -> [return: bb6, unwind continue]; } bb6: { StorageDead(_23); StorageDead(_22); _0 = const (); - StorageDead(_6); + nop; return; } }