]> git.lizzy.rs Git - rust.git/blob - src/test/mir-opt/exponential-or/rustc.match_tuple.SimplifyCfg-initial.after.mir
Rollup merge of #70367 - nikomatsakis:issue-69307, r=Aaron1011
[rust.git] / src / test / mir-opt / exponential-or / rustc.match_tuple.SimplifyCfg-initial.after.mir
1 // MIR for `match_tuple` after SimplifyCfg-initial
2
3 fn match_tuple(_1: (u32, bool, std::option::Option<i32>, u32)) -> u32 {
4     debug x => _1;                       // in scope 0 at $DIR/exponential-or.rs:6:16: 6:17
5     let mut _0: u32;                     // return place in scope 0 at $DIR/exponential-or.rs:6:53: 6:56
6     let mut _2: isize;                   // in scope 0 at $DIR/exponential-or.rs:8:37: 8:48
7     let mut _3: bool;                    // in scope 0 at $DIR/exponential-or.rs:8:70: 8:77
8     let mut _4: bool;                    // in scope 0 at $DIR/exponential-or.rs:8:70: 8:77
9     let mut _5: bool;                    // in scope 0 at $DIR/exponential-or.rs:8:62: 8:67
10     let mut _6: bool;                    // in scope 0 at $DIR/exponential-or.rs:8:62: 8:67
11     let _7: u32;                         // in scope 0 at $DIR/exponential-or.rs:8:10: 8:21
12     let _8: u32;                         // in scope 0 at $DIR/exponential-or.rs:8:57: 8:78
13     let mut _9: u32;                     // in scope 0 at $DIR/exponential-or.rs:8:83: 8:84
14     let mut _10: u32;                    // in scope 0 at $DIR/exponential-or.rs:8:87: 8:88
15     scope 1 {
16         debug y => _7;                   // in scope 1 at $DIR/exponential-or.rs:8:10: 8:21
17         debug z => _8;                   // in scope 1 at $DIR/exponential-or.rs:8:57: 8:78
18     }
19
20     bb0: {
21         FakeRead(ForMatchedPlace, _1);   // bb0[0]: scope 0 at $DIR/exponential-or.rs:7:11: 7:12
22         switchInt((_1.0: u32)) -> [1u32: bb2, 4u32: bb2, otherwise: bb1]; // bb0[1]: scope 0 at $DIR/exponential-or.rs:8:15: 8:16
23     }
24
25     bb1: {
26         _0 = const 0u32;                 // bb1[0]: scope 0 at $DIR/exponential-or.rs:9:14: 9:15
27                                          // ty::Const
28                                          // + ty: u32
29                                          // + val: Value(Scalar(0x00000000))
30                                          // mir::Constant
31                                          // + span: $DIR/exponential-or.rs:9:14: 9:15
32                                          // + literal: Const { ty: u32, val: Value(Scalar(0x00000000)) }
33         goto -> bb10;                    // bb1[1]: scope 0 at $DIR/exponential-or.rs:7:5: 10:6
34     }
35
36     bb2: {
37         _2 = discriminant((_1.2: std::option::Option<i32>)); // bb2[0]: scope 0 at $DIR/exponential-or.rs:8:37: 8:48
38         switchInt(move _2) -> [0isize: bb4, 1isize: bb3, otherwise: bb1]; // bb2[1]: scope 0 at $DIR/exponential-or.rs:8:37: 8:48
39     }
40
41     bb3: {
42         switchInt((((_1.2: std::option::Option<i32>) as Some).0: i32)) -> [1i32: bb4, 8i32: bb4, otherwise: bb1]; // bb3[0]: scope 0 at $DIR/exponential-or.rs:8:42: 8:43
43     }
44
45     bb4: {
46         _5 = Le(const 6u32, (_1.3: u32)); // bb4[0]: scope 0 at $DIR/exponential-or.rs:8:62: 8:67
47                                          // ty::Const
48                                          // + ty: u32
49                                          // + val: Value(Scalar(0x00000006))
50                                          // mir::Constant
51                                          // + span: $DIR/exponential-or.rs:8:62: 8:67
52                                          // + literal: Const { ty: u32, val: Value(Scalar(0x00000006)) }
53         switchInt(move _5) -> [false: bb6, otherwise: bb5]; // bb4[1]: scope 0 at $DIR/exponential-or.rs:8:62: 8:67
54     }
55
56     bb5: {
57         _6 = Le((_1.3: u32), const 9u32); // bb5[0]: scope 0 at $DIR/exponential-or.rs:8:62: 8:67
58                                          // ty::Const
59                                          // + ty: u32
60                                          // + val: Value(Scalar(0x00000009))
61                                          // mir::Constant
62                                          // + span: $DIR/exponential-or.rs:8:62: 8:67
63                                          // + literal: Const { ty: u32, val: Value(Scalar(0x00000009)) }
64         switchInt(move _6) -> [false: bb6, otherwise: bb8]; // bb5[1]: scope 0 at $DIR/exponential-or.rs:8:62: 8:67
65     }
66
67     bb6: {
68         _3 = Le(const 13u32, (_1.3: u32)); // bb6[0]: scope 0 at $DIR/exponential-or.rs:8:70: 8:77
69                                          // ty::Const
70                                          // + ty: u32
71                                          // + val: Value(Scalar(0x0000000d))
72                                          // mir::Constant
73                                          // + span: $DIR/exponential-or.rs:8:70: 8:77
74                                          // + literal: Const { ty: u32, val: Value(Scalar(0x0000000d)) }
75         switchInt(move _3) -> [false: bb1, otherwise: bb7]; // bb6[1]: scope 0 at $DIR/exponential-or.rs:8:70: 8:77
76     }
77
78     bb7: {
79         _4 = Le((_1.3: u32), const 16u32); // bb7[0]: scope 0 at $DIR/exponential-or.rs:8:70: 8:77
80                                          // ty::Const
81                                          // + ty: u32
82                                          // + val: Value(Scalar(0x00000010))
83                                          // mir::Constant
84                                          // + span: $DIR/exponential-or.rs:8:70: 8:77
85                                          // + literal: Const { ty: u32, val: Value(Scalar(0x00000010)) }
86         switchInt(move _4) -> [false: bb1, otherwise: bb8]; // bb7[1]: scope 0 at $DIR/exponential-or.rs:8:70: 8:77
87     }
88
89     bb8: {
90         falseEdges -> [real: bb9, imaginary: bb1]; // bb8[0]: scope 0 at $DIR/exponential-or.rs:8:9: 8:79
91     }
92
93     bb9: {
94         StorageLive(_7);                 // bb9[0]: scope 0 at $DIR/exponential-or.rs:8:10: 8:21
95         _7 = (_1.0: u32);                // bb9[1]: scope 0 at $DIR/exponential-or.rs:8:10: 8:21
96         StorageLive(_8);                 // bb9[2]: scope 0 at $DIR/exponential-or.rs:8:57: 8:78
97         _8 = (_1.3: u32);                // bb9[3]: scope 0 at $DIR/exponential-or.rs:8:57: 8:78
98         StorageLive(_9);                 // bb9[4]: scope 1 at $DIR/exponential-or.rs:8:83: 8:84
99         _9 = _7;                         // bb9[5]: scope 1 at $DIR/exponential-or.rs:8:83: 8:84
100         StorageLive(_10);                // bb9[6]: scope 1 at $DIR/exponential-or.rs:8:87: 8:88
101         _10 = _8;                        // bb9[7]: scope 1 at $DIR/exponential-or.rs:8:87: 8:88
102         _0 = BitXor(move _9, move _10);  // bb9[8]: scope 1 at $DIR/exponential-or.rs:8:83: 8:88
103         StorageDead(_10);                // bb9[9]: scope 1 at $DIR/exponential-or.rs:8:87: 8:88
104         StorageDead(_9);                 // bb9[10]: scope 1 at $DIR/exponential-or.rs:8:87: 8:88
105         StorageDead(_8);                 // bb9[11]: scope 0 at $DIR/exponential-or.rs:8:88: 8:89
106         StorageDead(_7);                 // bb9[12]: scope 0 at $DIR/exponential-or.rs:8:88: 8:89
107         goto -> bb10;                    // bb9[13]: scope 0 at $DIR/exponential-or.rs:7:5: 10:6
108     }
109
110     bb10: {
111         return;                          // bb10[0]: scope 0 at $DIR/exponential-or.rs:11:2: 11:2
112     }
113 }