rust/tests/mir-opt/if_condition_int.opt_i8.SimplifyComparisonIntegral.diff
dianqk 37f83fb11d
Use Copy in the SwitchInt terminator
Move can be used only when both the compared operand and the operand on switch are move operands.
This commit directly changes to Copy, because I don't know if Move has beneficial.
2026-01-12 18:16:39 +08:00

37 lines
788 B
Diff

- // MIR for `opt_i8` before SimplifyComparisonIntegral
+ // MIR for `opt_i8` after SimplifyComparisonIntegral
fn opt_i8(_1: i8) -> u32 {
debug x => _1;
let mut _0: u32;
let mut _2: bool;
let mut _3: i8;
bb0: {
StorageLive(_2);
StorageLive(_3);
_3 = copy _1;
- _2 = Eq(copy _1, const 42_i8);
- switchInt(move _2) -> [0: bb2, otherwise: bb1];
+ nop;
+ switchInt(copy _1) -> [42: bb1, otherwise: bb2];
}
bb1: {
StorageDead(_3);
_0 = const 0_u32;
goto -> bb3;
}
bb2: {
StorageDead(_3);
_0 = const 1_u32;
goto -> bb3;
}
bb3: {
StorageDead(_2);
return;
}
}