summaryrefslogtreecommitdiffstats
path: root/tests/mir-opt/building/shifts.shift_signed.built.after.mir
diff options
context:
space:
mode:
Diffstat (limited to 'tests/mir-opt/building/shifts.shift_signed.built.after.mir')
-rw-r--r--tests/mir-opt/building/shifts.shift_signed.built.after.mir147
1 files changed, 147 insertions, 0 deletions
diff --git a/tests/mir-opt/building/shifts.shift_signed.built.after.mir b/tests/mir-opt/building/shifts.shift_signed.built.after.mir
new file mode 100644
index 000000000..028777cef
--- /dev/null
+++ b/tests/mir-opt/building/shifts.shift_signed.built.after.mir
@@ -0,0 +1,147 @@
+// MIR for `shift_signed` after built
+
+fn shift_signed(_1: i8, _2: u128, _3: i8, _4: i32, _5: i128) -> ([i8; 3], [u128; 3]) {
+ debug small => _1; // in scope 0 at $DIR/shifts.rs:+0:17: +0:22
+ debug big => _2; // in scope 0 at $DIR/shifts.rs:+0:28: +0:31
+ debug a => _3; // in scope 0 at $DIR/shifts.rs:+0:39: +0:40
+ debug b => _4; // in scope 0 at $DIR/shifts.rs:+0:46: +0:47
+ debug c => _5; // in scope 0 at $DIR/shifts.rs:+0:54: +0:55
+ let mut _0: ([i8; 3], [u128; 3]); // return place in scope 0 at $DIR/shifts.rs:+0:66: +0:86
+ let mut _6: [i8; 3]; // in scope 0 at $DIR/shifts.rs:+2:9: +2:45
+ let mut _7: i8; // in scope 0 at $DIR/shifts.rs:+2:10: +2:20
+ let mut _8: i8; // in scope 0 at $DIR/shifts.rs:+2:10: +2:15
+ let mut _9: i8; // in scope 0 at $DIR/shifts.rs:+2:19: +2:20
+ let mut _10: u8; // in scope 0 at $DIR/shifts.rs:+2:10: +2:20
+ let mut _11: bool; // in scope 0 at $DIR/shifts.rs:+2:10: +2:20
+ let mut _12: i8; // in scope 0 at $DIR/shifts.rs:+2:22: +2:32
+ let mut _13: i8; // in scope 0 at $DIR/shifts.rs:+2:22: +2:27
+ let mut _14: i32; // in scope 0 at $DIR/shifts.rs:+2:31: +2:32
+ let mut _15: u32; // in scope 0 at $DIR/shifts.rs:+2:22: +2:32
+ let mut _16: bool; // in scope 0 at $DIR/shifts.rs:+2:22: +2:32
+ let mut _17: i8; // in scope 0 at $DIR/shifts.rs:+2:34: +2:44
+ let mut _18: i8; // in scope 0 at $DIR/shifts.rs:+2:34: +2:39
+ let mut _19: i128; // in scope 0 at $DIR/shifts.rs:+2:43: +2:44
+ let mut _20: u128; // in scope 0 at $DIR/shifts.rs:+2:34: +2:44
+ let mut _21: bool; // in scope 0 at $DIR/shifts.rs:+2:34: +2:44
+ let mut _22: [u128; 3]; // in scope 0 at $DIR/shifts.rs:+3:9: +3:39
+ let mut _23: u128; // in scope 0 at $DIR/shifts.rs:+3:10: +3:18
+ let mut _24: u128; // in scope 0 at $DIR/shifts.rs:+3:10: +3:13
+ let mut _25: i8; // in scope 0 at $DIR/shifts.rs:+3:17: +3:18
+ let mut _26: u8; // in scope 0 at $DIR/shifts.rs:+3:10: +3:18
+ let mut _27: bool; // in scope 0 at $DIR/shifts.rs:+3:10: +3:18
+ let mut _28: u128; // in scope 0 at $DIR/shifts.rs:+3:20: +3:28
+ let mut _29: u128; // in scope 0 at $DIR/shifts.rs:+3:20: +3:23
+ let mut _30: i32; // in scope 0 at $DIR/shifts.rs:+3:27: +3:28
+ let mut _31: u32; // in scope 0 at $DIR/shifts.rs:+3:20: +3:28
+ let mut _32: bool; // in scope 0 at $DIR/shifts.rs:+3:20: +3:28
+ let mut _33: u128; // in scope 0 at $DIR/shifts.rs:+3:30: +3:38
+ let mut _34: u128; // in scope 0 at $DIR/shifts.rs:+3:30: +3:33
+ let mut _35: i128; // in scope 0 at $DIR/shifts.rs:+3:37: +3:38
+ let mut _36: u128; // in scope 0 at $DIR/shifts.rs:+3:30: +3:38
+ let mut _37: bool; // in scope 0 at $DIR/shifts.rs:+3:30: +3:38
+
+ bb0: {
+ StorageLive(_6); // scope 0 at $DIR/shifts.rs:+2:9: +2:45
+ StorageLive(_7); // scope 0 at $DIR/shifts.rs:+2:10: +2:20
+ StorageLive(_8); // scope 0 at $DIR/shifts.rs:+2:10: +2:15
+ _8 = _1; // scope 0 at $DIR/shifts.rs:+2:10: +2:15
+ StorageLive(_9); // scope 0 at $DIR/shifts.rs:+2:19: +2:20
+ _9 = _3; // scope 0 at $DIR/shifts.rs:+2:19: +2:20
+ _10 = _9 as u8 (IntToInt); // scope 0 at $DIR/shifts.rs:+2:10: +2:20
+ _11 = Lt(move _10, const 8_u8); // scope 0 at $DIR/shifts.rs:+2:10: +2:20
+ assert(move _11, "attempt to shift right by `{}`, which would overflow", _9) -> [success: bb1, unwind: bb7]; // scope 0 at $DIR/shifts.rs:+2:10: +2:20
+ }
+
+ bb1: {
+ _7 = Shr(move _8, move _9); // scope 0 at $DIR/shifts.rs:+2:10: +2:20
+ StorageDead(_9); // scope 0 at $DIR/shifts.rs:+2:19: +2:20
+ StorageDead(_8); // scope 0 at $DIR/shifts.rs:+2:19: +2:20
+ StorageLive(_12); // scope 0 at $DIR/shifts.rs:+2:22: +2:32
+ StorageLive(_13); // scope 0 at $DIR/shifts.rs:+2:22: +2:27
+ _13 = _1; // scope 0 at $DIR/shifts.rs:+2:22: +2:27
+ StorageLive(_14); // scope 0 at $DIR/shifts.rs:+2:31: +2:32
+ _14 = _4; // scope 0 at $DIR/shifts.rs:+2:31: +2:32
+ _15 = _14 as u32 (IntToInt); // scope 0 at $DIR/shifts.rs:+2:22: +2:32
+ _16 = Lt(move _15, const 8_u32); // scope 0 at $DIR/shifts.rs:+2:22: +2:32
+ assert(move _16, "attempt to shift right by `{}`, which would overflow", _14) -> [success: bb2, unwind: bb7]; // scope 0 at $DIR/shifts.rs:+2:22: +2:32
+ }
+
+ bb2: {
+ _12 = Shr(move _13, move _14); // scope 0 at $DIR/shifts.rs:+2:22: +2:32
+ StorageDead(_14); // scope 0 at $DIR/shifts.rs:+2:31: +2:32
+ StorageDead(_13); // scope 0 at $DIR/shifts.rs:+2:31: +2:32
+ StorageLive(_17); // scope 0 at $DIR/shifts.rs:+2:34: +2:44
+ StorageLive(_18); // scope 0 at $DIR/shifts.rs:+2:34: +2:39
+ _18 = _1; // scope 0 at $DIR/shifts.rs:+2:34: +2:39
+ StorageLive(_19); // scope 0 at $DIR/shifts.rs:+2:43: +2:44
+ _19 = _5; // scope 0 at $DIR/shifts.rs:+2:43: +2:44
+ _20 = _19 as u128 (IntToInt); // scope 0 at $DIR/shifts.rs:+2:34: +2:44
+ _21 = Lt(move _20, const 8_u128); // scope 0 at $DIR/shifts.rs:+2:34: +2:44
+ assert(move _21, "attempt to shift right by `{}`, which would overflow", _19) -> [success: bb3, unwind: bb7]; // scope 0 at $DIR/shifts.rs:+2:34: +2:44
+ }
+
+ bb3: {
+ _17 = Shr(move _18, move _19); // scope 0 at $DIR/shifts.rs:+2:34: +2:44
+ StorageDead(_19); // scope 0 at $DIR/shifts.rs:+2:43: +2:44
+ StorageDead(_18); // scope 0 at $DIR/shifts.rs:+2:43: +2:44
+ _6 = [move _7, move _12, move _17]; // scope 0 at $DIR/shifts.rs:+2:9: +2:45
+ StorageDead(_17); // scope 0 at $DIR/shifts.rs:+2:44: +2:45
+ StorageDead(_12); // scope 0 at $DIR/shifts.rs:+2:44: +2:45
+ StorageDead(_7); // scope 0 at $DIR/shifts.rs:+2:44: +2:45
+ StorageLive(_22); // scope 0 at $DIR/shifts.rs:+3:9: +3:39
+ StorageLive(_23); // scope 0 at $DIR/shifts.rs:+3:10: +3:18
+ StorageLive(_24); // scope 0 at $DIR/shifts.rs:+3:10: +3:13
+ _24 = _2; // scope 0 at $DIR/shifts.rs:+3:10: +3:13
+ StorageLive(_25); // scope 0 at $DIR/shifts.rs:+3:17: +3:18
+ _25 = _3; // scope 0 at $DIR/shifts.rs:+3:17: +3:18
+ _26 = _25 as u8 (IntToInt); // scope 0 at $DIR/shifts.rs:+3:10: +3:18
+ _27 = Lt(move _26, const 128_u8); // scope 0 at $DIR/shifts.rs:+3:10: +3:18
+ assert(move _27, "attempt to shift left by `{}`, which would overflow", _25) -> [success: bb4, unwind: bb7]; // scope 0 at $DIR/shifts.rs:+3:10: +3:18
+ }
+
+ bb4: {
+ _23 = Shl(move _24, move _25); // scope 0 at $DIR/shifts.rs:+3:10: +3:18
+ StorageDead(_25); // scope 0 at $DIR/shifts.rs:+3:17: +3:18
+ StorageDead(_24); // scope 0 at $DIR/shifts.rs:+3:17: +3:18
+ StorageLive(_28); // scope 0 at $DIR/shifts.rs:+3:20: +3:28
+ StorageLive(_29); // scope 0 at $DIR/shifts.rs:+3:20: +3:23
+ _29 = _2; // scope 0 at $DIR/shifts.rs:+3:20: +3:23
+ StorageLive(_30); // scope 0 at $DIR/shifts.rs:+3:27: +3:28
+ _30 = _4; // scope 0 at $DIR/shifts.rs:+3:27: +3:28
+ _31 = _30 as u32 (IntToInt); // scope 0 at $DIR/shifts.rs:+3:20: +3:28
+ _32 = Lt(move _31, const 128_u32); // scope 0 at $DIR/shifts.rs:+3:20: +3:28
+ assert(move _32, "attempt to shift left by `{}`, which would overflow", _30) -> [success: bb5, unwind: bb7]; // scope 0 at $DIR/shifts.rs:+3:20: +3:28
+ }
+
+ bb5: {
+ _28 = Shl(move _29, move _30); // scope 0 at $DIR/shifts.rs:+3:20: +3:28
+ StorageDead(_30); // scope 0 at $DIR/shifts.rs:+3:27: +3:28
+ StorageDead(_29); // scope 0 at $DIR/shifts.rs:+3:27: +3:28
+ StorageLive(_33); // scope 0 at $DIR/shifts.rs:+3:30: +3:38
+ StorageLive(_34); // scope 0 at $DIR/shifts.rs:+3:30: +3:33
+ _34 = _2; // scope 0 at $DIR/shifts.rs:+3:30: +3:33
+ StorageLive(_35); // scope 0 at $DIR/shifts.rs:+3:37: +3:38
+ _35 = _5; // scope 0 at $DIR/shifts.rs:+3:37: +3:38
+ _36 = _35 as u128 (IntToInt); // scope 0 at $DIR/shifts.rs:+3:30: +3:38
+ _37 = Lt(move _36, const 128_u128); // scope 0 at $DIR/shifts.rs:+3:30: +3:38
+ assert(move _37, "attempt to shift left by `{}`, which would overflow", _35) -> [success: bb6, unwind: bb7]; // scope 0 at $DIR/shifts.rs:+3:30: +3:38
+ }
+
+ bb6: {
+ _33 = Shl(move _34, move _35); // scope 0 at $DIR/shifts.rs:+3:30: +3:38
+ StorageDead(_35); // scope 0 at $DIR/shifts.rs:+3:37: +3:38
+ StorageDead(_34); // scope 0 at $DIR/shifts.rs:+3:37: +3:38
+ _22 = [move _23, move _28, move _33]; // scope 0 at $DIR/shifts.rs:+3:9: +3:39
+ StorageDead(_33); // scope 0 at $DIR/shifts.rs:+3:38: +3:39
+ StorageDead(_28); // scope 0 at $DIR/shifts.rs:+3:38: +3:39
+ StorageDead(_23); // scope 0 at $DIR/shifts.rs:+3:38: +3:39
+ _0 = (move _6, move _22); // scope 0 at $DIR/shifts.rs:+1:5: +4:6
+ StorageDead(_22); // scope 0 at $DIR/shifts.rs:+4:5: +4:6
+ StorageDead(_6); // scope 0 at $DIR/shifts.rs:+4:5: +4:6
+ return; // scope 0 at $DIR/shifts.rs:+5:2: +5:2
+ }
+
+ bb7 (cleanup): {
+ resume; // scope 0 at $DIR/shifts.rs:+0:1: +5:2
+ }
+}