- // MIR for `main` before GVN
+ // MIR for `main` after GVN
  
  fn main() -> () {
      let mut _0: ();
      let mut _1: u32;
      let _2: ();
      let mut _3: u32;
      let mut _4: *mut u32;
      scope 1 {
          debug x => _1;
          let _5: u32;
          scope 2 {
              debug y => _5;
          }
      }
  
      bb0: {
          StorageLive(_1);
          _1 = const 42_u32;
          StorageLive(_2);
          StorageLive(_3);
          StorageLive(_4);
          _4 = const {ALLOC0: *mut u32};
          _3 = copy (*_4);
          _1 = move _3;
          StorageDead(_3);
          StorageDead(_4);
          _2 = const ();
          StorageDead(_2);
          StorageLive(_5);
          _5 = copy _1;
          _0 = const ();
          StorageDead(_5);
          StorageDead(_1);
          return;
      }
  }
  
  ALLOC0 (static: STATIC, size: 4, align: 4) {
      42 42 42 42                                     │ BBBB
  }
  
