Skip to content

Invalid CLIF created through optimizations #13006

@alexcrichton

Description

@alexcrichton

This is an accidental regression from #12948

this input:

Details
;;test interpret
test run
set opt_level=speed
set bb_padding_log2_minus_one=3
set regalloc_checker=true
set enable_nan_canonicalization=true
set enable_llvm_abi_extensions=true
set enable_multi_ret_implicit_sret=true
set machine_code_cfg_info=true
target x86_64 has_sse3 has_ssse3 has_cmpxchg16b has_sse41 has_sse42 has_avx has_avx2 has_fma has_popcnt has_bmi1 has_bmi2 has_lzcnt

function %a(i32x4, i16x8, f64, f32x4, i64x2, i128 sext, i32 sext, i64 sext, f32, i16 uext, i64x2, i16 uext, i32x4, i8 sext, i8x16, i8x16) -> i128 sext, i16x8, f64, f32x4, i16 uext, i128, i8 uext, i8 sext, f32x4, i8 sext, i64 sext, i8 sext, i8 uext, i32 sext, i8, i8 sext system_v {
    sig0 = (f32) -> f32 system_v
    sig1 = (f64) -> f64 system_v
    sig2 = (f32) -> f32 system_v
    sig3 = (f64) -> f64 system_v
    sig4 = (f32) -> f32 system_v
    sig5 = (f64) -> f64 system_v
    fn0 = %CeilF32 sig0
    fn1 = %CeilF64 sig1
    fn2 = %FloorF32 sig2
    fn3 = %FloorF64 sig3
    fn4 = %TruncF32 sig4
    fn5 = %TruncF64 sig5

block0(v0: i32x4, v1: i16x8, v2: f64, v3: f32x4, v4: i64x2, v5: i128, v6: i32, v7: i64, v8: f32, v9: i16, v10: i64x2, v11: i16, v12: i32x4, v13: i8, v14: i8x16, v15: i8x16):
    v195 -> v6
    v140 -> v7
    v182 -> v7
    v244 -> v7
    v223 -> v8
    v241 -> v10
    v208 -> v11
    v272 -> v12
    v227 -> v13
    v240 -> v13
    v236 -> v14
    v231 -> v15
    v94 = iconst.i8 0
    v95 = iconst.i16 0
    v96 = iconst.i32 0
    v97 = iconst.i64 0
    v98 = uextend.i128 v97  ; v97 = 0
    v99 = rotr v9, v7
    v100 = rotr v99, v7
    v101 = rotr v100, v7
    v102 = rotr v101, v7
    v103 = rotr v102, v7
    v104 = rotr v103, v7
    v105 = rotr v104, v7
    v106 = rotr v105, v7
    v107 = rotr v106, v7
    v108 = rotr v107, v7
    v109 = rotr v108, v7
    v110 = rotr v109, v7
    v111 = rotr v110, v7
    v112 = rotr v111, v7
    v113 = rotr v112, v7
    v114 = rotr v113, v7
    v115 = rotr v11, v7
    v116 = rotr v115, v7
    v117 = rotr v116, v7
    v118 = rotr v117, v7
    v119 = rotr v118, v7
    v120 = rotr v119, v7
    v121 = rotr v120, v7
    v122 = rotr v121, v7
    v123 = rotr v122, v7
    v124 = rotr v123, v7
    v125 = rotr v124, v7
    v126 = rotr v125, v7
    v127 = rotr v126, v7
    v128 = rotr v127, v7
    v129 = rotr v128, v7
    v130 = rotr v129, v7
    v131 = rotr v130, v7
    v132 = rotr v131, v7
    v133 = rotr v132, v7
    v134 = rotr v133, v7
    v135 = rotr v134, v7
    v136 = rotr v135, v7
    v137 = rotr v136, v7
    v138 = rotr v137, v7
    v139 -> v138
    jump block1(v4, v0, v1, v5, v2, v0, v0, v0, v0, v0, v0, v0, v0, v0, v3, v0)

block1(v16: i64x2, v17: i32x4, v18: i16x8, v19: i128, v20: f64, v21: i32x4, v22: i32x4, v23: i32x4, v24: i32x4, v25: i32x4, v26: i32x4, v27: i32x4, v28: i32x4, v29: i32x4, v30: f32x4, v31: i32x4):
    v259 -> v18
    v242 -> v19
    v273 -> v30
    v141 = rotr.i16 v139, v140
    v142 = rotr v141, v140
    v143 = rotr v142, v140
    v144 = rotr v143, v140
    v145 = rotr v144, v140
    v146 = rotr v145, v140
    v147 = rotr v146, v140
    v148 = rotr v147, v140
    v149 = rotr v148, v140
    v150 = rotr v149, v140
    v151 = rotr v150, v140
    v152 = rotr v151, v140
    v153 = rotr v152, v140
    v154 = rotr v153, v140
    v155 = rotr v154, v140
    v156 = rotr v155, v140
    v157 = rotr v156, v140
    v158 = rotr v157, v140
    v159 = rotr v158, v140
    v160 = rotr v159, v140
    v161 = rotr v160, v140
    v162 = rotr v161, v140
    v163 = rotr v162, v140
    v164 = rotr v163, v140
    v165 = select v164, v16, v16
    v197 -> v165
    v166 = rotr v164, v140
    v167 = rotr v166, v140
    v168 = rotr v167, v140
    v169 = rotr v168, v140
    v170 = rotr v169, v140
    v171 = rotr v170, v140
    v172 = rotr v171, v140
    v173 = rotr v172, v140
    v174 = rotr v173, v140
    v175 = rotr v174, v140
    v176 = rotr v175, v140
    v177 = rotr v176, v140
    v178 = rotr v177, v140
    v179 = rotr v178, v140
    v180 = rotr v179, v140
    v181 -> v180
    jump block2(v20, v20, v20, v20, v20, v20, v20, v20, v20, v20)

block2(v32: f64, v33: f64, v34: f64, v35: f64, v36: f64, v37: f64, v38: f64, v39: f64, v40: f64, v41: f64):
    v183 = rotr.i16 v181, v182
    v184 = rotr v183, v182
    v185 = rotr v184, v182
    v186 = rotr v185, v182
    v187 = rotr v186, v182
    v188 = rotr v187, v182
    v189 = rotr v188, v182
    v190 = rotr v189, v182
    v191 = rotr v190, v182
    v192 = rotr v191, v182
    v193 = rotr v192, v182
    v194 = rotr v193, v182
    v196 = bor_not.i32 v195, v195
    v510 -> v196
    v532 -> v196
    v533 -> v196
    v544 -> v196
    v198 = isub.i64x2 v197, v197
    v255 -> v198
    v199 = rotr v194, v182
    v200 = rotr v199, v182
    v201 = rotr v200, v182
    v202 = rotr v201, v182
    v203 = rotr v202, v182
    v204 = rotr v203, v182
    v205 = rotr v204, v182
    v206 = rotr v205, v182
    v207 = rotr v206, v182
    v209 = select_spectre_guard.i16 v196, v208, v208
    v210 = select_spectre_guard v196, v209, v209
    v211 = select_spectre_guard v196, v210, v210
    v212 = select_spectre_guard v196, v211, v211
    v213 = select_spectre_guard v196, v212, v212
    v214 = select_spectre_guard v196, v213, v213
    v215 = select_spectre_guard v196, v214, v214
    v216 = select_spectre_guard v196, v215, v215
    v217 = select_spectre_guard v196, v216, v216
    v218 = select_spectre_guard v196, v217, v217
    v219 = select_spectre_guard v196, v218, v218
    v220 = select_spectre_guard v196, v219, v219
    v221 = select_spectre_guard v196, v220, v220
    v222 = select_spectre_guard v196, v221, v221
    v224 = call fn0(v223)
    v261 -> v224
    v225 = sshr v222, v222
    v226 = sshr v225, v225
    brif.i8 v227, block3(v41, v41, v225, v41, v41, v41, v41, v41, v41, v41), block6(v224, v182, v18, v226, v227, v225, v198, v19, v41, v30)

block3(v42: f64, v43: f64, v44: i16, v45: f64, v46: f64, v47: f64, v48: f64, v49: f64, v50: f64, v51: f64):
    v228 = sshr v44, v44
    v229 = sshr v228, v228
    v230 = sshr v229, v229
    v274 -> v230
    v232 = band_not.i8x16 v231, v231
    v233 = band_not v232, v232
    v234 = band_not v233, v233
    v235 = band_not v234, v234
    v237 = band_not.i8x16 v236, v236
    v238 = band_not v237, v237
    v239 = band_not v238, v238
    jump block4(v51, v51, v51, v240, v240, v241, v230, v239, v239, v239)

block4(v52: f64, v53: f64, v54: f64, v55: i8, v56: i8, v57: i64x2, v58: i16, v59: i8x16, v60: i8x16, v61: i8x16):
    v243 = bmask.i8 v242
    v245 = select_spectre_guard v244, v58, v58
    v246 = bmask.i8 v242
    v247 = bmask.i8 v242
    v248 = bmask.i8 v242
    v249 = bmask.i8 v242
    v250 = uextend.i128 v245
    v251 = band_not v54, v54
    v252 = band_not v251, v251
    v253 = band_not v252, v252
    v254 = band_not v253, v253
    v256 = sshr.i64x2 v255, v244
    v257 = band_not v254, v254
    v258 = band_not v257, v257
    v260 = vany_true.i16x8 v259
    v262 = func_addr.i64 fn0
    v263 = call_indirect sig0, v262(v261)
    v264 = select v244, v57, v256
    v265 = func_addr.i64 fn0
    v266 = call_indirect sig0, v265(v263)
    v267 = select v244, v264, v256
    v268 = func_addr.i64 fn0
    v269 = call_indirect sig0, v268(v266)
    v275 -> v269
    v270 = select v244, v267, v256
    v545 = fcmp ne v258, v258
    v546 = f64const -0x1.0000000000000p0
    v547 = f64const 0x1.0000000000000p64
    v548 = fcmp le v258, v546  ; v546 = -0x1.0000000000000p0
    v549 = fcmp ge v258, v547  ; v547 = 0x1.0000000000000p64
    v550 = bor v548, v549
    v551 = bor v545, v550
    v552 = f64const 0x1.0000000000000p0
    v553 = select v551, v552, v258  ; v552 = 0x1.0000000000000p0
    v271 = fcvt_to_uint.i64 v553
    jump block5(v60, v61, v60, v61, v272, v273, v273, v256, v259, v259, v259, v259, v259, v274, v259, v250)

block5(v62: i8x16, v63: i8x16, v64: i8x16, v65: i8x16, v66: i32x4, v67: f32x4, v68: f32x4, v69: i64x2, v70: i16x8, v71: i16x8, v72: i16x8, v73: i16x8, v74: i16x8, v75: i16, v76: i16x8, v77: i128):
    v276 = func_addr.i64 fn0
    v277 = call_indirect sig0, v276(v275)
    v278 = iconst.i64 0x00fa_0000_7300_0092
    v279 = iconst.i64 0x3138_3835_3404_0402
    v280 = iconcat v278, v279  ; v278 = 0x00fa_0000_7300_0092, v279 = 0x3138_3835_3404_0402
    v281 = icmp uge v77, v280
    brif v281, block11, block10

block11:
    v282 = iconst.i64 0x0100_0000_003e_0100
    v283 = iconst.i64 -7451204483956080384
    v284 = iconcat v282, v283  ; v282 = 0x0100_0000_003e_0100, v283 = -7451204483956080384
    v285 = icmp.i128 uge v77, v284
    brif v285, block13, block12

block13:
    v286 = iconst.i64 -3617009525824946176
    v287 = iconst.i64 -3617008641903833820
    v288 = iconcat v286, v287  ; v286 = -3617009525824946176, v287 = -3617008641903833820
    v289 = icmp.i128 uge v77, v288
    brif v289, block15, block14

block15:
    v290 = iconst.i64 0x0707_0707_0707_0707
    v291 = iconst.i64 -2232933263481567481
    v292 = iconcat v290, v291  ; v290 = 0x0707_0707_0707_0707, v291 = -2232933263481567481
    v293 = icmp.i128 uge v77, v292
    brif v293, block17, block16

block17:
    v294 = iconst.i64 -2170205185142300191
    v295 = iconst.i64 -2173864359839538719
    v296 = iconcat v294, v295  ; v294 = -2170205185142300191, v295 = -2173864359839538719
    v297 = icmp.i128 eq v77, v296
    brif v297, block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block18

block18:
    v298 = iconst.i64 0x0707_0707_0707_0707
    v299 = iconst.i64 -2232933263481567481
    v300 = iconcat v298, v299  ; v298 = 0x0707_0707_0707_0707, v299 = -2232933263481567481
    v301 = icmp.i128 eq v77, v300
    brif v301, block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)

