- // MIR for `test` before DataflowConstProp
+ // MIR for `test` after DataflowConstProp
  
  fn test(_1: bool, _2: bool) -> bool {
      debug x => _1;
      debug y => _2;
      let mut _0: bool;
      let mut _3: bool;
      let mut _4: bool;
      let mut _5: bool;
      let mut _6: bool;
  
      bb0: {
          StorageLive(_3);
          StorageLive(_4);
          _4 = copy _2;
-         _3 = BitOr(move _4, const true);
+         _3 = const true;
          StorageDead(_4);
          StorageLive(_5);
          StorageLive(_6);
          _6 = copy _1;
-         _5 = BitAnd(move _6, const false);
+         _5 = const false;
          StorageDead(_6);
-         _0 = BitAnd(move _3, move _5);
+         _0 = const false;
          StorageDead(_5);
          StorageDead(_3);
          return;
      }
  }
  
