@@ -137,3 +137,180 @@ bb2:
137
137
return %r : $()
138
138
}
139
139
140
+ sil [ossa] @test_many_locations_in_block : $@convention(thin) <A, B, C, D, E, G, H, I> (@in_guaranteed A, @in_guaranteed B, @in_guaranteed C, @in_guaranteed D, @in_guaranteed E, @in_guaranteed G, @in_guaranteed H, @in_guaranteed I) -> (@out A, @out B, @out C, @out D, @out E, @out G, @out H, @out I) {
141
+ bb0(%0 : $*A, %1 : $*B, %2 : $*C, %3 : $*D, %4 : $*E, %5 : $*G, %6 : $*H, %7 : $*I, %9 : $*A, %10 : $*B, %11 : $*C, %12 : $*D, %13 : $*E, %14 : $*G, %15 : $*H, %16 : $*I):
142
+ %18 = alloc_stack $(A, B, C, D, E, G, H, I), let, name "a", argno 1
143
+ %19 = tuple_element_addr %18 : $*(A, B, C, D, E, G, H, I), 0
144
+ copy_addr %9 to [initialization] %19 : $*A
145
+ %21 = tuple_element_addr %18 : $*(A, B, C, D, E, G, H, I), 1
146
+ copy_addr %10 to [initialization] %21 : $*B
147
+ %23 = tuple_element_addr %18 : $*(A, B, C, D, E, G, H, I), 2
148
+ copy_addr %11 to [initialization] %23 : $*C
149
+ %25 = tuple_element_addr %18 : $*(A, B, C, D, E, G, H, I), 3
150
+ copy_addr %12 to [initialization] %25 : $*D
151
+ %27 = tuple_element_addr %18 : $*(A, B, C, D, E, G, H, I), 4
152
+ copy_addr %13 to [initialization] %27 : $*E
153
+ %29 = tuple_element_addr %18 : $*(A, B, C, D, E, G, H, I), 5
154
+ copy_addr %14 to [initialization] %29 : $*G
155
+ %31 = tuple_element_addr %18 : $*(A, B, C, D, E, G, H, I), 6
156
+ copy_addr %15 to [initialization] %31 : $*H
157
+ %33 = tuple_element_addr %18 : $*(A, B, C, D, E, G, H, I), 7
158
+ copy_addr %16 to [initialization] %33 : $*I
159
+ %41 = alloc_stack $(A, B, C, D, E, G, H, I)
160
+ copy_addr %18 to [initialization] %41 : $*(A, B, C, D, E, G, H, I)
161
+ %43 = tuple_element_addr %41 : $*(A, B, C, D, E, G, H, I), 0
162
+ %44 = tuple_element_addr %41 : $*(A, B, C, D, E, G, H, I), 1
163
+ %45 = tuple_element_addr %41 : $*(A, B, C, D, E, G, H, I), 2
164
+ %46 = tuple_element_addr %41 : $*(A, B, C, D, E, G, H, I), 3
165
+ %47 = tuple_element_addr %41 : $*(A, B, C, D, E, G, H, I), 4
166
+ %48 = tuple_element_addr %41 : $*(A, B, C, D, E, G, H, I), 5
167
+ %49 = tuple_element_addr %41 : $*(A, B, C, D, E, G, H, I), 6
168
+ %50 = tuple_element_addr %41 : $*(A, B, C, D, E, G, H, I), 7
169
+ copy_addr [take] %43 to [initialization] %0 : $*A
170
+ %52 = alloc_stack $(A, B, C, D, E, G, H, I)
171
+ copy_addr %18 to [initialization] %52 : $*(A, B, C, D, E, G, H, I)
172
+ %54 = tuple_element_addr %52 : $*(A, B, C, D, E, G, H, I), 0
173
+ %55 = tuple_element_addr %52 : $*(A, B, C, D, E, G, H, I), 1
174
+ %56 = tuple_element_addr %52 : $*(A, B, C, D, E, G, H, I), 2
175
+ %57 = tuple_element_addr %52 : $*(A, B, C, D, E, G, H, I), 3
176
+ %58 = tuple_element_addr %52 : $*(A, B, C, D, E, G, H, I), 4
177
+ %59 = tuple_element_addr %52 : $*(A, B, C, D, E, G, H, I), 5
178
+ %60 = tuple_element_addr %52 : $*(A, B, C, D, E, G, H, I), 6
179
+ %61 = tuple_element_addr %52 : $*(A, B, C, D, E, G, H, I), 7
180
+ copy_addr [take] %55 to [initialization] %1 : $*B
181
+ %63 = alloc_stack $(A, B, C, D, E, G, H, I)
182
+ copy_addr %18 to [initialization] %63 : $*(A, B, C, D, E, G, H, I)
183
+ %65 = tuple_element_addr %63 : $*(A, B, C, D, E, G, H, I), 0
184
+ %66 = tuple_element_addr %63 : $*(A, B, C, D, E, G, H, I), 1
185
+ %67 = tuple_element_addr %63 : $*(A, B, C, D, E, G, H, I), 2
186
+ %68 = tuple_element_addr %63 : $*(A, B, C, D, E, G, H, I), 3
187
+ %69 = tuple_element_addr %63 : $*(A, B, C, D, E, G, H, I), 4
188
+ %70 = tuple_element_addr %63 : $*(A, B, C, D, E, G, H, I), 5
189
+ %71 = tuple_element_addr %63 : $*(A, B, C, D, E, G, H, I), 6
190
+ %72 = tuple_element_addr %63 : $*(A, B, C, D, E, G, H, I), 7
191
+ copy_addr [take] %67 to [initialization] %2 : $*C
192
+ %74 = alloc_stack $(A, B, C, D, E, G, H, I)
193
+ copy_addr %18 to [initialization] %74 : $*(A, B, C, D, E, G, H, I)
194
+ %76 = tuple_element_addr %74 : $*(A, B, C, D, E, G, H, I), 0
195
+ %77 = tuple_element_addr %74 : $*(A, B, C, D, E, G, H, I), 1
196
+ %78 = tuple_element_addr %74 : $*(A, B, C, D, E, G, H, I), 2
197
+ %79 = tuple_element_addr %74 : $*(A, B, C, D, E, G, H, I), 3
198
+ %80 = tuple_element_addr %74 : $*(A, B, C, D, E, G, H, I), 4
199
+ %81 = tuple_element_addr %74 : $*(A, B, C, D, E, G, H, I), 5
200
+ %82 = tuple_element_addr %74 : $*(A, B, C, D, E, G, H, I), 6
201
+ %83 = tuple_element_addr %74 : $*(A, B, C, D, E, G, H, I), 7
202
+ copy_addr [take] %79 to [initialization] %3 : $*D
203
+ %85 = alloc_stack $(A, B, C, D, E, G, H, I)
204
+ copy_addr %18 to [initialization] %85 : $*(A, B, C, D, E, G, H, I)
205
+ %87 = tuple_element_addr %85 : $*(A, B, C, D, E, G, H, I), 0
206
+ %88 = tuple_element_addr %85 : $*(A, B, C, D, E, G, H, I), 1
207
+ %89 = tuple_element_addr %85 : $*(A, B, C, D, E, G, H, I), 2
208
+ %90 = tuple_element_addr %85 : $*(A, B, C, D, E, G, H, I), 3
209
+ %91 = tuple_element_addr %85 : $*(A, B, C, D, E, G, H, I), 4
210
+ %92 = tuple_element_addr %85 : $*(A, B, C, D, E, G, H, I), 5
211
+ %93 = tuple_element_addr %85 : $*(A, B, C, D, E, G, H, I), 6
212
+ %94 = tuple_element_addr %85 : $*(A, B, C, D, E, G, H, I), 7
213
+ copy_addr [take] %91 to [initialization] %4 : $*E
214
+ %96 = alloc_stack $(A, B, C, D, E, G, H, I)
215
+ copy_addr %18 to [initialization] %96 : $*(A, B, C, D, E, G, H, I)
216
+ %98 = tuple_element_addr %96 : $*(A, B, C, D, E, G, H, I), 0
217
+ %99 = tuple_element_addr %96 : $*(A, B, C, D, E, G, H, I), 1
218
+ %100 = tuple_element_addr %96 : $*(A, B, C, D, E, G, H, I), 2
219
+ %101 = tuple_element_addr %96 : $*(A, B, C, D, E, G, H, I), 3
220
+ %102 = tuple_element_addr %96 : $*(A, B, C, D, E, G, H, I), 4
221
+ %103 = tuple_element_addr %96 : $*(A, B, C, D, E, G, H, I), 5
222
+ %104 = tuple_element_addr %96 : $*(A, B, C, D, E, G, H, I), 6
223
+ %105 = tuple_element_addr %96 : $*(A, B, C, D, E, G, H, I), 7
224
+ copy_addr [take] %103 to [initialization] %5 : $*G
225
+ %107 = alloc_stack $(A, B, C, D, E, G, H, I)
226
+ copy_addr %18 to [initialization] %107 : $*(A, B, C, D, E, G, H, I)
227
+ %109 = tuple_element_addr %107 : $*(A, B, C, D, E, G, H, I), 0
228
+ %110 = tuple_element_addr %107 : $*(A, B, C, D, E, G, H, I), 1
229
+ %111 = tuple_element_addr %107 : $*(A, B, C, D, E, G, H, I), 2
230
+ %112 = tuple_element_addr %107 : $*(A, B, C, D, E, G, H, I), 3
231
+ %113 = tuple_element_addr %107 : $*(A, B, C, D, E, G, H, I), 4
232
+ %114 = tuple_element_addr %107 : $*(A, B, C, D, E, G, H, I), 5
233
+ %115 = tuple_element_addr %107 : $*(A, B, C, D, E, G, H, I), 6
234
+ %116 = tuple_element_addr %107 : $*(A, B, C, D, E, G, H, I), 7
235
+ copy_addr [take] %115 to [initialization] %6 : $*H
236
+ %118 = alloc_stack $(A, B, C, D, E, G, H, I)
237
+ copy_addr %18 to [initialization] %118 : $*(A, B, C, D, E, G, H, I)
238
+ %120 = tuple_element_addr %118 : $*(A, B, C, D, E, G, H, I), 0
239
+ %121 = tuple_element_addr %118 : $*(A, B, C, D, E, G, H, I), 1
240
+ %122 = tuple_element_addr %118 : $*(A, B, C, D, E, G, H, I), 2
241
+ %123 = tuple_element_addr %118 : $*(A, B, C, D, E, G, H, I), 3
242
+ %124 = tuple_element_addr %118 : $*(A, B, C, D, E, G, H, I), 4
243
+ %125 = tuple_element_addr %118 : $*(A, B, C, D, E, G, H, I), 5
244
+ %126 = tuple_element_addr %118 : $*(A, B, C, D, E, G, H, I), 6
245
+ %127 = tuple_element_addr %118 : $*(A, B, C, D, E, G, H, I), 7
246
+ copy_addr [take] %127 to [initialization] %7 : $*I
247
+ destroy_addr %126 : $*H
248
+ destroy_addr %125 : $*G
249
+ destroy_addr %124 : $*E
250
+ destroy_addr %123 : $*D
251
+ destroy_addr %122 : $*C
252
+ destroy_addr %121 : $*B
253
+ destroy_addr %120 : $*A
254
+ dealloc_stack %118 : $*(A, B, C, D, E, G, H, I)
255
+ destroy_addr %116 : $*I
256
+ destroy_addr %114 : $*G
257
+ destroy_addr %113 : $*E
258
+ destroy_addr %112 : $*D
259
+ destroy_addr %111 : $*C
260
+ destroy_addr %110 : $*B
261
+ destroy_addr %109 : $*A
262
+ dealloc_stack %107 : $*(A, B, C, D, E, G, H, I)
263
+ destroy_addr %105 : $*I
264
+ destroy_addr %104 : $*H
265
+ destroy_addr %102 : $*E
266
+ destroy_addr %101 : $*D
267
+ destroy_addr %100 : $*C
268
+ destroy_addr %99 : $*B
269
+ destroy_addr %98 : $*A
270
+ dealloc_stack %96 : $*(A, B, C, D, E, G, H, I)
271
+ destroy_addr %94 : $*I
272
+ destroy_addr %93 : $*H
273
+ destroy_addr %92 : $*G
274
+ destroy_addr %90 : $*D
275
+ destroy_addr %89 : $*C
276
+ destroy_addr %88 : $*B
277
+ destroy_addr %87 : $*A
278
+ dealloc_stack %85 : $*(A, B, C, D, E, G, H, I)
279
+ destroy_addr %83 : $*I
280
+ destroy_addr %82 : $*H
281
+ destroy_addr %81 : $*G
282
+ destroy_addr %80 : $*E
283
+ destroy_addr %78 : $*C
284
+ destroy_addr %77 : $*B
285
+ destroy_addr %76 : $*A
286
+ dealloc_stack %74 : $*(A, B, C, D, E, G, H, I)
287
+ destroy_addr %72 : $*I
288
+ destroy_addr %71 : $*H
289
+ destroy_addr %70 : $*G
290
+ destroy_addr %69 : $*E
291
+ destroy_addr %68 : $*D
292
+ destroy_addr %66 : $*B
293
+ destroy_addr %65 : $*A
294
+ dealloc_stack %63 : $*(A, B, C, D, E, G, H, I)
295
+ destroy_addr %61 : $*I
296
+ destroy_addr %60 : $*H
297
+ destroy_addr %59 : $*G
298
+ destroy_addr %58 : $*E
299
+ destroy_addr %57 : $*D
300
+ destroy_addr %56 : $*C
301
+ destroy_addr %54 : $*A
302
+ dealloc_stack %52 : $*(A, B, C, D, E, G, H, I)
303
+ destroy_addr %50 : $*I
304
+ destroy_addr %49 : $*H
305
+ destroy_addr %48 : $*G
306
+ destroy_addr %47 : $*E
307
+ destroy_addr %46 : $*D
308
+ destroy_addr %45 : $*C
309
+ destroy_addr %44 : $*B
310
+ dealloc_stack %41 : $*(A, B, C, D, E, G, H, I)
311
+ destroy_addr %18 : $*(A, B, C, D, E, G, H, I)
312
+ dealloc_stack %18 : $*(A, B, C, D, E, G, H, I)
313
+ %196 = tuple ()
314
+ return %196 : $()
315
+ }
316
+
0 commit comments