- // MIR for `simple_opt` before InstCombine
+ // MIR for `simple_opt` after InstCombine
  
  fn simple_opt() -> u64 {
      let mut _0: u64;                     // return place in scope 0 at $DIR/inst_combine_deref.rs:3:20: 3:23
      let _1: u64;                         // in scope 0 at $DIR/inst_combine_deref.rs:4:9: 4:10
      scope 1 {
          debug x => _1;                   // in scope 1 at $DIR/inst_combine_deref.rs:4:9: 4:10
          let _2: &u64;                    // in scope 1 at $DIR/inst_combine_deref.rs:5:9: 5:10
          scope 2 {
              debug y => _2;               // in scope 2 at $DIR/inst_combine_deref.rs:5:9: 5:10
              let _3: u64;                 // in scope 2 at $DIR/inst_combine_deref.rs:6:9: 6:10
              scope 3 {
                  debug z => _3;           // in scope 3 at $DIR/inst_combine_deref.rs:6:9: 6:10
              }
          }
      }
  
      bb0: {
          StorageLive(_1);                 // scope 0 at $DIR/inst_combine_deref.rs:4:9: 4:10
          _1 = const 5_u64;                // scope 0 at $DIR/inst_combine_deref.rs:4:13: 4:14
          StorageLive(_2);                 // scope 1 at $DIR/inst_combine_deref.rs:5:9: 5:10
          _2 = &_1;                        // scope 1 at $DIR/inst_combine_deref.rs:5:13: 5:15
          StorageLive(_3);                 // scope 2 at $DIR/inst_combine_deref.rs:6:9: 6:10
-         _3 = (*_2);                      // scope 2 at $DIR/inst_combine_deref.rs:6:13: 6:15
+         _3 = _1;                         // scope 2 at $DIR/inst_combine_deref.rs:6:13: 6:15
          _0 = _3;                         // scope 3 at $DIR/inst_combine_deref.rs:7:5: 7:6
          StorageDead(_3);                 // scope 2 at $DIR/inst_combine_deref.rs:8:1: 8:2
          StorageDead(_2);                 // scope 1 at $DIR/inst_combine_deref.rs:8:1: 8:2
          StorageDead(_1);                 // scope 0 at $DIR/inst_combine_deref.rs:8:1: 8:2
          return;                          // scope 0 at $DIR/inst_combine_deref.rs:8:2: 8:2
      }
  }
  