block16:
    v302 = iconst.i64 -3617008643992366767
    v303 = iconst.i64 -3616973457531744819
    v304 = iconcat v302, v303  ; v302 = -3617008643992366767, v303 = -3616973457531744819
    v305 = icmp.i128 eq v77, v304
    brif v305, block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block19

block19:
    v306 = iconst.i64 -3617009525824946176
    v307 = iconst.i64 -3617008641903833820
    v308 = iconcat v306, v307  ; v306 = -3617009525824946176, v307 = -3617008641903833820
    v309 = icmp.i128 uge v77, v308
    brif v309, block20, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)

block20:
    v310 = iconst.i64 -3617009525824946176
    v311 = iconst.i64 -3617008641903833820
    v312 = iconcat v310, v311  ; v310 = -3617009525824946176, v311 = -3617008641903833820
    v313 = isub.i128 v77, v312
    v314 = icmp_imm ugt v313, 0xffff_ffff
    brif v314, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block21

block21:
    v315 = ireduce.i32 v313
    br_table v315, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), [block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)]

block14:
    v316 = iconst.i64 -6148888302957450582
    v317 = iconst.i64 -6148914691236517206
    v318 = iconcat v316, v317  ; v316 = -6148888302957450582, v317 = -6148914691236517206
    v319 = icmp.i128 uge v77, v318
    brif v319, block23, block22

