- // MIR for `roundtrip` before InstSimplify-after-simplifycfg
+ // MIR for `roundtrip` after InstSimplify-after-simplifycfg
  
  fn roundtrip(_1: *const u8) -> *const u8 {
      debug x => _1;
      let mut _0: *const u8;
      let mut _2: *const u8;
      let mut _3: *mut u8;
      let mut _4: *const u8;
  
      bb0: {
          StorageLive(_2);
          StorageLive(_3);
          StorageLive(_4);
          _4 = copy _1;
          _3 = move _4 as *mut u8 (PtrToPtr);
          _2 = move _3 as *const u8 (PtrToPtr);
          StorageDead(_4);
          StorageDead(_3);
-         _0 = move _2 as *const u8 (PtrToPtr);
+         _0 = move _2;
          StorageDead(_2);
          return;
      }
  }
  
