- // MIR for `main` before DataflowConstProp
+ // MIR for `main` after DataflowConstProp
  
  fn main() -> () {
      let mut _0: ();
      let mut _1: (i32, i32);
      let mut _3: i32;
      let mut _4: i32;
      let mut _5: i32;
      let mut _7: i32;
      let mut _8: i32;
      let mut _9: i32;
      let mut _10: i32;
      let mut _12: i32;
      let mut _13: (i32, i32);
      let mut _14: i32;
      scope 1 {
          debug a => _1;
          let _2: i32;
          scope 2 {
              debug b => _2;
              let _6: i32;
              scope 3 {
                  debug c => _6;
                  let _11: (i32, (i32, i32), i32);
                  scope 4 {
                      debug d => _11;
                  }
              }
          }
      }
  
      bb0: {
          StorageLive(_1);
-         _1 = (const 1_i32, const 2_i32);
+         _1 = const (1_i32, 2_i32);
          StorageLive(_2);
          StorageLive(_3);
          StorageLive(_4);
-         _4 = copy (_1.0: i32);
+         _4 = const 1_i32;
          StorageLive(_5);
-         _5 = copy (_1.1: i32);
-         _3 = Add(move _4, move _5);
+         _5 = const 2_i32;
+         _3 = const 3_i32;
          StorageDead(_5);
          StorageDead(_4);
-         _2 = Add(move _3, const 3_i32);
+         _2 = const 6_i32;
          StorageDead(_3);
-         _1 = (const 2_i32, const 3_i32);
+         _1 = const (2_i32, 3_i32);
          StorageLive(_6);
          StorageLive(_7);
          StorageLive(_8);
-         _8 = copy (_1.0: i32);
+         _8 = const 2_i32;
          StorageLive(_9);
-         _9 = copy (_1.1: i32);
-         _7 = Add(move _8, move _9);
+         _9 = const 3_i32;
+         _7 = const 5_i32;
          StorageDead(_9);
          StorageDead(_8);
          StorageLive(_10);
-         _10 = copy _2;
-         _6 = Add(move _7, move _10);
+         _10 = const 6_i32;
+         _6 = const 11_i32;
          StorageDead(_10);
          StorageDead(_7);
          StorageLive(_11);
          StorageLive(_12);
-         _12 = copy _2;
+         _12 = const 6_i32;
          StorageLive(_13);
-         _13 = copy _1;
+         _13 = const (2_i32, 3_i32);
          StorageLive(_14);
-         _14 = copy _6;
-         _11 = (move _12, move _13, move _14);
+         _14 = const 11_i32;
+         _11 = (const 6_i32, const (2_i32, 3_i32), const 11_i32);
          StorageDead(_14);
          StorageDead(_13);
          StorageDead(_12);
          _0 = const ();
          StorageDead(_11);
          StorageDead(_6);
          StorageDead(_2);
          StorageDead(_1);
          return;
      }
  }
+ 
+ ALLOC0 (size: 8, align: 4) { .. }
+ 
+ ALLOC1 (size: 8, align: 4) { .. }
+ 
+ ALLOC2 (size: 8, align: 4) { .. }
+ 
+ ALLOC3 (size: 8, align: 4) { .. }
  
