- // MIR for `f` before JumpThreading
+ // MIR for `f` after JumpThreading
  
  fn f() -> u64 {
      let mut _0: u64;
      let mut _1: bool;
  
      bb0: {
          StorageLive(_1);
          switchInt(const A) -> [1: bb2, 2: bb2, 3: bb2, otherwise: bb1];
      }
  
      bb1: {
          _1 = const true;
-         goto -> bb3;
+         goto -> bb7;
      }
  
      bb2: {
          _1 = const B;
          goto -> bb3;
      }
  
      bb3: {
          switchInt(copy _1) -> [0: bb5, otherwise: bb4];
      }
  
      bb4: {
          _0 = const 2_u64;
          goto -> bb6;
      }
  
      bb5: {
          _0 = const 1_u64;
          goto -> bb6;
      }
  
      bb6: {
          StorageDead(_1);
          return;
+     }
+ 
+     bb7: {
+         goto -> bb4;
      }
  }
  
