|
2 | 2 |
|
3 | 3 | import Synchronization
|
4 | 4 |
|
| 5 | +// CHECK-LABEL: sil{{.*}} @$s19inlinearray_literal12emptyTrivials11InlineArrayVy$_SiGyF : $@convention(thin) () -> InlineArray<0, Int> { |
| 6 | +// CHECK: [[EMPTY_TUPLE:%.*]] = tuple () |
| 7 | +// CHECK-NEXT: [[IA:%.*]] = unchecked_trivial_bit_cast [[EMPTY_TUPLE]] to $InlineArray<0, Int> |
| 8 | +// CHECK-NEXT: return [[IA]] |
| 9 | +// CHECK-LABEL: } // end sil function '$s19inlinearray_literal12emptyTrivials11InlineArrayVy$_SiGyF' |
| 10 | +func emptyTrivial() -> InlineArray<0, Int> { |
| 11 | + [] |
| 12 | +} |
| 13 | + |
| 14 | +// CHECK-LABEL: sil{{.*}} @$s19inlinearray_literal15emptyNontrivials11InlineArrayVy$_SSGyF : $@convention(thin) () -> @owned InlineArray<0, String> { |
| 15 | +// CHECK: [[EMPTY_TUPLE:%.*]] = tuple () |
| 16 | +// CHECK-NEXT: [[IA:%.*]] = unchecked_bitwise_cast [[EMPTY_TUPLE]] to $InlineArray<0, String> |
| 17 | +// CHECK-NEXT: [[COPY_IA:%.*]] = copy_value [[IA]] |
| 18 | +// CHECK-NEXT: return [[COPY_IA]] |
| 19 | +// CHECK-LABEL: } // end sil function '$s19inlinearray_literal15emptyNontrivials11InlineArrayVy$_SSGyF' |
| 20 | +func emptyNontrivial() -> InlineArray<0, String> { |
| 21 | + [] |
| 22 | +} |
| 23 | + |
| 24 | +// CHECK-LABEL: sil{{.*}} @$s19inlinearray_literal16emptyNoncopyables11InlineArrayVy$_15Synchronization6AtomicVySiGGyF : $@convention(thin) () -> @out InlineArray<0, Atomic<Int>> { |
| 25 | +// CHECK: bb0([[IA_RETURN:%.*]] : $*InlineArray<0, Atomic<Int>>): |
| 26 | +// CHECK-NEXT: [[IA_ALLOC:%.*]] = alloc_stack $InlineArray<0, Atomic<Int>> |
| 27 | +// CHECK: [[IA_CAST:%.*]] = unchecked_addr_cast [[IA_ALLOC]] to $*InlineArray<0, Atomic<Int>> |
| 28 | +// CHECK-NEXT: [[IA_BOX:%.*]] = alloc_box |
| 29 | +// CHECK-NEXT: [[BORROW_BOX:%.*]] = begin_borrow [lexical] [[IA_BOX]] |
| 30 | +// CHECK-NEXT: [[PROJECT_BOX:%.*]] = project_box [[BORROW_BOX]], 0 |
| 31 | +// CHECK-NEXT: copy_addr [take] [[IA_CAST]] to [init] [[PROJECT_BOX]] |
| 32 | +// CHECK-NEXT: dealloc_stack [[IA_ALLOC]] |
| 33 | +// CHECK-LABEL: } // end sil function '$s19inlinearray_literal16emptyNoncopyables11InlineArrayVy$_15Synchronization6AtomicVySiGGyF' |
| 34 | +func emptyNoncopyable() -> InlineArray<0, Atomic<Int>> { |
| 35 | + [] |
| 36 | +} |
| 37 | + |
5 | 38 | // CHECK-LABEL: sil{{.*}} @$s19inlinearray_literal7trivials11InlineArrayVy$3_SiGyF : $@convention(thin) () -> InlineArray<4, Int> {
|
6 | 39 | // CHECK: [[SLAB_ALLOC:%.*]] = alloc_stack $InlineArray<4, Int>
|
7 | 40 | // CHECK-NEXT: [[ELEMENT_PTR:%.*]] = unchecked_addr_cast [[SLAB_ALLOC]] to $*Int
|
|
0 commit comments