Skip to content

Commit 38be421

Browse files
committed
Simplify the atomic sil tests
1 parent da9abaf commit 38be421

File tree

1 file changed

+28
-39
lines changed

1 file changed

+28
-39
lines changed

test/SILOptimizer/stdlib/Atomics.swift

Lines changed: 28 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -8,63 +8,52 @@ import Synchronization
88
// Ensure that we don't destroy the atomic before operations
99
//===----------------------------------------------------------------------===//
1010

11-
// CHECK-LABEL: @localLoad
12-
// CHECK: [[ATOMIC:%.*]] = alloc_stack [lexical] $Atomic<Int>
13-
// CHECK: [[ATOMIC_PTR:%.*]] = address_to_pointer [[ATOMIC]] : $*Atomic<Int> to $Builtin.RawPointer
14-
// CHECK-NEXT: [[LOAD:%.*]] = builtin "atomicload_monotonic_Int64"([[ATOMIC_PTR]] : $Builtin.RawPointer) : $Builtin.Int64
15-
// CHECK-NEXT: [[INT:%.*]] = struct $Int ([[LOAD]] : $Builtin.Int64)
16-
// CHECK-NEXT: destroy_addr [[ATOMIC]] : $*Atomic<Int>
17-
// CHECK-NEXT: dealloc_stack [[ATOMIC]] : $*Atomic<Int>
18-
// CHECK-NEXT: return [[INT]] : $Int
11+
// CHECK-LABEL: sil {{.*}} @localLoad {{.*}} {
12+
// CHECK: [[ATOMIC:%.*]] = alloc_stack [lexical] $Atomic<Int>
13+
// CHECK: [[ATOMIC_PTR:%.*]] = address_to_pointer [[ATOMIC]]
14+
// CHECK: builtin "atomicload_monotonic_Int64"([[ATOMIC_PTR]] : $Builtin.RawPointer)
15+
// CHECK: destroy_addr [[ATOMIC]] : $*Atomic<Int>
16+
// CHECK-NEXT: dealloc_stack [[ATOMIC]] : $*Atomic<Int>
17+
// CHECK-LABEL: } // end sil function 'localLoad'
1918
@_silgen_name("localLoad")
2019
func localLoad() -> Int {
2120
let x = Atomic(128)
2221
return x.load(ordering: .relaxed)
2322
}
2423

25-
// CHECK-LABEL: @localStore
26-
// CHECK: [[ATOMIC:%.*]] = alloc_stack [lexical] $Atomic<Int>
27-
// CHECK: [[STORE_INT:%.*]] = integer_literal $Builtin.Int64, 0
28-
// CHECK-NEXT: [[ATOMIC_PTR:%.*]] = address_to_pointer [[ATOMIC]] : $*Atomic<Int> to $Builtin.RawPointer
29-
// CHECK-NEXT: {{%.*}} = builtin "atomicstore_release_Int64"([[ATOMIC_PTR]] : $Builtin.RawPointer, [[STORE_INT]] : $Builtin.Int64) : $()
30-
// CHECK-NEXT: destroy_addr [[ATOMIC]] : $*Atomic<Int>
31-
// CHECK-NEXT: dealloc_stack [[ATOMIC]] : $*Atomic<Int>
32-
// CHECK: return {{%.*}} : $()
24+
// CHECK-LABEL: sil {{.*}} @localStore {{.*}} {
25+
// CHECK: [[ATOMIC:%.*]] = alloc_stack [lexical] $Atomic<Int>
26+
// CHECK: [[ATOMIC_PTR:%.*]] = address_to_pointer [[ATOMIC]]
27+
// CHECK: builtin "atomicstore_release_Int64"([[ATOMIC_PTR]] : $Builtin.RawPointer
28+
// CHECK: destroy_addr [[ATOMIC]] : $*Atomic<Int>
29+
// CHECK-NEXT: dealloc_stack [[ATOMIC]] : $*Atomic<Int>
30+
// CHECK-LABEL: } // end sil function 'localStore'
3331
@_silgen_name("localStore")
3432
func localStore() {
3533
let x = Atomic(128)
3634
x.store(0, ordering: .releasing)
3735
}
3836

