// 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: bool; scope 2 { debug a => _5; debug b => _6; } 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(_5); StorageLive(_6); StorageLive(_4); StorageLive(_3); _3 = const 31_u32; _4 = BitAnd(_2, move _3); StorageDead(_3); _5 = ShlUnchecked(_1, _4); StorageDead(_4); _6 = Ge(_2, const _); StorageLive(_7); _7 = unlikely(_6) -> [return: bb1, unwind unreachable]; } bb1: { switchInt(move _7) -> [0: bb2, otherwise: bb3]; } bb2: { _0 = Option::::Some(_5); goto -> bb4; } bb3: { _0 = Option::::None; goto -> bb4; } bb4: { StorageDead(_7); StorageDead(_6); StorageDead(_5); return; } }