]> git.lizzy.rs Git - rust.git/blob - src/test/mir-opt/exponential-or/rustc.match_tuple.SimplifyCfg-initial.after.mir
Rollup merge of #71311 - estebank:fn-type-param, r=varkor
[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);   // scope 0 at $DIR/exponential-or.rs:7:11: 7:12
22         switchInt((_1.0: u32)) -> [1u32: bb2, 4u32: bb2, otherwise: bb1]; // scope 0 at $DIR/exponential-or.rs:8:15: 8:16
23     }
24
25     bb1: {
26         _0 = const 0u32;                 // 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;                    // scope 0 at $DIR/exponential-or.rs:7:5: 10:6
34     }
35
36     bb2: {
37         _2 = discriminant((_1.2: std::option::Option<i32>)); // scope 0 at $DIR/exponential-or.rs:8:37: 8:48
38         switchInt(move _2) -> [0isize: bb4, 1isize: bb3, otherwise: bb1]; // 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]; // scope 0 at $DIR/exponential-or.rs:8:42: 8:43
43     }
44
45     bb4: {
46         _5 = Le(const 6u32, (_1.3: u32)); // 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]; // scope 0 at $DIR/exponential-or.rs:8:62: 8:67
54     }
55
56     bb5: {
57         _6 = Le((_1.3: u32), const 9u32); // 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]; // scope 0 at $DIR/exponential-or.rs:8:62: 8:67
65     }
66
67     bb6: {
68         _3 = Le(const 13u32, (_1.3: u32)); // 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]; // scope 0 at $DIR/exponential-or.rs:8:70: 8:77
76     }
77
78     bb7: {
79         _4 = Le((_1.3: u32), const 16u32); // 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]; // scope 0 at $DIR/exponential-or.rs:8:70: 8:77
87     }
88
89     bb8: {
90         falseEdges -> [real: bb9, imaginary: bb1]; // scope 0 at $DIR/exponential-or.rs:8:9: 8:79
91     }
92
93     bb9: {
94         StorageLive(_7);                 // scope 0 at $DIR/exponential-or.rs:8:10: 8:21
95         _7 = (_1.0: u32);                // scope 0 at $DIR/exponential-or.rs:8:10: 8:21
96         StorageLive(_8);                 // scope 0 at $DIR/exponential-or.rs:8:57: 8:78
97         _8 = (_1.3: u32);                // scope 0 at $DIR/exponential-or.rs:8:57: 8:78
98         StorageLive(_9);                 // scope 1 at $DIR/exponential-or.rs:8:83: 8:84
99         _9 = _7;                         // scope 1 at $DIR/exponential-or.rs:8:83: 8:84
100         StorageLive(_10);                // scope 1 at $DIR/exponential-or.rs:8:87: 8:88
101         _10 = _8;                        // scope 1 at $DIR/exponential-or.rs:8:87: 8:88
102         _0 = BitXor(move _9, move _10);  // scope 1 at $DIR/exponential-or.rs:8:83: 8:88
103         StorageDead(_10);                // scope 1 at $DIR/exponential-or.rs:8:87: 8:88
104         StorageDead(_9);                 // scope 1 at $DIR/exponential-or.rs:8:87: 8:88
105         StorageDead(_8);                 // scope 0 at $DIR/exponential-or.rs:8:88: 8:89
106         StorageDead(_7);                 // scope 0 at $DIR/exponential-or.rs:8:88: 8:89
107         goto -> bb10;                    // scope 0 at $DIR/exponential-or.rs:7:5: 10:6
108     }
109
110     bb10: {
111         return;                          // scope 0 at $DIR/exponential-or.rs:11:2: 11:2
112     }
113 }