- // MIR for `slice_from_raw_parts_as_ptr` before GVN + // MIR for `slice_from_raw_parts_as_ptr` after GVN fn slice_from_raw_parts_as_ptr(_1: *const u16, _2: usize) -> (*const u16, *const f32) { debug x => _1; debug n => _2; let mut _0: (*const u16, *const f32); let _3: *const [u16]; let mut _4: *const u16; let mut _5: usize; let mut _6: *const u16; let mut _7: *const [u16]; let mut _8: *const f32; let mut _9: *const [u16]; scope 1 { debug ptr => _3; } bb0: { - StorageLive(_3); + nop; StorageLive(_4); _4 = copy _1; StorageLive(_5); _5 = copy _2; - _3 = *const [u16] from (move _4, move _5); + _3 = *const [u16] from (copy _1, copy _2); StorageDead(_5); StorageDead(_4); StorageLive(_6); StorageLive(_7); _7 = copy _3; - _6 = move _7 as *const u16 (PtrToPtr); + _6 = copy _1; StorageDead(_7); StorageLive(_8); StorageLive(_9); _9 = copy _3; - _8 = move _9 as *const f32 (PtrToPtr); + _8 = copy _1 as *const f32 (PtrToPtr); StorageDead(_9); - _0 = (move _6, move _8); + _0 = (copy _1, move _8); StorageDead(_8); StorageDead(_6); - StorageDead(_3); + nop; return; } }