39-
// CHECK-LABEL: @localExchange
40-
// CHECK: [[ATOMIC:%.*]] = alloc_stack [lexical] $Atomic<Int>
41-
// CHECK: [[EXCHANGE_INT:%.*]] = integer_literal $Builtin.Int64, 0
42-
// CHECK: [[ATOMIC_PTR:%.*]] = address_to_pointer [[ATOMIC]] : $*Atomic<Int> to $Builtin.RawPointer
43-
// CHECK-NEXT: [[LOAD:%.*]] = builtin "atomicrmw_xchg_acquire_Int64"([[ATOMIC_PTR]] : $Builtin.RawPointer, [[EXCHANGE_INT]] : $Builtin.Int64) : $Builtin.Int64
44-
// CHECK-NEXT: [[INT:%.*]] = struct $Int ([[LOAD]] : $Builtin.Int64)
45-
// CHECK-NEXT: destroy_addr [[ATOMIC]] : $*Atomic<Int>
46-
// CHECK-NEXT: dealloc_stack [[ATOMIC]] : $*Atomic<Int>
47-
// CHECK-NEXT: return [[INT]] : $Int
37+
// CHECK-LABEL: sil {{.*}} @localExchange {{.*}} {
38+
// CHECK: [[ATOMIC:%.*]] = alloc_stack [lexical] $Atomic<Int>
39+
// CHECK: [[ATOMIC_PTR:%.*]] = address_to_pointer [[ATOMIC]]
40+
// CHECK: builtin "atomicrmw_xchg_acquire_Int64"([[ATOMIC_PTR]] : $Builtin.RawPointer
41+
// CHECK: destroy_addr [[ATOMIC]] : $*Atomic<Int>
42+
// CHECK-NEXT: dealloc_stack [[ATOMIC]] : $*Atomic<Int>
43+
// CHECK-LABEL: } // end sil function 'localExchange'
4844
@_silgen_name("localExchange")
4945
func localExchange() -> Int {
5046
let x = Atomic(128)
5147
return x.exchange(0, ordering: .acquiring)
5248
}
5349

54-
// CHECK-LABEL: @localCompareExchange
55-
// CHECK: [[ATOMIC:%.*]] = alloc_stack [lexical] $Atomic<Int>
56-
// CHECK-NEXT: [[EXPECTED_INT:%.*]] = integer_literal $Builtin.Int64, 128
57-
// CHECK: [[DESIRED_INT:%.*]] = integer_literal $Builtin.Int64, 316
58-
// CHECK-NEXT: [[ATOMIC_PTR:%.*]] = address_to_pointer [[ATOMIC]] : $*Atomic<Int> to $Builtin.RawPointer
59-
// CHECK-NEXT: [[CMPXCHG:%.*]] = builtin "cmpxchg_seqcst_seqcst_Int64"([[ATOMIC_PTR]] : $Builtin.RawPointer, [[EXPECTED_INT]] : $Builtin.Int64, [[DESIRED_INT]] : $Builtin.Int64) : $(Builtin.Int64, Builtin.Int1)
60-
// CHECK-NEXT: [[LOADED:%.*]] = tuple_extract [[CMPXCHG]] : $(Builtin.Int64, Builtin.Int1), 0
61-
// CHECK-NEXT: [[EXCHANGED:%.*]] = tuple_extract [[CMPXCHG]] : $(Builtin.Int64, Builtin.Int1), 1
62-
// CHECK-NEXT: [[BOOL:%.*]] = struct $Bool ([[EXCHANGED]] : $Builtin.Int1)
63-
// CHECK-NEXT: [[INT:%.*]] = struct $Int ([[LOADED]] : $Builtin.Int64)
64-
// CHECK-NEXT: destroy_addr [[ATOMIC]] : $*Atomic<Int>
65-
// CHECK-NEXT: dealloc_stack [[ATOMIC]] : $*Atomic<Int>
66-
// CHECK-NEXT: [[RETURN:%.*]] = tuple ([[BOOL]] : $Bool, [[INT]] : $Int)
67-
// CHECK-NEXT: return [[RETURN]] : $(Bool, Int)
50+
// CHECK-LABEL: sil {{.*}} @localCompareExchange {{.*}} {
51+
// CHECK: [[ATOMIC:%.*]] = alloc_stack [lexical] $Atomic<Int>
52+
// CHECK: [[ATOMIC_PTR:%.*]] = address_to_pointer [[ATOMIC]]
53+
// CHECK: builtin "cmpxchg_seqcst_seqcst_Int64"([[ATOMIC_PTR]] : $Builtin.RawPointer
54+
// CHECK: destroy_addr [[ATOMIC]] : $*Atomic<Int>
55+
// CHECK-NEXT: dealloc_stack [[ATOMIC]] : $*Atomic<Int>
56+
// CHECK-LABEL: } // end sil function 'localCompareExchange'
6857
@_silgen_name("localCompareExchange")
6958
func localCompareExchange() -> (exchanged: Bool, original: Int) {
7059
let x = Atomic(128)

0 commit comments

Comments
 (0)