block23:
    v320 = iconst.i64 -6148888302957450582
    v321 = iconst.i64 -6148914691236517206
    v322 = iconcat v320, v321  ; v320 = -6148888302957450582, v321 = -6148914691236517206
    v323 = isub.i128 v77, v322
    v324 = icmp_imm ugt v323, 0xffff_ffff
    brif v324, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block24

block24:
    v325 = ireduce.i32 v323
    br_table v325, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), [block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)]

block22:
    v326 = iconst.i64 -6148914691236517206
    v327 = iconst.i64 -6148914691236517206
    v328 = iconcat v326, v327  ; v326 = -6148914691236517206, v327 = -6148914691236517206
    v329 = icmp.i128 uge v77, v328
    brif v329, block26, block25

block26:
    v330 = iconst.i64 -6148914691236517206
    v331 = iconst.i64 -6148914691236517206
    v332 = iconcat v330, v331  ; v330 = -6148914691236517206, v331 = -6148914691236517206
    v333 = isub.i128 v77, v332
    v334 = icmp_imm ugt v333, 0xffff_ffff
    brif v334, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block27

block27:
    v335 = ireduce.i32 v333
    br_table v335, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), [block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271)]

block25:
    v336 = iconst.i64 0x0100_0000_003e_0100
    v337 = iconst.i64 -7451204483956080384
    v338 = iconcat v336, v337  ; v336 = 0x0100_0000_003e_0100, v337 = -7451204483956080384
    v339 = icmp.i128 eq v77, v338
    brif v339, block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)

