File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed
Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change @@ -24,6 +24,25 @@ struct X {
2424 var x16: Int
2525}
2626
27+ struct X2 {
28+ var x1 : Int
29+ var x2 : Int
30+ var x3 : Int
31+ var x4: Int
32+ var x5: Int
33+ var x6: Int
34+ var x7: Int
35+ var x8: Int
36+ var x9: Int
37+ var x10: Int
38+ var x11: Int
39+ var x12: Int
40+ var x13: Int
41+ var x14: Int
42+ var x15: Int
43+ var x16: Int
44+ }
45+
2746struct Y {
2847 var y1 : X
2948 var y2: X
@@ -269,3 +288,21 @@ bb0(%0 : $*C1, %1 : $*Small):
269288 %t = tuple ()
270289 return %t : $()
271290}
291+
292+ // CHECK: sil @test13
293+ // CHECK: [[ADDR:%.*]] = unchecked_addr_cast %1 : $*X to $*Y
294+ // CHECK: copy_addr [take] [[ADDR]] to [init] %2 : $*Y
295+ // CHECK: } // end sil function 'test13'
296+ sil @test13 : $@convention(thin) (@in X) -> () {
297+ bb0(%0 : $*X):
298+ %1 = alloc_stack $Y
299+ %2 = alloc_stack $X
300+ copy_addr [take] %0 to [init] %2 : $*X
301+ %4 = load %2 : $*X
302+ %7 = unchecked_bitwise_cast %4 : $X to $Y
303+ store %7 to %1: $*Y
304+ %13 = tuple ()
305+ dealloc_stack %2 : $*X
306+ dealloc_stack %1 : $*Y
307+ return %13 : $()
308+ }
You can’t perform that action at this time.
0 commit comments