@0,1,2,3⦊fn main() {
    // Initialize test constants in a way that cannot be determined at compile time, to ensure
    // rustc and LLVM cannot optimize out statements (or coverage counters) downstream from
    // dependent conditions.
    let is_true = std::env::args().len() == 1;
    let mut a: u8 = 0;
    let mut b: u8 = 0;
    if is_true⦉@0,1,2,3 @4⦊{
        a = 2;
        b = 0;
    }⦉@4@5⦊‸⦉@5
    match @6⦊(a, b)⦉@6 {
        // Or patterns generate MIR `SwitchInt` with multiple targets to the same `BasicBlock`.
        // This test confirms a fix for Issue #79569.
        (0 | 1, 2 | 3) => @9,10⦊{}⦉@9,10
        _ => @7⦊{}⦉@7
    }
    if @11⦊is_true⦉@11 @12⦊{
        a = 0;
        b = 0;
    }⦉@12@13⦊‸⦉@13
    match @14⦊(a, b)⦉@14 {
        (0 | 1, 2 | 3) => @17,18⦊{}⦉@17,18
        _ => @15⦊{}⦉@15
    }
    if @19⦊is_true⦉@19 @20⦊{
        a = 2;
        b = 2;
    }⦉@20@21⦊‸⦉@21
    match @22⦊(a, b)⦉@22 {
        (0 | 1, 2 | 3) => @25,26⦊{}⦉@25,26
        _ => @23⦊{}⦉@23
    }
    if @27⦊is_true⦉@27 @28⦊{
        a = 0;
        b = 2;
    }⦉@28@29⦊‸⦉@29
    match @30⦊(a, b)⦉@30 {
        (0 | 1, 2 | 3) => @33,34⦊{}⦉@33,34
        _ => @31⦊{}⦉@31
    }
}@35⦊‸⦉@35