// 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: { PlaceMention(_1); switchInt(copy (_1.0: u32)) -> [1: bb2, 4: bb2, otherwise: bb1]; } bb1: { _0 = const 0_u32; goto -> bb11; } bb2: { switchInt(copy (_1.1: bool)) -> [0: bb3, otherwise: bb3]; } bb3: { _2 = discriminant((_1.2: std::option::Option)); switchInt(move _2) -> [0: bb5, 1: bb4, otherwise: bb1]; } bb4: { switchInt(copy (((_1.2: std::option::Option) as Some).0: i32)) -> [1: bb5, 8: bb5, otherwise: bb1]; } bb5: { _5 = Le(const 6_u32, copy (_1.3: u32)); switchInt(move _5) -> [0: bb6, otherwise: bb8]; } bb6: { _3 = Le(const 13_u32, copy (_1.3: u32)); switchInt(move _3) -> [0: bb1, otherwise: bb7]; } bb7: { _4 = Le(copy (_1.3: u32), const 16_u32); switchInt(move _4) -> [0: bb1, otherwise: bb9]; } bb8: { _6 = Le(copy (_1.3: u32), const 9_u32); switchInt(move _6) -> [0: bb6, otherwise: bb9]; } bb9: { falseEdge -> [real: bb10, imaginary: bb1]; } bb10: { StorageLive(_7); _7 = copy (_1.0: u32); StorageLive(_8); _8 = copy (_1.3: u32); StorageLive(_9); _9 = copy _7; StorageLive(_10); _10 = copy _8; _0 = BitXor(move _9, move _10); StorageDead(_10); StorageDead(_9); StorageDead(_8); StorageDead(_7); goto -> bb11; } bb11: { return; } }