|
2 | 2 | + // MIR for `foo` after MatchBranchSimplification |
3 | 3 |
|
4 | 4 | fn foo(_1: [u8; 16]) -> Option<[u8; 4]> { |
5 | | - debug bytes => _1; // in scope 0 at $DIR/issue-75439.rs:7:12: 7:17 |
6 | | - let mut _0: std::option::Option<[u8; 4]>; // return place in scope 0 at $DIR/issue-75439.rs:7:32: 7:47 |
7 | | - let _2: [u32; 4]; // in scope 0 at $DIR/issue-75439.rs:9:9: 9:15 |
8 | | - let mut _3: [u8; 16]; // in scope 0 at $DIR/issue-75439.rs:9:47: 9:52 |
9 | | - let mut _5: [u8; 4]; // in scope 0 at $DIR/issue-75439.rs:12:14: 12:38 |
10 | | - let mut _6: u32; // in scope 0 at $DIR/issue-75439.rs:12:33: 12:35 |
| 5 | + debug bytes => _1; // in scope 0 at $DIR/issue-75439.rs:5:12: 5:17 |
| 6 | + let mut _0: std::option::Option<[u8; 4]>; // return place in scope 0 at $DIR/issue-75439.rs:5:32: 5:47 |
| 7 | + let _2: [u32; 4]; // in scope 0 at $DIR/issue-75439.rs:7:9: 7:15 |
| 8 | + let mut _3: [u8; 16]; // in scope 0 at $DIR/issue-75439.rs:7:47: 7:52 |
| 9 | + let mut _5: [u8; 4]; // in scope 0 at $DIR/issue-75439.rs:10:14: 10:38 |
| 10 | + let mut _6: u32; // in scope 0 at $DIR/issue-75439.rs:10:33: 10:35 |
11 | 11 | scope 1 { |
12 | | - debug dwords => _2; // in scope 1 at $DIR/issue-75439.rs:9:9: 9:15 |
13 | | - let _4: u32; // in scope 1 at $DIR/issue-75439.rs:11:27: 11:29 |
| 12 | + debug dwords => _2; // in scope 1 at $DIR/issue-75439.rs:7:9: 7:15 |
| 13 | + let _4: u32; // in scope 1 at $DIR/issue-75439.rs:9:27: 9:29 |
14 | 14 | scope 3 { |
15 | | - debug ip => _4; // in scope 3 at $DIR/issue-75439.rs:11:27: 11:29 |
| 15 | + debug ip => _4; // in scope 3 at $DIR/issue-75439.rs:9:27: 9:29 |
16 | 16 | scope 4 { |
17 | 17 | } |
18 | 18 | } |
|
21 | 21 | } |
22 | 22 |
|
23 | 23 | bb0: { |
24 | | - StorageLive(_2); // scope 0 at $DIR/issue-75439.rs:9:9: 9:15 |
25 | | - StorageLive(_3); // scope 2 at $DIR/issue-75439.rs:9:47: 9:52 |
26 | | - _3 = _1; // scope 2 at $DIR/issue-75439.rs:9:47: 9:52 |
27 | | - _2 = transmute::<[u8; 16], [u32; 4]>(move _3) -> bb1; // scope 2 at $DIR/issue-75439.rs:9:37: 9:53 |
| 24 | + StorageLive(_2); // scope 0 at $DIR/issue-75439.rs:7:9: 7:15 |
| 25 | + StorageLive(_3); // scope 2 at $DIR/issue-75439.rs:7:47: 7:52 |
| 26 | + _3 = _1; // scope 2 at $DIR/issue-75439.rs:7:47: 7:52 |
| 27 | + _2 = transmute::<[u8; 16], [u32; 4]>(move _3) -> bb1; // scope 2 at $DIR/issue-75439.rs:7:37: 7:53 |
28 | 28 | // mir::Constant |
29 | | - // + span: $DIR/issue-75439.rs:9:37: 9:46 |
| 29 | + // + span: $DIR/issue-75439.rs:7:37: 7:46 |
30 | 30 | // + literal: Const { ty: unsafe extern "rust-intrinsic" fn([u8; 16]) -> [u32; 4] {std::intrinsics::transmute::<[u8; 16], [u32; 4]>}, val: Value(Scalar(<ZST>)) } |
31 | 31 | } |
32 | 32 |
|
33 | 33 | bb1: { |
34 | | - StorageDead(_3); // scope 2 at $DIR/issue-75439.rs:9:52: 9:53 |
35 | | - switchInt(_2[0 of 4]) -> [0_u32: bb2, otherwise: bb4]; // scope 1 at $DIR/issue-75439.rs:11:13: 11:14 |
| 34 | + StorageDead(_3); // scope 2 at $DIR/issue-75439.rs:7:52: 7:53 |
| 35 | + switchInt(_2[0 of 4]) -> [0_u32: bb2, otherwise: bb4]; // scope 1 at $DIR/issue-75439.rs:9:13: 9:14 |
36 | 36 | } |
37 | 37 |
|
38 | 38 | bb2: { |
39 | | - switchInt(_2[1 of 4]) -> [0_u32: bb3, otherwise: bb4]; // scope 1 at $DIR/issue-75439.rs:11:16: 11:17 |
| 39 | + switchInt(_2[1 of 4]) -> [0_u32: bb3, otherwise: bb4]; // scope 1 at $DIR/issue-75439.rs:9:16: 9:17 |
40 | 40 | } |
41 | 41 |
|
42 | 42 | bb3: { |
43 | | - switchInt(_2[2 of 4]) -> [0_u32: bb6, 4294901760_u32: bb7, otherwise: bb4]; // scope 1 at $DIR/issue-75439.rs:11:19: 11:20 |
| 43 | + switchInt(_2[2 of 4]) -> [0_u32: bb6, 4294901760_u32: bb7, otherwise: bb4]; // scope 1 at $DIR/issue-75439.rs:9:19: 9:20 |
44 | 44 | } |
45 | 45 |
|
46 | 46 | bb4: { |
47 | | - discriminant(_0) = 0; // scope 1 at $DIR/issue-75439.rs:14:9: 14:13 |
48 | | - goto -> bb9; // scope 1 at $DIR/issue-75439.rs:11:5: 15:6 |
| 47 | + discriminant(_0) = 0; // scope 1 at $DIR/issue-75439.rs:12:9: 12:13 |
| 48 | + goto -> bb9; // scope 1 at $DIR/issue-75439.rs:9:5: 13:6 |
49 | 49 | } |
50 | 50 |
|
51 | 51 | bb5: { |
52 | | - StorageLive(_5); // scope 3 at $DIR/issue-75439.rs:12:14: 12:38 |
53 | | - StorageLive(_6); // scope 4 at $DIR/issue-75439.rs:12:33: 12:35 |
54 | | - _6 = _4; // scope 4 at $DIR/issue-75439.rs:12:33: 12:35 |
55 | | - _5 = transmute::<u32, [u8; 4]>(move _6) -> bb8; // scope 4 at $DIR/issue-75439.rs:12:23: 12:36 |
| 52 | + StorageLive(_5); // scope 3 at $DIR/issue-75439.rs:10:14: 10:38 |
| 53 | + StorageLive(_6); // scope 4 at $DIR/issue-75439.rs:10:33: 10:35 |
| 54 | + _6 = _4; // scope 4 at $DIR/issue-75439.rs:10:33: 10:35 |
| 55 | + _5 = transmute::<u32, [u8; 4]>(move _6) -> bb8; // scope 4 at $DIR/issue-75439.rs:10:23: 10:36 |
56 | 56 | // mir::Constant |
57 | | - // + span: $DIR/issue-75439.rs:12:23: 12:32 |
| 57 | + // + span: $DIR/issue-75439.rs:10:23: 10:32 |
58 | 58 | // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(u32) -> [u8; 4] {std::intrinsics::transmute::<u32, [u8; 4]>}, val: Value(Scalar(<ZST>)) } |
59 | 59 | } |
60 | 60 |
|
61 | 61 | bb6: { |
62 | | - StorageLive(_4); // scope 1 at $DIR/issue-75439.rs:11:27: 11:29 |
63 | | - _4 = _2[3 of 4]; // scope 1 at $DIR/issue-75439.rs:11:27: 11:29 |
64 | | - goto -> bb5; // scope 1 at $DIR/issue-75439.rs:11:5: 15:6 |
| 62 | + StorageLive(_4); // scope 1 at $DIR/issue-75439.rs:9:27: 9:29 |
| 63 | + _4 = _2[3 of 4]; // scope 1 at $DIR/issue-75439.rs:9:27: 9:29 |
| 64 | + goto -> bb5; // scope 1 at $DIR/issue-75439.rs:9:5: 13:6 |
65 | 65 | } |
66 | 66 |
|
67 | 67 | bb7: { |
68 | | - StorageLive(_4); // scope 1 at $DIR/issue-75439.rs:11:27: 11:29 |
69 | | - _4 = _2[3 of 4]; // scope 1 at $DIR/issue-75439.rs:11:27: 11:29 |
70 | | - goto -> bb5; // scope 1 at $DIR/issue-75439.rs:11:5: 15:6 |
| 68 | + StorageLive(_4); // scope 1 at $DIR/issue-75439.rs:9:27: 9:29 |
| 69 | + _4 = _2[3 of 4]; // scope 1 at $DIR/issue-75439.rs:9:27: 9:29 |
| 70 | + goto -> bb5; // scope 1 at $DIR/issue-75439.rs:9:5: 13:6 |
71 | 71 | } |
72 | 72 |
|
73 | 73 | bb8: { |
74 | | - StorageDead(_6); // scope 4 at $DIR/issue-75439.rs:12:35: 12:36 |
75 | | - ((_0 as Some).0: [u8; 4]) = move _5; // scope 3 at $DIR/issue-75439.rs:12:9: 12:39 |
76 | | - discriminant(_0) = 1; // scope 3 at $DIR/issue-75439.rs:12:9: 12:39 |
77 | | - StorageDead(_5); // scope 3 at $DIR/issue-75439.rs:12:38: 12:39 |
78 | | - StorageDead(_4); // scope 1 at $DIR/issue-75439.rs:13:5: 13:6 |
79 | | - goto -> bb9; // scope 1 at $DIR/issue-75439.rs:11:5: 15:6 |
| 74 | + StorageDead(_6); // scope 4 at $DIR/issue-75439.rs:10:35: 10:36 |
| 75 | + ((_0 as Some).0: [u8; 4]) = move _5; // scope 3 at $DIR/issue-75439.rs:10:9: 10:39 |
| 76 | + discriminant(_0) = 1; // scope 3 at $DIR/issue-75439.rs:10:9: 10:39 |
| 77 | + StorageDead(_5); // scope 3 at $DIR/issue-75439.rs:10:38: 10:39 |
| 78 | + StorageDead(_4); // scope 1 at $DIR/issue-75439.rs:11:5: 11:6 |
| 79 | + goto -> bb9; // scope 1 at $DIR/issue-75439.rs:9:5: 13:6 |
80 | 80 | } |
81 | 81 |
|
82 | 82 | bb9: { |
83 | | - StorageDead(_2); // scope 0 at $DIR/issue-75439.rs:16:1: 16:2 |
84 | | - return; // scope 0 at $DIR/issue-75439.rs:16:2: 16:2 |
| 83 | + StorageDead(_2); // scope 0 at $DIR/issue-75439.rs:14:1: 14:2 |
| 84 | + return; // scope 0 at $DIR/issue-75439.rs:14:2: 14:2 |
85 | 85 | } |
86 | 86 | } |
87 | 87 |
|
0 commit comments