]> git.lizzy.rs Git - rust.git/blob - src/test/mir-opt/issue_73223.main.SimplifyArmIdentity.64bit.diff
261eb3b27eafd1982e3db0969577f20173cb0ee9
[rust.git] / src / test / mir-opt / issue_73223.main.SimplifyArmIdentity.64bit.diff
1 - // MIR for `main` before SimplifyArmIdentity
2 + // MIR for `main` after SimplifyArmIdentity
3   
4   fn main() -> () {
5       let mut _0: ();                      // return place in scope 0 at $DIR/issue-73223.rs:1:11: 1:11
6       let _1: i32;                         // in scope 0 at $DIR/issue-73223.rs:2:9: 2:14
7       let mut _2: std::option::Option<i32>; // in scope 0 at $DIR/issue-73223.rs:2:23: 2:30
8       let mut _3: isize;                   // in scope 0 at $DIR/issue-73223.rs:3:9: 3:16
9       let _4: i32;                         // in scope 0 at $DIR/issue-73223.rs:3:14: 3:15
10       let mut _5: !;                       // in scope 0 at $DIR/issue-73223.rs:4:17: 4:23
11       let mut _7: i32;                     // in scope 0 at $DIR/issue-73223.rs:7:22: 7:27
12       let _8: ();                          // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
13       let mut _9: (&i32, &i32);            // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
14       let mut _10: &i32;                   // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
15       let mut _11: &i32;                   // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
16       let _12: i32;                        // in scope 0 at $DIR/issue-73223.rs:8:23: 8:24
17       let mut _15: bool;                   // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
18       let mut _16: bool;                   // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
19       let mut _17: i32;                    // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
20       let mut _18: i32;                    // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
21       let mut _19: !;                      // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
22       let _21: !;                          // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
23       let mut _22: core::panicking::AssertKind; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
24       let mut _23: &i32;                   // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
25       let _24: &i32;                       // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
26       let mut _25: &i32;                   // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
27       let _26: &i32;                       // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
28       let mut _27: std::option::Option<std::fmt::Arguments>; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
29       scope 1 {
30           debug split => _1;               // in scope 1 at $DIR/issue-73223.rs:2:9: 2:14
31           let _6: std::option::Option<i32>; // in scope 1 at $DIR/issue-73223.rs:7:9: 7:14
32           scope 3 {
33               debug _prev => _6;           // in scope 3 at $DIR/issue-73223.rs:7:9: 7:14
34               let _13: &i32;               // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
35               let _14: &i32;               // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
36               let mut _28: &i32;           // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
37               scope 4 {
38                   debug left_val => _13;   // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
39                   debug right_val => _14;  // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
40                   let _20: core::panicking::AssertKind; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
41                   scope 5 {
42                       debug kind => _20;   // in scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
43                   }
44               }
45           }
46       }
47       scope 2 {
48           debug v => _4;                   // in scope 2 at $DIR/issue-73223.rs:3:14: 3:15
49       }
50   
51       bb0: {
52           StorageLive(_1);                 // scope 0 at $DIR/issue-73223.rs:2:9: 2:14
53           StorageLive(_2);                 // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
54           ((_2 as Some).0: i32) = const 1_i32; // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
55           discriminant(_2) = 1;            // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
56           _3 = const 1_isize;              // scope 0 at $DIR/issue-73223.rs:3:9: 3:16
57           goto -> bb2;                     // scope 0 at $DIR/issue-73223.rs:3:9: 3:16
58       }
59   
60       bb1: {
61           nop;                             // scope 0 at $DIR/issue-73223.rs:4:17: 4:23
62           StorageDead(_2);                 // scope 0 at $DIR/issue-73223.rs:5:6: 5:7
63           StorageDead(_1);                 // scope 0 at $DIR/issue-73223.rs:9:1: 9:2
64           return;                          // scope 0 at $DIR/issue-73223.rs:9:2: 9:2
65       }
66   
67       bb2: {
68           StorageLive(_4);                 // scope 0 at $DIR/issue-73223.rs:3:14: 3:15
69           _4 = ((_2 as Some).0: i32);      // scope 0 at $DIR/issue-73223.rs:3:14: 3:15
70           _1 = _4;                         // scope 2 at $DIR/issue-73223.rs:3:20: 3:21
71           StorageDead(_4);                 // scope 0 at $DIR/issue-73223.rs:3:20: 3:21
72           StorageDead(_2);                 // scope 0 at $DIR/issue-73223.rs:5:6: 5:7
73           StorageLive(_6);                 // scope 1 at $DIR/issue-73223.rs:7:9: 7:14
74           StorageLive(_7);                 // scope 1 at $DIR/issue-73223.rs:7:22: 7:27
75           _7 = _1;                         // scope 1 at $DIR/issue-73223.rs:7:22: 7:27
76           ((_6 as Some).0: i32) = move _7; // scope 1 at $DIR/issue-73223.rs:7:17: 7:28
77           discriminant(_6) = 1;            // scope 1 at $DIR/issue-73223.rs:7:17: 7:28
78           StorageDead(_7);                 // scope 1 at $DIR/issue-73223.rs:7:27: 7:28
79           StorageLive(_8);                 // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
80           StorageLive(_9);                 // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
81           StorageLive(_10);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
82           _10 = &_1;                       // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
83           StorageLive(_11);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
84           _28 = const main::promoted[0];   // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
85                                            // ty::Const
86                                            // + ty: &i32
87                                            // + val: Unevaluated(main, [], Some(promoted[0]))
88                                            // mir::Constant
89                                            // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
90                                            // + literal: Const { ty: &i32, val: Unevaluated(Unevaluated { def: WithOptConstParam { did: DefId(0:3 ~ issue_73223[317d]::main), const_param_did: None }, substs: [], promoted: Some(promoted[0]) }) }
91           _11 = _28;                       // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
92           (_9.0: &i32) = move _10;         // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
93           (_9.1: &i32) = move _11;         // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
94           StorageDead(_11);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
95           StorageDead(_10);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
96           StorageLive(_13);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
97           _13 = (_9.0: &i32);              // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
98           StorageLive(_14);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
99           _14 = (_9.1: &i32);              // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
100           StorageLive(_15);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
101           StorageLive(_16);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
102           StorageLive(_17);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
103           _17 = (*_13);                    // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
104           StorageLive(_18);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
105           _18 = const 1_i32;               // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
106           _16 = Eq(move _17, const 1_i32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
107           StorageDead(_18);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
108           StorageDead(_17);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
109           _15 = Not(move _16);             // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
110           StorageDead(_16);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
111           switchInt(move _15) -> [false: bb4, otherwise: bb3]; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
112       }
113   
114       bb3: {
115           StorageLive(_20);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
116           discriminant(_20) = 0;           // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
117           StorageLive(_21);                // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
118           StorageLive(_22);                // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
119           _22 = const core::panicking::AssertKind::Eq; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
120                                            // ty::Const
121                                            // + ty: core::panicking::AssertKind
122                                            // + val: Value(Scalar(0x00))
123                                            // mir::Constant
124                                            // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
125                                            // + literal: Const { ty: core::panicking::AssertKind, val: Value(Scalar(0x00)) }
126           StorageLive(_23);                // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
127           StorageLive(_24);                // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
128           _24 = _13;                       // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
129           _23 = _24;                       // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
130           StorageLive(_25);                // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
131           StorageLive(_26);                // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
132           _26 = _14;                       // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
133           _25 = _26;                       // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
134           StorageLive(_27);                // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
135           discriminant(_27) = 0;           // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
136           core::panicking::assert_failed::<i32, i32>(const core::panicking::AssertKind::Eq, move _23, move _25, move _27); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
137                                            // mir::Constant
138                                            // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
139                                            // + literal: Const { ty: for<'r, 's, 't0> fn(core::panicking::AssertKind, &'r i32, &'s i32, std::option::Option<std::fmt::Arguments<'t0>>) -> ! {core::panicking::assert_failed::<i32, i32>}, val: Value(Scalar(<ZST>)) }
140                                            // ty::Const
141                                            // + ty: core::panicking::AssertKind
142                                            // + val: Value(Scalar(0x00))
143                                            // mir::Constant
144                                            // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
145                                            // + literal: Const { ty: core::panicking::AssertKind, val: Value(Scalar(0x00)) }
146       }
147   
148       bb4: {
149           nop;                             // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
150           StorageDead(_15);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
151           StorageDead(_14);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
152           StorageDead(_13);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
153           StorageDead(_9);                 // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
154           StorageDead(_8);                 // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
155           nop;                             // scope 0 at $DIR/issue-73223.rs:1:11: 9:2
156           StorageDead(_6);                 // scope 1 at $DIR/issue-73223.rs:9:1: 9:2
157           StorageDead(_1);                 // scope 0 at $DIR/issue-73223.rs:9:1: 9:2
158           return;                          // scope 0 at $DIR/issue-73223.rs:9:2: 9:2
159       }
160   }
161