148 lines
10 KiB
Rust
148 lines
10 KiB
Rust
// 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: i8; // 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: i32; // 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: i128; // 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: i8; // 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: i32; // 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: i128; // 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 = BitAnd(_9, const -8_i8); // scope 0 at $DIR/shifts.rs:+2:10: +2:20
|
|
_11 = Ne(move _10, const 0_i8); // 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 = BitAnd(_14, const -8_i32); // scope 0 at $DIR/shifts.rs:+2:22: +2:32
|
|
_16 = Ne(move _15, const 0_i32); // 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 = BitAnd(_19, const -8_i128); // scope 0 at $DIR/shifts.rs:+2:34: +2:44
|
|
_21 = Ne(move _20, const 0_i128); // 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 = BitAnd(_25, const i8::MIN); // scope 0 at $DIR/shifts.rs:+3:10: +3:18
|
|
_27 = Ne(move _26, const 0_i8); // 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 = BitAnd(_30, const -128_i32); // scope 0 at $DIR/shifts.rs:+3:20: +3:28
|
|
_32 = Ne(move _31, const 0_i32); // 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 = BitAnd(_35, const -128_i128); // scope 0 at $DIR/shifts.rs:+3:30: +3:38
|
|
_37 = Ne(move _36, const 0_i128); // 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
|
|
}
|
|
}
|