]> git.proxmox.com Git - rustc.git/blob - src/test/mir-opt/combine_clone_of_primitives.{impl#0}-clone.InstCombine.diff
New upstream version 1.61.0+dfsg1
[rustc.git] / src / test / mir-opt / combine_clone_of_primitives.{impl#0}-clone.InstCombine.diff
1 - // MIR for `<impl at $DIR/combine_clone_of_primitives.rs:6:10: 6:15>::clone` before InstCombine
2 + // MIR for `<impl at $DIR/combine_clone_of_primitives.rs:6:10: 6:15>::clone` after InstCombine
3
4 fn <impl at $DIR/combine_clone_of_primitives.rs:6:10: 6:15>::clone(_1: &MyThing<T>) -> MyThing<T> {
5 debug self => _1; // in scope 0 at $DIR/combine_clone_of_primitives.rs:6:10: 6:15
6 let mut _0: MyThing<T>; // return place in scope 0 at $DIR/combine_clone_of_primitives.rs:6:10: 6:15
7 let _2: &T; // in scope 0 at $DIR/combine_clone_of_primitives.rs:8:5: 8:9
8 let _3: &u64; // in scope 0 at $DIR/combine_clone_of_primitives.rs:9:5: 9:11
9 let _4: &[f32; 3]; // in scope 0 at $DIR/combine_clone_of_primitives.rs:10:5: 10:16
10 let mut _5: T; // in scope 0 at $DIR/combine_clone_of_primitives.rs:8:5: 8:9
11 let mut _6: &T; // in scope 0 at $DIR/combine_clone_of_primitives.rs:8:5: 8:9
12 let _7: &T; // in scope 0 at $DIR/combine_clone_of_primitives.rs:8:5: 8:9
13 let mut _8: u64; // in scope 0 at $DIR/combine_clone_of_primitives.rs:9:5: 9:11
14 let mut _9: &u64; // in scope 0 at $DIR/combine_clone_of_primitives.rs:9:5: 9:11
15 let _10: &u64; // in scope 0 at $DIR/combine_clone_of_primitives.rs:9:5: 9:11
16 let mut _11: [f32; 3]; // in scope 0 at $DIR/combine_clone_of_primitives.rs:10:5: 10:16
17 let mut _12: &[f32; 3]; // in scope 0 at $DIR/combine_clone_of_primitives.rs:10:5: 10:16
18 let _13: &[f32; 3]; // in scope 0 at $DIR/combine_clone_of_primitives.rs:10:5: 10:16
19 scope 1 {
20 debug __self_0_0 => _2; // in scope 1 at $DIR/combine_clone_of_primitives.rs:8:5: 8:9
21 debug __self_0_1 => _3; // in scope 1 at $DIR/combine_clone_of_primitives.rs:9:5: 9:11
22 debug __self_0_2 => _4; // in scope 1 at $DIR/combine_clone_of_primitives.rs:10:5: 10:16
23 }
24
25 bb0: {
26 _2 = &((*_1).0: T); // scope 0 at $DIR/combine_clone_of_primitives.rs:8:5: 8:9
27 _3 = &((*_1).1: u64); // scope 0 at $DIR/combine_clone_of_primitives.rs:9:5: 9:11
28 _4 = &((*_1).2: [f32; 3]); // scope 0 at $DIR/combine_clone_of_primitives.rs:10:5: 10:16
29 - _7 = &(*_2); // scope 1 at $DIR/combine_clone_of_primitives.rs:8:5: 8:9
30 - _6 = &(*_7); // scope 1 at $DIR/combine_clone_of_primitives.rs:8:5: 8:9
31 + _7 = _2; // scope 1 at $DIR/combine_clone_of_primitives.rs:8:5: 8:9
32 + _6 = _7; // scope 1 at $DIR/combine_clone_of_primitives.rs:8:5: 8:9
33 _5 = <T as Clone>::clone(move _6) -> bb1; // scope 1 at $DIR/combine_clone_of_primitives.rs:8:5: 8:9
34 // mir::Constant
35 // + span: $DIR/combine_clone_of_primitives.rs:8:5: 8:9
36 // + literal: Const { ty: for<'r> fn(&'r T) -> T {<T as Clone>::clone}, val: Value(Scalar(<ZST>)) }
37 }
38
39 bb1: {
40 - _10 = &(*_3); // scope 1 at $DIR/combine_clone_of_primitives.rs:9:5: 9:11
41 - _9 = &(*_10); // scope 1 at $DIR/combine_clone_of_primitives.rs:9:5: 9:11
42 - _8 = <u64 as Clone>::clone(move _9) -> [return: bb2, unwind: bb4]; // scope 1 at $DIR/combine_clone_of_primitives.rs:9:5: 9:11
43 - // mir::Constant
44 - // + span: $DIR/combine_clone_of_primitives.rs:9:5: 9:11
45 - // + literal: Const { ty: for<'r> fn(&'r u64) -> u64 {<u64 as Clone>::clone}, val: Value(Scalar(<ZST>)) }
46 + _10 = _3; // scope 1 at $DIR/combine_clone_of_primitives.rs:9:5: 9:11
47 + _9 = _10; // scope 1 at $DIR/combine_clone_of_primitives.rs:9:5: 9:11
48 + _8 = (*_9); // scope 1 at $DIR/combine_clone_of_primitives.rs:9:5: 9:11
49 + goto -> bb2; // scope 1 at $DIR/combine_clone_of_primitives.rs:9:5: 9:11
50 }
51
52 bb2: {
53 - _13 = &(*_4); // scope 1 at $DIR/combine_clone_of_primitives.rs:10:5: 10:16
54 - _12 = &(*_13); // scope 1 at $DIR/combine_clone_of_primitives.rs:10:5: 10:16
55 - _11 = <[f32; 3] as Clone>::clone(move _12) -> [return: bb3, unwind: bb4]; // scope 1 at $DIR/combine_clone_of_primitives.rs:10:5: 10:16
56 - // mir::Constant
57 - // + span: $DIR/combine_clone_of_primitives.rs:10:5: 10:16
58 - // + literal: Const { ty: for<'r> fn(&'r [f32; 3]) -> [f32; 3] {<[f32; 3] as Clone>::clone}, val: Value(Scalar(<ZST>)) }
59 + _13 = _4; // scope 1 at $DIR/combine_clone_of_primitives.rs:10:5: 10:16
60 + _12 = _13; // scope 1 at $DIR/combine_clone_of_primitives.rs:10:5: 10:16
61 + _11 = (*_12); // scope 1 at $DIR/combine_clone_of_primitives.rs:10:5: 10:16
62 + goto -> bb3; // scope 1 at $DIR/combine_clone_of_primitives.rs:10:5: 10:16
63 }
64
65 bb3: {
66 (_0.0: T) = move _5; // scope 1 at $DIR/combine_clone_of_primitives.rs:6:10: 6:15
67 (_0.1: u64) = move _8; // scope 1 at $DIR/combine_clone_of_primitives.rs:6:10: 6:15
68 (_0.2: [f32; 3]) = move _11; // scope 1 at $DIR/combine_clone_of_primitives.rs:6:10: 6:15
69 return; // scope 0 at $DIR/combine_clone_of_primitives.rs:6:15: 6:15
70 }
71
72 bb4 (cleanup): {
73 drop(_5) -> bb5; // scope 1 at $DIR/combine_clone_of_primitives.rs:6:14: 6:15
74 }
75
76 bb5 (cleanup): {
77 resume; // scope 0 at $DIR/combine_clone_of_primitives.rs:6:10: 6:15
78 }
79 }
80