block12:
    v340 = iconst.i64 0x5151_5151_5151_5151
    v341 = iconst.i64 0x5151_5151_5151_5151
    v342 = iconcat v340, v341  ; v340 = 0x5151_5151_5151_5151, v341 = 0x5151_5151_5151_5151
    v343 = icmp.i128 uge v77, v342
    brif v343, block29, block28

block29:
    v344 = iconst.i64 0x639d_929c_f700_fa00
    v345 = iconst.i64 0x6363_6363_6363_6363
    v346 = iconcat v344, v345  ; v344 = 0x639d_929c_f700_fa00, v345 = 0x6363_6363_6363_6363
    v347 = icmp.i128 uge v77, v346
    brif v347, block31, block30

block31:
    v348 = iconst.i64 -8391460049216894069
    v349 = iconst.i64 -8391460049216894069
    v350 = iconcat v348, v349  ; v348 = -8391460049216894069, v349 = -8391460049216894069
    v351 = icmp.i128 eq v77, v350
    brif v351, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block32

block32:
    v352 = iconst.i64 0x639d_929c_f700_fa00
    v353 = iconst.i64 0x6363_6363_6363_6363
    v354 = iconcat v352, v353  ; v352 = 0x639d_929c_f700_fa00, v353 = 0x6363_6363_6363_6363
    v355 = icmp.i128 uge v77, v354
    brif v355, block33, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)

block33:
    v356 = iconst.i64 0x639d_929c_f700_fa00
    v357 = iconst.i64 0x6363_6363_6363_6363
    v358 = iconcat v356, v357  ; v356 = 0x639d_929c_f700_fa00, v357 = 0x6363_6363_6363_6363
    v359 = isub.i128 v77, v358
    v360 = icmp_imm ugt v359, 0xffff_ffff
    brif v360, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block34

block34:
    v361 = ireduce.i32 v359
    br_table v361, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), [block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)]

block30:
    v362 = iconst.i64 0x6363_6363_6363_6363
    v363 = iconst.i64 0x6363_6363_6363_6363
    v364 = iconcat v362, v363  ; v362 = 0x6363_6363_6363_6363, v363 = 0x6363_6363_6363_6363
    v365 = icmp.i128 eq v77, v364
    brif v365, block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block35

block35:
    v366 = iconst.i64 0x5151_5151_5151_5151
    v367 = iconst.i64 0x5151_5151_5151_5151
    v368 = iconcat v366, v367  ; v366 = 0x5151_5151_5151_5151, v367 = 0x5151_5151_5151_5151
    v369 = icmp.i128 eq v77, v368
    brif v369, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)

block28:
    v370 = iconst.i64 0x0707_0707_0707_0707
    v371 = iconst.i64 0x3e3e_0707_0707_0707
    v372 = iconcat v370, v371  ; v370 = 0x0707_0707_0707_0707, v371 = 0x3e3e_0707_0707_0707
    v373 = icmp.i128 eq v77, v372
    brif v373, block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block36

block36:
    v374 = iconst.i64 0x5151_5151_5151_1151
    v375 = iconst.i64 0x3251_5151_5151_5151
    v376 = iconcat v374, v375  ; v374 = 0x5151_5151_5151_1151, v375 = 0x3251_5151_5151_5151
    v377 = icmp.i128 eq v77, v376
    brif v377, block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block37

