- // MIR for `cast_pointer_eq` before GVN
+ // MIR for `cast_pointer_eq` after GVN
  
  fn cast_pointer_eq(_1: *mut u8, _2: *mut u32, _3: *mut u32, _4: *mut [u32]) -> () {
      debug p1 => _1;
      debug p2 => _2;
      debug p3 => _3;
      debug p4 => _4;
      let mut _0: ();
      let _5: *const u32;
      let mut _6: *mut u8;
      let mut _8: *const u32;
      let mut _9: *mut u32;
      let mut _11: *const u32;
      let mut _12: *mut u32;
      let mut _14: *mut [u32];
      let mut _16: *const u32;
      let mut _17: *const u32;
      let mut _19: *const u32;
      let mut _20: *const u32;
      let mut _22: *const u32;
      let mut _23: *const u32;
      scope 1 {
          debug m1 => _5;
          let _7: *const u32;
          scope 2 {
              debug m2 => _7;
              let _10: *const u32;
              scope 3 {
                  debug m3 => _10;
                  let _13: *const u32;
                  scope 4 {
                      debug m4 => _13;
                      let _15: bool;
                      scope 5 {
                          debug eq_different_thing => _15;
                          let _18: bool;
                          scope 6 {
                              debug eq_optimize => _18;
                              let _21: bool;
                              scope 7 {
                                  debug eq_thin_fat => _21;
                              }
                          }
                      }
                  }
              }
          }
      }
  
      bb0: {
-         StorageLive(_5);
+         nop;
          StorageLive(_6);
          _6 = copy _1;
-         _5 = move _6 as *const u32 (PtrToPtr);
+         _5 = copy _1 as *const u32 (PtrToPtr);
          StorageDead(_6);
          StorageLive(_7);
-         StorageLive(_8);
+         nop;
          StorageLive(_9);
          _9 = copy _2;
-         _8 = move _9 as *const u32 (PtrToPtr);
+         _8 = copy _2 as *const u32 (PtrToPtr);
          StorageDead(_9);
-         _7 = move _8 as *const u32 (PtrToPtr);
-         StorageDead(_8);
+         _7 = copy _8;
+         nop;
          StorageLive(_10);
-         StorageLive(_11);
+         nop;
          StorageLive(_12);
          _12 = copy _3;
-         _11 = move _12 as *const u32 (PtrToPtr);
+         _11 = copy _3 as *const u32 (PtrToPtr);
          StorageDead(_12);
-         _10 = move _11 as *const u32 (PtrToPtr);
-         StorageDead(_11);
-         StorageLive(_13);
+         _10 = copy _11;
+         nop;
+         nop;
          StorageLive(_14);
          _14 = copy _4;
-         _13 = move _14 as *const u32 (PtrToPtr);
+         _13 = copy _4 as *const u32 (PtrToPtr);
          StorageDead(_14);
          StorageLive(_15);
          StorageLive(_16);
          _16 = copy _5;
          StorageLive(_17);
-         _17 = copy _7;
-         _15 = Eq(move _16, move _17);
+         _17 = copy _8;
+         _15 = Eq(copy _5, copy _8);
          StorageDead(_17);
          StorageDead(_16);
          StorageLive(_18);
          StorageLive(_19);
-         _19 = copy _7;
+         _19 = copy _8;
          StorageLive(_20);
-         _20 = copy _10;
-         _18 = Eq(move _19, move _20);
+         _20 = copy _11;
+         _18 = Eq(copy _2, copy _3);
          StorageDead(_20);
          StorageDead(_19);
          StorageLive(_21);
          StorageLive(_22);
-         _22 = copy _10;
+         _22 = copy _11;
          StorageLive(_23);
          _23 = copy _13;
-         _21 = Eq(move _22, move _23);
+         _21 = Eq(copy _11, copy _13);
          StorageDead(_23);
          StorageDead(_22);
          _0 = const ();
          StorageDead(_21);
          StorageDead(_18);
          StorageDead(_15);
-         StorageDead(_13);
+         nop;
          StorageDead(_10);
          StorageDead(_7);
-         StorageDead(_5);
+         nop;
          return;
      }
  }
  
