- // MIR for `aggregate` before JumpThreading
+ // MIR for `aggregate` after JumpThreading
  
  fn aggregate(_1: u8) -> u8 {
      debug x => _1;
      let mut _0: u8;
      let _2: u8;
      let _3: u8;
      let mut _4: (u8, u8);
      let mut _5: bool;
      let mut _6: u8;
      scope 1 {
          debug a => _2;
          debug b => _3;
      }
  
      bb0: {
          StorageLive(_4);
          _4 = const aggregate::FOO;
          StorageLive(_2);
          _2 = copy (_4.0: u8);
          StorageLive(_3);
          _3 = copy (_4.1: u8);
          StorageDead(_4);
          StorageLive(_5);
          StorageLive(_6);
          _6 = copy _2;
          _5 = Eq(move _6, const 7_u8);
-         switchInt(move _5) -> [0: bb2, otherwise: bb1];
+         goto -> bb2;
      }
  
      bb1: {
          StorageDead(_6);
          _0 = copy _3;
          goto -> bb3;
      }
  
      bb2: {
          StorageDead(_6);
          _0 = copy _2;
          goto -> bb3;
      }
  
      bb3: {
          StorageDead(_5);
          StorageDead(_3);
          StorageDead(_2);
          return;
      }
  }
  
