Skip to content

Commit c99874b

Browse files
committed
[sil-combine] Enable some checks that already pass in ossa_sil_combine.sil.
These are mostly handled by inst simplify and simple DCE functionality.
1 parent 87e66ac commit c99874b

File tree

1 file changed

+111
-112
lines changed

1 file changed

+111
-112
lines changed

test/SILOptimizer/sil_combine_ossa.sil

Lines changed: 111 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,18 @@ sil [ossa] @unknown : $@convention(thin) () -> ()
5555
//////////////////////
5656

5757
// CHECK-LABEL: sil [ossa] @dead_inst_elimination_one_bb
58-
// XHECK-NOT: integer_literal $Builtin.Int64, 24
58+
// CHECK-NOT: integer_literal $Builtin.Int64, 24
5959
sil [ossa] @dead_inst_elimination_one_bb : $@convention(thin) () -> () {
6060
%0 = integer_literal $Builtin.Int64, 24
6161
%1 = tuple()
6262
return %1 : $()
6363
}
6464

6565
// CHECK-LABEL: sil [ossa] @dead_inst_elimination_diamond
66-
// XHECK: bb0
67-
// XHECK-NOT: integer_literal $Builtin.Int64, 24
68-
// XHECK: bb1
69-
// XHECK-NOT: integer_literal $Builtin.Int64, 48
66+
// CHECK: bb0
67+
// CHECK-NOT: integer_literal $Builtin.Int64, 24
68+
// CHECK: bb1
69+
// CHECK-NOT: integer_literal $Builtin.Int64, 48
7070
sil [ossa] @dead_inst_elimination_diamond : $@convention(thin) (Builtin.Int1) -> () {
7171
bb0(%0 : $Builtin.Int1):
7272
%1 = integer_literal $Builtin.Int64, 24
@@ -88,16 +88,16 @@ bb3:
8888
sil [ossa] @random_counter : $@convention(thin) () -> Builtin.Int1
8989

9090
// CHECK-LABEL: sil [ossa] @dead_inst_elimination_loop
91-
// XHECK: bb0
92-
// XHECK-NOT: integer_literal
93-
// XHECK: bb1
94-
// XHECK: function_ref
95-
// XHECK: apply
96-
// XHECK-NOT: integer_literal
97-
// XHECK: bb2
98-
// XHECK-NOT: integer_literal
99-
// XHECK: tuple
100-
// XHECK: return
91+
// CHECK: bb0
92+
// CHECK-NOT: integer_literal
93+
// CHECK: bb1
94+
// CHECK: function_ref
95+
// CHECK: apply
96+
// CHECK-NOT: integer_literal
97+
// CHECK: bb2
98+
// CHECK-NOT: integer_literal
99+
// CHECK: tuple
100+
// CHECK: return
101101
sil [ossa] @dead_inst_elimination_loop : $@convention(thin) () -> () {
102102
bb0:
103103
%1 = integer_literal $Builtin.Int64, 24
@@ -122,10 +122,10 @@ bb2:
122122
// SILCombine, we should not dce dead instructions in unreachable code.
123123

124124
// CHECK-LABEL: sil [ossa] @dead_inst_elimination_ignore_unreachable
125-
// XHECK: bb0
126-
// XHECK-NOT: integer_literal $Builtin.Int64, 24
127-
// XHECK: bb1
128-
// XHECK: integer_literal $Builtin.Int64, 48
125+
// CHECK: bb0
126+
// CHECK-NOT: integer_literal $Builtin.Int64, 24
127+
// CHECK: bb1
128+
// CHECK: integer_literal $Builtin.Int64, 48
129129
sil [ossa] @dead_inst_elimination_ignore_unreachable : $@convention(thin) () -> () {
130130
bb0:
131131
%0 = integer_literal $Builtin.Int64, 24
@@ -152,10 +152,10 @@ bb1:
152152
}
153153

154154
// CHECK-LABEL: sil [ossa] @removeTriviallyDeadInstructions :
155-
// XHECK: store
156-
// XHECK-NEXT: destroy_value
157-
// XHECK-NOT: unchecked_ref_cast
158-
// XHECK: } // end sil function 'removeTriviallyDeadInstructions'
155+
// CHECK: store
156+
// CHECK-NEXT: destroy_value
157+
// CHECK-NOT: unchecked_ref_cast
158+
// CHECK: } // end sil function 'removeTriviallyDeadInstructions'
159159
sil [ossa] @removeTriviallyDeadInstructions : $@convention(thin) (@owned B) -> () {
160160
bb0(%0 : @owned $B):
161161
%1 = alloc_box $<τ_0_0> { var τ_0_0 } <B>
@@ -171,10 +171,10 @@ bb0(%0 : @owned $B):
171171
}
172172

173173
// CHECK-LABEL: sil [ossa] @removeTriviallyDeadCrossBasicBlocks
174-
// XHECK-NOT: unchecked_ref_cast
175-
// XHECK: cond_br
176-
// XHECK-NOT: unchecked_ref_cast
177-
// XHECK: }
174+
// CHECK-NOT: unchecked_ref_cast
175+
// CHECK: cond_br
176+
// CHECK-NOT: unchecked_ref_cast
177+
// CHECK: }
178178
sil [ossa] @removeTriviallyDeadCrossBasicBlocks : $@convention(thin) (@owned B, Builtin.Int1) -> () {
179179
bb0(%0 : @owned $B, %1: $Builtin.Int1):
180180
%5 = unchecked_ref_cast %0 : $B to $Builtin.NativeObject
@@ -193,10 +193,10 @@ bb2:
193193
}
194194

195195
// CHECK-LABEL: sil [ossa] @dead_use_of_alloc_stack
196-
// XHECK: bb
197-
// XHECK: alloc_stack
198-
// XHECK: dealloc_stack
199-
// XHECK: }
196+
// CHECK: bb
197+
// CHECK: alloc_stack
198+
// CHECK: dealloc_stack
199+
// CHECK: }
200200
sil [ossa] @dead_use_of_alloc_stack : $@convention(thin) () -> () {
201201
bb0:
202202
%1 = alloc_stack $((), (), ())
@@ -207,8 +207,8 @@ bb0:
207207
}
208208

209209
// CHECK-LABEL: sil [ossa] @tuple_extract
210-
// XHECK: bb
211-
// XHECK-NEXT: return %0
210+
// CHECK: bb
211+
// CHECK-NEXT: return %0
212212
sil [ossa] @tuple_extract : $@convention(thin) (Int64) -> Int64 {
213213
bb0(%0 : $Int64):
214214
%1 = tuple (%0 : $Int64, %0 : $Int64)
@@ -217,14 +217,14 @@ bb0(%0 : $Int64):
217217
}
218218

219219
// CHECK-LABEL: sil [ossa] @do_not_fold_integer_literal
220-
// XHECK: bb
221-
// XHECK: cond_br
222-
// XHECK: {{^bb}}
223-
// XHECK-NEXT: integer_literal
224-
// XHECK-NEXT: br bb
225-
// XHECK: {{^bb}}
226-
// XHECK-NEXT: integer_literal
227-
// XHECK-NEXT: br bb
220+
// CHECK: bb
221+
// CHECK: cond_br
222+
// CHECK: {{^bb}}
223+
// CHECK-NEXT: integer_literal
224+
// CHECK-NEXT: br bb
225+
// CHECK: {{^bb}}
226+
// CHECK-NEXT: integer_literal
227+
// CHECK-NEXT: br bb
228228
sil [ossa] @do_not_fold_integer_literal : $@convention(thin) (Builtin.Int1) -> Builtin.Int1 {
229229
bb0(%0 : $Builtin.Int1):
230230
cond_br %0, bb1, bb3
@@ -243,15 +243,15 @@ bb2(%3 : $Builtin.Int1):
243243

244244
enum BoolLike { case true_, false_ }
245245

246-
// CHECK-LABEL: sil [ossa] @fold_enum
247-
// XHECK: bb
248-
// XHECK: switch_enum
249-
// XHECK: {{^bb}}
250-
// XHECK-NOT: enum
251-
// XHECK-NEXT: br bb
252-
// XHECK: {{^bb}}
253-
// XHECK-NOT: enum
254-
// XHECK-NEXT: br bb
246+
// CHECK-LABEL: sil [ossa] @fold_enum :
247+
// CHECK: bb
248+
// CHECK: switch_enum
249+
// CHECK: {{^bb}}
250+
// CHECK-NOT: enum
251+
// CHECK-NEXT: br bb
252+
// CHECK: {{^bb}}
253+
// CHECK-NOT: enum
254+
// CHECK-NEXT: br bb
255255
sil [ossa] @fold_enum : $@convention(thin) (BoolLike) -> BoolLike {
256256
bb0(%0 : $BoolLike):
257257
switch_enum %0 : $BoolLike, case #BoolLike.true_!enumelt: bb1, case #BoolLike.false_!enumelt: bb2
@@ -269,14 +269,14 @@ bb3(%3 : $BoolLike):
269269
}
270270

271271
// CHECK-LABEL: sil [ossa] @do_not_fold_enum
272-
// XHECK: bb
273-
// XHECK: switch_enum
274-
// XHECK: {{^bb}}
275-
// XHECK-NEXT: enum
276-
// XHECK-NEXT: br bb
277-
// XHECK: {{^bb}}
278-
// XHECK-NEXT: enum
279-
// XHECK-NEXT: br bb
272+
// CHECK: bb
273+
// CHECK: switch_enum
274+
// CHECK: {{^bb}}
275+
// CHECK-NEXT: enum
276+
// CHECK-NEXT: br bb
277+
// CHECK: {{^bb}}
278+
// CHECK-NEXT: enum
279+
// CHECK-NEXT: br bb
280280
sil [ossa] @do_not_fold_enum : $@convention(thin) (BoolLike) -> BoolLike {
281281
bb0(%0 : $BoolLike):
282282
switch_enum %0 : $BoolLike, case #BoolLike.true_!enumelt: bb1, case #BoolLike.false_!enumelt: bb2
@@ -294,14 +294,14 @@ bb3(%3 : $BoolLike):
294294
}
295295

296296
// CHECK-LABEL: sil [ossa] @struct_extract_load_to_load_struct_element_addr :
297-
// XHECK: bb0([[IN:%[0-9]+]] : $*UInt8):
298-
// XHECK-NEXT: [[IN_GEP:%[0-9]+]] = struct_element_addr [[IN]] : $*UInt8, #UInt8._value
299-
// XHECK-NEXT: [[IN_LOADED:%[0-9]+]] = load [trivial] [[IN_GEP]] : $*Builtin.Int8
300-
// XHECK-NEXT: [[LITERAL:%[0-9]+]] = integer_literal $Builtin.Int8, 1
301-
// XHECK-NEXT: [[UINT8:%.*]] = struct $UInt8 ([[LITERAL]] : $Builtin.Int8)
302-
// XHECK-NEXT: store [[UINT8]] to [trivial] [[IN]] : $*UInt8
303-
// XHECK-NEXT: return [[IN_LOADED]] : $Builtin.Int8
304-
// XHECK: } // end sil function 'struct_extract_load_to_load_struct_element_addr'
297+
// CHECK: bb0([[IN:%[0-9]+]] : $*UInt8):
298+
// CHECK-NEXT: [[IN_GEP:%[0-9]+]] = struct_element_addr [[IN]] : $*UInt8, #UInt8._value
299+
// CHECK-NEXT: [[IN_LOADED:%[0-9]+]] = load [trivial] [[IN_GEP]] : $*Builtin.Int8
300+
// CHECK-NEXT: [[LITERAL:%[0-9]+]] = integer_literal $Builtin.Int8, 1
301+
// CHECK-NEXT: [[UINT8:%.*]] = struct $UInt8 ([[LITERAL]] : $Builtin.Int8)
302+
// CHECK-NEXT: store [[UINT8]] to [trivial] [[IN]] : $*UInt8
303+
// CHECK-NEXT: return [[IN_LOADED]] : $Builtin.Int8
304+
// CHECK: } // end sil function 'struct_extract_load_to_load_struct_element_addr'
305305
sil [ossa] @struct_extract_load_to_load_struct_element_addr : $@convention(thin) (@inout UInt8) -> (Builtin.Int8) {
306306
bb0(%0 : $*UInt8):
307307
%1 = load [trivial] %0 : $*UInt8
@@ -313,14 +313,14 @@ bb0(%0 : $*UInt8):
313313
}
314314

315315
// CHECK-LABEL: sil [ossa] @tuple_extract_load_to_load_tuple_element_addr :
316-
// XHECK: bb0([[IN:%[0-9]+]] : $*(Builtin.Int8, Builtin.Int8)):
317-
// XHECK-NEXT: [[IN_GEP:%[0-9]+]] = tuple_element_addr [[IN]] : $*(Builtin.Int8, Builtin.Int8), 0
318-
// XHECK-NEXT: [[IN_LOADED:%[0-9]+]] = load [trivial] [[IN_GEP]] : $*Builtin.Int8
319-
// XHECK-NEXT: [[LITERAL:%[0-9]+]] = integer_literal $Builtin.Int8, 1
320-
// XHECK-NEXT: [[IN_STORE_GEP:%[0-9]+]] = tuple_element_addr %0 : $*(Builtin.Int8, Builtin.Int8), 0
321-
// XHECK-NEXT: store [[LITERAL]] to [trivial] [[IN_STORE_GEP]] : $*Builtin.Int8
322-
// XHECK-NEXT: return [[IN_LOADED]] : $Builtin.Int8
323-
// XHECK: } // end sil function 'tuple_extract_load_to_load_tuple_element_addr'
316+
// CHECK: bb0([[IN:%[0-9]+]] : $*(Builtin.Int8, Builtin.Int8)):
317+
// CHECK-NEXT: [[IN_GEP:%[0-9]+]] = tuple_element_addr [[IN]] : $*(Builtin.Int8, Builtin.Int8), 0
318+
// CHECK-NEXT: [[IN_LOADED:%[0-9]+]] = load [trivial] [[IN_GEP]] : $*Builtin.Int8
319+
// CHECK-NEXT: [[LITERAL:%[0-9]+]] = integer_literal $Builtin.Int8, 1
320+
// CHECK-NEXT: [[IN_STORE_GEP:%[0-9]+]] = tuple_element_addr %0 : $*(Builtin.Int8, Builtin.Int8), 0
321+
// CHECK-NEXT: store [[LITERAL]] to [trivial] [[IN_STORE_GEP]] : $*Builtin.Int8
322+
// CHECK-NEXT: return [[IN_LOADED]] : $Builtin.Int8
323+
// CHECK: } // end sil function 'tuple_extract_load_to_load_tuple_element_addr'
324324
sil [ossa] @tuple_extract_load_to_load_tuple_element_addr : $@convention(thin) (@inout (Builtin.Int8, Builtin.Int8)) -> (Builtin.Int8) {
325325
bb0(%0 : $*(Builtin.Int8, Builtin.Int8)):
326326
%1 = load [trivial] %0 : $*(Builtin.Int8, Builtin.Int8)
@@ -334,14 +334,14 @@ bb0(%0 : $*(Builtin.Int8, Builtin.Int8)):
334334
// Do not perform the optimization of the input load has multiple uses.
335335
//
336336
// CHECK-LABEL: sil [ossa] @multiple_use_struct_extract_load_to_load_struct_element_addr
337-
// XHECK: bb0([[IN:%[0-9]+]] : $*UInt8):
338-
// XHECK-NEXT: load
339-
// XHECK-NEXT: integer_literal
340-
// XHECK-NEXT: struct
341-
// XHECK-NEXT: store
342-
// XHECK-NEXT: struct_extract
343-
// XHECK-NEXT: tuple
344-
// XHECK-NEXT: return
337+
// CHECK: bb0([[IN:%[0-9]+]] : $*UInt8):
338+
// CHECK-NEXT: load
339+
// CHECK-NEXT: integer_literal
340+
// CHECK-NEXT: struct
341+
// CHECK-NEXT: store
342+
// CHECK-NEXT: struct_extract
343+
// CHECK-NEXT: tuple
344+
// CHECK-NEXT: return
345345
sil [ossa] @multiple_use_struct_extract_load_to_load_struct_element_addr : $@convention(thin) (@inout UInt8) -> (UInt8, Builtin.Int8) {
346346
bb0(%0 : $*UInt8):
347347
%1 = load [trivial] %0 : $*UInt8
@@ -356,14 +356,14 @@ bb0(%0 : $*UInt8):
356356
// Do not perform the optimization of the input load has multiple uses.
357357
//
358358
// CHECK-LABEL: sil [ossa] @multiple_use_tuple_extract_load_to_load_tuple_element_addr
359-
// XHECK: bb0
360-
// XHECK-NEXT: load
361-
// XHECK-NEXT: integer_literal
362-
// XHECK-NEXT: tuple_element_addr
363-
// XHECK-NEXT: store
364-
// XHECK-NEXT: tuple_extract
365-
// XHECK-NEXT: tuple
366-
// XHECK-NEXT: return
359+
// CHECK: bb0
360+
// CHECK-NEXT: load
361+
// CHECK-NEXT: integer_literal
362+
// CHECK-NEXT: tuple_element_addr
363+
// CHECK-NEXT: store
364+
// CHECK-NEXT: tuple_extract
365+
// CHECK-NEXT: tuple
366+
// CHECK-NEXT: return
367367
sil [ossa] @multiple_use_tuple_extract_load_to_load_tuple_element_addr : $@convention(thin) (@inout (Builtin.Int8, Builtin.Int8)) -> ((Builtin.Int8, Builtin.Int8), Builtin.Int8) {
368368
bb0(%0 : $*(Builtin.Int8, Builtin.Int8)):
369369
%1 = load [trivial] %0 : $*(Builtin.Int8, Builtin.Int8)
@@ -423,10 +423,10 @@ bb0(%0 : $Builtin.RawPointer):
423423

424424

425425
// CHECK-LABEL: sil [ossa] @destroy_value_test
426-
// XHECK: bb0({{%[0-9]+}} : $Builtin.Int8, [[RELEASE_TARGET:%[0-9]+]] : @owned $Builtin.NativeObject):
427-
// XHECK-NEXT: destroy_value [[RELEASE_TARGET]] : $Builtin.NativeObject
428-
// XHECK-NEXT: tuple ()
429-
// XHECK-NEXT: return
426+
// CHECK: bb0({{%[0-9]+}} : $Builtin.Int8, [[RELEASE_TARGET:%[0-9]+]] : @owned $Builtin.NativeObject):
427+
// CHECK-NEXT: destroy_value [[RELEASE_TARGET]] : $Builtin.NativeObject
428+
// CHECK-NEXT: tuple ()
429+
// CHECK-NEXT: return
430430
sil [ossa] @destroy_value_test : $@convention(thin) (Builtin.Int8, @owned Builtin.NativeObject) -> () {
431431
bb0(%0 : $Builtin.Int8, %1 : @owned $Builtin.NativeObject):
432432
destroy_value %1 : $Builtin.NativeObject
@@ -435,10 +435,10 @@ bb0(%0 : $Builtin.Int8, %1 : @owned $Builtin.NativeObject):
435435
}
436436

437437
// CHECK-LABEL: sil [ossa] @retain_value_test
438-
// XHECK: bb0([[TRIVIAL_TARGET:%[0-9]+]] : $Builtin.Int8, [[REFCOUNT_TARGET:%[0-9]+]] : @guaranteed $Builtin.NativeObject):
439-
// XHECK-NEXT: [[RC:%.*]] = copy_value [[REFCOUNT_TARGET]] : $Builtin.NativeObject
440-
// XHECK-NEXT: tuple ([[TRIVIAL_TARGET]] : $Builtin.Int8, [[RC]] : $Builtin.NativeObject)
441-
// XHECK-NEXT: return
438+
// CHECK: bb0([[TRIVIAL_TARGET:%[0-9]+]] : $Builtin.Int8, [[REFCOUNT_TARGET:%[0-9]+]] : @guaranteed $Builtin.NativeObject):
439+
// CHECK-NEXT: [[RC:%.*]] = copy_value [[REFCOUNT_TARGET]] : $Builtin.NativeObject
440+
// CHECK-NEXT: tuple ([[TRIVIAL_TARGET]] : $Builtin.Int8, [[RC]] : $Builtin.NativeObject)
441+
// CHECK-NEXT: return
442442
sil [ossa] @retain_value_test : $@convention(thin) (Builtin.Int8, @guaranteed Builtin.NativeObject) -> @owned (Builtin.Int8, Builtin.NativeObject) {
443443
bb0(%0 : $Builtin.Int8, %1 : @guaranteed $Builtin.NativeObject):
444444
%1a = copy_value %1 : $Builtin.NativeObject
@@ -502,9 +502,9 @@ enum U {
502502
// (ref_to_raw_pointer (unchecked_ref_cast x))
503503
// -> (ref_to_raw_pointer x)
504504
// CHECK-LABEL: sil [ossa] @ref_to_raw_pointer_unchecked_ref_cast_composition : $@convention(thin) (@guaranteed C) -> Builtin.RawPointer
505-
// XHECK: bb0
506-
// XHECK-NEXT: ref_to_raw_pointer
507-
// XHECK-NEXT: return
505+
// CHECK: bb0
506+
// CHECK-NEXT: ref_to_raw_pointer
507+
// CHECK-NEXT: return
508508
sil [ossa] @ref_to_raw_pointer_unchecked_ref_cast_composition : $@convention(thin) (@guaranteed C) -> Builtin.RawPointer {
509509
bb0(%0 : @guaranteed $C):
510510
%1 = unchecked_ref_cast %0 : $C to $Builtin.NativeObject
@@ -547,8 +547,8 @@ bb0(%0 : @owned $HeapBufferStorage<T_0_0, T_0_1>):
547547
}
548548

549549
// CHECK-LABEL: sil [ossa] @raw_pointer_to_ref_ref_to_raw_pointer_round_trip
550-
// XHECK: bb0
551-
// XHECK-NEXT: return
550+
// CHECK: bb0
551+
// CHECK-NEXT: return
552552
sil [ossa] @raw_pointer_to_ref_ref_to_raw_pointer_round_trip : $@convention(thin) (Builtin.RawPointer) -> Builtin.RawPointer {
553553
bb0(%0 : $Builtin.RawPointer):
554554
%1 = raw_pointer_to_ref %0 : $Builtin.RawPointer to $C
@@ -800,9 +800,9 @@ struct XS {
800800
}
801801

802802
// CHECK-LABEL: strc_from_extr
803-
// XHECK-NOT: struct_extract
804-
// XHECK-NOT: struct
805-
// XHECK: return
803+
// CHECK-NOT: struct_extract
804+
// CHECK-NOT: struct
805+
// CHECK: return
806806
sil [ossa] @strc_from_extr : $@convention(thin) (XS, @thin XS.Type) -> XS {
807807
bb0(%0 : $XS, %1 : $@thin XS.Type):
808808
%2 = struct_extract %0 : $XS, #XS.m
@@ -812,9 +812,9 @@ bb0(%0 : $XS, %1 : $@thin XS.Type):
812812
}
813813

814814
// CHECK-LABEL: tup_from_extr_tup
815-
// XHECK-NOT: tuple_extract
816-
// XHECK-NOT: tuple
817-
// XHECK: return
815+
// CHECK-NOT: tuple_extract
816+
// CHECK-NOT: tuple
817+
// CHECK: return
818818
sil [ossa] @tup_from_extr_tup : $@convention(thin) () -> (Int, Int) {
819819
bb0:
820820
// function_ref x
@@ -833,7 +833,6 @@ bb0:
833833
// XHECK: [[R1:%.*]] = apply [[C]](
834834
// XHECK: = apply [[P]]([[R1]]
835835
// XHECK: return
836-
837836
sil [ossa] @apply_and_pa_merge : $@convention(thin) (Int) -> () {
838837
bb0(%0 : $Int):
839838
%1 = function_ref @some_closure : $@convention(thin) (Int) -> Int // user: %2
@@ -853,7 +852,7 @@ sil [ossa] @print_a_number : $@convention(thin) (Int) -> ()
853852
// CHECK-LABEL: sil [ossa] @applied
854853
sil [ossa] @applied : $@convention(thin) (Builtin.Int32) -> Builtin.Int32 {
855854
bb0(%0 : $Builtin.Int32):
856-
// XHECK: return
855+
// CHECK: return
857856
return %0 : $Builtin.Int32
858857
}
859858

@@ -886,7 +885,7 @@ bb0(%0 : $Builtin.Int32):
886885
return %11 : $Builtin.Int32
887886
}
888887

889-
// CHECK-LABEL: sil shared [transparent] [ossa] @reabstract
888+
// CHECK-LABEL: sil shared [transparent] [ossa] @reabstract :
890889
sil shared [ossa] [transparent] @reabstract : $@convention(thin) (Builtin.Int32, @owned @callee_owned (Builtin.Int32) -> Builtin.Int32) -> @out Builtin.Int32 {
891890
bb0(%0 : $*Builtin.Int32, %1 : $Builtin.Int32, %2 : @owned $@callee_owned (Builtin.Int32) -> Builtin.Int32):
892891
%3 = apply %2(%1) : $@callee_owned (Builtin.Int32) -> Builtin.Int32

0 commit comments

Comments
 (0)