block37:
    v378 = iconst.i64 0x00fa_0000_7300_0092
    v379 = iconst.i64 0x3138_3835_3404_0402
    v380 = iconcat v378, v379  ; v378 = 0x00fa_0000_7300_0092, v379 = 0x3138_3835_3404_0402
    v381 = icmp.i128 uge v77, v380
    brif v381, block38, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)

block38:
    v382 = iconst.i64 0x00fa_0000_7300_0092
    v383 = iconst.i64 0x3138_3835_3404_0402
    v384 = iconcat v382, v383  ; v382 = 0x00fa_0000_7300_0092, v383 = 0x3138_3835_3404_0402
    v385 = isub.i128 v77, v384
    v386 = icmp_imm ugt v385, 0xffff_ffff
    brif v386, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block39

block39:
    v387 = ireduce.i32 v385
    br_table v387, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), [block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)]

block10:
    v388 = iconst.i64 -7451037803868302184
    v389 = iconst.i64 0x0002_0000_2000_00f7
    v390 = iconcat v388, v389  ; v388 = -7451037803868302184, v389 = 0x0002_0000_2000_00f7
    v391 = icmp.i128 uge v77, v390
    brif v391, block41, block40

block41:
    v392 = iconst.i64 -238598100090880
    v393 = iconst.i64 0x0100_01f3_a080_4949
    v394 = iconcat v392, v393  ; v392 = -238598100090880, v393 = 0x0100_01f3_a080_4949
    v395 = icmp.i128 uge v77, v394
    brif v395, block43, block42

block43:
    v396 = iconst.i64 0x0707_07e1_e1e1_e1e1
    v397 = iconst.i64 0x0707_0707_0707_0707
    v398 = iconcat v396, v397  ; v396 = 0x0707_07e1_e1e1_e1e1, v397 = 0x0707_0707_0707_0707
    v399 = icmp.i128 uge v77, v398
    brif v399, block45, block44

block45:
    v400 = iconst.i64 -8038814278809223168
    v401 = iconst.i64 0x3104_0002_00fa_ff60
    v402 = iconcat v400, v401  ; v400 = -8038814278809223168, v401 = 0x3104_0002_00fa_ff60
    v403 = icmp.i128 uge v77, v402
    brif v403, block47, block46

block47:
    v404 = iconst.i64 -8038814278809223168
    v405 = iconst.i64 0x3104_0002_00fa_ff60
    v406 = iconcat v404, v405  ; v404 = -8038814278809223168, v405 = 0x3104_0002_00fa_ff60
    v407 = isub.i128 v77, v406
    v408 = icmp_imm ugt v407, 0xffff_ffff
    brif v408, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block48

block48:
    v409 = ireduce.i32 v407
    br_table v409, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), [block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)]

block46:
    v410 = iconst.i64 0x0707_07e1_e1e1_e1e1
    v411 = iconst.i64 0x0707_0707_0707_0707
    v412 = iconcat v410, v411  ; v410 = 0x0707_07e1_e1e1_e1e1, v411 = 0x0707_0707_0707_0707
    v413 = icmp.i128 eq v77, v412
    brif v413, block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)

block44:
    v414 = iconst.i64 0x0707_0707_0707_0707
    v415 = iconst.i64 0x0707_0707_0707_0707
    v416 = iconcat v414, v415  ; v414 = 0x0707_0707_0707_0707, v415 = 0x0707_0707_0707_0707
    v417 = icmp.i128 eq v77, v416
    brif v417, block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block49

block49:
    v418 = iconst.i64 -238598100090880
    v419 = iconst.i64 0x0100_01f3_a080_4949
    v420 = iconcat v418, v419  ; v418 = -238598100090880, v419 = 0x0100_01f3_a080_4949
    v421 = icmp.i128 uge v77, v420
    brif v421, block50, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)

block50:
    v422 = iconst.i64 -238598100090880
    v423 = iconst.i64 0x0100_01f3_a080_4949
    v424 = iconcat v422, v423  ; v422 = -238598100090880, v423 = 0x0100_01f3_a080_4949
    v425 = isub.i128 v77, v424
    v426 = icmp_imm ugt v425, 0xffff_ffff
    brif v426, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block51

block51:
    v427 = ireduce.i32 v425
    br_table v427, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), [block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)]

block42:
    v428 = iconst.i64 0x0100_0100_0100_4100
    v429 = iconst.i64 0x0100_0100_0100_0100
    v430 = iconcat v428, v429  ; v428 = 0x0100_0100_0100_4100, v429 = 0x0100_0100_0100_0100
    v431 = icmp.i128 eq v77, v430
    brif v431, block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block52

block52:
    v432 = iconst.i64 0x0100_0100_0100_0100
    v433 = iconst.i64 0x0100_0100_0100_0100
    v434 = iconcat v432, v433  ; v432 = 0x0100_0100_0100_0100, v433 = 0x0100_0100_0100_0100
    v435 = icmp.i128 eq v77, v434
    brif v435, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block53

