- // MIR for `src` before GVN
+ // MIR for `src` after GVN
  
  fn src(_1: &&u8) -> bool {
      debug x => _1;
      let mut _0: bool;
      let _2: u8;
      let _3: ();
      let mut _4: u8;
      let mut _5: u8;
      let mut _6: &u8;
      let mut _7: &u8;
      scope 1 {
          debug y => _2;
      }
  
      bb0: {
-         StorageLive(_2);
+         nop;
          _6 = copy (*_1);
          _2 = copy (*_6);
          _3 = unknown() -> [return: bb1, unwind unreachable];
      }
  
      bb1: {
          StorageLive(_4);
          _7 = copy (*_1);
          _4 = copy (*_7);
          StorageLive(_5);
          _5 = copy _2;
-         _0 = Eq(move _4, move _5);
+         _0 = Eq(move _4, copy _2);
          StorageDead(_5);
          StorageDead(_4);
-         StorageDead(_2);
+         nop;
          return;
      }
  }
  
