- // MIR for `mut_raw_then_mut_shr` before ReferencePropagation
+ // MIR for `mut_raw_then_mut_shr` after ReferencePropagation
  
  fn mut_raw_then_mut_shr() -> (i32, i32) {
      let mut _0: (i32, i32);
      let mut _1: i32;
      let mut _4: *mut i32;
      let mut _5: &mut i32;
      let _8: ();
      let mut _9: i32;
      let mut _10: i32;
      scope 1 {
          debug x => _1;
          let _2: &mut i32;
          scope 2 {
              debug xref => _2;
              let _3: *mut i32;
              scope 3 {
-                 debug xraw => _3;
+                 debug xraw => _2;
                  let _6: &i32;
                  scope 4 {
-                     debug xshr => _6;
+                     debug xshr => _2;
                      let _7: i32;
                      scope 5 {
                          debug a => _7;
                      }
                  }
              }
          }
      }
  
      bb0: {
          StorageLive(_1);
          _1 = const 2_i32;
-         StorageLive(_2);
          _2 = &mut _1;
-         StorageLive(_3);
-         StorageLive(_4);
-         StorageLive(_5);
-         _5 = &mut (*_2);
-         _4 = &raw mut (*_5);
-         _3 = _4;
-         StorageDead(_5);
-         StorageDead(_4);
-         StorageLive(_6);
-         _6 = &(*_2);
          StorageLive(_7);
-         _7 = (*_6);
-         StorageLive(_8);
-         (*_3) = const 4_i32;
-         _8 = const ();
-         StorageDead(_8);
+         _7 = _1;
+         _1 = const 4_i32;
          StorageLive(_9);
          _9 = _7;
          StorageLive(_10);
          _10 = _1;
          _0 = (move _9, move _10);
          StorageDead(_10);
          StorageDead(_9);
          StorageDead(_7);
-         StorageDead(_6);
-         StorageDead(_3);
-         StorageDead(_2);
          StorageDead(_1);
          return;
      }
  }
  
