1- // MIR for `wrapping` before LowerIntrinsics 2+ // MIR for `wrapping` after LowerIntrinsics 3 4 fn wrapping(_1: i32, _2: i32) -> () { 5 debug a => _1; 6 debug b => _2; 7 let mut _0: (); 8 let _3: i32; 9 let mut _4: i32; 10 let mut _5: i32; 11 let mut _7: i32; 12 let mut _8: i32; 13 let mut _10: i32; 14 let mut _11: i32; 15 scope 1 { 16 debug _x => _3; 17 let _6: i32; 18 scope 2 { 19 debug _y => _6; 20 let _9: i32; 21 scope 3 { 22 debug _z => _9; 23 } 24 } 25 } 26 27 bb0: { 28 StorageLive(_3); 29 StorageLive(_4); 30 _4 = _1; 31 StorageLive(_5); 32 _5 = _2; 33- _3 = std::intrinsics::wrapping_add::<i32>(move _4, move _5) -> [return: bb1, unwind unreachable]; 34+ _3 = Add(move _4, move _5); 35+ goto -> bb1; 36 } 37 38 bb1: { 39 StorageDead(_5); 40 StorageDead(_4); 41 StorageLive(_6); 42 StorageLive(_7); 43 _7 = _1; 44 StorageLive(_8); 45 _8 = _2; 46- _6 = std::intrinsics::wrapping_sub::<i32>(move _7, move _8) -> [return: bb2, unwind unreachable]; 47+ _6 = Sub(move _7, move _8); 48+ goto -> bb2; 49 } 50 51 bb2: { 52 StorageDead(_8); 53 StorageDead(_7); 54 StorageLive(_9); 55 StorageLive(_10); 56 _10 = _1; 57 StorageLive(_11); 58 _11 = _2; 59- _9 = wrapping_mul::<i32>(move _10, move _11) -> [return: bb3, unwind unreachable]; 60+ _9 = Mul(move _10, move _11); 61+ goto -> bb3; 62 } 63 64 bb3: { 65 StorageDead(_11); 66 StorageDead(_10); 67 _0 = const (); 68 StorageDead(_9); 69 StorageDead(_6); 70 StorageDead(_3); 71 return; 72 } 73 } 74 75