mirror of
https://github.com/apple/swift.git
synced 2026-02-27 18:26:24 +01:00
And organize the tests by the features/optimizations that they require! <file containing non-OSSA tests> -> <files containing OSSA tests> simplify-cfg-debugonly.sil -> simplify_cfg_checkcast.sil simplify-cfg-stress-test.sil -> simplify_cfg_stress_ossa.sil simplify_cfg_address_phi.sil -> simplify_cfg_simple_jumpthread.sil -> simplify_cfg_dom_jumpthread.sil simplify_cfg_and_combine.sil -> simplify_cfg_and_combine_ossa.sil simplify_cfg_args.sil -> simplify_cfg_args_ossa.sil -> simplify_cfg_args_ossa_disabled.sil simplify_cfg_args_crash.sil -> simplify_bb_args.sil simplify_cfg.sil -> simplify_cfg_ossa.sil -> simplify_cfg_ossa_disabled.sil -> simplify_cfg_tryapply.sil -> simplify_cfg_trivial_jumpthread.sil -> simplify_cfg_simple_jumpthread.sil -> simplify_cfg_checkcast.sil -> simplify_cfg_dom_jumpthread.sil simplify_cfg_jump_thread_crash.sil -> simplify_cfg_dom_jumpthread.sil simplify_cfg_opaque.sil -> <self> simplify_cfg_select_enum.sil -> simplify_cfg_dom_jumpthread.sil simplify_cfg_simple.sil -> simplify_cfg_ossa.sil -> simplify_cfg_simple_jumpthread.sil simplify_cfg_unique_values.sil -> simplify_cfg_dominators.sil simplify_switch_enum_objc.sil -> simplify_switch_enum_objc.sil
1085 lines
24 KiB
Plaintext
1085 lines
24 KiB
Plaintext
// RUN: %target-sil-opt -enable-sil-verify-all %s -simplify-cfg | %FileCheck %s
|
|
|
|
sil_stage canonical
|
|
|
|
import Builtin
|
|
import Swift
|
|
|
|
|
|
sil @do_something : $@convention(thin) () -> ()
|
|
sil @getit : $@convention(thin) (Int64, Int64) -> Int64
|
|
sil @sink : $@convention(thin) (Int64, Int64, Int64, Int64) -> ()
|
|
|
|
// Check if SimplifyCFG can optimize this function in reasonable time.
|
|
|
|
// CHECK-LABEL: sil [ossa] @testit
|
|
|
|
// Check if there are not too many basic blocks generated.
|
|
// CHECK-NOT: bb1000:
|
|
|
|
sil [ossa] @testit : $@convention(thin) (Int64, Int64, Int64, Int64, Int64, Int64) -> () {
|
|
bb0(%0 : $Int64, %1 : $Int64, %2 : $Int64, %3 : $Int64, %4 : $Int64, %5 : $Int64):
|
|
%12 = integer_literal $Builtin.Int64, 2
|
|
%13 = struct_extract %0 : $Int64, #Int64._value
|
|
%14 = builtin "cmp_eq_Int64"(%13 : $Builtin.Int64, %12 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %14, bb1, bb4
|
|
|
|
bb1:
|
|
%16 = integer_literal $Builtin.Int64, 1
|
|
%17 = struct_extract %1 : $Int64, #Int64._value
|
|
%18 = builtin "cmp_eq_Int64"(%17 : $Builtin.Int64, %16 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %18, bb2, bb3
|
|
|
|
bb2:
|
|
%20 = integer_literal $Builtin.Int1, -1
|
|
br bb5(%20 : $Builtin.Int1)
|
|
|
|
bb3:
|
|
%22 = builtin "cmp_eq_Int64"(%17 : $Builtin.Int64, %12 : $Builtin.Int64) : $Builtin.Int1
|
|
br bb5(%22 : $Builtin.Int1)
|
|
|
|
bb4:
|
|
%24 = integer_literal $Builtin.Int1, 0
|
|
br bb5(%24 : $Builtin.Int1)
|
|
|
|
|
|
bb5(%26 : $Builtin.Int1):
|
|
%27 = struct $Bool (%26 : $Builtin.Int1)
|
|
%29 = integer_literal $Builtin.Int64, 1
|
|
%30 = builtin "cmp_eq_Int64"(%13 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %30, bb6, bb9
|
|
|
|
bb6:
|
|
%32 = struct_extract %1 : $Int64, #Int64._value
|
|
%33 = builtin "cmp_eq_Int64"(%32 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %33, bb7, bb8
|
|
|
|
bb7:
|
|
%35 = integer_literal $Builtin.Int1, -1
|
|
br bb10(%35 : $Builtin.Int1)
|
|
|
|
bb8:
|
|
%37 = builtin "cmp_eq_Int64"(%32 : $Builtin.Int64, %12 : $Builtin.Int64) : $Builtin.Int1
|
|
br bb10(%37 : $Builtin.Int1)
|
|
|
|
bb9:
|
|
%39 = integer_literal $Builtin.Int1, 0
|
|
br bb10(%39 : $Builtin.Int1)
|
|
|
|
bb10(%41 : $Builtin.Int1):
|
|
%42 = struct $Bool (%41 : $Builtin.Int1)
|
|
%44 = struct_extract %1 : $Int64, #Int64._value
|
|
%45 = builtin "cmp_eq_Int64"(%44 : $Builtin.Int64, %12 : $Builtin.Int64) : $Builtin.Int1
|
|
%46 = integer_literal $Builtin.Int64, 3
|
|
%47 = builtin "cmp_eq_Int64"(%44 : $Builtin.Int64, %46 : $Builtin.Int64) : $Builtin.Int1
|
|
%48 = struct_extract %3 : $Int64, #Int64._value
|
|
%49 = builtin "cmp_eq_Int64"(%48 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %49, bb12, bb11
|
|
|
|
bb11:
|
|
br bb15
|
|
|
|
bb12:
|
|
%52 = integer_literal $Builtin.Int64, 0
|
|
%53 = struct_extract %2 : $Int64, #Int64._value
|
|
%54 = builtin "cmp_eq_Int64"(%53 : $Builtin.Int64, %52 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %54, bb14, bb13
|
|
|
|
bb13:
|
|
br bb15
|
|
|
|
bb14:
|
|
%57 = builtin "cmp_slt_Int64"(%44 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
%58 = integer_literal $Builtin.Int1, -1
|
|
%59 = builtin "xor_Int1"(%57 : $Builtin.Int1, %58 : $Builtin.Int1) : $Builtin.Int1
|
|
br bb16(%59 : $Builtin.Int1)
|
|
|
|
bb15:
|
|
%61 = integer_literal $Builtin.Int1, 0
|
|
br bb16(%61 : $Builtin.Int1)
|
|
|
|
bb16(%63 : $Builtin.Int1):
|
|
%64 = struct $Bool (%63 : $Builtin.Int1)
|
|
%66 = builtin "cmp_eq_Int64"(%48 : $Builtin.Int64, %12 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %66, bb18, bb17
|
|
|
|
bb17:
|
|
br bb21
|
|
|
|
bb18:
|
|
%69 = integer_literal $Builtin.Int64, 0
|
|
%70 = struct_extract %2 : $Int64, #Int64._value
|
|
%71 = builtin "cmp_eq_Int64"(%70 : $Builtin.Int64, %69 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %71, bb20, bb19
|
|
|
|
bb19:
|
|
br bb21
|
|
|
|
bb20:
|
|
%74 = builtin "cmp_slt_Int64"(%44 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
%75 = integer_literal $Builtin.Int1, -1
|
|
%76 = builtin "xor_Int1"(%74 : $Builtin.Int1, %75 : $Builtin.Int1) : $Builtin.Int1
|
|
br bb22(%76 : $Builtin.Int1)
|
|
|
|
bb21:
|
|
%78 = integer_literal $Builtin.Int1, 0
|
|
br bb22(%78 : $Builtin.Int1)
|
|
|
|
bb22(%80 : $Builtin.Int1):
|
|
%81 = struct $Bool (%80 : $Builtin.Int1)
|
|
%83 = builtin "cmp_eq_Int64"(%48 : $Builtin.Int64, %46 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %83, bb24, bb23
|
|
|
|
bb23:
|
|
br bb27
|
|
|
|
bb24:
|
|
%86 = integer_literal $Builtin.Int64, 0
|
|
%87 = struct_extract %2 : $Int64, #Int64._value
|
|
%88 = builtin "cmp_eq_Int64"(%87 : $Builtin.Int64, %86 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %88, bb26, bb25
|
|
|
|
bb25:
|
|
br bb27
|
|
|
|
bb26:
|
|
%91 = builtin "cmp_slt_Int64"(%44 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
%92 = integer_literal $Builtin.Int1, -1
|
|
%93 = builtin "xor_Int1"(%91 : $Builtin.Int1, %92 : $Builtin.Int1) : $Builtin.Int1
|
|
br bb28(%93 : $Builtin.Int1)
|
|
|
|
bb27:
|
|
%95 = integer_literal $Builtin.Int1, 0
|
|
br bb28(%95 : $Builtin.Int1)
|
|
|
|
bb28(%97 : $Builtin.Int1):
|
|
%98 = struct $Bool (%97 : $Builtin.Int1)
|
|
%100 = struct_extract %2 : $Int64, #Int64._value
|
|
%101 = builtin "cmp_eq_Int64"(%100 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %101, bb29, bb30
|
|
|
|
bb29:
|
|
br bb31(%49 : $Builtin.Int1)
|
|
|
|
bb30:
|
|
%104 = integer_literal $Builtin.Int1, 0
|
|
br bb31(%104 : $Builtin.Int1)
|
|
|
|
bb31(%106 : $Builtin.Int1):
|
|
%107 = struct $Bool (%106 : $Builtin.Int1)
|
|
%109 = builtin "cmp_eq_Int64"(%100 : $Builtin.Int64, %12 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %109, bb32, bb33
|
|
|
|
bb32:
|
|
br bb34(%66 : $Builtin.Int1)
|
|
|
|
bb33:
|
|
%112 = integer_literal $Builtin.Int1, 0
|
|
br bb34(%112 : $Builtin.Int1)
|
|
|
|
bb34(%114 : $Builtin.Int1):
|
|
%115 = struct $Bool (%114 : $Builtin.Int1)
|
|
%117 = builtin "cmp_eq_Int64"(%100 : $Builtin.Int64, %46 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %117, bb35, bb36
|
|
|
|
bb35:
|
|
br bb37(%83 : $Builtin.Int1)
|
|
|
|
bb36:
|
|
%120 = integer_literal $Builtin.Int1, 0
|
|
br bb37(%120 : $Builtin.Int1)
|
|
|
|
bb37(%122 : $Builtin.Int1):
|
|
%123 = struct $Bool (%122 : $Builtin.Int1)
|
|
cond_br %101, bb39, bb38
|
|
|
|
bb38:
|
|
br bb42
|
|
|
|
bb39:
|
|
%127 = integer_literal $Builtin.Int64, 0
|
|
%128 = builtin "cmp_eq_Int64"(%48 : $Builtin.Int64, %127 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %128, bb41, bb40
|
|
|
|
bb40:
|
|
br bb42
|
|
|
|
bb41:
|
|
%131 = struct_extract %4 : $Int64, #Int64._value
|
|
%132 = builtin "cmp_eq_Int64"(%131 : $Builtin.Int64, %127 : $Builtin.Int64) : $Builtin.Int1
|
|
br bb43(%132 : $Builtin.Int1)
|
|
|
|
bb42:
|
|
%134 = integer_literal $Builtin.Int1, 0
|
|
br bb43(%134 : $Builtin.Int1)
|
|
|
|
|
|
bb43(%136 : $Builtin.Int1):
|
|
%137 = struct $Bool (%136 : $Builtin.Int1)
|
|
cond_br %109, bb45, bb44
|
|
|
|
bb44:
|
|
br bb48
|
|
|
|
bb45:
|
|
%141 = integer_literal $Builtin.Int64, 0
|
|
%142 = builtin "cmp_eq_Int64"(%48 : $Builtin.Int64, %141 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %142, bb47, bb46
|
|
|
|
bb46:
|
|
br bb48
|
|
|
|
bb47:
|
|
%145 = struct_extract %4 : $Int64, #Int64._value
|
|
%146 = builtin "cmp_eq_Int64"(%145 : $Builtin.Int64, %141 : $Builtin.Int64) : $Builtin.Int1
|
|
br bb49(%146 : $Builtin.Int1)
|
|
|
|
bb48:
|
|
%148 = integer_literal $Builtin.Int1, 0
|
|
br bb49(%148 : $Builtin.Int1)
|
|
|
|
|
|
bb49(%150 : $Builtin.Int1):
|
|
%151 = struct $Bool (%150 : $Builtin.Int1)
|
|
cond_br %117, bb51, bb50
|
|
|
|
bb50:
|
|
br bb54
|
|
|
|
bb51:
|
|
%155 = integer_literal $Builtin.Int64, 0
|
|
%156 = builtin "cmp_eq_Int64"(%48 : $Builtin.Int64, %155 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %156, bb53, bb52
|
|
|
|
bb52:
|
|
br bb54
|
|
|
|
bb53:
|
|
%159 = struct_extract %4 : $Int64, #Int64._value
|
|
%160 = builtin "cmp_eq_Int64"(%159 : $Builtin.Int64, %155 : $Builtin.Int64) : $Builtin.Int1
|
|
br bb55(%160 : $Builtin.Int1)
|
|
|
|
bb54:
|
|
%162 = integer_literal $Builtin.Int1, 0
|
|
br bb55(%162 : $Builtin.Int1)
|
|
|
|
|
|
bb55(%164 : $Builtin.Int1):
|
|
%165 = struct $Bool (%164 : $Builtin.Int1)
|
|
%167 = struct_extract %4 : $Int64, #Int64._value
|
|
%168 = builtin "cmp_eq_Int64"(%167 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
%169 = builtin "cmp_eq_Int64"(%167 : $Builtin.Int64, %12 : $Builtin.Int64) : $Builtin.Int1
|
|
%170 = builtin "cmp_eq_Int64"(%167 : $Builtin.Int64, %46 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %14, bb57, bb56
|
|
|
|
bb56:
|
|
br bb66
|
|
|
|
bb57:
|
|
%173 = integer_literal $Builtin.Int64, 0
|
|
%174 = builtin "cmp_eq_Int64"(%44 : $Builtin.Int64, %173 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %174, bb59, bb58
|
|
|
|
bb58:
|
|
br bb66
|
|
|
|
bb59:
|
|
%177 = builtin "cmp_eq_Int64"(%100 : $Builtin.Int64, %173 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %177, bb61, bb60
|
|
|
|
bb60:
|
|
br bb66
|
|
|
|
bb61:
|
|
%180 = builtin "cmp_eq_Int64"(%167 : $Builtin.Int64, %173 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %180, bb63, bb62
|
|
|
|
bb62:
|
|
br bb66
|
|
|
|
bb63:
|
|
%183 = builtin "cmp_eq_Int64"(%48 : $Builtin.Int64, %173 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %183, bb65, bb64
|
|
|
|
bb64:
|
|
br bb66
|
|
|
|
bb65:
|
|
%186 = struct_extract %5 : $Int64, #Int64._value
|
|
%187 = builtin "cmp_eq_Int64"(%186 : $Builtin.Int64, %173 : $Builtin.Int64) : $Builtin.Int1
|
|
br bb67(%187 : $Builtin.Int1)
|
|
|
|
bb66:
|
|
%189 = integer_literal $Builtin.Int1, 0
|
|
br bb67(%189 : $Builtin.Int1)
|
|
|
|
bb67(%191 : $Builtin.Int1):
|
|
%192 = struct $Bool (%191 : $Builtin.Int1)
|
|
cond_br %30, bb69, bb68
|
|
|
|
bb68:
|
|
br bb78
|
|
|
|
bb69:
|
|
%196 = integer_literal $Builtin.Int64, 0
|
|
%197 = builtin "cmp_eq_Int64"(%44 : $Builtin.Int64, %196 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %197, bb71, bb70
|
|
|
|
bb70:
|
|
br bb78
|
|
|
|
bb71:
|
|
%200 = builtin "cmp_eq_Int64"(%100 : $Builtin.Int64, %196 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %200, bb73, bb72
|
|
|
|
bb72:
|
|
br bb78
|
|
|
|
bb73:
|
|
%203 = builtin "cmp_eq_Int64"(%167 : $Builtin.Int64, %196 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %203, bb75, bb74
|
|
|
|
bb74:
|
|
br bb78
|
|
|
|
bb75:
|
|
%206 = builtin "cmp_eq_Int64"(%48 : $Builtin.Int64, %196 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %206, bb77, bb76
|
|
|
|
bb76:
|
|
br bb78
|
|
|
|
bb77:
|
|
%209 = struct_extract %5 : $Int64, #Int64._value
|
|
%210 = builtin "cmp_eq_Int64"(%209 : $Builtin.Int64, %196 : $Builtin.Int64) : $Builtin.Int1
|
|
br bb79(%210 : $Builtin.Int1)
|
|
|
|
bb78:
|
|
%212 = integer_literal $Builtin.Int1, 0
|
|
br bb79(%212 : $Builtin.Int1)
|
|
|
|
|
|
bb79(%214 : $Builtin.Int1):
|
|
%215 = struct $Bool (%214 : $Builtin.Int1)
|
|
%217 = builtin "cmp_slt_Int64"(%44 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %217, bb80, bb81
|
|
|
|
bb80:
|
|
br bb88
|
|
|
|
bb81:
|
|
%220 = integer_literal $Builtin.Int64, 0
|
|
%221 = builtin "cmp_eq_Int64"(%100 : $Builtin.Int64, %220 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %221, bb83, bb82
|
|
|
|
bb82:
|
|
br bb88
|
|
|
|
bb83:
|
|
%224 = builtin "cmp_eq_Int64"(%167 : $Builtin.Int64, %220 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %224, bb85, bb84
|
|
|
|
bb84:
|
|
br bb88
|
|
|
|
bb85:
|
|
%227 = builtin "cmp_eq_Int64"(%48 : $Builtin.Int64, %220 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %227, bb87, bb86
|
|
|
|
bb86:
|
|
br bb88
|
|
|
|
bb87:
|
|
%230 = struct_extract %5 : $Int64, #Int64._value
|
|
%231 = builtin "cmp_eq_Int64"(%230 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
%232 = integer_literal $Builtin.Int1, -1
|
|
%233 = builtin "xor_Int1"(%231 : $Builtin.Int1, %232 : $Builtin.Int1) : $Builtin.Int1
|
|
br bb89(%233 : $Builtin.Int1)
|
|
|
|
bb88:
|
|
%235 = integer_literal $Builtin.Int1, 0
|
|
br bb89(%235 : $Builtin.Int1)
|
|
|
|
|
|
bb89(%237 : $Builtin.Int1):
|
|
%238 = struct $Bool (%237 : $Builtin.Int1)
|
|
cond_br %217, bb98, bb90
|
|
|
|
bb90:
|
|
%241 = builtin "cmp_slt_Int64"(%100 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %241, bb92, bb91
|
|
|
|
bb91:
|
|
br bb96
|
|
|
|
bb92:
|
|
%244 = builtin "cmp_slt_Int64"(%167 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %244, bb94, bb93
|
|
|
|
bb93:
|
|
br bb96
|
|
|
|
bb94:
|
|
%247 = builtin "cmp_slt_Int64"(%48 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %247, bb97, bb95
|
|
|
|
bb95:
|
|
br bb96
|
|
|
|
bb96:
|
|
%250 = integer_literal $Builtin.Int1, -1
|
|
br bb99(%250 : $Builtin.Int1)
|
|
|
|
bb97:
|
|
%252 = struct_extract %5 : $Int64, #Int64._value
|
|
%253 = builtin "cmp_eq_Int64"(%252 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
br bb99(%253 : $Builtin.Int1)
|
|
|
|
bb98:
|
|
%255 = integer_literal $Builtin.Int1, 0
|
|
br bb99(%255 : $Builtin.Int1)
|
|
|
|
bb99(%257 : $Builtin.Int1):
|
|
%258 = struct $Bool (%257 : $Builtin.Int1)
|
|
%260 = struct_extract %5 : $Int64, #Int64._value
|
|
%261 = builtin "cmp_eq_Int64"(%260 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %261, bb100, bb106
|
|
|
|
bb100:
|
|
%263 = builtin "cmp_slt_Int64"(%100 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %263, bb102, bb101
|
|
|
|
bb101:
|
|
br bb104
|
|
|
|
bb102:
|
|
%266 = builtin "cmp_slt_Int64"(%48 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %266, bb105, bb103
|
|
|
|
bb103:
|
|
br bb104
|
|
|
|
bb104:
|
|
%269 = integer_literal $Builtin.Int1, -1
|
|
br bb107(%269 : $Builtin.Int1)
|
|
|
|
bb105:
|
|
%271 = builtin "cmp_slt_Int64"(%167 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
%272 = integer_literal $Builtin.Int1, -1
|
|
%273 = builtin "xor_Int1"(%271 : $Builtin.Int1, %272 : $Builtin.Int1) : $Builtin.Int1
|
|
br bb107(%273 : $Builtin.Int1)
|
|
|
|
bb106:
|
|
%275 = integer_literal $Builtin.Int1, 0
|
|
br bb107(%275 : $Builtin.Int1)
|
|
|
|
|
|
bb107(%277 : $Builtin.Int1):
|
|
%278 = struct $Bool (%277 : $Builtin.Int1)
|
|
%280 = builtin "cmp_eq_Int64"(%260 : $Builtin.Int64, %12 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %280, bb108, bb109
|
|
|
|
bb108:
|
|
%282 = integer_literal $Builtin.Int1, -1
|
|
%283 = builtin "xor_Int1"(%217 : $Builtin.Int1, %282 : $Builtin.Int1) : $Builtin.Int1
|
|
br bb110(%283 : $Builtin.Int1)
|
|
|
|
bb109:
|
|
%285 = integer_literal $Builtin.Int1, 0
|
|
br bb110(%285 : $Builtin.Int1)
|
|
|
|
|
|
bb110(%287 : $Builtin.Int1):
|
|
%288 = struct $Bool (%287 : $Builtin.Int1)
|
|
%290 = builtin "cmp_eq_Int64"(%260 : $Builtin.Int64, %46 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %290, bb112, bb111
|
|
|
|
bb111:
|
|
br bb121
|
|
|
|
bb112:
|
|
%293 = builtin "cmp_eq_Int64"(%13 : $Builtin.Int64, %46 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %293, bb114, bb113
|
|
|
|
bb113:
|
|
br bb121
|
|
|
|
bb114:
|
|
%296 = integer_literal $Builtin.Int64, 0
|
|
%297 = builtin "cmp_eq_Int64"(%44 : $Builtin.Int64, %296 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %297, bb116, bb115
|
|
|
|
bb115:
|
|
br bb121
|
|
|
|
bb116:
|
|
%300 = builtin "cmp_eq_Int64"(%100 : $Builtin.Int64, %296 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %300, bb118, bb117
|
|
|
|
bb117:
|
|
br bb121
|
|
|
|
bb118:
|
|
%303 = builtin "cmp_eq_Int64"(%167 : $Builtin.Int64, %296 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %303, bb120, bb119
|
|
|
|
bb119:
|
|
br bb121
|
|
|
|
bb120:
|
|
%306 = builtin "cmp_eq_Int64"(%48 : $Builtin.Int64, %296 : $Builtin.Int64) : $Builtin.Int1
|
|
br bb122(%306 : $Builtin.Int1)
|
|
|
|
bb121:
|
|
%308 = integer_literal $Builtin.Int1, 0
|
|
br bb122(%308 : $Builtin.Int1)
|
|
|
|
|
|
bb122(%310 : $Builtin.Int1):
|
|
%311 = struct $Bool (%310 : $Builtin.Int1)
|
|
br bb148(undef : $Bool)
|
|
|
|
bb123:
|
|
br bb148(undef : $Bool)
|
|
|
|
bb124:
|
|
br bb148(undef : $Bool)
|
|
|
|
bb125:
|
|
br bb148(undef : $Bool)
|
|
|
|
bb126:
|
|
br bb148(undef : $Bool)
|
|
|
|
bb127:
|
|
br bb129(undef : $Bool)
|
|
|
|
bb128:
|
|
br bb129(undef : $Bool)
|
|
|
|
bb129(%320 : $Bool):
|
|
br bb148(undef : $Bool)
|
|
|
|
bb130:
|
|
br bb148(undef : $Bool)
|
|
|
|
bb131:
|
|
br bb148(undef : $Bool)
|
|
|
|
bb132:
|
|
br bb148(undef : $Bool)
|
|
|
|
bb133:
|
|
br bb148(undef : $Bool)
|
|
|
|
bb134:
|
|
br bb136(undef : $Bool)
|
|
|
|
bb135:
|
|
br bb136(undef : $Bool)
|
|
|
|
bb136(%328 : $Bool):
|
|
br bb148(undef : $Bool)
|
|
|
|
bb137:
|
|
br bb148(undef : $Bool)
|
|
|
|
bb138:
|
|
br bb148(undef : $Bool)
|
|
|
|
bb139:
|
|
br bb148(undef : $Bool)
|
|
|
|
bb140:
|
|
br bb148(undef : $Bool)
|
|
|
|
bb141:
|
|
br bb143(undef : $Bool)
|
|
|
|
bb142:
|
|
br bb143(undef : $Bool)
|
|
|
|
bb143(%336 : $Bool):
|
|
br bb148(undef : $Bool)
|
|
|
|
bb144:
|
|
br bb148(undef : $Bool)
|
|
|
|
bb145:
|
|
br bb148(undef : $Bool)
|
|
|
|
bb146:
|
|
br bb148(undef : $Bool)
|
|
|
|
bb147:
|
|
br bb148(undef : $Bool)
|
|
|
|
bb148(%342 : $Bool):
|
|
cond_br %47, bb150, bb149
|
|
|
|
bb149:
|
|
br bb153
|
|
|
|
bb150:
|
|
cond_br %280, bb152, bb151
|
|
|
|
bb151:
|
|
br bb153
|
|
|
|
bb152:
|
|
%347 = integer_literal $Builtin.Int64, 5
|
|
%348 = struct $Int64 (%347 : $Builtin.Int64)
|
|
%349 = integer_literal $Builtin.Int64, 0
|
|
%350 = struct $Int64 (%349 : $Builtin.Int64)
|
|
|
|
%351 = function_ref @getit : $@convention(thin) (Int64, Int64) -> Int64
|
|
%352 = apply %351(%348, %350) : $@convention(thin) (Int64, Int64) -> Int64
|
|
br bb183(%352 : $Int64)
|
|
|
|
bb153:
|
|
cond_br %47, bb154, bb155
|
|
|
|
bb154:
|
|
%355 = integer_literal $Builtin.Int64, -2
|
|
%356 = struct $Int64 (%355 : $Builtin.Int64)
|
|
%357 = integer_literal $Builtin.Int64, -9
|
|
%358 = struct $Int64 (%357 : $Builtin.Int64)
|
|
|
|
%359 = function_ref @getit : $@convention(thin) (Int64, Int64) -> Int64
|
|
%360 = apply %359(%356, %358) : $@convention(thin) (Int64, Int64) -> Int64
|
|
br bb183(%360 : $Int64)
|
|
|
|
bb155:
|
|
cond_br %14, bb157, bb156
|
|
|
|
bb156:
|
|
br bb160
|
|
|
|
bb157:
|
|
cond_br %45, bb159, bb158
|
|
|
|
bb158:
|
|
br bb160
|
|
|
|
bb159:
|
|
%366 = integer_literal $Builtin.Int64, 5
|
|
%367 = struct $Int64 (%366 : $Builtin.Int64)
|
|
%368 = integer_literal $Builtin.Int64, -7
|
|
%369 = struct $Int64 (%368 : $Builtin.Int64)
|
|
|
|
%370 = function_ref @getit : $@convention(thin) (Int64, Int64) -> Int64
|
|
%371 = apply %370(%367, %369) : $@convention(thin) (Int64, Int64) -> Int64
|
|
br bb183(%371 : $Int64)
|
|
|
|
bb160:
|
|
cond_br %30, bb162, bb161
|
|
|
|
bb161:
|
|
br bb165
|
|
|
|
bb162:
|
|
cond_br %45, bb164, bb163
|
|
|
|
bb163:
|
|
br bb165
|
|
|
|
bb164:
|
|
%377 = integer_literal $Builtin.Int64, -5
|
|
%378 = struct $Int64 (%377 : $Builtin.Int64)
|
|
%379 = integer_literal $Builtin.Int64, -3
|
|
%380 = struct $Int64 (%379 : $Builtin.Int64)
|
|
|
|
%381 = function_ref @getit : $@convention(thin) (Int64, Int64) -> Int64
|
|
%382 = apply %381(%378, %380) : $@convention(thin) (Int64, Int64) -> Int64
|
|
br bb183(%382 : $Int64)
|
|
|
|
bb165:
|
|
cond_br %30, bb167, bb166
|
|
|
|
bb166:
|
|
br bb170
|
|
|
|
bb167:
|
|
%386 = builtin "cmp_eq_Int64"(%44 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %386, bb169, bb168
|
|
|
|
bb168:
|
|
br bb170
|
|
|
|
bb169:
|
|
%389 = integer_literal $Builtin.Int64, -12
|
|
%390 = struct $Int64 (%389 : $Builtin.Int64)
|
|
%391 = integer_literal $Builtin.Int64, -5
|
|
%392 = struct $Int64 (%391 : $Builtin.Int64)
|
|
|
|
%393 = function_ref @getit : $@convention(thin) (Int64, Int64) -> Int64
|
|
%394 = apply %393(%390, %392) : $@convention(thin) (Int64, Int64) -> Int64
|
|
br bb183(%394 : $Int64)
|
|
|
|
bb170:
|
|
cond_br %14, bb172, bb171
|
|
|
|
bb171:
|
|
br bb175
|
|
|
|
bb172:
|
|
%398 = builtin "cmp_eq_Int64"(%44 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %398, bb174, bb173
|
|
|
|
bb173:
|
|
br bb175
|
|
|
|
bb174:
|
|
%401 = integer_literal $Builtin.Int64, -8
|
|
%402 = struct $Int64 (%401 : $Builtin.Int64)
|
|
%403 = integer_literal $Builtin.Int64, -7
|
|
%404 = struct $Int64 (%403 : $Builtin.Int64)
|
|
|
|
%405 = function_ref @getit : $@convention(thin) (Int64, Int64) -> Int64
|
|
%406 = apply %405(%402, %404) : $@convention(thin) (Int64, Int64) -> Int64
|
|
br bb183(%406 : $Int64)
|
|
|
|
bb175:
|
|
cond_br %30, bb177, bb176
|
|
|
|
bb176:
|
|
br bb182
|
|
|
|
bb177:
|
|
%410 = builtin "cmp_eq_Int64"(%44 : $Builtin.Int64, %29 : $Builtin.Int64) : $Builtin.Int1
|
|
cond_br %410, bb179, bb178
|
|
|
|
bb178:
|
|
br bb182
|
|
|
|
bb179:
|
|
cond_br %280, bb181, bb180
|
|
|
|
bb180:
|
|
br bb182
|
|
|
|
bb181:
|
|
%415 = integer_literal $Builtin.Int64, -8
|
|
%416 = struct $Int64 (%415 : $Builtin.Int64)
|
|
%417 = integer_literal $Builtin.Int64, -7
|
|
%418 = struct $Int64 (%417 : $Builtin.Int64)
|
|
|
|
%419 = function_ref @getit : $@convention(thin) (Int64, Int64) -> Int64
|
|
%420 = apply %419(%416, %418) : $@convention(thin) (Int64, Int64) -> Int64
|
|
br bb183(%420 : $Int64)
|
|
|
|
bb182:
|
|
%422 = integer_literal $Builtin.Int64, 0
|
|
%423 = struct $Int64 (%422 : $Builtin.Int64)
|
|
|
|
%424 = function_ref @getit : $@convention(thin) (Int64, Int64) -> Int64
|
|
%425 = apply %424(%423, %423) : $@convention(thin) (Int64, Int64) -> Int64
|
|
br bb183(%425 : $Int64)
|
|
|
|
|
|
bb183(%427 : $Int64):
|
|
br bb190(undef : $Bool)
|
|
|
|
bb184:
|
|
br bb190(undef : $Bool)
|
|
|
|
bb185:
|
|
br bb190(undef : $Bool)
|
|
|
|
bb186:
|
|
br bb190(undef : $Bool)
|
|
|
|
bb187:
|
|
br bb190(undef : $Bool)
|
|
|
|
bb188:
|
|
br bb190(undef : $Bool)
|
|
|
|
bb189:
|
|
br bb190(undef : $Bool)
|
|
|
|
bb190(%436 : $Bool):
|
|
%437 = integer_literal $Builtin.Int64, 150
|
|
%438 = struct $Int64 (%437 : $Builtin.Int64)
|
|
|
|
%439 = function_ref @sink : $@convention(thin) (Int64, Int64, Int64, Int64) -> ()
|
|
%440 = apply %439(%427, %427, %438, %438) : $@convention(thin) (Int64, Int64, Int64, Int64) -> ()
|
|
%441 = struct_extract %215 : $Bool, #Bool._value
|
|
cond_br %441, bb192, bb191
|
|
|
|
bb191:
|
|
br bb193
|
|
|
|
bb192:
|
|
|
|
%444 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%445 = apply %444() : $@convention(thin) () -> ()
|
|
br bb193
|
|
|
|
bb193:
|
|
%447 = struct_extract %238 : $Bool, #Bool._value
|
|
cond_br %447, bb195, bb194
|
|
|
|
bb194:
|
|
br bb196
|
|
|
|
bb195:
|
|
|
|
%450 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%451 = apply %450() : $@convention(thin) () -> ()
|
|
br bb196
|
|
|
|
bb196:
|
|
%453 = struct_extract %42 : $Bool, #Bool._value
|
|
cond_br %453, bb198, bb197
|
|
|
|
bb197:
|
|
br bb199
|
|
|
|
bb198:
|
|
|
|
%456 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%457 = apply %456() : $@convention(thin) () -> ()
|
|
br bb199
|
|
|
|
bb199:
|
|
%459 = struct_extract %258 : $Bool, #Bool._value
|
|
cond_br %459, bb201, bb200
|
|
|
|
bb200:
|
|
br bb202
|
|
|
|
bb201:
|
|
|
|
%462 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%463 = apply %462() : $@convention(thin) () -> ()
|
|
br bb202
|
|
|
|
bb202:
|
|
cond_br %45, bb204, bb203
|
|
|
|
bb203:
|
|
br bb205
|
|
|
|
bb204:
|
|
%467 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%468 = apply %467() : $@convention(thin) () -> ()
|
|
br bb205
|
|
|
|
bb205:
|
|
cond_br %47, bb207, bb206
|
|
|
|
bb206:
|
|
br bb208
|
|
|
|
bb207:
|
|
%472 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%473 = apply %472() : $@convention(thin) () -> ()
|
|
br bb208
|
|
|
|
bb208:
|
|
%475 = struct_extract %137 : $Bool, #Bool._value
|
|
cond_br %475, bb210, bb209
|
|
|
|
bb209:
|
|
br bb211
|
|
|
|
bb210:
|
|
%478 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%479 = apply %478() : $@convention(thin) () -> ()
|
|
br bb211
|
|
|
|
bb211:
|
|
%481 = struct_extract %151 : $Bool, #Bool._value
|
|
cond_br %481, bb213, bb212
|
|
|
|
bb212:
|
|
br bb214
|
|
|
|
bb213:
|
|
%484 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%485 = apply %484() : $@convention(thin) () -> ()
|
|
br bb214
|
|
|
|
bb214:
|
|
%487 = struct_extract %165 : $Bool, #Bool._value
|
|
cond_br %487, bb216, bb215
|
|
|
|
bb215:
|
|
br bb217
|
|
|
|
bb216:
|
|
%490 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%491 = apply %490() : $@convention(thin) () -> ()
|
|
br bb217
|
|
|
|
bb217:
|
|
cond_br %168, bb219, bb218
|
|
|
|
bb218:
|
|
br bb220
|
|
|
|
bb219:
|
|
%495 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%496 = apply %495() : $@convention(thin) () -> ()
|
|
br bb220
|
|
|
|
bb220:
|
|
cond_br %169, bb222, bb221
|
|
|
|
bb221:
|
|
br bb223
|
|
|
|
bb222:
|
|
%500 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%501 = apply %500() : $@convention(thin) () -> ()
|
|
br bb223
|
|
|
|
bb223:
|
|
cond_br %170, bb225, bb224
|
|
|
|
bb224:
|
|
br bb226
|
|
|
|
bb225:
|
|
%505 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%506 = apply %505() : $@convention(thin) () -> ()
|
|
br bb226
|
|
|
|
bb226:
|
|
%508 = struct_extract %64 : $Bool, #Bool._value
|
|
cond_br %508, bb228, bb227
|
|
|
|
bb227:
|
|
br bb229
|
|
|
|
bb228:
|
|
%511 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%512 = apply %511() : $@convention(thin) () -> ()
|
|
br bb229
|
|
|
|
bb229:
|
|
%514 = struct_extract %81 : $Bool, #Bool._value
|
|
cond_br %514, bb231, bb230
|
|
|
|
bb230:
|
|
br bb232
|
|
|
|
bb231:
|
|
%517 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%518 = apply %517() : $@convention(thin) () -> ()
|
|
br bb232
|
|
|
|
bb232:
|
|
%520 = struct_extract %98 : $Bool, #Bool._value
|
|
cond_br %520, bb234, bb233
|
|
|
|
bb233:
|
|
br bb235
|
|
|
|
bb234:
|
|
%523 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%524 = apply %523() : $@convention(thin) () -> ()
|
|
br bb235
|
|
|
|
bb235:
|
|
%526 = struct_extract %107 : $Bool, #Bool._value
|
|
cond_br %526, bb237, bb236
|
|
|
|
bb236:
|
|
br bb238
|
|
|
|
bb237:
|
|
%529 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%530 = apply %529() : $@convention(thin) () -> ()
|
|
br bb238
|
|
|
|
bb238:
|
|
%532 = struct_extract %115 : $Bool, #Bool._value
|
|
cond_br %532, bb240, bb239
|
|
|
|
bb239:
|
|
br bb241
|
|
|
|
bb240:
|
|
%535 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%536 = apply %535() : $@convention(thin) () -> ()
|
|
br bb241
|
|
|
|
bb241:
|
|
%538 = struct_extract %123 : $Bool, #Bool._value
|
|
cond_br %538, bb243, bb242
|
|
|
|
bb242:
|
|
br bb244
|
|
|
|
bb243:
|
|
%541 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%542 = apply %541() : $@convention(thin) () -> ()
|
|
br bb244
|
|
|
|
bb244:
|
|
%544 = struct_extract %192 : $Bool, #Bool._value
|
|
cond_br %544, bb246, bb245
|
|
|
|
bb245:
|
|
br bb247
|
|
|
|
bb246:
|
|
%547 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%548 = apply %547() : $@convention(thin) () -> ()
|
|
br bb247
|
|
|
|
bb247:
|
|
%550 = struct_extract %27 : $Bool, #Bool._value
|
|
cond_br %550, bb249, bb248
|
|
|
|
bb248:
|
|
br bb250
|
|
|
|
bb249:
|
|
%553 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%554 = apply %553() : $@convention(thin) () -> ()
|
|
br bb250
|
|
|
|
bb250:
|
|
%556 = struct_extract %278 : $Bool, #Bool._value
|
|
cond_br %556, bb252, bb251
|
|
|
|
bb251:
|
|
br bb253
|
|
|
|
bb252:
|
|
%559 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%560 = apply %559() : $@convention(thin) () -> ()
|
|
br bb253
|
|
|
|
bb253:
|
|
%562 = struct_extract %288 : $Bool, #Bool._value
|
|
cond_br %562, bb255, bb254
|
|
|
|
bb254:
|
|
br bb256
|
|
|
|
bb255:
|
|
%565 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%566 = apply %565() : $@convention(thin) () -> ()
|
|
br bb256
|
|
|
|
bb256:
|
|
%568 = struct_extract %311 : $Bool, #Bool._value
|
|
cond_br %568, bb258, bb257
|
|
|
|
bb257:
|
|
br bb259
|
|
|
|
bb258:
|
|
%571 = function_ref @do_something : $@convention(thin) () -> ()
|
|
%572 = apply %571() : $@convention(thin) () -> ()
|
|
br bb259
|
|
|
|
bb259:
|
|
%574 = tuple ()
|
|
return %574 : $()
|
|
}
|