|
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