- // MIR for `reference_propagation_mut_ptr` before ReferencePropagation
+ // MIR for `reference_propagation_mut_ptr` after ReferencePropagation
  
  fn reference_propagation_mut_ptr(_1: *mut T, _2: *mut T) -> () {
      debug single => _1;
      debug multiple => _2;
      let mut _0: ();
      let _3: ();
      let mut _4: usize;
      let _7: ();
      let mut _8: ();
      let _9: ();
      let mut _10: usize;
      let mut _13: *mut usize;
      let _15: ();
      let mut _16: ();
      let _17: ();
      let mut _18: usize;
      let _22: ();
      let mut _23: &*mut usize;
      let _24: ();
      let mut _25: usize;
      let _29: ();
      let mut _30: *mut *mut usize;
      let _31: ();
      let mut _32: usize;
      let _35: ();
      let mut _36: *mut usize;
      let _37: ();
      let mut _38: usize;
      let _44: ();
      let mut _45: *mut usize;
      let _46: ();
      let _47: *mut T;
      let _49: ();
      let mut _50: ();
      let _51: ();
      let _52: *mut T;
      let mut _53: *mut T;
      let _55: ();
      let mut _56: ();
      let _57: ();
      let mut _58: usize;
      let _62: ();
      let mut _63: ();
      let mut _64: usize;
      let _68: ();
      let mut _69: ();
      scope 1 {
          debug a => _4;
          let _5: *mut usize;
          scope 2 {
              debug b => _5;
              let _6: usize;
              scope 3 {
                  debug c => _6;
              }
          }
      }
      scope 4 {
          debug a => _10;
          let mut _11: usize;
          scope 5 {
              debug a2 => _11;
              let mut _12: *mut usize;
              scope 6 {
                  debug b => _12;
                  let _14: usize;
                  scope 7 {
                      debug c => _14;
                  }
              }
          }
      }
      scope 8 {
          debug a => _18;
          let _19: *mut usize;
          scope 9 {
              debug b => _19;
              let _20: &*mut usize;
              scope 10 {
                  debug d => _20;
                  let _21: usize;
                  scope 11 {
                      debug c => _21;
                  }
              }
          }
      }
      scope 12 {
          debug a => _25;
          let mut _26: *mut usize;
          scope 13 {
              debug b => _26;
              let _27: *mut *mut usize;
              scope 14 {
                  debug d => _27;
                  let _28: usize;
                  scope 15 {
                      debug c => _28;
                  }
              }
          }
      }
      scope 16 {
          debug a => _32;
          let _33: *mut usize;
          scope 17 {
              debug b => _33;
              let _34: usize;
              scope 18 {
                  debug c => _34;
              }
          }
      }
      scope 19 {
          debug a => _38;
          let _39: *mut usize;
          scope 20 {
              debug b1 => _39;
              let _40: usize;
              scope 21 {
                  debug c => _40;
                  let _41: *mut usize;
                  scope 22 {
                      debug b2 => _41;
                      let _42: usize;
                      scope 23 {
                          debug c2 => _42;
                          let _43: *mut usize;
                          scope 24 {
                              debug b3 => _43;
                          }
                      }
                  }
              }
          }
      }
      scope 25 {
-         debug a => _47;
+         debug a => _1;
          let _48: T;
          scope 26 {
              debug b => _48;
          }
      }
      scope 27 {
          debug a => _52;
          let _54: T;
          scope 28 {
              debug b => _54;
          }
      }
      scope 29 {
          debug a => _58;
          let _59: *mut usize;
          scope 30 {
              debug b => _59;
              let _60: &*mut usize;
              scope 31 {
                  debug d => _60;
                  let _61: usize;
                  scope 32 {
                      debug c => _61;
                  }
              }
          }
      }
      scope 33 {
          debug a => _64;
          let mut _65: *mut usize;
          scope 34 {
              debug b => _65;
              let _66: &mut *mut usize;
              scope 35 {
                  debug d => _66;
                  let _67: usize;
                  scope 36 {
                      debug c => _67;
                  }
              }
          }
      }
  
      bb0: {
-         StorageLive(_3);
          StorageLive(_4);
          _4 = const 5_usize;
          StorageLive(_5);
          _5 = &raw mut _4;
          StorageLive(_6);
-         _6 = copy (*_5);
+         _6 = copy _4;
          StorageLive(_7);
          StorageLive(_8);
          _8 = ();
          _7 = opaque::<()>(move _8) -> [return: bb1, unwind continue];
      }
  
      bb1: {
          StorageDead(_8);
          StorageDead(_7);
-         _3 = const ();
          StorageDead(_6);
          StorageDead(_5);
          StorageDead(_4);
-         StorageDead(_3);
-         StorageLive(_9);
          StorageLive(_10);
          _10 = const 5_usize;
          StorageLive(_11);
          _11 = const 7_usize;
          StorageLive(_12);
          _12 = &raw mut _10;
          StorageLive(_13);
          _13 = &raw mut _11;
          _12 = move _13;
          StorageDead(_13);
          StorageLive(_14);
          _14 = copy (*_12);
          StorageLive(_15);
          StorageLive(_16);
          _16 = ();
          _15 = opaque::<()>(move _16) -> [return: bb2, unwind continue];
      }
  
      bb2: {
          StorageDead(_16);
          StorageDead(_15);
-         _9 = const ();
          StorageDead(_14);
          StorageDead(_12);
          StorageDead(_11);
          StorageDead(_10);
-         StorageDead(_9);
-         StorageLive(_17);
          StorageLive(_18);
          _18 = const 5_usize;
          StorageLive(_19);
          _19 = &raw mut _18;
          StorageLive(_20);
          _20 = &_19;
          StorageLive(_21);
          _21 = copy (*_19);
          StorageLive(_22);
          StorageLive(_23);
          _23 = copy _20;
          _22 = opaque::<&*mut usize>(move _23) -> [return: bb3, unwind continue];
      }
  
      bb3: {
          StorageDead(_23);
          StorageDead(_22);
-         _17 = const ();
          StorageDead(_21);
          StorageDead(_20);
          StorageDead(_19);
          StorageDead(_18);
-         StorageDead(_17);
-         StorageLive(_24);
          StorageLive(_25);
          _25 = const 5_usize;
          StorageLive(_26);
          _26 = &raw mut _25;
          StorageLive(_27);
          _27 = &raw mut _26;
          StorageLive(_28);
          _28 = copy (*_26);
          StorageLive(_29);
          StorageLive(_30);
          _30 = copy _27;
          _29 = opaque::<*mut *mut usize>(move _30) -> [return: bb4, unwind continue];
      }
  
      bb4: {
          StorageDead(_30);
          StorageDead(_29);
-         _24 = const ();
          StorageDead(_28);
          StorageDead(_27);
          StorageDead(_26);
          StorageDead(_25);
-         StorageDead(_24);
-         StorageLive(_31);
          StorageLive(_32);
          _32 = const 7_usize;
          StorageLive(_33);
          _33 = &raw mut _32;
          StorageLive(_34);
          _34 = copy (*_33);
          StorageLive(_35);
          StorageLive(_36);
          _36 = copy _33;
          _35 = opaque::<*mut usize>(move _36) -> [return: bb5, unwind continue];
      }
  
      bb5: {
          StorageDead(_36);
          StorageDead(_35);
-         _31 = const ();
          StorageDead(_34);
          StorageDead(_33);
          StorageDead(_32);
-         StorageDead(_31);
-         StorageLive(_37);
          StorageLive(_38);
          _38 = const 7_usize;
          StorageLive(_39);
          _39 = &raw mut _38;
          StorageLive(_40);
          _40 = copy (*_39);
          StorageLive(_41);
          _41 = copy _39;
          StorageLive(_42);
          _42 = copy (*_41);
          StorageLive(_43);
          _43 = copy _41;
          StorageLive(_44);
          StorageLive(_45);
          _45 = copy _43;
          _44 = opaque::<*mut usize>(move _45) -> [return: bb6, unwind continue];
      }
  
      bb6: {
          StorageDead(_45);
          StorageDead(_44);
-         _37 = const ();
          StorageDead(_43);
          StorageDead(_42);
          StorageDead(_41);
          StorageDead(_40);
          StorageDead(_39);
          StorageDead(_38);
-         StorageDead(_37);
-         StorageLive(_46);
-         StorageLive(_47);
-         _47 = &raw mut (*_1);
          StorageLive(_48);
-         _48 = copy (*_47);
+         _48 = copy (*_1);
          StorageLive(_49);
          StorageLive(_50);
          _50 = ();
          _49 = opaque::<()>(move _50) -> [return: bb7, unwind continue];
      }
  
      bb7: {
          StorageDead(_50);
          StorageDead(_49);
-         _46 = const ();
          StorageDead(_48);
-         StorageDead(_47);
-         StorageDead(_46);
-         StorageLive(_51);
          StorageLive(_52);
          _52 = &raw mut (*_2);
          StorageLive(_53);
          _53 = &raw mut (*_1);
          _2 = move _53;
          StorageDead(_53);
          StorageLive(_54);
          _54 = copy (*_52);
          StorageLive(_55);
          StorageLive(_56);
          _56 = ();
          _55 = opaque::<()>(move _56) -> [return: bb8, unwind continue];
      }
  
      bb8: {
          StorageDead(_56);
          StorageDead(_55);
-         _51 = const ();
          StorageDead(_54);
          StorageDead(_52);
-         StorageDead(_51);
-         StorageLive(_57);
          StorageLive(_58);
          _58 = const 5_usize;
          StorageLive(_59);
          _59 = &raw mut _58;
          StorageLive(_60);
          _60 = &_59;
          StorageLive(_61);
          _61 = copy (*_59);
          StorageLive(_62);
          StorageLive(_63);
          _63 = ();
          _62 = opaque::<()>(move _63) -> [return: bb9, unwind continue];
      }
  
      bb9: {
          StorageDead(_63);
          StorageDead(_62);
-         _57 = const ();
          StorageDead(_61);
          StorageDead(_60);
          StorageDead(_59);
          StorageDead(_58);
-         StorageDead(_57);
          StorageLive(_64);
          _64 = const 5_usize;
          StorageLive(_65);
          _65 = &raw mut _64;
          StorageLive(_66);
          _66 = &mut _65;
          StorageLive(_67);
          _67 = copy (*_65);
          StorageLive(_68);
          StorageLive(_69);
          _69 = ();
          _68 = opaque::<()>(move _69) -> [return: bb10, unwind continue];
      }
  
      bb10: {
          StorageDead(_69);
          StorageDead(_68);
          _0 = const ();
          StorageDead(_67);
          StorageDead(_66);
          StorageDead(_65);
          StorageDead(_64);
          return;
      }
  }
  
