Skip to content

Instantly share code, notes, and snippets.

@karolherbst
Created June 10, 2023 13:26
Show Gist options
  • Save karolherbst/914873135f0637c70149d054322aca7e to your computer and use it in GitHub Desktop.
Save karolherbst/914873135f0637c70149d054322aca7e to your computer and use it in GitHub Desktop.
$ CL_WIMPY_MODE=1 LD_PRELOAD=/usr/lib64/libasan.so.8.0.0 AMD_DEBUG=cs,nir,llvm,asm MESA_SHADER_CACHE_DISABLE=1 RUSTICL_ENABLE=radeonsi run_local_mesa ../OpenCL-CTS/build/test_conformance/integer_ops/test_integer_ops integer_mad_sat
Initializing random seed to 0.
Requesting Default device based on command line for platform index 0 and device index 0
Compute Device Name = AMD Radeon RX 6700 XT (navi22, LLVM 15.0.6, DRM 3.52, 6.3.5-200.fc38.x86_64), Compute Device Vendor = AMD, Compute Device Version = OpenCL 3.0 , CL C Version = OpenCL C 1.2
Device latest conformance version passed: v0000-01-01-00
Supports single precision denormals: NO
sizeof( void*) = 8 (host)
sizeof( void*) = 8 (device)
integer_mad_sat...
shader: MESA_SHADER_KERNEL
source_sha1: {0xb5cfec13, 0x8c7db6d4, 0xa5530025, 0xc4d0316c, 0xb3130a16}
workgroup-size: 0, 0, 0 (variable)
shared-size: 0
stage: 14
next_stage: 0
num_ubos: 1
system_values_read: 0x00000000'00002420'00000000
float_controls_execution_mode: 0x0011
subgroup_size: 0
divergence_analysis_run: true
bit_sizes_int: 0x61
first_ubo_is_default_ubo: true
flrp_lowered: true
io_lowered: true
writes_memory: true
Unhandled stage 14
inputs: 0
outputs: 0
uniforms: 64
decl_var ubo INTERP_MODE_NONE uint8_t[64] kernel_input (0, 0, 0)
decl_function __wrapped_sample_test (0 params)
impl __wrapped_sample_test {
block block_0:
/* preds: */
vec1 64 div ssa_0 = load_const (0x0000000000000000 = 0.000000)
vec1 32 div ssa_1 = load_const (0x00000000 = 0.000000)
vec1 32 div ssa_2 = intrinsic load_scalar_arg_amd () (base=2, arg_upper_bound_u32_amd=0)
vec1 32 div ssa_3 = load_const (0x00008000 = 0.000000)
vec1 32 div ssa_4 = load_const (0x31016fac = 0.000000)
vec1 32 div ssa_5 = load_const (0x00000400 = 0.000000)
vec4 32 div ssa_6 = vec4 ssa_2, ssa_3, ssa_5, ssa_4
vec1 64 div ssa_7 = intrinsic load_ubo (ssa_6, ssa_1) (access=0, align_mul=256, align_offset=0, range_base=0, range=64)
vec1 32 div ssa_8 = load_const (0x00000008 = 0.000000)
vec1 64 div ssa_9 = intrinsic load_ubo (ssa_6, ssa_8) (access=0, align_mul=256, align_offset=8, range_base=0, range=64)
vec1 32 div ssa_10 = load_const (0x00000010 = 0.000000)
vec1 64 div ssa_11 = intrinsic load_ubo (ssa_6, ssa_10) (access=0, align_mul=256, align_offset=16, range_base=0, range=64)
vec1 32 div ssa_12 = load_const (0x00000018 = 0.000000)
vec1 64 div ssa_13 = intrinsic load_ubo (ssa_6, ssa_12) (access=0, align_mul=256, align_offset=24, range_base=0, range=64)
vec1 32 div ssa_14 = load_const (0x00000020 = 0.000000)
vec3 64 div ssa_15 = intrinsic load_ubo (ssa_6, ssa_14) (access=0, align_mul=256, align_offset=32, range_base=0, range=64)
vec1 32 div ssa_16 = intrinsic load_scalar_arg_amd () (base=4, arg_upper_bound_u32_amd=0)
vec1 32 div ssa_17 = load_const (0x000003ff = 0.000000)
vec1 32 div ssa_18 = iand ssa_16, ssa_17
vec3 64 div ssa_19 = intrinsic load_workgroup_id () ()
vec3 32 div ssa_20 = intrinsic load_local_invocation_id () ()
vec1 64 div ssa_21 = u2u64 ssa_20.x
vec1 32 div ssa_22 = unpack_64_2x32_split_x ssa_19.x
vec1 32 div ssa_23 = unpack_64_2x32_split_y ssa_19.x
vec1 32 div ssa_24 = umul_high ssa_22, ssa_18
vec1 32 div ssa_25 = imul ssa_22, ssa_18
vec1 32 div ssa_26 = imul ssa_23, ssa_18
vec1 32 div ssa_27 = iadd ssa_24, ssa_26
vec1 64 div ssa_28 = pack_64_2x32_split ssa_25, ssa_27
vec1 64 div ssa_29 = iadd ssa_28, ssa_21
vec1 64 div ssa_30 = iadd ssa_29, ssa_15.x
vec1 32 div ssa_31 = u2u32 ssa_30
vec1 64 div ssa_32 = i2i64 ssa_31
vec1 32 div ssa_33 = load_const (0x00000007 = 0.000000)
vec1 64 div ssa_34 = ishl ssa_32, ssa_33
vec1 64 div ssa_35 = iadd ssa_7, ssa_34
vec16 64 div ssa_36 = intrinsic load_global (ssa_35) (access=0, align_mul=128, align_offset=0)
vec1 64 div ssa_37 = iadd ssa_9, ssa_34
vec16 64 div ssa_38 = intrinsic load_global (ssa_37) (access=0, align_mul=128, align_offset=0)
vec1 64 div ssa_39 = iadd ssa_11, ssa_34
vec16 64 div ssa_40 = intrinsic load_global (ssa_39) (access=0, align_mul=128, align_offset=0)
vec1 64 div ssa_41 = load_const (0xffffffffffffffff = -nan)
vec1 32 div ssa_42 = unpack_64_2x32_split_x ssa_36.a
vec1 32 div ssa_43 = unpack_64_2x32_split_y ssa_36.a
vec1 32 div ssa_44 = unpack_64_2x32_split_x ssa_38.a
vec1 32 div ssa_45 = unpack_64_2x32_split_y ssa_38.a
vec1 32 div ssa_46 = umul_high ssa_42, ssa_44
vec1 32 div ssa_47 = imul ssa_42, ssa_44
vec1 64 div ssa_48 = pack_64_2x32_split ssa_47, ssa_46
vec1 64 div ssa_49 = ushr ssa_48, ssa_14
vec1 32 div ssa_50 = umul_high ssa_42, ssa_45
vec1 32 div ssa_51 = imul ssa_42, ssa_45
vec1 64 div ssa_52 = pack_64_2x32_split ssa_51, ssa_50
vec1 64 div ssa_53 = iadd ssa_52, ssa_49
vec1 32 div ssa_54 = u2u32 ssa_53
vec1 64 div ssa_55 = ushr ssa_53, ssa_14
vec1 32 div ssa_56 = umul_high ssa_42, ssa_1
vec1 64 div ssa_57 = pack_64_2x32_split ssa_1, ssa_56
vec1 64 div ssa_58 = iadd ssa_57, ssa_55
vec1 32 div ssa_59 = u2u32 ssa_58
vec1 64 div ssa_60 = ushr ssa_58, ssa_14
vec1 64 div ssa_61 = iadd ssa_57, ssa_60
vec1 32 div ssa_62 = u2u32 ssa_61
vec1 32 div ssa_63 = umul_high ssa_43, ssa_44
vec1 32 div ssa_64 = imul ssa_43, ssa_44
vec1 64 div ssa_65 = pack_64_2x32_split ssa_64, ssa_63
vec1 64 div ssa_66 = u2u64 ssa_54
vec1 64 div ssa_67 = iadd ssa_65, ssa_66
vec1 64 div ssa_68 = ushr ssa_67, ssa_14
vec1 32 div ssa_69 = umul_high ssa_43, ssa_45
vec1 32 div ssa_70 = imul ssa_43, ssa_45
vec1 64 div ssa_71 = pack_64_2x32_split ssa_70, ssa_69
vec1 64 div ssa_72 = u2u64 ssa_59
vec1 64 div ssa_73 = iadd ssa_71, ssa_72
vec1 64 div ssa_74 = iadd ssa_73, ssa_68
vec1 32 div ssa_75 = u2u32 ssa_74
vec1 64 div ssa_76 = ushr ssa_74, ssa_14
vec1 32 div ssa_77 = umul_high ssa_43, ssa_1
vec1 64 div ssa_78 = pack_64_2x32_split ssa_1, ssa_77
vec1 64 div ssa_79 = u2u64 ssa_62
vec1 64 div ssa_80 = iadd ssa_78, ssa_79
vec1 64 div ssa_81 = iadd ssa_80, ssa_76
vec1 32 div ssa_82 = u2u32 ssa_81
vec1 32 div ssa_83 = umul_high ssa_1, ssa_44
vec1 64 div ssa_84 = pack_64_2x32_split ssa_1, ssa_83
vec1 64 div ssa_85 = u2u64 ssa_75
vec1 64 div ssa_86 = iadd ssa_84, ssa_85
vec1 32 div ssa_87 = u2u32 ssa_86
vec1 64 div ssa_88 = ushr ssa_86, ssa_14
vec1 32 div ssa_89 = umul_high ssa_1, ssa_45
vec1 64 div ssa_90 = pack_64_2x32_split ssa_1, ssa_89
vec1 64 div ssa_91 = u2u64 ssa_82
vec1 64 div ssa_92 = iadd ssa_90, ssa_91
vec1 64 div ssa_93 = iadd ssa_92, ssa_88
vec1 32 div ssa_94 = u2u32 ssa_93
vec1 64 div ssa_95 = u2u64 ssa_94
vec1 64 div ssa_96 = iadd ssa_84, ssa_95
vec1 32 div ssa_97 = u2u32 ssa_96
vec1 64 div ssa_98 = pack_64_2x32_split ssa_87, ssa_97
vec1 1 div ssa_99 = ieq ssa_98, ssa_0
vec1 32 div ssa_100 = iadd ssa_51, ssa_64
vec1 32 div ssa_101 = iadd ssa_46, ssa_100
vec1 64 div ssa_102 = pack_64_2x32_split ssa_47, ssa_101
vec1 64 div ssa_103 = uadd_sat ssa_102, ssa_40.a
vec1 64 div ssa_104 = bcsel ssa_99, ssa_103, ssa_41
vec1 32 div ssa_105 = unpack_64_2x32_split_x ssa_36.b
vec1 32 div ssa_106 = unpack_64_2x32_split_y ssa_36.b
vec1 32 div ssa_107 = unpack_64_2x32_split_x ssa_38.b
vec1 32 div ssa_108 = unpack_64_2x32_split_y ssa_38.b
vec1 32 div ssa_109 = umul_high ssa_105, ssa_107
vec1 32 div ssa_110 = imul ssa_105, ssa_107
vec1 64 div ssa_111 = pack_64_2x32_split ssa_110, ssa_109
vec1 64 div ssa_112 = ushr ssa_111, ssa_14
vec1 32 div ssa_113 = umul_high ssa_105, ssa_108
vec1 32 div ssa_114 = imul ssa_105, ssa_108
vec1 64 div ssa_115 = pack_64_2x32_split ssa_114, ssa_113
vec1 64 div ssa_116 = iadd ssa_115, ssa_112
vec1 32 div ssa_117 = u2u32 ssa_116
vec1 64 div ssa_118 = ushr ssa_116, ssa_14
vec1 32 div ssa_119 = umul_high ssa_105, ssa_1
vec1 64 div ssa_120 = pack_64_2x32_split ssa_1, ssa_119
vec1 64 div ssa_121 = iadd ssa_120, ssa_118
vec1 32 div ssa_122 = u2u32 ssa_121
vec1 64 div ssa_123 = ushr ssa_121, ssa_14
vec1 64 div ssa_124 = iadd ssa_120, ssa_123
vec1 32 div ssa_125 = u2u32 ssa_124
vec1 32 div ssa_126 = umul_high ssa_106, ssa_107
vec1 32 div ssa_127 = imul ssa_106, ssa_107
vec1 64 div ssa_128 = pack_64_2x32_split ssa_127, ssa_126
vec1 64 div ssa_129 = u2u64 ssa_117
vec1 64 div ssa_130 = iadd ssa_128, ssa_129
vec1 64 div ssa_131 = ushr ssa_130, ssa_14
vec1 32 div ssa_132 = umul_high ssa_106, ssa_108
vec1 32 div ssa_133 = imul ssa_106, ssa_108
vec1 64 div ssa_134 = pack_64_2x32_split ssa_133, ssa_132
vec1 64 div ssa_135 = u2u64 ssa_122
vec1 64 div ssa_136 = iadd ssa_134, ssa_135
vec1 64 div ssa_137 = iadd ssa_136, ssa_131
vec1 32 div ssa_138 = u2u32 ssa_137
vec1 64 div ssa_139 = ushr ssa_137, ssa_14
vec1 32 div ssa_140 = umul_high ssa_106, ssa_1
vec1 64 div ssa_141 = pack_64_2x32_split ssa_1, ssa_140
vec1 64 div ssa_142 = u2u64 ssa_125
vec1 64 div ssa_143 = iadd ssa_141, ssa_142
vec1 64 div ssa_144 = iadd ssa_143, ssa_139
vec1 32 div ssa_145 = u2u32 ssa_144
vec1 32 div ssa_146 = umul_high ssa_1, ssa_107
vec1 64 div ssa_147 = pack_64_2x32_split ssa_1, ssa_146
vec1 64 div ssa_148 = u2u64 ssa_138
vec1 64 div ssa_149 = iadd ssa_147, ssa_148
vec1 32 div ssa_150 = u2u32 ssa_149
vec1 64 div ssa_151 = ushr ssa_149, ssa_14
vec1 32 div ssa_152 = umul_high ssa_1, ssa_108
vec1 64 div ssa_153 = pack_64_2x32_split ssa_1, ssa_152
vec1 64 div ssa_154 = u2u64 ssa_145
vec1 64 div ssa_155 = iadd ssa_153, ssa_154
vec1 64 div ssa_156 = iadd ssa_155, ssa_151
vec1 32 div ssa_157 = u2u32 ssa_156
vec1 64 div ssa_158 = u2u64 ssa_157
vec1 64 div ssa_159 = iadd ssa_147, ssa_158
vec1 32 div ssa_160 = u2u32 ssa_159
vec1 64 div ssa_161 = pack_64_2x32_split ssa_150, ssa_160
vec1 1 div ssa_162 = ieq ssa_161, ssa_0
vec1 32 div ssa_163 = iadd ssa_114, ssa_127
vec1 32 div ssa_164 = iadd ssa_109, ssa_163
vec1 64 div ssa_165 = pack_64_2x32_split ssa_110, ssa_164
vec1 64 div ssa_166 = uadd_sat ssa_165, ssa_40.b
vec1 64 div ssa_167 = bcsel ssa_162, ssa_166, ssa_41
vec1 32 div ssa_168 = unpack_64_2x32_split_x ssa_36.c
vec1 32 div ssa_169 = unpack_64_2x32_split_y ssa_36.c
vec1 32 div ssa_170 = unpack_64_2x32_split_x ssa_38.c
vec1 32 div ssa_171 = unpack_64_2x32_split_y ssa_38.c
vec1 32 div ssa_172 = umul_high ssa_168, ssa_170
vec1 32 div ssa_173 = imul ssa_168, ssa_170
vec1 64 div ssa_174 = pack_64_2x32_split ssa_173, ssa_172
vec1 64 div ssa_175 = ushr ssa_174, ssa_14
vec1 32 div ssa_176 = umul_high ssa_168, ssa_171
vec1 32 div ssa_177 = imul ssa_168, ssa_171
vec1 64 div ssa_178 = pack_64_2x32_split ssa_177, ssa_176
vec1 64 div ssa_179 = iadd ssa_178, ssa_175
vec1 32 div ssa_180 = u2u32 ssa_179
vec1 64 div ssa_181 = ushr ssa_179, ssa_14
vec1 32 div ssa_182 = umul_high ssa_168, ssa_1
vec1 64 div ssa_183 = pack_64_2x32_split ssa_1, ssa_182
vec1 64 div ssa_184 = iadd ssa_183, ssa_181
vec1 32 div ssa_185 = u2u32 ssa_184
vec1 64 div ssa_186 = ushr ssa_184, ssa_14
vec1 64 div ssa_187 = iadd ssa_183, ssa_186
vec1 32 div ssa_188 = u2u32 ssa_187
vec1 32 div ssa_189 = umul_high ssa_169, ssa_170
vec1 32 div ssa_190 = imul ssa_169, ssa_170
vec1 64 div ssa_191 = pack_64_2x32_split ssa_190, ssa_189
vec1 64 div ssa_192 = u2u64 ssa_180
vec1 64 div ssa_193 = iadd ssa_191, ssa_192
vec1 64 div ssa_194 = ushr ssa_193, ssa_14
vec1 32 div ssa_195 = umul_high ssa_169, ssa_171
vec1 32 div ssa_196 = imul ssa_169, ssa_171
vec1 64 div ssa_197 = pack_64_2x32_split ssa_196, ssa_195
vec1 64 div ssa_198 = u2u64 ssa_185
vec1 64 div ssa_199 = iadd ssa_197, ssa_198
vec1 64 div ssa_200 = iadd ssa_199, ssa_194
vec1 32 div ssa_201 = u2u32 ssa_200
vec1 64 div ssa_202 = ushr ssa_200, ssa_14
vec1 32 div ssa_203 = umul_high ssa_169, ssa_1
vec1 64 div ssa_204 = pack_64_2x32_split ssa_1, ssa_203
vec1 64 div ssa_205 = u2u64 ssa_188
vec1 64 div ssa_206 = iadd ssa_204, ssa_205
vec1 64 div ssa_207 = iadd ssa_206, ssa_202
vec1 32 div ssa_208 = u2u32 ssa_207
vec1 32 div ssa_209 = umul_high ssa_1, ssa_170
vec1 64 div ssa_210 = pack_64_2x32_split ssa_1, ssa_209
vec1 64 div ssa_211 = u2u64 ssa_201
vec1 64 div ssa_212 = iadd ssa_210, ssa_211
vec1 32 div ssa_213 = u2u32 ssa_212
vec1 64 div ssa_214 = ushr ssa_212, ssa_14
vec1 32 div ssa_215 = umul_high ssa_1, ssa_171
vec1 64 div ssa_216 = pack_64_2x32_split ssa_1, ssa_215
vec1 64 div ssa_217 = u2u64 ssa_208
vec1 64 div ssa_218 = iadd ssa_216, ssa_217
vec1 64 div ssa_219 = iadd ssa_218, ssa_214
vec1 32 div ssa_220 = u2u32 ssa_219
vec1 64 div ssa_221 = u2u64 ssa_220
vec1 64 div ssa_222 = iadd ssa_210, ssa_221
vec1 32 div ssa_223 = u2u32 ssa_222
vec1 64 div ssa_224 = pack_64_2x32_split ssa_213, ssa_223
vec1 1 div ssa_225 = ieq ssa_224, ssa_0
vec1 32 div ssa_226 = iadd ssa_177, ssa_190
vec1 32 div ssa_227 = iadd ssa_172, ssa_226
vec1 64 div ssa_228 = pack_64_2x32_split ssa_173, ssa_227
vec1 64 div ssa_229 = uadd_sat ssa_228, ssa_40.c
vec1 64 div ssa_230 = bcsel ssa_225, ssa_229, ssa_41
vec1 32 div ssa_231 = unpack_64_2x32_split_x ssa_36.d
vec1 32 div ssa_232 = unpack_64_2x32_split_y ssa_36.d
vec1 32 div ssa_233 = unpack_64_2x32_split_x ssa_38.d
vec1 32 div ssa_234 = unpack_64_2x32_split_y ssa_38.d
vec1 32 div ssa_235 = umul_high ssa_231, ssa_233
vec1 32 div ssa_236 = imul ssa_231, ssa_233
vec1 64 div ssa_237 = pack_64_2x32_split ssa_236, ssa_235
vec1 64 div ssa_238 = ushr ssa_237, ssa_14
vec1 32 div ssa_239 = umul_high ssa_231, ssa_234
vec1 32 div ssa_240 = imul ssa_231, ssa_234
vec1 64 div ssa_241 = pack_64_2x32_split ssa_240, ssa_239
vec1 64 div ssa_242 = iadd ssa_241, ssa_238
vec1 32 div ssa_243 = u2u32 ssa_242
vec1 64 div ssa_244 = ushr ssa_242, ssa_14
vec1 32 div ssa_245 = umul_high ssa_231, ssa_1
vec1 64 div ssa_246 = pack_64_2x32_split ssa_1, ssa_245
vec1 64 div ssa_247 = iadd ssa_246, ssa_244
vec1 32 div ssa_248 = u2u32 ssa_247
vec1 64 div ssa_249 = ushr ssa_247, ssa_14
vec1 64 div ssa_250 = iadd ssa_246, ssa_249
vec1 32 div ssa_251 = u2u32 ssa_250
vec1 32 div ssa_252 = umul_high ssa_232, ssa_233
vec1 32 div ssa_253 = imul ssa_232, ssa_233
vec1 64 div ssa_254 = pack_64_2x32_split ssa_253, ssa_252
vec1 64 div ssa_255 = u2u64 ssa_243
vec1 64 div ssa_256 = iadd ssa_254, ssa_255
vec1 64 div ssa_257 = ushr ssa_256, ssa_14
vec1 32 div ssa_258 = umul_high ssa_232, ssa_234
vec1 32 div ssa_259 = imul ssa_232, ssa_234
vec1 64 div ssa_260 = pack_64_2x32_split ssa_259, ssa_258
vec1 64 div ssa_261 = u2u64 ssa_248
vec1 64 div ssa_262 = iadd ssa_260, ssa_261
vec1 64 div ssa_263 = iadd ssa_262, ssa_257
vec1 32 div ssa_264 = u2u32 ssa_263
vec1 64 div ssa_265 = ushr ssa_263, ssa_14
vec1 32 div ssa_266 = umul_high ssa_232, ssa_1
vec1 64 div ssa_267 = pack_64_2x32_split ssa_1, ssa_266
vec1 64 div ssa_268 = u2u64 ssa_251
vec1 64 div ssa_269 = iadd ssa_267, ssa_268
vec1 64 div ssa_270 = iadd ssa_269, ssa_265
vec1 32 div ssa_271 = u2u32 ssa_270
vec1 32 div ssa_272 = umul_high ssa_1, ssa_233
vec1 64 div ssa_273 = pack_64_2x32_split ssa_1, ssa_272
vec1 64 div ssa_274 = u2u64 ssa_264
vec1 64 div ssa_275 = iadd ssa_273, ssa_274
vec1 32 div ssa_276 = u2u32 ssa_275
vec1 64 div ssa_277 = ushr ssa_275, ssa_14
vec1 32 div ssa_278 = umul_high ssa_1, ssa_234
vec1 64 div ssa_279 = pack_64_2x32_split ssa_1, ssa_278
vec1 64 div ssa_280 = u2u64 ssa_271
vec1 64 div ssa_281 = iadd ssa_279, ssa_280
vec1 64 div ssa_282 = iadd ssa_281, ssa_277
vec1 32 div ssa_283 = u2u32 ssa_282
vec1 64 div ssa_284 = u2u64 ssa_283
vec1 64 div ssa_285 = iadd ssa_273, ssa_284
vec1 32 div ssa_286 = u2u32 ssa_285
vec1 64 div ssa_287 = pack_64_2x32_split ssa_276, ssa_286
vec1 1 div ssa_288 = ieq ssa_287, ssa_0
vec1 32 div ssa_289 = iadd ssa_240, ssa_253
vec1 32 div ssa_290 = iadd ssa_235, ssa_289
vec1 64 div ssa_291 = pack_64_2x32_split ssa_236, ssa_290
vec1 64 div ssa_292 = uadd_sat ssa_291, ssa_40.d
vec1 64 div ssa_293 = bcsel ssa_288, ssa_292, ssa_41
vec1 32 div ssa_294 = unpack_64_2x32_split_x ssa_36.e
vec1 32 div ssa_295 = unpack_64_2x32_split_y ssa_36.e
vec1 32 div ssa_296 = unpack_64_2x32_split_x ssa_38.e
vec1 32 div ssa_297 = unpack_64_2x32_split_y ssa_38.e
vec1 32 div ssa_298 = umul_high ssa_294, ssa_296
vec1 32 div ssa_299 = imul ssa_294, ssa_296
vec1 64 div ssa_300 = pack_64_2x32_split ssa_299, ssa_298
vec1 64 div ssa_301 = ushr ssa_300, ssa_14
vec1 32 div ssa_302 = umul_high ssa_294, ssa_297
vec1 32 div ssa_303 = imul ssa_294, ssa_297
vec1 64 div ssa_304 = pack_64_2x32_split ssa_303, ssa_302
vec1 64 div ssa_305 = iadd ssa_304, ssa_301
vec1 32 div ssa_306 = u2u32 ssa_305
vec1 64 div ssa_307 = ushr ssa_305, ssa_14
vec1 32 div ssa_308 = umul_high ssa_294, ssa_1
vec1 64 div ssa_309 = pack_64_2x32_split ssa_1, ssa_308
vec1 64 div ssa_310 = iadd ssa_309, ssa_307
vec1 32 div ssa_311 = u2u32 ssa_310
vec1 64 div ssa_312 = ushr ssa_310, ssa_14
vec1 64 div ssa_313 = iadd ssa_309, ssa_312
vec1 32 div ssa_314 = u2u32 ssa_313
vec1 32 div ssa_315 = umul_high ssa_295, ssa_296
vec1 32 div ssa_316 = imul ssa_295, ssa_296
vec1 64 div ssa_317 = pack_64_2x32_split ssa_316, ssa_315
vec1 64 div ssa_318 = u2u64 ssa_306
vec1 64 div ssa_319 = iadd ssa_317, ssa_318
vec1 64 div ssa_320 = ushr ssa_319, ssa_14
vec1 32 div ssa_321 = umul_high ssa_295, ssa_297
vec1 32 div ssa_322 = imul ssa_295, ssa_297
vec1 64 div ssa_323 = pack_64_2x32_split ssa_322, ssa_321
vec1 64 div ssa_324 = u2u64 ssa_311
vec1 64 div ssa_325 = iadd ssa_323, ssa_324
vec1 64 div ssa_326 = iadd ssa_325, ssa_320
vec1 32 div ssa_327 = u2u32 ssa_326
vec1 64 div ssa_328 = ushr ssa_326, ssa_14
vec1 32 div ssa_329 = umul_high ssa_295, ssa_1
vec1 64 div ssa_330 = pack_64_2x32_split ssa_1, ssa_329
vec1 64 div ssa_331 = u2u64 ssa_314
vec1 64 div ssa_332 = iadd ssa_330, ssa_331
vec1 64 div ssa_333 = iadd ssa_332, ssa_328
vec1 32 div ssa_334 = u2u32 ssa_333
vec1 32 div ssa_335 = umul_high ssa_1, ssa_296
vec1 64 div ssa_336 = pack_64_2x32_split ssa_1, ssa_335
vec1 64 div ssa_337 = u2u64 ssa_327
vec1 64 div ssa_338 = iadd ssa_336, ssa_337
vec1 32 div ssa_339 = u2u32 ssa_338
vec1 64 div ssa_340 = ushr ssa_338, ssa_14
vec1 32 div ssa_341 = umul_high ssa_1, ssa_297
vec1 64 div ssa_342 = pack_64_2x32_split ssa_1, ssa_341
vec1 64 div ssa_343 = u2u64 ssa_334
vec1 64 div ssa_344 = iadd ssa_342, ssa_343
vec1 64 div ssa_345 = iadd ssa_344, ssa_340
vec1 32 div ssa_346 = u2u32 ssa_345
vec1 64 div ssa_347 = u2u64 ssa_346
vec1 64 div ssa_348 = iadd ssa_336, ssa_347
vec1 32 div ssa_349 = u2u32 ssa_348
vec1 64 div ssa_350 = pack_64_2x32_split ssa_339, ssa_349
vec1 1 div ssa_351 = ieq ssa_350, ssa_0
vec1 32 div ssa_352 = iadd ssa_303, ssa_316
vec1 32 div ssa_353 = iadd ssa_298, ssa_352
vec1 64 div ssa_354 = pack_64_2x32_split ssa_299, ssa_353
vec1 64 div ssa_355 = uadd_sat ssa_354, ssa_40.e
vec1 64 div ssa_356 = bcsel ssa_351, ssa_355, ssa_41
vec1 32 div ssa_357 = unpack_64_2x32_split_x ssa_36.f
vec1 32 div ssa_358 = unpack_64_2x32_split_y ssa_36.f
vec1 32 div ssa_359 = unpack_64_2x32_split_x ssa_38.f
vec1 32 div ssa_360 = unpack_64_2x32_split_y ssa_38.f
vec1 32 div ssa_361 = umul_high ssa_357, ssa_359
vec1 32 div ssa_362 = imul ssa_357, ssa_359
vec1 64 div ssa_363 = pack_64_2x32_split ssa_362, ssa_361
vec1 64 div ssa_364 = ushr ssa_363, ssa_14
vec1 32 div ssa_365 = umul_high ssa_357, ssa_360
vec1 32 div ssa_366 = imul ssa_357, ssa_360
vec1 64 div ssa_367 = pack_64_2x32_split ssa_366, ssa_365
vec1 64 div ssa_368 = iadd ssa_367, ssa_364
vec1 32 div ssa_369 = u2u32 ssa_368
vec1 64 div ssa_370 = ushr ssa_368, ssa_14
vec1 32 div ssa_371 = umul_high ssa_357, ssa_1
vec1 64 div ssa_372 = pack_64_2x32_split ssa_1, ssa_371
vec1 64 div ssa_373 = iadd ssa_372, ssa_370
vec1 32 div ssa_374 = u2u32 ssa_373
vec1 64 div ssa_375 = ushr ssa_373, ssa_14
vec1 64 div ssa_376 = iadd ssa_372, ssa_375
vec1 32 div ssa_377 = u2u32 ssa_376
vec1 32 div ssa_378 = umul_high ssa_358, ssa_359
vec1 32 div ssa_379 = imul ssa_358, ssa_359
vec1 64 div ssa_380 = pack_64_2x32_split ssa_379, ssa_378
vec1 64 div ssa_381 = u2u64 ssa_369
vec1 64 div ssa_382 = iadd ssa_380, ssa_381
vec1 64 div ssa_383 = ushr ssa_382, ssa_14
vec1 32 div ssa_384 = umul_high ssa_358, ssa_360
vec1 32 div ssa_385 = imul ssa_358, ssa_360
vec1 64 div ssa_386 = pack_64_2x32_split ssa_385, ssa_384
vec1 64 div ssa_387 = u2u64 ssa_374
vec1 64 div ssa_388 = iadd ssa_386, ssa_387
vec1 64 div ssa_389 = iadd ssa_388, ssa_383
vec1 32 div ssa_390 = u2u32 ssa_389
vec1 64 div ssa_391 = ushr ssa_389, ssa_14
vec1 32 div ssa_392 = umul_high ssa_358, ssa_1
vec1 64 div ssa_393 = pack_64_2x32_split ssa_1, ssa_392
vec1 64 div ssa_394 = u2u64 ssa_377
vec1 64 div ssa_395 = iadd ssa_393, ssa_394
vec1 64 div ssa_396 = iadd ssa_395, ssa_391
vec1 32 div ssa_397 = u2u32 ssa_396
vec1 32 div ssa_398 = umul_high ssa_1, ssa_359
vec1 64 div ssa_399 = pack_64_2x32_split ssa_1, ssa_398
vec1 64 div ssa_400 = u2u64 ssa_390
vec1 64 div ssa_401 = iadd ssa_399, ssa_400
vec1 32 div ssa_402 = u2u32 ssa_401
vec1 64 div ssa_403 = ushr ssa_401, ssa_14
vec1 32 div ssa_404 = umul_high ssa_1, ssa_360
vec1 64 div ssa_405 = pack_64_2x32_split ssa_1, ssa_404
vec1 64 div ssa_406 = u2u64 ssa_397
vec1 64 div ssa_407 = iadd ssa_405, ssa_406
vec1 64 div ssa_408 = iadd ssa_407, ssa_403
vec1 32 div ssa_409 = u2u32 ssa_408
vec1 64 div ssa_410 = u2u64 ssa_409
vec1 64 div ssa_411 = iadd ssa_399, ssa_410
vec1 32 div ssa_412 = u2u32 ssa_411
vec1 64 div ssa_413 = pack_64_2x32_split ssa_402, ssa_412
vec1 1 div ssa_414 = ieq ssa_413, ssa_0
vec1 32 div ssa_415 = iadd ssa_366, ssa_379
vec1 32 div ssa_416 = iadd ssa_361, ssa_415
vec1 64 div ssa_417 = pack_64_2x32_split ssa_362, ssa_416
vec1 64 div ssa_418 = uadd_sat ssa_417, ssa_40.f
vec1 64 div ssa_419 = bcsel ssa_414, ssa_418, ssa_41
vec1 32 div ssa_420 = unpack_64_2x32_split_x ssa_36.g
vec1 32 div ssa_421 = unpack_64_2x32_split_y ssa_36.g
vec1 32 div ssa_422 = unpack_64_2x32_split_x ssa_38.g
vec1 32 div ssa_423 = unpack_64_2x32_split_y ssa_38.g
vec1 32 div ssa_424 = umul_high ssa_420, ssa_422
vec1 32 div ssa_425 = imul ssa_420, ssa_422
vec1 64 div ssa_426 = pack_64_2x32_split ssa_425, ssa_424
vec1 64 div ssa_427 = ushr ssa_426, ssa_14
vec1 32 div ssa_428 = umul_high ssa_420, ssa_423
vec1 32 div ssa_429 = imul ssa_420, ssa_423
vec1 64 div ssa_430 = pack_64_2x32_split ssa_429, ssa_428
vec1 64 div ssa_431 = iadd ssa_430, ssa_427
vec1 32 div ssa_432 = u2u32 ssa_431
vec1 64 div ssa_433 = ushr ssa_431, ssa_14
vec1 32 div ssa_434 = umul_high ssa_420, ssa_1
vec1 64 div ssa_435 = pack_64_2x32_split ssa_1, ssa_434
vec1 64 div ssa_436 = iadd ssa_435, ssa_433
vec1 32 div ssa_437 = u2u32 ssa_436
vec1 64 div ssa_438 = ushr ssa_436, ssa_14
vec1 64 div ssa_439 = iadd ssa_435, ssa_438
vec1 32 div ssa_440 = u2u32 ssa_439
vec1 32 div ssa_441 = umul_high ssa_421, ssa_422
vec1 32 div ssa_442 = imul ssa_421, ssa_422
vec1 64 div ssa_443 = pack_64_2x32_split ssa_442, ssa_441
vec1 64 div ssa_444 = u2u64 ssa_432
vec1 64 div ssa_445 = iadd ssa_443, ssa_444
vec1 64 div ssa_446 = ushr ssa_445, ssa_14
vec1 32 div ssa_447 = umul_high ssa_421, ssa_423
vec1 32 div ssa_448 = imul ssa_421, ssa_423
vec1 64 div ssa_449 = pack_64_2x32_split ssa_448, ssa_447
vec1 64 div ssa_450 = u2u64 ssa_437
vec1 64 div ssa_451 = iadd ssa_449, ssa_450
vec1 64 div ssa_452 = iadd ssa_451, ssa_446
vec1 32 div ssa_453 = u2u32 ssa_452
vec1 64 div ssa_454 = ushr ssa_452, ssa_14
vec1 32 div ssa_455 = umul_high ssa_421, ssa_1
vec1 64 div ssa_456 = pack_64_2x32_split ssa_1, ssa_455
vec1 64 div ssa_457 = u2u64 ssa_440
vec1 64 div ssa_458 = iadd ssa_456, ssa_457
vec1 64 div ssa_459 = iadd ssa_458, ssa_454
vec1 32 div ssa_460 = u2u32 ssa_459
vec1 32 div ssa_461 = umul_high ssa_1, ssa_422
vec1 64 div ssa_462 = pack_64_2x32_split ssa_1, ssa_461
vec1 64 div ssa_463 = u2u64 ssa_453
vec1 64 div ssa_464 = iadd ssa_462, ssa_463
vec1 32 div ssa_465 = u2u32 ssa_464
vec1 64 div ssa_466 = ushr ssa_464, ssa_14
vec1 32 div ssa_467 = umul_high ssa_1, ssa_423
vec1 64 div ssa_468 = pack_64_2x32_split ssa_1, ssa_467
vec1 64 div ssa_469 = u2u64 ssa_460
vec1 64 div ssa_470 = iadd ssa_468, ssa_469
vec1 64 div ssa_471 = iadd ssa_470, ssa_466
vec1 32 div ssa_472 = u2u32 ssa_471
vec1 64 div ssa_473 = u2u64 ssa_472
vec1 64 div ssa_474 = iadd ssa_462, ssa_473
vec1 32 div ssa_475 = u2u32 ssa_474
vec1 64 div ssa_476 = pack_64_2x32_split ssa_465, ssa_475
vec1 1 div ssa_477 = ieq ssa_476, ssa_0
vec1 32 div ssa_478 = iadd ssa_429, ssa_442
vec1 32 div ssa_479 = iadd ssa_424, ssa_478
vec1 64 div ssa_480 = pack_64_2x32_split ssa_425, ssa_479
vec1 64 div ssa_481 = uadd_sat ssa_480, ssa_40.g
vec1 64 div ssa_482 = bcsel ssa_477, ssa_481, ssa_41
vec1 32 div ssa_483 = unpack_64_2x32_split_x ssa_36.h
vec1 32 div ssa_484 = unpack_64_2x32_split_y ssa_36.h
vec1 32 div ssa_485 = unpack_64_2x32_split_x ssa_38.h
vec1 32 div ssa_486 = unpack_64_2x32_split_y ssa_38.h
vec1 32 div ssa_487 = umul_high ssa_483, ssa_485
vec1 32 div ssa_488 = imul ssa_483, ssa_485
vec1 64 div ssa_489 = pack_64_2x32_split ssa_488, ssa_487
vec1 64 div ssa_490 = ushr ssa_489, ssa_14
vec1 32 div ssa_491 = umul_high ssa_483, ssa_486
vec1 32 div ssa_492 = imul ssa_483, ssa_486
vec1 64 div ssa_493 = pack_64_2x32_split ssa_492, ssa_491
vec1 64 div ssa_494 = iadd ssa_493, ssa_490
vec1 32 div ssa_495 = u2u32 ssa_494
vec1 64 div ssa_496 = ushr ssa_494, ssa_14
vec1 32 div ssa_497 = umul_high ssa_483, ssa_1
vec1 64 div ssa_498 = pack_64_2x32_split ssa_1, ssa_497
vec1 64 div ssa_499 = iadd ssa_498, ssa_496
vec1 32 div ssa_500 = u2u32 ssa_499
vec1 64 div ssa_501 = ushr ssa_499, ssa_14
vec1 64 div ssa_502 = iadd ssa_498, ssa_501
vec1 32 div ssa_503 = u2u32 ssa_502
vec1 32 div ssa_504 = umul_high ssa_484, ssa_485
vec1 32 div ssa_505 = imul ssa_484, ssa_485
vec1 64 div ssa_506 = pack_64_2x32_split ssa_505, ssa_504
vec1 64 div ssa_507 = u2u64 ssa_495
vec1 64 div ssa_508 = iadd ssa_506, ssa_507
vec1 64 div ssa_509 = ushr ssa_508, ssa_14
vec1 32 div ssa_510 = umul_high ssa_484, ssa_486
vec1 32 div ssa_511 = imul ssa_484, ssa_486
vec1 64 div ssa_512 = pack_64_2x32_split ssa_511, ssa_510
vec1 64 div ssa_513 = u2u64 ssa_500
vec1 64 div ssa_514 = iadd ssa_512, ssa_513
vec1 64 div ssa_515 = iadd ssa_514, ssa_509
vec1 32 div ssa_516 = u2u32 ssa_515
vec1 64 div ssa_517 = ushr ssa_515, ssa_14
vec1 32 div ssa_518 = umul_high ssa_484, ssa_1
vec1 64 div ssa_519 = pack_64_2x32_split ssa_1, ssa_518
vec1 64 div ssa_520 = u2u64 ssa_503
vec1 64 div ssa_521 = iadd ssa_519, ssa_520
vec1 64 div ssa_522 = iadd ssa_521, ssa_517
vec1 32 div ssa_523 = u2u32 ssa_522
vec1 32 div ssa_524 = umul_high ssa_1, ssa_485
vec1 64 div ssa_525 = pack_64_2x32_split ssa_1, ssa_524
vec1 64 div ssa_526 = u2u64 ssa_516
vec1 64 div ssa_527 = iadd ssa_525, ssa_526
vec1 32 div ssa_528 = u2u32 ssa_527
vec1 64 div ssa_529 = ushr ssa_527, ssa_14
vec1 32 div ssa_530 = umul_high ssa_1, ssa_486
vec1 64 div ssa_531 = pack_64_2x32_split ssa_1, ssa_530
vec1 64 div ssa_532 = u2u64 ssa_523
vec1 64 div ssa_533 = iadd ssa_531, ssa_532
vec1 64 div ssa_534 = iadd ssa_533, ssa_529
vec1 32 div ssa_535 = u2u32 ssa_534
vec1 64 div ssa_536 = u2u64 ssa_535
vec1 64 div ssa_537 = iadd ssa_525, ssa_536
vec1 32 div ssa_538 = u2u32 ssa_537
vec1 64 div ssa_539 = pack_64_2x32_split ssa_528, ssa_538
vec1 1 div ssa_540 = ieq ssa_539, ssa_0
vec1 32 div ssa_541 = iadd ssa_492, ssa_505
vec1 32 div ssa_542 = iadd ssa_487, ssa_541
vec1 64 div ssa_543 = pack_64_2x32_split ssa_488, ssa_542
vec1 64 div ssa_544 = uadd_sat ssa_543, ssa_40.h
vec1 64 div ssa_545 = bcsel ssa_540, ssa_544, ssa_41
vec1 32 div ssa_546 = unpack_64_2x32_split_x ssa_36.i
vec1 32 div ssa_547 = unpack_64_2x32_split_y ssa_36.i
vec1 32 div ssa_548 = unpack_64_2x32_split_x ssa_38.i
vec1 32 div ssa_549 = unpack_64_2x32_split_y ssa_38.i
vec1 32 div ssa_550 = umul_high ssa_546, ssa_548
vec1 32 div ssa_551 = imul ssa_546, ssa_548
vec1 64 div ssa_552 = pack_64_2x32_split ssa_551, ssa_550
vec1 64 div ssa_553 = ushr ssa_552, ssa_14
vec1 32 div ssa_554 = umul_high ssa_546, ssa_549
vec1 32 div ssa_555 = imul ssa_546, ssa_549
vec1 64 div ssa_556 = pack_64_2x32_split ssa_555, ssa_554
vec1 64 div ssa_557 = iadd ssa_556, ssa_553
vec1 32 div ssa_558 = u2u32 ssa_557
vec1 64 div ssa_559 = ushr ssa_557, ssa_14
vec1 32 div ssa_560 = umul_high ssa_546, ssa_1
vec1 64 div ssa_561 = pack_64_2x32_split ssa_1, ssa_560
vec1 64 div ssa_562 = iadd ssa_561, ssa_559
vec1 32 div ssa_563 = u2u32 ssa_562
vec1 64 div ssa_564 = ushr ssa_562, ssa_14
vec1 64 div ssa_565 = iadd ssa_561, ssa_564
vec1 32 div ssa_566 = u2u32 ssa_565
vec1 32 div ssa_567 = umul_high ssa_547, ssa_548
vec1 32 div ssa_568 = imul ssa_547, ssa_548
vec1 64 div ssa_569 = pack_64_2x32_split ssa_568, ssa_567
vec1 64 div ssa_570 = u2u64 ssa_558
vec1 64 div ssa_571 = iadd ssa_569, ssa_570
vec1 64 div ssa_572 = ushr ssa_571, ssa_14
vec1 32 div ssa_573 = umul_high ssa_547, ssa_549
vec1 32 div ssa_574 = imul ssa_547, ssa_549
vec1 64 div ssa_575 = pack_64_2x32_split ssa_574, ssa_573
vec1 64 div ssa_576 = u2u64 ssa_563
vec1 64 div ssa_577 = iadd ssa_575, ssa_576
vec1 64 div ssa_578 = iadd ssa_577, ssa_572
vec1 32 div ssa_579 = u2u32 ssa_578
vec1 64 div ssa_580 = ushr ssa_578, ssa_14
vec1 32 div ssa_581 = umul_high ssa_547, ssa_1
vec1 64 div ssa_582 = pack_64_2x32_split ssa_1, ssa_581
vec1 64 div ssa_583 = u2u64 ssa_566
vec1 64 div ssa_584 = iadd ssa_582, ssa_583
vec1 64 div ssa_585 = iadd ssa_584, ssa_580
vec1 32 div ssa_586 = u2u32 ssa_585
vec1 32 div ssa_587 = umul_high ssa_1, ssa_548
vec1 64 div ssa_588 = pack_64_2x32_split ssa_1, ssa_587
vec1 64 div ssa_589 = u2u64 ssa_579
vec1 64 div ssa_590 = iadd ssa_588, ssa_589
vec1 32 div ssa_591 = u2u32 ssa_590
vec1 64 div ssa_592 = ushr ssa_590, ssa_14
vec1 32 div ssa_593 = umul_high ssa_1, ssa_549
vec1 64 div ssa_594 = pack_64_2x32_split ssa_1, ssa_593
vec1 64 div ssa_595 = u2u64 ssa_586
vec1 64 div ssa_596 = iadd ssa_594, ssa_595
vec1 64 div ssa_597 = iadd ssa_596, ssa_592
vec1 32 div ssa_598 = u2u32 ssa_597
vec1 64 div ssa_599 = u2u64 ssa_598
vec1 64 div ssa_600 = iadd ssa_588, ssa_599
vec1 32 div ssa_601 = u2u32 ssa_600
vec1 64 div ssa_602 = pack_64_2x32_split ssa_591, ssa_601
vec1 1 div ssa_603 = ieq ssa_602, ssa_0
vec1 32 div ssa_604 = iadd ssa_555, ssa_568
vec1 32 div ssa_605 = iadd ssa_550, ssa_604
vec1 64 div ssa_606 = pack_64_2x32_split ssa_551, ssa_605
vec1 64 div ssa_607 = uadd_sat ssa_606, ssa_40.i
vec1 64 div ssa_608 = bcsel ssa_603, ssa_607, ssa_41
vec1 32 div ssa_609 = unpack_64_2x32_split_x ssa_36.j
vec1 32 div ssa_610 = unpack_64_2x32_split_y ssa_36.j
vec1 32 div ssa_611 = unpack_64_2x32_split_x ssa_38.j
vec1 32 div ssa_612 = unpack_64_2x32_split_y ssa_38.j
vec1 32 div ssa_613 = umul_high ssa_609, ssa_611
vec1 32 div ssa_614 = imul ssa_609, ssa_611
vec1 64 div ssa_615 = pack_64_2x32_split ssa_614, ssa_613
vec1 64 div ssa_616 = ushr ssa_615, ssa_14
vec1 32 div ssa_617 = umul_high ssa_609, ssa_612
vec1 32 div ssa_618 = imul ssa_609, ssa_612
vec1 64 div ssa_619 = pack_64_2x32_split ssa_618, ssa_617
vec1 64 div ssa_620 = iadd ssa_619, ssa_616
vec1 32 div ssa_621 = u2u32 ssa_620
vec1 64 div ssa_622 = ushr ssa_620, ssa_14
vec1 32 div ssa_623 = umul_high ssa_609, ssa_1
vec1 64 div ssa_624 = pack_64_2x32_split ssa_1, ssa_623
vec1 64 div ssa_625 = iadd ssa_624, ssa_622
vec1 32 div ssa_626 = u2u32 ssa_625
vec1 64 div ssa_627 = ushr ssa_625, ssa_14
vec1 64 div ssa_628 = iadd ssa_624, ssa_627
vec1 32 div ssa_629 = u2u32 ssa_628
vec1 32 div ssa_630 = umul_high ssa_610, ssa_611
vec1 32 div ssa_631 = imul ssa_610, ssa_611
vec1 64 div ssa_632 = pack_64_2x32_split ssa_631, ssa_630
vec1 64 div ssa_633 = u2u64 ssa_621
vec1 64 div ssa_634 = iadd ssa_632, ssa_633
vec1 64 div ssa_635 = ushr ssa_634, ssa_14
vec1 32 div ssa_636 = umul_high ssa_610, ssa_612
vec1 32 div ssa_637 = imul ssa_610, ssa_612
vec1 64 div ssa_638 = pack_64_2x32_split ssa_637, ssa_636
vec1 64 div ssa_639 = u2u64 ssa_626
vec1 64 div ssa_640 = iadd ssa_638, ssa_639
vec1 64 div ssa_641 = iadd ssa_640, ssa_635
vec1 32 div ssa_642 = u2u32 ssa_641
vec1 64 div ssa_643 = ushr ssa_641, ssa_14
vec1 32 div ssa_644 = umul_high ssa_610, ssa_1
vec1 64 div ssa_645 = pack_64_2x32_split ssa_1, ssa_644
vec1 64 div ssa_646 = u2u64 ssa_629
vec1 64 div ssa_647 = iadd ssa_645, ssa_646
vec1 64 div ssa_648 = iadd ssa_647, ssa_643
vec1 32 div ssa_649 = u2u32 ssa_648
vec1 32 div ssa_650 = umul_high ssa_1, ssa_611
vec1 64 div ssa_651 = pack_64_2x32_split ssa_1, ssa_650
vec1 64 div ssa_652 = u2u64 ssa_642
vec1 64 div ssa_653 = iadd ssa_651, ssa_652
vec1 32 div ssa_654 = u2u32 ssa_653
vec1 64 div ssa_655 = ushr ssa_653, ssa_14
vec1 32 div ssa_656 = umul_high ssa_1, ssa_612
vec1 64 div ssa_657 = pack_64_2x32_split ssa_1, ssa_656
vec1 64 div ssa_658 = u2u64 ssa_649
vec1 64 div ssa_659 = iadd ssa_657, ssa_658
vec1 64 div ssa_660 = iadd ssa_659, ssa_655
vec1 32 div ssa_661 = u2u32 ssa_660
vec1 64 div ssa_662 = u2u64 ssa_661
vec1 64 div ssa_663 = iadd ssa_651, ssa_662
vec1 32 div ssa_664 = u2u32 ssa_663
vec1 64 div ssa_665 = pack_64_2x32_split ssa_654, ssa_664
vec1 1 div ssa_666 = ieq ssa_665, ssa_0
vec1 32 div ssa_667 = iadd ssa_618, ssa_631
vec1 32 div ssa_668 = iadd ssa_613, ssa_667
vec1 64 div ssa_669 = pack_64_2x32_split ssa_614, ssa_668
vec1 64 div ssa_670 = uadd_sat ssa_669, ssa_40.j
vec1 64 div ssa_671 = bcsel ssa_666, ssa_670, ssa_41
vec1 32 div ssa_672 = unpack_64_2x32_split_x ssa_36.k
vec1 32 div ssa_673 = unpack_64_2x32_split_y ssa_36.k
vec1 32 div ssa_674 = unpack_64_2x32_split_x ssa_38.k
vec1 32 div ssa_675 = unpack_64_2x32_split_y ssa_38.k
vec1 32 div ssa_676 = umul_high ssa_672, ssa_674
vec1 32 div ssa_677 = imul ssa_672, ssa_674
vec1 64 div ssa_678 = pack_64_2x32_split ssa_677, ssa_676
vec1 64 div ssa_679 = ushr ssa_678, ssa_14
vec1 32 div ssa_680 = umul_high ssa_672, ssa_675
vec1 32 div ssa_681 = imul ssa_672, ssa_675
vec1 64 div ssa_682 = pack_64_2x32_split ssa_681, ssa_680
vec1 64 div ssa_683 = iadd ssa_682, ssa_679
vec1 32 div ssa_684 = u2u32 ssa_683
vec1 64 div ssa_685 = ushr ssa_683, ssa_14
vec1 32 div ssa_686 = umul_high ssa_672, ssa_1
vec1 64 div ssa_687 = pack_64_2x32_split ssa_1, ssa_686
vec1 64 div ssa_688 = iadd ssa_687, ssa_685
vec1 32 div ssa_689 = u2u32 ssa_688
vec1 64 div ssa_690 = ushr ssa_688, ssa_14
vec1 64 div ssa_691 = iadd ssa_687, ssa_690
vec1 32 div ssa_692 = u2u32 ssa_691
vec1 32 div ssa_693 = umul_high ssa_673, ssa_674
vec1 32 div ssa_694 = imul ssa_673, ssa_674
vec1 64 div ssa_695 = pack_64_2x32_split ssa_694, ssa_693
vec1 64 div ssa_696 = u2u64 ssa_684
vec1 64 div ssa_697 = iadd ssa_695, ssa_696
vec1 64 div ssa_698 = ushr ssa_697, ssa_14
vec1 32 div ssa_699 = umul_high ssa_673, ssa_675
vec1 32 div ssa_700 = imul ssa_673, ssa_675
vec1 64 div ssa_701 = pack_64_2x32_split ssa_700, ssa_699
vec1 64 div ssa_702 = u2u64 ssa_689
vec1 64 div ssa_703 = iadd ssa_701, ssa_702
vec1 64 div ssa_704 = iadd ssa_703, ssa_698
vec1 32 div ssa_705 = u2u32 ssa_704
vec1 64 div ssa_706 = ushr ssa_704, ssa_14
vec1 32 div ssa_707 = umul_high ssa_673, ssa_1
vec1 64 div ssa_708 = pack_64_2x32_split ssa_1, ssa_707
vec1 64 div ssa_709 = u2u64 ssa_692
vec1 64 div ssa_710 = iadd ssa_708, ssa_709
vec1 64 div ssa_711 = iadd ssa_710, ssa_706
vec1 32 div ssa_712 = u2u32 ssa_711
vec1 32 div ssa_713 = umul_high ssa_1, ssa_674
vec1 64 div ssa_714 = pack_64_2x32_split ssa_1, ssa_713
vec1 64 div ssa_715 = u2u64 ssa_705
vec1 64 div ssa_716 = iadd ssa_714, ssa_715
vec1 32 div ssa_717 = u2u32 ssa_716
vec1 64 div ssa_718 = ushr ssa_716, ssa_14
vec1 32 div ssa_719 = umul_high ssa_1, ssa_675
vec1 64 div ssa_720 = pack_64_2x32_split ssa_1, ssa_719
vec1 64 div ssa_721 = u2u64 ssa_712
vec1 64 div ssa_722 = iadd ssa_720, ssa_721
vec1 64 div ssa_723 = iadd ssa_722, ssa_718
vec1 32 div ssa_724 = u2u32 ssa_723
vec1 64 div ssa_725 = u2u64 ssa_724
vec1 64 div ssa_726 = iadd ssa_714, ssa_725
vec1 32 div ssa_727 = u2u32 ssa_726
vec1 64 div ssa_728 = pack_64_2x32_split ssa_717, ssa_727
vec1 1 div ssa_729 = ieq ssa_728, ssa_0
vec1 32 div ssa_730 = iadd ssa_681, ssa_694
vec1 32 div ssa_731 = iadd ssa_676, ssa_730
vec1 64 div ssa_732 = pack_64_2x32_split ssa_677, ssa_731
vec1 64 div ssa_733 = uadd_sat ssa_732, ssa_40.k
vec1 64 div ssa_734 = bcsel ssa_729, ssa_733, ssa_41
vec1 32 div ssa_735 = unpack_64_2x32_split_x ssa_36.l
vec1 32 div ssa_736 = unpack_64_2x32_split_y ssa_36.l
vec1 32 div ssa_737 = unpack_64_2x32_split_x ssa_38.l
vec1 32 div ssa_738 = unpack_64_2x32_split_y ssa_38.l
vec1 32 div ssa_739 = umul_high ssa_735, ssa_737
vec1 32 div ssa_740 = imul ssa_735, ssa_737
vec1 64 div ssa_741 = pack_64_2x32_split ssa_740, ssa_739
vec1 64 div ssa_742 = ushr ssa_741, ssa_14
vec1 32 div ssa_743 = umul_high ssa_735, ssa_738
vec1 32 div ssa_744 = imul ssa_735, ssa_738
vec1 64 div ssa_745 = pack_64_2x32_split ssa_744, ssa_743
vec1 64 div ssa_746 = iadd ssa_745, ssa_742
vec1 32 div ssa_747 = u2u32 ssa_746
vec1 64 div ssa_748 = ushr ssa_746, ssa_14
vec1 32 div ssa_749 = umul_high ssa_735, ssa_1
vec1 64 div ssa_750 = pack_64_2x32_split ssa_1, ssa_749
vec1 64 div ssa_751 = iadd ssa_750, ssa_748
vec1 32 div ssa_752 = u2u32 ssa_751
vec1 64 div ssa_753 = ushr ssa_751, ssa_14
vec1 64 div ssa_754 = iadd ssa_750, ssa_753
vec1 32 div ssa_755 = u2u32 ssa_754
vec1 32 div ssa_756 = umul_high ssa_736, ssa_737
vec1 32 div ssa_757 = imul ssa_736, ssa_737
vec1 64 div ssa_758 = pack_64_2x32_split ssa_757, ssa_756
vec1 64 div ssa_759 = u2u64 ssa_747
vec1 64 div ssa_760 = iadd ssa_758, ssa_759
vec1 64 div ssa_761 = ushr ssa_760, ssa_14
vec1 32 div ssa_762 = umul_high ssa_736, ssa_738
vec1 32 div ssa_763 = imul ssa_736, ssa_738
vec1 64 div ssa_764 = pack_64_2x32_split ssa_763, ssa_762
vec1 64 div ssa_765 = u2u64 ssa_752
vec1 64 div ssa_766 = iadd ssa_764, ssa_765
vec1 64 div ssa_767 = iadd ssa_766, ssa_761
vec1 32 div ssa_768 = u2u32 ssa_767
vec1 64 div ssa_769 = ushr ssa_767, ssa_14
vec1 32 div ssa_770 = umul_high ssa_736, ssa_1
vec1 64 div ssa_771 = pack_64_2x32_split ssa_1, ssa_770
vec1 64 div ssa_772 = u2u64 ssa_755
vec1 64 div ssa_773 = iadd ssa_771, ssa_772
vec1 64 div ssa_774 = iadd ssa_773, ssa_769
vec1 32 div ssa_775 = u2u32 ssa_774
vec1 32 div ssa_776 = umul_high ssa_1, ssa_737
vec1 64 div ssa_777 = pack_64_2x32_split ssa_1, ssa_776
vec1 64 div ssa_778 = u2u64 ssa_768
vec1 64 div ssa_779 = iadd ssa_777, ssa_778
vec1 32 div ssa_780 = u2u32 ssa_779
vec1 64 div ssa_781 = ushr ssa_779, ssa_14
vec1 32 div ssa_782 = umul_high ssa_1, ssa_738
vec1 64 div ssa_783 = pack_64_2x32_split ssa_1, ssa_782
vec1 64 div ssa_784 = u2u64 ssa_775
vec1 64 div ssa_785 = iadd ssa_783, ssa_784
vec1 64 div ssa_786 = iadd ssa_785, ssa_781
vec1 32 div ssa_787 = u2u32 ssa_786
vec1 64 div ssa_788 = u2u64 ssa_787
vec1 64 div ssa_789 = iadd ssa_777, ssa_788
vec1 32 div ssa_790 = u2u32 ssa_789
vec1 64 div ssa_791 = pack_64_2x32_split ssa_780, ssa_790
vec1 1 div ssa_792 = ieq ssa_791, ssa_0
vec1 32 div ssa_793 = iadd ssa_744, ssa_757
vec1 32 div ssa_794 = iadd ssa_739, ssa_793
vec1 64 div ssa_795 = pack_64_2x32_split ssa_740, ssa_794
vec1 64 div ssa_796 = uadd_sat ssa_795, ssa_40.l
vec1 64 div ssa_797 = bcsel ssa_792, ssa_796, ssa_41
vec1 32 div ssa_798 = unpack_64_2x32_split_x ssa_36.m
vec1 32 div ssa_799 = unpack_64_2x32_split_y ssa_36.m
vec1 32 div ssa_800 = unpack_64_2x32_split_x ssa_38.m
vec1 32 div ssa_801 = unpack_64_2x32_split_y ssa_38.m
vec1 32 div ssa_802 = umul_high ssa_798, ssa_800
vec1 32 div ssa_803 = imul ssa_798, ssa_800
vec1 64 div ssa_804 = pack_64_2x32_split ssa_803, ssa_802
vec1 64 div ssa_805 = ushr ssa_804, ssa_14
vec1 32 div ssa_806 = umul_high ssa_798, ssa_801
vec1 32 div ssa_807 = imul ssa_798, ssa_801
vec1 64 div ssa_808 = pack_64_2x32_split ssa_807, ssa_806
vec1 64 div ssa_809 = iadd ssa_808, ssa_805
vec1 32 div ssa_810 = u2u32 ssa_809
vec1 64 div ssa_811 = ushr ssa_809, ssa_14
vec1 32 div ssa_812 = umul_high ssa_798, ssa_1
vec1 64 div ssa_813 = pack_64_2x32_split ssa_1, ssa_812
vec1 64 div ssa_814 = iadd ssa_813, ssa_811
vec1 32 div ssa_815 = u2u32 ssa_814
vec1 64 div ssa_816 = ushr ssa_814, ssa_14
vec1 64 div ssa_817 = iadd ssa_813, ssa_816
vec1 32 div ssa_818 = u2u32 ssa_817
vec1 32 div ssa_819 = umul_high ssa_799, ssa_800
vec1 32 div ssa_820 = imul ssa_799, ssa_800
vec1 64 div ssa_821 = pack_64_2x32_split ssa_820, ssa_819
vec1 64 div ssa_822 = u2u64 ssa_810
vec1 64 div ssa_823 = iadd ssa_821, ssa_822
vec1 64 div ssa_824 = ushr ssa_823, ssa_14
vec1 32 div ssa_825 = umul_high ssa_799, ssa_801
vec1 32 div ssa_826 = imul ssa_799, ssa_801
vec1 64 div ssa_827 = pack_64_2x32_split ssa_826, ssa_825
vec1 64 div ssa_828 = u2u64 ssa_815
vec1 64 div ssa_829 = iadd ssa_827, ssa_828
vec1 64 div ssa_830 = iadd ssa_829, ssa_824
vec1 32 div ssa_831 = u2u32 ssa_830
vec1 64 div ssa_832 = ushr ssa_830, ssa_14
vec1 32 div ssa_833 = umul_high ssa_799, ssa_1
vec1 64 div ssa_834 = pack_64_2x32_split ssa_1, ssa_833
vec1 64 div ssa_835 = u2u64 ssa_818
vec1 64 div ssa_836 = iadd ssa_834, ssa_835
vec1 64 div ssa_837 = iadd ssa_836, ssa_832
vec1 32 div ssa_838 = u2u32 ssa_837
vec1 32 div ssa_839 = umul_high ssa_1, ssa_800
vec1 64 div ssa_840 = pack_64_2x32_split ssa_1, ssa_839
vec1 64 div ssa_841 = u2u64 ssa_831
vec1 64 div ssa_842 = iadd ssa_840, ssa_841
vec1 32 div ssa_843 = u2u32 ssa_842
vec1 64 div ssa_844 = ushr ssa_842, ssa_14
vec1 32 div ssa_845 = umul_high ssa_1, ssa_801
vec1 64 div ssa_846 = pack_64_2x32_split ssa_1, ssa_845
vec1 64 div ssa_847 = u2u64 ssa_838
vec1 64 div ssa_848 = iadd ssa_846, ssa_847
vec1 64 div ssa_849 = iadd ssa_848, ssa_844
vec1 32 div ssa_850 = u2u32 ssa_849
vec1 64 div ssa_851 = u2u64 ssa_850
vec1 64 div ssa_852 = iadd ssa_840, ssa_851
vec1 32 div ssa_853 = u2u32 ssa_852
vec1 64 div ssa_854 = pack_64_2x32_split ssa_843, ssa_853
vec1 1 div ssa_855 = ieq ssa_854, ssa_0
vec1 32 div ssa_856 = iadd ssa_807, ssa_820
vec1 32 div ssa_857 = iadd ssa_802, ssa_856
vec1 64 div ssa_858 = pack_64_2x32_split ssa_803, ssa_857
vec1 64 div ssa_859 = uadd_sat ssa_858, ssa_40.m
vec1 64 div ssa_860 = bcsel ssa_855, ssa_859, ssa_41
vec1 32 div ssa_861 = unpack_64_2x32_split_x ssa_36.n
vec1 32 div ssa_862 = unpack_64_2x32_split_y ssa_36.n
vec1 32 div ssa_863 = unpack_64_2x32_split_x ssa_38.n
vec1 32 div ssa_864 = unpack_64_2x32_split_y ssa_38.n
vec1 32 div ssa_865 = umul_high ssa_861, ssa_863
vec1 32 div ssa_866 = imul ssa_861, ssa_863
vec1 64 div ssa_867 = pack_64_2x32_split ssa_866, ssa_865
vec1 64 div ssa_868 = ushr ssa_867, ssa_14
vec1 32 div ssa_869 = umul_high ssa_861, ssa_864
vec1 32 div ssa_870 = imul ssa_861, ssa_864
vec1 64 div ssa_871 = pack_64_2x32_split ssa_870, ssa_869
vec1 64 div ssa_872 = iadd ssa_871, ssa_868
vec1 32 div ssa_873 = u2u32 ssa_872
vec1 64 div ssa_874 = ushr ssa_872, ssa_14
vec1 32 div ssa_875 = umul_high ssa_861, ssa_1
vec1 64 div ssa_876 = pack_64_2x32_split ssa_1, ssa_875
vec1 64 div ssa_877 = iadd ssa_876, ssa_874
vec1 32 div ssa_878 = u2u32 ssa_877
vec1 64 div ssa_879 = ushr ssa_877, ssa_14
vec1 64 div ssa_880 = iadd ssa_876, ssa_879
vec1 32 div ssa_881 = u2u32 ssa_880
vec1 32 div ssa_882 = umul_high ssa_862, ssa_863
vec1 32 div ssa_883 = imul ssa_862, ssa_863
vec1 64 div ssa_884 = pack_64_2x32_split ssa_883, ssa_882
vec1 64 div ssa_885 = u2u64 ssa_873
vec1 64 div ssa_886 = iadd ssa_884, ssa_885
vec1 64 div ssa_887 = ushr ssa_886, ssa_14
vec1 32 div ssa_888 = umul_high ssa_862, ssa_864
vec1 32 div ssa_889 = imul ssa_862, ssa_864
vec1 64 div ssa_890 = pack_64_2x32_split ssa_889, ssa_888
vec1 64 div ssa_891 = u2u64 ssa_878
vec1 64 div ssa_892 = iadd ssa_890, ssa_891
vec1 64 div ssa_893 = iadd ssa_892, ssa_887
vec1 32 div ssa_894 = u2u32 ssa_893
vec1 64 div ssa_895 = ushr ssa_893, ssa_14
vec1 32 div ssa_896 = umul_high ssa_862, ssa_1
vec1 64 div ssa_897 = pack_64_2x32_split ssa_1, ssa_896
vec1 64 div ssa_898 = u2u64 ssa_881
vec1 64 div ssa_899 = iadd ssa_897, ssa_898
vec1 64 div ssa_900 = iadd ssa_899, ssa_895
vec1 32 div ssa_901 = u2u32 ssa_900
vec1 32 div ssa_902 = umul_high ssa_1, ssa_863
vec1 64 div ssa_903 = pack_64_2x32_split ssa_1, ssa_902
vec1 64 div ssa_904 = u2u64 ssa_894
vec1 64 div ssa_905 = iadd ssa_903, ssa_904
vec1 32 div ssa_906 = u2u32 ssa_905
vec1 64 div ssa_907 = ushr ssa_905, ssa_14
vec1 32 div ssa_908 = umul_high ssa_1, ssa_864
vec1 64 div ssa_909 = pack_64_2x32_split ssa_1, ssa_908
vec1 64 div ssa_910 = u2u64 ssa_901
vec1 64 div ssa_911 = iadd ssa_909, ssa_910
vec1 64 div ssa_912 = iadd ssa_911, ssa_907
vec1 32 div ssa_913 = u2u32 ssa_912
vec1 64 div ssa_914 = u2u64 ssa_913
vec1 64 div ssa_915 = iadd ssa_903, ssa_914
vec1 32 div ssa_916 = u2u32 ssa_915
vec1 64 div ssa_917 = pack_64_2x32_split ssa_906, ssa_916
vec1 1 div ssa_918 = ieq ssa_917, ssa_0
vec1 32 div ssa_919 = iadd ssa_870, ssa_883
vec1 32 div ssa_920 = iadd ssa_865, ssa_919
vec1 64 div ssa_921 = pack_64_2x32_split ssa_866, ssa_920
vec1 64 div ssa_922 = uadd_sat ssa_921, ssa_40.n
vec1 64 div ssa_923 = bcsel ssa_918, ssa_922, ssa_41
vec1 32 div ssa_924 = unpack_64_2x32_split_x ssa_36.o
vec1 32 div ssa_925 = unpack_64_2x32_split_y ssa_36.o
vec1 32 div ssa_926 = unpack_64_2x32_split_x ssa_38.o
vec1 32 div ssa_927 = unpack_64_2x32_split_y ssa_38.o
vec1 32 div ssa_928 = umul_high ssa_924, ssa_926
vec1 32 div ssa_929 = imul ssa_924, ssa_926
vec1 64 div ssa_930 = pack_64_2x32_split ssa_929, ssa_928
vec1 64 div ssa_931 = ushr ssa_930, ssa_14
vec1 32 div ssa_932 = umul_high ssa_924, ssa_927
vec1 32 div ssa_933 = imul ssa_924, ssa_927
vec1 64 div ssa_934 = pack_64_2x32_split ssa_933, ssa_932
vec1 64 div ssa_935 = iadd ssa_934, ssa_931
vec1 32 div ssa_936 = u2u32 ssa_935
vec1 64 div ssa_937 = ushr ssa_935, ssa_14
vec1 32 div ssa_938 = umul_high ssa_924, ssa_1
vec1 64 div ssa_939 = pack_64_2x32_split ssa_1, ssa_938
vec1 64 div ssa_940 = iadd ssa_939, ssa_937
vec1 32 div ssa_941 = u2u32 ssa_940
vec1 64 div ssa_942 = ushr ssa_940, ssa_14
vec1 64 div ssa_943 = iadd ssa_939, ssa_942
vec1 32 div ssa_944 = u2u32 ssa_943
vec1 32 div ssa_945 = umul_high ssa_925, ssa_926
vec1 32 div ssa_946 = imul ssa_925, ssa_926
vec1 64 div ssa_947 = pack_64_2x32_split ssa_946, ssa_945
vec1 64 div ssa_948 = u2u64 ssa_936
vec1 64 div ssa_949 = iadd ssa_947, ssa_948
vec1 64 div ssa_950 = ushr ssa_949, ssa_14
vec1 32 div ssa_951 = umul_high ssa_925, ssa_927
vec1 32 div ssa_952 = imul ssa_925, ssa_927
vec1 64 div ssa_953 = pack_64_2x32_split ssa_952, ssa_951
vec1 64 div ssa_954 = u2u64 ssa_941
vec1 64 div ssa_955 = iadd ssa_953, ssa_954
vec1 64 div ssa_956 = iadd ssa_955, ssa_950
vec1 32 div ssa_957 = u2u32 ssa_956
vec1 64 div ssa_958 = ushr ssa_956, ssa_14
vec1 32 div ssa_959 = umul_high ssa_925, ssa_1
vec1 64 div ssa_960 = pack_64_2x32_split ssa_1, ssa_959
vec1 64 div ssa_961 = u2u64 ssa_944
vec1 64 div ssa_962 = iadd ssa_960, ssa_961
vec1 64 div ssa_963 = iadd ssa_962, ssa_958
vec1 32 div ssa_964 = u2u32 ssa_963
vec1 32 div ssa_965 = umul_high ssa_1, ssa_926
vec1 64 div ssa_966 = pack_64_2x32_split ssa_1, ssa_965
vec1 64 div ssa_967 = u2u64 ssa_957
vec1 64 div ssa_968 = iadd ssa_966, ssa_967
vec1 32 div ssa_969 = u2u32 ssa_968
vec1 64 div ssa_970 = ushr ssa_968, ssa_14
vec1 32 div ssa_971 = umul_high ssa_1, ssa_927
vec1 64 div ssa_972 = pack_64_2x32_split ssa_1, ssa_971
vec1 64 div ssa_973 = u2u64 ssa_964
vec1 64 div ssa_974 = iadd ssa_972, ssa_973
vec1 64 div ssa_975 = iadd ssa_974, ssa_970
vec1 32 div ssa_976 = u2u32 ssa_975
vec1 64 div ssa_977 = u2u64 ssa_976
vec1 64 div ssa_978 = iadd ssa_966, ssa_977
vec1 32 div ssa_979 = u2u32 ssa_978
vec1 64 div ssa_980 = pack_64_2x32_split ssa_969, ssa_979
vec1 1 div ssa_981 = ieq ssa_980, ssa_0
vec1 32 div ssa_982 = iadd ssa_933, ssa_946
vec1 32 div ssa_983 = iadd ssa_928, ssa_982
vec1 64 div ssa_984 = pack_64_2x32_split ssa_929, ssa_983
vec1 64 div ssa_985 = uadd_sat ssa_984, ssa_40.o
vec1 64 div ssa_986 = bcsel ssa_981, ssa_985, ssa_41
vec1 32 div ssa_987 = unpack_64_2x32_split_x ssa_36.p
vec1 32 div ssa_988 = unpack_64_2x32_split_y ssa_36.p
vec1 32 div ssa_989 = unpack_64_2x32_split_x ssa_38.p
vec1 32 div ssa_990 = unpack_64_2x32_split_y ssa_38.p
vec1 32 div ssa_991 = umul_high ssa_987, ssa_989
vec1 32 div ssa_992 = imul ssa_987, ssa_989
vec1 64 div ssa_993 = pack_64_2x32_split ssa_992, ssa_991
vec1 64 div ssa_994 = ushr ssa_993, ssa_14
vec1 32 div ssa_995 = umul_high ssa_987, ssa_990
vec1 32 div ssa_996 = imul ssa_987, ssa_990
vec1 64 div ssa_997 = pack_64_2x32_split ssa_996, ssa_995
vec1 64 div ssa_998 = iadd ssa_997, ssa_994
vec1 32 div ssa_999 = u2u32 ssa_998
vec1 64 div ssa_1000 = ushr ssa_998, ssa_14
vec1 32 div ssa_1001 = umul_high ssa_987, ssa_1
vec1 64 div ssa_1002 = pack_64_2x32_split ssa_1, ssa_1001
vec1 64 div ssa_1003 = iadd ssa_1002, ssa_1000
vec1 32 div ssa_1004 = u2u32 ssa_1003
vec1 64 div ssa_1005 = ushr ssa_1003, ssa_14
vec1 64 div ssa_1006 = iadd ssa_1002, ssa_1005
vec1 32 div ssa_1007 = u2u32 ssa_1006
vec1 32 div ssa_1008 = umul_high ssa_988, ssa_989
vec1 32 div ssa_1009 = imul ssa_988, ssa_989
vec1 64 div ssa_1010 = pack_64_2x32_split ssa_1009, ssa_1008
vec1 64 div ssa_1011 = u2u64 ssa_999
vec1 64 div ssa_1012 = iadd ssa_1010, ssa_1011
vec1 64 div ssa_1013 = ushr ssa_1012, ssa_14
vec1 32 div ssa_1014 = umul_high ssa_988, ssa_990
vec1 32 div ssa_1015 = imul ssa_988, ssa_990
vec1 64 div ssa_1016 = pack_64_2x32_split ssa_1015, ssa_1014
vec1 64 div ssa_1017 = u2u64 ssa_1004
vec1 64 div ssa_1018 = iadd ssa_1016, ssa_1017
vec1 64 div ssa_1019 = iadd ssa_1018, ssa_1013
vec1 32 div ssa_1020 = u2u32 ssa_1019
vec1 64 div ssa_1021 = ushr ssa_1019, ssa_14
vec1 32 div ssa_1022 = umul_high ssa_988, ssa_1
vec1 64 div ssa_1023 = pack_64_2x32_split ssa_1, ssa_1022
vec1 64 div ssa_1024 = u2u64 ssa_1007
vec1 64 div ssa_1025 = iadd ssa_1023, ssa_1024
vec1 64 div ssa_1026 = iadd ssa_1025, ssa_1021
vec1 32 div ssa_1027 = u2u32 ssa_1026
vec1 32 div ssa_1028 = umul_high ssa_1, ssa_989
vec1 64 div ssa_1029 = pack_64_2x32_split ssa_1, ssa_1028
vec1 64 div ssa_1030 = u2u64 ssa_1020
vec1 64 div ssa_1031 = iadd ssa_1029, ssa_1030
vec1 32 div ssa_1032 = u2u32 ssa_1031
vec1 64 div ssa_1033 = ushr ssa_1031, ssa_14
vec1 32 div ssa_1034 = umul_high ssa_1, ssa_990
vec1 64 div ssa_1035 = pack_64_2x32_split ssa_1, ssa_1034
vec1 64 div ssa_1036 = u2u64 ssa_1027
vec1 64 div ssa_1037 = iadd ssa_1035, ssa_1036
vec1 64 div ssa_1038 = iadd ssa_1037, ssa_1033
vec1 32 div ssa_1039 = u2u32 ssa_1038
vec1 64 div ssa_1040 = u2u64 ssa_1039
vec1 64 div ssa_1041 = iadd ssa_1029, ssa_1040
vec1 32 div ssa_1042 = u2u32 ssa_1041
vec1 64 div ssa_1043 = pack_64_2x32_split ssa_1032, ssa_1042
vec1 1 div ssa_1044 = ieq ssa_1043, ssa_0
vec1 32 div ssa_1045 = iadd ssa_996, ssa_1009
vec1 32 div ssa_1046 = iadd ssa_991, ssa_1045
vec1 64 div ssa_1047 = pack_64_2x32_split ssa_992, ssa_1046
vec1 64 div ssa_1048 = uadd_sat ssa_1047, ssa_40.p
vec1 64 div ssa_1049 = bcsel ssa_1044, ssa_1048, ssa_41
vec16 64 div ssa_1050 = vec16 ssa_104, ssa_167, ssa_230, ssa_293, ssa_356, ssa_419, ssa_482, ssa_545, ssa_608, ssa_671, ssa_734, ssa_797, ssa_860, ssa_923, ssa_986, ssa_1049
vec1 64 div ssa_1051 = iadd ssa_13, ssa_34
intrinsic store_global (ssa_1050, ssa_1051) (wrmask=abcdefghijklmnop, access=0, align_mul=128, align_offset=0)
/* succs: block_1 */
block block_1:
}
radeonsi: Compiling shader 1
Compute Shader LLVM IR:
; ModuleID = 'mesa-shader'
source_filename = "mesa-shader"
target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:7"
target triple = "amdgcn--"
@compute_lds = external addrspace(3) global [0 x i8], align 65536
define amdgpu_cs void @main(ptr addrspace(6) inreg noalias align 4 dereferenceable(18446744073709551615) %0, ptr addrspace(6) inreg noalias align 4 dereferenceable(18446744073709551615) %1, ptr addrspace(6) inreg noalias align 4 dereferenceable(18446744073709551615) %2, ptr addrspace(6) inreg noalias align 4 dereferenceable(18446744073709551615) %3, i32 inreg %4, i32 inreg %5, <3 x i32> %6) #0 {
main_body:
%7 = ptrtoint ptr addrspace(6) %2 to i32
%8 = insertelement <4 x i32> <i32 poison, i32 32768, i32 1024, i32 822177708>, i32 %7, i64 0
%9 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %8, i32 0, i32 0) #3, !invariant.load !0
%10 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %8, i32 4, i32 0) #3, !invariant.load !0
%11 = insertelement <2 x float> undef, float %9, i64 0
%12 = insertelement <2 x float> %11, float %10, i64 1
%13 = bitcast <2 x float> %12 to i64
%14 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %8, i32 8, i32 0) #3, !invariant.load !0
%15 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %8, i32 12, i32 0) #3, !invariant.load !0
%16 = insertelement <2 x float> undef, float %14, i64 0
%17 = insertelement <2 x float> %16, float %15, i64 1
%18 = bitcast <2 x float> %17 to i64
%19 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %8, i32 16, i32 0) #3, !invariant.load !0
%20 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %8, i32 20, i32 0) #3, !invariant.load !0
%21 = insertelement <2 x float> undef, float %19, i64 0
%22 = insertelement <2 x float> %21, float %20, i64 1
%23 = bitcast <2 x float> %22 to i64
%24 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %8, i32 24, i32 0) #3, !invariant.load !0
%25 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %8, i32 28, i32 0) #3, !invariant.load !0
%26 = insertelement <2 x float> undef, float %24, i64 0
%27 = insertelement <2 x float> %26, float %25, i64 1
%28 = bitcast <2 x float> %27 to i64
%29 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %8, i32 32, i32 0) #3, !invariant.load !0
%30 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> %8, i32 36, i32 0) #3, !invariant.load !0
%31 = insertelement <6 x float> undef, float %29, i64 0
%32 = insertelement <6 x float> %31, float %30, i64 1
%33 = bitcast <6 x float> %32 to <3 x i64>
%34 = and i32 %4, 1023
%35 = extractelement <3 x i32> %6, i64 0
%36 = zext i32 %35 to i64
%37 = zext i32 %5 to i64
%38 = zext i32 %34 to i64
%39 = mul nuw nsw i64 %37, %38
%40 = lshr i64 %39, 32
%41 = trunc i64 %40 to i32
%42 = mul i32 %34, %5
%43 = insertelement <2 x i32> undef, i32 %42, i64 0
%44 = insertelement <2 x i32> %43, i32 %41, i64 1
%45 = bitcast <2 x i32> %44 to i64
%46 = add nuw i64 %45, %36
%47 = extractelement <3 x i64> %33, i64 0
%48 = add i64 %46, %47
%sext = shl i64 %48, 32
%49 = ashr exact i64 %sext, 25
%50 = add i64 %49, %13
%51 = inttoptr i64 %50 to ptr addrspace(1)
%52 = load <16 x i64>, ptr addrspace(1) %51, align 128
%53 = add i64 %49, %18
%54 = inttoptr i64 %53 to ptr addrspace(1)
%55 = load <16 x i64>, ptr addrspace(1) %54, align 128
%56 = add i64 %49, %23
%57 = inttoptr i64 %56 to ptr addrspace(1)
%58 = load <16 x i64>, ptr addrspace(1) %57, align 128
%59 = extractelement <16 x i64> %52, i64 0
%60 = trunc i64 %59 to i32
%extelt.offset = lshr i64 %59, 32
%61 = trunc i64 %extelt.offset to i32
%62 = extractelement <16 x i64> %55, i64 0
%63 = trunc i64 %62 to i32
%extelt.offset2 = lshr i64 %62, 32
%64 = trunc i64 %extelt.offset2 to i32
%65 = and i64 %59, 4294967295
%66 = and i64 %62, 4294967295
%67 = mul nuw i64 %65, %66
%68 = lshr i64 %67, 32
%69 = trunc i64 %68 to i32
%70 = mul i32 %60, %63
%71 = insertelement <2 x i32> undef, i32 %70, i64 0
%72 = insertelement <2 x i32> %71, i32 %69, i64 1
%73 = bitcast <2 x i32> %72 to i64
%74 = lshr i64 %73, 32
%75 = mul nuw i64 %65, %extelt.offset2
%76 = lshr i64 %75, 32
%77 = trunc i64 %76 to i32
%78 = mul i32 %60, %64
%79 = insertelement <2 x i32> undef, i32 %78, i64 0
%80 = insertelement <2 x i32> %79, i32 %77, i64 1
%81 = bitcast <2 x i32> %80 to i64
%82 = add i64 %74, %81
%83 = lshr i64 %82, 32
%84 = mul nuw i64 %extelt.offset, %66
%85 = lshr i64 %84, 32
%86 = trunc i64 %85 to i32
%87 = mul i32 %61, %63
%88 = insertelement <2 x i32> undef, i32 %87, i64 0
%89 = insertelement <2 x i32> %88, i32 %86, i64 1
%90 = bitcast <2 x i32> %89 to i64
%91 = and i64 %82, 4294967295
%92 = add i64 %91, %90
%93 = lshr i64 %92, 32
%94 = mul nuw i64 %extelt.offset, %extelt.offset2
%95 = lshr i64 %94, 32
%96 = trunc i64 %95 to i32
%97 = mul i32 %61, %64
%98 = insertelement <2 x i32> undef, i32 %97, i64 0
%99 = insertelement <2 x i32> %98, i32 %96, i64 1
%100 = bitcast <2 x i32> %99 to i64
%101 = add i64 %83, %100
%102 = add i64 %101, %93
%103 = trunc i64 %102 to i32
%104 = lshr i64 %102, 32
%105 = trunc i64 %104 to i32
%106 = insertelement <2 x i32> undef, i32 %103, i64 0
%107 = insertelement <2 x i32> %106, i32 %105, i64 1
%108 = bitcast <2 x i32> %107 to i64
%109 = icmp eq i64 %108, 0
%110 = add i32 %78, %87
%111 = add i32 %110, %69
%112 = insertelement <2 x i32> %71, i32 %111, i64 1
%113 = bitcast <2 x i32> %112 to i64
%114 = extractelement <16 x i64> %58, i64 0
%115 = call i64 @llvm.uadd.sat.i64(i64 %113, i64 %114) #3
%116 = select i1 %109, i64 %115, i64 -1
%117 = extractelement <16 x i64> %52, i64 1
%118 = trunc i64 %117 to i32
%extelt.offset4 = lshr i64 %117, 32
%119 = trunc i64 %extelt.offset4 to i32
%120 = extractelement <16 x i64> %55, i64 1
%121 = trunc i64 %120 to i32
%extelt.offset6 = lshr i64 %120, 32
%122 = trunc i64 %extelt.offset6 to i32
%123 = and i64 %117, 4294967295
%124 = and i64 %120, 4294967295
%125 = mul nuw i64 %123, %124
%126 = lshr i64 %125, 32
%127 = trunc i64 %126 to i32
%128 = mul i32 %118, %121
%129 = insertelement <2 x i32> undef, i32 %128, i64 0
%130 = insertelement <2 x i32> %129, i32 %127, i64 1
%131 = bitcast <2 x i32> %130 to i64
%132 = lshr i64 %131, 32
%133 = mul nuw i64 %123, %extelt.offset6
%134 = lshr i64 %133, 32
%135 = trunc i64 %134 to i32
%136 = mul i32 %118, %122
%137 = insertelement <2 x i32> undef, i32 %136, i64 0
%138 = insertelement <2 x i32> %137, i32 %135, i64 1
%139 = bitcast <2 x i32> %138 to i64
%140 = add i64 %132, %139
%141 = lshr i64 %140, 32
%142 = mul nuw i64 %extelt.offset4, %124
%143 = lshr i64 %142, 32
%144 = trunc i64 %143 to i32
%145 = mul i32 %119, %121
%146 = insertelement <2 x i32> undef, i32 %145, i64 0
%147 = insertelement <2 x i32> %146, i32 %144, i64 1
%148 = bitcast <2 x i32> %147 to i64
%149 = and i64 %140, 4294967295
%150 = add i64 %149, %148
%151 = lshr i64 %150, 32
%152 = mul nuw i64 %extelt.offset4, %extelt.offset6
%153 = lshr i64 %152, 32
%154 = trunc i64 %153 to i32
%155 = mul i32 %119, %122
%156 = insertelement <2 x i32> undef, i32 %155, i64 0
%157 = insertelement <2 x i32> %156, i32 %154, i64 1
%158 = bitcast <2 x i32> %157 to i64
%159 = add i64 %141, %158
%160 = add i64 %159, %151
%161 = trunc i64 %160 to i32
%162 = lshr i64 %160, 32
%163 = trunc i64 %162 to i32
%164 = insertelement <2 x i32> undef, i32 %161, i64 0
%165 = insertelement <2 x i32> %164, i32 %163, i64 1
%166 = bitcast <2 x i32> %165 to i64
%167 = icmp eq i64 %166, 0
%168 = add i32 %136, %145
%169 = add i32 %168, %127
%170 = insertelement <2 x i32> %129, i32 %169, i64 1
%171 = bitcast <2 x i32> %170 to i64
%172 = extractelement <16 x i64> %58, i64 1
%173 = call i64 @llvm.uadd.sat.i64(i64 %171, i64 %172) #3
%174 = select i1 %167, i64 %173, i64 -1
%175 = extractelement <16 x i64> %52, i64 2
%176 = trunc i64 %175 to i32
%extelt.offset8 = lshr i64 %175, 32
%177 = trunc i64 %extelt.offset8 to i32
%178 = extractelement <16 x i64> %55, i64 2
%179 = trunc i64 %178 to i32
%extelt.offset10 = lshr i64 %178, 32
%180 = trunc i64 %extelt.offset10 to i32
%181 = and i64 %175, 4294967295
%182 = and i64 %178, 4294967295
%183 = mul nuw i64 %181, %182
%184 = lshr i64 %183, 32
%185 = trunc i64 %184 to i32
%186 = mul i32 %176, %179
%187 = insertelement <2 x i32> undef, i32 %186, i64 0
%188 = insertelement <2 x i32> %187, i32 %185, i64 1
%189 = bitcast <2 x i32> %188 to i64
%190 = lshr i64 %189, 32
%191 = mul nuw i64 %181, %extelt.offset10
%192 = lshr i64 %191, 32
%193 = trunc i64 %192 to i32
%194 = mul i32 %176, %180
%195 = insertelement <2 x i32> undef, i32 %194, i64 0
%196 = insertelement <2 x i32> %195, i32 %193, i64 1
%197 = bitcast <2 x i32> %196 to i64
%198 = add i64 %190, %197
%199 = lshr i64 %198, 32
%200 = mul nuw i64 %extelt.offset8, %182
%201 = lshr i64 %200, 32
%202 = trunc i64 %201 to i32
%203 = mul i32 %177, %179
%204 = insertelement <2 x i32> undef, i32 %203, i64 0
%205 = insertelement <2 x i32> %204, i32 %202, i64 1
%206 = bitcast <2 x i32> %205 to i64
%207 = and i64 %198, 4294967295
%208 = add i64 %207, %206
%209 = lshr i64 %208, 32
%210 = mul nuw i64 %extelt.offset8, %extelt.offset10
%211 = lshr i64 %210, 32
%212 = trunc i64 %211 to i32
%213 = mul i32 %177, %180
%214 = insertelement <2 x i32> undef, i32 %213, i64 0
%215 = insertelement <2 x i32> %214, i32 %212, i64 1
%216 = bitcast <2 x i32> %215 to i64
%217 = add i64 %199, %216
%218 = add i64 %217, %209
%219 = trunc i64 %218 to i32
%220 = lshr i64 %218, 32
%221 = trunc i64 %220 to i32
%222 = insertelement <2 x i32> undef, i32 %219, i64 0
%223 = insertelement <2 x i32> %222, i32 %221, i64 1
%224 = bitcast <2 x i32> %223 to i64
%225 = icmp eq i64 %224, 0
%226 = add i32 %194, %203
%227 = add i32 %226, %185
%228 = insertelement <2 x i32> %187, i32 %227, i64 1
%229 = bitcast <2 x i32> %228 to i64
%230 = extractelement <16 x i64> %58, i64 2
%231 = call i64 @llvm.uadd.sat.i64(i64 %229, i64 %230) #3
%232 = select i1 %225, i64 %231, i64 -1
%233 = extractelement <16 x i64> %52, i64 3
%234 = trunc i64 %233 to i32
%extelt.offset12 = lshr i64 %233, 32
%235 = trunc i64 %extelt.offset12 to i32
%236 = extractelement <16 x i64> %55, i64 3
%237 = trunc i64 %236 to i32
%extelt.offset14 = lshr i64 %236, 32
%238 = trunc i64 %extelt.offset14 to i32
%239 = and i64 %233, 4294967295
%240 = and i64 %236, 4294967295
%241 = mul nuw i64 %239, %240
%242 = lshr i64 %241, 32
%243 = trunc i64 %242 to i32
%244 = mul i32 %234, %237
%245 = insertelement <2 x i32> undef, i32 %244, i64 0
%246 = insertelement <2 x i32> %245, i32 %243, i64 1
%247 = bitcast <2 x i32> %246 to i64
%248 = lshr i64 %247, 32
%249 = mul nuw i64 %239, %extelt.offset14
%250 = lshr i64 %249, 32
%251 = trunc i64 %250 to i32
%252 = mul i32 %234, %238
%253 = insertelement <2 x i32> undef, i32 %252, i64 0
%254 = insertelement <2 x i32> %253, i32 %251, i64 1
%255 = bitcast <2 x i32> %254 to i64
%256 = add i64 %248, %255
%257 = lshr i64 %256, 32
%258 = mul nuw i64 %extelt.offset12, %240
%259 = lshr i64 %258, 32
%260 = trunc i64 %259 to i32
%261 = mul i32 %235, %237
%262 = insertelement <2 x i32> undef, i32 %261, i64 0
%263 = insertelement <2 x i32> %262, i32 %260, i64 1
%264 = bitcast <2 x i32> %263 to i64
%265 = and i64 %256, 4294967295
%266 = add i64 %265, %264
%267 = lshr i64 %266, 32
%268 = mul nuw i64 %extelt.offset12, %extelt.offset14
%269 = lshr i64 %268, 32
%270 = trunc i64 %269 to i32
%271 = mul i32 %235, %238
%272 = insertelement <2 x i32> undef, i32 %271, i64 0
%273 = insertelement <2 x i32> %272, i32 %270, i64 1
%274 = bitcast <2 x i32> %273 to i64
%275 = add i64 %257, %274
%276 = add i64 %275, %267
%277 = trunc i64 %276 to i32
%278 = lshr i64 %276, 32
%279 = trunc i64 %278 to i32
%280 = insertelement <2 x i32> undef, i32 %277, i64 0
%281 = insertelement <2 x i32> %280, i32 %279, i64 1
%282 = bitcast <2 x i32> %281 to i64
%283 = icmp eq i64 %282, 0
%284 = add i32 %252, %261
%285 = add i32 %284, %243
%286 = insertelement <2 x i32> %245, i32 %285, i64 1
%287 = bitcast <2 x i32> %286 to i64
%288 = extractelement <16 x i64> %58, i64 3
%289 = call i64 @llvm.uadd.sat.i64(i64 %287, i64 %288) #3
%290 = select i1 %283, i64 %289, i64 -1
%291 = extractelement <16 x i64> %52, i64 4
%292 = trunc i64 %291 to i32
%extelt.offset16 = lshr i64 %291, 32
%293 = trunc i64 %extelt.offset16 to i32
%294 = extractelement <16 x i64> %55, i64 4
%295 = trunc i64 %294 to i32
%extelt.offset18 = lshr i64 %294, 32
%296 = trunc i64 %extelt.offset18 to i32
%297 = and i64 %291, 4294967295
%298 = and i64 %294, 4294967295
%299 = mul nuw i64 %297, %298
%300 = lshr i64 %299, 32
%301 = trunc i64 %300 to i32
%302 = mul i32 %292, %295
%303 = insertelement <2 x i32> undef, i32 %302, i64 0
%304 = insertelement <2 x i32> %303, i32 %301, i64 1
%305 = bitcast <2 x i32> %304 to i64
%306 = lshr i64 %305, 32
%307 = mul nuw i64 %297, %extelt.offset18
%308 = lshr i64 %307, 32
%309 = trunc i64 %308 to i32
%310 = mul i32 %292, %296
%311 = insertelement <2 x i32> undef, i32 %310, i64 0
%312 = insertelement <2 x i32> %311, i32 %309, i64 1
%313 = bitcast <2 x i32> %312 to i64
%314 = add i64 %306, %313
%315 = lshr i64 %314, 32
%316 = mul nuw i64 %extelt.offset16, %298
%317 = lshr i64 %316, 32
%318 = trunc i64 %317 to i32
%319 = mul i32 %293, %295
%320 = insertelement <2 x i32> undef, i32 %319, i64 0
%321 = insertelement <2 x i32> %320, i32 %318, i64 1
%322 = bitcast <2 x i32> %321 to i64
%323 = and i64 %314, 4294967295
%324 = add i64 %323, %322
%325 = lshr i64 %324, 32
%326 = mul nuw i64 %extelt.offset16, %extelt.offset18
%327 = lshr i64 %326, 32
%328 = trunc i64 %327 to i32
%329 = mul i32 %293, %296
%330 = insertelement <2 x i32> undef, i32 %329, i64 0
%331 = insertelement <2 x i32> %330, i32 %328, i64 1
%332 = bitcast <2 x i32> %331 to i64
%333 = add i64 %315, %332
%334 = add i64 %333, %325
%335 = trunc i64 %334 to i32
%336 = lshr i64 %334, 32
%337 = trunc i64 %336 to i32
%338 = insertelement <2 x i32> undef, i32 %335, i64 0
%339 = insertelement <2 x i32> %338, i32 %337, i64 1
%340 = bitcast <2 x i32> %339 to i64
%341 = icmp eq i64 %340, 0
%342 = add i32 %310, %319
%343 = add i32 %342, %301
%344 = insertelement <2 x i32> %303, i32 %343, i64 1
%345 = bitcast <2 x i32> %344 to i64
%346 = extractelement <16 x i64> %58, i64 4
%347 = call i64 @llvm.uadd.sat.i64(i64 %345, i64 %346) #3
%348 = select i1 %341, i64 %347, i64 -1
%349 = extractelement <16 x i64> %52, i64 5
%350 = trunc i64 %349 to i32
%extelt.offset20 = lshr i64 %349, 32
%351 = trunc i64 %extelt.offset20 to i32
%352 = extractelement <16 x i64> %55, i64 5
%353 = trunc i64 %352 to i32
%extelt.offset22 = lshr i64 %352, 32
%354 = trunc i64 %extelt.offset22 to i32
%355 = and i64 %349, 4294967295
%356 = and i64 %352, 4294967295
%357 = mul nuw i64 %355, %356
%358 = lshr i64 %357, 32
%359 = trunc i64 %358 to i32
%360 = mul i32 %350, %353
%361 = insertelement <2 x i32> undef, i32 %360, i64 0
%362 = insertelement <2 x i32> %361, i32 %359, i64 1
%363 = bitcast <2 x i32> %362 to i64
%364 = lshr i64 %363, 32
%365 = mul nuw i64 %355, %extelt.offset22
%366 = lshr i64 %365, 32
%367 = trunc i64 %366 to i32
%368 = mul i32 %350, %354
%369 = insertelement <2 x i32> undef, i32 %368, i64 0
%370 = insertelement <2 x i32> %369, i32 %367, i64 1
%371 = bitcast <2 x i32> %370 to i64
%372 = add i64 %364, %371
%373 = lshr i64 %372, 32
%374 = mul nuw i64 %extelt.offset20, %356
%375 = lshr i64 %374, 32
%376 = trunc i64 %375 to i32
%377 = mul i32 %351, %353
%378 = insertelement <2 x i32> undef, i32 %377, i64 0
%379 = insertelement <2 x i32> %378, i32 %376, i64 1
%380 = bitcast <2 x i32> %379 to i64
%381 = and i64 %372, 4294967295
%382 = add i64 %381, %380
%383 = lshr i64 %382, 32
%384 = mul nuw i64 %extelt.offset20, %extelt.offset22
%385 = lshr i64 %384, 32
%386 = trunc i64 %385 to i32
%387 = mul i32 %351, %354
%388 = insertelement <2 x i32> undef, i32 %387, i64 0
%389 = insertelement <2 x i32> %388, i32 %386, i64 1
%390 = bitcast <2 x i32> %389 to i64
%391 = add i64 %373, %390
%392 = add i64 %391, %383
%393 = trunc i64 %392 to i32
%394 = lshr i64 %392, 32
%395 = trunc i64 %394 to i32
%396 = insertelement <2 x i32> undef, i32 %393, i64 0
%397 = insertelement <2 x i32> %396, i32 %395, i64 1
%398 = bitcast <2 x i32> %397 to i64
%399 = icmp eq i64 %398, 0
%400 = add i32 %368, %377
%401 = add i32 %400, %359
%402 = insertelement <2 x i32> %361, i32 %401, i64 1
%403 = bitcast <2 x i32> %402 to i64
%404 = extractelement <16 x i64> %58, i64 5
%405 = call i64 @llvm.uadd.sat.i64(i64 %403, i64 %404) #3
%406 = select i1 %399, i64 %405, i64 -1
%407 = extractelement <16 x i64> %52, i64 6
%408 = trunc i64 %407 to i32
%extelt.offset24 = lshr i64 %407, 32
%409 = trunc i64 %extelt.offset24 to i32
%410 = extractelement <16 x i64> %55, i64 6
%411 = trunc i64 %410 to i32
%extelt.offset26 = lshr i64 %410, 32
%412 = trunc i64 %extelt.offset26 to i32
%413 = and i64 %407, 4294967295
%414 = and i64 %410, 4294967295
%415 = mul nuw i64 %413, %414
%416 = lshr i64 %415, 32
%417 = trunc i64 %416 to i32
%418 = mul i32 %408, %411
%419 = insertelement <2 x i32> undef, i32 %418, i64 0
%420 = insertelement <2 x i32> %419, i32 %417, i64 1
%421 = bitcast <2 x i32> %420 to i64
%422 = lshr i64 %421, 32
%423 = mul nuw i64 %413, %extelt.offset26
%424 = lshr i64 %423, 32
%425 = trunc i64 %424 to i32
%426 = mul i32 %408, %412
%427 = insertelement <2 x i32> undef, i32 %426, i64 0
%428 = insertelement <2 x i32> %427, i32 %425, i64 1
%429 = bitcast <2 x i32> %428 to i64
%430 = add i64 %422, %429
%431 = lshr i64 %430, 32
%432 = mul nuw i64 %extelt.offset24, %414
%433 = lshr i64 %432, 32
%434 = trunc i64 %433 to i32
%435 = mul i32 %409, %411
%436 = insertelement <2 x i32> undef, i32 %435, i64 0
%437 = insertelement <2 x i32> %436, i32 %434, i64 1
%438 = bitcast <2 x i32> %437 to i64
%439 = and i64 %430, 4294967295
%440 = add i64 %439, %438
%441 = lshr i64 %440, 32
%442 = mul nuw i64 %extelt.offset24, %extelt.offset26
%443 = lshr i64 %442, 32
%444 = trunc i64 %443 to i32
%445 = mul i32 %409, %412
%446 = insertelement <2 x i32> undef, i32 %445, i64 0
%447 = insertelement <2 x i32> %446, i32 %444, i64 1
%448 = bitcast <2 x i32> %447 to i64
%449 = add i64 %431, %448
%450 = add i64 %449, %441
%451 = trunc i64 %450 to i32
%452 = lshr i64 %450, 32
%453 = trunc i64 %452 to i32
%454 = insertelement <2 x i32> undef, i32 %451, i64 0
%455 = insertelement <2 x i32> %454, i32 %453, i64 1
%456 = bitcast <2 x i32> %455 to i64
%457 = icmp eq i64 %456, 0
%458 = add i32 %426, %435
%459 = add i32 %458, %417
%460 = insertelement <2 x i32> %419, i32 %459, i64 1
%461 = bitcast <2 x i32> %460 to i64
%462 = extractelement <16 x i64> %58, i64 6
%463 = call i64 @llvm.uadd.sat.i64(i64 %461, i64 %462) #3
%464 = select i1 %457, i64 %463, i64 -1
%465 = extractelement <16 x i64> %52, i64 7
%466 = trunc i64 %465 to i32
%extelt.offset28 = lshr i64 %465, 32
%467 = trunc i64 %extelt.offset28 to i32
%468 = extractelement <16 x i64> %55, i64 7
%469 = trunc i64 %468 to i32
%extelt.offset30 = lshr i64 %468, 32
%470 = trunc i64 %extelt.offset30 to i32
%471 = and i64 %465, 4294967295
%472 = and i64 %468, 4294967295
%473 = mul nuw i64 %471, %472
%474 = lshr i64 %473, 32
%475 = trunc i64 %474 to i32
%476 = mul i32 %466, %469
%477 = insertelement <2 x i32> undef, i32 %476, i64 0
%478 = insertelement <2 x i32> %477, i32 %475, i64 1
%479 = bitcast <2 x i32> %478 to i64
%480 = lshr i64 %479, 32
%481 = mul nuw i64 %471, %extelt.offset30
%482 = lshr i64 %481, 32
%483 = trunc i64 %482 to i32
%484 = mul i32 %466, %470
%485 = insertelement <2 x i32> undef, i32 %484, i64 0
%486 = insertelement <2 x i32> %485, i32 %483, i64 1
%487 = bitcast <2 x i32> %486 to i64
%488 = add i64 %480, %487
%489 = lshr i64 %488, 32
%490 = mul nuw i64 %extelt.offset28, %472
%491 = lshr i64 %490, 32
%492 = trunc i64 %491 to i32
%493 = mul i32 %467, %469
%494 = insertelement <2 x i32> undef, i32 %493, i64 0
%495 = insertelement <2 x i32> %494, i32 %492, i64 1
%496 = bitcast <2 x i32> %495 to i64
%497 = and i64 %488, 4294967295
%498 = add i64 %497, %496
%499 = lshr i64 %498, 32
%500 = mul nuw i64 %extelt.offset28, %extelt.offset30
%501 = lshr i64 %500, 32
%502 = trunc i64 %501 to i32
%503 = mul i32 %467, %470
%504 = insertelement <2 x i32> undef, i32 %503, i64 0
%505 = insertelement <2 x i32> %504, i32 %502, i64 1
%506 = bitcast <2 x i32> %505 to i64
%507 = add i64 %489, %506
%508 = add i64 %507, %499
%509 = trunc i64 %508 to i32
%510 = lshr i64 %508, 32
%511 = trunc i64 %510 to i32
%512 = insertelement <2 x i32> undef, i32 %509, i64 0
%513 = insertelement <2 x i32> %512, i32 %511, i64 1
%514 = bitcast <2 x i32> %513 to i64
%515 = icmp eq i64 %514, 0
%516 = add i32 %484, %493
%517 = add i32 %516, %475
%518 = insertelement <2 x i32> %477, i32 %517, i64 1
%519 = bitcast <2 x i32> %518 to i64
%520 = extractelement <16 x i64> %58, i64 7
%521 = call i64 @llvm.uadd.sat.i64(i64 %519, i64 %520) #3
%522 = select i1 %515, i64 %521, i64 -1
%523 = extractelement <16 x i64> %52, i64 8
%524 = trunc i64 %523 to i32
%extelt.offset32 = lshr i64 %523, 32
%525 = trunc i64 %extelt.offset32 to i32
%526 = extractelement <16 x i64> %55, i64 8
%527 = trunc i64 %526 to i32
%extelt.offset34 = lshr i64 %526, 32
%528 = trunc i64 %extelt.offset34 to i32
%529 = and i64 %523, 4294967295
%530 = and i64 %526, 4294967295
%531 = mul nuw i64 %529, %530
%532 = lshr i64 %531, 32
%533 = trunc i64 %532 to i32
%534 = mul i32 %524, %527
%535 = insertelement <2 x i32> undef, i32 %534, i64 0
%536 = insertelement <2 x i32> %535, i32 %533, i64 1
%537 = bitcast <2 x i32> %536 to i64
%538 = lshr i64 %537, 32
%539 = mul nuw i64 %529, %extelt.offset34
%540 = lshr i64 %539, 32
%541 = trunc i64 %540 to i32
%542 = mul i32 %524, %528
%543 = insertelement <2 x i32> undef, i32 %542, i64 0
%544 = insertelement <2 x i32> %543, i32 %541, i64 1
%545 = bitcast <2 x i32> %544 to i64
%546 = add i64 %538, %545
%547 = lshr i64 %546, 32
%548 = mul nuw i64 %extelt.offset32, %530
%549 = lshr i64 %548, 32
%550 = trunc i64 %549 to i32
%551 = mul i32 %525, %527
%552 = insertelement <2 x i32> undef, i32 %551, i64 0
%553 = insertelement <2 x i32> %552, i32 %550, i64 1
%554 = bitcast <2 x i32> %553 to i64
%555 = and i64 %546, 4294967295
%556 = add i64 %555, %554
%557 = lshr i64 %556, 32
%558 = mul nuw i64 %extelt.offset32, %extelt.offset34
%559 = lshr i64 %558, 32
%560 = trunc i64 %559 to i32
%561 = mul i32 %525, %528
%562 = insertelement <2 x i32> undef, i32 %561, i64 0
%563 = insertelement <2 x i32> %562, i32 %560, i64 1
%564 = bitcast <2 x i32> %563 to i64
%565 = add i64 %547, %564
%566 = add i64 %565, %557
%567 = trunc i64 %566 to i32
%568 = lshr i64 %566, 32
%569 = trunc i64 %568 to i32
%570 = insertelement <2 x i32> undef, i32 %567, i64 0
%571 = insertelement <2 x i32> %570, i32 %569, i64 1
%572 = bitcast <2 x i32> %571 to i64
%573 = icmp eq i64 %572, 0
%574 = add i32 %542, %551
%575 = add i32 %574, %533
%576 = insertelement <2 x i32> %535, i32 %575, i64 1
%577 = bitcast <2 x i32> %576 to i64
%578 = extractelement <16 x i64> %58, i64 8
%579 = call i64 @llvm.uadd.sat.i64(i64 %577, i64 %578) #3
%580 = select i1 %573, i64 %579, i64 -1
%581 = extractelement <16 x i64> %52, i64 9
%582 = trunc i64 %581 to i32
%extelt.offset36 = lshr i64 %581, 32
%583 = trunc i64 %extelt.offset36 to i32
%584 = extractelement <16 x i64> %55, i64 9
%585 = trunc i64 %584 to i32
%extelt.offset38 = lshr i64 %584, 32
%586 = trunc i64 %extelt.offset38 to i32
%587 = and i64 %581, 4294967295
%588 = and i64 %584, 4294967295
%589 = mul nuw i64 %587, %588
%590 = lshr i64 %589, 32
%591 = trunc i64 %590 to i32
%592 = mul i32 %582, %585
%593 = insertelement <2 x i32> undef, i32 %592, i64 0
%594 = insertelement <2 x i32> %593, i32 %591, i64 1
%595 = bitcast <2 x i32> %594 to i64
%596 = lshr i64 %595, 32
%597 = mul nuw i64 %587, %extelt.offset38
%598 = lshr i64 %597, 32
%599 = trunc i64 %598 to i32
%600 = mul i32 %582, %586
%601 = insertelement <2 x i32> undef, i32 %600, i64 0
%602 = insertelement <2 x i32> %601, i32 %599, i64 1
%603 = bitcast <2 x i32> %602 to i64
%604 = add i64 %596, %603
%605 = lshr i64 %604, 32
%606 = mul nuw i64 %extelt.offset36, %588
%607 = lshr i64 %606, 32
%608 = trunc i64 %607 to i32
%609 = mul i32 %583, %585
%610 = insertelement <2 x i32> undef, i32 %609, i64 0
%611 = insertelement <2 x i32> %610, i32 %608, i64 1
%612 = bitcast <2 x i32> %611 to i64
%613 = and i64 %604, 4294967295
%614 = add i64 %613, %612
%615 = lshr i64 %614, 32
%616 = mul nuw i64 %extelt.offset36, %extelt.offset38
%617 = lshr i64 %616, 32
%618 = trunc i64 %617 to i32
%619 = mul i32 %583, %586
%620 = insertelement <2 x i32> undef, i32 %619, i64 0
%621 = insertelement <2 x i32> %620, i32 %618, i64 1
%622 = bitcast <2 x i32> %621 to i64
%623 = add i64 %605, %622
%624 = add i64 %623, %615
%625 = trunc i64 %624 to i32
%626 = lshr i64 %624, 32
%627 = trunc i64 %626 to i32
%628 = insertelement <2 x i32> undef, i32 %625, i64 0
%629 = insertelement <2 x i32> %628, i32 %627, i64 1
%630 = bitcast <2 x i32> %629 to i64
%631 = icmp eq i64 %630, 0
%632 = add i32 %600, %609
%633 = add i32 %632, %591
%634 = insertelement <2 x i32> %593, i32 %633, i64 1
%635 = bitcast <2 x i32> %634 to i64
%636 = extractelement <16 x i64> %58, i64 9
%637 = call i64 @llvm.uadd.sat.i64(i64 %635, i64 %636) #3
%638 = select i1 %631, i64 %637, i64 -1
%639 = extractelement <16 x i64> %52, i64 10
%640 = trunc i64 %639 to i32
%extelt.offset40 = lshr i64 %639, 32
%641 = trunc i64 %extelt.offset40 to i32
%642 = extractelement <16 x i64> %55, i64 10
%643 = trunc i64 %642 to i32
%extelt.offset42 = lshr i64 %642, 32
%644 = trunc i64 %extelt.offset42 to i32
%645 = and i64 %639, 4294967295
%646 = and i64 %642, 4294967295
%647 = mul nuw i64 %645, %646
%648 = lshr i64 %647, 32
%649 = trunc i64 %648 to i32
%650 = mul i32 %640, %643
%651 = insertelement <2 x i32> undef, i32 %650, i64 0
%652 = insertelement <2 x i32> %651, i32 %649, i64 1
%653 = bitcast <2 x i32> %652 to i64
%654 = lshr i64 %653, 32
%655 = mul nuw i64 %645, %extelt.offset42
%656 = lshr i64 %655, 32
%657 = trunc i64 %656 to i32
%658 = mul i32 %640, %644
%659 = insertelement <2 x i32> undef, i32 %658, i64 0
%660 = insertelement <2 x i32> %659, i32 %657, i64 1
%661 = bitcast <2 x i32> %660 to i64
%662 = add i64 %654, %661
%663 = lshr i64 %662, 32
%664 = mul nuw i64 %extelt.offset40, %646
%665 = lshr i64 %664, 32
%666 = trunc i64 %665 to i32
%667 = mul i32 %641, %643
%668 = insertelement <2 x i32> undef, i32 %667, i64 0
%669 = insertelement <2 x i32> %668, i32 %666, i64 1
%670 = bitcast <2 x i32> %669 to i64
%671 = and i64 %662, 4294967295
%672 = add i64 %671, %670
%673 = lshr i64 %672, 32
%674 = mul nuw i64 %extelt.offset40, %extelt.offset42
%675 = lshr i64 %674, 32
%676 = trunc i64 %675 to i32
%677 = mul i32 %641, %644
%678 = insertelement <2 x i32> undef, i32 %677, i64 0
%679 = insertelement <2 x i32> %678, i32 %676, i64 1
%680 = bitcast <2 x i32> %679 to i64
%681 = add i64 %663, %680
%682 = add i64 %681, %673
%683 = trunc i64 %682 to i32
%684 = lshr i64 %682, 32
%685 = trunc i64 %684 to i32
%686 = insertelement <2 x i32> undef, i32 %683, i64 0
%687 = insertelement <2 x i32> %686, i32 %685, i64 1
%688 = bitcast <2 x i32> %687 to i64
%689 = icmp eq i64 %688, 0
%690 = add i32 %658, %667
%691 = add i32 %690, %649
%692 = insertelement <2 x i32> %651, i32 %691, i64 1
%693 = bitcast <2 x i32> %692 to i64
%694 = extractelement <16 x i64> %58, i64 10
%695 = call i64 @llvm.uadd.sat.i64(i64 %693, i64 %694) #3
%696 = select i1 %689, i64 %695, i64 -1
%697 = extractelement <16 x i64> %52, i64 11
%698 = trunc i64 %697 to i32
%extelt.offset44 = lshr i64 %697, 32
%699 = trunc i64 %extelt.offset44 to i32
%700 = extractelement <16 x i64> %55, i64 11
%701 = trunc i64 %700 to i32
%extelt.offset46 = lshr i64 %700, 32
%702 = trunc i64 %extelt.offset46 to i32
%703 = and i64 %697, 4294967295
%704 = and i64 %700, 4294967295
%705 = mul nuw i64 %703, %704
%706 = lshr i64 %705, 32
%707 = trunc i64 %706 to i32
%708 = mul i32 %698, %701
%709 = insertelement <2 x i32> undef, i32 %708, i64 0
%710 = insertelement <2 x i32> %709, i32 %707, i64 1
%711 = bitcast <2 x i32> %710 to i64
%712 = lshr i64 %711, 32
%713 = mul nuw i64 %703, %extelt.offset46
%714 = lshr i64 %713, 32
%715 = trunc i64 %714 to i32
%716 = mul i32 %698, %702
%717 = insertelement <2 x i32> undef, i32 %716, i64 0
%718 = insertelement <2 x i32> %717, i32 %715, i64 1
%719 = bitcast <2 x i32> %718 to i64
%720 = add i64 %712, %719
%721 = lshr i64 %720, 32
%722 = mul nuw i64 %extelt.offset44, %704
%723 = lshr i64 %722, 32
%724 = trunc i64 %723 to i32
%725 = mul i32 %699, %701
%726 = insertelement <2 x i32> undef, i32 %725, i64 0
%727 = insertelement <2 x i32> %726, i32 %724, i64 1
%728 = bitcast <2 x i32> %727 to i64
%729 = and i64 %720, 4294967295
%730 = add i64 %729, %728
%731 = lshr i64 %730, 32
%732 = mul nuw i64 %extelt.offset44, %extelt.offset46
%733 = lshr i64 %732, 32
%734 = trunc i64 %733 to i32
%735 = mul i32 %699, %702
%736 = insertelement <2 x i32> undef, i32 %735, i64 0
%737 = insertelement <2 x i32> %736, i32 %734, i64 1
%738 = bitcast <2 x i32> %737 to i64
%739 = add i64 %721, %738
%740 = add i64 %739, %731
%741 = trunc i64 %740 to i32
%742 = lshr i64 %740, 32
%743 = trunc i64 %742 to i32
%744 = insertelement <2 x i32> undef, i32 %741, i64 0
%745 = insertelement <2 x i32> %744, i32 %743, i64 1
%746 = bitcast <2 x i32> %745 to i64
%747 = icmp eq i64 %746, 0
%748 = add i32 %716, %725
%749 = add i32 %748, %707
%750 = insertelement <2 x i32> %709, i32 %749, i64 1
%751 = bitcast <2 x i32> %750 to i64
%752 = extractelement <16 x i64> %58, i64 11
%753 = call i64 @llvm.uadd.sat.i64(i64 %751, i64 %752) #3
%754 = select i1 %747, i64 %753, i64 -1
%755 = extractelement <16 x i64> %52, i64 12
%756 = trunc i64 %755 to i32
%extelt.offset48 = lshr i64 %755, 32
%757 = trunc i64 %extelt.offset48 to i32
%758 = extractelement <16 x i64> %55, i64 12
%759 = trunc i64 %758 to i32
%extelt.offset50 = lshr i64 %758, 32
%760 = trunc i64 %extelt.offset50 to i32
%761 = and i64 %755, 4294967295
%762 = and i64 %758, 4294967295
%763 = mul nuw i64 %761, %762
%764 = lshr i64 %763, 32
%765 = trunc i64 %764 to i32
%766 = mul i32 %756, %759
%767 = insertelement <2 x i32> undef, i32 %766, i64 0
%768 = insertelement <2 x i32> %767, i32 %765, i64 1
%769 = bitcast <2 x i32> %768 to i64
%770 = lshr i64 %769, 32
%771 = mul nuw i64 %761, %extelt.offset50
%772 = lshr i64 %771, 32
%773 = trunc i64 %772 to i32
%774 = mul i32 %756, %760
%775 = insertelement <2 x i32> undef, i32 %774, i64 0
%776 = insertelement <2 x i32> %775, i32 %773, i64 1
%777 = bitcast <2 x i32> %776 to i64
%778 = add i64 %770, %777
%779 = lshr i64 %778, 32
%780 = mul nuw i64 %extelt.offset48, %762
%781 = lshr i64 %780, 32
%782 = trunc i64 %781 to i32
%783 = mul i32 %757, %759
%784 = insertelement <2 x i32> undef, i32 %783, i64 0
%785 = insertelement <2 x i32> %784, i32 %782, i64 1
%786 = bitcast <2 x i32> %785 to i64
%787 = and i64 %778, 4294967295
%788 = add i64 %787, %786
%789 = lshr i64 %788, 32
%790 = mul nuw i64 %extelt.offset48, %extelt.offset50
%791 = lshr i64 %790, 32
%792 = trunc i64 %791 to i32
%793 = mul i32 %757, %760
%794 = insertelement <2 x i32> undef, i32 %793, i64 0
%795 = insertelement <2 x i32> %794, i32 %792, i64 1
%796 = bitcast <2 x i32> %795 to i64
%797 = add i64 %779, %796
%798 = add i64 %797, %789
%799 = trunc i64 %798 to i32
%800 = lshr i64 %798, 32
%801 = trunc i64 %800 to i32
%802 = insertelement <2 x i32> undef, i32 %799, i64 0
%803 = insertelement <2 x i32> %802, i32 %801, i64 1
%804 = bitcast <2 x i32> %803 to i64
%805 = icmp eq i64 %804, 0
%806 = add i32 %774, %783
%807 = add i32 %806, %765
%808 = insertelement <2 x i32> %767, i32 %807, i64 1
%809 = bitcast <2 x i32> %808 to i64
%810 = extractelement <16 x i64> %58, i64 12
%811 = call i64 @llvm.uadd.sat.i64(i64 %809, i64 %810) #3
%812 = select i1 %805, i64 %811, i64 -1
%813 = extractelement <16 x i64> %52, i64 13
%814 = trunc i64 %813 to i32
%extelt.offset52 = lshr i64 %813, 32
%815 = trunc i64 %extelt.offset52 to i32
%816 = extractelement <16 x i64> %55, i64 13
%817 = trunc i64 %816 to i32
%extelt.offset54 = lshr i64 %816, 32
%818 = trunc i64 %extelt.offset54 to i32
%819 = and i64 %813, 4294967295
%820 = and i64 %816, 4294967295
%821 = mul nuw i64 %819, %820
%822 = lshr i64 %821, 32
%823 = trunc i64 %822 to i32
%824 = mul i32 %814, %817
%825 = insertelement <2 x i32> undef, i32 %824, i64 0
%826 = insertelement <2 x i32> %825, i32 %823, i64 1
%827 = bitcast <2 x i32> %826 to i64
%828 = lshr i64 %827, 32
%829 = mul nuw i64 %819, %extelt.offset54
%830 = lshr i64 %829, 32
%831 = trunc i64 %830 to i32
%832 = mul i32 %814, %818
%833 = insertelement <2 x i32> undef, i32 %832, i64 0
%834 = insertelement <2 x i32> %833, i32 %831, i64 1
%835 = bitcast <2 x i32> %834 to i64
%836 = add i64 %828, %835
%837 = lshr i64 %836, 32
%838 = mul nuw i64 %extelt.offset52, %820
%839 = lshr i64 %838, 32
%840 = trunc i64 %839 to i32
%841 = mul i32 %815, %817
%842 = insertelement <2 x i32> undef, i32 %841, i64 0
%843 = insertelement <2 x i32> %842, i32 %840, i64 1
%844 = bitcast <2 x i32> %843 to i64
%845 = and i64 %836, 4294967295
%846 = add i64 %845, %844
%847 = lshr i64 %846, 32
%848 = mul nuw i64 %extelt.offset52, %extelt.offset54
%849 = lshr i64 %848, 32
%850 = trunc i64 %849 to i32
%851 = mul i32 %815, %818
%852 = insertelement <2 x i32> undef, i32 %851, i64 0
%853 = insertelement <2 x i32> %852, i32 %850, i64 1
%854 = bitcast <2 x i32> %853 to i64
%855 = add i64 %837, %854
%856 = add i64 %855, %847
%857 = trunc i64 %856 to i32
%858 = lshr i64 %856, 32
%859 = trunc i64 %858 to i32
%860 = insertelement <2 x i32> undef, i32 %857, i64 0
%861 = insertelement <2 x i32> %860, i32 %859, i64 1
%862 = bitcast <2 x i32> %861 to i64
%863 = icmp eq i64 %862, 0
%864 = add i32 %832, %841
%865 = add i32 %864, %823
%866 = insertelement <2 x i32> %825, i32 %865, i64 1
%867 = bitcast <2 x i32> %866 to i64
%868 = extractelement <16 x i64> %58, i64 13
%869 = call i64 @llvm.uadd.sat.i64(i64 %867, i64 %868) #3
%870 = select i1 %863, i64 %869, i64 -1
%871 = extractelement <16 x i64> %52, i64 14
%872 = trunc i64 %871 to i32
%extelt.offset56 = lshr i64 %871, 32
%873 = trunc i64 %extelt.offset56 to i32
%874 = extractelement <16 x i64> %55, i64 14
%875 = trunc i64 %874 to i32
%extelt.offset58 = lshr i64 %874, 32
%876 = trunc i64 %extelt.offset58 to i32
%877 = and i64 %871, 4294967295
%878 = and i64 %874, 4294967295
%879 = mul nuw i64 %877, %878
%880 = lshr i64 %879, 32
%881 = trunc i64 %880 to i32
%882 = mul i32 %872, %875
%883 = insertelement <2 x i32> undef, i32 %882, i64 0
%884 = insertelement <2 x i32> %883, i32 %881, i64 1
%885 = bitcast <2 x i32> %884 to i64
%886 = lshr i64 %885, 32
%887 = mul nuw i64 %877, %extelt.offset58
%888 = lshr i64 %887, 32
%889 = trunc i64 %888 to i32
%890 = mul i32 %872, %876
%891 = insertelement <2 x i32> undef, i32 %890, i64 0
%892 = insertelement <2 x i32> %891, i32 %889, i64 1
%893 = bitcast <2 x i32> %892 to i64
%894 = add i64 %886, %893
%895 = lshr i64 %894, 32
%896 = mul nuw i64 %extelt.offset56, %878
%897 = lshr i64 %896, 32
%898 = trunc i64 %897 to i32
%899 = mul i32 %873, %875
%900 = insertelement <2 x i32> undef, i32 %899, i64 0
%901 = insertelement <2 x i32> %900, i32 %898, i64 1
%902 = bitcast <2 x i32> %901 to i64
%903 = and i64 %894, 4294967295
%904 = add i64 %903, %902
%905 = lshr i64 %904, 32
%906 = mul nuw i64 %extelt.offset56, %extelt.offset58
%907 = lshr i64 %906, 32
%908 = trunc i64 %907 to i32
%909 = mul i32 %873, %876
%910 = insertelement <2 x i32> undef, i32 %909, i64 0
%911 = insertelement <2 x i32> %910, i32 %908, i64 1
%912 = bitcast <2 x i32> %911 to i64
%913 = add i64 %895, %912
%914 = add i64 %913, %905
%915 = trunc i64 %914 to i32
%916 = lshr i64 %914, 32
%917 = trunc i64 %916 to i32
%918 = insertelement <2 x i32> undef, i32 %915, i64 0
%919 = insertelement <2 x i32> %918, i32 %917, i64 1
%920 = bitcast <2 x i32> %919 to i64
%921 = icmp eq i64 %920, 0
%922 = add i32 %890, %899
%923 = add i32 %922, %881
%924 = insertelement <2 x i32> %883, i32 %923, i64 1
%925 = bitcast <2 x i32> %924 to i64
%926 = extractelement <16 x i64> %58, i64 14
%927 = call i64 @llvm.uadd.sat.i64(i64 %925, i64 %926) #3
%928 = select i1 %921, i64 %927, i64 -1
%929 = extractelement <16 x i64> %52, i64 15
%930 = trunc i64 %929 to i32
%extelt.offset60 = lshr i64 %929, 32
%931 = trunc i64 %extelt.offset60 to i32
%932 = extractelement <16 x i64> %55, i64 15
%933 = trunc i64 %932 to i32
%extelt.offset62 = lshr i64 %932, 32
%934 = trunc i64 %extelt.offset62 to i32
%935 = and i64 %929, 4294967295
%936 = and i64 %932, 4294967295
%937 = mul nuw i64 %935, %936
%938 = lshr i64 %937, 32
%939 = trunc i64 %938 to i32
%940 = mul i32 %930, %933
%941 = insertelement <2 x i32> undef, i32 %940, i64 0
%942 = insertelement <2 x i32> %941, i32 %939, i64 1
%943 = bitcast <2 x i32> %942 to i64
%944 = lshr i64 %943, 32
%945 = mul nuw i64 %935, %extelt.offset62
%946 = lshr i64 %945, 32
%947 = trunc i64 %946 to i32
%948 = mul i32 %930, %934
%949 = insertelement <2 x i32> undef, i32 %948, i64 0
%950 = insertelement <2 x i32> %949, i32 %947, i64 1
%951 = bitcast <2 x i32> %950 to i64
%952 = add i64 %944, %951
%953 = lshr i64 %952, 32
%954 = mul nuw i64 %extelt.offset60, %936
%955 = lshr i64 %954, 32
%956 = trunc i64 %955 to i32
%957 = mul i32 %931, %933
%958 = insertelement <2 x i32> undef, i32 %957, i64 0
%959 = insertelement <2 x i32> %958, i32 %956, i64 1
%960 = bitcast <2 x i32> %959 to i64
%961 = and i64 %952, 4294967295
%962 = add i64 %961, %960
%963 = lshr i64 %962, 32
%964 = mul nuw i64 %extelt.offset60, %extelt.offset62
%965 = lshr i64 %964, 32
%966 = trunc i64 %965 to i32
%967 = mul i32 %931, %934
%968 = insertelement <2 x i32> undef, i32 %967, i64 0
%969 = insertelement <2 x i32> %968, i32 %966, i64 1
%970 = bitcast <2 x i32> %969 to i64
%971 = add i64 %953, %970
%972 = add i64 %971, %963
%973 = trunc i64 %972 to i32
%974 = lshr i64 %972, 32
%975 = trunc i64 %974 to i32
%976 = insertelement <2 x i32> undef, i32 %973, i64 0
%977 = insertelement <2 x i32> %976, i32 %975, i64 1
%978 = bitcast <2 x i32> %977 to i64
%979 = icmp eq i64 %978, 0
%980 = add i32 %948, %957
%981 = add i32 %980, %939
%982 = insertelement <2 x i32> %941, i32 %981, i64 1
%983 = bitcast <2 x i32> %982 to i64
%984 = extractelement <16 x i64> %58, i64 15
%985 = call i64 @llvm.uadd.sat.i64(i64 %983, i64 %984) #3
%986 = select i1 %979, i64 %985, i64 -1
%987 = insertelement <16 x i64> undef, i64 %116, i64 0
%988 = insertelement <16 x i64> %987, i64 %174, i64 1
%989 = insertelement <16 x i64> %988, i64 %232, i64 2
%990 = insertelement <16 x i64> %989, i64 %290, i64 3
%991 = insertelement <16 x i64> %990, i64 %348, i64 4
%992 = insertelement <16 x i64> %991, i64 %406, i64 5
%993 = insertelement <16 x i64> %992, i64 %464, i64 6
%994 = insertelement <16 x i64> %993, i64 %522, i64 7
%995 = insertelement <16 x i64> %994, i64 %580, i64 8
%996 = insertelement <16 x i64> %995, i64 %638, i64 9
%997 = insertelement <16 x i64> %996, i64 %696, i64 10
%998 = insertelement <16 x i64> %997, i64 %754, i64 11
%999 = insertelement <16 x i64> %998, i64 %812, i64 12
%1000 = insertelement <16 x i64> %999, i64 %870, i64 13
%1001 = insertelement <16 x i64> %1000, i64 %928, i64 14
%1002 = insertelement <16 x i64> %1001, i64 %986, i64 15
%1003 = add i64 %49, %28
%1004 = inttoptr i64 %1003 to ptr addrspace(1)
store <16 x i64> %1002, ptr addrspace(1) %1004, align 128
ret void
}
; Function Attrs: nounwind readnone willreturn
declare float @llvm.amdgcn.s.buffer.load.f32(<4 x i32>, i32, i32 immarg) #1
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.uadd.sat.i64(i64, i64) #2
attributes #0 = { "amdgpu-32bit-address-high-bits"="0xffff8000" "amdgpu-flat-work-group-size"="512,512" "denormal-fp-math"="ieee,ieee" "denormal-fp-math-f32"="preserve-sign,preserve-sign" "target-features"="+DumpCode,+wavefrontsize64,-wavefrontsize32" }
attributes #1 = { nounwind readnone willreturn }
attributes #2 = { nocallback nofree nosync nounwind readnone speculatable willreturn }
attributes #3 = { nounwind }
!0 = !{}
SHADER KEY
source_sha1 = {0xb5cfec13, 0x8c7db6d4, 0xa5530025, 0xc4d0316c, 0xb3130a16}
opt.prefer_mono = 0
opt.inline_uniforms = 0
Compute Shader:
Shader main disassembly:
main:
BB0_0:
s_mov_b32 s0, s2 ; BE800302
s_mov_b32 s3, 0x31016fac ; BE8303FF 31016FAC
s_movk_i32 s2, 0x400 ; B0020400
s_mov_b32 s1, 0x8000 ; BE8103FF 00008000
s_clause 0x1 ; BFA10001
s_buffer_load_dword s6, s[0:3], 0x20 ; F4200180 FA000020
s_buffer_load_dwordx8 s[40:47], s[0:3], 0x0 ; F42C0A00 FA000000
s_and_b32 s0, s4, 0x3ff ; 8700FF04 000003FF
v_mov_b32_e32 v1, 0 ; 7E020280
s_mul_i32 s0, s0, s5 ; 93000500
s_waitcnt lgkmcnt(0) ; BF8CC07F
v_add3_u32 v2, s6, s0, v0 ; D76D0002 04000006
v_ashrrev_i64 v[4:5], 25, v[1:2] ; D7010004 00020299
v_add_co_u32 v62, vcc, v4, s40 ; D70F6A3E 00005104
v_add_co_u32 v64, s[0:1], v4, s42 ; D70F0040 00005504
v_add_co_ci_u32_e32 v63, vcc, s41, v5, vcc ; 507E0A29
v_add_co_ci_u32_e64 v65, vcc, s43, v5, s[0:1] ; D5286A41 00020A2B
global_load_dwordx4 v[6:9], v[62:63], off ; DC388000 067D003E
global_load_dwordx4 v[10:13], v[64:65], off ; DC388000 0A7D0040
global_load_dwordx4 v[14:17], v[62:63], off offset:16 ; DC388010 0E7D003E
global_load_dwordx4 v[18:21], v[64:65], off offset:16 ; DC388010 127D0040
global_load_dwordx4 v[22:25], v[62:63], off offset:32 ; DC388020 167D003E
global_load_dwordx4 v[26:29], v[64:65], off offset:32 ; DC388020 1A7D0040
global_load_dwordx4 v[30:33], v[62:63], off offset:48 ; DC388030 1E7D003E
global_load_dwordx4 v[34:37], v[64:65], off offset:48 ; DC388030 227D0040
global_load_dwordx4 v[38:41], v[62:63], off offset:64 ; DC388040 267D003E
global_load_dwordx4 v[42:45], v[64:65], off offset:64 ; DC388040 2A7D0040
v_add_co_u32 v66, vcc, v4, s44 ; D70F6A42 00005904
v_add_co_ci_u32_e32 v67, vcc, s45, v5, vcc ; 50860A2D
s_clause 0x1 ; BFA10001
global_load_dwordx4 v[46:49], v[66:67], off ; DC388000 2E7D0042
global_load_dwordx4 v[50:53], v[66:67], off offset:16 ; DC388010 327D0042
global_load_dwordx4 v[0:3], v[62:63], off offset:80 ; DC388050 007D003E
s_clause 0x1 ; BFA10001
global_load_dwordx4 v[54:57], v[66:67], off offset:48 ; DC388030 367D0042
global_load_dwordx4 v[58:61], v[66:67], off offset:32 ; DC388020 3A7D0042
s_waitcnt vmcnt(13) ; BF8C3F7D
v_mul_hi_u32 v69, v6, v10 ; D56A0045 00021506
v_mul_lo_u32 v68, v6, v10 ; D5690044 00021506
v_mul_hi_u32 v86, v6, v11 ; D56A0056 00021706
v_mul_lo_u32 v71, v6, v11 ; D5690047 00021706
v_mul_hi_u32 v87, v7, v10 ; D56A0057 00021507
v_mul_lo_u32 v85, v7, v10 ; D5690055 00021507
v_mul_hi_u32 v88, v7, v11 ; D56A0058 00021707
v_mul_lo_u32 v89, v7, v11 ; D5690059 00021707
v_mul_hi_u32 v10, v8, v12 ; D56A000A 00021908
v_mul_lo_u32 v11, v8, v13 ; D569000B 00021B08
v_mul_lo_u32 v92, v9, v12 ; D569005C 00021909
v_mul_lo_u32 v70, v8, v12 ; D5690046 00021908
v_mul_hi_u32 v90, v8, v13 ; D56A005A 00021B08
v_mul_hi_u32 v91, v9, v12 ; D56A005B 00021909
v_mul_hi_u32 v93, v9, v13 ; D56A005D 00021B09
v_mul_lo_u32 v94, v9, v13 ; D569005E 00021B09
s_waitcnt vmcnt(11) ; BF8C3F7B
v_mul_hi_u32 v75, v14, v18 ; D56A004B 0002250E
v_mul_lo_u32 v72, v14, v18 ; D5690048 0002250E
v_mul_hi_u32 v96, v15, v18 ; D56A0060 0002250F
v_mul_lo_u32 v97, v15, v18 ; D5690061 0002250F
s_waitcnt vmcnt(9) ; BF8C3F79
v_mul_hi_u32 v105, v22, v27 ; D56A0069 00023716
v_mul_lo_u32 v18, v22, v27 ; D5690012 00023716
v_mul_hi_u32 v107, v23, v27 ; D56A006B 00023717
v_mul_lo_u32 v108, v23, v27 ; D569006C 00023717
v_mul_hi_u32 v110, v25, v28 ; D56A006E 00023919
v_mul_lo_u32 v111, v25, v28 ; D569006F 00023919
v_mul_hi_u32 v112, v25, v29 ; D56A0070 00023B19
v_mul_lo_u32 v113, v25, v29 ; D5690071 00023B19
v_add_co_u32 v25, vcc, v69, v71 ; D70F6A19 00028F45
v_add3_u32 v69, v71, v85, v69 ; D76D0045 0516AB47
v_add_co_u32 v27, s[0:1], v10, v11 ; D70F001B 0002170A
v_add3_u32 v71, v11, v92, v10 ; D76D0047 042AB90B
global_load_dwordx4 v[10:13], v[66:67], off offset:64 ; DC388040 0A7D0042
global_load_dwordx4 v[6:9], v[64:65], off offset:80 ; DC388050 067D0040
v_mul_hi_u32 v95, v14, v19 ; D56A005F 0002270E
v_mul_lo_u32 v14, v14, v19 ; D569000E 0002270E
v_mul_hi_u32 v98, v15, v19 ; D56A0062 0002270F
v_mul_lo_u32 v99, v15, v19 ; D5690063 0002270F
v_mul_hi_u32 v15, v16, v20 ; D56A000F 00022910
v_mul_lo_u32 v74, v16, v20 ; D569004A 00022910
v_mul_hi_u32 v100, v16, v21 ; D56A0064 00022B10
v_mul_lo_u32 v16, v16, v21 ; D5690010 00022B10
v_mul_hi_u32 v101, v17, v20 ; D56A0065 00022911
v_mul_lo_u32 v102, v17, v20 ; D5690066 00022911
v_mul_hi_u32 v103, v17, v21 ; D56A0067 00022B11
v_mul_lo_u32 v104, v17, v21 ; D5690068 00022B11
v_mul_hi_u32 v17, v22, v26 ; D56A0011 00023516
v_mul_lo_u32 v76, v22, v26 ; D569004C 00023516
v_mul_hi_u32 v106, v23, v26 ; D56A006A 00023517
v_mul_lo_u32 v26, v23, v26 ; D569001A 00023517
v_mul_hi_u32 v19, v24, v28 ; D56A0013 00023918
v_mul_lo_u32 v78, v24, v28 ; D569004E 00023918
v_mul_hi_u32 v109, v24, v29 ; D56A006D 00023B18
v_mul_lo_u32 v20, v24, v29 ; D5690014 00023B18
s_waitcnt vmcnt(9) ; BF8C3F79
v_mul_hi_u32 v21, v30, v34 ; D56A0015 0002451E
v_mul_lo_u32 v80, v30, v34 ; D5690050 0002451E
v_mul_hi_u32 v114, v30, v35 ; D56A0072 0002471E
v_mul_lo_u32 v22, v30, v35 ; D5690016 0002471E
v_add3_u32 v73, v14, v97, v75 ; D76D0049 052EC30E
v_add_co_u32 v28, s[2:3], v75, v14 ; D70F021C 00021D4B
v_add_co_u32 v29, s[4:5], v15, v16 ; D70F041D 0002210F
v_add3_u32 v75, v16, v102, v15 ; D76D004B 043ECD10
v_add3_u32 v77, v18, v26, v17 ; D76D004D 04463512
v_add_co_u32 v30, s[8:9], v17, v18 ; D70F081E 00022511
global_load_dwordx4 v[14:17], v[66:67], off offset:80 ; DC388050 0E7D0042
v_mul_hi_u32 v115, v31, v34 ; D56A0073 0002451F
v_mul_lo_u32 v34, v31, v34 ; D5690022 0002451F
v_mul_hi_u32 v23, v32, v36 ; D56A0017 00024920
v_mul_lo_u32 v24, v32, v37 ; D5690018 00024B20
v_mul_lo_u32 v120, v33, v36 ; D5690078 00024921
s_waitcnt vmcnt(8) ; BF8C3F78
v_mul_hi_u32 v123, v38, v42 ; D56A007B 00025526
v_mul_lo_u32 v84, v38, v42 ; D5690054 00025526
v_mul_hi_u32 v126, v39, v42 ; D56A007E 00025527
v_mul_lo_u32 v127, v39, v42 ; D569007F 00025527
v_mul_hi_u32 v130, v40, v44 ; D56A0082 00025928
v_mul_hi_u32 v133, v41, v44 ; D56A0085 00025929
v_mul_lo_u32 v134, v41, v44 ; D5690086 00025929
v_mul_lo_u32 v42, v40, v44 ; D569002A 00025928
s_waitcnt vmcnt(7) ; BF8C3F77
v_add_co_u32 v44, s[6:7], v68, v46 ; D70F062C 00025D44
v_add_co_u32 v46, s[12:13], v70, v48 ; D70F0C2E 00026146
s_waitcnt vmcnt(6) ; BF8C3F76
v_add_co_u32 v48, s[14:15], v72, v50 ; D70F0E30 00026548
v_add_co_u32 v50, s[18:19], v74, v52 ; D70F1232 0002694A
v_mul_hi_u32 v131, v40, v45 ; D56A0083 00025B28
v_mul_lo_u32 v132, v40, v45 ; D5690084 00025B28
v_mul_hi_u32 v135, v41, v45 ; D56A0087 00025B29
v_mul_lo_u32 v136, v41, v45 ; D5690088 00025B29
v_add_co_ci_u32_e64 v45, s[6:7], v69, v47, s[6:7] ; D528062D 001A5F45
v_add_co_ci_u32_e64 v47, s[6:7], v71, v49, s[12:13] ; D528062F 00326347
v_add_co_ci_u32_e64 v49, s[14:15], v73, v51, s[14:15] ; D5280E31 003A6749
v_add_co_ci_u32_e64 v51, s[14:15], v75, v53, s[18:19] ; D5280E33 004A6B4B
v_mul_hi_u32 v116, v31, v35 ; D56A0074 0002471F
v_mul_lo_u32 v117, v31, v35 ; D5690075 0002471F
v_add3_u32 v81, v22, v34, v21 ; D76D0051 04564516
v_add_co_u32 v35, s[6:7], v21, v22 ; D70F0623 00022D15
v_add_co_u32 v18, s[16:17], v25, v85 ; D70F1012 0002AB19
v_add_co_u32 v22, s[14:15], v27, v92 ; D70F0E16 0002B91B
v_add_co_u32 v22, s[20:21], v28, v97 ; D70F1416 0002C31C
v_mul_hi_u32 v124, v38, v43 ; D56A007C 00025726
v_mul_lo_u32 v125, v38, v43 ; D569007D 00025726
v_add_co_u32 v31, s[10:11], v19, v20 ; D70F0A1F 00022913
v_add3_u32 v79, v20, v111, v19 ; D76D004F 044EDF14
v_add_co_u32 v38, s[12:13], v23, v24 ; D70F0C26 00023117
v_add3_u32 v83, v24, v120, v23 ; D76D0053 045EF118
global_load_dwordx4 v[22:25], v[64:65], off offset:96 ; DC388060 167D0040
global_load_dwordx4 v[18:21], v[62:63], off offset:96 ; DC388060 127D003E
s_waitcnt vmcnt(5) ; BF8C3F75
v_add_co_u32 v52, s[18:19], v76, v58 ; D70F1234 0002754C
v_add_co_u32 v58, s[22:23], v78, v60 ; D70F163A 0002794E
v_add_co_ci_u32_e64 v53, s[18:19], v77, v59, s[18:19] ; D5281235 004A774D
v_add_co_ci_u32_e64 v59, s[18:19], v79, v61, s[22:23] ; D528123B 005A7B4F
v_add_co_u32 v27, s[18:19], v29, v102 ; D70F121B 0002CD1D
v_add_co_u32 v26, s[24:25], v30, v26 ; D70F181A 0002351E
global_load_dwordx4 v[26:29], v[66:67], off offset:96 ; DC388060 1A7D0042
v_mul_lo_u32 v82, v32, v36 ; D5690052 00024920
v_add_co_u32 v54, s[22:23], v80, v54 ; D70F1636 00026D50
v_add_co_ci_u32_e64 v55, s[22:23], v81, v55, s[22:23] ; D5281637 005A6F51
v_mul_hi_u32 v118, v32, v37 ; D56A0076 00024B20
v_mul_hi_u32 v119, v33, v36 ; D56A0077 00024921
v_mul_hi_u32 v121, v33, v37 ; D56A0079 00024B21
v_add_co_u32 v56, s[26:27], v82, v56 ; D70F1A38 00027152
v_add_co_ci_u32_e64 v57, s[22:23], v83, v57, s[26:27] ; D5281639 006A7353
v_add_co_u32 v30, s[22:23], v31, v111 ; D70F161E 0002DF1F
v_add_co_u32 v34, s[26:27], v35, v34 ; D70F1A22 00024523
v_mul_lo_u32 v122, v33, v37 ; D569007A 00024B21
global_load_dwordx4 v[30:33], v[62:63], off offset:112 ; DC388070 1E7D003E
global_load_dwordx4 v[34:37], v[64:65], off offset:112 ; DC388070 227D0040
v_add_co_u32 v38, s[28:29], v38, v120 ; D70F1C26 0002F126
v_mul_hi_u32 v128, v39, v43 ; D56A0080 00025727
v_mul_lo_u32 v129, v39, v43 ; D5690081 00025727
global_load_dwordx4 v[38:41], v[66:67], off offset:112 ; DC388070 267D0042
v_add_co_u32 v60, s[30:31], v123, v125 ; D70F1E3C 0002FB7B
v_add_co_u32 v61, s[34:35], v130, v132 ; D70F223D 00030982
v_add3_u32 v43, v132, v134, v130 ; D76D002B 060B0D84
v_add_co_u32 v60, s[36:37], v60, v127 ; D70F243C 0002FF3C
v_add_co_u32 v60, s[40:41], v61, v134 ; D70F283C 00030D3D
v_add3_u32 v85, v125, v127, v123 ; D76D0055 05EEFF7D
s_waitcnt vmcnt(8) ; BF8C3F78
v_add_co_u32 v60, s[42:43], v42, v12 ; D70F2A3C 0002192A
v_add_co_ci_u32_e32 v12, vcc, 0, v86, vcc ; 5018AC80
v_add_co_ci_u32_e64 v62, vcc, 0, v90, s[0:1] ; D5286A3E 0002B480
v_add_co_ci_u32_e64 v65, vcc, 0, v105, s[8:9] ; D5286A41 0022D280
v_add_co_ci_u32_e64 v63, vcc, 0, v95, s[2:3] ; D5286A3F 000ABE80
v_add_co_u32 v10, s[38:39], v84, v10 ; D70F260A 00021554
v_add_co_ci_u32_e64 v64, vcc, 0, v100, s[4:5] ; D5286A40 0012C880
v_add_co_ci_u32_e64 v67, vcc, 0, v114, s[6:7] ; D5286A43 001AE480
v_add_co_ci_u32_e64 v90, vcc, 0, v124, s[30:31] ; D5286A5A 007AF880
v_add_co_ci_u32_e64 v95, vcc, 0, v131, s[34:35] ; D5286A5F 008B0680
v_add_co_ci_u32_e64 v61, vcc, v43, v13, s[42:43] ; D5286A3D 00AA1B2B
v_add_co_ci_u32_e64 v13, vcc, 0, v87, s[16:17] ; D5286A0D 0042AE80
v_add_co_ci_u32_e64 v87, s[0:1], 0, v91, s[14:15] ; D5280057 003AB680
v_add_co_ci_u32_e64 v66, vcc, 0, v109, s[10:11] ; D5286A42 002ADA80
v_add_co_ci_u32_e64 v86, vcc, 0, v118, s[12:13] ; D5286A56 0032EC80
v_add_co_ci_u32_e64 v11, vcc, v85, v11, s[38:39] ; D5286A0B 009A1755
v_add_co_u32 v62, s[0:1], v62, v94 ; D70F003E 0002BD3E
v_add_co_ci_u32_e64 v94, s[6:7], 0, v106, s[24:25] ; D528065E 0062D480
v_add_co_u32 v12, vcc, v12, v89 ; D70F6A0C 0002B30C
v_add_co_ci_u32_e64 v89, s[2:3], 0, v96, s[20:21] ; D5280259 0052C080
v_add_co_u32 v65, s[6:7], v65, v108 ; D70F0641 0002D941
v_add_co_u32 v63, s[2:3], v63, v99 ; D70F023F 0002C73F
v_add_co_ci_u32_e64 v91, s[4:5], 0, v101, s[18:19] ; D528045B 004ACA80
v_add_co_ci_u32_e64 v99, s[10:11], 0, v115, s[26:27] ; D5280A63 006AE680
v_add_co_u32 v64, s[4:5], v64, v104 ; D70F0440 0002D140
v_add_co_u32 v67, s[10:11], v67, v117 ; D70F0A43 0002EB43
v_add_co_ci_u32_e64 v101, s[14:15], 0, v126, s[36:37] ; D5280E65 0092FC80
v_add_co_ci_u32_e64 v102, s[16:17], 0, v133, s[40:41] ; D5281066 00A30A80
v_add_co_ci_u32_e32 v88, vcc, 0, v88, vcc ; 50B0B080
v_add_co_ci_u32_e64 v93, vcc, 0, v93, s[0:1] ; D5286A5D 0002BA80
v_add_co_ci_u32_e64 v104, vcc, 0, v107, s[6:7] ; D5286A68 001AD680
v_add_co_ci_u32_e64 v96, s[8:9], 0, v110, s[22:23] ; D5280860 005ADC80
v_add_co_u32 v90, s[14:15], v90, v129 ; D70F0E5A 0003035A
v_add_co_u32 v95, s[16:17], v95, v136 ; D70F105F 0003115F
v_add_co_u32 v97, s[8:9], v66, v113 ; D70F0861 0002E342
v_add_co_ci_u32_e64 v103, vcc, 0, v103, s[4:5] ; D5286A67 0012CE80
v_add_co_ci_u32_e64 v106, vcc, 0, v116, s[10:11] ; D5286A6A 002AE880
v_add_co_ci_u32_e64 v108, vcc, 0, v128, s[14:15] ; D5286A6C 003B0080
v_add_co_ci_u32_e64 v109, vcc, 0, v135, s[16:17] ; D5286A6D 00430E80
v_cmp_lt_u64_e64 s[16:17], v[60:61], v[42:43] ; D4E10010 0002553C
v_add_co_u32 v12, s[18:19], v12, v13 ; D70F120C 00021B0C
v_add_co_u32 v42, s[20:21], v62, v87 ; D70F142A 0002AF3E
v_add_co_u32 v66, s[26:27], v65, v94 ; D70F1A42 0002BD41
v_add_co_ci_u32_e64 v100, s[12:13], 0, v119, s[28:29] ; D5280C64 0072EE80
v_add_co_ci_u32_e64 v98, vcc, 0, v98, s[2:3] ; D5286A62 000AC480
v_add_co_ci_u32_e64 v105, vcc, 0, v112, s[8:9] ; D5286A69 0022E080
v_cmp_lt_u64_e64 s[2:3], v[48:49], v[72:73] ; D4E10002 00029130
v_cmp_lt_u64_e64 s[8:9], v[58:59], v[78:79] ; D4E10008 00029D3A
v_add_co_u32 v86, s[12:13], v86, v122 ; D70F0C56 0002F556
v_cmp_lt_u64_e64 s[0:1], v[46:47], v[70:71] ; D4E10000 00028D2E
v_cmp_lt_u64_e64 s[6:7], v[52:53], v[76:77] ; D4E10006 00029934
v_add_co_u32 v70, s[30:31], v67, v99 ; D70F1E46 0002C743
v_add_co_ci_u32_e64 v13, s[18:19], 0, v88, s[18:19] ; D528120D 004AB080
v_add_co_ci_u32_e64 v43, s[18:19], 0, v93, s[20:21] ; D528122B 0052BA80
v_add_co_ci_u32_e64 v67, s[18:19], 0, v104, s[26:27] ; D5281243 006AD080
v_cmp_lt_u64_e64 s[4:5], v[50:51], v[74:75] ; D4E10004 00029532
v_add_co_u32 v64, s[24:25], v64, v91 ; D70F1840 0002B740
v_add_co_u32 v74, s[36:37], v90, v101 ; D70F244A 0002CB5A
v_add_co_ci_u32_e64 v107, vcc, 0, v121, s[12:13] ; D5286A6B 0032F280
v_cmp_lt_u64_e64 s[12:13], v[56:57], v[82:83] ; D4E1000C 0002A538
v_cmp_lt_u64_e64 s[14:15], v[10:11], v[84:85] ; D4E1000E 0002A90A
v_cmp_lt_u64_e32 vcc, v[44:45], v[68:69] ; 7DC2892C
v_cmp_lt_u64_e64 s[10:11], v[54:55], v[80:81] ; D4E1000A 0002A136
v_add_co_u32 v62, s[22:23], v63, v89 ; D70F163E 0002B33F
v_add_co_u32 v68, s[28:29], v97, v96 ; D70F1C44 0002C161
v_add_co_ci_u32_e64 v65, s[18:19], 0, v103, s[24:25] ; D5281241 0062CE80
v_add_co_ci_u32_e64 v71, s[18:19], 0, v106, s[30:31] ; D5281247 007AD480
v_add_co_ci_u32_e64 v75, s[18:19], 0, v108, s[36:37] ; D528124B 0092D880
v_add_co_ci_u32_e64 v63, s[18:19], 0, v98, s[22:23] ; D528123F 005AC480
v_add_co_ci_u32_e64 v69, s[18:19], 0, v105, s[28:29] ; D5281245 0072D280
v_cndmask_b32_e64 v48, v48, -1, s[2:3] ; D5010030 00098330
v_cndmask_b32_e64 v49, v49, -1, s[2:3] ; D5010031 00098331
v_cndmask_b32_e64 v58, v58, -1, s[8:9] ; D501003A 0021833A
v_cndmask_b32_e64 v59, v59, -1, s[8:9] ; D501003B 0021833B
v_cmp_eq_u64_e64 s[2:3], 0, v[42:43] ; D4E20002 00025480
v_cmp_eq_u64_e64 s[8:9], 0, v[66:67] ; D4E20008 00028480
v_add_co_u32 v72, s[34:35], v86, v100 ; D70F2248 0002C956
v_cndmask_b32_e64 v46, v46, -1, s[0:1] ; D501002E 0001832E
v_cndmask_b32_e64 v52, v52, -1, s[6:7] ; D5010034 00198334
v_add_co_ci_u32_e64 v73, s[18:19], 0, v107, s[34:35] ; D5281249 008AD680
v_cndmask_b32_e64 v47, v47, -1, s[0:1] ; D501002F 0001832F
v_cndmask_b32_e64 v53, v53, -1, s[6:7] ; D5010035 00198335
v_cndmask_b32_e64 v78, v56, -1, s[12:13] ; D501004E 00318338
v_cndmask_b32_e64 v56, v57, -1, s[12:13] ; D5010038 00318339
v_cndmask_b32_e64 v57, v10, -1, s[14:15] ; D5010039 0039830A
v_cndmask_b32_e64 v79, v11, -1, s[14:15] ; D501004F 0039830B
v_cmp_eq_u64_e64 s[0:1], 0, v[12:13] ; D4E20000 00021880
v_cmp_eq_u64_e64 s[6:7], 0, v[64:65] ; D4E20006 00028080
v_cmp_eq_u64_e64 s[12:13], 0, v[70:71] ; D4E2000C 00028C80
v_cmp_eq_u64_e64 s[14:15], 0, v[74:75] ; D4E2000E 00029480
v_cndmask_b32_e64 v44, v44, -1, vcc ; D501002C 01A9832C
v_cndmask_b32_e64 v50, v50, -1, s[4:5] ; D5010032 00118332
v_cndmask_b32_e64 v54, v54, -1, s[10:11] ; D5010036 00298336
v_cndmask_b32_e64 v51, v51, -1, s[4:5] ; D5010033 00118333
v_cndmask_b32_e64 v55, v55, -1, s[10:11] ; D5010037 00298337
v_cmp_eq_u64_e64 s[4:5], 0, v[62:63] ; D4E20004 00027C80
v_cmp_eq_u64_e64 s[10:11], 0, v[68:69] ; D4E2000A 00028880
s_waitcnt vmcnt(7) ; BF8C3F77
v_mul_hi_u32 v92, v0, v6 ; D56A005C 00020D00
v_cndmask_b32_e64 v12, -1, v46, s[2:3] ; D501000C 000A5CC1
v_cndmask_b32_e64 v46, -1, v52, s[8:9] ; D501002E 002268C1
v_mul_lo_u32 v52, v0, v7 ; D5690034 00020F00
v_cndmask_b32_e64 v45, v45, -1, vcc ; D501002D 01A9832D
v_cmp_eq_u64_e32 vcc, 0, v[72:73] ; 7DC49080
v_cndmask_b32_e64 v10, -1, v44, s[0:1] ; D501000A 000258C1
v_cndmask_b32_e64 v44, -1, v50, s[6:7] ; D501002C 001A64C1
v_cndmask_b32_e64 v50, -1, v54, s[12:13] ; D5010032 00326CC1
v_cndmask_b32_e64 v54, -1, v57, s[14:15] ; D5010036 003A72C1
v_mul_hi_u32 v57, v0, v7 ; D56A0039 00020F00
v_cndmask_b32_e64 v42, -1, v48, s[4:5] ; D501002A 001260C1
v_cndmask_b32_e64 v48, -1, v58, s[10:11] ; D5010030 002A74C1
v_mul_lo_u32 v58, v1, v6 ; D569003A 00020D01
v_mul_lo_u32 v0, v0, v6 ; D5690000 00020D00
v_mul_hi_u32 v6, v1, v6 ; D56A0006 00020D01
v_cndmask_b32_e64 v13, -1, v47, s[2:3] ; D501000D 000A5EC1
v_cndmask_b32_e64 v43, -1, v49, s[4:5] ; D501002B 001262C1
v_cndmask_b32_e64 v47, -1, v53, s[8:9] ; D501002F 00226AC1
v_cndmask_b32_e64 v49, -1, v59, s[10:11] ; D5010031 002A76C1
v_cndmask_b32_e32 v53, -1, v56, vcc ; 026A70C1
v_cndmask_b32_e64 v56, v61, -1, s[16:17] ; D5010038 0041833D
v_add_co_u32 v59, s[2:3], v92, v52 ; D70F023B 0002695C
v_mul_lo_u32 v61, v1, v7 ; D569003D 00020F01
v_mul_hi_u32 v7, v1, v7 ; D56A0007 00020F01
v_add_co_ci_u32_e64 v57, s[2:3], 0, v57, s[2:3] ; D5280239 000A7280
v_add_co_u32 v1, s[2:3], v59, v58 ; D70F0201 0002753B
v_add_co_ci_u32_e64 v59, s[2:3], 0, v6, s[2:3] ; D528023B 000A0C80
v_add_co_u32 v76, s[38:39], v95, v102 ; D70F264C 0002CD5F
v_add_co_u32 v57, s[2:3], v57, v61 ; D70F0239 00027B39
v_add3_u32 v1, v52, v58, v92 ; D76D0001 05727534
v_add_co_ci_u32_e64 v77, s[18:19], 0, v109, s[38:39] ; D528124D 009ADA80
v_add_co_ci_u32_e64 v52, s[2:3], 0, v7, s[2:3] ; D5280234 000A0E80
s_waitcnt vmcnt(6) ; BF8C3F76
v_add_co_u32 v6, s[2:3], v0, v14 ; D70F0206 00021D00
v_add_co_ci_u32_e64 v7, s[2:3], v1, v15, s[2:3] ; D5280207 000A1F01
v_cndmask_b32_e64 v11, -1, v45, s[0:1] ; D501000B 00025AC1
v_cmp_eq_u64_e64 s[0:1], 0, v[76:77] ; D4E20000 00029880
v_add_co_u32 v14, s[2:3], v57, v59 ; D70F020E 00027739
v_add_co_ci_u32_e64 v15, s[2:3], 0, v52, s[2:3] ; D528020F 000A6880
v_cmp_lt_u64_e64 s[2:3], v[6:7], v[0:1] ; D4E10002 00020106
v_cndmask_b32_e64 v57, -1, v56, s[0:1] ; D5010039 000270C1
v_mul_hi_u32 v1, v2, v8 ; D56A0001 00021102
v_mul_lo_u32 v56, v2, v9 ; D5690038 00021302
v_cmp_eq_u64_e64 s[4:5], 0, v[14:15] ; D4E20004 00021C80
v_mul_lo_u32 v0, v2, v8 ; D5690000 00021102
v_cndmask_b32_e64 v14, v6, -1, s[2:3] ; D501000E 00098306
v_mul_hi_u32 v6, v2, v9 ; D56A0006 00021302
v_mul_lo_u32 v2, v3, v8 ; D5690002 00021103
v_mul_hi_u32 v8, v3, v8 ; D56A0008 00021103
v_cndmask_b32_e64 v15, v7, -1, s[2:3] ; D501000F 00098307
v_add_co_u32 v7, s[2:3], v1, v56 ; D70F0207 00027101
v_mul_lo_u32 v58, v3, v9 ; D569003A 00021303
v_mul_hi_u32 v3, v3, v9 ; D56A0003 00021303
v_add_co_ci_u32_e64 v6, s[2:3], 0, v6, s[2:3] ; D5280206 000A0C80
v_add_co_u32 v7, s[2:3], v7, v2 ; D70F0207 00020507
v_add_co_ci_u32_e64 v7, s[2:3], 0, v8, s[2:3] ; D5280207 000A1080
v_add_co_u32 v6, s[2:3], v6, v58 ; D70F0206 00027506
v_add3_u32 v1, v56, v2, v1 ; D76D0001 04060538
v_add_co_ci_u32_e64 v8, s[2:3], 0, v3, s[2:3] ; D5280208 000A0680
v_add_co_u32 v2, s[2:3], v0, v16 ; D70F0202 00022100
v_add_co_ci_u32_e64 v3, s[2:3], v1, v17, s[2:3] ; D5280203 000A2301
v_add_co_u32 v6, s[2:3], v6, v7 ; D70F0206 00020F06
v_add_co_ci_u32_e64 v7, s[2:3], 0, v8, s[2:3] ; D5280207 000A1080
s_waitcnt vmcnt(4) ; BF8C3F74
v_mul_hi_u32 v8, v18, v22 ; D56A0008 00022D12
v_mul_lo_u32 v9, v18, v23 ; D5690009 00022F12
v_cndmask_b32_e64 v45, -1, v51, s[6:7] ; D501002D 001A66C1
v_cmp_eq_u64_e64 s[2:3], 0, v[6:7] ; D4E20002 00020C80
v_mul_hi_u32 v7, v18, v23 ; D56A0007 00022F12
v_cmp_lt_u64_e64 s[6:7], v[2:3], v[0:1] ; D4E10006 00020102
v_cndmask_b32_e64 v0, -1, v14, s[4:5] ; D5010000 00121CC1
v_mul_lo_u32 v14, v19, v22 ; D569000E 00022D13
v_mul_hi_u32 v16, v19, v22 ; D56A0010 00022D13
v_cndmask_b32_e64 v1, -1, v15, s[4:5] ; D5010001 00121EC1
v_add_co_u32 v15, s[4:5], v8, v9 ; D70F040F 00021308
v_mul_lo_u32 v17, v19, v23 ; D5690011 00022F13
v_mul_lo_u32 v6, v18, v22 ; D5690006 00022D12
v_mul_hi_u32 v18, v19, v23 ; D56A0012 00022F13
v_add_co_ci_u32_e64 v7, s[4:5], 0, v7, s[4:5] ; D5280407 00120E80
v_add_co_u32 v15, s[4:5], v15, v14 ; D70F040F 00021D0F
v_add_co_ci_u32_e64 v15, s[4:5], 0, v16, s[4:5] ; D528040F 00122080
v_add_co_u32 v16, s[4:5], v7, v17 ; D70F0410 00022307
v_add3_u32 v7, v9, v14, v8 ; D76D0007 04221D09
v_add_co_ci_u32_e64 v17, s[4:5], 0, v18, s[4:5] ; D5280411 00122480
s_waitcnt vmcnt(3) ; BF8C3F73
v_add_co_u32 v8, s[4:5], v6, v26 ; D70F0408 00023506
v_add_co_ci_u32_e64 v9, s[4:5], v7, v27, s[4:5] ; D5280409 00123707
v_add_co_u32 v14, s[4:5], v16, v15 ; D70F040E 00021F10
v_add_co_ci_u32_e64 v15, s[4:5], 0, v17, s[4:5] ; D528040F 00122280
v_cmp_lt_u64_e64 s[4:5], v[8:9], v[6:7] ; D4E10004 00020D08
v_mul_hi_u32 v7, v20, v24 ; D56A0007 00023114
v_mul_lo_u32 v16, v20, v25 ; D5690010 00023314
v_cmp_eq_u64_e64 s[8:9], 0, v[14:15] ; D4E20008 00021C80
v_mul_hi_u32 v15, v21, v24 ; D56A000F 00023115
v_mul_lo_u32 v19, v21, v25 ; D5690013 00023315
v_cndmask_b32_e64 v17, v8, -1, s[4:5] ; D5010011 00118308
v_mul_hi_u32 v8, v20, v25 ; D56A0008 00023314
v_cndmask_b32_e64 v18, v9, -1, s[4:5] ; D5010012 00118309
v_mul_lo_u32 v9, v21, v24 ; D5690009 00023115
v_add_co_u32 v14, s[4:5], v7, v16 ; D70F040E 00022107
v_mul_lo_u32 v6, v20, v24 ; D5690006 00023114
v_mul_hi_u32 v20, v21, v25 ; D56A0014 00023315
v_cndmask_b32_e64 v3, v3, -1, s[6:7] ; D5010003 00198303
v_add_co_ci_u32_e64 v8, s[4:5], 0, v8, s[4:5] ; D5280408 00121080
v_add_co_u32 v14, s[4:5], v14, v9 ; D70F040E 0002130E
v_add_co_ci_u32_e64 v14, s[4:5], 0, v15, s[4:5] ; D528040E 00121E80
v_add_co_u32 v15, s[4:5], v8, v19 ; D70F040F 00022708
v_add3_u32 v7, v16, v9, v7 ; D76D0007 041E1310
v_add_co_ci_u32_e64 v16, s[4:5], 0, v20, s[4:5] ; D5280410 00122880
v_add_co_u32 v8, s[4:5], v6, v28 ; D70F0408 00023906
v_add_co_ci_u32_e64 v9, s[4:5], v7, v29, s[4:5] ; D5280409 00123B07
v_add_co_u32 v14, s[4:5], v15, v14 ; D70F040E 00021D0F
v_add_co_ci_u32_e64 v15, s[4:5], 0, v16, s[4:5] ; D528040F 00122080
v_cndmask_b32_e64 v2, v2, -1, s[6:7] ; D5010002 00198302
v_cmp_lt_u64_e64 s[6:7], v[8:9], v[6:7] ; D4E10006 00020D08
v_cndmask_b32_e64 v7, -1, v18, s[8:9] ; D5010007 002224C1
s_waitcnt vmcnt(1) ; BF8C3F71
v_mul_hi_u32 v16, v30, v34 ; D56A0010 0002451E
v_mul_lo_u32 v18, v30, v35 ; D5690012 0002471E
v_cmp_eq_u64_e64 s[4:5], 0, v[14:15] ; D4E20004 00021C80
v_mul_hi_u32 v15, v30, v35 ; D56A000F 0002471E
v_cndmask_b32_e64 v6, -1, v17, s[8:9] ; D5010006 002222C1
v_mul_lo_u32 v17, v31, v34 ; D5690011 0002451F
v_mul_hi_u32 v20, v31, v34 ; D56A0014 0002451F
v_mul_lo_u32 v21, v31, v35 ; D5690015 0002471F
v_mul_lo_u32 v14, v30, v34 ; D569000E 0002451E
v_add_co_u32 v19, s[8:9], v16, v18 ; D70F0813 00022510
v_add_co_ci_u32_e64 v15, s[8:9], 0, v15, s[8:9] ; D528080F 00221E80
v_mul_hi_u32 v22, v31, v35 ; D56A0016 0002471F
v_add_co_u32 v19, s[8:9], v19, v17 ; D70F0813 00022313
v_add_co_ci_u32_e64 v19, s[8:9], 0, v20, s[8:9] ; D5280813 00222880
v_add_co_u32 v20, s[8:9], v15, v21 ; D70F0814 00022B0F
v_add3_u32 v15, v18, v17, v16 ; D76D000F 04422312
s_waitcnt vmcnt(0) ; BF8C3F70
v_add_co_u32 v18, s[10:11], v14, v38 ; D70F0A12 00024D0E
v_add_co_ci_u32_e64 v21, s[8:9], 0, v22, s[8:9] ; D5280815 00222C80
v_add_co_u32 v16, s[8:9], v20, v19 ; D70F0810 00022714
v_add_co_ci_u32_e64 v19, s[10:11], v15, v39, s[10:11] ; D5280A13 002A4F0F
v_mul_hi_u32 v20, v32, v36 ; D56A0014 00024920
v_mul_lo_u32 v22, v32, v37 ; D5690016 00024B20
v_add_co_ci_u32_e64 v17, s[8:9], 0, v21, s[8:9] ; D5280811 00222A80
v_cmp_lt_u64_e64 s[8:9], v[18:19], v[14:15] ; D4E10008 00021D12
v_mul_hi_u32 v15, v32, v37 ; D56A000F 00024B20
v_mul_lo_u32 v21, v33, v36 ; D5690015 00024921
v_mul_hi_u32 v24, v33, v36 ; D56A0018 00024921
v_mul_lo_u32 v25, v33, v37 ; D5690019 00024B21
v_add_co_u32 v23, s[10:11], v20, v22 ; D70F0A17 00022D14
v_mul_hi_u32 v26, v33, v37 ; D56A001A 00024B21
v_mul_lo_u32 v14, v32, v36 ; D569000E 00024920
v_add_co_ci_u32_e64 v15, s[10:11], 0, v15, s[10:11] ; D5280A0F 002A1E80
v_add_co_u32 v23, s[10:11], v23, v21 ; D70F0A17 00022B17
v_add_co_ci_u32_e64 v23, s[10:11], 0, v24, s[10:11] ; D5280A17 002A3080
v_add_co_u32 v24, s[10:11], v15, v25 ; D70F0A18 0002330F
v_add3_u32 v15, v22, v21, v20 ; D76D000F 04522B16
v_add_co_ci_u32_e64 v25, s[10:11], 0, v26, s[10:11] ; D5280A19 002A3480
v_add_co_u32 v20, s[10:11], v14, v40 ; D70F0A14 0002510E
v_add_co_ci_u32_e64 v21, s[10:11], v15, v41, s[10:11] ; D5280A15 002A530F
v_add_co_u32 v22, s[10:11], v24, v23 ; D70F0A16 00022F18
v_add_co_ci_u32_e64 v23, s[10:11], 0, v25, s[10:11] ; D5280A17 002A3280
v_cmp_lt_u64_e64 s[10:11], v[20:21], v[14:15] ; D4E1000A 00021D14
v_cndmask_b32_e64 v8, v8, -1, s[6:7] ; D5010008 00198308
v_cndmask_b32_e64 v9, v9, -1, s[6:7] ; D5010009 00198309
v_cmp_eq_u64_e64 s[6:7], 0, v[16:17] ; D4E20006 00022080
v_cndmask_b32_e64 v14, v18, -1, s[8:9] ; D501000E 00218312
v_cndmask_b32_e64 v15, v19, -1, s[8:9] ; D501000F 00218313
v_cmp_eq_u64_e64 s[8:9], 0, v[22:23] ; D4E20008 00022C80
v_cndmask_b32_e64 v16, v21, -1, s[10:11] ; D5010010 00298315
v_cndmask_b32_e64 v18, v20, -1, s[10:11] ; D5010012 00298314
v_cndmask_b32_e64 v52, v60, -1, s[16:17] ; D5010034 0041833C
v_cndmask_b32_e64 v15, -1, v15, s[6:7] ; D501000F 001A1EC1
v_cndmask_b32_e64 v14, -1, v14, s[6:7] ; D501000E 001A1CC1
v_add_co_u32 v4, s[6:7], v4, s46 ; D70F0604 00005D04
v_cndmask_b32_e64 v17, -1, v16, s[8:9] ; D5010011 002220C1
v_cndmask_b32_e64 v16, -1, v18, s[8:9] ; D5010010 002224C1
v_add_co_ci_u32_e64 v5, s[6:7], s47, v5, s[6:7] ; D5280605 001A0A2F
v_cndmask_b32_e64 v9, -1, v9, s[4:5] ; D5010009 001212C1
v_cndmask_b32_e64 v8, -1, v8, s[4:5] ; D5010008 001210C1
v_cndmask_b32_e64 v3, -1, v3, s[2:3] ; D5010003 000A06C1
v_cndmask_b32_e64 v2, -1, v2, s[2:3] ; D5010002 000A04C1
v_cndmask_b32_e64 v51, -1, v55, s[12:13] ; D5010033 00326EC1
v_cndmask_b32_e64 v55, -1, v79, s[14:15] ; D5010037 003A9EC1
v_cndmask_b32_e64 v56, -1, v52, s[0:1] ; D5010038 000268C1
v_cndmask_b32_e32 v52, -1, v78, vcc ; 02689CC1
global_store_dwordx4 v[4:5], v[14:17], off offset:112 ; DC788070 007D0E04
global_store_dwordx4 v[4:5], v[6:9], off offset:96 ; DC788060 007D0604
global_store_dwordx4 v[4:5], v[0:3], off offset:80 ; DC788050 007D0004
global_store_dwordx4 v[4:5], v[54:57], off offset:64 ; DC788040 007D3604
global_store_dwordx4 v[4:5], v[50:53], off offset:48 ; DC788030 007D3204
global_store_dwordx4 v[4:5], v[46:49], off offset:32 ; DC788020 007D2E04
global_store_dwordx4 v[4:5], v[42:45], off offset:16 ; DC788010 007D2A04
global_store_dwordx4 v[4:5], v[10:13], off ; DC788000 007D0A04
s_endpgm ; BF810000
*** SHADER STATS ***
SGPRS: 56
VGPRS: 140
Spilled SGPRs: 0
Spilled VGPRs: 0
Private memory VGPRs: 0
Code Size: 3640 bytes
LDS: 0 bytes
Scratch: 0 bytes per wave
Max Waves: 3
********************
ERROR: Data sample 0:0 does not validate! Expected (0xffffffffffffffff), got (0x0000000000000000), sources (0xb716a67597c4aa2f, 0x7363148f18a84601, 0x85fcf4c74af01599)
Vector ulong16,ulong16,ulong16 FAILED
integer_mad_sat FAILED
PASSED sub-test.
FAILED test.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment