Skip to content

Commit 94322e1

Browse files
committed
Test for PR swiftlang#72617
1 parent d525bac commit 94322e1

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

test/IRGen/loadable_by_address_reg2mem.sil

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff 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+
2746
struct 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+
}

0 commit comments

Comments
 (0)