| - // MIR for `unchecked_shr_signed_smaller` before Inline |
| + // MIR for `unchecked_shr_signed_smaller` after Inline |
| |
| fn unchecked_shr_signed_smaller(_1: i16, _2: u32) -> i16 { |
| debug a => _1; // in scope 0 at $DIR/unchecked_shifts.rs:+0:44: +0:45 |
| debug b => _2; // in scope 0 at $DIR/unchecked_shifts.rs:+0:52: +0:53 |
| let mut _0: i16; // return place in scope 0 at $DIR/unchecked_shifts.rs:+0:63: +0:66 |
| let mut _3: i16; // in scope 0 at $DIR/unchecked_shifts.rs:+1:5: +1:6 |
| let mut _4: u32; // in scope 0 at $DIR/unchecked_shifts.rs:+1:21: +1:22 |
| + scope 1 (inlined core::num::<impl i16>::unchecked_shr) { // at $DIR/unchecked_shifts.rs:17:7: 17:23 |
| + debug self => _3; // in scope 1 at $SRC_DIR/core/src/num/int_macros.rs:LL:COL |
| + debug rhs => _4; // in scope 1 at $SRC_DIR/core/src/num/int_macros.rs:LL:COL |
| + let mut _5: i16; // in scope 1 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + let mut _6: (u32,); // in scope 1 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + let mut _7: u32; // in scope 1 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + scope 2 { |
| + scope 3 (inlined core::num::<impl i16>::unchecked_shr::conv) { // at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + debug x => _7; // in scope 3 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + let mut _8: std::option::Option<i16>; // in scope 3 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + let mut _9: std::result::Result<i16, std::num::TryFromIntError>; // in scope 3 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + scope 4 { |
| + scope 5 (inlined <u32 as TryInto<i16>>::try_into) { // at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + debug self => _7; // in scope 5 at $SRC_DIR/core/src/convert/mod.rs:LL:COL |
| + scope 6 (inlined convert::num::<impl TryFrom<u32> for i16>::try_from) { // at $SRC_DIR/core/src/convert/mod.rs:LL:COL |
| + debug u => _7; // in scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| + let mut _10: bool; // in scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| + let mut _11: u32; // in scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| + let mut _12: i16; // in scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| + } |
| + } |
| + scope 7 (inlined Result::<i16, TryFromIntError>::ok) { // at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + debug self => _9; // in scope 7 at $SRC_DIR/core/src/result.rs:LL:COL |
| + let mut _13: isize; // in scope 7 at $SRC_DIR/core/src/result.rs:LL:COL |
| + let _14: i16; // in scope 7 at $SRC_DIR/core/src/result.rs:LL:COL |
| + scope 8 { |
| + debug x => _14; // in scope 8 at $SRC_DIR/core/src/result.rs:LL:COL |
| + } |
| + } |
| + scope 9 (inlined #[track_caller] Option::<i16>::unwrap_unchecked) { // at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + debug self => _8; // in scope 9 at $SRC_DIR/core/src/option.rs:LL:COL |
| + let mut _15: &std::option::Option<i16>; // in scope 9 at $SRC_DIR/core/src/option.rs:LL:COL |
| + let mut _16: isize; // in scope 9 at $SRC_DIR/core/src/option.rs:LL:COL |
| + scope 10 { |
| + debug val => _5; // in scope 10 at $SRC_DIR/core/src/option.rs:LL:COL |
| + } |
| + scope 11 { |
| + scope 13 (inlined unreachable_unchecked) { // at $SRC_DIR/core/src/option.rs:LL:COL |
| + scope 14 { |
| + scope 15 (inlined unreachable_unchecked::runtime) { // at $SRC_DIR/core/src/intrinsics.rs:LL:COL |
| + } |
| + } |
| + } |
| + } |
| + scope 12 (inlined Option::<i16>::is_some) { // at $SRC_DIR/core/src/option.rs:LL:COL |
| + debug self => _15; // in scope 12 at $SRC_DIR/core/src/option.rs:LL:COL |
| + } |
| + } |
| + } |
| + } |
| + } |
| + } |
| |
| bb0: { |
| StorageLive(_3); // scope 0 at $DIR/unchecked_shifts.rs:+1:5: +1:6 |
| _3 = _1; // scope 0 at $DIR/unchecked_shifts.rs:+1:5: +1:6 |
| StorageLive(_4); // scope 0 at $DIR/unchecked_shifts.rs:+1:21: +1:22 |
| _4 = _2; // scope 0 at $DIR/unchecked_shifts.rs:+1:21: +1:22 |
| - _0 = core::num::<impl i16>::unchecked_shr(move _3, move _4) -> bb1; // scope 0 at $DIR/unchecked_shifts.rs:+1:5: +1:23 |
| - // mir::Constant |
| - // + span: $DIR/unchecked_shifts.rs:17:7: 17:20 |
| - // + literal: Const { ty: unsafe fn(i16, u32) -> i16 {core::num::<impl i16>::unchecked_shr}, val: Value(<ZST>) } |
| + StorageLive(_5); // scope 2 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + StorageLive(_6); // scope 2 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + _6 = (_4,); // scope 2 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + StorageLive(_7); // scope 2 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + _7 = move (_6.0: u32); // scope 2 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + StorageLive(_8); // scope 4 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + StorageLive(_9); // scope 4 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + StorageLive(_10); // scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| + StorageLive(_11); // scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| + _11 = const 32767_u32; // scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| + _10 = Gt(_7, move _11); // scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| + StorageDead(_11); // scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| + switchInt(move _10) -> [0: bb3, otherwise: bb2]; // scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| } |
| |
| bb1: { |
| + StorageDead(_5); // scope 2 at $SRC_DIR/core/src/num/int_macros.rs:LL:COL |
| StorageDead(_4); // scope 0 at $DIR/unchecked_shifts.rs:+1:22: +1:23 |
| StorageDead(_3); // scope 0 at $DIR/unchecked_shifts.rs:+1:22: +1:23 |
| return; // scope 0 at $DIR/unchecked_shifts.rs:+2:2: +2:2 |
| + } |
| + |
| + bb2: { |
| + _9 = Result::<i16, TryFromIntError>::Err(const TryFromIntError(())); // scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| + // mir::Constant |
| + // + span: no-location |
| + // + literal: Const { ty: TryFromIntError, val: Value(<ZST>) } |
| + goto -> bb4; // scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| + } |
| + |
| + bb3: { |
| + StorageLive(_12); // scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| + _12 = _7 as i16 (IntToInt); // scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| + _9 = Result::<i16, TryFromIntError>::Ok(move _12); // scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| + StorageDead(_12); // scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| + goto -> bb4; // scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| + } |
| + |
| + bb4: { |
| + StorageDead(_10); // scope 6 at $SRC_DIR/core/src/convert/num.rs:LL:COL |
| + StorageLive(_14); // scope 4 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + _13 = discriminant(_9); // scope 7 at $SRC_DIR/core/src/result.rs:LL:COL |
| + switchInt(move _13) -> [0: bb7, 1: bb5, otherwise: bb6]; // scope 7 at $SRC_DIR/core/src/result.rs:LL:COL |
| + } |
| + |
| + bb5: { |
| + _8 = Option::<i16>::None; // scope 7 at $SRC_DIR/core/src/result.rs:LL:COL |
| + goto -> bb8; // scope 7 at $SRC_DIR/core/src/result.rs:LL:COL |
| + } |
| + |
| + bb6: { |
| + unreachable; // scope 7 at $SRC_DIR/core/src/result.rs:LL:COL |
| + } |
| + |
| + bb7: { |
| + _14 = move ((_9 as Ok).0: i16); // scope 7 at $SRC_DIR/core/src/result.rs:LL:COL |
| + _8 = Option::<i16>::Some(move _14); // scope 8 at $SRC_DIR/core/src/result.rs:LL:COL |
| + goto -> bb8; // scope 7 at $SRC_DIR/core/src/result.rs:LL:COL |
| + } |
| + |
| + bb8: { |
| + StorageDead(_14); // scope 4 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + StorageDead(_9); // scope 4 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + StorageLive(_15); // scope 4 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + _16 = discriminant(_8); // scope 9 at $SRC_DIR/core/src/option.rs:LL:COL |
| + switchInt(move _16) -> [1: bb9, otherwise: bb6]; // scope 9 at $SRC_DIR/core/src/option.rs:LL:COL |
| + } |
| + |
| + bb9: { |
| + _5 = move ((_8 as Some).0: i16); // scope 9 at $SRC_DIR/core/src/option.rs:LL:COL |
| + StorageDead(_15); // scope 4 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + StorageDead(_8); // scope 4 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + StorageDead(_7); // scope 2 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + StorageDead(_6); // scope 2 at $SRC_DIR/core/src/num/mod.rs:LL:COL |
| + _0 = unchecked_shr::<i16>(_3, move _5) -> [return: bb1, unwind unreachable]; // scope 2 at $SRC_DIR/core/src/num/int_macros.rs:LL:COL |
| + // mir::Constant |
| + // + span: $SRC_DIR/core/src/num/int_macros.rs:LL:COL |
| + // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(i16, i16) -> i16 {unchecked_shr::<i16>}, val: Value(<ZST>) } |
| } |
| } |
| |