@@ -2524,6 +2524,28 @@ bb0:
2524
2524
return %retval : $()
2525
2525
}
2526
2526
2527
+ // CHECK-LABEL: sil [ossa] @test_open_pack_element_dominance : $@convention(thin) <each T> (@pack_guaranteed Pack{repeat each T}, Builtin.Word) -> () {
2528
+ // CHECK: bb0([[PACK:%[^,]+]] :
2529
+ // CHECK-SAME: [[RAW_INDEX:%[^,]+]] :
2530
+ // CHECK: [[INDEX:%[^,]+]] = dynamic_pack_index [[RAW_INDEX]]
2531
+ // CHECK: open_pack_element [[INDEX]] {{.*}}, uuid "00000000-0000-0000-0000-000000000003"
2532
+ // CHECK: [[STACK:%[^,]+]] = alloc_stack $@pack_element("00000000-0000-0000-0000-000000000003")
2533
+ // CHECK: [[ELEMENT_ADDR:%[^,]+]] = pack_element_get [[INDEX]] of [[PACK]]
2534
+ // CHECK: copy_addr [[ELEMENT_ADDR]] to [init] [[STACK]]
2535
+ // CHECK: destroy_addr [[STACK]]
2536
+ // CHECK: dealloc_stack [[STACK]]
2537
+ // CHECK-LABEL: } // end sil function 'test_open_pack_element_dominance'
2538
+ sil [ossa] @test_open_pack_element_dominance : $@convention(thin) <each T> (@pack_guaranteed Pack{repeat each T}, Builtin.Word) -> () {
2539
+ bb0(%pack : $*Pack{repeat each T}, %raw_index : $Builtin.Word):
2540
+ %index = dynamic_pack_index %raw_index of $Pack{repeat each T}
2541
+ open_pack_element %index of <each T> at <Pack{repeat each T}>, shape $each T, uuid "00000000-0000-0000-0000-000000000003"
2542
+ %element_addr = pack_element_get %index of %pack : $*Pack{repeat each T} as $*@pack_element("00000000-0000-0000-0000-000000000003") each T
2543
+ %element = load [copy] %element_addr : $*@pack_element("00000000-0000-0000-0000-000000000003") each T
2544
+ destroy_value %element : $@pack_element("00000000-0000-0000-0000-000000000003") each T
2545
+ %retval = tuple ()
2546
+ return %retval : $()
2547
+ }
2548
+
2527
2549
// CHECK-LABEL: sil [ossa] @test_partial_apply_1_addronly_heap : {{.*}} {
2528
2550
// CHECK: [[STACK:%[^,]+]] = alloc_stack $T
2529
2551
// CHECK: [[GET:%[^,]+]] = function_ref @getT
0 commit comments