@@ -95,48 +95,54 @@ class Cat : FakeNSObject {
95
95
// CHECK: store %2 to [[SELF_BOX]] : $*Cat
96
96
// CHECK-NEXT: [[COND:%.+]] = struct_extract %0 : $Bool, #Bool._value
97
97
// CHECK-NEXT: cond_br [[COND]], bb1, bb2
98
-
98
+
99
99
// CHECK: bb1:
100
- // CHECK-NEXT: br bb5
101
-
102
- // CHECK: bb2:
100
+ // CHECK-NEXT: br bb8
101
+
102
+ // CHECK: bb3:
103
+ // CHECK: br bb5
104
+
105
+ // CHECK: bb4:
106
+ // CHECK: br bb5
107
+
108
+ // CHECK: bb5
103
109
// CHECK: [[SELF_INIT:%.+]] = objc_method %2 : $Cat, #Cat.init!initializer.1.foreign : (Cat.Type) -> (Int, Bool) -> Cat?
104
110
// CHECK: [[NEW_OPT_SELF:%.+]] = apply [[SELF_INIT]]({{%.+}}, {{%.+}}, %2) : $@convention(objc_method) (Int, ObjCBool, @owned Cat) -> @owned Optional<Cat>
105
111
// CHECK: [[COND:%.+]] = select_enum [[NEW_OPT_SELF]] : $Optional<Cat>
106
- // CHECK-NEXT: cond_br [[COND]], bb4, bb3
112
+ // CHECK-NEXT: cond_br [[COND]], bb7, bb6
107
113
108
- // CHECK: bb3 :
114
+ // CHECK: bb6 :
109
115
// CHECK-NEXT: release_value [[NEW_OPT_SELF]]
110
- // CHECK-NEXT: br bb5
116
+ // CHECK-NEXT: br bb8
111
117
112
- // CHECK: bb4 :
118
+ // CHECK: bb7 :
113
119
// CHECK-NEXT: [[NEW_SELF:%.+]] = unchecked_enum_data [[NEW_OPT_SELF]] : $Optional<Cat>, #Optional.some!enumelt.1
114
120
// CHECK-NEXT: store [[NEW_SELF]] to [[SELF_BOX]] : $*Cat
115
121
// TODO: Once we re-enable arbitrary take promotion, this retain and the associated destroy_addr will go away.
116
122
// CHECK-NEXT: strong_retain [[NEW_SELF]]
117
123
// CHECK-NEXT: [[RESULT:%.+]] = enum $Optional<Cat>, #Optional.some!enumelt.1, [[NEW_SELF]] : $Cat
118
124
// CHECK-NEXT: destroy_addr [[SELF_BOX]]
119
125
// CHECK-NEXT: dealloc_stack [[SELF_BOX]] : $*Cat
120
- // CHECK-NEXT: br bb9 ([[RESULT]] : $Optional<Cat>)
126
+ // CHECK-NEXT: br bb12 ([[RESULT]] : $Optional<Cat>)
121
127
122
- // CHECK: bb5 :
128
+ // CHECK: bb8 :
123
129
// CHECK-NEXT: [[COND:%.+]] = load [[HAS_RUN_INIT_BOX]] : $*Builtin.Int1
124
- // CHECK-NEXT: cond_br [[COND]], bb6, bb7
130
+ // CHECK-NEXT: cond_br [[COND]], bb9, bb10
125
131
126
- // CHECK: bb6 :
127
- // CHECK-NEXT: br bb8
132
+ // CHECK: bb9 :
133
+ // CHECK-NEXT: br bb11
128
134
129
- // CHECK: bb7 :
135
+ // CHECK: bb10 :
130
136
// CHECK-NEXT: [[MOST_DERIVED_TYPE:%.+]] = value_metatype $@thick Cat.Type, %2 : $Cat
131
137
// CHECK-NEXT: dealloc_partial_ref %2 : $Cat, [[MOST_DERIVED_TYPE]] : $@thick Cat.Type
132
- // CHECK-NEXT: br bb8
138
+ // CHECK-NEXT: br bb11
133
139
134
- // CHECK: bb8 :
140
+ // CHECK: bb11 :
135
141
// CHECK-NEXT: dealloc_stack [[SELF_BOX]] : $*Cat
136
142
// CHECK-NEXT: [[NIL_RESULT:%.+]] = enum $Optional<Cat>, #Optional.none!enumelt
137
- // CHECK-NEXT: br bb9 ([[NIL_RESULT]] : $Optional<Cat>)
143
+ // CHECK-NEXT: br bb12 ([[NIL_RESULT]] : $Optional<Cat>)
138
144
139
- // CHECK: bb9 ([[RESULT:%.+]] : $Optional<Cat>):
145
+ // CHECK: bb12 ([[RESULT:%.+]] : $Optional<Cat>):
140
146
// CHECK-NEXT: dealloc_stack [[HAS_RUN_INIT_BOX]] : $*Builtin.Int1
141
147
// CHECK-NEXT: return [[RESULT]] : $Optional<Cat>
142
148
0 commit comments