block53:
    v436 = iconst.i64 -7451037803868302184
    v437 = iconst.i64 0x0002_0000_2000_00f7
    v438 = iconcat v436, v437  ; v436 = -7451037803868302184, v437 = 0x0002_0000_2000_00f7
    v439 = icmp.i128 uge v77, v438
    brif v439, block54, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)

block54:
    v440 = iconst.i64 -7451037803868302184
    v441 = iconst.i64 0x0002_0000_2000_00f7
    v442 = iconcat v440, v441  ; v440 = -7451037803868302184, v441 = 0x0002_0000_2000_00f7
    v443 = isub.i128 v77, v442
    v444 = icmp_imm ugt v443, 0xffff_ffff
    brif v444, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block55

block55:
    v445 = ireduce.i32 v443
    br_table v445, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), [block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)]

block40:
    v446 = iconst.i64 -8391460049216894069
    v447 = iconst.i64 0x8b8b_8b8b_8b8b
    v448 = iconcat v446, v447  ; v446 = -8391460049216894069, v447 = 0x8b8b_8b8b_8b8b
    v449 = icmp.i128 uge v77, v448
    brif v449, block57, block56

block57:
    v450 = iconst.i64 0x6c54_9898_9898_9898
    v451 = iconst.i64 0xf798_9898_983c
    v452 = iconcat v450, v451  ; v450 = 0x6c54_9898_9898_9898, v451 = 0xf798_9898_983c
    v453 = icmp.i128 uge v77, v452
    brif v453, block59, block58

block59:
    v454 = iconst.i64 0x0001_0001_0001_0001
    v455 = iconst.i64 0x0001_0001_0001_0001
    v456 = iconcat v454, v455  ; v454 = 0x0001_0001_0001_0001, v455 = 0x0001_0001_0001_0001
    v457 = icmp.i128 uge v77, v456
    brif v457, block61, block60

block61:
    v458 = iconst.i64 0x0001_0001_0001_0001
    v459 = iconst.i64 0x0001_0001_0001_0001
    v460 = iconcat v458, v459  ; v458 = 0x0001_0001_0001_0001, v459 = 0x0001_0001_0001_0001
    v461 = isub.i128 v77, v460
    v462 = icmp_imm ugt v461, 0xffff_ffff
    brif v462, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block62

block62:
    v463 = ireduce.i32 v461
    br_table v463, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), [block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)]

block60:
    v464 = iconst.i64 0x6c54_9898_9898_9898
    v465 = iconst.i64 0xf798_9898_983c
    v466 = iconcat v464, v465  ; v464 = 0x6c54_9898_9898_9898, v465 = 0xf798_9898_983c
    v467 = icmp.i128 uge v77, v466
    brif v467, block63, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)

block63:
    v468 = iconst.i64 0x6c54_9898_9898_9898
    v469 = iconst.i64 0xf798_9898_983c
    v470 = iconcat v468, v469  ; v468 = 0x6c54_9898_9898_9898, v469 = 0xf798_9898_983c
    v471 = isub.i128 v77, v470
    v472 = icmp_imm ugt v471, 0xffff_ffff
    brif v472, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block64

block64:
    v473 = ireduce.i32 v471
    br_table v473, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), [block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)]

block58:
    v474 = iconst.i64 -3616991718155629107
    v475 = iconst.i64 0xcdcd_cdcd_cdcd
    v476 = iconcat v474, v475  ; v474 = -3616991718155629107, v475 = 0xcdcd_cdcd_cdcd
    v477 = icmp.i128 eq v77, v476
    brif v477, block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block65

block65:
    v478 = iconst.i64 -8391460049216894069
    v479 = iconst.i64 0x8b8b_8b8b_8b8b
    v480 = iconcat v478, v479  ; v478 = -8391460049216894069, v479 = 0x8b8b_8b8b_8b8b
    v481 = icmp.i128 eq v77, v480
    brif v481, block8(v277, v260, v274, v76, v256, v77, v258, v68, v271), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)

block56:
    v482 = iconst.i64 0xf798_9898_983c
    v483 = iconst.i64 0x0200_0020
    v484 = iconcat v482, v483  ; v482 = 0xf798_9898_983c, v483 = 0x0200_0020
    v485 = icmp.i128 uge v77, v484
    brif v485, block67, block66

block67:
    v486 = iconst.i64 0xf798_9898_983c
    v487 = iconst.i64 0x0200_0020
    v488 = iconcat v486, v487  ; v486 = 0xf798_9898_983c, v487 = 0x0200_0020
    v489 = isub.i128 v77, v488
    v490 = icmp_imm ugt v489, 0xffff_ffff
    brif v490, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block68

block68:
    v491 = ireduce.i32 v489
    br_table v491, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), [block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block8(v277, v260, v274, v76, v256, v77, v258, v68, v271)]

