mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
421 lines
11 KiB
Plaintext
421 lines
11 KiB
Plaintext
// RUN: %target-sil-opt -test-runner %s -o /dev/null 2>&1 | %FileCheck %s
|
|
|
|
// REQUIRES: swift_in_compiler
|
|
|
|
sil_stage canonical
|
|
|
|
class C {}
|
|
|
|
// CHECK-LABEL: testIdentity: range_overlaps_path
|
|
// CHECK: Overlap kind: containsBegin
|
|
sil [ossa] @testIdentity : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %range"
|
|
%range = begin_borrow %0
|
|
end_borrow %range
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testContainsPath1: range_overlaps_path
|
|
// CHECK: Overlap kind: containsPath
|
|
sil [ossa] @testContainsPath1 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%range = begin_borrow %0
|
|
%path = begin_borrow %0
|
|
end_borrow %path
|
|
end_borrow %range
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testContainsPath2: range_overlaps_path
|
|
// CHECK: Overlap kind: containsPath
|
|
sil [ossa] @testContainsPath2 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%range = begin_borrow %0
|
|
br bb1
|
|
bb1:
|
|
%path = begin_borrow %0
|
|
end_borrow %path
|
|
end_borrow %range
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testContainsPath3: range_overlaps_path
|
|
// CHECK: Overlap kind: containsPath
|
|
sil [ossa] @testContainsPath3 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%range = begin_borrow %0
|
|
br bb1
|
|
bb1:
|
|
%path = begin_borrow %0
|
|
br bb2
|
|
bb2:
|
|
end_borrow %path
|
|
end_borrow %range
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testContainsPath4: range_overlaps_path
|
|
// CHECK: Overlap kind: containsPath
|
|
sil [ossa] @testContainsPath4 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%range = begin_borrow %0
|
|
br bb1
|
|
bb1:
|
|
%path = begin_borrow %0
|
|
br bb2
|
|
bb2:
|
|
end_borrow %path
|
|
br bb3
|
|
bb3:
|
|
end_borrow %range
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testContainsBegin1: range_overlaps_path
|
|
// CHECK: Overlap kind: containsBegin
|
|
sil [ossa] @testContainsBegin1 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%range = begin_borrow %0
|
|
%path = begin_borrow %0
|
|
end_borrow %range
|
|
end_borrow %path
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testContainsBegin2: range_overlaps_path
|
|
// CHECK: Overlap kind: containsBegin
|
|
sil [ossa] @testContainsBegin2 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%range = begin_borrow %0
|
|
br bb1
|
|
bb1:
|
|
%path = begin_borrow %0
|
|
end_borrow %range
|
|
end_borrow %path
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testContainsBegin3: range_overlaps_path
|
|
// CHECK: Overlap kind: containsBegin
|
|
sil [ossa] @testContainsBegin3 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%range = begin_borrow %0
|
|
br bb1
|
|
bb1:
|
|
%path = begin_borrow %0
|
|
br bb2
|
|
bb2:
|
|
end_borrow %range
|
|
end_borrow %path
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testContainsBegin4: range_overlaps_path
|
|
// CHECK: Overlap kind: containsBegin
|
|
sil [ossa] @testContainsBegin4 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%range = begin_borrow %0
|
|
br bb1
|
|
bb1:
|
|
%path = begin_borrow %0
|
|
br bb2
|
|
bb2:
|
|
end_borrow %range
|
|
br bb3
|
|
bb3:
|
|
end_borrow %path
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testContainsEnd1: range_overlaps_path
|
|
// CHECK: Overlap kind: containsEnd
|
|
sil [ossa] @testContainsEnd1 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%path = begin_borrow %0
|
|
%range = begin_borrow %0
|
|
end_borrow %path
|
|
end_borrow %range
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testContainsEnd2: range_overlaps_path
|
|
// CHECK: Overlap kind: containsEnd
|
|
sil [ossa] @testContainsEnd2 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%path = begin_borrow %0
|
|
br bb1
|
|
bb1:
|
|
%range = begin_borrow %0
|
|
end_borrow %path
|
|
end_borrow %range
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testContainsEnd3: range_overlaps_path
|
|
// CHECK: Overlap kind: containsEnd
|
|
sil [ossa] @testContainsEnd3 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%path = begin_borrow %0
|
|
br bb1
|
|
bb1:
|
|
%range = begin_borrow %0
|
|
br bb2
|
|
bb2:
|
|
end_borrow %path
|
|
end_borrow %range
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testContainsEnd4: range_overlaps_path
|
|
// CHECK: Overlap kind: containsEnd
|
|
sil [ossa] @testContainsEnd4 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%path = begin_borrow %0
|
|
br bb1
|
|
bb1:
|
|
%range = begin_borrow %0
|
|
br bb2
|
|
bb2:
|
|
end_borrow %path
|
|
br bb3
|
|
bb3:
|
|
end_borrow %range
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testOverlappedByPath1: range_overlaps_path
|
|
// CHECK: Overlap kind: overlappedByPath
|
|
sil [ossa] @testOverlappedByPath1 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%path = begin_borrow %0
|
|
%range = begin_borrow %0
|
|
end_borrow %range
|
|
end_borrow %path
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testOverlappedByPath2: range_overlaps_path
|
|
// CHECK: Overlap kind: overlappedByPath
|
|
sil [ossa] @testOverlappedByPath2 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%path = begin_borrow %0
|
|
br bb1
|
|
bb1:
|
|
%range = begin_borrow %0
|
|
end_borrow %range
|
|
end_borrow %path
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testOverlappedByPath3: range_overlaps_path
|
|
// CHECK: Overlap kind: overlappedByPath
|
|
sil [ossa] @testOverlappedByPath3 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%path = begin_borrow %0
|
|
br bb1
|
|
bb1:
|
|
%range = begin_borrow %0
|
|
br bb2
|
|
bb2:
|
|
end_borrow %range
|
|
end_borrow %path
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testOverlappedByPath4: range_overlaps_path
|
|
// CHECK: Overlap kind: overlappedByPath
|
|
sil [ossa] @testOverlappedByPath4 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%path = begin_borrow %0
|
|
br bb1
|
|
bb1:
|
|
%range = begin_borrow %0
|
|
br bb2
|
|
bb2:
|
|
end_borrow %range
|
|
br bb3
|
|
bb3:
|
|
end_borrow %path
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testOverlappedByPath5: range_overlaps_path
|
|
// CHECK: Overlap kind: overlappedByPath
|
|
sil [ossa] @testOverlappedByPath5 : $@convention(thin) (@owned C, @owned C) -> () {
|
|
entry(%0 : @owned $C, %1 : @owned $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%path = move_value %0
|
|
%range = move_value %1
|
|
%tuple = tuple (%path, %range)
|
|
destroy_value %tuple
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testDisjoint1: range_overlaps_path
|
|
// CHECK: Overlap kind: disjoint
|
|
sil [ossa] @testDisjoint1 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%path = begin_borrow %0
|
|
end_borrow %path
|
|
%range = begin_borrow %0
|
|
end_borrow %range
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testDisjoint2: range_overlaps_path
|
|
// CHECK: Overlap kind: disjoint
|
|
sil [ossa] @testDisjoint2 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%range = begin_borrow %0
|
|
end_borrow %range
|
|
%path = begin_borrow %0
|
|
end_borrow %path
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testDisjoint3: range_overlaps_path
|
|
// CHECK: Overlap kind: disjoint
|
|
sil [ossa] @testDisjoint3 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%range = begin_borrow %0
|
|
end_borrow %range
|
|
%path = begin_borrow %0
|
|
br bb1
|
|
bb1:
|
|
end_borrow %path
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testDisjoint4: range_overlaps_path
|
|
// CHECK: Overlap kind: disjoint
|
|
sil [ossa] @testDisjoint4 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%path = begin_borrow %0
|
|
br bb1
|
|
bb1:
|
|
end_borrow %path
|
|
%range = begin_borrow %0
|
|
end_borrow %range
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testDisjoint5: range_overlaps_path
|
|
// CHECK: Overlap kind: disjoint
|
|
sil [ossa] @testDisjoint5 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%range = begin_borrow %0
|
|
br bb1
|
|
bb1:
|
|
end_borrow %range
|
|
%path = begin_borrow %0
|
|
br bb2
|
|
bb2:
|
|
end_borrow %path
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testDisjoint6: range_overlaps_path
|
|
// CHECK: Overlap kind: disjoint
|
|
sil [ossa] @testDisjoint6 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%path = begin_borrow %0
|
|
br bb1
|
|
bb1:
|
|
end_borrow %path
|
|
%range = begin_borrow %0
|
|
br bb2
|
|
bb2:
|
|
end_borrow %range
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testDisjoint7: range_overlaps_path
|
|
// CHECK: Overlap kind: disjoint
|
|
sil [ossa] @testDisjoint7 : $@convention(thin) (@guaranteed C) -> () {
|
|
entry(%0 : @guaranteed $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%path = begin_borrow %0
|
|
br bb1
|
|
bb1:
|
|
end_borrow %path
|
|
br bb2
|
|
bb2:
|
|
%range = begin_borrow %0
|
|
br bb3
|
|
bb3:
|
|
end_borrow %range
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testDisjoint8: range_overlaps_path
|
|
// CHECK: Overlap kind: disjoint
|
|
sil [ossa] @testDisjoint8 : $@convention(thin) (@owned C) -> () {
|
|
entry(%0 : @owned $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%path = move_value %0
|
|
%range = move_value %path
|
|
destroy_value %range
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|
|
|
|
// CHECK-LABEL: testDisjoint9: range_overlaps_path
|
|
// CHECK: Overlap kind: disjoint
|
|
sil [ossa] @testDisjoint9 : $@convention(thin) (@owned C) -> () {
|
|
entry(%0 : @owned $C):
|
|
specify_test "range_overlaps_path %range %path"
|
|
%range = move_value %0
|
|
%path = move_value %range
|
|
destroy_value %path
|
|
%retval = tuple ()
|
|
return %retval : $()
|
|
}
|