1- // MIR for `bar` before MatchBranchSimplification
2+ // MIR for `bar` after MatchBranchSimplification
3
4  fn bar(_1: i32) -> (bool, bool, bool, bool) {
5      debug i => _1;                       // in scope 0 at $DIR/matches_reduce_branches.rs:13:8: 13:9
6      let mut _0: (bool, bool, bool, bool); // return place in scope 0 at $DIR/matches_reduce_branches.rs:13:19: 13:43
7      let _2: bool;                        // in scope 0 at $DIR/matches_reduce_branches.rs:14:9: 14:10
8      let _6: ();                          // in scope 0 at $DIR/matches_reduce_branches.rs:19:5: 34:6
9      let mut _7: bool;                    // in scope 0 at $DIR/matches_reduce_branches.rs:36:6: 36:7
10      let mut _8: bool;                    // in scope 0 at $DIR/matches_reduce_branches.rs:36:9: 36:10
11      let mut _9: bool;                    // in scope 0 at $DIR/matches_reduce_branches.rs:36:12: 36:13
12      let mut _10: bool;                   // in scope 0 at $DIR/matches_reduce_branches.rs:36:15: 36:16
13+     let mut _11: i32;                    // in scope 0 at $DIR/matches_reduce_branches.rs:19:5: 19:12
14      scope 1 {
15          debug a => _2;                   // in scope 1 at $DIR/matches_reduce_branches.rs:14:9: 14:10
16          let _3: bool;                    // in scope 1 at $DIR/matches_reduce_branches.rs:15:9: 15:10
17          scope 2 {
18              debug b => _3;               // in scope 2 at $DIR/matches_reduce_branches.rs:15:9: 15:10
19              let _4: bool;                // in scope 2 at $DIR/matches_reduce_branches.rs:16:9: 16:10
20              scope 3 {
21                  debug c => _4;           // in scope 3 at $DIR/matches_reduce_branches.rs:16:9: 16:10
22                  let _5: bool;            // in scope 3 at $DIR/matches_reduce_branches.rs:17:9: 17:10
23                  scope 4 {
24                      debug d => _5;       // in scope 4 at $DIR/matches_reduce_branches.rs:17:9: 17:10
25                  }
26              }
27          }
28      }
29
30      bb0: {
31          StorageLive(_2);                 // scope 0 at $DIR/matches_reduce_branches.rs:14:9: 14:10
32          StorageLive(_3);                 // scope 1 at $DIR/matches_reduce_branches.rs:15:9: 15:10
33          StorageLive(_4);                 // scope 2 at $DIR/matches_reduce_branches.rs:16:9: 16:10
34          StorageLive(_5);                 // scope 3 at $DIR/matches_reduce_branches.rs:17:9: 17:10
35          StorageLive(_6);                 // scope 4 at $DIR/matches_reduce_branches.rs:19:5: 34:6
36-         switchInt(_1) -> [7_i32: bb2, otherwise: bb1]; // scope 4 at $DIR/matches_reduce_branches.rs:19:5: 19:12
37-     }
38-
39-     bb1: {
40-         _2 = const true;                 // scope 4 at $DIR/matches_reduce_branches.rs:28:13: 28:21
41-         _3 = const false;                // scope 4 at $DIR/matches_reduce_branches.rs:29:13: 29:22
42-         _4 = const false;                // scope 4 at $DIR/matches_reduce_branches.rs:30:13: 30:22
43-         _5 = const true;                 // scope 4 at $DIR/matches_reduce_branches.rs:31:13: 31:21
44-         goto -> bb3;                     // scope 4 at $DIR/matches_reduce_branches.rs:32:13: 32:15
45-     }
46-
47-     bb2: {
48-         _2 = const false;                // scope 4 at $DIR/matches_reduce_branches.rs:21:13: 21:22
49-         _3 = const true;                 // scope 4 at $DIR/matches_reduce_branches.rs:22:13: 22:21
50+         StorageLive(_11);                // scope 4 at $DIR/matches_reduce_branches.rs:19:5: 19:12
51+         _11 = _1;                        // scope 4 at $DIR/matches_reduce_branches.rs:19:5: 19:12
52+         _2 = Ne(_11, const 7_i32);       // scope 4 at $DIR/matches_reduce_branches.rs:21:13: 21:22
53+         _3 = Eq(_11, const 7_i32);       // scope 4 at $DIR/matches_reduce_branches.rs:22:13: 22:21
54          _4 = const false;                // scope 4 at $DIR/matches_reduce_branches.rs:23:13: 23:22
55          _5 = const true;                 // scope 4 at $DIR/matches_reduce_branches.rs:24:13: 24:21
56-         goto -> bb3;                     // scope 4 at $DIR/matches_reduce_branches.rs:25:13: 25:15
57-     }
58-
59-     bb3: {
60+         StorageDead(_11);                // scope 4 at $DIR/matches_reduce_branches.rs:19:5: 19:12
61          StorageDead(_6);                 // scope 4 at $DIR/matches_reduce_branches.rs:34:6: 34:7
62          StorageLive(_7);                 // scope 4 at $DIR/matches_reduce_branches.rs:36:6: 36:7
63          _7 = _2;                         // scope 4 at $DIR/matches_reduce_branches.rs:36:6: 36:7
64          StorageLive(_8);                 // scope 4 at $DIR/matches_reduce_branches.rs:36:9: 36:10
65          _8 = _3;                         // scope 4 at $DIR/matches_reduce_branches.rs:36:9: 36:10
66          StorageLive(_9);                 // scope 4 at $DIR/matches_reduce_branches.rs:36:12: 36:13
67          _9 = _4;                         // scope 4 at $DIR/matches_reduce_branches.rs:36:12: 36:13
68          StorageLive(_10);                // scope 4 at $DIR/matches_reduce_branches.rs:36:15: 36:16
69          _10 = _5;                        // scope 4 at $DIR/matches_reduce_branches.rs:36:15: 36:16
70          (_0.0: bool) = move _7;          // scope 4 at $DIR/matches_reduce_branches.rs:36:5: 36:17
71          (_0.1: bool) = move _8;          // scope 4 at $DIR/matches_reduce_branches.rs:36:5: 36:17
72          (_0.2: bool) = move _9;          // scope 4 at $DIR/matches_reduce_branches.rs:36:5: 36:17
73          (_0.3: bool) = move _10;         // scope 4 at $DIR/matches_reduce_branches.rs:36:5: 36:17
74          StorageDead(_10);                // scope 4 at $DIR/matches_reduce_branches.rs:36:16: 36:17
75          StorageDead(_9);                 // scope 4 at $DIR/matches_reduce_branches.rs:36:16: 36:17
76          StorageDead(_8);                 // scope 4 at $DIR/matches_reduce_branches.rs:36:16: 36:17
77          StorageDead(_7);                 // scope 4 at $DIR/matches_reduce_branches.rs:36:16: 36:17
78          StorageDead(_5);                 // scope 3 at $DIR/matches_reduce_branches.rs:37:1: 37:2
79          StorageDead(_4);                 // scope 2 at $DIR/matches_reduce_branches.rs:37:1: 37:2
80          StorageDead(_3);                 // scope 1 at $DIR/matches_reduce_branches.rs:37:1: 37:2
81          StorageDead(_2);                 // scope 0 at $DIR/matches_reduce_branches.rs:37:1: 37:2
82          return;                          // scope 0 at $DIR/matches_reduce_branches.rs:37:2: 37:2
83      }
84  }
85
86