- // MIR for `main` before SimplifyConstCondition-after-const-prop
+ // MIR for `main` after SimplifyConstCondition-after-const-prop
  
  fn main() -> () {
      let mut _0: ();
      let _1: ();
  
      bb0: {
-         switchInt(const false) -> [0: bb2, otherwise: bb1];
+         goto -> bb2;
      }
  
      bb1: {
          _1 = noop() -> [return: bb2, unwind unreachable];
      }
  
      bb2: {
          return;
      }
  }
  
