rust/tests/mir-opt/instsimplify/combine_transmutes.adt_tran...

84 lines
2.6 KiB
Diff

- // MIR for `adt_transmutes` before InstSimplify-after-simplifycfg
+ // MIR for `adt_transmutes` after InstSimplify-after-simplifycfg
fn adt_transmutes() -> () {
let mut _0: ();
let _1: u8;
let mut _2: std::option::Option<std::num::NonZero<u8>>;
let mut _4: std::num::Wrapping<i16>;
let mut _6: std::num::Wrapping<i16>;
let mut _8: Union32;
let mut _10: Union32;
let mut _12: std::mem::MaybeUninit<std::string::String>;
scope 1 {
debug _a => _1;
let _3: i16;
scope 2 {
debug _a => _3;
let _5: u16;
scope 3 {
debug _a => _5;
let _7: u32;
scope 4 {
debug _a => _7;
let _9: i32;
scope 5 {
debug _a => _9;
let _11: std::mem::ManuallyDrop<std::string::String>;
scope 6 {
debug _a => _11;
}
}
}
}
}
}
bb0: {
StorageLive(_1);
StorageLive(_2);
_2 = Option::<NonZero<u8>>::Some(const std::num::NonZero::<u8>::MAX);
_1 = move _2 as u8 (Transmute);
StorageDead(_2);
StorageLive(_3);
StorageLive(_4);
_4 = Wrapping::<i16>(const 0_i16);
- _3 = move _4 as i16 (Transmute);
+ _3 = move (_4.0: i16);
StorageDead(_4);
StorageLive(_5);
StorageLive(_6);
_6 = Wrapping::<i16>(const 0_i16);
_5 = move _6 as u16 (Transmute);
StorageDead(_6);
StorageLive(_7);
StorageLive(_8);
_8 = Union32 { u32: const 0_i32 };
_7 = move _8 as u32 (Transmute);
StorageDead(_8);
StorageLive(_9);
StorageLive(_10);
_10 = Union32 { u32: const 0_u32 };
_9 = move _10 as i32 (Transmute);
StorageDead(_10);
StorageLive(_11);
StorageLive(_12);
_12 = MaybeUninit::<String>::uninit() -> [return: bb1, unwind unreachable];
}
bb1: {
- _11 = move _12 as std::mem::ManuallyDrop<std::string::String> (Transmute);
+ _11 = move (_12.1: std::mem::ManuallyDrop<std::string::String>);
StorageDead(_12);
_0 = const ();
StorageDead(_11);
StorageDead(_9);
StorageDead(_7);
StorageDead(_5);
StorageDead(_3);
StorageDead(_1);
return;
}
}