rust/tests/mir-opt/pre-codegen/chained_comparison.naive.PreCodegen.after.mir
2023-09-01 04:01:54 +08:00

118 lines
2.4 KiB
Rust

// MIR for `naive` after PreCodegen
fn naive(_1: &Blueprint, _2: &Blueprint) -> bool {
debug a => _1;
debug b => _2;
let mut _0: bool;
let mut _3: u32;
let mut _4: u32;
let mut _5: bool;
let mut _6: u32;
let mut _7: u32;
let mut _8: bool;
let mut _9: u32;
let mut _10: u32;
let mut _11: bool;
let mut _12: u32;
let mut _13: u32;
let mut _14: bool;
let mut _15: u32;
let mut _16: u32;
bb0: {
StorageLive(_5);
StorageLive(_3);
_3 = ((*_1).0: u32);
StorageLive(_4);
_4 = ((*_2).0: u32);
_5 = Eq(move _3, move _4);
switchInt(move _5) -> [0: bb1, otherwise: bb2];
}
bb1: {
StorageDead(_4);
StorageDead(_3);
goto -> bb8;
}
bb2: {
StorageDead(_4);
StorageDead(_3);
StorageLive(_8);
StorageLive(_6);
_6 = ((*_1).1: u32);
StorageLive(_7);
_7 = ((*_2).1: u32);
_8 = Eq(move _6, move _7);
switchInt(move _8) -> [0: bb3, otherwise: bb4];
}
bb3: {
StorageDead(_7);
StorageDead(_6);
goto -> bb8;
}
bb4: {
StorageDead(_7);
StorageDead(_6);
StorageLive(_11);
StorageLive(_9);
_9 = ((*_1).2: u32);
StorageLive(_10);
_10 = ((*_2).2: u32);
_11 = Eq(move _9, move _10);
switchInt(move _11) -> [0: bb5, otherwise: bb6];
}
bb5: {
StorageDead(_10);
StorageDead(_9);
goto -> bb8;
}
bb6: {
StorageDead(_10);
StorageDead(_9);
StorageLive(_14);
StorageLive(_12);
_12 = ((*_1).3: u32);
StorageLive(_13);
_13 = ((*_2).3: u32);
_14 = Eq(move _12, move _13);
switchInt(move _14) -> [0: bb7, otherwise: bb9];
}
bb7: {
StorageDead(_13);
StorageDead(_12);
goto -> bb8;
}
bb8: {
_0 = const false;
goto -> bb10;
}
bb9: {
StorageDead(_13);
StorageDead(_12);
StorageLive(_15);
_15 = ((*_1).4: u32);
StorageLive(_16);
_16 = ((*_2).4: u32);
_0 = Eq(move _15, move _16);
StorageDead(_16);
StorageDead(_15);
goto -> bb10;
}
bb10: {
StorageDead(_14);
StorageDead(_11);
StorageDead(_8);
StorageDead(_5);
return;
}
}