- // MIR for `bitwise_not` before JumpThreading
+ // MIR for `bitwise_not` after JumpThreading
  
  fn bitwise_not() -> i32 {
      let mut _0: i32;
      let mut _1: i32;
      let mut _2: bool;
      let mut _3: i32;
      let mut _4: i32;
      scope 1 {
          debug a => _1;
      }
  
      bb0: {
          StorageLive(_1);
          _1 = const 0_i32;
          _1 = const 1_i32;
          StorageLive(_2);
          StorageLive(_3);
          StorageLive(_4);
          _4 = copy _1;
          _3 = Not(move _4);
          StorageDead(_4);
          _2 = Eq(move _3, const 0_i32);
          switchInt(move _2) -> [0: bb2, otherwise: bb1];
      }
  
      bb1: {
          StorageDead(_3);
          _0 = const 1_i32;
          goto -> bb3;
      }
  
      bb2: {
          StorageDead(_3);
          _0 = const 0_i32;
          goto -> bb3;
      }
  
      bb3: {
          StorageDead(_2);
          StorageDead(_1);
          return;
      }
  }
  
