@@ -35,13 +35,10 @@ extension S1 : HasFoo where T == UInt8 {
35
35
// CHECK: [[EXIS:%.*]] = alloc_stack $HasFoo
36
36
// CHECK: [[S1:%.*]] = alloc_stack $S1<UInt8>
37
37
// CHECK: store %0 to [[S1]] : $*S1<UInt8>
38
- // CHECK: [[OPT:%.*]] = alloc_stack $Optional<HasFoo>
39
- // CHECK: [[INIT_DATA:%.*]] = init_enum_data_addr [[OPT]] : $*Optional<HasFoo>, #Optional.some!enumelt
40
- // CHECK: [[EXIS_ADDR:%.*]] = init_existential_addr [[INIT_DATA]] : $*HasFoo, $S1<UInt8>
38
+ // CHECK: [[HASFOO:%.*]] = alloc_stack $HasFoo
39
+ // CHECK: [[EXIS_ADDR:%.*]] = init_existential_addr [[HASFOO]] : $*HasFoo, $S1<UInt8>
41
40
// CHECK: copy_addr [take] [[S1]] to [initialization] [[EXIS_ADDR]] : $*S1<UInt8>
42
- // CHECK: inject_enum_addr [[OPT]] : $*Optional<HasFoo>, #Optional.some!enumelt
43
- // CHECK: [[DATA:%.*]] = unchecked_take_enum_data_addr [[OPT]] : $*Optional<HasFoo>, #Optional.some!enumelt
44
- // CHECK: copy_addr [take] [[DATA]] to [initialization] [[EXIS]] : $*HasFoo
41
+ // CHECK: copy_addr [take] [[HASFOO]] to [initialization] [[EXIS]] : $*HasFoo
45
42
// CHECK: [[OPEN_EXIS_ADDR:%.*]] = open_existential_addr immutable_access [[EXIS]] : $*HasFoo to $*@opened("4E16CBC0-FD9F-11E8-A311-D0817AD9F6DD") HasFoo
46
43
// CHECK: [[OPEN_ADDR:%.*]] = unchecked_addr_cast [[OPEN_EXIS_ADDR]] : $*@opened("4E16CBC0-FD9F-11E8-A311-D0817AD9F6DD") HasFoo to $*S1<UInt8>
47
44
// CHECK: [[F:%.*]] = function_ref @witnessS1 : $@convention(witness_method: HasFoo) (@in_guaranteed S1<UInt8>) -> ()
@@ -171,13 +168,10 @@ struct IsP : P {}
171
168
// CHECK: [[EXIS:%.*]] = alloc_stack $HasFoo
172
169
// CHECK: [[S2:%.*]] = alloc_stack $S2<IsP>
173
170
// CHECK: store %0 to [[S2]] : $*S2<IsP>
174
- // CHECK: [[OPT:%.*]] = alloc_stack $Optional<HasFoo>
175
- // CHECK: [[INIT_DATA:%.*]] = init_enum_data_addr [[OPT]] : $*Optional<HasFoo>, #Optional.some!enumelt
176
- // CHECK: [[EXIS_ADDR:%.*]] = init_existential_addr [[INIT_DATA]] : $*HasFoo, $S2<IsP>
171
+ // CHECK: [[HASFOO:%.*]] = alloc_stack $HasFoo
172
+ // CHECK: [[EXIS_ADDR:%.*]] = init_existential_addr [[HASFOO]] : $*HasFoo, $S2<IsP>
177
173
// CHECK: copy_addr [take] [[S2]] to [initialization] [[EXIS_ADDR]] : $*S2<IsP>
178
- // CHECK: inject_enum_addr [[OPT]] : $*Optional<HasFoo>, #Optional.some!enumelt
179
- // CHECK: [[DATA:%.*]] = unchecked_take_enum_data_addr [[OPT]] : $*Optional<HasFoo>, #Optional.some!enumelt
180
- // CHECK: copy_addr [take] [[DATA]] to [initialization] [[EXIS]] : $*HasFoo
174
+ // CHECK: copy_addr [take] [[HASFOO]] to [initialization] [[EXIS]] : $*HasFoo
181
175
// CHECK: [[OPEN_EXIS_ADDR:%.*]] = open_existential_addr immutable_access [[EXIS]] : $*HasFoo to $*@opened("4E16D1CE-FD9F-11E8-A311-D0817AD9F6DD") HasFoo
182
176
// CHECK: [[OPEN_ADDR:%.*]] = unchecked_addr_cast [[OPEN_EXIS_ADDR]] : $*@opened("4E16D1CE-FD9F-11E8-A311-D0817AD9F6DD") HasFoo to $*S2<IsP>
183
177
// CHECK: [[F:%.*]] = function_ref @$s9witnessS24main3IsPV_Tg5 : $@convention(witness_method: HasFoo) (S2<IsP>) -> ()
@@ -246,13 +240,10 @@ extension S3 : HasFoo where T : AnyObject {
246
240
// CHECK: [[EXIS:%.*]] = alloc_stack $HasFoo
247
241
// CHECK: [[S3:%.*]] = alloc_stack $S3<C>
248
242
// CHECK: store %0 to [[S3]] : $*S3<C>
249
- // CHECK: [[OPT:%.*]] = alloc_stack $Optional<HasFoo>
250
- // CHECK: [[INIT_DATA:%.*]] = init_enum_data_addr [[OPT]] : $*Optional<HasFoo>, #Optional.some!enumelt
251
- // CHECK: [[EXIS_ADDR:%.*]] = init_existential_addr [[INIT_DATA]] : $*HasFoo, $S3<C>
243
+ // CHECK: [[HASFOO:%.*]] = alloc_stack $HasFoo
244
+ // CHECK: [[EXIS_ADDR:%.*]] = init_existential_addr [[HASFOO]] : $*HasFoo, $S3<C>
252
245
// CHECK: copy_addr [take] [[S3]] to [initialization] [[EXIS_ADDR]] : $*S3<C>
253
- // CHECK: inject_enum_addr [[OPT]] : $*Optional<HasFoo>, #Optional.some!enumelt
254
- // CHECK: [[DATA:%.*]] = unchecked_take_enum_data_addr [[OPT]] : $*Optional<HasFoo>, #Optional.some!enumelt
255
- // CHECK: copy_addr [take] [[DATA]] to [initialization] [[EXIS]] : $*HasFoo
246
+ // CHECK: copy_addr [take] [[HASFOO]] to [initialization] [[EXIS]] : $*HasFoo
256
247
// CHECK: [[OPEN_EXIS_ADDR:%.*]] = open_existential_addr immutable_access [[EXIS]] : $*HasFoo to $*@opened("4E16D5E8-FD9F-11E8-A311-D0817AD9F6DD") HasFoo
257
248
// CHECK: [[OPEN_ADDR:%.*]] = unchecked_addr_cast [[OPEN_EXIS_ADDR]] : $*@opened("4E16D5E8-FD9F-11E8-A311-D0817AD9F6DD") HasFoo to $*S3<C>
258
249
// CHECK: [[F:%.*]] = function_ref @$s9witnessS34main1CC_Tg5 : $@convention(witness_method: HasFoo) (S3<C>) -> ()
@@ -319,13 +310,10 @@ extension S4 : HasFoo where T : C {
319
310
// CHECK: [[EXIS:%.*]] = alloc_stack $HasFoo
320
311
// CHECK: [[S3:%.*]] = alloc_stack $S4<SubC>
321
312
// CHECK: store %0 to [[S3]] : $*S4<SubC>
322
- // CHECK: [[OPT:%.*]] = alloc_stack $Optional<HasFoo>
323
- // CHECK: [[INIT_DATA:%.*]] = init_enum_data_addr [[OPT]] : $*Optional<HasFoo>, #Optional.some!enumelt
324
- // CHECK: [[EXIS_ADDR:%.*]] = init_existential_addr [[INIT_DATA]] : $*HasFoo, $S4<SubC>
313
+ // CHECK: [[HASFOO:%.*]] = alloc_stack $HasFoo
314
+ // CHECK: [[EXIS_ADDR:%.*]] = init_existential_addr [[HASFOO]] : $*HasFoo, $S4<SubC>
325
315
// CHECK: copy_addr [take] [[S3]] to [initialization] [[EXIS_ADDR]] : $*S4<SubC>
326
- // CHECK: inject_enum_addr [[OPT]] : $*Optional<HasFoo>, #Optional.some!enumelt
327
- // CHECK: [[DATA:%.*]] = unchecked_take_enum_data_addr [[OPT]] : $*Optional<HasFoo>, #Optional.some!enumelt
328
- // CHECK: copy_addr [take] [[DATA]] to [initialization] [[EXIS]] : $*HasFoo
316
+ // CHECK: copy_addr [take] [[HASFOO]] to [initialization] [[EXIS]] : $*HasFoo
329
317
// CHECK: [[OPEN_EXIS_ADDR:%.*]] = open_existential_addr immutable_access [[EXIS]] : $*HasFoo to $*@opened("4E16E402-FD9F-11E8-A311-D0817AD9F6DD") HasFoo
330
318
// CHECK: [[OPEN_ADDR:%.*]] = unchecked_addr_cast [[OPEN_EXIS_ADDR]] : $*@opened("4E16E402-FD9F-11E8-A311-D0817AD9F6DD") HasFoo to $*S4<SubC>
331
319
// CHECK: [[F:%.*]] = function_ref @$s9witnessS44main4SubCC_Tg5 : $@convention(witness_method: HasFoo) (S4<SubC>) -> ()
0 commit comments