- // MIR for `foo` before GVN
+ // MIR for `foo` after GVN
  
  fn foo(_1: u8) -> () {
      debug x => _1;
      let mut _0: ();
      let _2: i32;
      let mut _3: i32;
      let mut _4: (i32, u8);
      let mut _5: u8;
      let mut _7: i32;
      let mut _8: (u8, i32);
      let mut _9: u8;
      scope 1 {
          debug first => _2;
          let _6: i32;
          scope 2 {
              debug second => _6;
          }
      }
  
      bb0: {
          StorageLive(_2);
          StorageLive(_3);
          StorageLive(_4);
          StorageLive(_5);
          _5 = copy _1;
-         _4 = (const 0_i32, move _5);
+         _4 = (const 0_i32, copy _1);
          StorageDead(_5);
-         _3 = copy (_4.0: i32);
-         _2 = Add(move _3, const 1_i32);
+         _3 = const 0_i32;
+         _2 = const 1_i32;
          StorageDead(_3);
          StorageDead(_4);
          StorageLive(_6);
          StorageLive(_7);
          StorageLive(_8);
          StorageLive(_9);
          _9 = copy _1;
-         _8 = (move _9, const 1_i32);
+         _8 = (copy _1, const 1_i32);
          StorageDead(_9);
-         _7 = copy (_8.1: i32);
-         _6 = Add(move _7, const 2_i32);
+         _7 = const 1_i32;
+         _6 = const 3_i32;
          StorageDead(_7);
          StorageDead(_8);
          _0 = const ();
          StorageDead(_6);
          StorageDead(_2);
          return;
      }
  }
  
