// MIR for `checked_shl` after PreCodegen fn checked_shl(_1: u32, _2: u32) -> Option { debug x => _1; debug rhs => _2; let mut _0: std::option::Option; scope 1 (inlined core::num::::checked_shl) { debug self => _1; debug rhs => _2; let mut _7: (u32, bool); let _8: u32; let _9: bool; let mut _10: bool; scope 2 { debug a => _8; debug b => _9; } scope 3 (inlined core::num::::overflowing_shl) { debug self => _1; debug rhs => _2; let mut _5: u32; let mut _6: bool; scope 4 (inlined core::num::::wrapping_shl) { debug self => _1; debug rhs => _2; let mut _3: u32; let mut _4: u32; scope 5 { scope 6 (inlined core::num::::unchecked_shl) { debug self => _1; debug rhs => _4; scope 7 { } } } } } } bb0: { StorageLive(_8); StorageLive(_9); StorageLive(_7); StorageLive(_5); StorageLive(_4); StorageLive(_3); _3 = const 31_u32; _4 = BitAnd(_2, move _3); StorageDead(_3); _5 = ShlUnchecked(_1, _4); StorageDead(_4); StorageLive(_6); _6 = Ge(_2, const _); _7 = (move _5, move _6); StorageDead(_6); StorageDead(_5); _8 = (_7.0: u32); _9 = (_7.1: bool); StorageDead(_7); StorageLive(_10); _10 = unlikely(_9) -> [return: bb1, unwind unreachable]; } bb1: { switchInt(move _10) -> [0: bb2, otherwise: bb3]; } bb2: { _0 = Option::::Some(_8); goto -> bb4; } bb3: { _0 = Option::::None; goto -> bb4; } bb4: { StorageDead(_10); StorageDead(_9); StorageDead(_8); return; } }