// MIR for `match_tuple` after SimplifyCfg-initial fn match_tuple(_1: (u32, bool, Option, u32)) -> u32 { debug x => _1; let mut _0: u32; let mut _2: isize; let mut _3: bool; let mut _4: bool; let mut _5: bool; let mut _6: bool; let _7: u32; let _8: u32; let mut _9: u32; let mut _10: u32; scope 1 { debug y => _7; debug z => _8; } bb0: { FakeRead(ForMatchedPlace(None), _1); switchInt((_1.0: u32)) -> [1: bb2, 4: bb2, otherwise: bb1]; } bb1: { _0 = const 0_u32; goto -> bb10; } bb2: { _2 = discriminant((_1.2: std::option::Option)); switchInt(move _2) -> [0: bb4, 1: bb3, otherwise: bb1]; } bb3: { switchInt((((_1.2: std::option::Option) as Some).0: i32)) -> [1: bb4, 8: bb4, otherwise: bb1]; } bb4: { _5 = Le(const 6_u32, (_1.3: u32)); switchInt(move _5) -> [0: bb6, otherwise: bb5]; } bb5: { _6 = Le((_1.3: u32), const 9_u32); switchInt(move _6) -> [0: bb6, otherwise: bb8]; } bb6: { _3 = Le(const 13_u32, (_1.3: u32)); switchInt(move _3) -> [0: bb1, otherwise: bb7]; } bb7: { _4 = Le((_1.3: u32), const 16_u32); switchInt(move _4) -> [0: bb1, otherwise: bb8]; } bb8: { falseEdge -> [real: bb9, imaginary: bb1]; } bb9: { StorageLive(_7); _7 = (_1.0: u32); StorageLive(_8); _8 = (_1.3: u32); StorageLive(_9); _9 = _7; StorageLive(_10); _10 = _8; _0 = BitXor(move _9, move _10); StorageDead(_10); StorageDead(_9); StorageDead(_8); StorageDead(_7); goto -> bb10; } bb10: { return; } }