block66:
    v492 = iconst.i64 -6148914691236517206
    v493 = iconst.i64 0
    v494 = iconcat v492, v493  ; v492 = -6148914691236517206, v493 = 0
    v495 = icmp.i128 uge v77, v494
    brif v495, block70, block69

block70:
    v496 = iadd_imm.i128 v77, 0x5555_5555_5555_5556
    v497 = icmp_imm ugt v496, 0xffff_ffff
    brif v497, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block71

block71:
    v498 = ireduce.i32 v496
    br_table v498, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), [block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)]

block69:
    v499 = icmp_imm.i128 ugt v77, 0xffff_ffff
    brif v499, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block72

block72:
    v500 = ireduce.i32 v77
    br_table v500, block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), [block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68), block6(v277, v271, v76, v75, v260, v274, v256, v77, v258, v68)]

block6(v501: f32, v504: i64, v505: i16x8, v506: i16, v534: i8, v535: i16, v536: i64x2, v538: i128, v540: f64, v542: f32x4) cold:
    v502 = func_addr.i64 fn0
    v503 = call_indirect sig0, v502(v501)
    v507 -> v503
    brif v506, block7(v504, v504, v504, v504, v504, v505, v505), block8(v503, v534, v535, v505, v536, v538, v540, v542, v504)

block7(v78: i64, v79: i64, v80: i64, v81: i64, v82: i64, v83: i16x8, v84: i16x8) cold:
    v508 = func_addr.i64 fn0
    v509 = call_indirect sig0, v508(v507)
    v511 = icmp_imm.i32 uge v510, 0x0707_07f6
    brif v511, block74, block73

block74:
    v512 = icmp_imm.i32 eq v510, -505290271
    brif v512, block8(v509, v534, v535, v84, v536, v538, v540, v542, v82), block75

block75:
    v513 = icmp_imm.i32 uge v510, 0x0707_07f6
    brif v513, block76, block8(v509, v534, v535, v84, v536, v538, v540, v542, v82)

block76:
    v514 = iadd_imm.i32 v510, -117901302
    br_table v514, block8(v509, v534, v535, v84, v536, v538, v540, v542, v82), [block8(v509, v534, v535, v84, v536, v538, v540, v542, v82), block8(v509, v534, v535, v84, v536, v538, v540, v542, v82), block8(v509, v534, v535, v84, v536, v538, v540, v542, v82), block8(v509, v534, v535, v84, v536, v538, v540, v542, v82), block8(v509, v534, v535, v84, v536, v538, v540, v542, v82), block8(v509, v534, v535, v84, v536, v538, v540, v542, v82), block8(v509, v534, v535, v84, v536, v538, v540, v542, v82), block8(v509, v534, v535, v84, v536, v538, v540, v542, v82), block8(v509, v534, v535, v84, v536, v538, v540, v542, v82)]

block73:
    v515 = icmp_imm.i32 eq v510, 0x0707_0707
    brif v515, block8(v509, v534, v535, v84, v536, v538, v540, v542, v82), block77

block77:
    v516 = icmp_imm.i32 uge v510, 15
    brif v516, block78, block8(v509, v534, v535, v84, v536, v538, v540, v542, v82)

block78:
    v517 = iadd_imm.i32 v510, -15
    br_table v517, block8(v509, v534, v535, v84, v536, v538, v540, v542, v82), [block8(v509, v534, v535, v84, v536, v538, v540, v542, v82), block8(v509, v534, v535, v84, v536, v538, v540, v542, v82)]

block8(v518: f32, v521: i8, v522: i16, v523: i16x8, v524: i64x2, v537: i128, v539: f64, v541: f32x4, v543: i64) cold:
    v528 -> v537
    v529 -> v539
    v530 -> v541
    v531 -> v543
    v519 = func_addr.i64 fn0
    v520 = call_indirect sig0, v519(v518)
    v525 -> v520
    jump block9(v521, v521, v521, v521, v521, v521, v522, v523, v524)

block9(v85: i8, v86: i8, v87: i8, v88: i8, v89: i8, v90: i8, v91: i16, v92: i16x8, v93: i64x2) cold:
    v526 = func_addr.i64 fn0
    v527 = call_indirect sig0, v526(v525)
    return v528, v92, v529, v530, v91, v528, v90, v90, v530, v90, v531, v90, v90, v532, v90, v90
}


; Note: the results in the below test cases are simply a placeholder and probably will be wrong

