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 {
24
24
var x16: Int
25
25
}
26
26
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
+
27
46
struct Y {
28
47
var y1 : X
29
48
var y2: X
@@ -269,3 +288,21 @@ bb0(%0 : $*C1, %1 : $*Small):
269
288
%t = tuple ()
270
289
return %t : $()
271
290
}
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