- // MIR for `multiple_match` before JumpThreading
+ // MIR for `multiple_match` after JumpThreading
  
  fn multiple_match(_1: u8) -> u8 {
      let mut _0: u8;
      let mut _2: u8;
      let mut _3: u8;
  
      bb0: {
          switchInt(_1) -> [3: bb1, otherwise: bb2];
      }
  
      bb1: {
          _2 = _1;
-         switchInt(_2) -> [3: bb3, otherwise: bb4];
+         goto -> bb3;
      }
  
      bb2: {
          _3 = _1;
-         switchInt(_3) -> [3: bb5, otherwise: bb6];
+         goto -> bb6;
      }
  
      bb3: {
          _0 = const 5_u8;
          return;
      }
  
      bb4: {
          _0 = const 7_u8;
          return;
      }
  
      bb5: {
          _0 = const 9_u8;
          return;
      }
  
      bb6: {
          switchInt(_3) -> [1: bb7, otherwise: bb8];
      }
  
      bb7: {
          _0 = const 9_u8;
          return;
      }
  
      bb8: {
          _0 = const 11_u8;
          return;
      }
  }
  
