- // MIR for `manual_slice_mut_len` before GVN
+ // MIR for `manual_slice_mut_len` after GVN
  
  fn manual_slice_mut_len(_1: &mut [i32]) -> usize {
      debug x => _1;
      let mut _0: usize;
      let _2: *mut [i32];
      let mut _4: *mut [i32];
      let mut _5: *const [i32];
      scope 1 {
          debug x => _2;
          let _3: *const [i32];
          scope 2 {
              debug x => _3;
          }
      }
  
      bb0: {
-         StorageLive(_2);
+         nop;
          _2 = &raw mut (*_1);
-         StorageLive(_3);
+         nop;
          StorageLive(_4);
          _4 = copy _2;
-         _3 = move _4 as *const [i32] (PtrToPtr);
+         _3 = copy _2 as *const [i32] (PtrToPtr);
          StorageDead(_4);
          StorageLive(_5);
          _5 = copy _3;
-         _0 = PtrMetadata(move _5);
+         _0 = PtrMetadata(copy _1);
          StorageDead(_5);
-         StorageDead(_3);
-         StorageDead(_2);
+         nop;
+         nop;
          return;
      }
  }
  