; run: %a(0x0200000000009200000000000dff26ff, 0x989898546c3c98989898f70000200000, -0x1.8989898989898p-630, 0x00043173547098989898989898989898, 0x6cfefe00003d400165709060fffa0002, -113427455640312821154491542387271897004, -1431655766, -6148914691236517206, -0x1.555554p-42, -21846, 0x000000000000000000aaaaaaaaaaaaaa, 0, 0x00000000000000000000000000000000, 0, 0x00000000000000000000000000000000, 0xaaaaaaaaaaaaaaaaaaaaaa0000000000) == [0, 0x00000000000000000000000000000000, 0.0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0, 0, 0]
; run: %a(0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, 0xaaaaaaaaaac2aaaaaaaaaaaaaaaaaaaa, -0x1.aaaaaaaaaaaaap-341, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -113427455640312821154458202477256070486, -1431655766, -6148914691236517206, -0x1.555554p-42, -21846, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -21846, 0x54aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -11, 0x31353930373337303434373634343831, 0x00920000730000fa0002040434353838) == [0, 0x00000000000000000000000000000000, 0.0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0, 0, 0]
; run: %a(0x3c98989898f700002000000200000000, 0x0018989898989898989898989898546c, 0x1.8989898980000p778, 0x0707073e3e3e3e3e3e3e3e04302d5354, 0x07070707070707070707070707070707, 9341084582143408800955381380479911687, 117901063, -2170445818651801849, -0x1.c3c3c2p68, -7711, 0xe1e1e1e1e1e1e1e1e1e1e1e1e1e1e1d4, -7711, 0x07070707070707070707070707070703, 7, 0x07070707070707070707070707070707, 0x0707070707f8f6070707070707070707) == [0, 0x00000000000000000000000000000000, 0.0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0, 0, 0]
; run: %a(0x0000000000000f000000e1e1e1e1e1e1, 0xaaaaaaaaaaaaaaaaaaaaaaaa3e000000, -0x1.aaaaaaaaaaaaap-341, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -113427455640312821154458202477256070486, -1431655766, -6170588264443237718, -0x1.555554p-42, -21846, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -21846, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -86, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) == [0, 0x00000000000000000000000000000000, 0.0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0, 0, 0]
; run: %a(0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -0x1.aaaaaaaaaaaaap-341, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -113427455640312821154458202477256070486, -1431655766, -6148914691236517206, -0x1.555554p-42, -21846, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -21846, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, 30, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) == [0, 0x00000000000000000000000000000000, 0.0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0, 0, 0]
; run: %a(0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -0x1.aaaaaaaaaaaaap-341, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -113427462398536980623170468220299990358, -1431655766, -6148914691236517206, -0x1.555554p-42, -21846, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -21846, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -86, 0xaaaaaaaaaaaaaaaaaaaaaaaa8daaaaaa, 0x515151515151aaaaaaaaaaaaaaaaaaaa) == [0, 0x00000000000000000000000000000000, 0.0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0, 0, 0]
; run: %a(0x51515151515151515151515151515151, 0xaa515151515151515151515151515151, -0x1.aaaaaaaaaaaaap-341, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -113427455640312821154458202477256070486, -1431655766, -6148914691236517206, -0x1.555554p-42, -21846, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -21846, 0xaaaaaae9aaaaaaaaaaaaaaaaaaaaaaaa, -86, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) == [0, 0x00000000000000000000000000000000, 0.0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0, 0, 0]
; run: %a(0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -0x1.aaaaaaaaaaaaap-341, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -113427455640312821154458202477256070486, -1431655766, -6148914691236517206, -0x1.555554p-42, -21846, 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, -21846, 0x0100010001000100010001000100d6aa, 0, 0xaaaaaaaaaaaaaaaaaaaad60001002c01, 0x00000001d60000aaaaaaaaaaaaaaaaaa) == [0, 0x00000000000000000000000000000000, 0.0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0, 0, 0]
; run: %a(0x00000000000000000000000000000000, 0x00000000000000000000000000000000, 0.0, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000, 0, 0, 0, 0.0, 0, 0x00000000000000000000000000000000, 0, 0x00000000000000000000000000000000, 0, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000) == [0, 0x00000000000000000000000000000000, 0.0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0x00000000000000000000000000000000, 0, 0, 0, 0, 0, 0, 0]

generates:

$ cargo run test ../foo.clif
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.07s
     Running `/home/alex/code/wasmtime/target/debug/clif-util test ../foo.clif`
[2026-04-09T14:51:21Z ERROR cranelift_filetests::concurrent] FAIL: Compilation error: Verifier errors
FAIL ../foo.clif: Compilation error: Verifier errors

Caused by:
    0: Verifier errors
    1: - inst6035 (v8301 = iadd.i32 v230, v8300  ; v8300 = 0x5555_5555_5555_5556): arg 0 (v230) has type i16, expected i32
       - inst6035 (v8301 = iadd.i32 v230, v8300  ; v8300 = 0x5555_5555_5555_5556): arg 1 (v8300) has type i64, expected i32

1 tests
Error: 1 failure

I'll note that this is the raw fuzzer output and is unminimized, it's probably much simpler than this large input.

cc @myunbin

Metadata

Metadata

Assignees

No one assigned

    Labels

    fuzz-bugBugs found by a fuzzer

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions