- // MIR for `opt5` before EarlyOtherwiseBranch + // MIR for `opt5` after EarlyOtherwiseBranch fn opt5(_1: u32, _2: u32) -> u32 { debug x => _1; debug y => _2; let mut _0: u32; let mut _3: (u32, u32); let mut _4: u32; let mut _5: u32; + let mut _6: bool; bb0: { StorageLive(_3); StorageLive(_4); _4 = copy _1; StorageLive(_5); _5 = copy _2; _3 = (move _4, move _5); StorageDead(_5); StorageDead(_4); - switchInt(copy (_3.0: u32)) -> [1: bb2, 2: bb3, 3: bb4, otherwise: bb1]; + StorageLive(_6); + _6 = Ne(copy (_3.0: u32), copy (_3.1: u32)); + switchInt(move _6) -> [0: bb6, otherwise: bb1]; } bb1: { + StorageDead(_6); _0 = const 0_u32; - goto -> bb8; + goto -> bb5; } bb2: { - switchInt(copy (_3.1: u32)) -> [1: bb7, otherwise: bb1]; + _0 = const 6_u32; + goto -> bb5; } bb3: { - switchInt(copy (_3.1: u32)) -> [2: bb6, otherwise: bb1]; + _0 = const 5_u32; + goto -> bb5; } bb4: { - switchInt(copy (_3.1: u32)) -> [3: bb5, otherwise: bb1]; + _0 = const 4_u32; + goto -> bb5; } bb5: { - _0 = const 6_u32; - goto -> bb8; + StorageDead(_3); + return; } bb6: { - _0 = const 5_u32; - goto -> bb8; - } - - bb7: { - _0 = const 4_u32; - goto -> bb8; - } - - bb8: { - StorageDead(_3); - return; + StorageDead(_6); + switchInt(copy (_3.0: u32)) -> [1: bb4, 2: bb3, 3: bb2, otherwise: bb1]; } }