You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
%f = function_ref @f : $@convention(thin) <T_1..., T_2... where (repeat (each T_1, each T_2)): Any> (Builtin.Word) -> ()
29
+
%0 = integer_literal $Builtin.Word, 0
30
+
// U_1 -> {A, B, C, D, E, F}
31
+
// ---0--> ^
32
+
// CHECK: A
33
+
// U_2 -> {D, E, F, A, B, C}
34
+
// ---0--> ^
35
+
// CHECK: D
36
+
apply %f<Pack{A, B, C}, Pack{D, E, F}>(%0) : $@convention(thin) <T_1..., T_2... where (repeat (each T_1, each T_2)): Any> (Builtin.Word) -> ()
37
+
%1 = integer_literal $Builtin.Word, 1
38
+
// U_1 -> {A, B, C, D, E, F}
39
+
// ----1----> ^
40
+
// CHECK: B
41
+
// U_2 -> {D, E, F, A, B, C}
42
+
// ----1----> ^
43
+
// CHECK: E
44
+
apply %f<Pack{A, B, C}, Pack{D, E, F}>(%1) : $@convention(thin) <T_1..., T_2... where (repeat (each T_1, each T_2)): Any> (Builtin.Word) -> ()
45
+
%2 = integer_literal $Builtin.Word, 2
46
+
// U_1 -> {A, B, C, D, E, F}
47
+
// ------2-----> ^
48
+
// CHECK: C
49
+
// U_2 -> {D, E, F, A, B, C}
50
+
// ------2-----> ^
51
+
// CHECK: F
52
+
apply %f<Pack{A, B, C}, Pack{D, E, F}>(%2) : $@convention(thin) <T_1..., T_2... where (repeat (each T_1, each T_2)): Any> (Builtin.Word) -> ()
53
+
%3 = integer_literal $Builtin.Word, 3
54
+
// U_1 -> {A, B, C, D, E, F}
55
+
// -------3-------> ^
56
+
// CHECK: D
57
+
// U_2 -> {D, E, F, A, B, C}
58
+
// -------3-------> ^
59
+
// CHECK: A
60
+
apply %f<Pack{A, B, C}, Pack{D, E, F}>(%3) : $@convention(thin) <T_1..., T_2... where (repeat (each T_1, each T_2)): Any> (Builtin.Word) -> ()
61
+
%4 = integer_literal $Builtin.Word, 4
62
+
// U_1 -> {A, B, C, D, E, F}
63
+
// ---------4--------> ^
64
+
// CHECK: E
65
+
// U_2 -> {D, E, F, A, B, C}
66
+
// ---------4--------> ^
67
+
// CHECK: B
68
+
apply %f<Pack{A, B, C}, Pack{D, E, F}>(%4) : $@convention(thin) <T_1..., T_2... where (repeat (each T_1, each T_2)): Any> (Builtin.Word) -> ()
69
+
%5 = integer_literal $Builtin.Word, 5
70
+
// U_1 -> {A, B, C, D, E, F}
71
+
// -----------5---------> ^
72
+
// CHECK: F
73
+
// U_2 -> {D, E, F, A, B, C}
74
+
// -----------5---------> ^
75
+
// CHECK: C
76
+
apply %f<Pack{A, B, C}, Pack{D, E, F}>(%5) : $@convention(thin) <T_1..., T_2... where (repeat (each T_1, each T_2)): Any> (Builtin.Word) -> ()
77
+
78
+
%outb = integer_literal $Builtin.Int32, 0
79
+
%out = struct $Int32 (%outb : $Builtin.Int32)
80
+
return %out : $Int32
81
+
}
82
+
83
+
sil @f : $<T_1..., T_2... where (repeat (each T_1, each T_2)): Any> (Builtin.Word) -> () {
84
+
entry(%intIndex : $Builtin.Word):
85
+
%innerIndex = dynamic_pack_index %intIndex of $Pack{repeat each T_1, repeat each T_2}
86
+
%token = open_pack_element %innerIndex of <U_1..., U_2... where (repeat (each U_1, each U_2)): Any> at <Pack{repeat each T_1, repeat each T_2}, Pack{repeat each T_2, repeat each T_1}>, shape $U_2, uuid "01234567-89AB-CDEF-0123-000000000000"
0 commit comments