; LLVM IR from libxsmm/libxsmm :: src (libxsmm_mhd)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@.str.24 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [75 x i8], align 1
@__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion = external hidden unnamed_addr constant [129 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [30 x i8], align 1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nounwind uwtable
define dso_local i32 @libxsmm_mhd_element_conversion(ptr noundef %0, i32 noundef %1, i32 noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5) #2 {
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca double, align 8
  %15 = alloca i64, align 8
  %16 = alloca double, align 8
  %17 = alloca double, align 8
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca i32, align 4
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca i16, align 2
  %38 = alloca double, align 8
  %39 = alloca double, align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca i8, align 1
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca double, align 8
  %54 = alloca double, align 8
  %55 = alloca double, align 8
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca i64, align 8
  %60 = alloca double, align 8
  %61 = alloca double, align 8
  %62 = alloca double, align 8
  %63 = alloca double, align 8
  %64 = alloca double, align 8
  %65 = alloca double, align 8
  %66 = alloca double, align 8
  %67 = alloca double, align 8
  %68 = alloca double, align 8
  %69 = alloca double, align 8
  %70 = alloca i32, align 4
  %71 = alloca double, align 8
  %72 = alloca double, align 8
  %73 = alloca double, align 8
  %74 = alloca double, align 8
  %75 = alloca double, align 8
  %76 = alloca double, align 8
  %77 = alloca double, align 8
  %78 = alloca double, align 8
  %79 = alloca double, align 8
  %80 = alloca double, align 8
  %81 = alloca i16, align 2
  %82 = alloca double, align 8
  %83 = alloca double, align 8
  %84 = alloca double, align 8
  %85 = alloca double, align 8
  %86 = alloca double, align 8
  %87 = alloca double, align 8
  %88 = alloca double, align 8
  %89 = alloca double, align 8
  %90 = alloca double, align 8
  %91 = alloca double, align 8
  %92 = alloca i8, align 1
  %93 = alloca double, align 8
  %94 = alloca double, align 8
  %95 = alloca double, align 8
  %96 = alloca double, align 8
  %97 = alloca double, align 8
  %98 = alloca double, align 8
  %99 = alloca double, align 8
  %100 = alloca double, align 8
  %101 = alloca double, align 8
  %102 = alloca double, align 8
  %103 = alloca double, align 8
  %104 = alloca double, align 8
  %105 = alloca double, align 8
  %106 = alloca double, align 8
  %107 = alloca double, align 8
  %108 = alloca double, align 8
  %109 = alloca double, align 8
  %110 = alloca double, align 8
  %111 = alloca double, align 8
  %112 = alloca double, align 8
  %113 = alloca float, align 4
  %114 = alloca double, align 8
  %115 = alloca double, align 8
  %116 = alloca double, align 8
  %117 = alloca double, align 8
  %118 = alloca double, align 8
  %119 = alloca double, align 8
  %120 = alloca double, align 8
  %121 = alloca double, align 8
  %122 = alloca double, align 8
  %123 = alloca i64, align 8
  %124 = alloca double, align 8
  %125 = alloca double, align 8
  %126 = alloca double, align 8
  %127 = alloca double, align 8
  %128 = alloca double, align 8
  %129 = alloca double, align 8
  %130 = alloca double, align 8
  %131 = alloca double, align 8
  %132 = alloca double, align 8
  %133 = alloca double, align 8
  %134 = alloca i32, align 4
  %135 = alloca double, align 8
  %136 = alloca double, align 8
  %137 = alloca double, align 8
  %138 = alloca double, align 8
  %139 = alloca double, align 8
  %140 = alloca double, align 8
  %141 = alloca double, align 8
  %142 = alloca double, align 8
  %143 = alloca double, align 8
  %144 = alloca double, align 8
  %145 = alloca i16, align 2
  %146 = alloca double, align 8
  %147 = alloca double, align 8
  %148 = alloca double, align 8
  %149 = alloca double, align 8
  %150 = alloca double, align 8
  %151 = alloca double, align 8
  %152 = alloca double, align 8
  %153 = alloca double, align 8
  %154 = alloca double, align 8
  %155 = alloca double, align 8
  %156 = alloca i8, align 1
  %157 = alloca double, align 8
  %158 = alloca double, align 8
  %159 = alloca double, align 8
  %160 = alloca double, align 8
  %161 = alloca double, align 8
  %162 = alloca double, align 8
  %163 = alloca double, align 8
  %164 = alloca double, align 8
  %165 = alloca double, align 8
  %166 = alloca double, align 8
  %167 = alloca i64, align 8
  %168 = alloca double, align 8
  %169 = alloca double, align 8
  %170 = alloca double, align 8
  %171 = alloca double, align 8
  %172 = alloca double, align 8
  %173 = alloca double, align 8
  %174 = alloca double, align 8
  %175 = alloca double, align 8
  %176 = alloca double, align 8
  %177 = alloca double, align 8
  %178 = alloca i32, align 4
  %179 = alloca double, align 8
  %180 = alloca double, align 8
  %181 = alloca double, align 8
  %182 = alloca double, align 8
  %183 = alloca double, align 8
  %184 = alloca double, align 8
  %185 = alloca double, align 8
  %186 = alloca double, align 8
  %187 = alloca double, align 8
  %188 = alloca double, align 8
  %189 = alloca i16, align 2
  %190 = alloca double, align 8
  %191 = alloca double, align 8
  %192 = alloca double, align 8
  %193 = alloca double, align 8
  %194 = alloca double, align 8
  %195 = alloca double, align 8
  %196 = alloca double, align 8
  %197 = alloca double, align 8
  %198 = alloca double, align 8
  %199 = alloca double, align 8
  %200 = alloca i8, align 1
  %201 = alloca double, align 8
  %202 = alloca double, align 8
  %203 = alloca double, align 8
  %204 = alloca double, align 8
  %205 = alloca double, align 8
  %206 = alloca double, align 8
  %207 = alloca double, align 8
  %208 = alloca double, align 8
  %209 = alloca double, align 8
  %210 = alloca double, align 8
  %211 = alloca double, align 8
  %212 = alloca double, align 8
  %213 = alloca double, align 8
  %214 = alloca double, align 8
  %215 = alloca double, align 8
  %216 = alloca double, align 8
  %217 = alloca double, align 8
  %218 = alloca double, align 8
  %219 = alloca double, align 8
  %220 = alloca double, align 8
  %221 = alloca float, align 4
  %222 = alloca double, align 8
  %223 = alloca double, align 8
  %224 = alloca double, align 8
  %225 = alloca double, align 8
  %226 = alloca double, align 8
  %227 = alloca double, align 8
  %228 = alloca double, align 8
  %229 = alloca double, align 8
  %230 = alloca double, align 8
  %231 = alloca i64, align 8
  %232 = alloca double, align 8
  %233 = alloca double, align 8
  %234 = alloca double, align 8
  %235 = alloca double, align 8
  %236 = alloca double, align 8
  %237 = alloca double, align 8
  %238 = alloca double, align 8
  %239 = alloca double, align 8
  %240 = alloca double, align 8
  %241 = alloca double, align 8
  %242 = alloca i32, align 4
  %243 = alloca double, align 8
  %244 = alloca double, align 8
  %245 = alloca double, align 8
  %246 = alloca double, align 8
  %247 = alloca double, align 8
  %248 = alloca double, align 8
  %249 = alloca double, align 8
  %250 = alloca double, align 8
  %251 = alloca double, align 8
  %252 = alloca double, align 8
  %253 = alloca i16, align 2
  %254 = alloca double, align 8
  %255 = alloca double, align 8
  %256 = alloca double, align 8
  %257 = alloca double, align 8
  %258 = alloca double, align 8
  %259 = alloca double, align 8
  %260 = alloca double, align 8
  %261 = alloca double, align 8
  %262 = alloca double, align 8
  %263 = alloca double, align 8
  %264 = alloca i8, align 1
  %265 = alloca double, align 8
  %266 = alloca double, align 8
  %267 = alloca double, align 8
  %268 = alloca double, align 8
  %269 = alloca double, align 8
  %270 = alloca double, align 8
  %271 = alloca double, align 8
  %272 = alloca double, align 8
  %273 = alloca double, align 8
  %274 = alloca double, align 8
  %275 = alloca i64, align 8
  %276 = alloca double, align 8
  %277 = alloca double, align 8
  %278 = alloca double, align 8
  %279 = alloca double, align 8
  %280 = alloca double, align 8
  %281 = alloca double, align 8
  %282 = alloca double, align 8
  %283 = alloca double, align 8
  %284 = alloca double, align 8
  %285 = alloca double, align 8
  %286 = alloca i32, align 4
  %287 = alloca double, align 8
  %288 = alloca double, align 8
  %289 = alloca double, align 8
  %290 = alloca double, align 8
  %291 = alloca double, align 8
  %292 = alloca double, align 8
  %293 = alloca double, align 8
  %294 = alloca double, align 8
  %295 = alloca double, align 8
  %296 = alloca double, align 8
  %297 = alloca i16, align 2
  %298 = alloca double, align 8
  %299 = alloca double, align 8
  %300 = alloca double, align 8
  %301 = alloca double, align 8
  %302 = alloca double, align 8
  %303 = alloca double, align 8
  %304 = alloca double, align 8
  %305 = alloca double, align 8
  %306 = alloca double, align 8
  %307 = alloca double, align 8
  %308 = alloca i8, align 1
  %309 = alloca double, align 8
  %310 = alloca double, align 8
  %311 = alloca double, align 8
  %312 = alloca double, align 8
  %313 = alloca double, align 8
  %314 = alloca double, align 8
  %315 = alloca double, align 8
  %316 = alloca double, align 8
  %317 = alloca double, align 8
  %318 = alloca double, align 8
  %319 = alloca double, align 8
  %320 = alloca double, align 8
  %321 = alloca double, align 8
  %322 = alloca double, align 8
  %323 = alloca double, align 8
  %324 = alloca double, align 8
  %325 = alloca double, align 8
  %326 = alloca double, align 8
  %327 = alloca double, align 8
  %328 = alloca double, align 8
  %329 = alloca float, align 4
  %330 = alloca double, align 8
  %331 = alloca double, align 8
  %332 = alloca double, align 8
  %333 = alloca double, align 8
  %334 = alloca double, align 8
  %335 = alloca double, align 8
  %336 = alloca double, align 8
  %337 = alloca double, align 8
  %338 = alloca double, align 8
  %339 = alloca i64, align 8
  %340 = alloca double, align 8
  %341 = alloca double, align 8
  %342 = alloca double, align 8
  %343 = alloca double, align 8
  %344 = alloca double, align 8
  %345 = alloca double, align 8
  %346 = alloca double, align 8
  %347 = alloca double, align 8
  %348 = alloca double, align 8
  %349 = alloca double, align 8
  %350 = alloca i32, align 4
  %351 = alloca double, align 8
  %352 = alloca double, align 8
  %353 = alloca double, align 8
  %354 = alloca double, align 8
  %355 = alloca double, align 8
  %356 = alloca double, align 8
  %357 = alloca double, align 8
  %358 = alloca double, align 8
  %359 = alloca double, align 8
  %360 = alloca double, align 8
  %361 = alloca i16, align 2
  %362 = alloca double, align 8
  %363 = alloca double, align 8
  %364 = alloca double, align 8
  %365 = alloca double, align 8
  %366 = alloca double, align 8
  %367 = alloca double, align 8
  %368 = alloca double, align 8
  %369 = alloca double, align 8
  %370 = alloca double, align 8
  %371 = alloca double, align 8
  %372 = alloca i8, align 1
  %373 = alloca double, align 8
  %374 = alloca double, align 8
  %375 = alloca double, align 8
  %376 = alloca double, align 8
  %377 = alloca double, align 8
  %378 = alloca double, align 8
  %379 = alloca double, align 8
  %380 = alloca double, align 8
  %381 = alloca double, align 8
  %382 = alloca double, align 8
  %383 = alloca i64, align 8
  %384 = alloca double, align 8
  %385 = alloca double, align 8
  %386 = alloca double, align 8
  %387 = alloca double, align 8
  %388 = alloca double, align 8
  %389 = alloca double, align 8
  %390 = alloca double, align 8
  %391 = alloca double, align 8
  %392 = alloca double, align 8
  %393 = alloca double, align 8
  %394 = alloca i32, align 4
  %395 = alloca double, align 8
  %396 = alloca double, align 8
  %397 = alloca double, align 8
  %398 = alloca double, align 8
  %399 = alloca double, align 8
  %400 = alloca double, align 8
  %401 = alloca double, align 8
  %402 = alloca double, align 8
  %403 = alloca double, align 8
  %404 = alloca double, align 8
  %405 = alloca i16, align 2
  %406 = alloca double, align 8
  %407 = alloca double, align 8
  %408 = alloca double, align 8
  %409 = alloca double, align 8
  %410 = alloca double, align 8
  %411 = alloca double, align 8
  %412 = alloca double, align 8
  %413 = alloca double, align 8
  %414 = alloca double, align 8
  %415 = alloca double, align 8
  %416 = alloca i8, align 1
  %417 = alloca double, align 8
  %418 = alloca double, align 8
  %419 = alloca double, align 8
  %420 = alloca double, align 8
  %421 = alloca double, align 8
  %422 = alloca double, align 8
  %423 = alloca double, align 8
  %424 = alloca double, align 8
  %425 = alloca double, align 8
  %426 = alloca double, align 8
  %427 = alloca double, align 8
  %428 = alloca double, align 8
  %429 = alloca double, align 8
  %430 = alloca double, align 8
  %431 = alloca double, align 8
  %432 = alloca double, align 8
  %433 = alloca double, align 8
  %434 = alloca double, align 8
  %435 = alloca double, align 8
  %436 = alloca double, align 8
  %437 = alloca float, align 4
  %438 = alloca double, align 8
  %439 = alloca double, align 8
  %440 = alloca double, align 8
  %441 = alloca double, align 8
  %442 = alloca double, align 8
  %443 = alloca double, align 8
  %444 = alloca double, align 8
  %445 = alloca double, align 8
  %446 = alloca double, align 8
  %447 = alloca i64, align 8
  %448 = alloca double, align 8
  %449 = alloca double, align 8
  %450 = alloca double, align 8
  %451 = alloca double, align 8
  %452 = alloca double, align 8
  %453 = alloca double, align 8
  %454 = alloca double, align 8
  %455 = alloca double, align 8
  %456 = alloca double, align 8
  %457 = alloca double, align 8
  %458 = alloca i32, align 4
  %459 = alloca double, align 8
  %460 = alloca double, align 8
  %461 = alloca double, align 8
  %462 = alloca double, align 8
  %463 = alloca double, align 8
  %464 = alloca double, align 8
  %465 = alloca double, align 8
  %466 = alloca double, align 8
  %467 = alloca double, align 8
  %468 = alloca double, align 8
  %469 = alloca i16, align 2
  %470 = alloca double, align 8
  %471 = alloca double, align 8
  %472 = alloca double, align 8
  %473 = alloca double, align 8
  %474 = alloca double, align 8
  %475 = alloca double, align 8
  %476 = alloca double, align 8
  %477 = alloca double, align 8
  %478 = alloca double, align 8
  %479 = alloca double, align 8
  %480 = alloca i8, align 1
  %481 = alloca double, align 8
  %482 = alloca double, align 8
  %483 = alloca double, align 8
  %484 = alloca double, align 8
  %485 = alloca double, align 8
  %486 = alloca double, align 8
  %487 = alloca double, align 8
  %488 = alloca double, align 8
  %489 = alloca double, align 8
  %490 = alloca double, align 8
  %491 = alloca i64, align 8
  %492 = alloca double, align 8
  %493 = alloca double, align 8
  %494 = alloca double, align 8
  %495 = alloca double, align 8
  %496 = alloca double, align 8
  %497 = alloca double, align 8
  %498 = alloca double, align 8
  %499 = alloca double, align 8
  %500 = alloca double, align 8
  %501 = alloca double, align 8
  %502 = alloca i32, align 4
  %503 = alloca double, align 8
  %504 = alloca double, align 8
  %505 = alloca double, align 8
  %506 = alloca double, align 8
  %507 = alloca double, align 8
  %508 = alloca double, align 8
  %509 = alloca double, align 8
  %510 = alloca double, align 8
  %511 = alloca double, align 8
  %512 = alloca double, align 8
  %513 = alloca i16, align 2
  %514 = alloca double, align 8
  %515 = alloca double, align 8
  %516 = alloca double, align 8
  %517 = alloca double, align 8
  %518 = alloca double, align 8
  %519 = alloca double, align 8
  %520 = alloca double, align 8
  %521 = alloca double, align 8
  %522 = alloca double, align 8
  %523 = alloca double, align 8
  %524 = alloca i8, align 1
  %525 = alloca double, align 8
  %526 = alloca double, align 8
  %527 = alloca double, align 8
  %528 = alloca double, align 8
  %529 = alloca double, align 8
  %530 = alloca double, align 8
  %531 = alloca double, align 8
  %532 = alloca double, align 8
  %533 = alloca double, align 8
  %534 = alloca double, align 8
  %535 = alloca double, align 8
  %536 = alloca double, align 8
  %537 = alloca double, align 8
  %538 = alloca double, align 8
  %539 = alloca double, align 8
  %540 = alloca double, align 8
  %541 = alloca double, align 8
  %542 = alloca double, align 8
  %543 = alloca double, align 8
  %544 = alloca double, align 8
  %545 = alloca float, align 4
  %546 = alloca double, align 8
  %547 = alloca double, align 8
  %548 = alloca double, align 8
  %549 = alloca double, align 8
  %550 = alloca double, align 8
  %551 = alloca double, align 8
  %552 = alloca double, align 8
  %553 = alloca double, align 8
  %554 = alloca double, align 8
  %555 = alloca i64, align 8
  %556 = alloca double, align 8
  %557 = alloca double, align 8
  %558 = alloca double, align 8
  %559 = alloca double, align 8
  %560 = alloca double, align 8
  %561 = alloca double, align 8
  %562 = alloca double, align 8
  %563 = alloca double, align 8
  %564 = alloca double, align 8
  %565 = alloca double, align 8
  %566 = alloca i32, align 4
  %567 = alloca double, align 8
  %568 = alloca double, align 8
  %569 = alloca double, align 8
  %570 = alloca double, align 8
  %571 = alloca double, align 8
  %572 = alloca double, align 8
  %573 = alloca double, align 8
  %574 = alloca double, align 8
  %575 = alloca double, align 8
  %576 = alloca double, align 8
  %577 = alloca i16, align 2
  %578 = alloca double, align 8
  %579 = alloca double, align 8
  %580 = alloca double, align 8
  %581 = alloca double, align 8
  %582 = alloca double, align 8
  %583 = alloca double, align 8
  %584 = alloca double, align 8
  %585 = alloca double, align 8
  %586 = alloca double, align 8
  %587 = alloca double, align 8
  %588 = alloca i8, align 1
  %589 = alloca double, align 8
  %590 = alloca double, align 8
  %591 = alloca double, align 8
  %592 = alloca double, align 8
  %593 = alloca double, align 8
  %594 = alloca double, align 8
  %595 = alloca double, align 8
  %596 = alloca double, align 8
  %597 = alloca double, align 8
  %598 = alloca double, align 8
  %599 = alloca i64, align 8
  %600 = alloca double, align 8
  %601 = alloca double, align 8
  %602 = alloca double, align 8
  %603 = alloca double, align 8
  %604 = alloca double, align 8
  %605 = alloca double, align 8
  %606 = alloca double, align 8
  %607 = alloca double, align 8
  %608 = alloca double, align 8
  %609 = alloca double, align 8
  %610 = alloca i32, align 4
  %611 = alloca double, align 8
  %612 = alloca double, align 8
  %613 = alloca double, align 8
  %614 = alloca double, align 8
  %615 = alloca double, align 8
  %616 = alloca double, align 8
  %617 = alloca double, align 8
  %618 = alloca double, align 8
  %619 = alloca double, align 8
  %620 = alloca double, align 8
  %621 = alloca i16, align 2
  %622 = alloca double, align 8
  %623 = alloca double, align 8
  %624 = alloca double, align 8
  %625 = alloca double, align 8
  %626 = alloca double, align 8
  %627 = alloca double, align 8
  %628 = alloca double, align 8
  %629 = alloca double, align 8
  %630 = alloca double, align 8
  %631 = alloca double, align 8
  %632 = alloca i8, align 1
  %633 = alloca double, align 8
  %634 = alloca double, align 8
  %635 = alloca double, align 8
  %636 = alloca double, align 8
  %637 = alloca double, align 8
  %638 = alloca double, align 8
  %639 = alloca double, align 8
  %640 = alloca double, align 8
  %641 = alloca double, align 8
  %642 = alloca double, align 8
  %643 = alloca double, align 8
  %644 = alloca double, align 8
  %645 = alloca double, align 8
  %646 = alloca double, align 8
  %647 = alloca double, align 8
  %648 = alloca double, align 8
  %649 = alloca double, align 8
  %650 = alloca double, align 8
  %651 = alloca double, align 8
  %652 = alloca double, align 8
  %653 = alloca float, align 4
  %654 = alloca double, align 8
  %655 = alloca double, align 8
  %656 = alloca double, align 8
  %657 = alloca double, align 8
  %658 = alloca double, align 8
  %659 = alloca double, align 8
  %660 = alloca double, align 8
  %661 = alloca double, align 8
  %662 = alloca double, align 8
  %663 = alloca i64, align 8
  %664 = alloca double, align 8
  %665 = alloca double, align 8
  %666 = alloca double, align 8
  %667 = alloca double, align 8
  %668 = alloca double, align 8
  %669 = alloca double, align 8
  %670 = alloca double, align 8
  %671 = alloca double, align 8
  %672 = alloca double, align 8
  %673 = alloca double, align 8
  %674 = alloca i32, align 4
  %675 = alloca double, align 8
  %676 = alloca double, align 8
  %677 = alloca double, align 8
  %678 = alloca double, align 8
  %679 = alloca double, align 8
  %680 = alloca double, align 8
  %681 = alloca double, align 8
  %682 = alloca double, align 8
  %683 = alloca double, align 8
  %684 = alloca double, align 8
  %685 = alloca i16, align 2
  %686 = alloca double, align 8
  %687 = alloca double, align 8
  %688 = alloca double, align 8
  %689 = alloca double, align 8
  %690 = alloca double, align 8
  %691 = alloca double, align 8
  %692 = alloca double, align 8
  %693 = alloca double, align 8
  %694 = alloca double, align 8
  %695 = alloca double, align 8
  %696 = alloca i8, align 1
  %697 = alloca double, align 8
  %698 = alloca double, align 8
  %699 = alloca double, align 8
  %700 = alloca double, align 8
  %701 = alloca double, align 8
  %702 = alloca double, align 8
  %703 = alloca double, align 8
  %704 = alloca double, align 8
  %705 = alloca double, align 8
  %706 = alloca double, align 8
  %707 = alloca i64, align 8
  %708 = alloca double, align 8
  %709 = alloca double, align 8
  %710 = alloca double, align 8
  %711 = alloca double, align 8
  %712 = alloca double, align 8
  %713 = alloca double, align 8
  %714 = alloca double, align 8
  %715 = alloca double, align 8
  %716 = alloca double, align 8
  %717 = alloca double, align 8
  %718 = alloca i32, align 4
  %719 = alloca double, align 8
  %720 = alloca double, align 8
  %721 = alloca double, align 8
  %722 = alloca double, align 8
  %723 = alloca double, align 8
  %724 = alloca double, align 8
  %725 = alloca double, align 8
  %726 = alloca double, align 8
  %727 = alloca double, align 8
  %728 = alloca double, align 8
  %729 = alloca i16, align 2
  %730 = alloca double, align 8
  %731 = alloca double, align 8
  %732 = alloca double, align 8
  %733 = alloca double, align 8
  %734 = alloca double, align 8
  %735 = alloca double, align 8
  %736 = alloca double, align 8
  %737 = alloca double, align 8
  %738 = alloca double, align 8
  %739 = alloca double, align 8
  %740 = alloca i8, align 1
  %741 = alloca double, align 8
  %742 = alloca double, align 8
  %743 = alloca double, align 8
  %744 = alloca double, align 8
  %745 = alloca double, align 8
  %746 = alloca double, align 8
  %747 = alloca double, align 8
  %748 = alloca double, align 8
  %749 = alloca double, align 8
  %750 = alloca double, align 8
  %751 = alloca double, align 8
  %752 = alloca double, align 8
  %753 = alloca double, align 8
  %754 = alloca double, align 8
  %755 = alloca double, align 8
  %756 = alloca double, align 8
  %757 = alloca double, align 8
  %758 = alloca double, align 8
  %759 = alloca double, align 8
  %760 = alloca double, align 8
  %761 = alloca float, align 4
  %762 = alloca double, align 8
  %763 = alloca double, align 8
  %764 = alloca double, align 8
  %765 = alloca double, align 8
  %766 = alloca double, align 8
  %767 = alloca double, align 8
  %768 = alloca double, align 8
  %769 = alloca double, align 8
  %770 = alloca double, align 8
  %771 = alloca i64, align 8
  %772 = alloca double, align 8
  %773 = alloca double, align 8
  %774 = alloca double, align 8
  %775 = alloca double, align 8
  %776 = alloca double, align 8
  %777 = alloca double, align 8
  %778 = alloca double, align 8
  %779 = alloca double, align 8
  %780 = alloca double, align 8
  %781 = alloca double, align 8
  %782 = alloca i32, align 4
  %783 = alloca double, align 8
  %784 = alloca double, align 8
  %785 = alloca double, align 8
  %786 = alloca double, align 8
  %787 = alloca double, align 8
  %788 = alloca double, align 8
  %789 = alloca double, align 8
  %790 = alloca double, align 8
  %791 = alloca double, align 8
  %792 = alloca double, align 8
  %793 = alloca i16, align 2
  %794 = alloca double, align 8
  %795 = alloca double, align 8
  %796 = alloca double, align 8
  %797 = alloca double, align 8
  %798 = alloca double, align 8
  %799 = alloca double, align 8
  %800 = alloca double, align 8
  %801 = alloca double, align 8
  %802 = alloca double, align 8
  %803 = alloca double, align 8
  %804 = alloca i8, align 1
  %805 = alloca double, align 8
  %806 = alloca double, align 8
  %807 = alloca double, align 8
  %808 = alloca double, align 8
  %809 = alloca double, align 8
  %810 = alloca double, align 8
  %811 = alloca double, align 8
  %812 = alloca double, align 8
  %813 = alloca double, align 8
  %814 = alloca double, align 8
  %815 = alloca i64, align 8
  %816 = alloca double, align 8
  %817 = alloca double, align 8
  %818 = alloca double, align 8
  %819 = alloca double, align 8
  %820 = alloca double, align 8
  %821 = alloca double, align 8
  %822 = alloca double, align 8
  %823 = alloca double, align 8
  %824 = alloca double, align 8
  %825 = alloca double, align 8
  %826 = alloca i32, align 4
  %827 = alloca double, align 8
  %828 = alloca double, align 8
  %829 = alloca double, align 8
  %830 = alloca double, align 8
  %831 = alloca double, align 8
  %832 = alloca double, align 8
  %833 = alloca double, align 8
  %834 = alloca double, align 8
  %835 = alloca double, align 8
  %836 = alloca double, align 8
  %837 = alloca i16, align 2
  %838 = alloca double, align 8
  %839 = alloca double, align 8
  %840 = alloca double, align 8
  %841 = alloca double, align 8
  %842 = alloca double, align 8
  %843 = alloca double, align 8
  %844 = alloca double, align 8
  %845 = alloca double, align 8
  %846 = alloca double, align 8
  %847 = alloca double, align 8
  %848 = alloca i8, align 1
  %849 = alloca double, align 8
  %850 = alloca double, align 8
  %851 = alloca double, align 8
  %852 = alloca double, align 8
  %853 = alloca double, align 8
  %854 = alloca double, align 8
  %855 = alloca double, align 8
  %856 = alloca double, align 8
  %857 = alloca double, align 8
  %858 = alloca double, align 8
  %859 = alloca double, align 8
  %860 = alloca double, align 8
  %861 = alloca double, align 8
  %862 = alloca double, align 8
  %863 = alloca double, align 8
  %864 = alloca double, align 8
  %865 = alloca double, align 8
  %866 = alloca double, align 8
  %867 = alloca double, align 8
  %868 = alloca double, align 8
  %869 = alloca float, align 4
  %870 = alloca double, align 8
  %871 = alloca double, align 8
  %872 = alloca double, align 8
  %873 = alloca double, align 8
  %874 = alloca double, align 8
  %875 = alloca double, align 8
  %876 = alloca double, align 8
  %877 = alloca double, align 8
  %878 = alloca double, align 8
  %879 = alloca i64, align 8
  %880 = alloca double, align 8
  %881 = alloca double, align 8
  %882 = alloca double, align 8
  %883 = alloca double, align 8
  %884 = alloca double, align 8
  %885 = alloca double, align 8
  %886 = alloca double, align 8
  %887 = alloca double, align 8
  %888 = alloca double, align 8
  %889 = alloca double, align 8
  %890 = alloca i32, align 4
  %891 = alloca double, align 8
  %892 = alloca double, align 8
  %893 = alloca double, align 8
  %894 = alloca double, align 8
  %895 = alloca double, align 8
  %896 = alloca double, align 8
  %897 = alloca double, align 8
  %898 = alloca double, align 8
  %899 = alloca double, align 8
  %900 = alloca double, align 8
  %901 = alloca i16, align 2
  %902 = alloca double, align 8
  %903 = alloca double, align 8
  %904 = alloca double, align 8
  %905 = alloca double, align 8
  %906 = alloca double, align 8
  %907 = alloca double, align 8
  %908 = alloca double, align 8
  %909 = alloca double, align 8
  %910 = alloca double, align 8
  %911 = alloca double, align 8
  %912 = alloca i8, align 1
  %913 = alloca double, align 8
  %914 = alloca double, align 8
  %915 = alloca double, align 8
  %916 = alloca double, align 8
  %917 = alloca double, align 8
  %918 = alloca double, align 8
  %919 = alloca double, align 8
  %920 = alloca double, align 8
  %921 = alloca double, align 8
  %922 = alloca double, align 8
  %923 = alloca i64, align 8
  %924 = alloca double, align 8
  %925 = alloca double, align 8
  %926 = alloca double, align 8
  %927 = alloca double, align 8
  %928 = alloca double, align 8
  %929 = alloca double, align 8
  %930 = alloca double, align 8
  %931 = alloca double, align 8
  %932 = alloca double, align 8
  %933 = alloca double, align 8
  %934 = alloca i32, align 4
  %935 = alloca double, align 8
  %936 = alloca double, align 8
  %937 = alloca double, align 8
  %938 = alloca double, align 8
  %939 = alloca double, align 8
  %940 = alloca double, align 8
  %941 = alloca double, align 8
  %942 = alloca double, align 8
  %943 = alloca double, align 8
  %944 = alloca double, align 8
  %945 = alloca i16, align 2
  %946 = alloca double, align 8
  %947 = alloca double, align 8
  %948 = alloca double, align 8
  %949 = alloca double, align 8
  %950 = alloca double, align 8
  %951 = alloca double, align 8
  %952 = alloca double, align 8
  %953 = alloca double, align 8
  %954 = alloca double, align 8
  %955 = alloca double, align 8
  %956 = alloca i8, align 1
  %957 = alloca double, align 8
  %958 = alloca double, align 8
  %959 = alloca double, align 8
  %960 = alloca double, align 8
  %961 = alloca double, align 8
  %962 = alloca double, align 8
  %963 = alloca double, align 8
  %964 = alloca double, align 8
  %965 = alloca double, align 8
  %966 = alloca double, align 8
  %967 = alloca double, align 8
  %968 = alloca double, align 8
  %969 = alloca double, align 8
  %970 = alloca double, align 8
  %971 = alloca double, align 8
  %972 = alloca double, align 8
  %973 = alloca double, align 8
  %974 = alloca double, align 8
  %975 = alloca double, align 8
  %976 = alloca double, align 8
  %977 = alloca float, align 4
  %978 = alloca double, align 8
  %979 = alloca double, align 8
  %980 = alloca double, align 8
  %981 = alloca double, align 8
  %982 = alloca double, align 8
  %983 = alloca double, align 8
  %984 = alloca double, align 8
  %985 = alloca double, align 8
  %986 = alloca double, align 8
  %987 = alloca i64, align 8
  %988 = alloca double, align 8
  %989 = alloca double, align 8
  %990 = alloca double, align 8
  %991 = alloca double, align 8
  %992 = alloca double, align 8
  %993 = alloca double, align 8
  %994 = alloca double, align 8
  %995 = alloca double, align 8
  %996 = alloca double, align 8
  %997 = alloca double, align 8
  %998 = alloca i32, align 4
  %999 = alloca double, align 8
  %1000 = alloca double, align 8
  %1001 = alloca double, align 8
  %1002 = alloca double, align 8
  %1003 = alloca double, align 8
  %1004 = alloca double, align 8
  %1005 = alloca double, align 8
  %1006 = alloca double, align 8
  %1007 = alloca double, align 8
  %1008 = alloca double, align 8
  %1009 = alloca i16, align 2
  %1010 = alloca double, align 8
  %1011 = alloca double, align 8
  %1012 = alloca double, align 8
  %1013 = alloca double, align 8
  %1014 = alloca double, align 8
  %1015 = alloca double, align 8
  %1016 = alloca double, align 8
  %1017 = alloca double, align 8
  %1018 = alloca double, align 8
  %1019 = alloca double, align 8
  %1020 = alloca i8, align 1
  %1021 = alloca double, align 8
  %1022 = alloca double, align 8
  %1023 = alloca double, align 8
  %1024 = alloca double, align 8
  %1025 = alloca double, align 8
  %1026 = alloca double, align 8
  %1027 = alloca double, align 8
  %1028 = alloca double, align 8
  %1029 = alloca double, align 8
  %1030 = alloca double, align 8
  %1031 = alloca i64, align 8
  %1032 = alloca double, align 8
  %1033 = alloca double, align 8
  %1034 = alloca double, align 8
  %1035 = alloca double, align 8
  %1036 = alloca double, align 8
  %1037 = alloca double, align 8
  %1038 = alloca double, align 8
  %1039 = alloca double, align 8
  %1040 = alloca double, align 8
  %1041 = alloca double, align 8
  %1042 = alloca i32, align 4
  %1043 = alloca double, align 8
  %1044 = alloca double, align 8
  %1045 = alloca double, align 8
  %1046 = alloca double, align 8
  %1047 = alloca double, align 8
  %1048 = alloca double, align 8
  %1049 = alloca double, align 8
  %1050 = alloca double, align 8
  %1051 = alloca double, align 8
  %1052 = alloca double, align 8
  %1053 = alloca i16, align 2
  %1054 = alloca double, align 8
  %1055 = alloca double, align 8
  %1056 = alloca double, align 8
  %1057 = alloca double, align 8
  %1058 = alloca double, align 8
  %1059 = alloca double, align 8
  %1060 = alloca double, align 8
  %1061 = alloca double, align 8
  %1062 = alloca double, align 8
  %1063 = alloca double, align 8
  %1064 = alloca i8, align 1
  %1065 = alloca double, align 8
  %1066 = alloca double, align 8
  %1067 = alloca double, align 8
  %1068 = alloca double, align 8
  %1069 = alloca double, align 8
  %1070 = alloca double, align 8
  %1071 = alloca double, align 8
  %1072 = alloca double, align 8
  %1073 = alloca double, align 8
  %1074 = alloca double, align 8
  %1075 = alloca double, align 8
  %1076 = alloca double, align 8
  %1077 = alloca double, align 8
  %1078 = alloca double, align 8
  %1079 = alloca double, align 8
  %1080 = alloca double, align 8
  %1081 = alloca double, align 8
  %1082 = alloca double, align 8
  %1083 = alloca double, align 8
  %1084 = alloca double, align 8
  %1085 = alloca float, align 4
  %1086 = alloca double, align 8
  %1087 = alloca double, align 8
  %1088 = alloca double, align 8
  %1089 = alloca double, align 8
  %1090 = alloca double, align 8
  %1091 = alloca double, align 8
  %1092 = alloca double, align 8
  %1093 = alloca double, align 8
  %1094 = alloca double, align 8
  %1095 = alloca i64, align 8
  %1096 = alloca double, align 8
  %1097 = alloca double, align 8
  %1098 = alloca double, align 8
  %1099 = alloca double, align 8
  %1100 = alloca double, align 8
  %1101 = alloca double, align 8
  %1102 = alloca double, align 8
  %1103 = alloca double, align 8
  %1104 = alloca double, align 8
  %1105 = alloca double, align 8
  %1106 = alloca i32, align 4
  %1107 = alloca double, align 8
  %1108 = alloca double, align 8
  %1109 = alloca double, align 8
  %1110 = alloca double, align 8
  %1111 = alloca double, align 8
  %1112 = alloca double, align 8
  %1113 = alloca double, align 8
  %1114 = alloca double, align 8
  %1115 = alloca double, align 8
  %1116 = alloca double, align 8
  %1117 = alloca i16, align 2
  %1118 = alloca double, align 8
  %1119 = alloca double, align 8
  %1120 = alloca double, align 8
  %1121 = alloca double, align 8
  %1122 = alloca double, align 8
  %1123 = alloca double, align 8
  %1124 = alloca double, align 8
  %1125 = alloca double, align 8
  %1126 = alloca double, align 8
  %1127 = alloca double, align 8
  %1128 = alloca i8, align 1
  %1129 = alloca double, align 8
  %1130 = alloca double, align 8
  %1131 = alloca double, align 8
  %1132 = alloca double, align 8
  %1133 = alloca double, align 8
  %1134 = alloca double, align 8
  %1135 = alloca double, align 8
  %1136 = alloca double, align 8
  %1137 = alloca double, align 8
  %1138 = alloca double, align 8
  %1139 = alloca i64, align 8
  %1140 = alloca double, align 8
  %1141 = alloca double, align 8
  %1142 = alloca double, align 8
  %1143 = alloca double, align 8
  %1144 = alloca double, align 8
  %1145 = alloca double, align 8
  %1146 = alloca double, align 8
  %1147 = alloca double, align 8
  %1148 = alloca double, align 8
  %1149 = alloca double, align 8
  %1150 = alloca i32, align 4
  %1151 = alloca double, align 8
  %1152 = alloca double, align 8
  %1153 = alloca double, align 8
  %1154 = alloca double, align 8
  %1155 = alloca double, align 8
  %1156 = alloca double, align 8
  %1157 = alloca double, align 8
  %1158 = alloca double, align 8
  %1159 = alloca double, align 8
  %1160 = alloca double, align 8
  %1161 = alloca i16, align 2
  %1162 = alloca double, align 8
  %1163 = alloca double, align 8
  %1164 = alloca double, align 8
  %1165 = alloca double, align 8
  %1166 = alloca double, align 8
  %1167 = alloca double, align 8
  %1168 = alloca double, align 8
  %1169 = alloca double, align 8
  %1170 = alloca double, align 8
  %1171 = alloca double, align 8
  %1172 = alloca i8, align 1
  %1173 = alloca double, align 8
  %1174 = alloca double, align 8
  %1175 = alloca double, align 8
  %1176 = alloca double, align 8
  %1177 = alloca double, align 8
  %1178 = alloca double, align 8
  %1179 = alloca double, align 8
  %1180 = alloca double, align 8
  %1181 = alloca double, align 8
  %1182 = alloca double, align 8
  %1183 = alloca double, align 8
  %1184 = alloca double, align 8
  %1185 = alloca double, align 8
  %1186 = alloca double, align 8
  %1187 = alloca double, align 8
  %1188 = alloca double, align 8
  %1189 = alloca double, align 8
  %1190 = alloca double, align 8
  %1191 = alloca double, align 8
  %1192 = alloca double, align 8
  %1193 = alloca float, align 4
  %1194 = alloca double, align 8
  %1195 = alloca double, align 8
  %1196 = alloca double, align 8
  %1197 = alloca double, align 8
  %1198 = alloca double, align 8
  %1199 = alloca double, align 8
  %1200 = alloca double, align 8
  %1201 = alloca double, align 8
  %1202 = alloca double, align 8
  %1203 = alloca i64, align 8
  %1204 = alloca double, align 8
  %1205 = alloca double, align 8
  %1206 = alloca double, align 8
  %1207 = alloca double, align 8
  %1208 = alloca double, align 8
  %1209 = alloca double, align 8
  %1210 = alloca double, align 8
  %1211 = alloca double, align 8
  %1212 = alloca double, align 8
  %1213 = alloca double, align 8
  %1214 = alloca i32, align 4
  %1215 = alloca double, align 8
  %1216 = alloca double, align 8
  %1217 = alloca double, align 8
  %1218 = alloca double, align 8
  %1219 = alloca double, align 8
  %1220 = alloca double, align 8
  %1221 = alloca double, align 8
  %1222 = alloca double, align 8
  %1223 = alloca double, align 8
  %1224 = alloca double, align 8
  %1225 = alloca i16, align 2
  %1226 = alloca double, align 8
  %1227 = alloca double, align 8
  %1228 = alloca double, align 8
  %1229 = alloca double, align 8
  %1230 = alloca double, align 8
  %1231 = alloca double, align 8
  %1232 = alloca double, align 8
  %1233 = alloca double, align 8
  %1234 = alloca double, align 8
  %1235 = alloca double, align 8
  %1236 = alloca i8, align 1
  %1237 = alloca double, align 8
  %1238 = alloca double, align 8
  %1239 = alloca double, align 8
  %1240 = alloca double, align 8
  %1241 = alloca double, align 8
  %1242 = alloca double, align 8
  %1243 = alloca double, align 8
  %1244 = alloca double, align 8
  %1245 = alloca double, align 8
  %1246 = alloca double, align 8
  %1247 = alloca i64, align 8
  %1248 = alloca double, align 8
  %1249 = alloca double, align 8
  %1250 = alloca double, align 8
  %1251 = alloca double, align 8
  %1252 = alloca double, align 8
  %1253 = alloca double, align 8
  %1254 = alloca double, align 8
  %1255 = alloca double, align 8
  %1256 = alloca double, align 8
  %1257 = alloca double, align 8
  %1258 = alloca i32, align 4
  %1259 = alloca double, align 8
  %1260 = alloca double, align 8
  %1261 = alloca double, align 8
  %1262 = alloca double, align 8
  %1263 = alloca double, align 8
  %1264 = alloca double, align 8
  %1265 = alloca double, align 8
  %1266 = alloca double, align 8
  %1267 = alloca double, align 8
  %1268 = alloca double, align 8
  %1269 = alloca i16, align 2
  %1270 = alloca double, align 8
  %1271 = alloca double, align 8
  %1272 = alloca double, align 8
  %1273 = alloca double, align 8
  %1274 = alloca double, align 8
  %1275 = alloca double, align 8
  %1276 = alloca double, align 8
  %1277 = alloca double, align 8
  %1278 = alloca double, align 8
  %1279 = alloca double, align 8
  %1280 = alloca i8, align 1
  %1281 = alloca double, align 8
  %1282 = alloca double, align 8
  %1283 = alloca double, align 8
  %1284 = alloca double, align 8
  %1285 = alloca double, align 8
  %1286 = alloca double, align 8
  %1287 = alloca double, align 8
  %1288 = alloca double, align 8
  %1289 = alloca double, align 8
  %1290 = alloca double, align 8
  %1291 = alloca double, align 8
  %1292 = alloca double, align 8
  %1293 = alloca double, align 8
  %1294 = alloca double, align 8
  %1295 = alloca double, align 8
  %1296 = alloca double, align 8
  %1297 = alloca double, align 8
  %1298 = alloca double, align 8
  %1299 = alloca double, align 8
  %1300 = alloca double, align 8
  %1301 = alloca float, align 4
  %1302 = alloca double, align 8
  %1303 = alloca double, align 8
  %1304 = alloca double, align 8
  %1305 = alloca double, align 8
  %1306 = alloca double, align 8
  %1307 = alloca double, align 8
  %1308 = alloca double, align 8
  %1309 = alloca double, align 8
  %1310 = alloca double, align 8
  %1311 = alloca i64, align 8
  %1312 = alloca double, align 8
  %1313 = alloca double, align 8
  %1314 = alloca double, align 8
  %1315 = alloca double, align 8
  %1316 = alloca double, align 8
  %1317 = alloca double, align 8
  %1318 = alloca double, align 8
  %1319 = alloca double, align 8
  %1320 = alloca double, align 8
  %1321 = alloca double, align 8
  %1322 = alloca i32, align 4
  %1323 = alloca double, align 8
  %1324 = alloca double, align 8
  %1325 = alloca double, align 8
  %1326 = alloca double, align 8
  %1327 = alloca double, align 8
  %1328 = alloca double, align 8
  %1329 = alloca double, align 8
  %1330 = alloca double, align 8
  %1331 = alloca double, align 8
  %1332 = alloca double, align 8
  %1333 = alloca i16, align 2
  %1334 = alloca double, align 8
  %1335 = alloca double, align 8
  %1336 = alloca double, align 8
  %1337 = alloca double, align 8
  %1338 = alloca double, align 8
  %1339 = alloca double, align 8
  %1340 = alloca double, align 8
  %1341 = alloca double, align 8
  %1342 = alloca double, align 8
  %1343 = alloca double, align 8
  %1344 = alloca i8, align 1
  %1345 = alloca double, align 8
  %1346 = alloca double, align 8
  %1347 = alloca double, align 8
  %1348 = alloca double, align 8
  %1349 = alloca double, align 8
  %1350 = alloca double, align 8
  %1351 = alloca double, align 8
  %1352 = alloca double, align 8
  %1353 = alloca double, align 8
  %1354 = alloca double, align 8
  %1355 = alloca i64, align 8
  %1356 = alloca double, align 8
  %1357 = alloca double, align 8
  %1358 = alloca double, align 8
  %1359 = alloca double, align 8
  %1360 = alloca double, align 8
  %1361 = alloca double, align 8
  %1362 = alloca double, align 8
  %1363 = alloca double, align 8
  %1364 = alloca double, align 8
  %1365 = alloca double, align 8
  %1366 = alloca i32, align 4
  %1367 = alloca double, align 8
  %1368 = alloca double, align 8
  %1369 = alloca double, align 8
  %1370 = alloca double, align 8
  %1371 = alloca double, align 8
  %1372 = alloca double, align 8
  %1373 = alloca double, align 8
  %1374 = alloca double, align 8
  %1375 = alloca double, align 8
  %1376 = alloca double, align 8
  %1377 = alloca i16, align 2
  %1378 = alloca double, align 8
  %1379 = alloca double, align 8
  %1380 = alloca double, align 8
  %1381 = alloca double, align 8
  %1382 = alloca double, align 8
  %1383 = alloca double, align 8
  %1384 = alloca double, align 8
  %1385 = alloca double, align 8
  %1386 = alloca double, align 8
  %1387 = alloca double, align 8
  %1388 = alloca i8, align 1
  %1389 = alloca double, align 8
  %1390 = alloca double, align 8
  %1391 = alloca double, align 8
  %1392 = alloca double, align 8
  %1393 = alloca double, align 8
  %1394 = alloca double, align 8
  %1395 = alloca double, align 8
  %1396 = alloca double, align 8
  %1397 = alloca double, align 8
  %1398 = alloca double, align 8
  %1399 = alloca double, align 8
  %1400 = alloca double, align 8
  %1401 = alloca double, align 8
  %1402 = alloca double, align 8
  %1403 = alloca double, align 8
  %1404 = alloca double, align 8
  %1405 = alloca double, align 8
  %1406 = alloca double, align 8
  %1407 = alloca double, align 8
  %1408 = alloca double, align 8
  %1409 = alloca float, align 4
  %1410 = alloca double, align 8
  %1411 = alloca double, align 8
  %1412 = alloca double, align 8
  %1413 = alloca double, align 8
  %1414 = alloca double, align 8
  %1415 = alloca double, align 8
  %1416 = alloca double, align 8
  %1417 = alloca double, align 8
  store ptr %0, ptr %7, align 8, !tbaa !5
  store i32 %1, ptr %8, align 4, !tbaa !9
  store i32 %2, ptr %9, align 4, !tbaa !9
  store ptr %3, ptr %10, align 8, !tbaa !5
  store ptr %4, ptr %11, align 8, !tbaa !5
  store ptr %5, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #3
  store i32 0, ptr %13, align 4, !tbaa !9
  %1418 = load i32, ptr %8, align 4, !tbaa !9
  switch i32 %1418, label %48656 [
    i32 0, label %1419
    i32 1, label %5034
    i32 3, label %8671
    i32 2, label %12306
    i32 4, label %15941
    i32 6, label %19576
    i32 8, label %23211
    i32 10, label %26846
    i32 12, label %30481
    i32 15, label %34116
    i32 16, label %37751
    i32 17, label %41386
    i32 18, label %45021
  ]

1419:                                             ; preds = %6
  br label %1420

1420:                                             ; preds = %1419
  %1421 = load ptr, ptr %7, align 8, !tbaa !5
  %1422 = icmp ne ptr null, %1421
  br i1 %1422, label %1423, label %1427

1423:                                             ; preds = %1420
  %1424 = load ptr, ptr %10, align 8, !tbaa !5
  %1425 = icmp ne ptr null, %1424
  br i1 %1425, label %1426, label %1427

1426:                                             ; preds = %1423
  br label %1428

1427:                                             ; preds = %1423, %1420
  call void @__assert_fail(ptr noundef @.str.41, ptr noundef @.str.24, i32 noundef 467, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

1428:                                             ; preds = %1426
  %1429 = load i32, ptr %9, align 4, !tbaa !9
  switch i32 %1429, label %5030 [
    i32 6, label %1430
    i32 8, label %1775
    i32 10, label %2120
    i32 12, label %2478
    i32 15, label %2836
    i32 16, label %3181
    i32 17, label %3526
    i32 18, label %3884
    i32 0, label %4242
    i32 1, label %4624
    i32 3, label %5027
    i32 2, label %5028
    i32 4, label %5029
  ]

1430:                                             ; preds = %1428
  br label %1431

1431:                                             ; preds = %1430
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #3
  store double 0.000000e+00, ptr %14, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #3
  %1432 = load ptr, ptr %10, align 8, !tbaa !5
  %1433 = load i64, ptr %1432, align 8, !tbaa !13
  store i64 %1433, ptr %15, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #3
  store double 0.000000e+00, ptr %16, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #3
  store double 0.000000e+00, ptr %17, align 8, !tbaa !11
  %1434 = load ptr, ptr %11, align 8, !tbaa !5
  %1435 = icmp ne ptr null, %1434
  br i1 %1435, label %1436, label %1458

1436:                                             ; preds = %1431
  %1437 = load ptr, ptr %12, align 8, !tbaa !5
  %1438 = icmp ne ptr null, %1437
  br i1 %1438, label %1439, label %1450

1439:                                             ; preds = %1436
  %1440 = load ptr, ptr %11, align 8, !tbaa !5
  %1441 = load i64, ptr %1440, align 8, !tbaa !13
  %1442 = load i64, ptr %15, align 8, !tbaa !13
  %1443 = icmp sle i64 %1441, %1442
  br i1 %1443, label %1444, label %1450

1444:                                             ; preds = %1439
  %1445 = load i64, ptr %15, align 8, !tbaa !13
  %1446 = load ptr, ptr %12, align 8, !tbaa !5
  %1447 = load i64, ptr %1446, align 8, !tbaa !13
  %1448 = icmp sle i64 %1445, %1447
  br i1 %1448, label %1449, label %1450

1449:                                             ; preds = %1444
  br label %1451

1450:                                             ; preds = %1444, %1439, %1436
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.24, i32 noundef 467, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

1451:                                             ; preds = %1449
  %1452 = load ptr, ptr %11, align 8, !tbaa !5
  %1453 = load i64, ptr %1452, align 8, !tbaa !13
  %1454 = sitofp i64 %1453 to double
  store double %1454, ptr %16, align 8, !tbaa !11
  %1455 = load ptr, ptr %12, align 8, !tbaa !5
  %1456 = load i64, ptr %1455, align 8, !tbaa !13
  %1457 = sitofp i64 %1456 to double
  store double %1457, ptr %17, align 8, !tbaa !11
  br label %1458

1458:                                             ; preds = %1451, %1431
  %1459 = load i32, ptr %8, align 4, !tbaa !9
  %1460 = icmp ule i32 6, %1459
  br i1 %1460, label %1461, label %1696

1461:                                             ; preds = %1458
  %1462 = load double, ptr %16, align 8, !tbaa !11
  %1463 = load double, ptr %17, align 8, !tbaa !11
  %1464 = fcmp olt double %1462, %1463
  br i1 %1464, label %1465, label %1696

1465:                                             ; preds = %1461
  %1466 = load i32, ptr %8, align 4, !tbaa !9
  %1467 = icmp ule i32 15, %1466
  br i1 %1467, label %1468, label %1520

1468:                                             ; preds = %1465
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #3
  %1469 = load double, ptr %16, align 8, !tbaa !11
  %1470 = fcmp olt double 0.000000e+00, %1469
  br i1 %1470, label %1471, label %1473

1471:                                             ; preds = %1468
  %1472 = load double, ptr %16, align 8, !tbaa !11
  br label %1474

1473:                                             ; preds = %1468
  br label %1474

1474:                                             ; preds = %1473, %1471
  %1475 = phi double [ %1472, %1471 ], [ 0.000000e+00, %1473 ]
  store double %1475, ptr %18, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #3
  %1476 = load double, ptr %17, align 8, !tbaa !11
  %1477 = fcmp olt double 0.000000e+00, %1476
  br i1 %1477, label %1478, label %1480

1478:                                             ; preds = %1474
  %1479 = load double, ptr %17, align 8, !tbaa !11
  br label %1481

1480:                                             ; preds = %1474
  br label %1481

1481:                                             ; preds = %1480, %1478
  %1482 = phi double [ %1479, %1478 ], [ 0.000000e+00, %1480 ]
  store double %1482, ptr %19, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #3
  %1483 = load double, ptr %18, align 8, !tbaa !11
  %1484 = load double, ptr %19, align 8, !tbaa !11
  %1485 = fcmp olt double %1483, %1484
  br i1 %1485, label %1486, label %1494

1486:                                             ; preds = %1481
  %1487 = load double, ptr %17, align 8, !tbaa !11
  %1488 = load double, ptr %16, align 8, !tbaa !11
  %1489 = fsub double %1487, %1488
  %1490 = load double, ptr %19, align 8, !tbaa !11
  %1491 = load double, ptr %18, align 8, !tbaa !11
  %1492 = fsub double %1490, %1491
  %1493 = fdiv double %1489, %1492
  br label %1495

1494:                                             ; preds = %1481
  br label %1495

1495:                                             ; preds = %1494, %1486
  %1496 = phi double [ %1493, %1486 ], [ 1.000000e+00, %1494 ]
  store double %1496, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #3
  %1497 = load double, ptr %20, align 8, !tbaa !11
  %1498 = load i64, ptr %15, align 8, !tbaa !13
  %1499 = icmp slt i64 0, %1498
  br i1 %1499, label %1500, label %1502

1500:                                             ; preds = %1495
  %1501 = load i64, ptr %15, align 8, !tbaa !13
  br label %1503

1502:                                             ; preds = %1495
  br label %1503

1503:                                             ; preds = %1502, %1500
  %1504 = phi i64 [ %1501, %1500 ], [ 0, %1502 ]
  %1505 = sitofp i64 %1504 to double
  %1506 = fmul double %1497, %1505
  store double %1506, ptr %21, align 8, !tbaa !11
  %1507 = load double, ptr %21, align 8, !tbaa !11
  %1508 = fcmp ole double 0.000000e+00, %1507
  br i1 %1508, label %1509, label %1512

1509:                                             ; preds = %1503
  %1510 = load double, ptr %21, align 8, !tbaa !11
  %1511 = fadd double %1510, 0.000000e+00
  br label %1515

1512:                                             ; preds = %1503
  %1513 = load double, ptr %21, align 8, !tbaa !11
  %1514 = fsub double %1513, 0.000000e+00
  br label %1515

1515:                                             ; preds = %1512, %1509
  %1516 = phi double [ %1511, %1509 ], [ %1514, %1512 ]
  %1517 = fptosi double %1516 to i64
  store i64 %1517, ptr %15, align 8, !tbaa !13
  %1518 = load double, ptr %18, align 8, !tbaa !11
  store double %1518, ptr %16, align 8, !tbaa !11
  %1519 = load double, ptr %19, align 8, !tbaa !11
  store double %1519, ptr %17, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #3
  br label %1576

1520:                                             ; preds = %1465
  %1521 = load i32, ptr %8, align 4, !tbaa !9
  %1522 = icmp ugt i32 6, %1521
  br i1 %1522, label %1551, label %1523

1523:                                             ; preds = %1520
  %1524 = load i32, ptr %8, align 4, !tbaa !9
  %1525 = icmp ugt i32 15, %1524
  br i1 %1525, label %1526, label %1537

1526:                                             ; preds = %1523
  %1527 = load i32, ptr %9, align 4, !tbaa !9
  %1528 = icmp ugt i32 15, %1527
  br i1 %1528, label %1529, label %1534

1529:                                             ; preds = %1526
  %1530 = load i32, ptr %9, align 4, !tbaa !9
  %1531 = load i32, ptr %8, align 4, !tbaa !9
  %1532 = icmp ugt i32 %1530, %1531
  %1533 = zext i1 %1532 to i32
  br label %1535

1534:                                             ; preds = %1526
  br label %1535

1535:                                             ; preds = %1534, %1529
  %1536 = phi i32 [ %1533, %1529 ], [ 0, %1534 ]
  br label %1548

1537:                                             ; preds = %1523
  %1538 = load i32, ptr %9, align 4, !tbaa !9
  %1539 = icmp ugt i32 15, %1538
  br i1 %1539, label %1540, label %1541

1540:                                             ; preds = %1537
  br label %1546

1541:                                             ; preds = %1537
  %1542 = load i32, ptr %9, align 4, !tbaa !9
  %1543 = load i32, ptr %8, align 4, !tbaa !9
  %1544 = icmp ugt i32 %1542, %1543
  %1545 = zext i1 %1544 to i32
  br label %1546

1546:                                             ; preds = %1541, %1540
  %1547 = phi i32 [ 0, %1540 ], [ %1545, %1541 ]
  br label %1548

1548:                                             ; preds = %1546, %1535
  %1549 = phi i32 [ %1536, %1535 ], [ %1547, %1546 ]
  %1550 = icmp ne i32 %1549, 0
  br label %1551

1551:                                             ; preds = %1548, %1520
  %1552 = phi i1 [ true, %1520 ], [ %1550, %1548 ]
  %1553 = zext i1 %1552 to i32
  %1554 = icmp eq i32 0, %1553
  br i1 %1554, label %1555, label %1575

1555:                                             ; preds = %1551
  %1556 = load double, ptr %16, align 8, !tbaa !11
  %1557 = fcmp ogt double 0.000000e+00, %1556
  br i1 %1557, label %1558, label %1575

1558:                                             ; preds = %1555
  %1559 = load double, ptr %17, align 8, !tbaa !11
  %1560 = fcmp olt double 0.000000e+00, %1559
  br i1 %1560, label %1561, label %1575

1561:                                             ; preds = %1558
  %1562 = load double, ptr %16, align 8, !tbaa !11
  %1563 = fneg double %1562
  %1564 = load double, ptr %17, align 8, !tbaa !11
  %1565 = fcmp olt double %1563, %1564
  br i1 %1565, label %1566, label %1568

1566:                                             ; preds = %1561
  %1567 = load double, ptr %17, align 8, !tbaa !11
  br label %1571

1568:                                             ; preds = %1561
  %1569 = load double, ptr %16, align 8, !tbaa !11
  %1570 = fneg double %1569
  br label %1571

1571:                                             ; preds = %1568, %1566
  %1572 = phi double [ %1567, %1566 ], [ %1570, %1568 ]
  store double %1572, ptr %17, align 8, !tbaa !11
  %1573 = load double, ptr %17, align 8, !tbaa !11
  %1574 = fneg double %1573
  store double %1574, ptr %16, align 8, !tbaa !11
  br label %1575

1575:                                             ; preds = %1571, %1558, %1555, %1551
  br label %1576

1576:                                             ; preds = %1575, %1515
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #3
  %1577 = load double, ptr %16, align 8, !tbaa !11
  %1578 = fcmp ole double 0.000000e+00, %1577
  %1579 = zext i1 %1578 to i64
  %1580 = select i1 %1578, double 0.000000e+00, double -1.000000e+00
  store double %1580, ptr %22, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #3
  %1581 = load double, ptr %17, align 8, !tbaa !11
  %1582 = fcmp ole double 0.000000e+00, %1581
  %1583 = zext i1 %1582 to i64
  %1584 = select i1 %1582, double 1.000000e+00, double 0.000000e+00
  store double %1584, ptr %23, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #3
  %1585 = load i64, ptr %15, align 8, !tbaa !13
  %1586 = sitofp i64 %1585 to double
  %1587 = load double, ptr %16, align 8, !tbaa !11
  %1588 = fsub double %1586, %1587
  %1589 = load double, ptr %23, align 8, !tbaa !11
  %1590 = load double, ptr %22, align 8, !tbaa !11
  %1591 = fsub double %1589, %1590
  %1592 = fmul double %1588, %1591
  %1593 = load double, ptr %17, align 8, !tbaa !11
  %1594 = load double, ptr %16, align 8, !tbaa !11
  %1595 = fsub double %1593, %1594
  %1596 = fdiv double %1592, %1595
  %1597 = load double, ptr %22, align 8, !tbaa !11
  %1598 = fadd double %1596, %1597
  store double %1598, ptr %24, align 8, !tbaa !11
  %1599 = load double, ptr %22, align 8, !tbaa !11
  %1600 = load double, ptr %24, align 8, !tbaa !11
  %1601 = fcmp ole double 0.000000e+00, %1600
  br i1 %1601, label %1602, label %1605

1602:                                             ; preds = %1576
  %1603 = load double, ptr %24, align 8, !tbaa !11
  %1604 = fadd double %1603, 0.000000e+00
  br label %1608

1605:                                             ; preds = %1576
  %1606 = load double, ptr %24, align 8, !tbaa !11
  %1607 = fsub double %1606, 0.000000e+00
  br label %1608

1608:                                             ; preds = %1605, %1602
  %1609 = phi double [ %1604, %1602 ], [ %1607, %1605 ]
  %1610 = fcmp olt double %1599, %1609
  br i1 %1610, label %1611, label %1665

1611:                                             ; preds = %1608
  %1612 = load double, ptr %24, align 8, !tbaa !11
  %1613 = fcmp ole double 0.000000e+00, %1612
  br i1 %1613, label %1614, label %1617

1614:                                             ; preds = %1611
  %1615 = load double, ptr %24, align 8, !tbaa !11
  %1616 = fadd double %1615, 0.000000e+00
  br label %1620

1617:                                             ; preds = %1611
  %1618 = load double, ptr %24, align 8, !tbaa !11
  %1619 = fsub double %1618, 0.000000e+00
  br label %1620

1620:                                             ; preds = %1617, %1614
  %1621 = phi double [ %1616, %1614 ], [ %1619, %1617 ]
  %1622 = load double, ptr %23, align 8, !tbaa !11
  %1623 = fcmp ole double %1621, %1622
  br i1 %1623, label %1624, label %1635

1624:                                             ; preds = %1620
  %1625 = load double, ptr %24, align 8, !tbaa !11
  %1626 = fcmp ole double 0.000000e+00, %1625
  br i1 %1626, label %1627, label %1630

1627:                                             ; preds = %1624
  %1628 = load double, ptr %24, align 8, !tbaa !11
  %1629 = fadd double %1628, 0.000000e+00
  br label %1633

1630:                                             ; preds = %1624
  %1631 = load double, ptr %24, align 8, !tbaa !11
  %1632 = fsub double %1631, 0.000000e+00
  br label %1633

1633:                                             ; preds = %1630, %1627
  %1634 = phi double [ %1629, %1627 ], [ %1632, %1630 ]
  br label %1663

1635:                                             ; preds = %1620
  %1636 = load double, ptr %24, align 8, !tbaa !11
  %1637 = fcmp ole double 0.000000e+00, %1636
  br i1 %1637, label %1638, label %1641

1638:                                             ; preds = %1635
  %1639 = load double, ptr %24, align 8, !tbaa !11
  %1640 = fadd double %1639, 0.000000e+00
  br label %1644

1641:                                             ; preds = %1635
  %1642 = load double, ptr %24, align 8, !tbaa !11
  %1643 = fsub double %1642, 0.000000e+00
  br label %1644

1644:                                             ; preds = %1641, %1638
  %1645 = phi double [ %1640, %1638 ], [ %1643, %1641 ]
  %1646 = load double, ptr %23, align 8, !tbaa !11
  %1647 = fcmp olt double %1645, %1646
  br i1 %1647, label %1648, label %1659

1648:                                             ; preds = %1644
  %1649 = load double, ptr %24, align 8, !tbaa !11
  %1650 = fcmp ole double 0.000000e+00, %1649
  br i1 %1650, label %1651, label %1654

1651:                                             ; preds = %1648
  %1652 = load double, ptr %24, align 8, !tbaa !11
  %1653 = fadd double %1652, 0.000000e+00
  br label %1657

1654:                                             ; preds = %1648
  %1655 = load double, ptr %24, align 8, !tbaa !11
  %1656 = fsub double %1655, 0.000000e+00
  br label %1657

1657:                                             ; preds = %1654, %1651
  %1658 = phi double [ %1653, %1651 ], [ %1656, %1654 ]
  br label %1661

1659:                                             ; preds = %1644
  %1660 = load double, ptr %23, align 8, !tbaa !11
  br label %1661

1661:                                             ; preds = %1659, %1657
  %1662 = phi double [ %1658, %1657 ], [ %1660, %1659 ]
  br label %1663

1663:                                             ; preds = %1661, %1633
  %1664 = phi double [ %1634, %1633 ], [ %1662, %1661 ]
  br label %1693

1665:                                             ; preds = %1608
  %1666 = load double, ptr %22, align 8, !tbaa !11
  %1667 = load double, ptr %24, align 8, !tbaa !11
  %1668 = fcmp ole double 0.000000e+00, %1667
  br i1 %1668, label %1669, label %1672

1669:                                             ; preds = %1665
  %1670 = load double, ptr %24, align 8, !tbaa !11
  %1671 = fadd double %1670, 0.000000e+00
  br label %1675

1672:                                             ; preds = %1665
  %1673 = load double, ptr %24, align 8, !tbaa !11
  %1674 = fsub double %1673, 0.000000e+00
  br label %1675

1675:                                             ; preds = %1672, %1669
  %1676 = phi double [ %1671, %1669 ], [ %1674, %1672 ]
  %1677 = fcmp olt double %1666, %1676
  br i1 %1677, label %1678, label %1689

1678:                                             ; preds = %1675
  %1679 = load double, ptr %24, align 8, !tbaa !11
  %1680 = fcmp ole double 0.000000e+00, %1679
  br i1 %1680, label %1681, label %1684

1681:                                             ; preds = %1678
  %1682 = load double, ptr %24, align 8, !tbaa !11
  %1683 = fadd double %1682, 0.000000e+00
  br label %1687

1684:                                             ; preds = %1678
  %1685 = load double, ptr %24, align 8, !tbaa !11
  %1686 = fsub double %1685, 0.000000e+00
  br label %1687

1687:                                             ; preds = %1684, %1681
  %1688 = phi double [ %1683, %1681 ], [ %1686, %1684 ]
  br label %1691

1689:                                             ; preds = %1675
  %1690 = load double, ptr %22, align 8, !tbaa !11
  br label %1691

1691:                                             ; preds = %1689, %1687
  %1692 = phi double [ %1688, %1687 ], [ %1690, %1689 ]
  br label %1693

1693:                                             ; preds = %1691, %1663
  %1694 = phi double [ %1664, %1663 ], [ %1692, %1691 ]
  %1695 = load ptr, ptr %7, align 8, !tbaa !5
  store double %1694, ptr %1695, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #3
  br label %1772

1696:                                             ; preds = %1461, %1458
  %1697 = load i32, ptr %8, align 4, !tbaa !9
  %1698 = icmp ugt i32 6, %1697
  br i1 %1698, label %1727, label %1699

1699:                                             ; preds = %1696
  %1700 = load i32, ptr %8, align 4, !tbaa !9
  %1701 = icmp ugt i32 15, %1700
  br i1 %1701, label %1702, label %1713

1702:                                             ; preds = %1699
  %1703 = load i32, ptr %9, align 4, !tbaa !9
  %1704 = icmp ugt i32 15, %1703
  br i1 %1704, label %1705, label %1710

1705:                                             ; preds = %1702
  %1706 = load i32, ptr %9, align 4, !tbaa !9
  %1707 = load i32, ptr %8, align 4, !tbaa !9
  %1708 = icmp ugt i32 %1706, %1707
  %1709 = zext i1 %1708 to i32
  br label %1711

1710:                                             ; preds = %1702
  br label %1711

1711:                                             ; preds = %1710, %1705
  %1712 = phi i32 [ %1709, %1705 ], [ 0, %1710 ]
  br label %1724

1713:                                             ; preds = %1699
  %1714 = load i32, ptr %9, align 4, !tbaa !9
  %1715 = icmp ugt i32 15, %1714
  br i1 %1715, label %1716, label %1717

1716:                                             ; preds = %1713
  br label %1722

1717:                                             ; preds = %1713
  %1718 = load i32, ptr %9, align 4, !tbaa !9
  %1719 = load i32, ptr %8, align 4, !tbaa !9
  %1720 = icmp ugt i32 %1718, %1719
  %1721 = zext i1 %1720 to i32
  br label %1722

1722:                                             ; preds = %1717, %1716
  %1723 = phi i32 [ 0, %1716 ], [ %1721, %1717 ]
  br label %1724

1724:                                             ; preds = %1722, %1711
  %1725 = phi i32 [ %1712, %1711 ], [ %1723, %1722 ]
  %1726 = icmp ne i32 %1725, 0
  br label %1727

1727:                                             ; preds = %1724, %1696
  %1728 = phi i1 [ true, %1696 ], [ %1726, %1724 ]
  %1729 = zext i1 %1728 to i32
  %1730 = icmp eq i32 0, %1729
  br i1 %1730, label %1731, label %1767

1731:                                             ; preds = %1727
  %1732 = load i64, ptr %15, align 8, !tbaa !13
  %1733 = sitofp i64 %1732 to double
  %1734 = fcmp olt double -1.000000e+00, %1733
  br i1 %1734, label %1735, label %1754

1735:                                             ; preds = %1731
  %1736 = load i64, ptr %15, align 8, !tbaa !13
  %1737 = sitofp i64 %1736 to double
  %1738 = fcmp ole double %1737, 1.000000e+00
  br i1 %1738, label %1739, label %1742

1739:                                             ; preds = %1735
  %1740 = load i64, ptr %15, align 8, !tbaa !13
  %1741 = sitofp i64 %1740 to double
  br label %1752

1742:                                             ; preds = %1735
  %1743 = load i64, ptr %15, align 8, !tbaa !13
  %1744 = sitofp i64 %1743 to double
  %1745 = fcmp olt double %1744, 1.000000e+00
  br i1 %1745, label %1746, label %1749

1746:                                             ; preds = %1742
  %1747 = load i64, ptr %15, align 8, !tbaa !13
  %1748 = sitofp i64 %1747 to double
  br label %1750

1749:                                             ; preds = %1742
  br label %1750

1750:                                             ; preds = %1749, %1746
  %1751 = phi double [ %1748, %1746 ], [ 1.000000e+00, %1749 ]
  br label %1752

1752:                                             ; preds = %1750, %1739
  %1753 = phi double [ %1741, %1739 ], [ %1751, %1750 ]
  br label %1764

1754:                                             ; preds = %1731
  %1755 = load i64, ptr %15, align 8, !tbaa !13
  %1756 = sitofp i64 %1755 to double
  %1757 = fcmp olt double -1.000000e+00, %1756
  br i1 %1757, label %1758, label %1761

1758:                                             ; preds = %1754
  %1759 = load i64, ptr %15, align 8, !tbaa !13
  %1760 = sitofp i64 %1759 to double
  br label %1762

1761:                                             ; preds = %1754
  br label %1762

1762:                                             ; preds = %1761, %1758
  %1763 = phi double [ %1760, %1758 ], [ -1.000000e+00, %1761 ]
  br label %1764

1764:                                             ; preds = %1762, %1752
  %1765 = phi double [ %1753, %1752 ], [ %1763, %1762 ]
  %1766 = load ptr, ptr %7, align 8, !tbaa !5
  store double %1765, ptr %1766, align 8, !tbaa !11
  br label %1771

1767:                                             ; preds = %1727
  %1768 = load i64, ptr %15, align 8, !tbaa !13
  %1769 = sitofp i64 %1768 to double
  %1770 = load ptr, ptr %7, align 8, !tbaa !5
  store double %1769, ptr %1770, align 8, !tbaa !11
  br label %1771

1771:                                             ; preds = %1767, %1764
  br label %1772

1772:                                             ; preds = %1771, %1693
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #3
  br label %1773

1773:                                             ; preds = %1772
  br label %1774

1774:                                             ; preds = %1773
  br label %5031

1775:                                             ; preds = %1428
  br label %1776

1776:                                             ; preds = %1775
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #3
  store double 0.000000e+00, ptr %25, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #3
  %1777 = load ptr, ptr %10, align 8, !tbaa !5
  %1778 = load i32, ptr %1777, align 4, !tbaa !9
  store i32 %1778, ptr %26, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #3
  store double 0.000000e+00, ptr %27, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #3
  store double 0.000000e+00, ptr %28, align 8, !tbaa !11
  %1779 = load ptr, ptr %11, align 8, !tbaa !5
  %1780 = icmp ne ptr null, %1779
  br i1 %1780, label %1781, label %1803

1781:                                             ; preds = %1776
  %1782 = load ptr, ptr %12, align 8, !tbaa !5
  %1783 = icmp ne ptr null, %1782
  br i1 %1783, label %1784, label %1795

1784:                                             ; preds = %1781
  %1785 = load ptr, ptr %11, align 8, !tbaa !5
  %1786 = load i32, ptr %1785, align 4, !tbaa !9
  %1787 = load i32, ptr %26, align 4, !tbaa !9
  %1788 = icmp sle i32 %1786, %1787
  br i1 %1788, label %1789, label %1795

1789:                                             ; preds = %1784
  %1790 = load i32, ptr %26, align 4, !tbaa !9
  %1791 = load ptr, ptr %12, align 8, !tbaa !5
  %1792 = load i32, ptr %1791, align 4, !tbaa !9
  %1793 = icmp sle i32 %1790, %1792
  br i1 %1793, label %1794, label %1795

1794:                                             ; preds = %1789
  br label %1796

1795:                                             ; preds = %1789, %1784, %1781
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.24, i32 noundef 467, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

1796:                                             ; preds = %1794
  %1797 = load ptr, ptr %11, align 8, !tbaa !5
  %1798 = load i32, ptr %1797, align 4, !tbaa !9
  %1799 = sitofp i32 %1798 to double
  store double %1799, ptr %27, align 8, !tbaa !11
  %1800 = load ptr, ptr %12, align 8, !tbaa !5
  %1801 = load i32, ptr %1800, align 4, !tbaa !9
  %1802 = sitofp i32 %1801 to double
  store double %1802, ptr %28, align 8, !tbaa !11
  br label %1803

1803:                                             ; preds = %1796, %1776
  %1804 = load i32, ptr %8, align 4, !tbaa !9
  %1805 = icmp ule i32 6, %1804
  br i1 %1805, label %1806, label %2041

1806:                                             ; preds = %1803
  %1807 = load double, ptr %27, align 8, !tbaa !11
  %1808 = load double, ptr %28, align 8, !tbaa !11
  %1809 = fcmp olt double %1807, %1808
  br i1 %1809, label %1810, label %2041

1810:                                             ; preds = %1806
  %1811 = load i32, ptr %8, align 4, !tbaa !9
  %1812 = icmp ule i32 15, %1811
  br i1 %1812, label %1813, label %1865

1813:                                             ; preds = %1810
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #3
  %1814 = load double, ptr %27, align 8, !tbaa !11
  %1815 = fcmp olt double 0.000000e+00, %1814
  br i1 %1815, label %1816, label %1818

1816:                                             ; preds = %1813
  %1817 = load double, ptr %27, align 8, !tbaa !11
  br label %1819

1818:                                             ; preds = %1813
  br label %1819

1819:                                             ; preds = %1818, %1816
  %1820 = phi double [ %1817, %1816 ], [ 0.000000e+00, %1818 ]
  store double %1820, ptr %29, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #3
  %1821 = load double, ptr %28, align 8, !tbaa !11
  %1822 = fcmp olt double 0.000000e+00, %1821
  br i1 %1822, label %1823, label %1825

1823:                                             ; preds = %1819
  %1824 = load double, ptr %28, align 8, !tbaa !11
  br label %1826

1825:                                             ; preds = %1819
  br label %1826

1826:                                             ; preds = %1825, %1823
  %1827 = phi double [ %1824, %1823 ], [ 0.000000e+00, %1825 ]
  store double %1827, ptr %30, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #3
  %1828 = load double, ptr %29, align 8, !tbaa !11
  %1829 = load double, ptr %30, align 8, !tbaa !11
  %1830 = fcmp olt double %1828, %1829
  br i1 %1830, label %1831, label %1839

1831:                                             ; preds = %1826
  %1832 = load double, ptr %28, align 8, !tbaa !11
  %1833 = load double, ptr %27, align 8, !tbaa !11
  %1834 = fsub double %1832, %1833
  %1835 = load double, ptr %30, align 8, !tbaa !11
  %1836 = load double, ptr %29, align 8, !tbaa !11
  %1837 = fsub double %1835, %1836
  %1838 = fdiv double %1834, %1837
  br label %1840

1839:                                             ; preds = %1826
  br label %1840

1840:                                             ; preds = %1839, %1831
  %1841 = phi double [ %1838, %1831 ], [ 1.000000e+00, %1839 ]
  store double %1841, ptr %31, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #3
  %1842 = load double, ptr %31, align 8, !tbaa !11
  %1843 = load i32, ptr %26, align 4, !tbaa !9
  %1844 = icmp slt i32 0, %1843
  br i1 %1844, label %1845, label %1847

1845:                                             ; preds = %1840
  %1846 = load i32, ptr %26, align 4, !tbaa !9
  br label %1848

1847:                                             ; preds = %1840
  br label %1848

1848:                                             ; preds = %1847, %1845
  %1849 = phi i32 [ %1846, %1845 ], [ 0, %1847 ]
  %1850 = sitofp i32 %1849 to double
  %1851 = fmul double %1842, %1850
  store double %1851, ptr %32, align 8, !tbaa !11
  %1852 = load double, ptr %32, align 8, !tbaa !11
  %1853 = fcmp ole double 0.000000e+00, %1852
  br i1 %1853, label %1854, label %1857

1854:                                             ; preds = %1848
  %1855 = load double, ptr %32, align 8, !tbaa !11
  %1856 = fadd double %1855, 0.000000e+00
  br label %1860

1857:                                             ; preds = %1848
  %1858 = load double, ptr %32, align 8, !tbaa !11
  %1859 = fsub double %1858, 0.000000e+00
  br label %1860

1860:                                             ; preds = %1857, %1854
  %1861 = phi double [ %1856, %1854 ], [ %1859, %1857 ]
  %1862 = fptosi double %1861 to i32
  store i32 %1862, ptr %26, align 4, !tbaa !9
  %1863 = load double, ptr %29, align 8, !tbaa !11
  store double %1863, ptr %27, align 8, !tbaa !11
  %1864 = load double, ptr %30, align 8, !tbaa !11
  store double %1864, ptr %28, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #3
  br label %1921

1865:                                             ; preds = %1810
  %1866 = load i32, ptr %8, align 4, !tbaa !9
  %1867 = icmp ugt i32 6, %1866
  br i1 %1867, label %1896, label %1868

1868:                                             ; preds = %1865
  %1869 = load i32, ptr %8, align 4, !tbaa !9
  %1870 = icmp ugt i32 15, %1869
  br i1 %1870, label %1871, label %1882

1871:                                             ; preds = %1868
  %1872 = load i32, ptr %9, align 4, !tbaa !9
  %1873 = icmp ugt i32 15, %1872
  br i1 %1873, label %1874, label %1879

1874:                                             ; preds = %1871
  %1875 = load i32, ptr %9, align 4, !tbaa !9
  %1876 = load i32, ptr %8, align 4, !tbaa !9
  %1877 = icmp ugt i32 %1875, %1876
  %1878 = zext i1 %1877 to i32
  br label %1880

1879:                                             ; preds = %1871
  br label %1880

1880:                                             ; preds = %1879, %1874
  %1881 = phi i32 [ %1878, %1874 ], [ 0, %1879 ]
  br label %1893

1882:                                             ; preds = %1868
  %1883 = load i32, ptr %9, align 4, !tbaa !9
  %1884 = icmp ugt i32 15, %1883
  br i1 %1884, label %1885, label %1886

1885:                                             ; preds = %1882
  br label %1891

1886:                                             ; preds = %1882
  %1887 = load i32, ptr %9, align 4, !tbaa !9
  %1888 = load i32, ptr %8, align 4, !tbaa !9
  %1889 = icmp ugt i32 %1887, %1888
  %1890 = zext i1 %1889 to i32
  br label %1891

1891:                                             ; preds = %1886, %1885
  %1892 = phi i32 [ 0, %1885 ], [ %1890, %1886 ]
  br label %1893

1893:                                             ; preds = %1891, %1880
  %1894 = phi i32 [ %1881, %1880 ], [ %1892, %1891 ]
  %1895 = icmp ne i32 %1894, 0
  br label %1896

1896:                                             ; preds = %1893, %1865
  %1897 = phi i1 [ true, %1865 ], [ %1895, %1893 ]
  %1898 = zext i1 %1897 to i32
  %1899 = icmp eq i32 0, %1898
  br i1 %1899, label %1900, label %1920

1900:                                             ; preds = %1896
  %1901 = load double, ptr %27, align 8, !tbaa !11
  %1902 = fcmp ogt double 0.000000e+00, %1901
  br i1 %1902, label %1903, label %1920

1903:                                             ; preds = %1900
  %1904 = load double, ptr %28, align 8, !tbaa !11
  %1905 = fcmp olt double 0.000000e+00, %1904
  br i1 %1905, label %1906, label %1920

1906:                                             ; preds = %1903
  %1907 = load double, ptr %27, align 8, !tbaa !11
  %1908 = fneg double %1907
  %1909 = load double, ptr %28, align 8, !tbaa !11
  %1910 = fcmp olt double %1908, %1909
  br i1 %1910, label %1911, label %1913

1911:                                             ; preds = %1906
  %1912 = load double, ptr %28, align 8, !tbaa !11
  br label %1916

1913:                                             ; preds = %1906
  %1914 = load double, ptr %27, align 8, !tbaa !11
  %1915 = fneg double %1914
  br label %1916

1916:                                             ; preds = %1913, %1911
  %1917 = phi double [ %1912, %1911 ], [ %1915, %1913 ]
  store double %1917, ptr %28, align 8, !tbaa !11
  %1918 = load double, ptr %28, align 8, !tbaa !11
  %1919 = fneg double %1918
  store double %1919, ptr %27, align 8, !tbaa !11
  br label %1920

1920:                                             ; preds = %1916, %1903, %1900, %1896
  br label %1921

1921:                                             ; preds = %1920, %1860
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #3
  %1922 = load double, ptr %27, align 8, !tbaa !11
  %1923 = fcmp ole double 0.000000e+00, %1922
  %1924 = zext i1 %1923 to i64
  %1925 = select i1 %1923, double 0.000000e+00, double -1.000000e+00
  store double %1925, ptr %33, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #3
  %1926 = load double, ptr %28, align 8, !tbaa !11
  %1927 = fcmp ole double 0.000000e+00, %1926
  %1928 = zext i1 %1927 to i64
  %1929 = select i1 %1927, double 1.000000e+00, double 0.000000e+00
  store double %1929, ptr %34, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #3
  %1930 = load i32, ptr %26, align 4, !tbaa !9
  %1931 = sitofp i32 %1930 to double
  %1932 = load double, ptr %27, align 8, !tbaa !11
  %1933 = fsub double %1931, %1932
  %1934 = load double, ptr %34, align 8, !tbaa !11
  %1935 = load double, ptr %33, align 8, !tbaa !11
  %1936 = fsub double %1934, %1935
  %1937 = fmul double %1933, %1936
  %1938 = load double, ptr %28, align 8, !tbaa !11
  %1939 = load double, ptr %27, align 8, !tbaa !11
  %1940 = fsub double %1938, %1939
  %1941 = fdiv double %1937, %1940
  %1942 = load double, ptr %33, align 8, !tbaa !11
  %1943 = fadd double %1941, %1942
  store double %1943, ptr %35, align 8, !tbaa !11
  %1944 = load double, ptr %33, align 8, !tbaa !11
  %1945 = load double, ptr %35, align 8, !tbaa !11
  %1946 = fcmp ole double 0.000000e+00, %1945
  br i1 %1946, label %1947, label %1950

1947:                                             ; preds = %1921
  %1948 = load double, ptr %35, align 8, !tbaa !11
  %1949 = fadd double %1948, 0.000000e+00
  br label %1953

1950:                                             ; preds = %1921
  %1951 = load double, ptr %35, align 8, !tbaa !11
  %1952 = fsub double %1951, 0.000000e+00
  br label %1953

1953:                                             ; preds = %1950, %1947
  %1954 = phi double [ %1949, %1947 ], [ %1952, %1950 ]
  %1955 = fcmp olt double %1944, %1954
  br i1 %1955, label %1956, label %2010

1956:                                             ; preds = %1953
  %1957 = load double, ptr %35, align 8, !tbaa !11
  %1958 = fcmp ole double 0.000000e+00, %1957
  br i1 %1958, label %1959, label %1962

1959:                                             ; preds = %1956
  %1960 = load double, ptr %35, align 8, !tbaa !11
  %1961 = fadd double %1960, 0.000000e+00
  br label %1965

1962:                                             ; preds = %1956
  %1963 = load double, ptr %35, align 8, !tbaa !11
  %1964 = fsub double %1963, 0.000000e+00
  br label %1965

1965:                                             ; preds = %1962, %1959
  %1966 = phi double [ %1961, %1959 ], [ %1964, %1962 ]
  %1967 = load double, ptr %34, align 8, !tbaa !11
  %1968 = fcmp ole double %1966, %1967
  br i1 %1968, label %1969, label %1980

1969:                                             ; preds = %1965
  %1970 = load double, ptr %35, align 8, !tbaa !11
  %1971 = fcmp ole double 0.000000e+00, %1970
  br i1 %1971, label %1972, label %1975

1972:                                             ; preds = %1969
  %1973 = load double, ptr %35, align 8, !tbaa !11
  %1974 = fadd double %1973, 0.000000e+00
  br label %1978

1975:                                             ; preds = %1969
  %1976 = load double, ptr %35, align 8, !tbaa !11
  %1977 = fsub double %1976, 0.000000e+00
  br label %1978

1978:                                             ; preds = %1975, %1972
  %1979 = phi double [ %1974, %1972 ], [ %1977, %1975 ]
  br label %2008

1980:                                             ; preds = %1965
  %1981 = load double, ptr %35, align 8, !tbaa !11
  %1982 = fcmp ole double 0.000000e+00, %1981
  br i1 %1982, label %1983, label %1986

1983:                                             ; preds = %1980
  %1984 = load double, ptr %35, align 8, !tbaa !11
  %1985 = fadd double %1984, 0.000000e+00
  br label %1989

1986:                                             ; preds = %1980
  %1987 = load double, ptr %35, align 8, !tbaa !11
  %1988 = fsub double %1987, 0.000000e+00
  br label %1989

1989:                                             ; preds = %1986, %1983
  %1990 = phi double [ %1985, %1983 ], [ %1988, %1986 ]
  %1991 = load double, ptr %34, align 8, !tbaa !11
  %1992 = fcmp olt double %1990, %1991
  br i1 %1992, label %1993, label %2004

1993:                                             ; preds = %1989
  %1994 = load double, ptr %35, align 8, !tbaa !11
  %1995 = fcmp ole double 0.000000e+00, %1994
  br i1 %1995, label %1996, label %1999

1996:                                             ; preds = %1993
  %1997 = load double, ptr %35, align 8, !tbaa !11
  %1998 = fadd double %1997, 0.000000e+00
  br label %2002

1999:                                             ; preds = %1993
  %2000 = load double, ptr %35, align 8, !tbaa !11
  %2001 = fsub double %2000, 0.000000e+00
  br label %2002

2002:                                             ; preds = %1999, %1996
  %2003 = phi double [ %1998, %1996 ], [ %2001, %1999 ]
  br label %2006

2004:                                             ; preds = %1989
  %2005 = load double, ptr %34, align 8, !tbaa !11
  br label %2006

2006:                                             ; preds = %2004, %2002
  %2007 = phi double [ %2003, %2002 ], [ %2005, %2004 ]
  br label %2008

2008:                                             ; preds = %2006, %1978
  %2009 = phi double [ %1979, %1978 ], [ %2007, %2006 ]
  br label %2038

2010:                                             ; preds = %1953
  %2011 = load double, ptr %33, align 8, !tbaa !11
  %2012 = load double, ptr %35, align 8, !tbaa !11
  %2013 = fcmp ole double 0.000000e+00, %2012
  br i1 %2013, label %2014, label %2017

2014:                                             ; preds = %2010
  %2015 = load double, ptr %35, align 8, !tbaa !11
  %2016 = fadd double %2015, 0.000000e+00
  br label %2020

2017:                                             ; preds = %2010
  %2018 = load double, ptr %35, align 8, !tbaa !11
  %2019 = fsub double %2018, 0.000000e+00
  br label %2020

2020:                                             ; preds = %2017, %2014
  %2021 = phi double [ %2016, %2014 ], [ %2019, %2017 ]
  %2022 = fcmp olt double %2011, %2021
  br i1 %2022, label %2023, label %2034

2023:                                             ; preds = %2020
  %2024 = load double, ptr %35, align 8, !tbaa !11
  %2025 = fcmp ole double 0.000000e+00, %2024
  br i1 %2025, label %2026, label %2029

2026:                                             ; preds = %2023
  %2027 = load double, ptr %35, align 8, !tbaa !11
  %2028 = fadd double %2027, 0.000000e+00
  br label %2032

2029:                                             ; preds = %2023
  %2030 = load double, ptr %35, align 8, !tbaa !11
  %2031 = fsub double %2030, 0.000000e+00
  br label %2032

2032:                                             ; preds = %2029, %2026
  %2033 = phi double [ %2028, %2026 ], [ %2031, %2029 ]
  br label %2036

2034:                                             ; preds = %2020
  %2035 = load double, ptr %33, align 8, !tbaa !11
  br label %2036

2036:                                             ; preds = %2034, %2032
  %2037 = phi double [ %2033, %2032 ], [ %2035, %2034 ]
  br label %2038

2038:                                             ; preds = %2036, %2008
  %2039 = phi double [ %2009, %2008 ], [ %2037, %2036 ]
  %2040 = load ptr, ptr %7, align 8, !tbaa !5
  store double %2039, ptr %2040, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #3
  br label %2117

2041:                                             ; preds = %1806, %1803
  %2042 = load i32, ptr %8, align 4, !tbaa !9
  %2043 = icmp ugt i32 6, %2042
  br i1 %2043, label %2072, label %2044

2044:                                             ; preds = %2041
  %2045 = load i32, ptr %8, align 4, !tbaa !9
  %2046 = icmp ugt i32 15, %2045
  br i1 %2046, label %2047, label %2058

2047:                                             ; preds = %2044
  %2048 = load i32, ptr %9, align 4, !tbaa !9
  %2049 = icmp ugt i32 15, %2048
  br i1 %2049, label %2050, label %2055

2050:                                             ; preds = %2047
  %2051 = load i32, ptr %9, align 4, !tbaa !9
  %2052 = load i32, ptr %8, align 4, !tbaa !9
  %2053 = icmp ugt i32 %2051, %2052
  %2054 = zext i1 %2053 to i32
  br label %2056

2055:                                             ; preds = %2047
  br label %2056

2056:                                             ; preds = %2055, %2050
  %2057 = phi i32 [ %2054, %2050 ], [ 0, %2055 ]
  br label %2069

2058:                                             ; preds = %2044
  %2059 = load i32, ptr %9, align 4, !tbaa !9
  %2060 = icmp ugt i32 15, %2059
  br i1 %2060, label %2061, label %2062

2061:                                             ; preds = %2058
  br label %2067

2062:                                             ; preds = %2058
  %2063 = load i32, ptr %9, align 4, !tbaa !9
  %2064 = load i32, ptr %8, align 4, !tbaa !9
  %2065 = icmp ugt i32 %2063, %2064
  %2066 = zext i1 %2065 to i32
  br label %2067

2067:                                             ; preds = %2062, %2061
  %2068 = phi i32 [ 0, %2061 ], [ %2066, %2062 ]
  br label %2069

2069:                                             ; preds = %2067, %2056
  %2070 = phi i32 [ %2057, %2056 ], [ %2068, %2067 ]
  %2071 = icmp ne i32 %2070, 0
  br label %2072

2072:                                             ; preds = %2069, %2041
  %2073 = phi i1 [ true, %2041 ], [ %2071, %2069 ]
  %2074 = zext i1 %2073 to i32
  %2075 = icmp eq i32 0, %2074
  br i1 %2075, label %2076, label %2112

2076:                                             ; preds = %2072
  %2077 = load i32, ptr %26, align 4, !tbaa !9
  %2078 = sitofp i32 %2077 to double
  %2079 = fcmp olt double -1.000000e+00, %2078
  br i1 %2079, label %2080, label %2099

2080:                                             ; preds = %2076
  %2081 = load i32, ptr %26, align 4, !tbaa !9
  %2082 = sitofp i32 %2081 to double
  %2083 = fcmp ole double %2082, 1.000000e+00
  br i1 %2083, label %2084, label %2087

2084:                                             ; preds = %2080
  %2085 = load i32, ptr %26, align 4, !tbaa !9
  %2086 = sitofp i32 %2085 to double
  br label %2097

2087:                                             ; preds = %2080
  %2088 = load i32, ptr %26, align 4, !tbaa !9
  %2089 = sitofp i32 %2088 to double
  %2090 = fcmp olt double %2089, 1.000000e+00
  br i1 %2090, label %2091, label %2094

2091:                                             ; preds = %2087
  %2092 = load i32, ptr %26, align 4, !tbaa !9
  %2093 = sitofp i32 %2092 to double
  br label %2095

2094:                                             ; preds = %2087
  br label %2095

2095:                                             ; preds = %2094, %2091
  %2096 = phi double [ %2093, %2091 ], [ 1.000000e+00, %2094 ]
  br label %2097

2097:                                             ; preds = %2095, %2084
  %2098 = phi double [ %2086, %2084 ], [ %2096, %2095 ]
  br label %2109

2099:                                             ; preds = %2076
  %2100 = load i32, ptr %26, align 4, !tbaa !9
  %2101 = sitofp i32 %2100 to double
  %2102 = fcmp olt double -1.000000e+00, %2101
  br i1 %2102, label %2103, label %2106

2103:                                             ; preds = %2099
  %2104 = load i32, ptr %26, align 4, !tbaa !9
  %2105 = sitofp i32 %2104 to double
  br label %2107

2106:                                             ; preds = %2099
  br label %2107

2107:                                             ; preds = %2106, %2103
  %2108 = phi double [ %2105, %2103 ], [ -1.000000e+00, %2106 ]
  br label %2109

2109:                                             ; preds = %2107, %2097
  %2110 = phi double [ %2098, %2097 ], [ %2108, %2107 ]
  %2111 = load ptr, ptr %7, align 8, !tbaa !5
  store double %2110, ptr %2111, align 8, !tbaa !11
  br label %2116

2112:                                             ; preds = %2072
  %2113 = load i32, ptr %26, align 4, !tbaa !9
  %2114 = sitofp i32 %2113 to double
  %2115 = load ptr, ptr %7, align 8, !tbaa !5
  store double %2114, ptr %2115, align 8, !tbaa !11
  br label %2116

2116:                                             ; preds = %2112, %2109
  br label %2117

2117:                                             ; preds = %2116, %2038
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #3
  br label %2118

2118:                                             ; preds = %2117
  br label %2119

2119:                                             ; preds = %2118
  br label %5031

2120:                                             ; preds = %1428
  br label %2121

2121:                                             ; preds = %2120
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #3
  store double 0.000000e+00, ptr %36, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %37) #3
  %2122 = load ptr, ptr %10, align 8, !tbaa !5
  %2123 = load i16, ptr %2122, align 2, !tbaa !15
  store i16 %2123, ptr %37, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #3
  store double 0.000000e+00, ptr %38, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #3
  store double 0.000000e+00, ptr %39, align 8, !tbaa !11
  %2124 = load ptr, ptr %11, align 8, !tbaa !5
  %2125 = icmp ne ptr null, %2124
  br i1 %2125, label %2126, label %2152

2126:                                             ; preds = %2121
  %2127 = load ptr, ptr %12, align 8, !tbaa !5
  %2128 = icmp ne ptr null, %2127
  br i1 %2128, label %2129, label %2144

2129:                                             ; preds = %2126
  %2130 = load ptr, ptr %11, align 8, !tbaa !5
  %2131 = load i16, ptr %2130, align 2, !tbaa !15
  %2132 = sext i16 %2131 to i32
  %2133 = load i16, ptr %37, align 2, !tbaa !15
  %2134 = sext i16 %2133 to i32
  %2135 = icmp sle i32 %2132, %2134
  br i1 %2135, label %2136, label %2144

2136:                                             ; preds = %2129
  %2137 = load i16, ptr %37, align 2, !tbaa !15
  %2138 = sext i16 %2137 to i32
  %2139 = load ptr, ptr %12, align 8, !tbaa !5
  %2140 = load i16, ptr %2139, align 2, !tbaa !15
  %2141 = sext i16 %2140 to i32
  %2142 = icmp sle i32 %2138, %2141
  br i1 %2142, label %2143, label %2144

2143:                                             ; preds = %2136
  br label %2145

2144:                                             ; preds = %2136, %2129, %2126
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.24, i32 noundef 467, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

2145:                                             ; preds = %2143
  %2146 = load ptr, ptr %11, align 8, !tbaa !5
  %2147 = load i16, ptr %2146, align 2, !tbaa !15
  %2148 = sitofp i16 %2147 to double
  store double %2148, ptr %38, align 8, !tbaa !11
  %2149 = load ptr, ptr %12, align 8, !tbaa !5
  %2150 = load i16, ptr %2149, align 2, !tbaa !15
  %2151 = sitofp i16 %2150 to double
  store double %2151, ptr %39, align 8, !tbaa !11
  br label %2152

2152:                                             ; preds = %2145, %2121
  %2153 = load i32, ptr %8, align 4, !tbaa !9
  %2154 = icmp ule i32 6, %2153
  br i1 %2154, label %2155, label %2392

2155:                                             ; preds = %2152
  %2156 = load double, ptr %38, align 8, !tbaa !11
  %2157 = load double, ptr %39, align 8, !tbaa !11
  %2158 = fcmp olt double %2156, %2157
  br i1 %2158, label %2159, label %2392

2159:                                             ; preds = %2155
  %2160 = load i32, ptr %8, align 4, !tbaa !9
  %2161 = icmp ule i32 15, %2160
  br i1 %2161, label %2162, label %2216

2162:                                             ; preds = %2159
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #3
  %2163 = load double, ptr %38, align 8, !tbaa !11
  %2164 = fcmp olt double 0.000000e+00, %2163
  br i1 %2164, label %2165, label %2167

2165:                                             ; preds = %2162
  %2166 = load double, ptr %38, align 8, !tbaa !11
  br label %2168

2167:                                             ; preds = %2162
  br label %2168

2168:                                             ; preds = %2167, %2165
  %2169 = phi double [ %2166, %2165 ], [ 0.000000e+00, %2167 ]
  store double %2169, ptr %40, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #3
  %2170 = load double, ptr %39, align 8, !tbaa !11
  %2171 = fcmp olt double 0.000000e+00, %2170
  br i1 %2171, label %2172, label %2174

2172:                                             ; preds = %2168
  %2173 = load double, ptr %39, align 8, !tbaa !11
  br label %2175

2174:                                             ; preds = %2168
  br label %2175

2175:                                             ; preds = %2174, %2172
  %2176 = phi double [ %2173, %2172 ], [ 0.000000e+00, %2174 ]
  store double %2176, ptr %41, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #3
  %2177 = load double, ptr %40, align 8, !tbaa !11
  %2178 = load double, ptr %41, align 8, !tbaa !11
  %2179 = fcmp olt double %2177, %2178
  br i1 %2179, label %2180, label %2188

2180:                                             ; preds = %2175
  %2181 = load double, ptr %39, align 8, !tbaa !11
  %2182 = load double, ptr %38, align 8, !tbaa !11
  %2183 = fsub double %2181, %2182
  %2184 = load double, ptr %41, align 8, !tbaa !11
  %2185 = load double, ptr %40, align 8, !tbaa !11
  %2186 = fsub double %2184, %2185
  %2187 = fdiv double %2183, %2186
  br label %2189

2188:                                             ; preds = %2175
  br label %2189

2189:                                             ; preds = %2188, %2180
  %2190 = phi double [ %2187, %2180 ], [ 1.000000e+00, %2188 ]
  store double %2190, ptr %42, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #3
  %2191 = load double, ptr %42, align 8, !tbaa !11
  %2192 = load i16, ptr %37, align 2, !tbaa !15
  %2193 = sext i16 %2192 to i32
  %2194 = icmp slt i32 0, %2193
  br i1 %2194, label %2195, label %2198

2195:                                             ; preds = %2189
  %2196 = load i16, ptr %37, align 2, !tbaa !15
  %2197 = sext i16 %2196 to i32
  br label %2199

2198:                                             ; preds = %2189
  br label %2199

2199:                                             ; preds = %2198, %2195
  %2200 = phi i32 [ %2197, %2195 ], [ 0, %2198 ]
  %2201 = sitofp i32 %2200 to double
  %2202 = fmul double %2191, %2201
  store double %2202, ptr %43, align 8, !tbaa !11
  %2203 = load double, ptr %43, align 8, !tbaa !11
  %2204 = fcmp ole double 0.000000e+00, %2203
  br i1 %2204, label %2205, label %2208

2205:                                             ; preds = %2199
  %2206 = load double, ptr %43, align 8, !tbaa !11
  %2207 = fadd double %2206, 0.000000e+00
  br label %2211

2208:                                             ; preds = %2199
  %2209 = load double, ptr %43, align 8, !tbaa !11
  %2210 = fsub double %2209, 0.000000e+00
  br label %2211

2211:                                             ; preds = %2208, %2205
  %2212 = phi double [ %2207, %2205 ], [ %2210, %2208 ]
  %2213 = fptosi double %2212 to i16
  store i16 %2213, ptr %37, align 2, !tbaa !15
  %2214 = load double, ptr %40, align 8, !tbaa !11
  store double %2214, ptr %38, align 8, !tbaa !11
  %2215 = load double, ptr %41, align 8, !tbaa !11
  store double %2215, ptr %39, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #3
  br label %2272

2216:                                             ; preds = %2159
  %2217 = load i32, ptr %8, align 4, !tbaa !9
  %2218 = icmp ugt i32 6, %2217
  br i1 %2218, label %2247, label %2219

2219:                                             ; preds = %2216
  %2220 = load i32, ptr %8, align 4, !tbaa !9
  %2221 = icmp ugt i32 15, %2220
  br i1 %2221, label %2222, label %2233

2222:                                             ; preds = %2219
  %2223 = load i32, ptr %9, align 4, !tbaa !9
  %2224 = icmp ugt i32 15, %2223
  br i1 %2224, label %2225, label %2230

2225:                                             ; preds = %2222
  %2226 = load i32, ptr %9, align 4, !tbaa !9
  %2227 = load i32, ptr %8, align 4, !tbaa !9
  %2228 = icmp ugt i32 %2226, %2227
  %2229 = zext i1 %2228 to i32
  br label %2231

2230:                                             ; preds = %2222
  br label %2231

2231:                                             ; preds = %2230, %2225
  %2232 = phi i32 [ %2229, %2225 ], [ 0, %2230 ]
  br label %2244

2233:                                             ; preds = %2219
  %2234 = load i32, ptr %9, align 4, !tbaa !9
  %2235 = icmp ugt i32 15, %2234
  br i1 %2235, label %2236, label %2237

2236:                                             ; preds = %2233
  br label %2242

2237:                                             ; preds = %2233
  %2238 = load i32, ptr %9, align 4, !tbaa !9
  %2239 = load i32, ptr %8, align 4, !tbaa !9
  %2240 = icmp ugt i32 %2238, %2239
  %2241 = zext i1 %2240 to i32
  br label %2242

2242:                                             ; preds = %2237, %2236
  %2243 = phi i32 [ 0, %2236 ], [ %2241, %2237 ]
  br label %2244

2244:                                             ; preds = %2242, %2231
  %2245 = phi i32 [ %2232, %2231 ], [ %2243, %2242 ]
  %2246 = icmp ne i32 %2245, 0
  br label %2247

2247:                                             ; preds = %2244, %2216
  %2248 = phi i1 [ true, %2216 ], [ %2246, %2244 ]
  %2249 = zext i1 %2248 to i32
  %2250 = icmp eq i32 0, %2249
  br i1 %2250, label %2251, label %2271

2251:                                             ; preds = %2247
  %2252 = load double, ptr %38, align 8, !tbaa !11
  %2253 = fcmp ogt double 0.000000e+00, %2252
  br i1 %2253, label %2254, label %2271

2254:                                             ; preds = %2251
  %2255 = load double, ptr %39, align 8, !tbaa !11
  %2256 = fcmp olt double 0.000000e+00, %2255
  br i1 %2256, label %2257, label %2271

2257:                                             ; preds = %2254
  %2258 = load double, ptr %38, align 8, !tbaa !11
  %2259 = fneg double %2258
  %2260 = load double, ptr %39, align 8, !tbaa !11
  %2261 = fcmp olt double %2259, %2260
  br i1 %2261, label %2262, label %2264

2262:                                             ; preds = %2257
  %2263 = load double, ptr %39, align 8, !tbaa !11
  br label %2267

2264:                                             ; preds = %2257
  %2265 = load double, ptr %38, align 8, !tbaa !11
  %2266 = fneg double %2265
  br label %2267

2267:                                             ; preds = %2264, %2262
  %2268 = phi double [ %2263, %2262 ], [ %2266, %2264 ]
  store double %2268, ptr %39, align 8, !tbaa !11
  %2269 = load double, ptr %39, align 8, !tbaa !11
  %2270 = fneg double %2269
  store double %2270, ptr %38, align 8, !tbaa !11
  br label %2271

2271:                                             ; preds = %2267, %2254, %2251, %2247
  br label %2272

2272:                                             ; preds = %2271, %2211
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #3
  %2273 = load double, ptr %38, align 8, !tbaa !11
  %2274 = fcmp ole double 0.000000e+00, %2273
  %2275 = zext i1 %2274 to i64
  %2276 = select i1 %2274, double 0.000000e+00, double -1.000000e+00
  store double %2276, ptr %44, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #3
  %2277 = load double, ptr %39, align 8, !tbaa !11
  %2278 = fcmp ole double 0.000000e+00, %2277
  %2279 = zext i1 %2278 to i64
  %2280 = select i1 %2278, double 1.000000e+00, double 0.000000e+00
  store double %2280, ptr %45, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #3
  %2281 = load i16, ptr %37, align 2, !tbaa !15
  %2282 = sitofp i16 %2281 to double
  %2283 = load double, ptr %38, align 8, !tbaa !11
  %2284 = fsub double %2282, %2283
  %2285 = load double, ptr %45, align 8, !tbaa !11
  %2286 = load double, ptr %44, align 8, !tbaa !11
  %2287 = fsub double %2285, %2286
  %2288 = fmul double %2284, %2287
  %2289 = load double, ptr %39, align 8, !tbaa !11
  %2290 = load double, ptr %38, align 8, !tbaa !11
  %2291 = fsub double %2289, %2290
  %2292 = fdiv double %2288, %2291
  %2293 = load double, ptr %44, align 8, !tbaa !11
  %2294 = fadd double %2292, %2293
  store double %2294, ptr %46, align 8, !tbaa !11
  %2295 = load double, ptr %44, align 8, !tbaa !11
  %2296 = load double, ptr %46, align 8, !tbaa !11
  %2297 = fcmp ole double 0.000000e+00, %2296
  br i1 %2297, label %2298, label %2301

2298:                                             ; preds = %2272
  %2299 = load double, ptr %46, align 8, !tbaa !11
  %2300 = fadd double %2299, 0.000000e+00
  br label %2304

2301:                                             ; preds = %2272
  %2302 = load double, ptr %46, align 8, !tbaa !11
  %2303 = fsub double %2302, 0.000000e+00
  br label %2304

2304:                                             ; preds = %2301, %2298
  %2305 = phi double [ %2300, %2298 ], [ %2303, %2301 ]
  %2306 = fcmp olt double %2295, %2305
  br i1 %2306, label %2307, label %2361

2307:                                             ; preds = %2304
  %2308 = load double, ptr %46, align 8, !tbaa !11
  %2309 = fcmp ole double 0.000000e+00, %2308
  br i1 %2309, label %2310, label %2313

2310:                                             ; preds = %2307
  %2311 = load double, ptr %46, align 8, !tbaa !11
  %2312 = fadd double %2311, 0.000000e+00
  br label %2316

2313:                                             ; preds = %2307
  %2314 = load double, ptr %46, align 8, !tbaa !11
  %2315 = fsub double %2314, 0.000000e+00
  br label %2316

2316:                                             ; preds = %2313, %2310
  %2317 = phi double [ %2312, %2310 ], [ %2315, %2313 ]
  %2318 = load double, ptr %45, align 8, !tbaa !11
  %2319 = fcmp ole double %2317, %2318
  br i1 %2319, label %2320, label %2331

2320:                                             ; preds = %2316
  %2321 = load double, ptr %46, align 8, !tbaa !11
  %2322 = fcmp ole double 0.000000e+00, %2321
  br i1 %2322, label %2323, label %2326

2323:                                             ; preds = %2320
  %2324 = load double, ptr %46, align 8, !tbaa !11
  %2325 = fadd double %2324, 0.000000e+00
  br label %2329

2326:                                             ; preds = %2320
  %2327 = load double, ptr %46, align 8, !tbaa !11
  %2328 = fsub double %2327, 0.000000e+00
  br label %2329

2329:                                             ; preds = %2326, %2323
  %2330 = phi double [ %2325, %2323 ], [ %2328, %2326 ]
  br label %2359

2331:                                             ; preds = %2316
  %2332 = load double, ptr %46, align 8, !tbaa !11
  %2333 = fcmp ole double 0.000000e+00, %2332
  br i1 %2333, label %2334, label %2337

2334:                                             ; preds = %2331
  %2335 = load double, ptr %46, align 8, !tbaa !11
  %2336 = fadd double %2335, 0.000000e+00
  br label %2340

2337:                                             ; preds = %2331
  %2338 = load double, ptr %46, align 8, !tbaa !11
  %2339 = fsub double %2338, 0.000000e+00
  br label %2340

2340:                                             ; preds = %2337, %2334
  %2341 = phi double [ %2336, %2334 ], [ %2339, %2337 ]
  %2342 = load double, ptr %45, align 8, !tbaa !11
  %2343 = fcmp olt double %2341, %2342
  br i1 %2343, label %2344, label %2355

2344:                                             ; preds = %2340
  %2345 = load double, ptr %46, align 8, !tbaa !11
  %2346 = fcmp ole double 0.000000e+00, %2345
  br i1 %2346, label %2347, label %2350

2347:                                             ; preds = %2344
  %2348 = load double, ptr %46, align 8, !tbaa !11
  %2349 = fadd double %2348, 0.000000e+00
  br label %2353

2350:                                             ; preds = %2344
  %2351 = load double, ptr %46, align 8, !tbaa !11
  %2352 = fsub double %2351, 0.000000e+00
  br label %2353

2353:                                             ; preds = %2350, %2347
  %2354 = phi double [ %2349, %2347 ], [ %2352, %2350 ]
  br label %2357

2355:                                             ; preds = %2340
  %2356 = load double, ptr %45, align 8, !tbaa !11
  br label %2357

2357:                                             ; preds = %2355, %2353
  %2358 = phi double [ %2354, %2353 ], [ %2356, %2355 ]
  br label %2359

2359:                                             ; preds = %2357, %2329
  %2360 = phi double [ %2330, %2329 ], [ %2358, %2357 ]
  br label %2389

2361:                                             ; preds = %2304
  %2362 = load double, ptr %44, align 8, !tbaa !11
  %2363 = load double, ptr %46, align 8, !tbaa !11
  %2364 = fcmp ole double 0.000000e+00, %2363
  br i1 %2364, label %2365, label %2368

2365:                                             ; preds = %2361
  %2366 = load double, ptr %46, align 8, !tbaa !11
  %2367 = fadd double %2366, 0.000000e+00
  br label %2371

2368:                                             ; preds = %2361
  %2369 = load double, ptr %46, align 8, !tbaa !11
  %2370 = fsub double %2369, 0.000000e+00
  br label %2371

2371:                                             ; preds = %2368, %2365
  %2372 = phi double [ %2367, %2365 ], [ %2370, %2368 ]
  %2373 = fcmp olt double %2362, %2372
  br i1 %2373, label %2374, label %2385

2374:                                             ; preds = %2371
  %2375 = load double, ptr %46, align 8, !tbaa !11
  %2376 = fcmp ole double 0.000000e+00, %2375
  br i1 %2376, label %2377, label %2380

2377:                                             ; preds = %2374
  %2378 = load double, ptr %46, align 8, !tbaa !11
  %2379 = fadd double %2378, 0.000000e+00
  br label %2383

2380:                                             ; preds = %2374
  %2381 = load double, ptr %46, align 8, !tbaa !11
  %2382 = fsub double %2381, 0.000000e+00
  br label %2383

2383:                                             ; preds = %2380, %2377
  %2384 = phi double [ %2379, %2377 ], [ %2382, %2380 ]
  br label %2387

2385:                                             ; preds = %2371
  %2386 = load double, ptr %44, align 8, !tbaa !11
  br label %2387

2387:                                             ; preds = %2385, %2383
  %2388 = phi double [ %2384, %2383 ], [ %2386, %2385 ]
  br label %2389

2389:                                             ; preds = %2387, %2359
  %2390 = phi double [ %2360, %2359 ], [ %2388, %2387 ]
  %2391 = load ptr, ptr %7, align 8, !tbaa !5
  store double %2390, ptr %2391, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #3
  br label %2475

2392:                                             ; preds = %2155, %2152
  %2393 = load i32, ptr %8, align 4, !tbaa !9
  %2394 = icmp ugt i32 6, %2393
  br i1 %2394, label %2423, label %2395

2395:                                             ; preds = %2392
  %2396 = load i32, ptr %8, align 4, !tbaa !9
  %2397 = icmp ugt i32 15, %2396
  br i1 %2397, label %2398, label %2409

2398:                                             ; preds = %2395
  %2399 = load i32, ptr %9, align 4, !tbaa !9
  %2400 = icmp ugt i32 15, %2399
  br i1 %2400, label %2401, label %2406

2401:                                             ; preds = %2398
  %2402 = load i32, ptr %9, align 4, !tbaa !9
  %2403 = load i32, ptr %8, align 4, !tbaa !9
  %2404 = icmp ugt i32 %2402, %2403
  %2405 = zext i1 %2404 to i32
  br label %2407

2406:                                             ; preds = %2398
  br label %2407

2407:                                             ; preds = %2406, %2401
  %2408 = phi i32 [ %2405, %2401 ], [ 0, %2406 ]
  br label %2420

2409:                                             ; preds = %2395
  %2410 = load i32, ptr %9, align 4, !tbaa !9
  %2411 = icmp ugt i32 15, %2410
  br i1 %2411, label %2412, label %2413

2412:                                             ; preds = %2409
  br label %2418

2413:                                             ; preds = %2409
  %2414 = load i32, ptr %9, align 4, !tbaa !9
  %2415 = load i32, ptr %8, align 4, !tbaa !9
  %2416 = icmp ugt i32 %2414, %2415
  %2417 = zext i1 %2416 to i32
  br label %2418

2418:                                             ; preds = %2413, %2412
  %2419 = phi i32 [ 0, %2412 ], [ %2417, %2413 ]
  br label %2420

2420:                                             ; preds = %2418, %2407
  %2421 = phi i32 [ %2408, %2407 ], [ %2419, %2418 ]
  %2422 = icmp ne i32 %2421, 0
  br label %2423

2423:                                             ; preds = %2420, %2392
  %2424 = phi i1 [ true, %2392 ], [ %2422, %2420 ]
  %2425 = zext i1 %2424 to i32
  %2426 = icmp eq i32 0, %2425
  br i1 %2426, label %2427, label %2470

2427:                                             ; preds = %2423
  %2428 = load i16, ptr %37, align 2, !tbaa !15
  %2429 = sext i16 %2428 to i32
  %2430 = sitofp i32 %2429 to double
  %2431 = fcmp olt double -1.000000e+00, %2430
  br i1 %2431, label %2432, label %2455

2432:                                             ; preds = %2427
  %2433 = load i16, ptr %37, align 2, !tbaa !15
  %2434 = sext i16 %2433 to i32
  %2435 = sitofp i32 %2434 to double
  %2436 = fcmp ole double %2435, 1.000000e+00
  br i1 %2436, label %2437, label %2441

2437:                                             ; preds = %2432
  %2438 = load i16, ptr %37, align 2, !tbaa !15
  %2439 = sext i16 %2438 to i32
  %2440 = sitofp i32 %2439 to double
  br label %2453

2441:                                             ; preds = %2432
  %2442 = load i16, ptr %37, align 2, !tbaa !15
  %2443 = sext i16 %2442 to i32
  %2444 = sitofp i32 %2443 to double
  %2445 = fcmp olt double %2444, 1.000000e+00
  br i1 %2445, label %2446, label %2450

2446:                                             ; preds = %2441
  %2447 = load i16, ptr %37, align 2, !tbaa !15
  %2448 = sext i16 %2447 to i32
  %2449 = sitofp i32 %2448 to double
  br label %2451

2450:                                             ; preds = %2441
  br label %2451

2451:                                             ; preds = %2450, %2446
  %2452 = phi double [ %2449, %2446 ], [ 1.000000e+00, %2450 ]
  br label %2453

2453:                                             ; preds = %2451, %2437
  %2454 = phi double [ %2440, %2437 ], [ %2452, %2451 ]
  br label %2467

2455:                                             ; preds = %2427
  %2456 = load i16, ptr %37, align 2, !tbaa !15
  %2457 = sext i16 %2456 to i32
  %2458 = sitofp i32 %2457 to double
  %2459 = fcmp olt double -1.000000e+00, %2458
  br i1 %2459, label %2460, label %2464

2460:                                             ; preds = %2455
  %2461 = load i16, ptr %37, align 2, !tbaa !15
  %2462 = sext i16 %2461 to i32
  %2463 = sitofp i32 %2462 to double
  br label %2465

2464:                                             ; preds = %2455
  br label %2465

2465:                                             ; preds = %2464, %2460
  %2466 = phi double [ %2463, %2460 ], [ -1.000000e+00, %2464 ]
  br label %2467

2467:                                             ; preds = %2465, %2453
  %2468 = phi double [ %2454, %2453 ], [ %2466, %2465 ]
  %2469 = load ptr, ptr %7, align 8, !tbaa !5
  store double %2468, ptr %2469, align 8, !tbaa !11
  br label %2474

2470:                                             ; preds = %2423
  %2471 = load i16, ptr %37, align 2, !tbaa !15
  %2472 = sitofp i16 %2471 to double
  %2473 = load ptr, ptr %7, align 8, !tbaa !5
  store double %2472, ptr %2473, align 8, !tbaa !11
  br label %2474

2474:                                             ; preds = %2470, %2467
  br label %2475

2475:                                             ; preds = %2474, %2389
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #3
  br label %2476

2476:                                             ; preds = %2475
  br label %2477

2477:                                             ; preds = %2476
  br label %5031

2478:                                             ; preds = %1428
  br label %2479

2479:                                             ; preds = %2478
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #3
  store double 0.000000e+00, ptr %47, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #3
  %2480 = load ptr, ptr %10, align 8, !tbaa !5
  %2481 = load i8, ptr %2480, align 1, !tbaa !17
  store i8 %2481, ptr %48, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #3
  store double 0.000000e+00, ptr %49, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #3
  store double 0.000000e+00, ptr %50, align 8, !tbaa !11
  %2482 = load ptr, ptr %11, align 8, !tbaa !5
  %2483 = icmp ne ptr null, %2482
  br i1 %2483, label %2484, label %2510

2484:                                             ; preds = %2479
  %2485 = load ptr, ptr %12, align 8, !tbaa !5
  %2486 = icmp ne ptr null, %2485
  br i1 %2486, label %2487, label %2502

2487:                                             ; preds = %2484
  %2488 = load ptr, ptr %11, align 8, !tbaa !5
  %2489 = load i8, ptr %2488, align 1, !tbaa !17
  %2490 = sext i8 %2489 to i32
  %2491 = load i8, ptr %48, align 1, !tbaa !17
  %2492 = sext i8 %2491 to i32
  %2493 = icmp sle i32 %2490, %2492
  br i1 %2493, label %2494, label %2502

2494:                                             ; preds = %2487
  %2495 = load i8, ptr %48, align 1, !tbaa !17
  %2496 = sext i8 %2495 to i32
  %2497 = load ptr, ptr %12, align 8, !tbaa !5
  %2498 = load i8, ptr %2497, align 1, !tbaa !17
  %2499 = sext i8 %2498 to i32
  %2500 = icmp sle i32 %2496, %2499
  br i1 %2500, label %2501, label %2502

2501:                                             ; preds = %2494
  br label %2503

2502:                                             ; preds = %2494, %2487, %2484
  call void @__assert_fail(ptr noundef @.str.45, ptr noundef @.str.24, i32 noundef 467, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

2503:                                             ; preds = %2501
  %2504 = load ptr, ptr %11, align 8, !tbaa !5
  %2505 = load i8, ptr %2504, align 1, !tbaa !17
  %2506 = sitofp i8 %2505 to double
  store double %2506, ptr %49, align 8, !tbaa !11
  %2507 = load ptr, ptr %12, align 8, !tbaa !5
  %2508 = load i8, ptr %2507, align 1, !tbaa !17
  %2509 = sitofp i8 %2508 to double
  store double %2509, ptr %50, align 8, !tbaa !11
  br label %2510

2510:                                             ; preds = %2503, %2479
  %2511 = load i32, ptr %8, align 4, !tbaa !9
  %2512 = icmp ule i32 6, %2511
  br i1 %2512, label %2513, label %2750

2513:                                             ; preds = %2510
  %2514 = load double, ptr %49, align 8, !tbaa !11
  %2515 = load double, ptr %50, align 8, !tbaa !11
  %2516 = fcmp olt double %2514, %2515
  br i1 %2516, label %2517, label %2750

2517:                                             ; preds = %2513
  %2518 = load i32, ptr %8, align 4, !tbaa !9
  %2519 = icmp ule i32 15, %2518
  br i1 %2519, label %2520, label %2574

2520:                                             ; preds = %2517
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #3
  %2521 = load double, ptr %49, align 8, !tbaa !11
  %2522 = fcmp olt double 0.000000e+00, %2521
  br i1 %2522, label %2523, label %2525

2523:                                             ; preds = %2520
  %2524 = load double, ptr %49, align 8, !tbaa !11
  br label %2526

2525:                                             ; preds = %2520
  br label %2526

2526:                                             ; preds = %2525, %2523
  %2527 = phi double [ %2524, %2523 ], [ 0.000000e+00, %2525 ]
  store double %2527, ptr %51, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #3
  %2528 = load double, ptr %50, align 8, !tbaa !11
  %2529 = fcmp olt double 0.000000e+00, %2528
  br i1 %2529, label %2530, label %2532

2530:                                             ; preds = %2526
  %2531 = load double, ptr %50, align 8, !tbaa !11
  br label %2533

2532:                                             ; preds = %2526
  br label %2533

2533:                                             ; preds = %2532, %2530
  %2534 = phi double [ %2531, %2530 ], [ 0.000000e+00, %2532 ]
  store double %2534, ptr %52, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #3
  %2535 = load double, ptr %51, align 8, !tbaa !11
  %2536 = load double, ptr %52, align 8, !tbaa !11
  %2537 = fcmp olt double %2535, %2536
  br i1 %2537, label %2538, label %2546

2538:                                             ; preds = %2533
  %2539 = load double, ptr %50, align 8, !tbaa !11
  %2540 = load double, ptr %49, align 8, !tbaa !11
  %2541 = fsub double %2539, %2540
  %2542 = load double, ptr %52, align 8, !tbaa !11
  %2543 = load double, ptr %51, align 8, !tbaa !11
  %2544 = fsub double %2542, %2543
  %2545 = fdiv double %2541, %2544
  br label %2547

2546:                                             ; preds = %2533
  br label %2547

2547:                                             ; preds = %2546, %2538
  %2548 = phi double [ %2545, %2538 ], [ 1.000000e+00, %2546 ]
  store double %2548, ptr %53, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #3
  %2549 = load double, ptr %53, align 8, !tbaa !11
  %2550 = load i8, ptr %48, align 1, !tbaa !17
  %2551 = sext i8 %2550 to i32
  %2552 = icmp slt i32 0, %2551
  br i1 %2552, label %2553, label %2556

2553:                                             ; preds = %2547
  %2554 = load i8, ptr %48, align 1, !tbaa !17
  %2555 = sext i8 %2554 to i32
  br label %2557

2556:                                             ; preds = %2547
  br label %2557

2557:                                             ; preds = %2556, %2553
  %2558 = phi i32 [ %2555, %2553 ], [ 0, %2556 ]
  %2559 = sitofp i32 %2558 to double
  %2560 = fmul double %2549, %2559
  store double %2560, ptr %54, align 8, !tbaa !11
  %2561 = load double, ptr %54, align 8, !tbaa !11
  %2562 = fcmp ole double 0.000000e+00, %2561
  br i1 %2562, label %2563, label %2566

2563:                                             ; preds = %2557
  %2564 = load double, ptr %54, align 8, !tbaa !11
  %2565 = fadd double %2564, 0.000000e+00
  br label %2569

2566:                                             ; preds = %2557
  %2567 = load double, ptr %54, align 8, !tbaa !11
  %2568 = fsub double %2567, 0.000000e+00
  br label %2569

2569:                                             ; preds = %2566, %2563
  %2570 = phi double [ %2565, %2563 ], [ %2568, %2566 ]
  %2571 = fptosi double %2570 to i8
  store i8 %2571, ptr %48, align 1, !tbaa !17
  %2572 = load double, ptr %51, align 8, !tbaa !11
  store double %2572, ptr %49, align 8, !tbaa !11
  %2573 = load double, ptr %52, align 8, !tbaa !11
  store double %2573, ptr %50, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #3
  br label %2630

2574:                                             ; preds = %2517
  %2575 = load i32, ptr %8, align 4, !tbaa !9
  %2576 = icmp ugt i32 6, %2575
  br i1 %2576, label %2605, label %2577

2577:                                             ; preds = %2574
  %2578 = load i32, ptr %8, align 4, !tbaa !9
  %2579 = icmp ugt i32 15, %2578
  br i1 %2579, label %2580, label %2591

2580:                                             ; preds = %2577
  %2581 = load i32, ptr %9, align 4, !tbaa !9
  %2582 = icmp ugt i32 15, %2581
  br i1 %2582, label %2583, label %2588

2583:                                             ; preds = %2580
  %2584 = load i32, ptr %9, align 4, !tbaa !9
  %2585 = load i32, ptr %8, align 4, !tbaa !9
  %2586 = icmp ugt i32 %2584, %2585
  %2587 = zext i1 %2586 to i32
  br label %2589

2588:                                             ; preds = %2580
  br label %2589

2589:                                             ; preds = %2588, %2583
  %2590 = phi i32 [ %2587, %2583 ], [ 0, %2588 ]
  br label %2602

2591:                                             ; preds = %2577
  %2592 = load i32, ptr %9, align 4, !tbaa !9
  %2593 = icmp ugt i32 15, %2592
  br i1 %2593, label %2594, label %2595

2594:                                             ; preds = %2591
  br label %2600

2595:                                             ; preds = %2591
  %2596 = load i32, ptr %9, align 4, !tbaa !9
  %2597 = load i32, ptr %8, align 4, !tbaa !9
  %2598 = icmp ugt i32 %2596, %2597
  %2599 = zext i1 %2598 to i32
  br label %2600

2600:                                             ; preds = %2595, %2594
  %2601 = phi i32 [ 0, %2594 ], [ %2599, %2595 ]
  br label %2602

2602:                                             ; preds = %2600, %2589
  %2603 = phi i32 [ %2590, %2589 ], [ %2601, %2600 ]
  %2604 = icmp ne i32 %2603, 0
  br label %2605

2605:                                             ; preds = %2602, %2574
  %2606 = phi i1 [ true, %2574 ], [ %2604, %2602 ]
  %2607 = zext i1 %2606 to i32
  %2608 = icmp eq i32 0, %2607
  br i1 %2608, label %2609, label %2629

2609:                                             ; preds = %2605
  %2610 = load double, ptr %49, align 8, !tbaa !11
  %2611 = fcmp ogt double 0.000000e+00, %2610
  br i1 %2611, label %2612, label %2629

2612:                                             ; preds = %2609
  %2613 = load double, ptr %50, align 8, !tbaa !11
  %2614 = fcmp olt double 0.000000e+00, %2613
  br i1 %2614, label %2615, label %2629

2615:                                             ; preds = %2612
  %2616 = load double, ptr %49, align 8, !tbaa !11
  %2617 = fneg double %2616
  %2618 = load double, ptr %50, align 8, !tbaa !11
  %2619 = fcmp olt double %2617, %2618
  br i1 %2619, label %2620, label %2622

2620:                                             ; preds = %2615
  %2621 = load double, ptr %50, align 8, !tbaa !11
  br label %2625

2622:                                             ; preds = %2615
  %2623 = load double, ptr %49, align 8, !tbaa !11
  %2624 = fneg double %2623
  br label %2625

2625:                                             ; preds = %2622, %2620
  %2626 = phi double [ %2621, %2620 ], [ %2624, %2622 ]
  store double %2626, ptr %50, align 8, !tbaa !11
  %2627 = load double, ptr %50, align 8, !tbaa !11
  %2628 = fneg double %2627
  store double %2628, ptr %49, align 8, !tbaa !11
  br label %2629

2629:                                             ; preds = %2625, %2612, %2609, %2605
  br label %2630

2630:                                             ; preds = %2629, %2569
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #3
  %2631 = load double, ptr %49, align 8, !tbaa !11
  %2632 = fcmp ole double 0.000000e+00, %2631
  %2633 = zext i1 %2632 to i64
  %2634 = select i1 %2632, double 0.000000e+00, double -1.000000e+00
  store double %2634, ptr %55, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #3
  %2635 = load double, ptr %50, align 8, !tbaa !11
  %2636 = fcmp ole double 0.000000e+00, %2635
  %2637 = zext i1 %2636 to i64
  %2638 = select i1 %2636, double 1.000000e+00, double 0.000000e+00
  store double %2638, ptr %56, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #3
  %2639 = load i8, ptr %48, align 1, !tbaa !17
  %2640 = sitofp i8 %2639 to double
  %2641 = load double, ptr %49, align 8, !tbaa !11
  %2642 = fsub double %2640, %2641
  %2643 = load double, ptr %56, align 8, !tbaa !11
  %2644 = load double, ptr %55, align 8, !tbaa !11
  %2645 = fsub double %2643, %2644
  %2646 = fmul double %2642, %2645
  %2647 = load double, ptr %50, align 8, !tbaa !11
  %2648 = load double, ptr %49, align 8, !tbaa !11
  %2649 = fsub double %2647, %2648
  %2650 = fdiv double %2646, %2649
  %2651 = load double, ptr %55, align 8, !tbaa !11
  %2652 = fadd double %2650, %2651
  store double %2652, ptr %57, align 8, !tbaa !11
  %2653 = load double, ptr %55, align 8, !tbaa !11
  %2654 = load double, ptr %57, align 8, !tbaa !11
  %2655 = fcmp ole double 0.000000e+00, %2654
  br i1 %2655, label %2656, label %2659

2656:                                             ; preds = %2630
  %2657 = load double, ptr %57, align 8, !tbaa !11
  %2658 = fadd double %2657, 0.000000e+00
  br label %2662

2659:                                             ; preds = %2630
  %2660 = load double, ptr %57, align 8, !tbaa !11
  %2661 = fsub double %2660, 0.000000e+00
  br label %2662

2662:                                             ; preds = %2659, %2656
  %2663 = phi double [ %2658, %2656 ], [ %2661, %2659 ]
  %2664 = fcmp olt double %2653, %2663
  br i1 %2664, label %2665, label %2719

2665:                                             ; preds = %2662
  %2666 = load double, ptr %57, align 8, !tbaa !11
  %2667 = fcmp ole double 0.000000e+00, %2666
  br i1 %2667, label %2668, label %2671

2668:                                             ; preds = %2665
  %2669 = load double, ptr %57, align 8, !tbaa !11
  %2670 = fadd double %2669, 0.000000e+00
  br label %2674

2671:                                             ; preds = %2665
  %2672 = load double, ptr %57, align 8, !tbaa !11
  %2673 = fsub double %2672, 0.000000e+00
  br label %2674

2674:                                             ; preds = %2671, %2668
  %2675 = phi double [ %2670, %2668 ], [ %2673, %2671 ]
  %2676 = load double, ptr %56, align 8, !tbaa !11
  %2677 = fcmp ole double %2675, %2676
  br i1 %2677, label %2678, label %2689

2678:                                             ; preds = %2674
  %2679 = load double, ptr %57, align 8, !tbaa !11
  %2680 = fcmp ole double 0.000000e+00, %2679
  br i1 %2680, label %2681, label %2684

2681:                                             ; preds = %2678
  %2682 = load double, ptr %57, align 8, !tbaa !11
  %2683 = fadd double %2682, 0.000000e+00
  br label %2687

2684:                                             ; preds = %2678
  %2685 = load double, ptr %57, align 8, !tbaa !11
  %2686 = fsub double %2685, 0.000000e+00
  br label %2687

2687:                                             ; preds = %2684, %2681
  %2688 = phi double [ %2683, %2681 ], [ %2686, %2684 ]
  br label %2717

2689:                                             ; preds = %2674
  %2690 = load double, ptr %57, align 8, !tbaa !11
  %2691 = fcmp ole double 0.000000e+00, %2690
  br i1 %2691, label %2692, label %2695

2692:                                             ; preds = %2689
  %2693 = load double, ptr %57, align 8, !tbaa !11
  %2694 = fadd double %2693, 0.000000e+00
  br label %2698

2695:                                             ; preds = %2689
  %2696 = load double, ptr %57, align 8, !tbaa !11
  %2697 = fsub double %2696, 0.000000e+00
  br label %2698

2698:                                             ; preds = %2695, %2692
  %2699 = phi double [ %2694, %2692 ], [ %2697, %2695 ]
  %2700 = load double, ptr %56, align 8, !tbaa !11
  %2701 = fcmp olt double %2699, %2700
  br i1 %2701, label %2702, label %2713

2702:                                             ; preds = %2698
  %2703 = load double, ptr %57, align 8, !tbaa !11
  %2704 = fcmp ole double 0.000000e+00, %2703
  br i1 %2704, label %2705, label %2708

2705:                                             ; preds = %2702
  %2706 = load double, ptr %57, align 8, !tbaa !11
  %2707 = fadd double %2706, 0.000000e+00
  br label %2711

2708:                                             ; preds = %2702
  %2709 = load double, ptr %57, align 8, !tbaa !11
  %2710 = fsub double %2709, 0.000000e+00
  br label %2711

2711:                                             ; preds = %2708, %2705
  %2712 = phi double [ %2707, %2705 ], [ %2710, %2708 ]
  br label %2715

2713:                                             ; preds = %2698
  %2714 = load double, ptr %56, align 8, !tbaa !11
  br label %2715

2715:                                             ; preds = %2713, %2711
  %2716 = phi double [ %2712, %2711 ], [ %2714, %2713 ]
  br label %2717

2717:                                             ; preds = %2715, %2687
  %2718 = phi double [ %2688, %2687 ], [ %2716, %2715 ]
  br label %2747

2719:                                             ; preds = %2662
  %2720 = load double, ptr %55, align 8, !tbaa !11
  %2721 = load double, ptr %57, align 8, !tbaa !11
  %2722 = fcmp ole double 0.000000e+00, %2721
  br i1 %2722, label %2723, label %2726

2723:                                             ; preds = %2719
  %2724 = load double, ptr %57, align 8, !tbaa !11
  %2725 = fadd double %2724, 0.000000e+00
  br label %2729

2726:                                             ; preds = %2719
  %2727 = load double, ptr %57, align 8, !tbaa !11
  %2728 = fsub double %2727, 0.000000e+00
  br label %2729

2729:                                             ; preds = %2726, %2723
  %2730 = phi double [ %2725, %2723 ], [ %2728, %2726 ]
  %2731 = fcmp olt double %2720, %2730
  br i1 %2731, label %2732, label %2743

2732:                                             ; preds = %2729
  %2733 = load double, ptr %57, align 8, !tbaa !11
  %2734 = fcmp ole double 0.000000e+00, %2733
  br i1 %2734, label %2735, label %2738

2735:                                             ; preds = %2732
  %2736 = load double, ptr %57, align 8, !tbaa !11
  %2737 = fadd double %2736, 0.000000e+00
  br label %2741

2738:                                             ; preds = %2732
  %2739 = load double, ptr %57, align 8, !tbaa !11
  %2740 = fsub double %2739, 0.000000e+00
  br label %2741

2741:                                             ; preds = %2738, %2735
  %2742 = phi double [ %2737, %2735 ], [ %2740, %2738 ]
  br label %2745

2743:                                             ; preds = %2729
  %2744 = load double, ptr %55, align 8, !tbaa !11
  br label %2745

2745:                                             ; preds = %2743, %2741
  %2746 = phi double [ %2742, %2741 ], [ %2744, %2743 ]
  br label %2747

2747:                                             ; preds = %2745, %2717
  %2748 = phi double [ %2718, %2717 ], [ %2746, %2745 ]
  %2749 = load ptr, ptr %7, align 8, !tbaa !5
  store double %2748, ptr %2749, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #3
  br label %2833

2750:                                             ; preds = %2513, %2510
  %2751 = load i32, ptr %8, align 4, !tbaa !9
  %2752 = icmp ugt i32 6, %2751
  br i1 %2752, label %2781, label %2753

2753:                                             ; preds = %2750
  %2754 = load i32, ptr %8, align 4, !tbaa !9
  %2755 = icmp ugt i32 15, %2754
  br i1 %2755, label %2756, label %2767

2756:                                             ; preds = %2753
  %2757 = load i32, ptr %9, align 4, !tbaa !9
  %2758 = icmp ugt i32 15, %2757
  br i1 %2758, label %2759, label %2764

2759:                                             ; preds = %2756
  %2760 = load i32, ptr %9, align 4, !tbaa !9
  %2761 = load i32, ptr %8, align 4, !tbaa !9
  %2762 = icmp ugt i32 %2760, %2761
  %2763 = zext i1 %2762 to i32
  br label %2765

2764:                                             ; preds = %2756
  br label %2765

2765:                                             ; preds = %2764, %2759
  %2766 = phi i32 [ %2763, %2759 ], [ 0, %2764 ]
  br label %2778

2767:                                             ; preds = %2753
  %2768 = load i32, ptr %9, align 4, !tbaa !9
  %2769 = icmp ugt i32 15, %2768
  br i1 %2769, label %2770, label %2771

2770:                                             ; preds = %2767
  br label %2776

2771:                                             ; preds = %2767
  %2772 = load i32, ptr %9, align 4, !tbaa !9
  %2773 = load i32, ptr %8, align 4, !tbaa !9
  %2774 = icmp ugt i32 %2772, %2773
  %2775 = zext i1 %2774 to i32
  br label %2776

2776:                                             ; preds = %2771, %2770
  %2777 = phi i32 [ 0, %2770 ], [ %2775, %2771 ]
  br label %2778

2778:                                             ; preds = %2776, %2765
  %2779 = phi i32 [ %2766, %2765 ], [ %2777, %2776 ]
  %2780 = icmp ne i32 %2779, 0
  br label %2781

2781:                                             ; preds = %2778, %2750
  %2782 = phi i1 [ true, %2750 ], [ %2780, %2778 ]
  %2783 = zext i1 %2782 to i32
  %2784 = icmp eq i32 0, %2783
  br i1 %2784, label %2785, label %2828

2785:                                             ; preds = %2781
  %2786 = load i8, ptr %48, align 1, !tbaa !17
  %2787 = sext i8 %2786 to i32
  %2788 = sitofp i32 %2787 to double
  %2789 = fcmp olt double -1.000000e+00, %2788
  br i1 %2789, label %2790, label %2813

2790:                                             ; preds = %2785
  %2791 = load i8, ptr %48, align 1, !tbaa !17
  %2792 = sext i8 %2791 to i32
  %2793 = sitofp i32 %2792 to double
  %2794 = fcmp ole double %2793, 1.000000e+00
  br i1 %2794, label %2795, label %2799

2795:                                             ; preds = %2790
  %2796 = load i8, ptr %48, align 1, !tbaa !17
  %2797 = sext i8 %2796 to i32
  %2798 = sitofp i32 %2797 to double
  br label %2811

2799:                                             ; preds = %2790
  %2800 = load i8, ptr %48, align 1, !tbaa !17
  %2801 = sext i8 %2800 to i32
  %2802 = sitofp i32 %2801 to double
  %2803 = fcmp olt double %2802, 1.000000e+00
  br i1 %2803, label %2804, label %2808

2804:                                             ; preds = %2799
  %2805 = load i8, ptr %48, align 1, !tbaa !17
  %2806 = sext i8 %2805 to i32
  %2807 = sitofp i32 %2806 to double
  br label %2809

2808:                                             ; preds = %2799
  br label %2809

2809:                                             ; preds = %2808, %2804
  %2810 = phi double [ %2807, %2804 ], [ 1.000000e+00, %2808 ]
  br label %2811

2811:                                             ; preds = %2809, %2795
  %2812 = phi double [ %2798, %2795 ], [ %2810, %2809 ]
  br label %2825

2813:                                             ; preds = %2785
  %2814 = load i8, ptr %48, align 1, !tbaa !17
  %2815 = sext i8 %2814 to i32
  %2816 = sitofp i32 %2815 to double
  %2817 = fcmp olt double -1.000000e+00, %2816
  br i1 %2817, label %2818, label %2822

2818:                                             ; preds = %2813
  %2819 = load i8, ptr %48, align 1, !tbaa !17
  %2820 = sext i8 %2819 to i32
  %2821 = sitofp i32 %2820 to double
  br label %2823

2822:                                             ; preds = %2813
  br label %2823

2823:                                             ; preds = %2822, %2818
  %2824 = phi double [ %2821, %2818 ], [ -1.000000e+00, %2822 ]
  br label %2825

2825:                                             ; preds = %2823, %2811
  %2826 = phi double [ %2812, %2811 ], [ %2824, %2823 ]
  %2827 = load ptr, ptr %7, align 8, !tbaa !5
  store double %2826, ptr %2827, align 8, !tbaa !11
  br label %2832

2828:                                             ; preds = %2781
  %2829 = load i8, ptr %48, align 1, !tbaa !17
  %2830 = sitofp i8 %2829 to double
  %2831 = load ptr, ptr %7, align 8, !tbaa !5
  store double %2830, ptr %2831, align 8, !tbaa !11
  br label %2832

2832:                                             ; preds = %2828, %2825
  br label %2833

2833:                                             ; preds = %2832, %2747
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #3
  br label %2834

2834:                                             ; preds = %2833
  br label %2835

2835:                                             ; preds = %2834
  br label %5031

2836:                                             ; preds = %1428
  br label %2837

2837:                                             ; preds = %2836
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #3
  store double 0.000000e+00, ptr %58, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #3
  %2838 = load ptr, ptr %10, align 8, !tbaa !5
  %2839 = load i64, ptr %2838, align 8, !tbaa !13
  store i64 %2839, ptr %59, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #3
  store double 0.000000e+00, ptr %60, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #3
  store double 0.000000e+00, ptr %61, align 8, !tbaa !11
  %2840 = load ptr, ptr %11, align 8, !tbaa !5
  %2841 = icmp ne ptr null, %2840
  br i1 %2841, label %2842, label %2864

2842:                                             ; preds = %2837
  %2843 = load ptr, ptr %12, align 8, !tbaa !5
  %2844 = icmp ne ptr null, %2843
  br i1 %2844, label %2845, label %2856

2845:                                             ; preds = %2842
  %2846 = load ptr, ptr %11, align 8, !tbaa !5
  %2847 = load i64, ptr %2846, align 8, !tbaa !13
  %2848 = load i64, ptr %59, align 8, !tbaa !13
  %2849 = icmp ule i64 %2847, %2848
  br i1 %2849, label %2850, label %2856

2850:                                             ; preds = %2845
  %2851 = load i64, ptr %59, align 8, !tbaa !13
  %2852 = load ptr, ptr %12, align 8, !tbaa !5
  %2853 = load i64, ptr %2852, align 8, !tbaa !13
  %2854 = icmp ule i64 %2851, %2853
  br i1 %2854, label %2855, label %2856

2855:                                             ; preds = %2850
  br label %2857

2856:                                             ; preds = %2850, %2845, %2842
  call void @__assert_fail(ptr noundef @.str.46, ptr noundef @.str.24, i32 noundef 467, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

2857:                                             ; preds = %2855
  %2858 = load ptr, ptr %11, align 8, !tbaa !5
  %2859 = load i64, ptr %2858, align 8, !tbaa !13
  %2860 = uitofp i64 %2859 to double
  store double %2860, ptr %60, align 8, !tbaa !11
  %2861 = load ptr, ptr %12, align 8, !tbaa !5
  %2862 = load i64, ptr %2861, align 8, !tbaa !13
  %2863 = uitofp i64 %2862 to double
  store double %2863, ptr %61, align 8, !tbaa !11
  br label %2864

2864:                                             ; preds = %2857, %2837
  %2865 = load i32, ptr %8, align 4, !tbaa !9
  %2866 = icmp ule i32 6, %2865
  br i1 %2866, label %2867, label %3102

2867:                                             ; preds = %2864
  %2868 = load double, ptr %60, align 8, !tbaa !11
  %2869 = load double, ptr %61, align 8, !tbaa !11
  %2870 = fcmp olt double %2868, %2869
  br i1 %2870, label %2871, label %3102

2871:                                             ; preds = %2867
  %2872 = load i32, ptr %8, align 4, !tbaa !9
  %2873 = icmp ule i32 15, %2872
  br i1 %2873, label %2874, label %2926

2874:                                             ; preds = %2871
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #3
  %2875 = load double, ptr %60, align 8, !tbaa !11
  %2876 = fcmp olt double 0.000000e+00, %2875
  br i1 %2876, label %2877, label %2879

2877:                                             ; preds = %2874
  %2878 = load double, ptr %60, align 8, !tbaa !11
  br label %2880

2879:                                             ; preds = %2874
  br label %2880

2880:                                             ; preds = %2879, %2877
  %2881 = phi double [ %2878, %2877 ], [ 0.000000e+00, %2879 ]
  store double %2881, ptr %62, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #3
  %2882 = load double, ptr %61, align 8, !tbaa !11
  %2883 = fcmp olt double 0.000000e+00, %2882
  br i1 %2883, label %2884, label %2886

2884:                                             ; preds = %2880
  %2885 = load double, ptr %61, align 8, !tbaa !11
  br label %2887

2886:                                             ; preds = %2880
  br label %2887

2887:                                             ; preds = %2886, %2884
  %2888 = phi double [ %2885, %2884 ], [ 0.000000e+00, %2886 ]
  store double %2888, ptr %63, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #3
  %2889 = load double, ptr %62, align 8, !tbaa !11
  %2890 = load double, ptr %63, align 8, !tbaa !11
  %2891 = fcmp olt double %2889, %2890
  br i1 %2891, label %2892, label %2900

2892:                                             ; preds = %2887
  %2893 = load double, ptr %61, align 8, !tbaa !11
  %2894 = load double, ptr %60, align 8, !tbaa !11
  %2895 = fsub double %2893, %2894
  %2896 = load double, ptr %63, align 8, !tbaa !11
  %2897 = load double, ptr %62, align 8, !tbaa !11
  %2898 = fsub double %2896, %2897
  %2899 = fdiv double %2895, %2898
  br label %2901

2900:                                             ; preds = %2887
  br label %2901

2901:                                             ; preds = %2900, %2892
  %2902 = phi double [ %2899, %2892 ], [ 1.000000e+00, %2900 ]
  store double %2902, ptr %64, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #3
  %2903 = load double, ptr %64, align 8, !tbaa !11
  %2904 = load i64, ptr %59, align 8, !tbaa !13
  %2905 = icmp ult i64 0, %2904
  br i1 %2905, label %2906, label %2908

2906:                                             ; preds = %2901
  %2907 = load i64, ptr %59, align 8, !tbaa !13
  br label %2909

2908:                                             ; preds = %2901
  br label %2909

2909:                                             ; preds = %2908, %2906
  %2910 = phi i64 [ %2907, %2906 ], [ 0, %2908 ]
  %2911 = uitofp i64 %2910 to double
  %2912 = fmul double %2903, %2911
  store double %2912, ptr %65, align 8, !tbaa !11
  %2913 = load double, ptr %65, align 8, !tbaa !11
  %2914 = fcmp ole double 0.000000e+00, %2913
  br i1 %2914, label %2915, label %2918

2915:                                             ; preds = %2909
  %2916 = load double, ptr %65, align 8, !tbaa !11
  %2917 = fadd double %2916, 0.000000e+00
  br label %2921

2918:                                             ; preds = %2909
  %2919 = load double, ptr %65, align 8, !tbaa !11
  %2920 = fsub double %2919, 0.000000e+00
  br label %2921

2921:                                             ; preds = %2918, %2915
  %2922 = phi double [ %2917, %2915 ], [ %2920, %2918 ]
  %2923 = fptoui double %2922 to i64
  store i64 %2923, ptr %59, align 8, !tbaa !13
  %2924 = load double, ptr %62, align 8, !tbaa !11
  store double %2924, ptr %60, align 8, !tbaa !11
  %2925 = load double, ptr %63, align 8, !tbaa !11
  store double %2925, ptr %61, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #3
  br label %2982

2926:                                             ; preds = %2871
  %2927 = load i32, ptr %8, align 4, !tbaa !9
  %2928 = icmp ugt i32 6, %2927
  br i1 %2928, label %2957, label %2929

2929:                                             ; preds = %2926
  %2930 = load i32, ptr %8, align 4, !tbaa !9
  %2931 = icmp ugt i32 15, %2930
  br i1 %2931, label %2932, label %2943

2932:                                             ; preds = %2929
  %2933 = load i32, ptr %9, align 4, !tbaa !9
  %2934 = icmp ugt i32 15, %2933
  br i1 %2934, label %2935, label %2940

2935:                                             ; preds = %2932
  %2936 = load i32, ptr %9, align 4, !tbaa !9
  %2937 = load i32, ptr %8, align 4, !tbaa !9
  %2938 = icmp ugt i32 %2936, %2937
  %2939 = zext i1 %2938 to i32
  br label %2941

2940:                                             ; preds = %2932
  br label %2941

2941:                                             ; preds = %2940, %2935
  %2942 = phi i32 [ %2939, %2935 ], [ 0, %2940 ]
  br label %2954

2943:                                             ; preds = %2929
  %2944 = load i32, ptr %9, align 4, !tbaa !9
  %2945 = icmp ugt i32 15, %2944
  br i1 %2945, label %2946, label %2947

2946:                                             ; preds = %2943
  br label %2952

2947:                                             ; preds = %2943
  %2948 = load i32, ptr %9, align 4, !tbaa !9
  %2949 = load i32, ptr %8, align 4, !tbaa !9
  %2950 = icmp ugt i32 %2948, %2949
  %2951 = zext i1 %2950 to i32
  br label %2952

2952:                                             ; preds = %2947, %2946
  %2953 = phi i32 [ 0, %2946 ], [ %2951, %2947 ]
  br label %2954

2954:                                             ; preds = %2952, %2941
  %2955 = phi i32 [ %2942, %2941 ], [ %2953, %2952 ]
  %2956 = icmp ne i32 %2955, 0
  br label %2957

2957:                                             ; preds = %2954, %2926
  %2958 = phi i1 [ true, %2926 ], [ %2956, %2954 ]
  %2959 = zext i1 %2958 to i32
  %2960 = icmp eq i32 0, %2959
  br i1 %2960, label %2961, label %2981

2961:                                             ; preds = %2957
  %2962 = load double, ptr %60, align 8, !tbaa !11
  %2963 = fcmp ogt double 0.000000e+00, %2962
  br i1 %2963, label %2964, label %2981

2964:                                             ; preds = %2961
  %2965 = load double, ptr %61, align 8, !tbaa !11
  %2966 = fcmp olt double 0.000000e+00, %2965
  br i1 %2966, label %2967, label %2981

2967:                                             ; preds = %2964
  %2968 = load double, ptr %60, align 8, !tbaa !11
  %2969 = fneg double %2968
  %2970 = load double, ptr %61, align 8, !tbaa !11
  %2971 = fcmp olt double %2969, %2970
  br i1 %2971, label %2972, label %2974

2972:                                             ; preds = %2967
  %2973 = load double, ptr %61, align 8, !tbaa !11
  br label %2977

2974:                                             ; preds = %2967
  %2975 = load double, ptr %60, align 8, !tbaa !11
  %2976 = fneg double %2975
  br label %2977

2977:                                             ; preds = %2974, %2972
  %2978 = phi double [ %2973, %2972 ], [ %2976, %2974 ]
  store double %2978, ptr %61, align 8, !tbaa !11
  %2979 = load double, ptr %61, align 8, !tbaa !11
  %2980 = fneg double %2979
  store double %2980, ptr %60, align 8, !tbaa !11
  br label %2981

2981:                                             ; preds = %2977, %2964, %2961, %2957
  br label %2982

2982:                                             ; preds = %2981, %2921
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #3
  %2983 = load double, ptr %60, align 8, !tbaa !11
  %2984 = fcmp ole double 0.000000e+00, %2983
  %2985 = zext i1 %2984 to i64
  %2986 = select i1 %2984, double 0.000000e+00, double -1.000000e+00
  store double %2986, ptr %66, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #3
  %2987 = load double, ptr %61, align 8, !tbaa !11
  %2988 = fcmp ole double 0.000000e+00, %2987
  %2989 = zext i1 %2988 to i64
  %2990 = select i1 %2988, double 1.000000e+00, double 0.000000e+00
  store double %2990, ptr %67, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #3
  %2991 = load i64, ptr %59, align 8, !tbaa !13
  %2992 = uitofp i64 %2991 to double
  %2993 = load double, ptr %60, align 8, !tbaa !11
  %2994 = fsub double %2992, %2993
  %2995 = load double, ptr %67, align 8, !tbaa !11
  %2996 = load double, ptr %66, align 8, !tbaa !11
  %2997 = fsub double %2995, %2996
  %2998 = fmul double %2994, %2997
  %2999 = load double, ptr %61, align 8, !tbaa !11
  %3000 = load double, ptr %60, align 8, !tbaa !11
  %3001 = fsub double %2999, %3000
  %3002 = fdiv double %2998, %3001
  %3003 = load double, ptr %66, align 8, !tbaa !11
  %3004 = fadd double %3002, %3003
  store double %3004, ptr %68, align 8, !tbaa !11
  %3005 = load double, ptr %66, align 8, !tbaa !11
  %3006 = load double, ptr %68, align 8, !tbaa !11
  %3007 = fcmp ole double 0.000000e+00, %3006
  br i1 %3007, label %3008, label %3011

3008:                                             ; preds = %2982
  %3009 = load double, ptr %68, align 8, !tbaa !11
  %3010 = fadd double %3009, 0.000000e+00
  br label %3014

3011:                                             ; preds = %2982
  %3012 = load double, ptr %68, align 8, !tbaa !11
  %3013 = fsub double %3012, 0.000000e+00
  br label %3014

3014:                                             ; preds = %3011, %3008
  %3015 = phi double [ %3010, %3008 ], [ %3013, %3011 ]
  %3016 = fcmp olt double %3005, %3015
  br i1 %3016, label %3017, label %3071

3017:                                             ; preds = %3014
  %3018 = load double, ptr %68, align 8, !tbaa !11
  %3019 = fcmp ole double 0.000000e+00, %3018
  br i1 %3019, label %3020, label %3023

3020:                                             ; preds = %3017
  %3021 = load double, ptr %68, align 8, !tbaa !11
  %3022 = fadd double %3021, 0.000000e+00
  br label %3026

3023:                                             ; preds = %3017
  %3024 = load double, ptr %68, align 8, !tbaa !11
  %3025 = fsub double %3024, 0.000000e+00
  br label %3026

3026:                                             ; preds = %3023, %3020
  %3027 = phi double [ %3022, %3020 ], [ %3025, %3023 ]
  %3028 = load double, ptr %67, align 8, !tbaa !11
  %3029 = fcmp ole double %3027, %3028
  br i1 %3029, label %3030, label %3041

3030:                                             ; preds = %3026
  %3031 = load double, ptr %68, align 8, !tbaa !11
  %3032 = fcmp ole double 0.000000e+00, %3031
  br i1 %3032, label %3033, label %3036

3033:                                             ; preds = %3030
  %3034 = load double, ptr %68, align 8, !tbaa !11
  %3035 = fadd double %3034, 0.000000e+00
  br label %3039

3036:                                             ; preds = %3030
  %3037 = load double, ptr %68, align 8, !tbaa !11
  %3038 = fsub double %3037, 0.000000e+00
  br label %3039

3039:                                             ; preds = %3036, %3033
  %3040 = phi double [ %3035, %3033 ], [ %3038, %3036 ]
  br label %3069

3041:                                             ; preds = %3026
  %3042 = load double, ptr %68, align 8, !tbaa !11
  %3043 = fcmp ole double 0.000000e+00, %3042
  br i1 %3043, label %3044, label %3047

3044:                                             ; preds = %3041
  %3045 = load double, ptr %68, align 8, !tbaa !11
  %3046 = fadd double %3045, 0.000000e+00
  br label %3050

3047:                                             ; preds = %3041
  %3048 = load double, ptr %68, align 8, !tbaa !11
  %3049 = fsub double %3048, 0.000000e+00
  br label %3050

3050:                                             ; preds = %3047, %3044
  %3051 = phi double [ %3046, %3044 ], [ %3049, %3047 ]
  %3052 = load double, ptr %67, align 8, !tbaa !11
  %3053 = fcmp olt double %3051, %3052
  br i1 %3053, label %3054, label %3065

3054:                                             ; preds = %3050
  %3055 = load double, ptr %68, align 8, !tbaa !11
  %3056 = fcmp ole double 0.000000e+00, %3055
  br i1 %3056, label %3057, label %3060

3057:                                             ; preds = %3054
  %3058 = load double, ptr %68, align 8, !tbaa !11
  %3059 = fadd double %3058, 0.000000e+00
  br label %3063

3060:                                             ; preds = %3054
  %3061 = load double, ptr %68, align 8, !tbaa !11
  %3062 = fsub double %3061, 0.000000e+00
  br label %3063

3063:                                             ; preds = %3060, %3057
  %3064 = phi double [ %3059, %3057 ], [ %3062, %3060 ]
  br label %3067

3065:                                             ; preds = %3050
  %3066 = load double, ptr %67, align 8, !tbaa !11
  br label %3067

3067:                                             ; preds = %3065, %3063
  %3068 = phi double [ %3064, %3063 ], [ %3066, %3065 ]
  br label %3069

3069:                                             ; preds = %3067, %3039
  %3070 = phi double [ %3040, %3039 ], [ %3068, %3067 ]
  br label %3099

3071:                                             ; preds = %3014
  %3072 = load double, ptr %66, align 8, !tbaa !11
  %3073 = load double, ptr %68, align 8, !tbaa !11
  %3074 = fcmp ole double 0.000000e+00, %3073
  br i1 %3074, label %3075, label %3078

3075:                                             ; preds = %3071
  %3076 = load double, ptr %68, align 8, !tbaa !11
  %3077 = fadd double %3076, 0.000000e+00
  br label %3081

3078:                                             ; preds = %3071
  %3079 = load double, ptr %68, align 8, !tbaa !11
  %3080 = fsub double %3079, 0.000000e+00
  br label %3081

3081:                                             ; preds = %3078, %3075
  %3082 = phi double [ %3077, %3075 ], [ %3080, %3078 ]
  %3083 = fcmp olt double %3072, %3082
  br i1 %3083, label %3084, label %3095

3084:                                             ; preds = %3081
  %3085 = load double, ptr %68, align 8, !tbaa !11
  %3086 = fcmp ole double 0.000000e+00, %3085
  br i1 %3086, label %3087, label %3090

3087:                                             ; preds = %3084
  %3088 = load double, ptr %68, align 8, !tbaa !11
  %3089 = fadd double %3088, 0.000000e+00
  br label %3093

3090:                                             ; preds = %3084
  %3091 = load double, ptr %68, align 8, !tbaa !11
  %3092 = fsub double %3091, 0.000000e+00
  br label %3093

3093:                                             ; preds = %3090, %3087
  %3094 = phi double [ %3089, %3087 ], [ %3092, %3090 ]
  br label %3097

3095:                                             ; preds = %3081
  %3096 = load double, ptr %66, align 8, !tbaa !11
  br label %3097

3097:                                             ; preds = %3095, %3093
  %3098 = phi double [ %3094, %3093 ], [ %3096, %3095 ]
  br label %3099

3099:                                             ; preds = %3097, %3069
  %3100 = phi double [ %3070, %3069 ], [ %3098, %3097 ]
  %3101 = load ptr, ptr %7, align 8, !tbaa !5
  store double %3100, ptr %3101, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #3
  br label %3178

3102:                                             ; preds = %2867, %2864
  %3103 = load i32, ptr %8, align 4, !tbaa !9
  %3104 = icmp ugt i32 6, %3103
  br i1 %3104, label %3133, label %3105

3105:                                             ; preds = %3102
  %3106 = load i32, ptr %8, align 4, !tbaa !9
  %3107 = icmp ugt i32 15, %3106
  br i1 %3107, label %3108, label %3119

3108:                                             ; preds = %3105
  %3109 = load i32, ptr %9, align 4, !tbaa !9
  %3110 = icmp ugt i32 15, %3109
  br i1 %3110, label %3111, label %3116

3111:                                             ; preds = %3108
  %3112 = load i32, ptr %9, align 4, !tbaa !9
  %3113 = load i32, ptr %8, align 4, !tbaa !9
  %3114 = icmp ugt i32 %3112, %3113
  %3115 = zext i1 %3114 to i32
  br label %3117

3116:                                             ; preds = %3108
  br label %3117

3117:                                             ; preds = %3116, %3111
  %3118 = phi i32 [ %3115, %3111 ], [ 0, %3116 ]
  br label %3130

3119:                                             ; preds = %3105
  %3120 = load i32, ptr %9, align 4, !tbaa !9
  %3121 = icmp ugt i32 15, %3120
  br i1 %3121, label %3122, label %3123

3122:                                             ; preds = %3119
  br label %3128

3123:                                             ; preds = %3119
  %3124 = load i32, ptr %9, align 4, !tbaa !9
  %3125 = load i32, ptr %8, align 4, !tbaa !9
  %3126 = icmp ugt i32 %3124, %3125
  %3127 = zext i1 %3126 to i32
  br label %3128

3128:                                             ; preds = %3123, %3122
  %3129 = phi i32 [ 0, %3122 ], [ %3127, %3123 ]
  br label %3130

3130:                                             ; preds = %3128, %3117
  %3131 = phi i32 [ %3118, %3117 ], [ %3129, %3128 ]
  %3132 = icmp ne i32 %3131, 0
  br label %3133

3133:                                             ; preds = %3130, %3102
  %3134 = phi i1 [ true, %3102 ], [ %3132, %3130 ]
  %3135 = zext i1 %3134 to i32
  %3136 = icmp eq i32 0, %3135
  br i1 %3136, label %3137, label %3173

3137:                                             ; preds = %3133
  %3138 = load i64, ptr %59, align 8, !tbaa !13
  %3139 = uitofp i64 %3138 to double
  %3140 = fcmp olt double -1.000000e+00, %3139
  br i1 %3140, label %3141, label %3160

3141:                                             ; preds = %3137
  %3142 = load i64, ptr %59, align 8, !tbaa !13
  %3143 = uitofp i64 %3142 to double
  %3144 = fcmp ole double %3143, 1.000000e+00
  br i1 %3144, label %3145, label %3148

3145:                                             ; preds = %3141
  %3146 = load i64, ptr %59, align 8, !tbaa !13
  %3147 = uitofp i64 %3146 to double
  br label %3158

3148:                                             ; preds = %3141
  %3149 = load i64, ptr %59, align 8, !tbaa !13
  %3150 = uitofp i64 %3149 to double
  %3151 = fcmp olt double %3150, 1.000000e+00
  br i1 %3151, label %3152, label %3155

3152:                                             ; preds = %3148
  %3153 = load i64, ptr %59, align 8, !tbaa !13
  %3154 = uitofp i64 %3153 to double
  br label %3156

3155:                                             ; preds = %3148
  br label %3156

3156:                                             ; preds = %3155, %3152
  %3157 = phi double [ %3154, %3152 ], [ 1.000000e+00, %3155 ]
  br label %3158

3158:                                             ; preds = %3156, %3145
  %3159 = phi double [ %3147, %3145 ], [ %3157, %3156 ]
  br label %3170

3160:                                             ; preds = %3137
  %3161 = load i64, ptr %59, align 8, !tbaa !13
  %3162 = uitofp i64 %3161 to double
  %3163 = fcmp olt double -1.000000e+00, %3162
  br i1 %3163, label %3164, label %3167

3164:                                             ; preds = %3160
  %3165 = load i64, ptr %59, align 8, !tbaa !13
  %3166 = uitofp i64 %3165 to double
  br label %3168

3167:                                             ; preds = %3160
  br label %3168

3168:                                             ; preds = %3167, %3164
  %3169 = phi double [ %3166, %3164 ], [ -1.000000e+00, %3167 ]
  br label %3170

3170:                                             ; preds = %3168, %3158
  %3171 = phi double [ %3159, %3158 ], [ %3169, %3168 ]
  %3172 = load ptr, ptr %7, align 8, !tbaa !5
  store double %3171, ptr %3172, align 8, !tbaa !11
  br label %3177

3173:                                             ; preds = %3133
  %3174 = load i64, ptr %59, align 8, !tbaa !13
  %3175 = uitofp i64 %3174 to double
  %3176 = load ptr, ptr %7, align 8, !tbaa !5
  store double %3175, ptr %3176, align 8, !tbaa !11
  br label %3177

3177:                                             ; preds = %3173, %3170
  br label %3178

3178:                                             ; preds = %3177, %3099
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #3
  br label %3179

3179:                                             ; preds = %3178
  br label %3180

3180:                                             ; preds = %3179
  br label %5031

3181:                                             ; preds = %1428
  br label %3182

3182:                                             ; preds = %3181
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #3
  store double 0.000000e+00, ptr %69, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #3
  %3183 = load ptr, ptr %10, align 8, !tbaa !5
  %3184 = load i32, ptr %3183, align 4, !tbaa !9
  store i32 %3184, ptr %70, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #3
  store double 0.000000e+00, ptr %71, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #3
  store double 0.000000e+00, ptr %72, align 8, !tbaa !11
  %3185 = load ptr, ptr %11, align 8, !tbaa !5
  %3186 = icmp ne ptr null, %3185
  br i1 %3186, label %3187, label %3209

3187:                                             ; preds = %3182
  %3188 = load ptr, ptr %12, align 8, !tbaa !5
  %3189 = icmp ne ptr null, %3188
  br i1 %3189, label %3190, label %3201

3190:                                             ; preds = %3187
  %3191 = load ptr, ptr %11, align 8, !tbaa !5
  %3192 = load i32, ptr %3191, align 4, !tbaa !9
  %3193 = load i32, ptr %70, align 4, !tbaa !9
  %3194 = icmp ule i32 %3192, %3193
  br i1 %3194, label %3195, label %3201

3195:                                             ; preds = %3190
  %3196 = load i32, ptr %70, align 4, !tbaa !9
  %3197 = load ptr, ptr %12, align 8, !tbaa !5
  %3198 = load i32, ptr %3197, align 4, !tbaa !9
  %3199 = icmp ule i32 %3196, %3198
  br i1 %3199, label %3200, label %3201

3200:                                             ; preds = %3195
  br label %3202

3201:                                             ; preds = %3195, %3190, %3187
  call void @__assert_fail(ptr noundef @.str.47, ptr noundef @.str.24, i32 noundef 467, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

3202:                                             ; preds = %3200
  %3203 = load ptr, ptr %11, align 8, !tbaa !5
  %3204 = load i32, ptr %3203, align 4, !tbaa !9
  %3205 = uitofp i32 %3204 to double
  store double %3205, ptr %71, align 8, !tbaa !11
  %3206 = load ptr, ptr %12, align 8, !tbaa !5
  %3207 = load i32, ptr %3206, align 4, !tbaa !9
  %3208 = uitofp i32 %3207 to double
  store double %3208, ptr %72, align 8, !tbaa !11
  br label %3209

3209:                                             ; preds = %3202, %3182
  %3210 = load i32, ptr %8, align 4, !tbaa !9
  %3211 = icmp ule i32 6, %3210
  br i1 %3211, label %3212, label %3447

3212:                                             ; preds = %3209
  %3213 = load double, ptr %71, align 8, !tbaa !11
  %3214 = load double, ptr %72, align 8, !tbaa !11
  %3215 = fcmp olt double %3213, %3214
  br i1 %3215, label %3216, label %3447

3216:                                             ; preds = %3212
  %3217 = load i32, ptr %8, align 4, !tbaa !9
  %3218 = icmp ule i32 15, %3217
  br i1 %3218, label %3219, label %3271

3219:                                             ; preds = %3216
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #3
  %3220 = load double, ptr %71, align 8, !tbaa !11
  %3221 = fcmp olt double 0.000000e+00, %3220
  br i1 %3221, label %3222, label %3224

3222:                                             ; preds = %3219
  %3223 = load double, ptr %71, align 8, !tbaa !11
  br label %3225

3224:                                             ; preds = %3219
  br label %3225

3225:                                             ; preds = %3224, %3222
  %3226 = phi double [ %3223, %3222 ], [ 0.000000e+00, %3224 ]
  store double %3226, ptr %73, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #3
  %3227 = load double, ptr %72, align 8, !tbaa !11
  %3228 = fcmp olt double 0.000000e+00, %3227
  br i1 %3228, label %3229, label %3231

3229:                                             ; preds = %3225
  %3230 = load double, ptr %72, align 8, !tbaa !11
  br label %3232

3231:                                             ; preds = %3225
  br label %3232

3232:                                             ; preds = %3231, %3229
  %3233 = phi double [ %3230, %3229 ], [ 0.000000e+00, %3231 ]
  store double %3233, ptr %74, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #3
  %3234 = load double, ptr %73, align 8, !tbaa !11
  %3235 = load double, ptr %74, align 8, !tbaa !11
  %3236 = fcmp olt double %3234, %3235
  br i1 %3236, label %3237, label %3245

3237:                                             ; preds = %3232
  %3238 = load double, ptr %72, align 8, !tbaa !11
  %3239 = load double, ptr %71, align 8, !tbaa !11
  %3240 = fsub double %3238, %3239
  %3241 = load double, ptr %74, align 8, !tbaa !11
  %3242 = load double, ptr %73, align 8, !tbaa !11
  %3243 = fsub double %3241, %3242
  %3244 = fdiv double %3240, %3243
  br label %3246

3245:                                             ; preds = %3232
  br label %3246

3246:                                             ; preds = %3245, %3237
  %3247 = phi double [ %3244, %3237 ], [ 1.000000e+00, %3245 ]
  store double %3247, ptr %75, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #3
  %3248 = load double, ptr %75, align 8, !tbaa !11
  %3249 = load i32, ptr %70, align 4, !tbaa !9
  %3250 = icmp ult i32 0, %3249
  br i1 %3250, label %3251, label %3253

3251:                                             ; preds = %3246
  %3252 = load i32, ptr %70, align 4, !tbaa !9
  br label %3254

3253:                                             ; preds = %3246
  br label %3254

3254:                                             ; preds = %3253, %3251
  %3255 = phi i32 [ %3252, %3251 ], [ 0, %3253 ]
  %3256 = uitofp i32 %3255 to double
  %3257 = fmul double %3248, %3256
  store double %3257, ptr %76, align 8, !tbaa !11
  %3258 = load double, ptr %76, align 8, !tbaa !11
  %3259 = fcmp ole double 0.000000e+00, %3258
  br i1 %3259, label %3260, label %3263

3260:                                             ; preds = %3254
  %3261 = load double, ptr %76, align 8, !tbaa !11
  %3262 = fadd double %3261, 0.000000e+00
  br label %3266

3263:                                             ; preds = %3254
  %3264 = load double, ptr %76, align 8, !tbaa !11
  %3265 = fsub double %3264, 0.000000e+00
  br label %3266

3266:                                             ; preds = %3263, %3260
  %3267 = phi double [ %3262, %3260 ], [ %3265, %3263 ]
  %3268 = fptoui double %3267 to i32
  store i32 %3268, ptr %70, align 4, !tbaa !9
  %3269 = load double, ptr %73, align 8, !tbaa !11
  store double %3269, ptr %71, align 8, !tbaa !11
  %3270 = load double, ptr %74, align 8, !tbaa !11
  store double %3270, ptr %72, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #3
  br label %3327

3271:                                             ; preds = %3216
  %3272 = load i32, ptr %8, align 4, !tbaa !9
  %3273 = icmp ugt i32 6, %3272
  br i1 %3273, label %3302, label %3274

3274:                                             ; preds = %3271
  %3275 = load i32, ptr %8, align 4, !tbaa !9
  %3276 = icmp ugt i32 15, %3275
  br i1 %3276, label %3277, label %3288

3277:                                             ; preds = %3274
  %3278 = load i32, ptr %9, align 4, !tbaa !9
  %3279 = icmp ugt i32 15, %3278
  br i1 %3279, label %3280, label %3285

3280:                                             ; preds = %3277
  %3281 = load i32, ptr %9, align 4, !tbaa !9
  %3282 = load i32, ptr %8, align 4, !tbaa !9
  %3283 = icmp ugt i32 %3281, %3282
  %3284 = zext i1 %3283 to i32
  br label %3286

3285:                                             ; preds = %3277
  br label %3286

3286:                                             ; preds = %3285, %3280
  %3287 = phi i32 [ %3284, %3280 ], [ 0, %3285 ]
  br label %3299

3288:                                             ; preds = %3274
  %3289 = load i32, ptr %9, align 4, !tbaa !9
  %3290 = icmp ugt i32 15, %3289
  br i1 %3290, label %3291, label %3292

3291:                                             ; preds = %3288
  br label %3297

3292:                                             ; preds = %3288
  %3293 = load i32, ptr %9, align 4, !tbaa !9
  %3294 = load i32, ptr %8, align 4, !tbaa !9
  %3295 = icmp ugt i32 %3293, %3294
  %3296 = zext i1 %3295 to i32
  br label %3297

3297:                                             ; preds = %3292, %3291
  %3298 = phi i32 [ 0, %3291 ], [ %3296, %3292 ]
  br label %3299

3299:                                             ; preds = %3297, %3286
  %3300 = phi i32 [ %3287, %3286 ], [ %3298, %3297 ]
  %3301 = icmp ne i32 %3300, 0
  br label %3302

3302:                                             ; preds = %3299, %3271
  %3303 = phi i1 [ true, %3271 ], [ %3301, %3299 ]
  %3304 = zext i1 %3303 to i32
  %3305 = icmp eq i32 0, %3304
  br i1 %3305, label %3306, label %3326

3306:                                             ; preds = %3302
  %3307 = load double, ptr %71, align 8, !tbaa !11
  %3308 = fcmp ogt double 0.000000e+00, %3307
  br i1 %3308, label %3309, label %3326

3309:                                             ; preds = %3306
  %3310 = load double, ptr %72, align 8, !tbaa !11
  %3311 = fcmp olt double 0.000000e+00, %3310
  br i1 %3311, label %3312, label %3326

3312:                                             ; preds = %3309
  %3313 = load double, ptr %71, align 8, !tbaa !11
  %3314 = fneg double %3313
  %3315 = load double, ptr %72, align 8, !tbaa !11
  %3316 = fcmp olt double %3314, %3315
  br i1 %3316, label %3317, label %3319

3317:                                             ; preds = %3312
  %3318 = load double, ptr %72, align 8, !tbaa !11
  br label %3322

3319:                                             ; preds = %3312
  %3320 = load double, ptr %71, align 8, !tbaa !11
  %3321 = fneg double %3320
  br label %3322

3322:                                             ; preds = %3319, %3317
  %3323 = phi double [ %3318, %3317 ], [ %3321, %3319 ]
  store double %3323, ptr %72, align 8, !tbaa !11
  %3324 = load double, ptr %72, align 8, !tbaa !11
  %3325 = fneg double %3324
  store double %3325, ptr %71, align 8, !tbaa !11
  br label %3326

3326:                                             ; preds = %3322, %3309, %3306, %3302
  br label %3327

3327:                                             ; preds = %3326, %3266
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #3
  %3328 = load double, ptr %71, align 8, !tbaa !11
  %3329 = fcmp ole double 0.000000e+00, %3328
  %3330 = zext i1 %3329 to i64
  %3331 = select i1 %3329, double 0.000000e+00, double -1.000000e+00
  store double %3331, ptr %77, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #3
  %3332 = load double, ptr %72, align 8, !tbaa !11
  %3333 = fcmp ole double 0.000000e+00, %3332
  %3334 = zext i1 %3333 to i64
  %3335 = select i1 %3333, double 1.000000e+00, double 0.000000e+00
  store double %3335, ptr %78, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #3
  %3336 = load i32, ptr %70, align 4, !tbaa !9
  %3337 = uitofp i32 %3336 to double
  %3338 = load double, ptr %71, align 8, !tbaa !11
  %3339 = fsub double %3337, %3338
  %3340 = load double, ptr %78, align 8, !tbaa !11
  %3341 = load double, ptr %77, align 8, !tbaa !11
  %3342 = fsub double %3340, %3341
  %3343 = fmul double %3339, %3342
  %3344 = load double, ptr %72, align 8, !tbaa !11
  %3345 = load double, ptr %71, align 8, !tbaa !11
  %3346 = fsub double %3344, %3345
  %3347 = fdiv double %3343, %3346
  %3348 = load double, ptr %77, align 8, !tbaa !11
  %3349 = fadd double %3347, %3348
  store double %3349, ptr %79, align 8, !tbaa !11
  %3350 = load double, ptr %77, align 8, !tbaa !11
  %3351 = load double, ptr %79, align 8, !tbaa !11
  %3352 = fcmp ole double 0.000000e+00, %3351
  br i1 %3352, label %3353, label %3356

3353:                                             ; preds = %3327
  %3354 = load double, ptr %79, align 8, !tbaa !11
  %3355 = fadd double %3354, 0.000000e+00
  br label %3359

3356:                                             ; preds = %3327
  %3357 = load double, ptr %79, align 8, !tbaa !11
  %3358 = fsub double %3357, 0.000000e+00
  br label %3359

3359:                                             ; preds = %3356, %3353
  %3360 = phi double [ %3355, %3353 ], [ %3358, %3356 ]
  %3361 = fcmp olt double %3350, %3360
  br i1 %3361, label %3362, label %3416

3362:                                             ; preds = %3359
  %3363 = load double, ptr %79, align 8, !tbaa !11
  %3364 = fcmp ole double 0.000000e+00, %3363
  br i1 %3364, label %3365, label %3368

3365:                                             ; preds = %3362
  %3366 = load double, ptr %79, align 8, !tbaa !11
  %3367 = fadd double %3366, 0.000000e+00
  br label %3371

3368:                                             ; preds = %3362
  %3369 = load double, ptr %79, align 8, !tbaa !11
  %3370 = fsub double %3369, 0.000000e+00
  br label %3371

3371:                                             ; preds = %3368, %3365
  %3372 = phi double [ %3367, %3365 ], [ %3370, %3368 ]
  %3373 = load double, ptr %78, align 8, !tbaa !11
  %3374 = fcmp ole double %3372, %3373
  br i1 %3374, label %3375, label %3386

3375:                                             ; preds = %3371
  %3376 = load double, ptr %79, align 8, !tbaa !11
  %3377 = fcmp ole double 0.000000e+00, %3376
  br i1 %3377, label %3378, label %3381

3378:                                             ; preds = %3375
  %3379 = load double, ptr %79, align 8, !tbaa !11
  %3380 = fadd double %3379, 0.000000e+00
  br label %3384

3381:                                             ; preds = %3375
  %3382 = load double, ptr %79, align 8, !tbaa !11
  %3383 = fsub double %3382, 0.000000e+00
  br label %3384

3384:                                             ; preds = %3381, %3378
  %3385 = phi double [ %3380, %3378 ], [ %3383, %3381 ]
  br label %3414

3386:                                             ; preds = %3371
  %3387 = load double, ptr %79, align 8, !tbaa !11
  %3388 = fcmp ole double 0.000000e+00, %3387
  br i1 %3388, label %3389, label %3392

3389:                                             ; preds = %3386
  %3390 = load double, ptr %79, align 8, !tbaa !11
  %3391 = fadd double %3390, 0.000000e+00
  br label %3395

3392:                                             ; preds = %3386
  %3393 = load double, ptr %79, align 8, !tbaa !11
  %3394 = fsub double %3393, 0.000000e+00
  br label %3395

3395:                                             ; preds = %3392, %3389
  %3396 = phi double [ %3391, %3389 ], [ %3394, %3392 ]
  %3397 = load double, ptr %78, align 8, !tbaa !11
  %3398 = fcmp olt double %3396, %3397
  br i1 %3398, label %3399, label %3410

3399:                                             ; preds = %3395
  %3400 = load double, ptr %79, align 8, !tbaa !11
  %3401 = fcmp ole double 0.000000e+00, %3400
  br i1 %3401, label %3402, label %3405

3402:                                             ; preds = %3399
  %3403 = load double, ptr %79, align 8, !tbaa !11
  %3404 = fadd double %3403, 0.000000e+00
  br label %3408

3405:                                             ; preds = %3399
  %3406 = load double, ptr %79, align 8, !tbaa !11
  %3407 = fsub double %3406, 0.000000e+00
  br label %3408

3408:                                             ; preds = %3405, %3402
  %3409 = phi double [ %3404, %3402 ], [ %3407, %3405 ]
  br label %3412

3410:                                             ; preds = %3395
  %3411 = load double, ptr %78, align 8, !tbaa !11
  br label %3412

3412:                                             ; preds = %3410, %3408
  %3413 = phi double [ %3409, %3408 ], [ %3411, %3410 ]
  br label %3414

3414:                                             ; preds = %3412, %3384
  %3415 = phi double [ %3385, %3384 ], [ %3413, %3412 ]
  br label %3444

3416:                                             ; preds = %3359
  %3417 = load double, ptr %77, align 8, !tbaa !11
  %3418 = load double, ptr %79, align 8, !tbaa !11
  %3419 = fcmp ole double 0.000000e+00, %3418
  br i1 %3419, label %3420, label %3423

3420:                                             ; preds = %3416
  %3421 = load double, ptr %79, align 8, !tbaa !11
  %3422 = fadd double %3421, 0.000000e+00
  br label %3426

3423:                                             ; preds = %3416
  %3424 = load double, ptr %79, align 8, !tbaa !11
  %3425 = fsub double %3424, 0.000000e+00
  br label %3426

3426:                                             ; preds = %3423, %3420
  %3427 = phi double [ %3422, %3420 ], [ %3425, %3423 ]
  %3428 = fcmp olt double %3417, %3427
  br i1 %3428, label %3429, label %3440

3429:                                             ; preds = %3426
  %3430 = load double, ptr %79, align 8, !tbaa !11
  %3431 = fcmp ole double 0.000000e+00, %3430
  br i1 %3431, label %3432, label %3435

3432:                                             ; preds = %3429
  %3433 = load double, ptr %79, align 8, !tbaa !11
  %3434 = fadd double %3433, 0.000000e+00
  br label %3438

3435:                                             ; preds = %3429
  %3436 = load double, ptr %79, align 8, !tbaa !11
  %3437 = fsub double %3436, 0.000000e+00
  br label %3438

3438:                                             ; preds = %3435, %3432
  %3439 = phi double [ %3434, %3432 ], [ %3437, %3435 ]
  br label %3442

3440:                                             ; preds = %3426
  %3441 = load double, ptr %77, align 8, !tbaa !11
  br label %3442

3442:                                             ; preds = %3440, %3438
  %3443 = phi double [ %3439, %3438 ], [ %3441, %3440 ]
  br label %3444

3444:                                             ; preds = %3442, %3414
  %3445 = phi double [ %3415, %3414 ], [ %3443, %3442 ]
  %3446 = load ptr, ptr %7, align 8, !tbaa !5
  store double %3445, ptr %3446, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #3
  br label %3523

3447:                                             ; preds = %3212, %3209
  %3448 = load i32, ptr %8, align 4, !tbaa !9
  %3449 = icmp ugt i32 6, %3448
  br i1 %3449, label %3478, label %3450

3450:                                             ; preds = %3447
  %3451 = load i32, ptr %8, align 4, !tbaa !9
  %3452 = icmp ugt i32 15, %3451
  br i1 %3452, label %3453, label %3464

3453:                                             ; preds = %3450
  %3454 = load i32, ptr %9, align 4, !tbaa !9
  %3455 = icmp ugt i32 15, %3454
  br i1 %3455, label %3456, label %3461

3456:                                             ; preds = %3453
  %3457 = load i32, ptr %9, align 4, !tbaa !9
  %3458 = load i32, ptr %8, align 4, !tbaa !9
  %3459 = icmp ugt i32 %3457, %3458
  %3460 = zext i1 %3459 to i32
  br label %3462

3461:                                             ; preds = %3453
  br label %3462

3462:                                             ; preds = %3461, %3456
  %3463 = phi i32 [ %3460, %3456 ], [ 0, %3461 ]
  br label %3475

3464:                                             ; preds = %3450
  %3465 = load i32, ptr %9, align 4, !tbaa !9
  %3466 = icmp ugt i32 15, %3465
  br i1 %3466, label %3467, label %3468

3467:                                             ; preds = %3464
  br label %3473

3468:                                             ; preds = %3464
  %3469 = load i32, ptr %9, align 4, !tbaa !9
  %3470 = load i32, ptr %8, align 4, !tbaa !9
  %3471 = icmp ugt i32 %3469, %3470
  %3472 = zext i1 %3471 to i32
  br label %3473

3473:                                             ; preds = %3468, %3467
  %3474 = phi i32 [ 0, %3467 ], [ %3472, %3468 ]
  br label %3475

3475:                                             ; preds = %3473, %3462
  %3476 = phi i32 [ %3463, %3462 ], [ %3474, %3473 ]
  %3477 = icmp ne i32 %3476, 0
  br label %3478

3478:                                             ; preds = %3475, %3447
  %3479 = phi i1 [ true, %3447 ], [ %3477, %3475 ]
  %3480 = zext i1 %3479 to i32
  %3481 = icmp eq i32 0, %3480
  br i1 %3481, label %3482, label %3518

3482:                                             ; preds = %3478
  %3483 = load i32, ptr %70, align 4, !tbaa !9
  %3484 = uitofp i32 %3483 to double
  %3485 = fcmp olt double -1.000000e+00, %3484
  br i1 %3485, label %3486, label %3505

3486:                                             ; preds = %3482
  %3487 = load i32, ptr %70, align 4, !tbaa !9
  %3488 = uitofp i32 %3487 to double
  %3489 = fcmp ole double %3488, 1.000000e+00
  br i1 %3489, label %3490, label %3493

3490:                                             ; preds = %3486
  %3491 = load i32, ptr %70, align 4, !tbaa !9
  %3492 = uitofp i32 %3491 to double
  br label %3503

3493:                                             ; preds = %3486
  %3494 = load i32, ptr %70, align 4, !tbaa !9
  %3495 = uitofp i32 %3494 to double
  %3496 = fcmp olt double %3495, 1.000000e+00
  br i1 %3496, label %3497, label %3500

3497:                                             ; preds = %3493
  %3498 = load i32, ptr %70, align 4, !tbaa !9
  %3499 = uitofp i32 %3498 to double
  br label %3501

3500:                                             ; preds = %3493
  br label %3501

3501:                                             ; preds = %3500, %3497
  %3502 = phi double [ %3499, %3497 ], [ 1.000000e+00, %3500 ]
  br label %3503

3503:                                             ; preds = %3501, %3490
  %3504 = phi double [ %3492, %3490 ], [ %3502, %3501 ]
  br label %3515

3505:                                             ; preds = %3482
  %3506 = load i32, ptr %70, align 4, !tbaa !9
  %3507 = uitofp i32 %3506 to double
  %3508 = fcmp olt double -1.000000e+00, %3507
  br i1 %3508, label %3509, label %3512

3509:                                             ; preds = %3505
  %3510 = load i32, ptr %70, align 4, !tbaa !9
  %3511 = uitofp i32 %3510 to double
  br label %3513

3512:                                             ; preds = %3505
  br label %3513

3513:                                             ; preds = %3512, %3509
  %3514 = phi double [ %3511, %3509 ], [ -1.000000e+00, %3512 ]
  br label %3515

3515:                                             ; preds = %3513, %3503
  %3516 = phi double [ %3504, %3503 ], [ %3514, %3513 ]
  %3517 = load ptr, ptr %7, align 8, !tbaa !5
  store double %3516, ptr %3517, align 8, !tbaa !11
  br label %3522

3518:                                             ; preds = %3478
  %3519 = load i32, ptr %70, align 4, !tbaa !9
  %3520 = uitofp i32 %3519 to double
  %3521 = load ptr, ptr %7, align 8, !tbaa !5
  store double %3520, ptr %3521, align 8, !tbaa !11
  br label %3522

3522:                                             ; preds = %3518, %3515
  br label %3523

3523:                                             ; preds = %3522, %3444
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #3
  br label %3524

3524:                                             ; preds = %3523
  br label %3525

3525:                                             ; preds = %3524
  br label %5031

3526:                                             ; preds = %1428
  br label %3527

3527:                                             ; preds = %3526
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #3
  store double 0.000000e+00, ptr %80, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %81) #3
  %3528 = load ptr, ptr %10, align 8, !tbaa !5
  %3529 = load i16, ptr %3528, align 2, !tbaa !15
  store i16 %3529, ptr %81, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #3
  store double 0.000000e+00, ptr %82, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #3
  store double 0.000000e+00, ptr %83, align 8, !tbaa !11
  %3530 = load ptr, ptr %11, align 8, !tbaa !5
  %3531 = icmp ne ptr null, %3530
  br i1 %3531, label %3532, label %3558

3532:                                             ; preds = %3527
  %3533 = load ptr, ptr %12, align 8, !tbaa !5
  %3534 = icmp ne ptr null, %3533
  br i1 %3534, label %3535, label %3550

3535:                                             ; preds = %3532
  %3536 = load ptr, ptr %11, align 8, !tbaa !5
  %3537 = load i16, ptr %3536, align 2, !tbaa !15
  %3538 = zext i16 %3537 to i32
  %3539 = load i16, ptr %81, align 2, !tbaa !15
  %3540 = zext i16 %3539 to i32
  %3541 = icmp sle i32 %3538, %3540
  br i1 %3541, label %3542, label %3550

3542:                                             ; preds = %3535
  %3543 = load i16, ptr %81, align 2, !tbaa !15
  %3544 = zext i16 %3543 to i32
  %3545 = load ptr, ptr %12, align 8, !tbaa !5
  %3546 = load i16, ptr %3545, align 2, !tbaa !15
  %3547 = zext i16 %3546 to i32
  %3548 = icmp sle i32 %3544, %3547
  br i1 %3548, label %3549, label %3550

3549:                                             ; preds = %3542
  br label %3551

3550:                                             ; preds = %3542, %3535, %3532
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.24, i32 noundef 467, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

3551:                                             ; preds = %3549
  %3552 = load ptr, ptr %11, align 8, !tbaa !5
  %3553 = load i16, ptr %3552, align 2, !tbaa !15
  %3554 = uitofp i16 %3553 to double
  store double %3554, ptr %82, align 8, !tbaa !11
  %3555 = load ptr, ptr %12, align 8, !tbaa !5
  %3556 = load i16, ptr %3555, align 2, !tbaa !15
  %3557 = uitofp i16 %3556 to double
  store double %3557, ptr %83, align 8, !tbaa !11
  br label %3558

3558:                                             ; preds = %3551, %3527
  %3559 = load i32, ptr %8, align 4, !tbaa !9
  %3560 = icmp ule i32 6, %3559
  br i1 %3560, label %3561, label %3798

3561:                                             ; preds = %3558
  %3562 = load double, ptr %82, align 8, !tbaa !11
  %3563 = load double, ptr %83, align 8, !tbaa !11
  %3564 = fcmp olt double %3562, %3563
  br i1 %3564, label %3565, label %3798

3565:                                             ; preds = %3561
  %3566 = load i32, ptr %8, align 4, !tbaa !9
  %3567 = icmp ule i32 15, %3566
  br i1 %3567, label %3568, label %3622

3568:                                             ; preds = %3565
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #3
  %3569 = load double, ptr %82, align 8, !tbaa !11
  %3570 = fcmp olt double 0.000000e+00, %3569
  br i1 %3570, label %3571, label %3573

3571:                                             ; preds = %3568
  %3572 = load double, ptr %82, align 8, !tbaa !11
  br label %3574

3573:                                             ; preds = %3568
  br label %3574

3574:                                             ; preds = %3573, %3571
  %3575 = phi double [ %3572, %3571 ], [ 0.000000e+00, %3573 ]
  store double %3575, ptr %84, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #3
  %3576 = load double, ptr %83, align 8, !tbaa !11
  %3577 = fcmp olt double 0.000000e+00, %3576
  br i1 %3577, label %3578, label %3580

3578:                                             ; preds = %3574
  %3579 = load double, ptr %83, align 8, !tbaa !11
  br label %3581

3580:                                             ; preds = %3574
  br label %3581

3581:                                             ; preds = %3580, %3578
  %3582 = phi double [ %3579, %3578 ], [ 0.000000e+00, %3580 ]
  store double %3582, ptr %85, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #3
  %3583 = load double, ptr %84, align 8, !tbaa !11
  %3584 = load double, ptr %85, align 8, !tbaa !11
  %3585 = fcmp olt double %3583, %3584
  br i1 %3585, label %3586, label %3594

3586:                                             ; preds = %3581
  %3587 = load double, ptr %83, align 8, !tbaa !11
  %3588 = load double, ptr %82, align 8, !tbaa !11
  %3589 = fsub double %3587, %3588
  %3590 = load double, ptr %85, align 8, !tbaa !11
  %3591 = load double, ptr %84, align 8, !tbaa !11
  %3592 = fsub double %3590, %3591
  %3593 = fdiv double %3589, %3592
  br label %3595

3594:                                             ; preds = %3581
  br label %3595

3595:                                             ; preds = %3594, %3586
  %3596 = phi double [ %3593, %3586 ], [ 1.000000e+00, %3594 ]
  store double %3596, ptr %86, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #3
  %3597 = load double, ptr %86, align 8, !tbaa !11
  %3598 = load i16, ptr %81, align 2, !tbaa !15
  %3599 = zext i16 %3598 to i32
  %3600 = icmp slt i32 0, %3599
  br i1 %3600, label %3601, label %3604

3601:                                             ; preds = %3595
  %3602 = load i16, ptr %81, align 2, !tbaa !15
  %3603 = zext i16 %3602 to i32
  br label %3605

3604:                                             ; preds = %3595
  br label %3605

3605:                                             ; preds = %3604, %3601
  %3606 = phi i32 [ %3603, %3601 ], [ 0, %3604 ]
  %3607 = sitofp i32 %3606 to double
  %3608 = fmul double %3597, %3607
  store double %3608, ptr %87, align 8, !tbaa !11
  %3609 = load double, ptr %87, align 8, !tbaa !11
  %3610 = fcmp ole double 0.000000e+00, %3609
  br i1 %3610, label %3611, label %3614

3611:                                             ; preds = %3605
  %3612 = load double, ptr %87, align 8, !tbaa !11
  %3613 = fadd double %3612, 0.000000e+00
  br label %3617

3614:                                             ; preds = %3605
  %3615 = load double, ptr %87, align 8, !tbaa !11
  %3616 = fsub double %3615, 0.000000e+00
  br label %3617

3617:                                             ; preds = %3614, %3611
  %3618 = phi double [ %3613, %3611 ], [ %3616, %3614 ]
  %3619 = fptoui double %3618 to i16
  store i16 %3619, ptr %81, align 2, !tbaa !15
  %3620 = load double, ptr %84, align 8, !tbaa !11
  store double %3620, ptr %82, align 8, !tbaa !11
  %3621 = load double, ptr %85, align 8, !tbaa !11
  store double %3621, ptr %83, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #3
  br label %3678

3622:                                             ; preds = %3565
  %3623 = load i32, ptr %8, align 4, !tbaa !9
  %3624 = icmp ugt i32 6, %3623
  br i1 %3624, label %3653, label %3625

3625:                                             ; preds = %3622
  %3626 = load i32, ptr %8, align 4, !tbaa !9
  %3627 = icmp ugt i32 15, %3626
  br i1 %3627, label %3628, label %3639

3628:                                             ; preds = %3625
  %3629 = load i32, ptr %9, align 4, !tbaa !9
  %3630 = icmp ugt i32 15, %3629
  br i1 %3630, label %3631, label %3636

3631:                                             ; preds = %3628
  %3632 = load i32, ptr %9, align 4, !tbaa !9
  %3633 = load i32, ptr %8, align 4, !tbaa !9
  %3634 = icmp ugt i32 %3632, %3633
  %3635 = zext i1 %3634 to i32
  br label %3637

3636:                                             ; preds = %3628
  br label %3637

3637:                                             ; preds = %3636, %3631
  %3638 = phi i32 [ %3635, %3631 ], [ 0, %3636 ]
  br label %3650

3639:                                             ; preds = %3625
  %3640 = load i32, ptr %9, align 4, !tbaa !9
  %3641 = icmp ugt i32 15, %3640
  br i1 %3641, label %3642, label %3643

3642:                                             ; preds = %3639
  br label %3648

3643:                                             ; preds = %3639
  %3644 = load i32, ptr %9, align 4, !tbaa !9
  %3645 = load i32, ptr %8, align 4, !tbaa !9
  %3646 = icmp ugt i32 %3644, %3645
  %3647 = zext i1 %3646 to i32
  br label %3648

3648:                                             ; preds = %3643, %3642
  %3649 = phi i32 [ 0, %3642 ], [ %3647, %3643 ]
  br label %3650

3650:                                             ; preds = %3648, %3637
  %3651 = phi i32 [ %3638, %3637 ], [ %3649, %3648 ]
  %3652 = icmp ne i32 %3651, 0
  br label %3653

3653:                                             ; preds = %3650, %3622
  %3654 = phi i1 [ true, %3622 ], [ %3652, %3650 ]
  %3655 = zext i1 %3654 to i32
  %3656 = icmp eq i32 0, %3655
  br i1 %3656, label %3657, label %3677

3657:                                             ; preds = %3653
  %3658 = load double, ptr %82, align 8, !tbaa !11
  %3659 = fcmp ogt double 0.000000e+00, %3658
  br i1 %3659, label %3660, label %3677

3660:                                             ; preds = %3657
  %3661 = load double, ptr %83, align 8, !tbaa !11
  %3662 = fcmp olt double 0.000000e+00, %3661
  br i1 %3662, label %3663, label %3677

3663:                                             ; preds = %3660
  %3664 = load double, ptr %82, align 8, !tbaa !11
  %3665 = fneg double %3664
  %3666 = load double, ptr %83, align 8, !tbaa !11
  %3667 = fcmp olt double %3665, %3666
  br i1 %3667, label %3668, label %3670

3668:                                             ; preds = %3663
  %3669 = load double, ptr %83, align 8, !tbaa !11
  br label %3673

3670:                                             ; preds = %3663
  %3671 = load double, ptr %82, align 8, !tbaa !11
  %3672 = fneg double %3671
  br label %3673

3673:                                             ; preds = %3670, %3668
  %3674 = phi double [ %3669, %3668 ], [ %3672, %3670 ]
  store double %3674, ptr %83, align 8, !tbaa !11
  %3675 = load double, ptr %83, align 8, !tbaa !11
  %3676 = fneg double %3675
  store double %3676, ptr %82, align 8, !tbaa !11
  br label %3677

3677:                                             ; preds = %3673, %3660, %3657, %3653
  br label %3678

3678:                                             ; preds = %3677, %3617
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #3
  %3679 = load double, ptr %82, align 8, !tbaa !11
  %3680 = fcmp ole double 0.000000e+00, %3679
  %3681 = zext i1 %3680 to i64
  %3682 = select i1 %3680, double 0.000000e+00, double -1.000000e+00
  store double %3682, ptr %88, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #3
  %3683 = load double, ptr %83, align 8, !tbaa !11
  %3684 = fcmp ole double 0.000000e+00, %3683
  %3685 = zext i1 %3684 to i64
  %3686 = select i1 %3684, double 1.000000e+00, double 0.000000e+00
  store double %3686, ptr %89, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #3
  %3687 = load i16, ptr %81, align 2, !tbaa !15
  %3688 = uitofp i16 %3687 to double
  %3689 = load double, ptr %82, align 8, !tbaa !11
  %3690 = fsub double %3688, %3689
  %3691 = load double, ptr %89, align 8, !tbaa !11
  %3692 = load double, ptr %88, align 8, !tbaa !11
  %3693 = fsub double %3691, %3692
  %3694 = fmul double %3690, %3693
  %3695 = load double, ptr %83, align 8, !tbaa !11
  %3696 = load double, ptr %82, align 8, !tbaa !11
  %3697 = fsub double %3695, %3696
  %3698 = fdiv double %3694, %3697
  %3699 = load double, ptr %88, align 8, !tbaa !11
  %3700 = fadd double %3698, %3699
  store double %3700, ptr %90, align 8, !tbaa !11
  %3701 = load double, ptr %88, align 8, !tbaa !11
  %3702 = load double, ptr %90, align 8, !tbaa !11
  %3703 = fcmp ole double 0.000000e+00, %3702
  br i1 %3703, label %3704, label %3707

3704:                                             ; preds = %3678
  %3705 = load double, ptr %90, align 8, !tbaa !11
  %3706 = fadd double %3705, 0.000000e+00
  br label %3710

3707:                                             ; preds = %3678
  %3708 = load double, ptr %90, align 8, !tbaa !11
  %3709 = fsub double %3708, 0.000000e+00
  br label %3710

3710:                                             ; preds = %3707, %3704
  %3711 = phi double [ %3706, %3704 ], [ %3709, %3707 ]
  %3712 = fcmp olt double %3701, %3711
  br i1 %3712, label %3713, label %3767

3713:                                             ; preds = %3710
  %3714 = load double, ptr %90, align 8, !tbaa !11
  %3715 = fcmp ole double 0.000000e+00, %3714
  br i1 %3715, label %3716, label %3719

3716:                                             ; preds = %3713
  %3717 = load double, ptr %90, align 8, !tbaa !11
  %3718 = fadd double %3717, 0.000000e+00
  br label %3722

3719:                                             ; preds = %3713
  %3720 = load double, ptr %90, align 8, !tbaa !11
  %3721 = fsub double %3720, 0.000000e+00
  br label %3722

3722:                                             ; preds = %3719, %3716
  %3723 = phi double [ %3718, %3716 ], [ %3721, %3719 ]
  %3724 = load double, ptr %89, align 8, !tbaa !11
  %3725 = fcmp ole double %3723, %3724
  br i1 %3725, label %3726, label %3737

3726:                                             ; preds = %3722
  %3727 = load double, ptr %90, align 8, !tbaa !11
  %3728 = fcmp ole double 0.000000e+00, %3727
  br i1 %3728, label %3729, label %3732

3729:                                             ; preds = %3726
  %3730 = load double, ptr %90, align 8, !tbaa !11
  %3731 = fadd double %3730, 0.000000e+00
  br label %3735

3732:                                             ; preds = %3726
  %3733 = load double, ptr %90, align 8, !tbaa !11
  %3734 = fsub double %3733, 0.000000e+00
  br label %3735

3735:                                             ; preds = %3732, %3729
  %3736 = phi double [ %3731, %3729 ], [ %3734, %3732 ]
  br label %3765

3737:                                             ; preds = %3722
  %3738 = load double, ptr %90, align 8, !tbaa !11
  %3739 = fcmp ole double 0.000000e+00, %3738
  br i1 %3739, label %3740, label %3743

3740:                                             ; preds = %3737
  %3741 = load double, ptr %90, align 8, !tbaa !11
  %3742 = fadd double %3741, 0.000000e+00
  br label %3746

3743:                                             ; preds = %3737
  %3744 = load double, ptr %90, align 8, !tbaa !11
  %3745 = fsub double %3744, 0.000000e+00
  br label %3746

3746:                                             ; preds = %3743, %3740
  %3747 = phi double [ %3742, %3740 ], [ %3745, %3743 ]
  %3748 = load double, ptr %89, align 8, !tbaa !11
  %3749 = fcmp olt double %3747, %3748
  br i1 %3749, label %3750, label %3761

3750:                                             ; preds = %3746
  %3751 = load double, ptr %90, align 8, !tbaa !11
  %3752 = fcmp ole double 0.000000e+00, %3751
  br i1 %3752, label %3753, label %3756

3753:                                             ; preds = %3750
  %3754 = load double, ptr %90, align 8, !tbaa !11
  %3755 = fadd double %3754, 0.000000e+00
  br label %3759

3756:                                             ; preds = %3750
  %3757 = load double, ptr %90, align 8, !tbaa !11
  %3758 = fsub double %3757, 0.000000e+00
  br label %3759

3759:                                             ; preds = %3756, %3753
  %3760 = phi double [ %3755, %3753 ], [ %3758, %3756 ]
  br label %3763

3761:                                             ; preds = %3746
  %3762 = load double, ptr %89, align 8, !tbaa !11
  br label %3763

3763:                                             ; preds = %3761, %3759
  %3764 = phi double [ %3760, %3759 ], [ %3762, %3761 ]
  br label %3765

3765:                                             ; preds = %3763, %3735
  %3766 = phi double [ %3736, %3735 ], [ %3764, %3763 ]
  br label %3795

3767:                                             ; preds = %3710
  %3768 = load double, ptr %88, align 8, !tbaa !11
  %3769 = load double, ptr %90, align 8, !tbaa !11
  %3770 = fcmp ole double 0.000000e+00, %3769
  br i1 %3770, label %3771, label %3774

3771:                                             ; preds = %3767
  %3772 = load double, ptr %90, align 8, !tbaa !11
  %3773 = fadd double %3772, 0.000000e+00
  br label %3777

3774:                                             ; preds = %3767
  %3775 = load double, ptr %90, align 8, !tbaa !11
  %3776 = fsub double %3775, 0.000000e+00
  br label %3777

3777:                                             ; preds = %3774, %3771
  %3778 = phi double [ %3773, %3771 ], [ %3776, %3774 ]
  %3779 = fcmp olt double %3768, %3778
  br i1 %3779, label %3780, label %3791

3780:                                             ; preds = %3777
  %3781 = load double, ptr %90, align 8, !tbaa !11
  %3782 = fcmp ole double 0.000000e+00, %3781
  br i1 %3782, label %3783, label %3786

3783:                                             ; preds = %3780
  %3784 = load double, ptr %90, align 8, !tbaa !11
  %3785 = fadd double %3784, 0.000000e+00
  br label %3789

3786:                                             ; preds = %3780
  %3787 = load double, ptr %90, align 8, !tbaa !11
  %3788 = fsub double %3787, 0.000000e+00
  br label %3789

3789:                                             ; preds = %3786, %3783
  %3790 = phi double [ %3785, %3783 ], [ %3788, %3786 ]
  br label %3793

3791:                                             ; preds = %3777
  %3792 = load double, ptr %88, align 8, !tbaa !11
  br label %3793

3793:                                             ; preds = %3791, %3789
  %3794 = phi double [ %3790, %3789 ], [ %3792, %3791 ]
  br label %3795

3795:                                             ; preds = %3793, %3765
  %3796 = phi double [ %3766, %3765 ], [ %3794, %3793 ]
  %3797 = load ptr, ptr %7, align 8, !tbaa !5
  store double %3796, ptr %3797, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #3
  br label %3881

3798:                                             ; preds = %3561, %3558
  %3799 = load i32, ptr %8, align 4, !tbaa !9
  %3800 = icmp ugt i32 6, %3799
  br i1 %3800, label %3829, label %3801

3801:                                             ; preds = %3798
  %3802 = load i32, ptr %8, align 4, !tbaa !9
  %3803 = icmp ugt i32 15, %3802
  br i1 %3803, label %3804, label %3815

3804:                                             ; preds = %3801
  %3805 = load i32, ptr %9, align 4, !tbaa !9
  %3806 = icmp ugt i32 15, %3805
  br i1 %3806, label %3807, label %3812

3807:                                             ; preds = %3804
  %3808 = load i32, ptr %9, align 4, !tbaa !9
  %3809 = load i32, ptr %8, align 4, !tbaa !9
  %3810 = icmp ugt i32 %3808, %3809
  %3811 = zext i1 %3810 to i32
  br label %3813

3812:                                             ; preds = %3804
  br label %3813

3813:                                             ; preds = %3812, %3807
  %3814 = phi i32 [ %3811, %3807 ], [ 0, %3812 ]
  br label %3826

3815:                                             ; preds = %3801
  %3816 = load i32, ptr %9, align 4, !tbaa !9
  %3817 = icmp ugt i32 15, %3816
  br i1 %3817, label %3818, label %3819

3818:                                             ; preds = %3815
  br label %3824

3819:                                             ; preds = %3815
  %3820 = load i32, ptr %9, align 4, !tbaa !9
  %3821 = load i32, ptr %8, align 4, !tbaa !9
  %3822 = icmp ugt i32 %3820, %3821
  %3823 = zext i1 %3822 to i32
  br label %3824

3824:                                             ; preds = %3819, %3818
  %3825 = phi i32 [ 0, %3818 ], [ %3823, %3819 ]
  br label %3826

3826:                                             ; preds = %3824, %3813
  %3827 = phi i32 [ %3814, %3813 ], [ %3825, %3824 ]
  %3828 = icmp ne i32 %3827, 0
  br label %3829

3829:                                             ; preds = %3826, %3798
  %3830 = phi i1 [ true, %3798 ], [ %3828, %3826 ]
  %3831 = zext i1 %3830 to i32
  %3832 = icmp eq i32 0, %3831
  br i1 %3832, label %3833, label %3876

3833:                                             ; preds = %3829
  %3834 = load i16, ptr %81, align 2, !tbaa !15
  %3835 = zext i16 %3834 to i32
  %3836 = sitofp i32 %3835 to double
  %3837 = fcmp olt double -1.000000e+00, %3836
  br i1 %3837, label %3838, label %3861

3838:                                             ; preds = %3833
  %3839 = load i16, ptr %81, align 2, !tbaa !15
  %3840 = zext i16 %3839 to i32
  %3841 = sitofp i32 %3840 to double
  %3842 = fcmp ole double %3841, 1.000000e+00
  br i1 %3842, label %3843, label %3847

3843:                                             ; preds = %3838
  %3844 = load i16, ptr %81, align 2, !tbaa !15
  %3845 = zext i16 %3844 to i32
  %3846 = sitofp i32 %3845 to double
  br label %3859

3847:                                             ; preds = %3838
  %3848 = load i16, ptr %81, align 2, !tbaa !15
  %3849 = zext i16 %3848 to i32
  %3850 = sitofp i32 %3849 to double
  %3851 = fcmp olt double %3850, 1.000000e+00
  br i1 %3851, label %3852, label %3856

3852:                                             ; preds = %3847
  %3853 = load i16, ptr %81, align 2, !tbaa !15
  %3854 = zext i16 %3853 to i32
  %3855 = sitofp i32 %3854 to double
  br label %3857

3856:                                             ; preds = %3847
  br label %3857

3857:                                             ; preds = %3856, %3852
  %3858 = phi double [ %3855, %3852 ], [ 1.000000e+00, %3856 ]
  br label %3859

3859:                                             ; preds = %3857, %3843
  %3860 = phi double [ %3846, %3843 ], [ %3858, %3857 ]
  br label %3873

3861:                                             ; preds = %3833
  %3862 = load i16, ptr %81, align 2, !tbaa !15
  %3863 = zext i16 %3862 to i32
  %3864 = sitofp i32 %3863 to double
  %3865 = fcmp olt double -1.000000e+00, %3864
  br i1 %3865, label %3866, label %3870

3866:                                             ; preds = %3861
  %3867 = load i16, ptr %81, align 2, !tbaa !15
  %3868 = zext i16 %3867 to i32
  %3869 = sitofp i32 %3868 to double
  br label %3871

3870:                                             ; preds = %3861
  br label %3871

3871:                                             ; preds = %3870, %3866
  %3872 = phi double [ %3869, %3866 ], [ -1.000000e+00, %3870 ]
  br label %3873

3873:                                             ; preds = %3871, %3859
  %3874 = phi double [ %3860, %3859 ], [ %3872, %3871 ]
  %3875 = load ptr, ptr %7, align 8, !tbaa !5
  store double %3874, ptr %3875, align 8, !tbaa !11
  br label %3880

3876:                                             ; preds = %3829
  %3877 = load i16, ptr %81, align 2, !tbaa !15
  %3878 = uitofp i16 %3877 to double
  %3879 = load ptr, ptr %7, align 8, !tbaa !5
  store double %3878, ptr %3879, align 8, !tbaa !11
  br label %3880

3880:                                             ; preds = %3876, %3873
  br label %3881

3881:                                             ; preds = %3880, %3795
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %81) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #3
  br label %3882

3882:                                             ; preds = %3881
  br label %3883

3883:                                             ; preds = %3882
  br label %5031

3884:                                             ; preds = %1428
  br label %3885

3885:                                             ; preds = %3884
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #3
  store double 0.000000e+00, ptr %91, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #3
  %3886 = load ptr, ptr %10, align 8, !tbaa !5
  %3887 = load i8, ptr %3886, align 1, !tbaa !17
  store i8 %3887, ptr %92, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #3
  store double 0.000000e+00, ptr %93, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #3
  store double 0.000000e+00, ptr %94, align 8, !tbaa !11
  %3888 = load ptr, ptr %11, align 8, !tbaa !5
  %3889 = icmp ne ptr null, %3888
  br i1 %3889, label %3890, label %3916

3890:                                             ; preds = %3885
  %3891 = load ptr, ptr %12, align 8, !tbaa !5
  %3892 = icmp ne ptr null, %3891
  br i1 %3892, label %3893, label %3908

3893:                                             ; preds = %3890
  %3894 = load ptr, ptr %11, align 8, !tbaa !5
  %3895 = load i8, ptr %3894, align 1, !tbaa !17
  %3896 = zext i8 %3895 to i32
  %3897 = load i8, ptr %92, align 1, !tbaa !17
  %3898 = zext i8 %3897 to i32
  %3899 = icmp sle i32 %3896, %3898
  br i1 %3899, label %3900, label %3908

3900:                                             ; preds = %3893
  %3901 = load i8, ptr %92, align 1, !tbaa !17
  %3902 = zext i8 %3901 to i32
  %3903 = load ptr, ptr %12, align 8, !tbaa !5
  %3904 = load i8, ptr %3903, align 1, !tbaa !17
  %3905 = zext i8 %3904 to i32
  %3906 = icmp sle i32 %3902, %3905
  br i1 %3906, label %3907, label %3908

3907:                                             ; preds = %3900
  br label %3909

3908:                                             ; preds = %3900, %3893, %3890
  call void @__assert_fail(ptr noundef @.str.49, ptr noundef @.str.24, i32 noundef 467, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

3909:                                             ; preds = %3907
  %3910 = load ptr, ptr %11, align 8, !tbaa !5
  %3911 = load i8, ptr %3910, align 1, !tbaa !17
  %3912 = uitofp i8 %3911 to double
  store double %3912, ptr %93, align 8, !tbaa !11
  %3913 = load ptr, ptr %12, align 8, !tbaa !5
  %3914 = load i8, ptr %3913, align 1, !tbaa !17
  %3915 = uitofp i8 %3914 to double
  store double %3915, ptr %94, align 8, !tbaa !11
  br label %3916

3916:                                             ; preds = %3909, %3885
  %3917 = load i32, ptr %8, align 4, !tbaa !9
  %3918 = icmp ule i32 6, %3917
  br i1 %3918, label %3919, label %4156

3919:                                             ; preds = %3916
  %3920 = load double, ptr %93, align 8, !tbaa !11
  %3921 = load double, ptr %94, align 8, !tbaa !11
  %3922 = fcmp olt double %3920, %3921
  br i1 %3922, label %3923, label %4156

3923:                                             ; preds = %3919
  %3924 = load i32, ptr %8, align 4, !tbaa !9
  %3925 = icmp ule i32 15, %3924
  br i1 %3925, label %3926, label %3980

3926:                                             ; preds = %3923
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #3
  %3927 = load double, ptr %93, align 8, !tbaa !11
  %3928 = fcmp olt double 0.000000e+00, %3927
  br i1 %3928, label %3929, label %3931

3929:                                             ; preds = %3926
  %3930 = load double, ptr %93, align 8, !tbaa !11
  br label %3932

3931:                                             ; preds = %3926
  br label %3932

3932:                                             ; preds = %3931, %3929
  %3933 = phi double [ %3930, %3929 ], [ 0.000000e+00, %3931 ]
  store double %3933, ptr %95, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #3
  %3934 = load double, ptr %94, align 8, !tbaa !11
  %3935 = fcmp olt double 0.000000e+00, %3934
  br i1 %3935, label %3936, label %3938

3936:                                             ; preds = %3932
  %3937 = load double, ptr %94, align 8, !tbaa !11
  br label %3939

3938:                                             ; preds = %3932
  br label %3939

3939:                                             ; preds = %3938, %3936
  %3940 = phi double [ %3937, %3936 ], [ 0.000000e+00, %3938 ]
  store double %3940, ptr %96, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #3
  %3941 = load double, ptr %95, align 8, !tbaa !11
  %3942 = load double, ptr %96, align 8, !tbaa !11
  %3943 = fcmp olt double %3941, %3942
  br i1 %3943, label %3944, label %3952

3944:                                             ; preds = %3939
  %3945 = load double, ptr %94, align 8, !tbaa !11
  %3946 = load double, ptr %93, align 8, !tbaa !11
  %3947 = fsub double %3945, %3946
  %3948 = load double, ptr %96, align 8, !tbaa !11
  %3949 = load double, ptr %95, align 8, !tbaa !11
  %3950 = fsub double %3948, %3949
  %3951 = fdiv double %3947, %3950
  br label %3953

3952:                                             ; preds = %3939
  br label %3953

3953:                                             ; preds = %3952, %3944
  %3954 = phi double [ %3951, %3944 ], [ 1.000000e+00, %3952 ]
  store double %3954, ptr %97, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #3
  %3955 = load double, ptr %97, align 8, !tbaa !11
  %3956 = load i8, ptr %92, align 1, !tbaa !17
  %3957 = zext i8 %3956 to i32
  %3958 = icmp slt i32 0, %3957
  br i1 %3958, label %3959, label %3962

3959:                                             ; preds = %3953
  %3960 = load i8, ptr %92, align 1, !tbaa !17
  %3961 = zext i8 %3960 to i32
  br label %3963

3962:                                             ; preds = %3953
  br label %3963

3963:                                             ; preds = %3962, %3959
  %3964 = phi i32 [ %3961, %3959 ], [ 0, %3962 ]
  %3965 = sitofp i32 %3964 to double
  %3966 = fmul double %3955, %3965
  store double %3966, ptr %98, align 8, !tbaa !11
  %3967 = load double, ptr %98, align 8, !tbaa !11
  %3968 = fcmp ole double 0.000000e+00, %3967
  br i1 %3968, label %3969, label %3972

3969:                                             ; preds = %3963
  %3970 = load double, ptr %98, align 8, !tbaa !11
  %3971 = fadd double %3970, 0.000000e+00
  br label %3975

3972:                                             ; preds = %3963
  %3973 = load double, ptr %98, align 8, !tbaa !11
  %3974 = fsub double %3973, 0.000000e+00
  br label %3975

3975:                                             ; preds = %3972, %3969
  %3976 = phi double [ %3971, %3969 ], [ %3974, %3972 ]
  %3977 = fptoui double %3976 to i8
  store i8 %3977, ptr %92, align 1, !tbaa !17
  %3978 = load double, ptr %95, align 8, !tbaa !11
  store double %3978, ptr %93, align 8, !tbaa !11
  %3979 = load double, ptr %96, align 8, !tbaa !11
  store double %3979, ptr %94, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #3
  br label %4036

3980:                                             ; preds = %3923
  %3981 = load i32, ptr %8, align 4, !tbaa !9
  %3982 = icmp ugt i32 6, %3981
  br i1 %3982, label %4011, label %3983

3983:                                             ; preds = %3980
  %3984 = load i32, ptr %8, align 4, !tbaa !9
  %3985 = icmp ugt i32 15, %3984
  br i1 %3985, label %3986, label %3997

3986:                                             ; preds = %3983
  %3987 = load i32, ptr %9, align 4, !tbaa !9
  %3988 = icmp ugt i32 15, %3987
  br i1 %3988, label %3989, label %3994

3989:                                             ; preds = %3986
  %3990 = load i32, ptr %9, align 4, !tbaa !9
  %3991 = load i32, ptr %8, align 4, !tbaa !9
  %3992 = icmp ugt i32 %3990, %3991
  %3993 = zext i1 %3992 to i32
  br label %3995

3994:                                             ; preds = %3986
  br label %3995

3995:                                             ; preds = %3994, %3989
  %3996 = phi i32 [ %3993, %3989 ], [ 0, %3994 ]
  br label %4008

3997:                                             ; preds = %3983
  %3998 = load i32, ptr %9, align 4, !tbaa !9
  %3999 = icmp ugt i32 15, %3998
  br i1 %3999, label %4000, label %4001

4000:                                             ; preds = %3997
  br label %4006

4001:                                             ; preds = %3997
  %4002 = load i32, ptr %9, align 4, !tbaa !9
  %4003 = load i32, ptr %8, align 4, !tbaa !9
  %4004 = icmp ugt i32 %4002, %4003
  %4005 = zext i1 %4004 to i32
  br label %4006

4006:                                             ; preds = %4001, %4000
  %4007 = phi i32 [ 0, %4000 ], [ %4005, %4001 ]
  br label %4008

4008:                                             ; preds = %4006, %3995
  %4009 = phi i32 [ %3996, %3995 ], [ %4007, %4006 ]
  %4010 = icmp ne i32 %4009, 0
  br label %4011

4011:                                             ; preds = %4008, %3980
  %4012 = phi i1 [ true, %3980 ], [ %4010, %4008 ]
  %4013 = zext i1 %4012 to i32
  %4014 = icmp eq i32 0, %4013
  br i1 %4014, label %4015, label %4035

4015:                                             ; preds = %4011
  %4016 = load double, ptr %93, align 8, !tbaa !11
  %4017 = fcmp ogt double 0.000000e+00, %4016
  br i1 %4017, label %4018, label %4035

4018:                                             ; preds = %4015
  %4019 = load double, ptr %94, align 8, !tbaa !11
  %4020 = fcmp olt double 0.000000e+00, %4019
  br i1 %4020, label %4021, label %4035

4021:                                             ; preds = %4018
  %4022 = load double, ptr %93, align 8, !tbaa !11
  %4023 = fneg double %4022
  %4024 = load double, ptr %94, align 8, !tbaa !11
  %4025 = fcmp olt double %4023, %4024
  br i1 %4025, label %4026, label %4028

4026:                                             ; preds = %4021
  %4027 = load double, ptr %94, align 8, !tbaa !11
  br label %4031

4028:                                             ; preds = %4021
  %4029 = load double, ptr %93, align 8, !tbaa !11
  %4030 = fneg double %4029
  br label %4031

4031:                                             ; preds = %4028, %4026
  %4032 = phi double [ %4027, %4026 ], [ %4030, %4028 ]
  store double %4032, ptr %94, align 8, !tbaa !11
  %4033 = load double, ptr %94, align 8, !tbaa !11
  %4034 = fneg double %4033
  store double %4034, ptr %93, align 8, !tbaa !11
  br label %4035

4035:                                             ; preds = %4031, %4018, %4015, %4011
  br label %4036

4036:                                             ; preds = %4035, %3975
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #3
  %4037 = load double, ptr %93, align 8, !tbaa !11
  %4038 = fcmp ole double 0.000000e+00, %4037
  %4039 = zext i1 %4038 to i64
  %4040 = select i1 %4038, double 0.000000e+00, double -1.000000e+00
  store double %4040, ptr %99, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #3
  %4041 = load double, ptr %94, align 8, !tbaa !11
  %4042 = fcmp ole double 0.000000e+00, %4041
  %4043 = zext i1 %4042 to i64
  %4044 = select i1 %4042, double 1.000000e+00, double 0.000000e+00
  store double %4044, ptr %100, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #3
  %4045 = load i8, ptr %92, align 1, !tbaa !17
  %4046 = uitofp i8 %4045 to double
  %4047 = load double, ptr %93, align 8, !tbaa !11
  %4048 = fsub double %4046, %4047
  %4049 = load double, ptr %100, align 8, !tbaa !11
  %4050 = load double, ptr %99, align 8, !tbaa !11
  %4051 = fsub double %4049, %4050
  %4052 = fmul double %4048, %4051
  %4053 = load double, ptr %94, align 8, !tbaa !11
  %4054 = load double, ptr %93, align 8, !tbaa !11
  %4055 = fsub double %4053, %4054
  %4056 = fdiv double %4052, %4055
  %4057 = load double, ptr %99, align 8, !tbaa !11
  %4058 = fadd double %4056, %4057
  store double %4058, ptr %101, align 8, !tbaa !11
  %4059 = load double, ptr %99, align 8, !tbaa !11
  %4060 = load double, ptr %101, align 8, !tbaa !11
  %4061 = fcmp ole double 0.000000e+00, %4060
  br i1 %4061, label %4062, label %4065

4062:                                             ; preds = %4036
  %4063 = load double, ptr %101, align 8, !tbaa !11
  %4064 = fadd double %4063, 0.000000e+00
  br label %4068

4065:                                             ; preds = %4036
  %4066 = load double, ptr %101, align 8, !tbaa !11
  %4067 = fsub double %4066, 0.000000e+00
  br label %4068

4068:                                             ; preds = %4065, %4062
  %4069 = phi double [ %4064, %4062 ], [ %4067, %4065 ]
  %4070 = fcmp olt double %4059, %4069
  br i1 %4070, label %4071, label %4125

4071:                                             ; preds = %4068
  %4072 = load double, ptr %101, align 8, !tbaa !11
  %4073 = fcmp ole double 0.000000e+00, %4072
  br i1 %4073, label %4074, label %4077

4074:                                             ; preds = %4071
  %4075 = load double, ptr %101, align 8, !tbaa !11
  %4076 = fadd double %4075, 0.000000e+00
  br label %4080

4077:                                             ; preds = %4071
  %4078 = load double, ptr %101, align 8, !tbaa !11
  %4079 = fsub double %4078, 0.000000e+00
  br label %4080

4080:                                             ; preds = %4077, %4074
  %4081 = phi double [ %4076, %4074 ], [ %4079, %4077 ]
  %4082 = load double, ptr %100, align 8, !tbaa !11
  %4083 = fcmp ole double %4081, %4082
  br i1 %4083, label %4084, label %4095

4084:                                             ; preds = %4080
  %4085 = load double, ptr %101, align 8, !tbaa !11
  %4086 = fcmp ole double 0.000000e+00, %4085
  br i1 %4086, label %4087, label %4090

4087:                                             ; preds = %4084
  %4088 = load double, ptr %101, align 8, !tbaa !11
  %4089 = fadd double %4088, 0.000000e+00
  br label %4093

4090:                                             ; preds = %4084
  %4091 = load double, ptr %101, align 8, !tbaa !11
  %4092 = fsub double %4091, 0.000000e+00
  br label %4093

4093:                                             ; preds = %4090, %4087
  %4094 = phi double [ %4089, %4087 ], [ %4092, %4090 ]
  br label %4123

4095:                                             ; preds = %4080
  %4096 = load double, ptr %101, align 8, !tbaa !11
  %4097 = fcmp ole double 0.000000e+00, %4096
  br i1 %4097, label %4098, label %4101

4098:                                             ; preds = %4095
  %4099 = load double, ptr %101, align 8, !tbaa !11
  %4100 = fadd double %4099, 0.000000e+00
  br label %4104

4101:                                             ; preds = %4095
  %4102 = load double, ptr %101, align 8, !tbaa !11
  %4103 = fsub double %4102, 0.000000e+00
  br label %4104

4104:                                             ; preds = %4101, %4098
  %4105 = phi double [ %4100, %4098 ], [ %4103, %4101 ]
  %4106 = load double, ptr %100, align 8, !tbaa !11
  %4107 = fcmp olt double %4105, %4106
  br i1 %4107, label %4108, label %4119

4108:                                             ; preds = %4104
  %4109 = load double, ptr %101, align 8, !tbaa !11
  %4110 = fcmp ole double 0.000000e+00, %4109
  br i1 %4110, label %4111, label %4114

4111:                                             ; preds = %4108
  %4112 = load double, ptr %101, align 8, !tbaa !11
  %4113 = fadd double %4112, 0.000000e+00
  br label %4117

4114:                                             ; preds = %4108
  %4115 = load double, ptr %101, align 8, !tbaa !11
  %4116 = fsub double %4115, 0.000000e+00
  br label %4117

4117:                                             ; preds = %4114, %4111
  %4118 = phi double [ %4113, %4111 ], [ %4116, %4114 ]
  br label %4121

4119:                                             ; preds = %4104
  %4120 = load double, ptr %100, align 8, !tbaa !11
  br label %4121

4121:                                             ; preds = %4119, %4117
  %4122 = phi double [ %4118, %4117 ], [ %4120, %4119 ]
  br label %4123

4123:                                             ; preds = %4121, %4093
  %4124 = phi double [ %4094, %4093 ], [ %4122, %4121 ]
  br label %4153

4125:                                             ; preds = %4068
  %4126 = load double, ptr %99, align 8, !tbaa !11
  %4127 = load double, ptr %101, align 8, !tbaa !11
  %4128 = fcmp ole double 0.000000e+00, %4127
  br i1 %4128, label %4129, label %4132

4129:                                             ; preds = %4125
  %4130 = load double, ptr %101, align 8, !tbaa !11
  %4131 = fadd double %4130, 0.000000e+00
  br label %4135

4132:                                             ; preds = %4125
  %4133 = load double, ptr %101, align 8, !tbaa !11
  %4134 = fsub double %4133, 0.000000e+00
  br label %4135

4135:                                             ; preds = %4132, %4129
  %4136 = phi double [ %4131, %4129 ], [ %4134, %4132 ]
  %4137 = fcmp olt double %4126, %4136
  br i1 %4137, label %4138, label %4149

4138:                                             ; preds = %4135
  %4139 = load double, ptr %101, align 8, !tbaa !11
  %4140 = fcmp ole double 0.000000e+00, %4139
  br i1 %4140, label %4141, label %4144

4141:                                             ; preds = %4138
  %4142 = load double, ptr %101, align 8, !tbaa !11
  %4143 = fadd double %4142, 0.000000e+00
  br label %4147

4144:                                             ; preds = %4138
  %4145 = load double, ptr %101, align 8, !tbaa !11
  %4146 = fsub double %4145, 0.000000e+00
  br label %4147

4147:                                             ; preds = %4144, %4141
  %4148 = phi double [ %4143, %4141 ], [ %4146, %4144 ]
  br label %4151

4149:                                             ; preds = %4135
  %4150 = load double, ptr %99, align 8, !tbaa !11
  br label %4151

4151:                                             ; preds = %4149, %4147
  %4152 = phi double [ %4148, %4147 ], [ %4150, %4149 ]
  br label %4153

4153:                                             ; preds = %4151, %4123
  %4154 = phi double [ %4124, %4123 ], [ %4152, %4151 ]
  %4155 = load ptr, ptr %7, align 8, !tbaa !5
  store double %4154, ptr %4155, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #3
  br label %4239

4156:                                             ; preds = %3919, %3916
  %4157 = load i32, ptr %8, align 4, !tbaa !9
  %4158 = icmp ugt i32 6, %4157
  br i1 %4158, label %4187, label %4159

4159:                                             ; preds = %4156
  %4160 = load i32, ptr %8, align 4, !tbaa !9
  %4161 = icmp ugt i32 15, %4160
  br i1 %4161, label %4162, label %4173

4162:                                             ; preds = %4159
  %4163 = load i32, ptr %9, align 4, !tbaa !9
  %4164 = icmp ugt i32 15, %4163
  br i1 %4164, label %4165, label %4170

4165:                                             ; preds = %4162
  %4166 = load i32, ptr %9, align 4, !tbaa !9
  %4167 = load i32, ptr %8, align 4, !tbaa !9
  %4168 = icmp ugt i32 %4166, %4167
  %4169 = zext i1 %4168 to i32
  br label %4171

4170:                                             ; preds = %4162
  br label %4171

4171:                                             ; preds = %4170, %4165
  %4172 = phi i32 [ %4169, %4165 ], [ 0, %4170 ]
  br label %4184

4173:                                             ; preds = %4159
  %4174 = load i32, ptr %9, align 4, !tbaa !9
  %4175 = icmp ugt i32 15, %4174
  br i1 %4175, label %4176, label %4177

4176:                                             ; preds = %4173
  br label %4182

4177:                                             ; preds = %4173
  %4178 = load i32, ptr %9, align 4, !tbaa !9
  %4179 = load i32, ptr %8, align 4, !tbaa !9
  %4180 = icmp ugt i32 %4178, %4179
  %4181 = zext i1 %4180 to i32
  br label %4182

4182:                                             ; preds = %4177, %4176
  %4183 = phi i32 [ 0, %4176 ], [ %4181, %4177 ]
  br label %4184

4184:                                             ; preds = %4182, %4171
  %4185 = phi i32 [ %4172, %4171 ], [ %4183, %4182 ]
  %4186 = icmp ne i32 %4185, 0
  br label %4187

4187:                                             ; preds = %4184, %4156
  %4188 = phi i1 [ true, %4156 ], [ %4186, %4184 ]
  %4189 = zext i1 %4188 to i32
  %4190 = icmp eq i32 0, %4189
  br i1 %4190, label %4191, label %4234

4191:                                             ; preds = %4187
  %4192 = load i8, ptr %92, align 1, !tbaa !17
  %4193 = zext i8 %4192 to i32
  %4194 = sitofp i32 %4193 to double
  %4195 = fcmp olt double -1.000000e+00, %4194
  br i1 %4195, label %4196, label %4219

4196:                                             ; preds = %4191
  %4197 = load i8, ptr %92, align 1, !tbaa !17
  %4198 = zext i8 %4197 to i32
  %4199 = sitofp i32 %4198 to double
  %4200 = fcmp ole double %4199, 1.000000e+00
  br i1 %4200, label %4201, label %4205

4201:                                             ; preds = %4196
  %4202 = load i8, ptr %92, align 1, !tbaa !17
  %4203 = zext i8 %4202 to i32
  %4204 = sitofp i32 %4203 to double
  br label %4217

4205:                                             ; preds = %4196
  %4206 = load i8, ptr %92, align 1, !tbaa !17
  %4207 = zext i8 %4206 to i32
  %4208 = sitofp i32 %4207 to double
  %4209 = fcmp olt double %4208, 1.000000e+00
  br i1 %4209, label %4210, label %4214

4210:                                             ; preds = %4205
  %4211 = load i8, ptr %92, align 1, !tbaa !17
  %4212 = zext i8 %4211 to i32
  %4213 = sitofp i32 %4212 to double
  br label %4215

4214:                                             ; preds = %4205
  br label %4215

4215:                                             ; preds = %4214, %4210
  %4216 = phi double [ %4213, %4210 ], [ 1.000000e+00, %4214 ]
  br label %4217

4217:                                             ; preds = %4215, %4201
  %4218 = phi double [ %4204, %4201 ], [ %4216, %4215 ]
  br label %4231

4219:                                             ; preds = %4191
  %4220 = load i8, ptr %92, align 1, !tbaa !17
  %4221 = zext i8 %4220 to i32
  %4222 = sitofp i32 %4221 to double
  %4223 = fcmp olt double -1.000000e+00, %4222
  br i1 %4223, label %4224, label %4228

4224:                                             ; preds = %4219
  %4225 = load i8, ptr %92, align 1, !tbaa !17
  %4226 = zext i8 %4225 to i32
  %4227 = sitofp i32 %4226 to double
  br label %4229

4228:                                             ; preds = %4219
  br label %4229

4229:                                             ; preds = %4228, %4224
  %4230 = phi double [ %4227, %4224 ], [ -1.000000e+00, %4228 ]
  br label %4231

4231:                                             ; preds = %4229, %4217
  %4232 = phi double [ %4218, %4217 ], [ %4230, %4229 ]
  %4233 = load ptr, ptr %7, align 8, !tbaa !5
  store double %4232, ptr %4233, align 8, !tbaa !11
  br label %4238

4234:                                             ; preds = %4187
  %4235 = load i8, ptr %92, align 1, !tbaa !17
  %4236 = uitofp i8 %4235 to double
  %4237 = load ptr, ptr %7, align 8, !tbaa !5
  store double %4236, ptr %4237, align 8, !tbaa !11
  br label %4238

4238:                                             ; preds = %4234, %4231
  br label %4239

4239:                                             ; preds = %4238, %4153
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #3
  br label %4240

4240:                                             ; preds = %4239
  br label %4241

4241:                                             ; preds = %4240
  br label %5031

4242:                                             ; preds = %1428
  br label %4243

4243:                                             ; preds = %4242
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #3
  store double 0.000000e+00, ptr %102, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #3
  %4244 = load ptr, ptr %10, align 8, !tbaa !5
  %4245 = load double, ptr %4244, align 8, !tbaa !11
  store double %4245, ptr %103, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #3
  store double 0.000000e+00, ptr %104, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #3
  store double 0.000000e+00, ptr %105, align 8, !tbaa !11
  %4246 = load ptr, ptr %11, align 8, !tbaa !5
  %4247 = icmp ne ptr null, %4246
  br i1 %4247, label %4248, label %4272

4248:                                             ; preds = %4243
  %4249 = load double, ptr %103, align 8, !tbaa !11
  %4250 = load double, ptr %103, align 8, !tbaa !11
  %4251 = fcmp oeq double %4249, %4250
  br i1 %4251, label %4252, label %4272

4252:                                             ; preds = %4248
  %4253 = load ptr, ptr %12, align 8, !tbaa !5
  %4254 = icmp ne ptr null, %4253
  br i1 %4254, label %4255, label %4266

4255:                                             ; preds = %4252
  %4256 = load ptr, ptr %11, align 8, !tbaa !5
  %4257 = load double, ptr %4256, align 8, !tbaa !11
  %4258 = load double, ptr %103, align 8, !tbaa !11
  %4259 = fcmp ole double %4257, %4258
  br i1 %4259, label %4260, label %4266

4260:                                             ; preds = %4255
  %4261 = load double, ptr %103, align 8, !tbaa !11
  %4262 = load ptr, ptr %12, align 8, !tbaa !5
  %4263 = load double, ptr %4262, align 8, !tbaa !11
  %4264 = fcmp ole double %4261, %4263
  br i1 %4264, label %4265, label %4266

4265:                                             ; preds = %4260
  br label %4267

4266:                                             ; preds = %4260, %4255, %4252
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.24, i32 noundef 467, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

4267:                                             ; preds = %4265
  %4268 = load ptr, ptr %11, align 8, !tbaa !5
  %4269 = load double, ptr %4268, align 8, !tbaa !11
  store double %4269, ptr %104, align 8, !tbaa !11
  %4270 = load ptr, ptr %12, align 8, !tbaa !5
  %4271 = load double, ptr %4270, align 8, !tbaa !11
  store double %4271, ptr %105, align 8, !tbaa !11
  br label %4272

4272:                                             ; preds = %4267, %4248, %4243
  %4273 = load i32, ptr %8, align 4, !tbaa !9
  %4274 = icmp ule i32 6, %4273
  br i1 %4274, label %4275, label %4497

4275:                                             ; preds = %4272
  %4276 = load double, ptr %104, align 8, !tbaa !11
  %4277 = load double, ptr %105, align 8, !tbaa !11
  %4278 = fcmp olt double %4276, %4277
  br i1 %4278, label %4279, label %4497

4279:                                             ; preds = %4275
  %4280 = load i32, ptr %8, align 4, !tbaa !9
  %4281 = icmp ule i32 15, %4280
  br i1 %4281, label %4282, label %4322

4282:                                             ; preds = %4279
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #3
  %4283 = load double, ptr %104, align 8, !tbaa !11
  %4284 = fcmp olt double 0.000000e+00, %4283
  br i1 %4284, label %4285, label %4287

4285:                                             ; preds = %4282
  %4286 = load double, ptr %104, align 8, !tbaa !11
  br label %4288

4287:                                             ; preds = %4282
  br label %4288

4288:                                             ; preds = %4287, %4285
  %4289 = phi double [ %4286, %4285 ], [ 0.000000e+00, %4287 ]
  store double %4289, ptr %106, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #3
  %4290 = load double, ptr %105, align 8, !tbaa !11
  %4291 = fcmp olt double 0.000000e+00, %4290
  br i1 %4291, label %4292, label %4294

4292:                                             ; preds = %4288
  %4293 = load double, ptr %105, align 8, !tbaa !11
  br label %4295

4294:                                             ; preds = %4288
  br label %4295

4295:                                             ; preds = %4294, %4292
  %4296 = phi double [ %4293, %4292 ], [ 0.000000e+00, %4294 ]
  store double %4296, ptr %107, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #3
  %4297 = load double, ptr %106, align 8, !tbaa !11
  %4298 = load double, ptr %107, align 8, !tbaa !11
  %4299 = fcmp olt double %4297, %4298
  br i1 %4299, label %4300, label %4308

4300:                                             ; preds = %4295
  %4301 = load double, ptr %105, align 8, !tbaa !11
  %4302 = load double, ptr %104, align 8, !tbaa !11
  %4303 = fsub double %4301, %4302
  %4304 = load double, ptr %107, align 8, !tbaa !11
  %4305 = load double, ptr %106, align 8, !tbaa !11
  %4306 = fsub double %4304, %4305
  %4307 = fdiv double %4303, %4306
  br label %4309

4308:                                             ; preds = %4295
  br label %4309

4309:                                             ; preds = %4308, %4300
  %4310 = phi double [ %4307, %4300 ], [ 1.000000e+00, %4308 ]
  store double %4310, ptr %108, align 8, !tbaa !11
  %4311 = load double, ptr %108, align 8, !tbaa !11
  %4312 = load double, ptr %103, align 8, !tbaa !11
  %4313 = fcmp olt double 0.000000e+00, %4312
  br i1 %4313, label %4314, label %4316

4314:                                             ; preds = %4309
  %4315 = load double, ptr %103, align 8, !tbaa !11
  br label %4317

4316:                                             ; preds = %4309
  br label %4317

4317:                                             ; preds = %4316, %4314
  %4318 = phi double [ %4315, %4314 ], [ 0.000000e+00, %4316 ]
  %4319 = fmul double %4311, %4318
  store double %4319, ptr %103, align 8, !tbaa !11
  %4320 = load double, ptr %106, align 8, !tbaa !11
  store double %4320, ptr %104, align 8, !tbaa !11
  %4321 = load double, ptr %107, align 8, !tbaa !11
  store double %4321, ptr %105, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #3
  br label %4378

4322:                                             ; preds = %4279
  %4323 = load i32, ptr %8, align 4, !tbaa !9
  %4324 = icmp ugt i32 6, %4323
  br i1 %4324, label %4353, label %4325

4325:                                             ; preds = %4322
  %4326 = load i32, ptr %8, align 4, !tbaa !9
  %4327 = icmp ugt i32 15, %4326
  br i1 %4327, label %4328, label %4339

4328:                                             ; preds = %4325
  %4329 = load i32, ptr %9, align 4, !tbaa !9
  %4330 = icmp ugt i32 15, %4329
  br i1 %4330, label %4331, label %4336

4331:                                             ; preds = %4328
  %4332 = load i32, ptr %9, align 4, !tbaa !9
  %4333 = load i32, ptr %8, align 4, !tbaa !9
  %4334 = icmp ugt i32 %4332, %4333
  %4335 = zext i1 %4334 to i32
  br label %4337

4336:                                             ; preds = %4328
  br label %4337

4337:                                             ; preds = %4336, %4331
  %4338 = phi i32 [ %4335, %4331 ], [ 0, %4336 ]
  br label %4350

4339:                                             ; preds = %4325
  %4340 = load i32, ptr %9, align 4, !tbaa !9
  %4341 = icmp ugt i32 15, %4340
  br i1 %4341, label %4342, label %4343

4342:                                             ; preds = %4339
  br label %4348

4343:                                             ; preds = %4339
  %4344 = load i32, ptr %9, align 4, !tbaa !9
  %4345 = load i32, ptr %8, align 4, !tbaa !9
  %4346 = icmp ugt i32 %4344, %4345
  %4347 = zext i1 %4346 to i32
  br label %4348

4348:                                             ; preds = %4343, %4342
  %4349 = phi i32 [ 0, %4342 ], [ %4347, %4343 ]
  br label %4350

4350:                                             ; preds = %4348, %4337
  %4351 = phi i32 [ %4338, %4337 ], [ %4349, %4348 ]
  %4352 = icmp ne i32 %4351, 0
  br label %4353

4353:                                             ; preds = %4350, %4322
  %4354 = phi i1 [ true, %4322 ], [ %4352, %4350 ]
  %4355 = zext i1 %4354 to i32
  %4356 = icmp eq i32 0, %4355
  br i1 %4356, label %4357, label %4377

4357:                                             ; preds = %4353
  %4358 = load double, ptr %104, align 8, !tbaa !11
  %4359 = fcmp ogt double 0.000000e+00, %4358
  br i1 %4359, label %4360, label %4377

4360:                                             ; preds = %4357
  %4361 = load double, ptr %105, align 8, !tbaa !11
  %4362 = fcmp olt double 0.000000e+00, %4361
  br i1 %4362, label %4363, label %4377

4363:                                             ; preds = %4360
  %4364 = load double, ptr %104, align 8, !tbaa !11
  %4365 = fneg double %4364
  %4366 = load double, ptr %105, align 8, !tbaa !11
  %4367 = fcmp olt double %4365, %4366
  br i1 %4367, label %4368, label %4370

4368:                                             ; preds = %4363
  %4369 = load double, ptr %105, align 8, !tbaa !11
  br label %4373

4370:                                             ; preds = %4363
  %4371 = load double, ptr %104, align 8, !tbaa !11
  %4372 = fneg double %4371
  br label %4373

4373:                                             ; preds = %4370, %4368
  %4374 = phi double [ %4369, %4368 ], [ %4372, %4370 ]
  store double %4374, ptr %105, align 8, !tbaa !11
  %4375 = load double, ptr %105, align 8, !tbaa !11
  %4376 = fneg double %4375
  store double %4376, ptr %104, align 8, !tbaa !11
  br label %4377

4377:                                             ; preds = %4373, %4360, %4357, %4353
  br label %4378

4378:                                             ; preds = %4377, %4317
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #3
  %4379 = load double, ptr %104, align 8, !tbaa !11
  %4380 = fcmp ole double 0.000000e+00, %4379
  %4381 = zext i1 %4380 to i64
  %4382 = select i1 %4380, double 0.000000e+00, double -1.000000e+00
  store double %4382, ptr %109, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #3
  %4383 = load double, ptr %105, align 8, !tbaa !11
  %4384 = fcmp ole double 0.000000e+00, %4383
  %4385 = zext i1 %4384 to i64
  %4386 = select i1 %4384, double 1.000000e+00, double 0.000000e+00
  store double %4386, ptr %110, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #3
  %4387 = load double, ptr %103, align 8, !tbaa !11
  %4388 = load double, ptr %104, align 8, !tbaa !11
  %4389 = fsub double %4387, %4388
  %4390 = load double, ptr %110, align 8, !tbaa !11
  %4391 = load double, ptr %109, align 8, !tbaa !11
  %4392 = fsub double %4390, %4391
  %4393 = fmul double %4389, %4392
  %4394 = load double, ptr %105, align 8, !tbaa !11
  %4395 = load double, ptr %104, align 8, !tbaa !11
  %4396 = fsub double %4394, %4395
  %4397 = fdiv double %4393, %4396
  %4398 = load double, ptr %109, align 8, !tbaa !11
  %4399 = fadd double %4397, %4398
  store double %4399, ptr %111, align 8, !tbaa !11
  %4400 = load double, ptr %109, align 8, !tbaa !11
  %4401 = load double, ptr %111, align 8, !tbaa !11
  %4402 = fcmp ole double 0.000000e+00, %4401
  br i1 %4402, label %4403, label %4406

4403:                                             ; preds = %4378
  %4404 = load double, ptr %111, align 8, !tbaa !11
  %4405 = fadd double %4404, 0.000000e+00
  br label %4409

4406:                                             ; preds = %4378
  %4407 = load double, ptr %111, align 8, !tbaa !11
  %4408 = fsub double %4407, 0.000000e+00
  br label %4409

4409:                                             ; preds = %4406, %4403
  %4410 = phi double [ %4405, %4403 ], [ %4408, %4406 ]
  %4411 = fcmp olt double %4400, %4410
  br i1 %4411, label %4412, label %4466

4412:                                             ; preds = %4409
  %4413 = load double, ptr %111, align 8, !tbaa !11
  %4414 = fcmp ole double 0.000000e+00, %4413
  br i1 %4414, label %4415, label %4418

4415:                                             ; preds = %4412
  %4416 = load double, ptr %111, align 8, !tbaa !11
  %4417 = fadd double %4416, 0.000000e+00
  br label %4421

4418:                                             ; preds = %4412
  %4419 = load double, ptr %111, align 8, !tbaa !11
  %4420 = fsub double %4419, 0.000000e+00
  br label %4421

4421:                                             ; preds = %4418, %4415
  %4422 = phi double [ %4417, %4415 ], [ %4420, %4418 ]
  %4423 = load double, ptr %110, align 8, !tbaa !11
  %4424 = fcmp ole double %4422, %4423
  br i1 %4424, label %4425, label %4436

4425:                                             ; preds = %4421
  %4426 = load double, ptr %111, align 8, !tbaa !11
  %4427 = fcmp ole double 0.000000e+00, %4426
  br i1 %4427, label %4428, label %4431

4428:                                             ; preds = %4425
  %4429 = load double, ptr %111, align 8, !tbaa !11
  %4430 = fadd double %4429, 0.000000e+00
  br label %4434

4431:                                             ; preds = %4425
  %4432 = load double, ptr %111, align 8, !tbaa !11
  %4433 = fsub double %4432, 0.000000e+00
  br label %4434

4434:                                             ; preds = %4431, %4428
  %4435 = phi double [ %4430, %4428 ], [ %4433, %4431 ]
  br label %4464

4436:                                             ; preds = %4421
  %4437 = load double, ptr %111, align 8, !tbaa !11
  %4438 = fcmp ole double 0.000000e+00, %4437
  br i1 %4438, label %4439, label %4442

4439:                                             ; preds = %4436
  %4440 = load double, ptr %111, align 8, !tbaa !11
  %4441 = fadd double %4440, 0.000000e+00
  br label %4445

4442:                                             ; preds = %4436
  %4443 = load double, ptr %111, align 8, !tbaa !11
  %4444 = fsub double %4443, 0.000000e+00
  br label %4445

4445:                                             ; preds = %4442, %4439
  %4446 = phi double [ %4441, %4439 ], [ %4444, %4442 ]
  %4447 = load double, ptr %110, align 8, !tbaa !11
  %4448 = fcmp olt double %4446, %4447
  br i1 %4448, label %4449, label %4460

4449:                                             ; preds = %4445
  %4450 = load double, ptr %111, align 8, !tbaa !11
  %4451 = fcmp ole double 0.000000e+00, %4450
  br i1 %4451, label %4452, label %4455

4452:                                             ; preds = %4449
  %4453 = load double, ptr %111, align 8, !tbaa !11
  %4454 = fadd double %4453, 0.000000e+00
  br label %4458

4455:                                             ; preds = %4449
  %4456 = load double, ptr %111, align 8, !tbaa !11
  %4457 = fsub double %4456, 0.000000e+00
  br label %4458

4458:                                             ; preds = %4455, %4452
  %4459 = phi double [ %4454, %4452 ], [ %4457, %4455 ]
  br label %4462

4460:                                             ; preds = %4445
  %4461 = load double, ptr %110, align 8, !tbaa !11
  br label %4462

4462:                                             ; preds = %4460, %4458
  %4463 = phi double [ %4459, %4458 ], [ %4461, %4460 ]
  br label %4464

4464:                                             ; preds = %4462, %4434
  %4465 = phi double [ %4435, %4434 ], [ %4463, %4462 ]
  br label %4494

4466:                                             ; preds = %4409
  %4467 = load double, ptr %109, align 8, !tbaa !11
  %4468 = load double, ptr %111, align 8, !tbaa !11
  %4469 = fcmp ole double 0.000000e+00, %4468
  br i1 %4469, label %4470, label %4473

4470:                                             ; preds = %4466
  %4471 = load double, ptr %111, align 8, !tbaa !11
  %4472 = fadd double %4471, 0.000000e+00
  br label %4476

4473:                                             ; preds = %4466
  %4474 = load double, ptr %111, align 8, !tbaa !11
  %4475 = fsub double %4474, 0.000000e+00
  br label %4476

4476:                                             ; preds = %4473, %4470
  %4477 = phi double [ %4472, %4470 ], [ %4475, %4473 ]
  %4478 = fcmp olt double %4467, %4477
  br i1 %4478, label %4479, label %4490

4479:                                             ; preds = %4476
  %4480 = load double, ptr %111, align 8, !tbaa !11
  %4481 = fcmp ole double 0.000000e+00, %4480
  br i1 %4481, label %4482, label %4485

4482:                                             ; preds = %4479
  %4483 = load double, ptr %111, align 8, !tbaa !11
  %4484 = fadd double %4483, 0.000000e+00
  br label %4488

4485:                                             ; preds = %4479
  %4486 = load double, ptr %111, align 8, !tbaa !11
  %4487 = fsub double %4486, 0.000000e+00
  br label %4488

4488:                                             ; preds = %4485, %4482
  %4489 = phi double [ %4484, %4482 ], [ %4487, %4485 ]
  br label %4492

4490:                                             ; preds = %4476
  %4491 = load double, ptr %109, align 8, !tbaa !11
  br label %4492

4492:                                             ; preds = %4490, %4488
  %4493 = phi double [ %4489, %4488 ], [ %4491, %4490 ]
  br label %4494

4494:                                             ; preds = %4492, %4464
  %4495 = phi double [ %4465, %4464 ], [ %4493, %4492 ]
  %4496 = load ptr, ptr %7, align 8, !tbaa !5
  store double %4495, ptr %4496, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #3
  br label %4621

4497:                                             ; preds = %4275, %4272
  %4498 = load i32, ptr %8, align 4, !tbaa !9
  %4499 = icmp ugt i32 6, %4498
  br i1 %4499, label %4528, label %4500

4500:                                             ; preds = %4497
  %4501 = load i32, ptr %8, align 4, !tbaa !9
  %4502 = icmp ugt i32 15, %4501
  br i1 %4502, label %4503, label %4514

4503:                                             ; preds = %4500
  %4504 = load i32, ptr %9, align 4, !tbaa !9
  %4505 = icmp ugt i32 15, %4504
  br i1 %4505, label %4506, label %4511

4506:                                             ; preds = %4503
  %4507 = load i32, ptr %9, align 4, !tbaa !9
  %4508 = load i32, ptr %8, align 4, !tbaa !9
  %4509 = icmp ugt i32 %4507, %4508
  %4510 = zext i1 %4509 to i32
  br label %4512

4511:                                             ; preds = %4503
  br label %4512

4512:                                             ; preds = %4511, %4506
  %4513 = phi i32 [ %4510, %4506 ], [ 0, %4511 ]
  br label %4525

4514:                                             ; preds = %4500
  %4515 = load i32, ptr %9, align 4, !tbaa !9
  %4516 = icmp ugt i32 15, %4515
  br i1 %4516, label %4517, label %4518

4517:                                             ; preds = %4514
  br label %4523

4518:                                             ; preds = %4514
  %4519 = load i32, ptr %9, align 4, !tbaa !9
  %4520 = load i32, ptr %8, align 4, !tbaa !9
  %4521 = icmp ugt i32 %4519, %4520
  %4522 = zext i1 %4521 to i32
  br label %4523

4523:                                             ; preds = %4518, %4517
  %4524 = phi i32 [ 0, %4517 ], [ %4522, %4518 ]
  br label %4525

4525:                                             ; preds = %4523, %4512
  %4526 = phi i32 [ %4513, %4512 ], [ %4524, %4523 ]
  %4527 = icmp ne i32 %4526, 0
  br label %4528

4528:                                             ; preds = %4525, %4497
  %4529 = phi i1 [ true, %4497 ], [ %4527, %4525 ]
  %4530 = zext i1 %4529 to i32
  %4531 = icmp eq i32 0, %4530
  br i1 %4531, label %4532, label %4608

4532:                                             ; preds = %4528
  %4533 = load double, ptr %103, align 8, !tbaa !11
  %4534 = fcmp ole double 0.000000e+00, %4533
  br i1 %4534, label %4535, label %4570

4535:                                             ; preds = %4532
  %4536 = load double, ptr %103, align 8, !tbaa !11
  %4537 = fadd double %4536, 0.000000e+00
  %4538 = fcmp olt double -1.000000e+00, %4537
  br i1 %4538, label %4539, label %4558

4539:                                             ; preds = %4535
  %4540 = load double, ptr %103, align 8, !tbaa !11
  %4541 = fadd double %4540, 0.000000e+00
  %4542 = fcmp ole double %4541, 1.000000e+00
  br i1 %4542, label %4543, label %4546

4543:                                             ; preds = %4539
  %4544 = load double, ptr %103, align 8, !tbaa !11
  %4545 = fadd double %4544, 0.000000e+00
  br label %4556

4546:                                             ; preds = %4539
  %4547 = load double, ptr %103, align 8, !tbaa !11
  %4548 = fadd double %4547, 0.000000e+00
  %4549 = fcmp olt double %4548, 1.000000e+00
  br i1 %4549, label %4550, label %4553

4550:                                             ; preds = %4546
  %4551 = load double, ptr %103, align 8, !tbaa !11
  %4552 = fadd double %4551, 0.000000e+00
  br label %4554

4553:                                             ; preds = %4546
  br label %4554

4554:                                             ; preds = %4553, %4550
  %4555 = phi double [ %4552, %4550 ], [ 1.000000e+00, %4553 ]
  br label %4556

4556:                                             ; preds = %4554, %4543
  %4557 = phi double [ %4545, %4543 ], [ %4555, %4554 ]
  br label %4568

4558:                                             ; preds = %4535
  %4559 = load double, ptr %103, align 8, !tbaa !11
  %4560 = fadd double %4559, 0.000000e+00
  %4561 = fcmp olt double -1.000000e+00, %4560
  br i1 %4561, label %4562, label %4565

4562:                                             ; preds = %4558
  %4563 = load double, ptr %103, align 8, !tbaa !11
  %4564 = fadd double %4563, 0.000000e+00
  br label %4566

4565:                                             ; preds = %4558
  br label %4566

4566:                                             ; preds = %4565, %4562
  %4567 = phi double [ %4564, %4562 ], [ -1.000000e+00, %4565 ]
  br label %4568

4568:                                             ; preds = %4566, %4556
  %4569 = phi double [ %4557, %4556 ], [ %4567, %4566 ]
  br label %4605

4570:                                             ; preds = %4532
  %4571 = load double, ptr %103, align 8, !tbaa !11
  %4572 = fsub double %4571, 0.000000e+00
  %4573 = fcmp olt double -1.000000e+00, %4572
  br i1 %4573, label %4574, label %4593

4574:                                             ; preds = %4570
  %4575 = load double, ptr %103, align 8, !tbaa !11
  %4576 = fsub double %4575, 0.000000e+00
  %4577 = fcmp ole double %4576, 1.000000e+00
  br i1 %4577, label %4578, label %4581

4578:                                             ; preds = %4574
  %4579 = load double, ptr %103, align 8, !tbaa !11
  %4580 = fsub double %4579, 0.000000e+00
  br label %4591

4581:                                             ; preds = %4574
  %4582 = load double, ptr %103, align 8, !tbaa !11
  %4583 = fsub double %4582, 0.000000e+00
  %4584 = fcmp olt double %4583, 1.000000e+00
  br i1 %4584, label %4585, label %4588

4585:                                             ; preds = %4581
  %4586 = load double, ptr %103, align 8, !tbaa !11
  %4587 = fsub double %4586, 0.000000e+00
  br label %4589

4588:                                             ; preds = %4581
  br label %4589

4589:                                             ; preds = %4588, %4585
  %4590 = phi double [ %4587, %4585 ], [ 1.000000e+00, %4588 ]
  br label %4591

4591:                                             ; preds = %4589, %4578
  %4592 = phi double [ %4580, %4578 ], [ %4590, %4589 ]
  br label %4603

4593:                                             ; preds = %4570
  %4594 = load double, ptr %103, align 8, !tbaa !11
  %4595 = fsub double %4594, 0.000000e+00
  %4596 = fcmp olt double -1.000000e+00, %4595
  br i1 %4596, label %4597, label %4600

4597:                                             ; preds = %4593
  %4598 = load double, ptr %103, align 8, !tbaa !11
  %4599 = fsub double %4598, 0.000000e+00
  br label %4601

4600:                                             ; preds = %4593
  br label %4601

4601:                                             ; preds = %4600, %4597
  %4602 = phi double [ %4599, %4597 ], [ -1.000000e+00, %4600 ]
  br label %4603

4603:                                             ; preds = %4601, %4591
  %4604 = phi double [ %4592, %4591 ], [ %4602, %4601 ]
  br label %4605

4605:                                             ; preds = %4603, %4568
  %4606 = phi double [ %4569, %4568 ], [ %4604, %4603 ]
  %4607 = load ptr, ptr %7, align 8, !tbaa !5
  store double %4606, ptr %4607, align 8, !tbaa !11
  br label %4620

4608:                                             ; preds = %4528
  %4609 = load double, ptr %103, align 8, !tbaa !11
  %4610 = fcmp ole double 0.000000e+00, %4609
  br i1 %4610, label %4611, label %4614

4611:                                             ; preds = %4608
  %4612 = load double, ptr %103, align 8, !tbaa !11
  %4613 = fadd double %4612, 0.000000e+00
  br label %4617

4614:                                             ; preds = %4608
  %4615 = load double, ptr %103, align 8, !tbaa !11
  %4616 = fsub double %4615, 0.000000e+00
  br label %4617

4617:                                             ; preds = %4614, %4611
  %4618 = phi double [ %4613, %4611 ], [ %4616, %4614 ]
  %4619 = load ptr, ptr %7, align 8, !tbaa !5
  store double %4618, ptr %4619, align 8, !tbaa !11
  br label %4620

4620:                                             ; preds = %4617, %4605
  br label %4621

4621:                                             ; preds = %4620, %4494
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #3
  br label %4622

4622:                                             ; preds = %4621
  br label %4623

4623:                                             ; preds = %4622
  br label %5031

4624:                                             ; preds = %1428
  br label %4625

4625:                                             ; preds = %4624
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #3
  store double 0.000000e+00, ptr %112, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #3
  %4626 = load ptr, ptr %10, align 8, !tbaa !5
  %4627 = load float, ptr %4626, align 4, !tbaa !18
  store float %4627, ptr %113, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #3
  store double 0.000000e+00, ptr %114, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #3
  store double 0.000000e+00, ptr %115, align 8, !tbaa !11
  %4628 = load ptr, ptr %11, align 8, !tbaa !5
  %4629 = icmp ne ptr null, %4628
  br i1 %4629, label %4630, label %4656

4630:                                             ; preds = %4625
  %4631 = load float, ptr %113, align 4, !tbaa !18
  %4632 = load float, ptr %113, align 4, !tbaa !18
  %4633 = fcmp oeq float %4631, %4632
  br i1 %4633, label %4634, label %4656

4634:                                             ; preds = %4630
  %4635 = load ptr, ptr %12, align 8, !tbaa !5
  %4636 = icmp ne ptr null, %4635
  br i1 %4636, label %4637, label %4648

4637:                                             ; preds = %4634
  %4638 = load ptr, ptr %11, align 8, !tbaa !5
  %4639 = load float, ptr %4638, align 4, !tbaa !18
  %4640 = load float, ptr %113, align 4, !tbaa !18
  %4641 = fcmp ole float %4639, %4640
  br i1 %4641, label %4642, label %4648

4642:                                             ; preds = %4637
  %4643 = load float, ptr %113, align 4, !tbaa !18
  %4644 = load ptr, ptr %12, align 8, !tbaa !5
  %4645 = load float, ptr %4644, align 4, !tbaa !18
  %4646 = fcmp ole float %4643, %4645
  br i1 %4646, label %4647, label %4648

4647:                                             ; preds = %4642
  br label %4649

4648:                                             ; preds = %4642, %4637, %4634
  call void @__assert_fail(ptr noundef @.str.51, ptr noundef @.str.24, i32 noundef 467, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

4649:                                             ; preds = %4647
  %4650 = load ptr, ptr %11, align 8, !tbaa !5
  %4651 = load float, ptr %4650, align 4, !tbaa !18
  %4652 = fpext float %4651 to double
  store double %4652, ptr %114, align 8, !tbaa !11
  %4653 = load ptr, ptr %12, align 8, !tbaa !5
  %4654 = load float, ptr %4653, align 4, !tbaa !18
  %4655 = fpext float %4654 to double
  store double %4655, ptr %115, align 8, !tbaa !11
  br label %4656

4656:                                             ; preds = %4649, %4630, %4625
  %4657 = load i32, ptr %8, align 4, !tbaa !9
  %4658 = icmp ule i32 6, %4657
  br i1 %4658, label %4659, label %4884

4659:                                             ; preds = %4656
  %4660 = load double, ptr %114, align 8, !tbaa !11
  %4661 = load double, ptr %115, align 8, !tbaa !11
  %4662 = fcmp olt double %4660, %4661
  br i1 %4662, label %4663, label %4884

4663:                                             ; preds = %4659
  %4664 = load i32, ptr %8, align 4, !tbaa !9
  %4665 = icmp ule i32 15, %4664
  br i1 %4665, label %4666, label %4708

4666:                                             ; preds = %4663
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #3
  %4667 = load double, ptr %114, align 8, !tbaa !11
  %4668 = fcmp olt double 0.000000e+00, %4667
  br i1 %4668, label %4669, label %4671

4669:                                             ; preds = %4666
  %4670 = load double, ptr %114, align 8, !tbaa !11
  br label %4672

4671:                                             ; preds = %4666
  br label %4672

4672:                                             ; preds = %4671, %4669
  %4673 = phi double [ %4670, %4669 ], [ 0.000000e+00, %4671 ]
  store double %4673, ptr %116, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #3
  %4674 = load double, ptr %115, align 8, !tbaa !11
  %4675 = fcmp olt double 0.000000e+00, %4674
  br i1 %4675, label %4676, label %4678

4676:                                             ; preds = %4672
  %4677 = load double, ptr %115, align 8, !tbaa !11
  br label %4679

4678:                                             ; preds = %4672
  br label %4679

4679:                                             ; preds = %4678, %4676
  %4680 = phi double [ %4677, %4676 ], [ 0.000000e+00, %4678 ]
  store double %4680, ptr %117, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #3
  %4681 = load double, ptr %116, align 8, !tbaa !11
  %4682 = load double, ptr %117, align 8, !tbaa !11
  %4683 = fcmp olt double %4681, %4682
  br i1 %4683, label %4684, label %4692

4684:                                             ; preds = %4679
  %4685 = load double, ptr %115, align 8, !tbaa !11
  %4686 = load double, ptr %114, align 8, !tbaa !11
  %4687 = fsub double %4685, %4686
  %4688 = load double, ptr %117, align 8, !tbaa !11
  %4689 = load double, ptr %116, align 8, !tbaa !11
  %4690 = fsub double %4688, %4689
  %4691 = fdiv double %4687, %4690
  br label %4693

4692:                                             ; preds = %4679
  br label %4693

4693:                                             ; preds = %4692, %4684
  %4694 = phi double [ %4691, %4684 ], [ 1.000000e+00, %4692 ]
  store double %4694, ptr %118, align 8, !tbaa !11
  %4695 = load double, ptr %118, align 8, !tbaa !11
  %4696 = load float, ptr %113, align 4, !tbaa !18
  %4697 = fcmp olt float 0.000000e+00, %4696
  br i1 %4697, label %4698, label %4700

4698:                                             ; preds = %4693
  %4699 = load float, ptr %113, align 4, !tbaa !18
  br label %4701

4700:                                             ; preds = %4693
  br label %4701

4701:                                             ; preds = %4700, %4698
  %4702 = phi float [ %4699, %4698 ], [ 0.000000e+00, %4700 ]
  %4703 = fpext float %4702 to double
  %4704 = fmul double %4695, %4703
  %4705 = fptrunc double %4704 to float
  store float %4705, ptr %113, align 4, !tbaa !18
  %4706 = load double, ptr %116, align 8, !tbaa !11
  store double %4706, ptr %114, align 8, !tbaa !11
  %4707 = load double, ptr %117, align 8, !tbaa !11
  store double %4707, ptr %115, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #3
  br label %4764

4708:                                             ; preds = %4663
  %4709 = load i32, ptr %8, align 4, !tbaa !9
  %4710 = icmp ugt i32 6, %4709
  br i1 %4710, label %4739, label %4711

4711:                                             ; preds = %4708
  %4712 = load i32, ptr %8, align 4, !tbaa !9
  %4713 = icmp ugt i32 15, %4712
  br i1 %4713, label %4714, label %4725

4714:                                             ; preds = %4711
  %4715 = load i32, ptr %9, align 4, !tbaa !9
  %4716 = icmp ugt i32 15, %4715
  br i1 %4716, label %4717, label %4722

4717:                                             ; preds = %4714
  %4718 = load i32, ptr %9, align 4, !tbaa !9
  %4719 = load i32, ptr %8, align 4, !tbaa !9
  %4720 = icmp ugt i32 %4718, %4719
  %4721 = zext i1 %4720 to i32
  br label %4723

4722:                                             ; preds = %4714
  br label %4723

4723:                                             ; preds = %4722, %4717
  %4724 = phi i32 [ %4721, %4717 ], [ 0, %4722 ]
  br label %4736

4725:                                             ; preds = %4711
  %4726 = load i32, ptr %9, align 4, !tbaa !9
  %4727 = icmp ugt i32 15, %4726
  br i1 %4727, label %4728, label %4729

4728:                                             ; preds = %4725
  br label %4734

4729:                                             ; preds = %4725
  %4730 = load i32, ptr %9, align 4, !tbaa !9
  %4731 = load i32, ptr %8, align 4, !tbaa !9
  %4732 = icmp ugt i32 %4730, %4731
  %4733 = zext i1 %4732 to i32
  br label %4734

4734:                                             ; preds = %4729, %4728
  %4735 = phi i32 [ 0, %4728 ], [ %4733, %4729 ]
  br label %4736

4736:                                             ; preds = %4734, %4723
  %4737 = phi i32 [ %4724, %4723 ], [ %4735, %4734 ]
  %4738 = icmp ne i32 %4737, 0
  br label %4739

4739:                                             ; preds = %4736, %4708
  %4740 = phi i1 [ true, %4708 ], [ %4738, %4736 ]
  %4741 = zext i1 %4740 to i32
  %4742 = icmp eq i32 0, %4741
  br i1 %4742, label %4743, label %4763

4743:                                             ; preds = %4739
  %4744 = load double, ptr %114, align 8, !tbaa !11
  %4745 = fcmp ogt double 0.000000e+00, %4744
  br i1 %4745, label %4746, label %4763

4746:                                             ; preds = %4743
  %4747 = load double, ptr %115, align 8, !tbaa !11
  %4748 = fcmp olt double 0.000000e+00, %4747
  br i1 %4748, label %4749, label %4763

4749:                                             ; preds = %4746
  %4750 = load double, ptr %114, align 8, !tbaa !11
  %4751 = fneg double %4750
  %4752 = load double, ptr %115, align 8, !tbaa !11
  %4753 = fcmp olt double %4751, %4752
  br i1 %4753, label %4754, label %4756

4754:                                             ; preds = %4749
  %4755 = load double, ptr %115, align 8, !tbaa !11
  br label %4759

4756:                                             ; preds = %4749
  %4757 = load double, ptr %114, align 8, !tbaa !11
  %4758 = fneg double %4757
  br label %4759

4759:                                             ; preds = %4756, %4754
  %4760 = phi double [ %4755, %4754 ], [ %4758, %4756 ]
  store double %4760, ptr %115, align 8, !tbaa !11
  %4761 = load double, ptr %115, align 8, !tbaa !11
  %4762 = fneg double %4761
  store double %4762, ptr %114, align 8, !tbaa !11
  br label %4763

4763:                                             ; preds = %4759, %4746, %4743, %4739
  br label %4764

4764:                                             ; preds = %4763, %4701
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #3
  %4765 = load double, ptr %114, align 8, !tbaa !11
  %4766 = fcmp ole double 0.000000e+00, %4765
  %4767 = zext i1 %4766 to i64
  %4768 = select i1 %4766, double 0.000000e+00, double -1.000000e+00
  store double %4768, ptr %119, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #3
  %4769 = load double, ptr %115, align 8, !tbaa !11
  %4770 = fcmp ole double 0.000000e+00, %4769
  %4771 = zext i1 %4770 to i64
  %4772 = select i1 %4770, double 1.000000e+00, double 0.000000e+00
  store double %4772, ptr %120, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #3
  %4773 = load float, ptr %113, align 4, !tbaa !18
  %4774 = fpext float %4773 to double
  %4775 = load double, ptr %114, align 8, !tbaa !11
  %4776 = fsub double %4774, %4775
  %4777 = load double, ptr %120, align 8, !tbaa !11
  %4778 = load double, ptr %119, align 8, !tbaa !11
  %4779 = fsub double %4777, %4778
  %4780 = fmul double %4776, %4779
  %4781 = load double, ptr %115, align 8, !tbaa !11
  %4782 = load double, ptr %114, align 8, !tbaa !11
  %4783 = fsub double %4781, %4782
  %4784 = fdiv double %4780, %4783
  %4785 = load double, ptr %119, align 8, !tbaa !11
  %4786 = fadd double %4784, %4785
  store double %4786, ptr %121, align 8, !tbaa !11
  %4787 = load double, ptr %119, align 8, !tbaa !11
  %4788 = load double, ptr %121, align 8, !tbaa !11
  %4789 = fcmp ole double 0.000000e+00, %4788
  br i1 %4789, label %4790, label %4793

4790:                                             ; preds = %4764
  %4791 = load double, ptr %121, align 8, !tbaa !11
  %4792 = fadd double %4791, 0.000000e+00
  br label %4796

4793:                                             ; preds = %4764
  %4794 = load double, ptr %121, align 8, !tbaa !11
  %4795 = fsub double %4794, 0.000000e+00
  br label %4796

4796:                                             ; preds = %4793, %4790
  %4797 = phi double [ %4792, %4790 ], [ %4795, %4793 ]
  %4798 = fcmp olt double %4787, %4797
  br i1 %4798, label %4799, label %4853

4799:                                             ; preds = %4796
  %4800 = load double, ptr %121, align 8, !tbaa !11
  %4801 = fcmp ole double 0.000000e+00, %4800
  br i1 %4801, label %4802, label %4805

4802:                                             ; preds = %4799
  %4803 = load double, ptr %121, align 8, !tbaa !11
  %4804 = fadd double %4803, 0.000000e+00
  br label %4808

4805:                                             ; preds = %4799
  %4806 = load double, ptr %121, align 8, !tbaa !11
  %4807 = fsub double %4806, 0.000000e+00
  br label %4808

4808:                                             ; preds = %4805, %4802
  %4809 = phi double [ %4804, %4802 ], [ %4807, %4805 ]
  %4810 = load double, ptr %120, align 8, !tbaa !11
  %4811 = fcmp ole double %4809, %4810
  br i1 %4811, label %4812, label %4823

4812:                                             ; preds = %4808
  %4813 = load double, ptr %121, align 8, !tbaa !11
  %4814 = fcmp ole double 0.000000e+00, %4813
  br i1 %4814, label %4815, label %4818

4815:                                             ; preds = %4812
  %4816 = load double, ptr %121, align 8, !tbaa !11
  %4817 = fadd double %4816, 0.000000e+00
  br label %4821

4818:                                             ; preds = %4812
  %4819 = load double, ptr %121, align 8, !tbaa !11
  %4820 = fsub double %4819, 0.000000e+00
  br label %4821

4821:                                             ; preds = %4818, %4815
  %4822 = phi double [ %4817, %4815 ], [ %4820, %4818 ]
  br label %4851

4823:                                             ; preds = %4808
  %4824 = load double, ptr %121, align 8, !tbaa !11
  %4825 = fcmp ole double 0.000000e+00, %4824
  br i1 %4825, label %4826, label %4829

4826:                                             ; preds = %4823
  %4827 = load double, ptr %121, align 8, !tbaa !11
  %4828 = fadd double %4827, 0.000000e+00
  br label %4832

4829:                                             ; preds = %4823
  %4830 = load double, ptr %121, align 8, !tbaa !11
  %4831 = fsub double %4830, 0.000000e+00
  br label %4832

4832:                                             ; preds = %4829, %4826
  %4833 = phi double [ %4828, %4826 ], [ %4831, %4829 ]
  %4834 = load double, ptr %120, align 8, !tbaa !11
  %4835 = fcmp olt double %4833, %4834
  br i1 %4835, label %4836, label %4847

4836:                                             ; preds = %4832
  %4837 = load double, ptr %121, align 8, !tbaa !11
  %4838 = fcmp ole double 0.000000e+00, %4837
  br i1 %4838, label %4839, label %4842

4839:                                             ; preds = %4836
  %4840 = load double, ptr %121, align 8, !tbaa !11
  %4841 = fadd double %4840, 0.000000e+00
  br label %4845

4842:                                             ; preds = %4836
  %4843 = load double, ptr %121, align 8, !tbaa !11
  %4844 = fsub double %4843, 0.000000e+00
  br label %4845

4845:                                             ; preds = %4842, %4839
  %4846 = phi double [ %4841, %4839 ], [ %4844, %4842 ]
  br label %4849

4847:                                             ; preds = %4832
  %4848 = load double, ptr %120, align 8, !tbaa !11
  br label %4849

4849:                                             ; preds = %4847, %4845
  %4850 = phi double [ %4846, %4845 ], [ %4848, %4847 ]
  br label %4851

4851:                                             ; preds = %4849, %4821
  %4852 = phi double [ %4822, %4821 ], [ %4850, %4849 ]
  br label %4881

4853:                                             ; preds = %4796
  %4854 = load double, ptr %119, align 8, !tbaa !11
  %4855 = load double, ptr %121, align 8, !tbaa !11
  %4856 = fcmp ole double 0.000000e+00, %4855
  br i1 %4856, label %4857, label %4860

4857:                                             ; preds = %4853
  %4858 = load double, ptr %121, align 8, !tbaa !11
  %4859 = fadd double %4858, 0.000000e+00
  br label %4863

4860:                                             ; preds = %4853
  %4861 = load double, ptr %121, align 8, !tbaa !11
  %4862 = fsub double %4861, 0.000000e+00
  br label %4863

4863:                                             ; preds = %4860, %4857
  %4864 = phi double [ %4859, %4857 ], [ %4862, %4860 ]
  %4865 = fcmp olt double %4854, %4864
  br i1 %4865, label %4866, label %4877

4866:                                             ; preds = %4863
  %4867 = load double, ptr %121, align 8, !tbaa !11
  %4868 = fcmp ole double 0.000000e+00, %4867
  br i1 %4868, label %4869, label %4872

4869:                                             ; preds = %4866
  %4870 = load double, ptr %121, align 8, !tbaa !11
  %4871 = fadd double %4870, 0.000000e+00
  br label %4875

4872:                                             ; preds = %4866
  %4873 = load double, ptr %121, align 8, !tbaa !11
  %4874 = fsub double %4873, 0.000000e+00
  br label %4875

4875:                                             ; preds = %4872, %4869
  %4876 = phi double [ %4871, %4869 ], [ %4874, %4872 ]
  br label %4879

4877:                                             ; preds = %4863
  %4878 = load double, ptr %119, align 8, !tbaa !11
  br label %4879

4879:                                             ; preds = %4877, %4875
  %4880 = phi double [ %4876, %4875 ], [ %4878, %4877 ]
  br label %4881

4881:                                             ; preds = %4879, %4851
  %4882 = phi double [ %4852, %4851 ], [ %4880, %4879 ]
  %4883 = load ptr, ptr %7, align 8, !tbaa !5
  store double %4882, ptr %4883, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #3
  br label %5024

4884:                                             ; preds = %4659, %4656
  %4885 = load i32, ptr %8, align 4, !tbaa !9
  %4886 = icmp ugt i32 6, %4885
  br i1 %4886, label %4915, label %4887

4887:                                             ; preds = %4884
  %4888 = load i32, ptr %8, align 4, !tbaa !9
  %4889 = icmp ugt i32 15, %4888
  br i1 %4889, label %4890, label %4901

4890:                                             ; preds = %4887
  %4891 = load i32, ptr %9, align 4, !tbaa !9
  %4892 = icmp ugt i32 15, %4891
  br i1 %4892, label %4893, label %4898

4893:                                             ; preds = %4890
  %4894 = load i32, ptr %9, align 4, !tbaa !9
  %4895 = load i32, ptr %8, align 4, !tbaa !9
  %4896 = icmp ugt i32 %4894, %4895
  %4897 = zext i1 %4896 to i32
  br label %4899

4898:                                             ; preds = %4890
  br label %4899

4899:                                             ; preds = %4898, %4893
  %4900 = phi i32 [ %4897, %4893 ], [ 0, %4898 ]
  br label %4912

4901:                                             ; preds = %4887
  %4902 = load i32, ptr %9, align 4, !tbaa !9
  %4903 = icmp ugt i32 15, %4902
  br i1 %4903, label %4904, label %4905

4904:                                             ; preds = %4901
  br label %4910

4905:                                             ; preds = %4901
  %4906 = load i32, ptr %9, align 4, !tbaa !9
  %4907 = load i32, ptr %8, align 4, !tbaa !9
  %4908 = icmp ugt i32 %4906, %4907
  %4909 = zext i1 %4908 to i32
  br label %4910

4910:                                             ; preds = %4905, %4904
  %4911 = phi i32 [ 0, %4904 ], [ %4909, %4905 ]
  br label %4912

4912:                                             ; preds = %4910, %4899
  %4913 = phi i32 [ %4900, %4899 ], [ %4911, %4910 ]
  %4914 = icmp ne i32 %4913, 0
  br label %4915

4915:                                             ; preds = %4912, %4884
  %4916 = phi i1 [ true, %4884 ], [ %4914, %4912 ]
  %4917 = zext i1 %4916 to i32
  %4918 = icmp eq i32 0, %4917
  br i1 %4918, label %4919, label %5009

4919:                                             ; preds = %4915
  %4920 = load float, ptr %113, align 4, !tbaa !18
  %4921 = fcmp ole float 0.000000e+00, %4920
  br i1 %4921, label %4922, label %4964

4922:                                             ; preds = %4919
  %4923 = load float, ptr %113, align 4, !tbaa !18
  %4924 = fpext float %4923 to double
  %4925 = fadd double %4924, 0.000000e+00
  %4926 = fcmp olt double -1.000000e+00, %4925
  br i1 %4926, label %4927, label %4950

4927:                                             ; preds = %4922
  %4928 = load float, ptr %113, align 4, !tbaa !18
  %4929 = fpext float %4928 to double
  %4930 = fadd double %4929, 0.000000e+00
  %4931 = fcmp ole double %4930, 1.000000e+00
  br i1 %4931, label %4932, label %4936

4932:                                             ; preds = %4927
  %4933 = load float, ptr %113, align 4, !tbaa !18
  %4934 = fpext float %4933 to double
  %4935 = fadd double %4934, 0.000000e+00
  br label %4948

4936:                                             ; preds = %4927
  %4937 = load float, ptr %113, align 4, !tbaa !18
  %4938 = fpext float %4937 to double
  %4939 = fadd double %4938, 0.000000e+00
  %4940 = fcmp olt double %4939, 1.000000e+00
  br i1 %4940, label %4941, label %4945

4941:                                             ; preds = %4936
  %4942 = load float, ptr %113, align 4, !tbaa !18
  %4943 = fpext float %4942 to double
  %4944 = fadd double %4943, 0.000000e+00
  br label %4946

4945:                                             ; preds = %4936
  br label %4946

4946:                                             ; preds = %4945, %4941
  %4947 = phi double [ %4944, %4941 ], [ 1.000000e+00, %4945 ]
  br label %4948

4948:                                             ; preds = %4946, %4932
  %4949 = phi double [ %4935, %4932 ], [ %4947, %4946 ]
  br label %4962

4950:                                             ; preds = %4922
  %4951 = load float, ptr %113, align 4, !tbaa !18
  %4952 = fpext float %4951 to double
  %4953 = fadd double %4952, 0.000000e+00
  %4954 = fcmp olt double -1.000000e+00, %4953
  br i1 %4954, label %4955, label %4959

4955:                                             ; preds = %4950
  %4956 = load float, ptr %113, align 4, !tbaa !18
  %4957 = fpext float %4956 to double
  %4958 = fadd double %4957, 0.000000e+00
  br label %4960

4959:                                             ; preds = %4950
  br label %4960

4960:                                             ; preds = %4959, %4955
  %4961 = phi double [ %4958, %4955 ], [ -1.000000e+00, %4959 ]
  br label %4962

4962:                                             ; preds = %4960, %4948
  %4963 = phi double [ %4949, %4948 ], [ %4961, %4960 ]
  br label %5006

4964:                                             ; preds = %4919
  %4965 = load float, ptr %113, align 4, !tbaa !18
  %4966 = fpext float %4965 to double
  %4967 = fsub double %4966, 0.000000e+00
  %4968 = fcmp olt double -1.000000e+00, %4967
  br i1 %4968, label %4969, label %4992

4969:                                             ; preds = %4964
  %4970 = load float, ptr %113, align 4, !tbaa !18
  %4971 = fpext float %4970 to double
  %4972 = fsub double %4971, 0.000000e+00
  %4973 = fcmp ole double %4972, 1.000000e+00
  br i1 %4973, label %4974, label %4978

4974:                                             ; preds = %4969
  %4975 = load float, ptr %113, align 4, !tbaa !18
  %4976 = fpext float %4975 to double
  %4977 = fsub double %4976, 0.000000e+00
  br label %4990

4978:                                             ; preds = %4969
  %4979 = load float, ptr %113, align 4, !tbaa !18
  %4980 = fpext float %4979 to double
  %4981 = fsub double %4980, 0.000000e+00
  %4982 = fcmp olt double %4981, 1.000000e+00
  br i1 %4982, label %4983, label %4987

4983:                                             ; preds = %4978
  %4984 = load float, ptr %113, align 4, !tbaa !18
  %4985 = fpext float %4984 to double
  %4986 = fsub double %4985, 0.000000e+00
  br label %4988

4987:                                             ; preds = %4978
  br label %4988

4988:                                             ; preds = %4987, %4983
  %4989 = phi double [ %4986, %4983 ], [ 1.000000e+00, %4987 ]
  br label %4990

4990:                                             ; preds = %4988, %4974
  %4991 = phi double [ %4977, %4974 ], [ %4989, %4988 ]
  br label %5004

4992:                                             ; preds = %4964
  %4993 = load float, ptr %113, align 4, !tbaa !18
  %4994 = fpext float %4993 to double
  %4995 = fsub double %4994, 0.000000e+00
  %4996 = fcmp olt double -1.000000e+00, %4995
  br i1 %4996, label %4997, label %5001

4997:                                             ; preds = %4992
  %4998 = load float, ptr %113, align 4, !tbaa !18
  %4999 = fpext float %4998 to double
  %5000 = fsub double %4999, 0.000000e+00
  br label %5002

5001:                                             ; preds = %4992
  br label %5002

5002:                                             ; preds = %5001, %4997
  %5003 = phi double [ %5000, %4997 ], [ -1.000000e+00, %5001 ]
  br label %5004

5004:                                             ; preds = %5002, %4990
  %5005 = phi double [ %4991, %4990 ], [ %5003, %5002 ]
  br label %5006

5006:                                             ; preds = %5004, %4962
  %5007 = phi double [ %4963, %4962 ], [ %5005, %5004 ]
  %5008 = load ptr, ptr %7, align 8, !tbaa !5
  store double %5007, ptr %5008, align 8, !tbaa !11
  br label %5023

5009:                                             ; preds = %4915
  %5010 = load float, ptr %113, align 4, !tbaa !18
  %5011 = fcmp ole float 0.000000e+00, %5010
  br i1 %5011, label %5012, label %5016

5012:                                             ; preds = %5009
  %5013 = load float, ptr %113, align 4, !tbaa !18
  %5014 = fpext float %5013 to double
  %5015 = fadd double %5014, 0.000000e+00
  br label %5020

5016:                                             ; preds = %5009
  %5017 = load float, ptr %113, align 4, !tbaa !18
  %5018 = fpext float %5017 to double
  %5019 = fsub double %5018, 0.000000e+00
  br label %5020

5020:                                             ; preds = %5016, %5012
  %5021 = phi double [ %5015, %5012 ], [ %5019, %5016 ]
  %5022 = load ptr, ptr %7, align 8, !tbaa !5
  store double %5021, ptr %5022, align 8, !tbaa !11
  br label %5023

5023:                                             ; preds = %5020, %5006
  br label %5024

5024:                                             ; preds = %5023, %4881
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #3
  br label %5025

5025:                                             ; preds = %5024
  br label %5026

5026:                                             ; preds = %5025
  br label %5031

5027:                                             ; preds = %1428
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 467, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

5028:                                             ; preds = %1428
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 467, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

5029:                                             ; preds = %1428
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 467, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

5030:                                             ; preds = %1428
  store i32 1, ptr %13, align 4, !tbaa !9
  br label %5031

5031:                                             ; preds = %5030, %5026, %4623, %4241, %3883, %3525, %3180, %2835, %2477, %2119, %1774
  br label %5032

5032:                                             ; preds = %5031
  br label %5033

5033:                                             ; preds = %5032
  br label %48657

5034:                                             ; preds = %6
  br label %5035

5035:                                             ; preds = %5034
  %5036 = load ptr, ptr %7, align 8, !tbaa !5
  %5037 = icmp ne ptr null, %5036
  br i1 %5037, label %5038, label %5042

5038:                                             ; preds = %5035
  %5039 = load ptr, ptr %10, align 8, !tbaa !5
  %5040 = icmp ne ptr null, %5039
  br i1 %5040, label %5041, label %5042

5041:                                             ; preds = %5038
  br label %5043

5042:                                             ; preds = %5038, %5035
  call void @__assert_fail(ptr noundef @.str.41, ptr noundef @.str.24, i32 noundef 470, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

5043:                                             ; preds = %5041
  %5044 = load i32, ptr %9, align 4, !tbaa !9
  switch i32 %5044, label %8667 [
    i32 6, label %5045
    i32 8, label %5392
    i32 10, label %5739
    i32 12, label %6099
    i32 15, label %6459
    i32 16, label %6806
    i32 17, label %7153
    i32 18, label %7513
    i32 0, label %7873
    i32 1, label %8258
    i32 3, label %8664
    i32 2, label %8665
    i32 4, label %8666
  ]

5045:                                             ; preds = %5043
  br label %5046

5046:                                             ; preds = %5045
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #3
  store double 0.000000e+00, ptr %122, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #3
  %5047 = load ptr, ptr %10, align 8, !tbaa !5
  %5048 = load i64, ptr %5047, align 8, !tbaa !13
  store i64 %5048, ptr %123, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #3
  store double 0.000000e+00, ptr %124, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #3
  store double 0.000000e+00, ptr %125, align 8, !tbaa !11
  %5049 = load ptr, ptr %11, align 8, !tbaa !5
  %5050 = icmp ne ptr null, %5049
  br i1 %5050, label %5051, label %5073

5051:                                             ; preds = %5046
  %5052 = load ptr, ptr %12, align 8, !tbaa !5
  %5053 = icmp ne ptr null, %5052
  br i1 %5053, label %5054, label %5065

5054:                                             ; preds = %5051
  %5055 = load ptr, ptr %11, align 8, !tbaa !5
  %5056 = load i64, ptr %5055, align 8, !tbaa !13
  %5057 = load i64, ptr %123, align 8, !tbaa !13
  %5058 = icmp sle i64 %5056, %5057
  br i1 %5058, label %5059, label %5065

5059:                                             ; preds = %5054
  %5060 = load i64, ptr %123, align 8, !tbaa !13
  %5061 = load ptr, ptr %12, align 8, !tbaa !5
  %5062 = load i64, ptr %5061, align 8, !tbaa !13
  %5063 = icmp sle i64 %5060, %5062
  br i1 %5063, label %5064, label %5065

5064:                                             ; preds = %5059
  br label %5066

5065:                                             ; preds = %5059, %5054, %5051
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.24, i32 noundef 470, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

5066:                                             ; preds = %5064
  %5067 = load ptr, ptr %11, align 8, !tbaa !5
  %5068 = load i64, ptr %5067, align 8, !tbaa !13
  %5069 = sitofp i64 %5068 to double
  store double %5069, ptr %124, align 8, !tbaa !11
  %5070 = load ptr, ptr %12, align 8, !tbaa !5
  %5071 = load i64, ptr %5070, align 8, !tbaa !13
  %5072 = sitofp i64 %5071 to double
  store double %5072, ptr %125, align 8, !tbaa !11
  br label %5073

5073:                                             ; preds = %5066, %5046
  %5074 = load i32, ptr %8, align 4, !tbaa !9
  %5075 = icmp ule i32 6, %5074
  br i1 %5075, label %5076, label %5312

5076:                                             ; preds = %5073
  %5077 = load double, ptr %124, align 8, !tbaa !11
  %5078 = load double, ptr %125, align 8, !tbaa !11
  %5079 = fcmp olt double %5077, %5078
  br i1 %5079, label %5080, label %5312

5080:                                             ; preds = %5076
  %5081 = load i32, ptr %8, align 4, !tbaa !9
  %5082 = icmp ule i32 15, %5081
  br i1 %5082, label %5083, label %5135

5083:                                             ; preds = %5080
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #3
  %5084 = load double, ptr %124, align 8, !tbaa !11
  %5085 = fcmp olt double 0.000000e+00, %5084
  br i1 %5085, label %5086, label %5088

5086:                                             ; preds = %5083
  %5087 = load double, ptr %124, align 8, !tbaa !11
  br label %5089

5088:                                             ; preds = %5083
  br label %5089

5089:                                             ; preds = %5088, %5086
  %5090 = phi double [ %5087, %5086 ], [ 0.000000e+00, %5088 ]
  store double %5090, ptr %126, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #3
  %5091 = load double, ptr %125, align 8, !tbaa !11
  %5092 = fcmp olt double 0.000000e+00, %5091
  br i1 %5092, label %5093, label %5095

5093:                                             ; preds = %5089
  %5094 = load double, ptr %125, align 8, !tbaa !11
  br label %5096

5095:                                             ; preds = %5089
  br label %5096

5096:                                             ; preds = %5095, %5093
  %5097 = phi double [ %5094, %5093 ], [ 0.000000e+00, %5095 ]
  store double %5097, ptr %127, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #3
  %5098 = load double, ptr %126, align 8, !tbaa !11
  %5099 = load double, ptr %127, align 8, !tbaa !11
  %5100 = fcmp olt double %5098, %5099
  br i1 %5100, label %5101, label %5109

5101:                                             ; preds = %5096
  %5102 = load double, ptr %125, align 8, !tbaa !11
  %5103 = load double, ptr %124, align 8, !tbaa !11
  %5104 = fsub double %5102, %5103
  %5105 = load double, ptr %127, align 8, !tbaa !11
  %5106 = load double, ptr %126, align 8, !tbaa !11
  %5107 = fsub double %5105, %5106
  %5108 = fdiv double %5104, %5107
  br label %5110

5109:                                             ; preds = %5096
  br label %5110

5110:                                             ; preds = %5109, %5101
  %5111 = phi double [ %5108, %5101 ], [ 1.000000e+00, %5109 ]
  store double %5111, ptr %128, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #3
  %5112 = load double, ptr %128, align 8, !tbaa !11
  %5113 = load i64, ptr %123, align 8, !tbaa !13
  %5114 = icmp slt i64 0, %5113
  br i1 %5114, label %5115, label %5117

5115:                                             ; preds = %5110
  %5116 = load i64, ptr %123, align 8, !tbaa !13
  br label %5118

5117:                                             ; preds = %5110
  br label %5118

5118:                                             ; preds = %5117, %5115
  %5119 = phi i64 [ %5116, %5115 ], [ 0, %5117 ]
  %5120 = sitofp i64 %5119 to double
  %5121 = fmul double %5112, %5120
  store double %5121, ptr %129, align 8, !tbaa !11
  %5122 = load double, ptr %129, align 8, !tbaa !11
  %5123 = fcmp ole double 0.000000e+00, %5122
  br i1 %5123, label %5124, label %5127

5124:                                             ; preds = %5118
  %5125 = load double, ptr %129, align 8, !tbaa !11
  %5126 = fadd double %5125, 0.000000e+00
  br label %5130

5127:                                             ; preds = %5118
  %5128 = load double, ptr %129, align 8, !tbaa !11
  %5129 = fsub double %5128, 0.000000e+00
  br label %5130

5130:                                             ; preds = %5127, %5124
  %5131 = phi double [ %5126, %5124 ], [ %5129, %5127 ]
  %5132 = fptosi double %5131 to i64
  store i64 %5132, ptr %123, align 8, !tbaa !13
  %5133 = load double, ptr %126, align 8, !tbaa !11
  store double %5133, ptr %124, align 8, !tbaa !11
  %5134 = load double, ptr %127, align 8, !tbaa !11
  store double %5134, ptr %125, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #3
  br label %5191

5135:                                             ; preds = %5080
  %5136 = load i32, ptr %8, align 4, !tbaa !9
  %5137 = icmp ugt i32 6, %5136
  br i1 %5137, label %5166, label %5138

5138:                                             ; preds = %5135
  %5139 = load i32, ptr %8, align 4, !tbaa !9
  %5140 = icmp ugt i32 15, %5139
  br i1 %5140, label %5141, label %5152

5141:                                             ; preds = %5138
  %5142 = load i32, ptr %9, align 4, !tbaa !9
  %5143 = icmp ugt i32 15, %5142
  br i1 %5143, label %5144, label %5149

5144:                                             ; preds = %5141
  %5145 = load i32, ptr %9, align 4, !tbaa !9
  %5146 = load i32, ptr %8, align 4, !tbaa !9
  %5147 = icmp ugt i32 %5145, %5146
  %5148 = zext i1 %5147 to i32
  br label %5150

5149:                                             ; preds = %5141
  br label %5150

5150:                                             ; preds = %5149, %5144
  %5151 = phi i32 [ %5148, %5144 ], [ 0, %5149 ]
  br label %5163

5152:                                             ; preds = %5138
  %5153 = load i32, ptr %9, align 4, !tbaa !9
  %5154 = icmp ugt i32 15, %5153
  br i1 %5154, label %5155, label %5156

5155:                                             ; preds = %5152
  br label %5161

5156:                                             ; preds = %5152
  %5157 = load i32, ptr %9, align 4, !tbaa !9
  %5158 = load i32, ptr %8, align 4, !tbaa !9
  %5159 = icmp ugt i32 %5157, %5158
  %5160 = zext i1 %5159 to i32
  br label %5161

5161:                                             ; preds = %5156, %5155
  %5162 = phi i32 [ 0, %5155 ], [ %5160, %5156 ]
  br label %5163

5163:                                             ; preds = %5161, %5150
  %5164 = phi i32 [ %5151, %5150 ], [ %5162, %5161 ]
  %5165 = icmp ne i32 %5164, 0
  br label %5166

5166:                                             ; preds = %5163, %5135
  %5167 = phi i1 [ true, %5135 ], [ %5165, %5163 ]
  %5168 = zext i1 %5167 to i32
  %5169 = icmp eq i32 0, %5168
  br i1 %5169, label %5170, label %5190

5170:                                             ; preds = %5166
  %5171 = load double, ptr %124, align 8, !tbaa !11
  %5172 = fcmp ogt double 0.000000e+00, %5171
  br i1 %5172, label %5173, label %5190

5173:                                             ; preds = %5170
  %5174 = load double, ptr %125, align 8, !tbaa !11
  %5175 = fcmp olt double 0.000000e+00, %5174
  br i1 %5175, label %5176, label %5190

5176:                                             ; preds = %5173
  %5177 = load double, ptr %124, align 8, !tbaa !11
  %5178 = fneg double %5177
  %5179 = load double, ptr %125, align 8, !tbaa !11
  %5180 = fcmp olt double %5178, %5179
  br i1 %5180, label %5181, label %5183

5181:                                             ; preds = %5176
  %5182 = load double, ptr %125, align 8, !tbaa !11
  br label %5186

5183:                                             ; preds = %5176
  %5184 = load double, ptr %124, align 8, !tbaa !11
  %5185 = fneg double %5184
  br label %5186

5186:                                             ; preds = %5183, %5181
  %5187 = phi double [ %5182, %5181 ], [ %5185, %5183 ]
  store double %5187, ptr %125, align 8, !tbaa !11
  %5188 = load double, ptr %125, align 8, !tbaa !11
  %5189 = fneg double %5188
  store double %5189, ptr %124, align 8, !tbaa !11
  br label %5190

5190:                                             ; preds = %5186, %5173, %5170, %5166
  br label %5191

5191:                                             ; preds = %5190, %5130
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #3
  %5192 = load double, ptr %124, align 8, !tbaa !11
  %5193 = fcmp ole double 0.000000e+00, %5192
  %5194 = zext i1 %5193 to i64
  %5195 = select i1 %5193, double 0.000000e+00, double -1.000000e+00
  store double %5195, ptr %130, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #3
  %5196 = load double, ptr %125, align 8, !tbaa !11
  %5197 = fcmp ole double 0.000000e+00, %5196
  %5198 = zext i1 %5197 to i64
  %5199 = select i1 %5197, double 1.000000e+00, double 0.000000e+00
  store double %5199, ptr %131, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #3
  %5200 = load i64, ptr %123, align 8, !tbaa !13
  %5201 = sitofp i64 %5200 to double
  %5202 = load double, ptr %124, align 8, !tbaa !11
  %5203 = fsub double %5201, %5202
  %5204 = load double, ptr %131, align 8, !tbaa !11
  %5205 = load double, ptr %130, align 8, !tbaa !11
  %5206 = fsub double %5204, %5205
  %5207 = fmul double %5203, %5206
  %5208 = load double, ptr %125, align 8, !tbaa !11
  %5209 = load double, ptr %124, align 8, !tbaa !11
  %5210 = fsub double %5208, %5209
  %5211 = fdiv double %5207, %5210
  %5212 = load double, ptr %130, align 8, !tbaa !11
  %5213 = fadd double %5211, %5212
  store double %5213, ptr %132, align 8, !tbaa !11
  %5214 = load double, ptr %130, align 8, !tbaa !11
  %5215 = load double, ptr %132, align 8, !tbaa !11
  %5216 = fcmp ole double 0.000000e+00, %5215
  br i1 %5216, label %5217, label %5220

5217:                                             ; preds = %5191
  %5218 = load double, ptr %132, align 8, !tbaa !11
  %5219 = fadd double %5218, 0.000000e+00
  br label %5223

5220:                                             ; preds = %5191
  %5221 = load double, ptr %132, align 8, !tbaa !11
  %5222 = fsub double %5221, 0.000000e+00
  br label %5223

5223:                                             ; preds = %5220, %5217
  %5224 = phi double [ %5219, %5217 ], [ %5222, %5220 ]
  %5225 = fcmp olt double %5214, %5224
  br i1 %5225, label %5226, label %5280

5226:                                             ; preds = %5223
  %5227 = load double, ptr %132, align 8, !tbaa !11
  %5228 = fcmp ole double 0.000000e+00, %5227
  br i1 %5228, label %5229, label %5232

5229:                                             ; preds = %5226
  %5230 = load double, ptr %132, align 8, !tbaa !11
  %5231 = fadd double %5230, 0.000000e+00
  br label %5235

5232:                                             ; preds = %5226
  %5233 = load double, ptr %132, align 8, !tbaa !11
  %5234 = fsub double %5233, 0.000000e+00
  br label %5235

5235:                                             ; preds = %5232, %5229
  %5236 = phi double [ %5231, %5229 ], [ %5234, %5232 ]
  %5237 = load double, ptr %131, align 8, !tbaa !11
  %5238 = fcmp ole double %5236, %5237
  br i1 %5238, label %5239, label %5250

5239:                                             ; preds = %5235
  %5240 = load double, ptr %132, align 8, !tbaa !11
  %5241 = fcmp ole double 0.000000e+00, %5240
  br i1 %5241, label %5242, label %5245

5242:                                             ; preds = %5239
  %5243 = load double, ptr %132, align 8, !tbaa !11
  %5244 = fadd double %5243, 0.000000e+00
  br label %5248

5245:                                             ; preds = %5239
  %5246 = load double, ptr %132, align 8, !tbaa !11
  %5247 = fsub double %5246, 0.000000e+00
  br label %5248

5248:                                             ; preds = %5245, %5242
  %5249 = phi double [ %5244, %5242 ], [ %5247, %5245 ]
  br label %5278

5250:                                             ; preds = %5235
  %5251 = load double, ptr %132, align 8, !tbaa !11
  %5252 = fcmp ole double 0.000000e+00, %5251
  br i1 %5252, label %5253, label %5256

5253:                                             ; preds = %5250
  %5254 = load double, ptr %132, align 8, !tbaa !11
  %5255 = fadd double %5254, 0.000000e+00
  br label %5259

5256:                                             ; preds = %5250
  %5257 = load double, ptr %132, align 8, !tbaa !11
  %5258 = fsub double %5257, 0.000000e+00
  br label %5259

5259:                                             ; preds = %5256, %5253
  %5260 = phi double [ %5255, %5253 ], [ %5258, %5256 ]
  %5261 = load double, ptr %131, align 8, !tbaa !11
  %5262 = fcmp olt double %5260, %5261
  br i1 %5262, label %5263, label %5274

5263:                                             ; preds = %5259
  %5264 = load double, ptr %132, align 8, !tbaa !11
  %5265 = fcmp ole double 0.000000e+00, %5264
  br i1 %5265, label %5266, label %5269

5266:                                             ; preds = %5263
  %5267 = load double, ptr %132, align 8, !tbaa !11
  %5268 = fadd double %5267, 0.000000e+00
  br label %5272

5269:                                             ; preds = %5263
  %5270 = load double, ptr %132, align 8, !tbaa !11
  %5271 = fsub double %5270, 0.000000e+00
  br label %5272

5272:                                             ; preds = %5269, %5266
  %5273 = phi double [ %5268, %5266 ], [ %5271, %5269 ]
  br label %5276

5274:                                             ; preds = %5259
  %5275 = load double, ptr %131, align 8, !tbaa !11
  br label %5276

5276:                                             ; preds = %5274, %5272
  %5277 = phi double [ %5273, %5272 ], [ %5275, %5274 ]
  br label %5278

5278:                                             ; preds = %5276, %5248
  %5279 = phi double [ %5249, %5248 ], [ %5277, %5276 ]
  br label %5308

5280:                                             ; preds = %5223
  %5281 = load double, ptr %130, align 8, !tbaa !11
  %5282 = load double, ptr %132, align 8, !tbaa !11
  %5283 = fcmp ole double 0.000000e+00, %5282
  br i1 %5283, label %5284, label %5287

5284:                                             ; preds = %5280
  %5285 = load double, ptr %132, align 8, !tbaa !11
  %5286 = fadd double %5285, 0.000000e+00
  br label %5290

5287:                                             ; preds = %5280
  %5288 = load double, ptr %132, align 8, !tbaa !11
  %5289 = fsub double %5288, 0.000000e+00
  br label %5290

5290:                                             ; preds = %5287, %5284
  %5291 = phi double [ %5286, %5284 ], [ %5289, %5287 ]
  %5292 = fcmp olt double %5281, %5291
  br i1 %5292, label %5293, label %5304

5293:                                             ; preds = %5290
  %5294 = load double, ptr %132, align 8, !tbaa !11
  %5295 = fcmp ole double 0.000000e+00, %5294
  br i1 %5295, label %5296, label %5299

5296:                                             ; preds = %5293
  %5297 = load double, ptr %132, align 8, !tbaa !11
  %5298 = fadd double %5297, 0.000000e+00
  br label %5302

5299:                                             ; preds = %5293
  %5300 = load double, ptr %132, align 8, !tbaa !11
  %5301 = fsub double %5300, 0.000000e+00
  br label %5302

5302:                                             ; preds = %5299, %5296
  %5303 = phi double [ %5298, %5296 ], [ %5301, %5299 ]
  br label %5306

5304:                                             ; preds = %5290
  %5305 = load double, ptr %130, align 8, !tbaa !11
  br label %5306

5306:                                             ; preds = %5304, %5302
  %5307 = phi double [ %5303, %5302 ], [ %5305, %5304 ]
  br label %5308

5308:                                             ; preds = %5306, %5278
  %5309 = phi double [ %5279, %5278 ], [ %5307, %5306 ]
  %5310 = fptrunc double %5309 to float
  %5311 = load ptr, ptr %7, align 8, !tbaa !5
  store float %5310, ptr %5311, align 4, !tbaa !18
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #3
  br label %5389

5312:                                             ; preds = %5076, %5073
  %5313 = load i32, ptr %8, align 4, !tbaa !9
  %5314 = icmp ugt i32 6, %5313
  br i1 %5314, label %5343, label %5315

5315:                                             ; preds = %5312
  %5316 = load i32, ptr %8, align 4, !tbaa !9
  %5317 = icmp ugt i32 15, %5316
  br i1 %5317, label %5318, label %5329

5318:                                             ; preds = %5315
  %5319 = load i32, ptr %9, align 4, !tbaa !9
  %5320 = icmp ugt i32 15, %5319
  br i1 %5320, label %5321, label %5326

5321:                                             ; preds = %5318
  %5322 = load i32, ptr %9, align 4, !tbaa !9
  %5323 = load i32, ptr %8, align 4, !tbaa !9
  %5324 = icmp ugt i32 %5322, %5323
  %5325 = zext i1 %5324 to i32
  br label %5327

5326:                                             ; preds = %5318
  br label %5327

5327:                                             ; preds = %5326, %5321
  %5328 = phi i32 [ %5325, %5321 ], [ 0, %5326 ]
  br label %5340

5329:                                             ; preds = %5315
  %5330 = load i32, ptr %9, align 4, !tbaa !9
  %5331 = icmp ugt i32 15, %5330
  br i1 %5331, label %5332, label %5333

5332:                                             ; preds = %5329
  br label %5338

5333:                                             ; preds = %5329
  %5334 = load i32, ptr %9, align 4, !tbaa !9
  %5335 = load i32, ptr %8, align 4, !tbaa !9
  %5336 = icmp ugt i32 %5334, %5335
  %5337 = zext i1 %5336 to i32
  br label %5338

5338:                                             ; preds = %5333, %5332
  %5339 = phi i32 [ 0, %5332 ], [ %5337, %5333 ]
  br label %5340

5340:                                             ; preds = %5338, %5327
  %5341 = phi i32 [ %5328, %5327 ], [ %5339, %5338 ]
  %5342 = icmp ne i32 %5341, 0
  br label %5343

5343:                                             ; preds = %5340, %5312
  %5344 = phi i1 [ true, %5312 ], [ %5342, %5340 ]
  %5345 = zext i1 %5344 to i32
  %5346 = icmp eq i32 0, %5345
  br i1 %5346, label %5347, label %5384

5347:                                             ; preds = %5343
  %5348 = load i64, ptr %123, align 8, !tbaa !13
  %5349 = sitofp i64 %5348 to double
  %5350 = fcmp olt double -1.000000e+00, %5349
  br i1 %5350, label %5351, label %5370

5351:                                             ; preds = %5347
  %5352 = load i64, ptr %123, align 8, !tbaa !13
  %5353 = sitofp i64 %5352 to double
  %5354 = fcmp ole double %5353, 1.000000e+00
  br i1 %5354, label %5355, label %5358

5355:                                             ; preds = %5351
  %5356 = load i64, ptr %123, align 8, !tbaa !13
  %5357 = sitofp i64 %5356 to double
  br label %5368

5358:                                             ; preds = %5351
  %5359 = load i64, ptr %123, align 8, !tbaa !13
  %5360 = sitofp i64 %5359 to double
  %5361 = fcmp olt double %5360, 1.000000e+00
  br i1 %5361, label %5362, label %5365

5362:                                             ; preds = %5358
  %5363 = load i64, ptr %123, align 8, !tbaa !13
  %5364 = sitofp i64 %5363 to double
  br label %5366

5365:                                             ; preds = %5358
  br label %5366

5366:                                             ; preds = %5365, %5362
  %5367 = phi double [ %5364, %5362 ], [ 1.000000e+00, %5365 ]
  br label %5368

5368:                                             ; preds = %5366, %5355
  %5369 = phi double [ %5357, %5355 ], [ %5367, %5366 ]
  br label %5380

5370:                                             ; preds = %5347
  %5371 = load i64, ptr %123, align 8, !tbaa !13
  %5372 = sitofp i64 %5371 to double
  %5373 = fcmp olt double -1.000000e+00, %5372
  br i1 %5373, label %5374, label %5377

5374:                                             ; preds = %5370
  %5375 = load i64, ptr %123, align 8, !tbaa !13
  %5376 = sitofp i64 %5375 to double
  br label %5378

5377:                                             ; preds = %5370
  br label %5378

5378:                                             ; preds = %5377, %5374
  %5379 = phi double [ %5376, %5374 ], [ -1.000000e+00, %5377 ]
  br label %5380

5380:                                             ; preds = %5378, %5368
  %5381 = phi double [ %5369, %5368 ], [ %5379, %5378 ]
  %5382 = fptrunc double %5381 to float
  %5383 = load ptr, ptr %7, align 8, !tbaa !5
  store float %5382, ptr %5383, align 4, !tbaa !18
  br label %5388

5384:                                             ; preds = %5343
  %5385 = load i64, ptr %123, align 8, !tbaa !13
  %5386 = sitofp i64 %5385 to float
  %5387 = load ptr, ptr %7, align 8, !tbaa !5
  store float %5386, ptr %5387, align 4, !tbaa !18
  br label %5388

5388:                                             ; preds = %5384, %5380
  br label %5389

5389:                                             ; preds = %5388, %5308
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #3
  br label %5390

5390:                                             ; preds = %5389
  br label %5391

5391:                                             ; preds = %5390
  br label %8668

5392:                                             ; preds = %5043
  br label %5393

5393:                                             ; preds = %5392
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #3
  store double 0.000000e+00, ptr %133, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #3
  %5394 = load ptr, ptr %10, align 8, !tbaa !5
  %5395 = load i32, ptr %5394, align 4, !tbaa !9
  store i32 %5395, ptr %134, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #3
  store double 0.000000e+00, ptr %135, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #3
  store double 0.000000e+00, ptr %136, align 8, !tbaa !11
  %5396 = load ptr, ptr %11, align 8, !tbaa !5
  %5397 = icmp ne ptr null, %5396
  br i1 %5397, label %5398, label %5420

5398:                                             ; preds = %5393
  %5399 = load ptr, ptr %12, align 8, !tbaa !5
  %5400 = icmp ne ptr null, %5399
  br i1 %5400, label %5401, label %5412

5401:                                             ; preds = %5398
  %5402 = load ptr, ptr %11, align 8, !tbaa !5
  %5403 = load i32, ptr %5402, align 4, !tbaa !9
  %5404 = load i32, ptr %134, align 4, !tbaa !9
  %5405 = icmp sle i32 %5403, %5404
  br i1 %5405, label %5406, label %5412

5406:                                             ; preds = %5401
  %5407 = load i32, ptr %134, align 4, !tbaa !9
  %5408 = load ptr, ptr %12, align 8, !tbaa !5
  %5409 = load i32, ptr %5408, align 4, !tbaa !9
  %5410 = icmp sle i32 %5407, %5409
  br i1 %5410, label %5411, label %5412

5411:                                             ; preds = %5406
  br label %5413

5412:                                             ; preds = %5406, %5401, %5398
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.24, i32 noundef 470, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

5413:                                             ; preds = %5411
  %5414 = load ptr, ptr %11, align 8, !tbaa !5
  %5415 = load i32, ptr %5414, align 4, !tbaa !9
  %5416 = sitofp i32 %5415 to double
  store double %5416, ptr %135, align 8, !tbaa !11
  %5417 = load ptr, ptr %12, align 8, !tbaa !5
  %5418 = load i32, ptr %5417, align 4, !tbaa !9
  %5419 = sitofp i32 %5418 to double
  store double %5419, ptr %136, align 8, !tbaa !11
  br label %5420

5420:                                             ; preds = %5413, %5393
  %5421 = load i32, ptr %8, align 4, !tbaa !9
  %5422 = icmp ule i32 6, %5421
  br i1 %5422, label %5423, label %5659

5423:                                             ; preds = %5420
  %5424 = load double, ptr %135, align 8, !tbaa !11
  %5425 = load double, ptr %136, align 8, !tbaa !11
  %5426 = fcmp olt double %5424, %5425
  br i1 %5426, label %5427, label %5659

5427:                                             ; preds = %5423
  %5428 = load i32, ptr %8, align 4, !tbaa !9
  %5429 = icmp ule i32 15, %5428
  br i1 %5429, label %5430, label %5482

5430:                                             ; preds = %5427
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #3
  %5431 = load double, ptr %135, align 8, !tbaa !11
  %5432 = fcmp olt double 0.000000e+00, %5431
  br i1 %5432, label %5433, label %5435

5433:                                             ; preds = %5430
  %5434 = load double, ptr %135, align 8, !tbaa !11
  br label %5436

5435:                                             ; preds = %5430
  br label %5436

5436:                                             ; preds = %5435, %5433
  %5437 = phi double [ %5434, %5433 ], [ 0.000000e+00, %5435 ]
  store double %5437, ptr %137, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #3
  %5438 = load double, ptr %136, align 8, !tbaa !11
  %5439 = fcmp olt double 0.000000e+00, %5438
  br i1 %5439, label %5440, label %5442

5440:                                             ; preds = %5436
  %5441 = load double, ptr %136, align 8, !tbaa !11
  br label %5443

5442:                                             ; preds = %5436
  br label %5443

5443:                                             ; preds = %5442, %5440
  %5444 = phi double [ %5441, %5440 ], [ 0.000000e+00, %5442 ]
  store double %5444, ptr %138, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #3
  %5445 = load double, ptr %137, align 8, !tbaa !11
  %5446 = load double, ptr %138, align 8, !tbaa !11
  %5447 = fcmp olt double %5445, %5446
  br i1 %5447, label %5448, label %5456

5448:                                             ; preds = %5443
  %5449 = load double, ptr %136, align 8, !tbaa !11
  %5450 = load double, ptr %135, align 8, !tbaa !11
  %5451 = fsub double %5449, %5450
  %5452 = load double, ptr %138, align 8, !tbaa !11
  %5453 = load double, ptr %137, align 8, !tbaa !11
  %5454 = fsub double %5452, %5453
  %5455 = fdiv double %5451, %5454
  br label %5457

5456:                                             ; preds = %5443
  br label %5457

5457:                                             ; preds = %5456, %5448
  %5458 = phi double [ %5455, %5448 ], [ 1.000000e+00, %5456 ]
  store double %5458, ptr %139, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #3
  %5459 = load double, ptr %139, align 8, !tbaa !11
  %5460 = load i32, ptr %134, align 4, !tbaa !9
  %5461 = icmp slt i32 0, %5460
  br i1 %5461, label %5462, label %5464

5462:                                             ; preds = %5457
  %5463 = load i32, ptr %134, align 4, !tbaa !9
  br label %5465

5464:                                             ; preds = %5457
  br label %5465

5465:                                             ; preds = %5464, %5462
  %5466 = phi i32 [ %5463, %5462 ], [ 0, %5464 ]
  %5467 = sitofp i32 %5466 to double
  %5468 = fmul double %5459, %5467
  store double %5468, ptr %140, align 8, !tbaa !11
  %5469 = load double, ptr %140, align 8, !tbaa !11
  %5470 = fcmp ole double 0.000000e+00, %5469
  br i1 %5470, label %5471, label %5474

5471:                                             ; preds = %5465
  %5472 = load double, ptr %140, align 8, !tbaa !11
  %5473 = fadd double %5472, 0.000000e+00
  br label %5477

5474:                                             ; preds = %5465
  %5475 = load double, ptr %140, align 8, !tbaa !11
  %5476 = fsub double %5475, 0.000000e+00
  br label %5477

5477:                                             ; preds = %5474, %5471
  %5478 = phi double [ %5473, %5471 ], [ %5476, %5474 ]
  %5479 = fptosi double %5478 to i32
  store i32 %5479, ptr %134, align 4, !tbaa !9
  %5480 = load double, ptr %137, align 8, !tbaa !11
  store double %5480, ptr %135, align 8, !tbaa !11
  %5481 = load double, ptr %138, align 8, !tbaa !11
  store double %5481, ptr %136, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #3
  br label %5538

5482:                                             ; preds = %5427
  %5483 = load i32, ptr %8, align 4, !tbaa !9
  %5484 = icmp ugt i32 6, %5483
  br i1 %5484, label %5513, label %5485

5485:                                             ; preds = %5482
  %5486 = load i32, ptr %8, align 4, !tbaa !9
  %5487 = icmp ugt i32 15, %5486
  br i1 %5487, label %5488, label %5499

5488:                                             ; preds = %5485
  %5489 = load i32, ptr %9, align 4, !tbaa !9
  %5490 = icmp ugt i32 15, %5489
  br i1 %5490, label %5491, label %5496

5491:                                             ; preds = %5488
  %5492 = load i32, ptr %9, align 4, !tbaa !9
  %5493 = load i32, ptr %8, align 4, !tbaa !9
  %5494 = icmp ugt i32 %5492, %5493
  %5495 = zext i1 %5494 to i32
  br label %5497

5496:                                             ; preds = %5488
  br label %5497

5497:                                             ; preds = %5496, %5491
  %5498 = phi i32 [ %5495, %5491 ], [ 0, %5496 ]
  br label %5510

5499:                                             ; preds = %5485
  %5500 = load i32, ptr %9, align 4, !tbaa !9
  %5501 = icmp ugt i32 15, %5500
  br i1 %5501, label %5502, label %5503

5502:                                             ; preds = %5499
  br label %5508

5503:                                             ; preds = %5499
  %5504 = load i32, ptr %9, align 4, !tbaa !9
  %5505 = load i32, ptr %8, align 4, !tbaa !9
  %5506 = icmp ugt i32 %5504, %5505
  %5507 = zext i1 %5506 to i32
  br label %5508

5508:                                             ; preds = %5503, %5502
  %5509 = phi i32 [ 0, %5502 ], [ %5507, %5503 ]
  br label %5510

5510:                                             ; preds = %5508, %5497
  %5511 = phi i32 [ %5498, %5497 ], [ %5509, %5508 ]
  %5512 = icmp ne i32 %5511, 0
  br label %5513

5513:                                             ; preds = %5510, %5482
  %5514 = phi i1 [ true, %5482 ], [ %5512, %5510 ]
  %5515 = zext i1 %5514 to i32
  %5516 = icmp eq i32 0, %5515
  br i1 %5516, label %5517, label %5537

5517:                                             ; preds = %5513
  %5518 = load double, ptr %135, align 8, !tbaa !11
  %5519 = fcmp ogt double 0.000000e+00, %5518
  br i1 %5519, label %5520, label %5537

5520:                                             ; preds = %5517
  %5521 = load double, ptr %136, align 8, !tbaa !11
  %5522 = fcmp olt double 0.000000e+00, %5521
  br i1 %5522, label %5523, label %5537

5523:                                             ; preds = %5520
  %5524 = load double, ptr %135, align 8, !tbaa !11
  %5525 = fneg double %5524
  %5526 = load double, ptr %136, align 8, !tbaa !11
  %5527 = fcmp olt double %5525, %5526
  br i1 %5527, label %5528, label %5530

5528:                                             ; preds = %5523
  %5529 = load double, ptr %136, align 8, !tbaa !11
  br label %5533

5530:                                             ; preds = %5523
  %5531 = load double, ptr %135, align 8, !tbaa !11
  %5532 = fneg double %5531
  br label %5533

5533:                                             ; preds = %5530, %5528
  %5534 = phi double [ %5529, %5528 ], [ %5532, %5530 ]
  store double %5534, ptr %136, align 8, !tbaa !11
  %5535 = load double, ptr %136, align 8, !tbaa !11
  %5536 = fneg double %5535
  store double %5536, ptr %135, align 8, !tbaa !11
  br label %5537

5537:                                             ; preds = %5533, %5520, %5517, %5513
  br label %5538

5538:                                             ; preds = %5537, %5477
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #3
  %5539 = load double, ptr %135, align 8, !tbaa !11
  %5540 = fcmp ole double 0.000000e+00, %5539
  %5541 = zext i1 %5540 to i64
  %5542 = select i1 %5540, double 0.000000e+00, double -1.000000e+00
  store double %5542, ptr %141, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #3
  %5543 = load double, ptr %136, align 8, !tbaa !11
  %5544 = fcmp ole double 0.000000e+00, %5543
  %5545 = zext i1 %5544 to i64
  %5546 = select i1 %5544, double 1.000000e+00, double 0.000000e+00
  store double %5546, ptr %142, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #3
  %5547 = load i32, ptr %134, align 4, !tbaa !9
  %5548 = sitofp i32 %5547 to double
  %5549 = load double, ptr %135, align 8, !tbaa !11
  %5550 = fsub double %5548, %5549
  %5551 = load double, ptr %142, align 8, !tbaa !11
  %5552 = load double, ptr %141, align 8, !tbaa !11
  %5553 = fsub double %5551, %5552
  %5554 = fmul double %5550, %5553
  %5555 = load double, ptr %136, align 8, !tbaa !11
  %5556 = load double, ptr %135, align 8, !tbaa !11
  %5557 = fsub double %5555, %5556
  %5558 = fdiv double %5554, %5557
  %5559 = load double, ptr %141, align 8, !tbaa !11
  %5560 = fadd double %5558, %5559
  store double %5560, ptr %143, align 8, !tbaa !11
  %5561 = load double, ptr %141, align 8, !tbaa !11
  %5562 = load double, ptr %143, align 8, !tbaa !11
  %5563 = fcmp ole double 0.000000e+00, %5562
  br i1 %5563, label %5564, label %5567

5564:                                             ; preds = %5538
  %5565 = load double, ptr %143, align 8, !tbaa !11
  %5566 = fadd double %5565, 0.000000e+00
  br label %5570

5567:                                             ; preds = %5538
  %5568 = load double, ptr %143, align 8, !tbaa !11
  %5569 = fsub double %5568, 0.000000e+00
  br label %5570

5570:                                             ; preds = %5567, %5564
  %5571 = phi double [ %5566, %5564 ], [ %5569, %5567 ]
  %5572 = fcmp olt double %5561, %5571
  br i1 %5572, label %5573, label %5627

5573:                                             ; preds = %5570
  %5574 = load double, ptr %143, align 8, !tbaa !11
  %5575 = fcmp ole double 0.000000e+00, %5574
  br i1 %5575, label %5576, label %5579

5576:                                             ; preds = %5573
  %5577 = load double, ptr %143, align 8, !tbaa !11
  %5578 = fadd double %5577, 0.000000e+00
  br label %5582

5579:                                             ; preds = %5573
  %5580 = load double, ptr %143, align 8, !tbaa !11
  %5581 = fsub double %5580, 0.000000e+00
  br label %5582

5582:                                             ; preds = %5579, %5576
  %5583 = phi double [ %5578, %5576 ], [ %5581, %5579 ]
  %5584 = load double, ptr %142, align 8, !tbaa !11
  %5585 = fcmp ole double %5583, %5584
  br i1 %5585, label %5586, label %5597

5586:                                             ; preds = %5582
  %5587 = load double, ptr %143, align 8, !tbaa !11
  %5588 = fcmp ole double 0.000000e+00, %5587
  br i1 %5588, label %5589, label %5592

5589:                                             ; preds = %5586
  %5590 = load double, ptr %143, align 8, !tbaa !11
  %5591 = fadd double %5590, 0.000000e+00
  br label %5595

5592:                                             ; preds = %5586
  %5593 = load double, ptr %143, align 8, !tbaa !11
  %5594 = fsub double %5593, 0.000000e+00
  br label %5595

5595:                                             ; preds = %5592, %5589
  %5596 = phi double [ %5591, %5589 ], [ %5594, %5592 ]
  br label %5625

5597:                                             ; preds = %5582
  %5598 = load double, ptr %143, align 8, !tbaa !11
  %5599 = fcmp ole double 0.000000e+00, %5598
  br i1 %5599, label %5600, label %5603

5600:                                             ; preds = %5597
  %5601 = load double, ptr %143, align 8, !tbaa !11
  %5602 = fadd double %5601, 0.000000e+00
  br label %5606

5603:                                             ; preds = %5597
  %5604 = load double, ptr %143, align 8, !tbaa !11
  %5605 = fsub double %5604, 0.000000e+00
  br label %5606

5606:                                             ; preds = %5603, %5600
  %5607 = phi double [ %5602, %5600 ], [ %5605, %5603 ]
  %5608 = load double, ptr %142, align 8, !tbaa !11
  %5609 = fcmp olt double %5607, %5608
  br i1 %5609, label %5610, label %5621

5610:                                             ; preds = %5606
  %5611 = load double, ptr %143, align 8, !tbaa !11
  %5612 = fcmp ole double 0.000000e+00, %5611
  br i1 %5612, label %5613, label %5616

5613:                                             ; preds = %5610
  %5614 = load double, ptr %143, align 8, !tbaa !11
  %5615 = fadd double %5614, 0.000000e+00
  br label %5619

5616:                                             ; preds = %5610
  %5617 = load double, ptr %143, align 8, !tbaa !11
  %5618 = fsub double %5617, 0.000000e+00
  br label %5619

5619:                                             ; preds = %5616, %5613
  %5620 = phi double [ %5615, %5613 ], [ %5618, %5616 ]
  br label %5623

5621:                                             ; preds = %5606
  %5622 = load double, ptr %142, align 8, !tbaa !11
  br label %5623

5623:                                             ; preds = %5621, %5619
  %5624 = phi double [ %5620, %5619 ], [ %5622, %5621 ]
  br label %5625

5625:                                             ; preds = %5623, %5595
  %5626 = phi double [ %5596, %5595 ], [ %5624, %5623 ]
  br label %5655

5627:                                             ; preds = %5570
  %5628 = load double, ptr %141, align 8, !tbaa !11
  %5629 = load double, ptr %143, align 8, !tbaa !11
  %5630 = fcmp ole double 0.000000e+00, %5629
  br i1 %5630, label %5631, label %5634

5631:                                             ; preds = %5627
  %5632 = load double, ptr %143, align 8, !tbaa !11
  %5633 = fadd double %5632, 0.000000e+00
  br label %5637

5634:                                             ; preds = %5627
  %5635 = load double, ptr %143, align 8, !tbaa !11
  %5636 = fsub double %5635, 0.000000e+00
  br label %5637

5637:                                             ; preds = %5634, %5631
  %5638 = phi double [ %5633, %5631 ], [ %5636, %5634 ]
  %5639 = fcmp olt double %5628, %5638
  br i1 %5639, label %5640, label %5651

5640:                                             ; preds = %5637
  %5641 = load double, ptr %143, align 8, !tbaa !11
  %5642 = fcmp ole double 0.000000e+00, %5641
  br i1 %5642, label %5643, label %5646

5643:                                             ; preds = %5640
  %5644 = load double, ptr %143, align 8, !tbaa !11
  %5645 = fadd double %5644, 0.000000e+00
  br label %5649

5646:                                             ; preds = %5640
  %5647 = load double, ptr %143, align 8, !tbaa !11
  %5648 = fsub double %5647, 0.000000e+00
  br label %5649

5649:                                             ; preds = %5646, %5643
  %5650 = phi double [ %5645, %5643 ], [ %5648, %5646 ]
  br label %5653

5651:                                             ; preds = %5637
  %5652 = load double, ptr %141, align 8, !tbaa !11
  br label %5653

5653:                                             ; preds = %5651, %5649
  %5654 = phi double [ %5650, %5649 ], [ %5652, %5651 ]
  br label %5655

5655:                                             ; preds = %5653, %5625
  %5656 = phi double [ %5626, %5625 ], [ %5654, %5653 ]
  %5657 = fptrunc double %5656 to float
  %5658 = load ptr, ptr %7, align 8, !tbaa !5
  store float %5657, ptr %5658, align 4, !tbaa !18
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #3
  br label %5736

5659:                                             ; preds = %5423, %5420
  %5660 = load i32, ptr %8, align 4, !tbaa !9
  %5661 = icmp ugt i32 6, %5660
  br i1 %5661, label %5690, label %5662

5662:                                             ; preds = %5659
  %5663 = load i32, ptr %8, align 4, !tbaa !9
  %5664 = icmp ugt i32 15, %5663
  br i1 %5664, label %5665, label %5676

5665:                                             ; preds = %5662
  %5666 = load i32, ptr %9, align 4, !tbaa !9
  %5667 = icmp ugt i32 15, %5666
  br i1 %5667, label %5668, label %5673

5668:                                             ; preds = %5665
  %5669 = load i32, ptr %9, align 4, !tbaa !9
  %5670 = load i32, ptr %8, align 4, !tbaa !9
  %5671 = icmp ugt i32 %5669, %5670
  %5672 = zext i1 %5671 to i32
  br label %5674

5673:                                             ; preds = %5665
  br label %5674

5674:                                             ; preds = %5673, %5668
  %5675 = phi i32 [ %5672, %5668 ], [ 0, %5673 ]
  br label %5687

5676:                                             ; preds = %5662
  %5677 = load i32, ptr %9, align 4, !tbaa !9
  %5678 = icmp ugt i32 15, %5677
  br i1 %5678, label %5679, label %5680

5679:                                             ; preds = %5676
  br label %5685

5680:                                             ; preds = %5676
  %5681 = load i32, ptr %9, align 4, !tbaa !9
  %5682 = load i32, ptr %8, align 4, !tbaa !9
  %5683 = icmp ugt i32 %5681, %5682
  %5684 = zext i1 %5683 to i32
  br label %5685

5685:                                             ; preds = %5680, %5679
  %5686 = phi i32 [ 0, %5679 ], [ %5684, %5680 ]
  br label %5687

5687:                                             ; preds = %5685, %5674
  %5688 = phi i32 [ %5675, %5674 ], [ %5686, %5685 ]
  %5689 = icmp ne i32 %5688, 0
  br label %5690

5690:                                             ; preds = %5687, %5659
  %5691 = phi i1 [ true, %5659 ], [ %5689, %5687 ]
  %5692 = zext i1 %5691 to i32
  %5693 = icmp eq i32 0, %5692
  br i1 %5693, label %5694, label %5731

5694:                                             ; preds = %5690
  %5695 = load i32, ptr %134, align 4, !tbaa !9
  %5696 = sitofp i32 %5695 to double
  %5697 = fcmp olt double -1.000000e+00, %5696
  br i1 %5697, label %5698, label %5717

5698:                                             ; preds = %5694
  %5699 = load i32, ptr %134, align 4, !tbaa !9
  %5700 = sitofp i32 %5699 to double
  %5701 = fcmp ole double %5700, 1.000000e+00
  br i1 %5701, label %5702, label %5705

5702:                                             ; preds = %5698
  %5703 = load i32, ptr %134, align 4, !tbaa !9
  %5704 = sitofp i32 %5703 to double
  br label %5715

5705:                                             ; preds = %5698
  %5706 = load i32, ptr %134, align 4, !tbaa !9
  %5707 = sitofp i32 %5706 to double
  %5708 = fcmp olt double %5707, 1.000000e+00
  br i1 %5708, label %5709, label %5712

5709:                                             ; preds = %5705
  %5710 = load i32, ptr %134, align 4, !tbaa !9
  %5711 = sitofp i32 %5710 to double
  br label %5713

5712:                                             ; preds = %5705
  br label %5713

5713:                                             ; preds = %5712, %5709
  %5714 = phi double [ %5711, %5709 ], [ 1.000000e+00, %5712 ]
  br label %5715

5715:                                             ; preds = %5713, %5702
  %5716 = phi double [ %5704, %5702 ], [ %5714, %5713 ]
  br label %5727

5717:                                             ; preds = %5694
  %5718 = load i32, ptr %134, align 4, !tbaa !9
  %5719 = sitofp i32 %5718 to double
  %5720 = fcmp olt double -1.000000e+00, %5719
  br i1 %5720, label %5721, label %5724

5721:                                             ; preds = %5717
  %5722 = load i32, ptr %134, align 4, !tbaa !9
  %5723 = sitofp i32 %5722 to double
  br label %5725

5724:                                             ; preds = %5717
  br label %5725

5725:                                             ; preds = %5724, %5721
  %5726 = phi double [ %5723, %5721 ], [ -1.000000e+00, %5724 ]
  br label %5727

5727:                                             ; preds = %5725, %5715
  %5728 = phi double [ %5716, %5715 ], [ %5726, %5725 ]
  %5729 = fptrunc double %5728 to float
  %5730 = load ptr, ptr %7, align 8, !tbaa !5
  store float %5729, ptr %5730, align 4, !tbaa !18
  br label %5735

5731:                                             ; preds = %5690
  %5732 = load i32, ptr %134, align 4, !tbaa !9
  %5733 = sitofp i32 %5732 to float
  %5734 = load ptr, ptr %7, align 8, !tbaa !5
  store float %5733, ptr %5734, align 4, !tbaa !18
  br label %5735

5735:                                             ; preds = %5731, %5727
  br label %5736

5736:                                             ; preds = %5735, %5655
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #3
  br label %5737

5737:                                             ; preds = %5736
  br label %5738

5738:                                             ; preds = %5737
  br label %8668

5739:                                             ; preds = %5043
  br label %5740

5740:                                             ; preds = %5739
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #3
  store double 0.000000e+00, ptr %144, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %145) #3
  %5741 = load ptr, ptr %10, align 8, !tbaa !5
  %5742 = load i16, ptr %5741, align 2, !tbaa !15
  store i16 %5742, ptr %145, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #3
  store double 0.000000e+00, ptr %146, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #3
  store double 0.000000e+00, ptr %147, align 8, !tbaa !11
  %5743 = load ptr, ptr %11, align 8, !tbaa !5
  %5744 = icmp ne ptr null, %5743
  br i1 %5744, label %5745, label %5771

5745:                                             ; preds = %5740
  %5746 = load ptr, ptr %12, align 8, !tbaa !5
  %5747 = icmp ne ptr null, %5746
  br i1 %5747, label %5748, label %5763

5748:                                             ; preds = %5745
  %5749 = load ptr, ptr %11, align 8, !tbaa !5
  %5750 = load i16, ptr %5749, align 2, !tbaa !15
  %5751 = sext i16 %5750 to i32
  %5752 = load i16, ptr %145, align 2, !tbaa !15
  %5753 = sext i16 %5752 to i32
  %5754 = icmp sle i32 %5751, %5753
  br i1 %5754, label %5755, label %5763

5755:                                             ; preds = %5748
  %5756 = load i16, ptr %145, align 2, !tbaa !15
  %5757 = sext i16 %5756 to i32
  %5758 = load ptr, ptr %12, align 8, !tbaa !5
  %5759 = load i16, ptr %5758, align 2, !tbaa !15
  %5760 = sext i16 %5759 to i32
  %5761 = icmp sle i32 %5757, %5760
  br i1 %5761, label %5762, label %5763

5762:                                             ; preds = %5755
  br label %5764

5763:                                             ; preds = %5755, %5748, %5745
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.24, i32 noundef 470, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

5764:                                             ; preds = %5762
  %5765 = load ptr, ptr %11, align 8, !tbaa !5
  %5766 = load i16, ptr %5765, align 2, !tbaa !15
  %5767 = sitofp i16 %5766 to double
  store double %5767, ptr %146, align 8, !tbaa !11
  %5768 = load ptr, ptr %12, align 8, !tbaa !5
  %5769 = load i16, ptr %5768, align 2, !tbaa !15
  %5770 = sitofp i16 %5769 to double
  store double %5770, ptr %147, align 8, !tbaa !11
  br label %5771

5771:                                             ; preds = %5764, %5740
  %5772 = load i32, ptr %8, align 4, !tbaa !9
  %5773 = icmp ule i32 6, %5772
  br i1 %5773, label %5774, label %6012

5774:                                             ; preds = %5771
  %5775 = load double, ptr %146, align 8, !tbaa !11
  %5776 = load double, ptr %147, align 8, !tbaa !11
  %5777 = fcmp olt double %5775, %5776
  br i1 %5777, label %5778, label %6012

5778:                                             ; preds = %5774
  %5779 = load i32, ptr %8, align 4, !tbaa !9
  %5780 = icmp ule i32 15, %5779
  br i1 %5780, label %5781, label %5835

5781:                                             ; preds = %5778
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #3
  %5782 = load double, ptr %146, align 8, !tbaa !11
  %5783 = fcmp olt double 0.000000e+00, %5782
  br i1 %5783, label %5784, label %5786

5784:                                             ; preds = %5781
  %5785 = load double, ptr %146, align 8, !tbaa !11
  br label %5787

5786:                                             ; preds = %5781
  br label %5787

5787:                                             ; preds = %5786, %5784
  %5788 = phi double [ %5785, %5784 ], [ 0.000000e+00, %5786 ]
  store double %5788, ptr %148, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #3
  %5789 = load double, ptr %147, align 8, !tbaa !11
  %5790 = fcmp olt double 0.000000e+00, %5789
  br i1 %5790, label %5791, label %5793

5791:                                             ; preds = %5787
  %5792 = load double, ptr %147, align 8, !tbaa !11
  br label %5794

5793:                                             ; preds = %5787
  br label %5794

5794:                                             ; preds = %5793, %5791
  %5795 = phi double [ %5792, %5791 ], [ 0.000000e+00, %5793 ]
  store double %5795, ptr %149, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #3
  %5796 = load double, ptr %148, align 8, !tbaa !11
  %5797 = load double, ptr %149, align 8, !tbaa !11
  %5798 = fcmp olt double %5796, %5797
  br i1 %5798, label %5799, label %5807

5799:                                             ; preds = %5794
  %5800 = load double, ptr %147, align 8, !tbaa !11
  %5801 = load double, ptr %146, align 8, !tbaa !11
  %5802 = fsub double %5800, %5801
  %5803 = load double, ptr %149, align 8, !tbaa !11
  %5804 = load double, ptr %148, align 8, !tbaa !11
  %5805 = fsub double %5803, %5804
  %5806 = fdiv double %5802, %5805
  br label %5808

5807:                                             ; preds = %5794
  br label %5808

5808:                                             ; preds = %5807, %5799
  %5809 = phi double [ %5806, %5799 ], [ 1.000000e+00, %5807 ]
  store double %5809, ptr %150, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #3
  %5810 = load double, ptr %150, align 8, !tbaa !11
  %5811 = load i16, ptr %145, align 2, !tbaa !15
  %5812 = sext i16 %5811 to i32
  %5813 = icmp slt i32 0, %5812
  br i1 %5813, label %5814, label %5817

5814:                                             ; preds = %5808
  %5815 = load i16, ptr %145, align 2, !tbaa !15
  %5816 = sext i16 %5815 to i32
  br label %5818

5817:                                             ; preds = %5808
  br label %5818

5818:                                             ; preds = %5817, %5814
  %5819 = phi i32 [ %5816, %5814 ], [ 0, %5817 ]
  %5820 = sitofp i32 %5819 to double
  %5821 = fmul double %5810, %5820
  store double %5821, ptr %151, align 8, !tbaa !11
  %5822 = load double, ptr %151, align 8, !tbaa !11
  %5823 = fcmp ole double 0.000000e+00, %5822
  br i1 %5823, label %5824, label %5827

5824:                                             ; preds = %5818
  %5825 = load double, ptr %151, align 8, !tbaa !11
  %5826 = fadd double %5825, 0.000000e+00
  br label %5830

5827:                                             ; preds = %5818
  %5828 = load double, ptr %151, align 8, !tbaa !11
  %5829 = fsub double %5828, 0.000000e+00
  br label %5830

5830:                                             ; preds = %5827, %5824
  %5831 = phi double [ %5826, %5824 ], [ %5829, %5827 ]
  %5832 = fptosi double %5831 to i16
  store i16 %5832, ptr %145, align 2, !tbaa !15
  %5833 = load double, ptr %148, align 8, !tbaa !11
  store double %5833, ptr %146, align 8, !tbaa !11
  %5834 = load double, ptr %149, align 8, !tbaa !11
  store double %5834, ptr %147, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #3
  br label %5891

5835:                                             ; preds = %5778
  %5836 = load i32, ptr %8, align 4, !tbaa !9
  %5837 = icmp ugt i32 6, %5836
  br i1 %5837, label %5866, label %5838

5838:                                             ; preds = %5835
  %5839 = load i32, ptr %8, align 4, !tbaa !9
  %5840 = icmp ugt i32 15, %5839
  br i1 %5840, label %5841, label %5852

5841:                                             ; preds = %5838
  %5842 = load i32, ptr %9, align 4, !tbaa !9
  %5843 = icmp ugt i32 15, %5842
  br i1 %5843, label %5844, label %5849

5844:                                             ; preds = %5841
  %5845 = load i32, ptr %9, align 4, !tbaa !9
  %5846 = load i32, ptr %8, align 4, !tbaa !9
  %5847 = icmp ugt i32 %5845, %5846
  %5848 = zext i1 %5847 to i32
  br label %5850

5849:                                             ; preds = %5841
  br label %5850

5850:                                             ; preds = %5849, %5844
  %5851 = phi i32 [ %5848, %5844 ], [ 0, %5849 ]
  br label %5863

5852:                                             ; preds = %5838
  %5853 = load i32, ptr %9, align 4, !tbaa !9
  %5854 = icmp ugt i32 15, %5853
  br i1 %5854, label %5855, label %5856

5855:                                             ; preds = %5852
  br label %5861

5856:                                             ; preds = %5852
  %5857 = load i32, ptr %9, align 4, !tbaa !9
  %5858 = load i32, ptr %8, align 4, !tbaa !9
  %5859 = icmp ugt i32 %5857, %5858
  %5860 = zext i1 %5859 to i32
  br label %5861

5861:                                             ; preds = %5856, %5855
  %5862 = phi i32 [ 0, %5855 ], [ %5860, %5856 ]
  br label %5863

5863:                                             ; preds = %5861, %5850
  %5864 = phi i32 [ %5851, %5850 ], [ %5862, %5861 ]
  %5865 = icmp ne i32 %5864, 0
  br label %5866

5866:                                             ; preds = %5863, %5835
  %5867 = phi i1 [ true, %5835 ], [ %5865, %5863 ]
  %5868 = zext i1 %5867 to i32
  %5869 = icmp eq i32 0, %5868
  br i1 %5869, label %5870, label %5890

5870:                                             ; preds = %5866
  %5871 = load double, ptr %146, align 8, !tbaa !11
  %5872 = fcmp ogt double 0.000000e+00, %5871
  br i1 %5872, label %5873, label %5890

5873:                                             ; preds = %5870
  %5874 = load double, ptr %147, align 8, !tbaa !11
  %5875 = fcmp olt double 0.000000e+00, %5874
  br i1 %5875, label %5876, label %5890

5876:                                             ; preds = %5873
  %5877 = load double, ptr %146, align 8, !tbaa !11
  %5878 = fneg double %5877
  %5879 = load double, ptr %147, align 8, !tbaa !11
  %5880 = fcmp olt double %5878, %5879
  br i1 %5880, label %5881, label %5883

5881:                                             ; preds = %5876
  %5882 = load double, ptr %147, align 8, !tbaa !11
  br label %5886

5883:                                             ; preds = %5876
  %5884 = load double, ptr %146, align 8, !tbaa !11
  %5885 = fneg double %5884
  br label %5886

5886:                                             ; preds = %5883, %5881
  %5887 = phi double [ %5882, %5881 ], [ %5885, %5883 ]
  store double %5887, ptr %147, align 8, !tbaa !11
  %5888 = load double, ptr %147, align 8, !tbaa !11
  %5889 = fneg double %5888
  store double %5889, ptr %146, align 8, !tbaa !11
  br label %5890

5890:                                             ; preds = %5886, %5873, %5870, %5866
  br label %5891

5891:                                             ; preds = %5890, %5830
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #3
  %5892 = load double, ptr %146, align 8, !tbaa !11
  %5893 = fcmp ole double 0.000000e+00, %5892
  %5894 = zext i1 %5893 to i64
  %5895 = select i1 %5893, double 0.000000e+00, double -1.000000e+00
  store double %5895, ptr %152, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #3
  %5896 = load double, ptr %147, align 8, !tbaa !11
  %5897 = fcmp ole double 0.000000e+00, %5896
  %5898 = zext i1 %5897 to i64
  %5899 = select i1 %5897, double 1.000000e+00, double 0.000000e+00
  store double %5899, ptr %153, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #3
  %5900 = load i16, ptr %145, align 2, !tbaa !15
  %5901 = sitofp i16 %5900 to double
  %5902 = load double, ptr %146, align 8, !tbaa !11
  %5903 = fsub double %5901, %5902
  %5904 = load double, ptr %153, align 8, !tbaa !11
  %5905 = load double, ptr %152, align 8, !tbaa !11
  %5906 = fsub double %5904, %5905
  %5907 = fmul double %5903, %5906
  %5908 = load double, ptr %147, align 8, !tbaa !11
  %5909 = load double, ptr %146, align 8, !tbaa !11
  %5910 = fsub double %5908, %5909
  %5911 = fdiv double %5907, %5910
  %5912 = load double, ptr %152, align 8, !tbaa !11
  %5913 = fadd double %5911, %5912
  store double %5913, ptr %154, align 8, !tbaa !11
  %5914 = load double, ptr %152, align 8, !tbaa !11
  %5915 = load double, ptr %154, align 8, !tbaa !11
  %5916 = fcmp ole double 0.000000e+00, %5915
  br i1 %5916, label %5917, label %5920

5917:                                             ; preds = %5891
  %5918 = load double, ptr %154, align 8, !tbaa !11
  %5919 = fadd double %5918, 0.000000e+00
  br label %5923

5920:                                             ; preds = %5891
  %5921 = load double, ptr %154, align 8, !tbaa !11
  %5922 = fsub double %5921, 0.000000e+00
  br label %5923

5923:                                             ; preds = %5920, %5917
  %5924 = phi double [ %5919, %5917 ], [ %5922, %5920 ]
  %5925 = fcmp olt double %5914, %5924
  br i1 %5925, label %5926, label %5980

5926:                                             ; preds = %5923
  %5927 = load double, ptr %154, align 8, !tbaa !11
  %5928 = fcmp ole double 0.000000e+00, %5927
  br i1 %5928, label %5929, label %5932

5929:                                             ; preds = %5926
  %5930 = load double, ptr %154, align 8, !tbaa !11
  %5931 = fadd double %5930, 0.000000e+00
  br label %5935

5932:                                             ; preds = %5926
  %5933 = load double, ptr %154, align 8, !tbaa !11
  %5934 = fsub double %5933, 0.000000e+00
  br label %5935

5935:                                             ; preds = %5932, %5929
  %5936 = phi double [ %5931, %5929 ], [ %5934, %5932 ]
  %5937 = load double, ptr %153, align 8, !tbaa !11
  %5938 = fcmp ole double %5936, %5937
  br i1 %5938, label %5939, label %5950

5939:                                             ; preds = %5935
  %5940 = load double, ptr %154, align 8, !tbaa !11
  %5941 = fcmp ole double 0.000000e+00, %5940
  br i1 %5941, label %5942, label %5945

5942:                                             ; preds = %5939
  %5943 = load double, ptr %154, align 8, !tbaa !11
  %5944 = fadd double %5943, 0.000000e+00
  br label %5948

5945:                                             ; preds = %5939
  %5946 = load double, ptr %154, align 8, !tbaa !11
  %5947 = fsub double %5946, 0.000000e+00
  br label %5948

5948:                                             ; preds = %5945, %5942
  %5949 = phi double [ %5944, %5942 ], [ %5947, %5945 ]
  br label %5978

5950:                                             ; preds = %5935
  %5951 = load double, ptr %154, align 8, !tbaa !11
  %5952 = fcmp ole double 0.000000e+00, %5951
  br i1 %5952, label %5953, label %5956

5953:                                             ; preds = %5950
  %5954 = load double, ptr %154, align 8, !tbaa !11
  %5955 = fadd double %5954, 0.000000e+00
  br label %5959

5956:                                             ; preds = %5950
  %5957 = load double, ptr %154, align 8, !tbaa !11
  %5958 = fsub double %5957, 0.000000e+00
  br label %5959

5959:                                             ; preds = %5956, %5953
  %5960 = phi double [ %5955, %5953 ], [ %5958, %5956 ]
  %5961 = load double, ptr %153, align 8, !tbaa !11
  %5962 = fcmp olt double %5960, %5961
  br i1 %5962, label %5963, label %5974

5963:                                             ; preds = %5959
  %5964 = load double, ptr %154, align 8, !tbaa !11
  %5965 = fcmp ole double 0.000000e+00, %5964
  br i1 %5965, label %5966, label %5969

5966:                                             ; preds = %5963
  %5967 = load double, ptr %154, align 8, !tbaa !11
  %5968 = fadd double %5967, 0.000000e+00
  br label %5972

5969:                                             ; preds = %5963
  %5970 = load double, ptr %154, align 8, !tbaa !11
  %5971 = fsub double %5970, 0.000000e+00
  br label %5972

5972:                                             ; preds = %5969, %5966
  %5973 = phi double [ %5968, %5966 ], [ %5971, %5969 ]
  br label %5976

5974:                                             ; preds = %5959
  %5975 = load double, ptr %153, align 8, !tbaa !11
  br label %5976

5976:                                             ; preds = %5974, %5972
  %5977 = phi double [ %5973, %5972 ], [ %5975, %5974 ]
  br label %5978

5978:                                             ; preds = %5976, %5948
  %5979 = phi double [ %5949, %5948 ], [ %5977, %5976 ]
  br label %6008

5980:                                             ; preds = %5923
  %5981 = load double, ptr %152, align 8, !tbaa !11
  %5982 = load double, ptr %154, align 8, !tbaa !11
  %5983 = fcmp ole double 0.000000e+00, %5982
  br i1 %5983, label %5984, label %5987

5984:                                             ; preds = %5980
  %5985 = load double, ptr %154, align 8, !tbaa !11
  %5986 = fadd double %5985, 0.000000e+00
  br label %5990

5987:                                             ; preds = %5980
  %5988 = load double, ptr %154, align 8, !tbaa !11
  %5989 = fsub double %5988, 0.000000e+00
  br label %5990

5990:                                             ; preds = %5987, %5984
  %5991 = phi double [ %5986, %5984 ], [ %5989, %5987 ]
  %5992 = fcmp olt double %5981, %5991
  br i1 %5992, label %5993, label %6004

5993:                                             ; preds = %5990
  %5994 = load double, ptr %154, align 8, !tbaa !11
  %5995 = fcmp ole double 0.000000e+00, %5994
  br i1 %5995, label %5996, label %5999

5996:                                             ; preds = %5993
  %5997 = load double, ptr %154, align 8, !tbaa !11
  %5998 = fadd double %5997, 0.000000e+00
  br label %6002

5999:                                             ; preds = %5993
  %6000 = load double, ptr %154, align 8, !tbaa !11
  %6001 = fsub double %6000, 0.000000e+00
  br label %6002

6002:                                             ; preds = %5999, %5996
  %6003 = phi double [ %5998, %5996 ], [ %6001, %5999 ]
  br label %6006

6004:                                             ; preds = %5990
  %6005 = load double, ptr %152, align 8, !tbaa !11
  br label %6006

6006:                                             ; preds = %6004, %6002
  %6007 = phi double [ %6003, %6002 ], [ %6005, %6004 ]
  br label %6008

6008:                                             ; preds = %6006, %5978
  %6009 = phi double [ %5979, %5978 ], [ %6007, %6006 ]
  %6010 = fptrunc double %6009 to float
  %6011 = load ptr, ptr %7, align 8, !tbaa !5
  store float %6010, ptr %6011, align 4, !tbaa !18
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #3
  br label %6096

6012:                                             ; preds = %5774, %5771
  %6013 = load i32, ptr %8, align 4, !tbaa !9
  %6014 = icmp ugt i32 6, %6013
  br i1 %6014, label %6043, label %6015

6015:                                             ; preds = %6012
  %6016 = load i32, ptr %8, align 4, !tbaa !9
  %6017 = icmp ugt i32 15, %6016
  br i1 %6017, label %6018, label %6029

6018:                                             ; preds = %6015
  %6019 = load i32, ptr %9, align 4, !tbaa !9
  %6020 = icmp ugt i32 15, %6019
  br i1 %6020, label %6021, label %6026

6021:                                             ; preds = %6018
  %6022 = load i32, ptr %9, align 4, !tbaa !9
  %6023 = load i32, ptr %8, align 4, !tbaa !9
  %6024 = icmp ugt i32 %6022, %6023
  %6025 = zext i1 %6024 to i32
  br label %6027

6026:                                             ; preds = %6018
  br label %6027

6027:                                             ; preds = %6026, %6021
  %6028 = phi i32 [ %6025, %6021 ], [ 0, %6026 ]
  br label %6040

6029:                                             ; preds = %6015
  %6030 = load i32, ptr %9, align 4, !tbaa !9
  %6031 = icmp ugt i32 15, %6030
  br i1 %6031, label %6032, label %6033

6032:                                             ; preds = %6029
  br label %6038

6033:                                             ; preds = %6029
  %6034 = load i32, ptr %9, align 4, !tbaa !9
  %6035 = load i32, ptr %8, align 4, !tbaa !9
  %6036 = icmp ugt i32 %6034, %6035
  %6037 = zext i1 %6036 to i32
  br label %6038

6038:                                             ; preds = %6033, %6032
  %6039 = phi i32 [ 0, %6032 ], [ %6037, %6033 ]
  br label %6040

6040:                                             ; preds = %6038, %6027
  %6041 = phi i32 [ %6028, %6027 ], [ %6039, %6038 ]
  %6042 = icmp ne i32 %6041, 0
  br label %6043

6043:                                             ; preds = %6040, %6012
  %6044 = phi i1 [ true, %6012 ], [ %6042, %6040 ]
  %6045 = zext i1 %6044 to i32
  %6046 = icmp eq i32 0, %6045
  br i1 %6046, label %6047, label %6091

6047:                                             ; preds = %6043
  %6048 = load i16, ptr %145, align 2, !tbaa !15
  %6049 = sext i16 %6048 to i32
  %6050 = sitofp i32 %6049 to double
  %6051 = fcmp olt double -1.000000e+00, %6050
  br i1 %6051, label %6052, label %6075

6052:                                             ; preds = %6047
  %6053 = load i16, ptr %145, align 2, !tbaa !15
  %6054 = sext i16 %6053 to i32
  %6055 = sitofp i32 %6054 to double
  %6056 = fcmp ole double %6055, 1.000000e+00
  br i1 %6056, label %6057, label %6061

6057:                                             ; preds = %6052
  %6058 = load i16, ptr %145, align 2, !tbaa !15
  %6059 = sext i16 %6058 to i32
  %6060 = sitofp i32 %6059 to double
  br label %6073

6061:                                             ; preds = %6052
  %6062 = load i16, ptr %145, align 2, !tbaa !15
  %6063 = sext i16 %6062 to i32
  %6064 = sitofp i32 %6063 to double
  %6065 = fcmp olt double %6064, 1.000000e+00
  br i1 %6065, label %6066, label %6070

6066:                                             ; preds = %6061
  %6067 = load i16, ptr %145, align 2, !tbaa !15
  %6068 = sext i16 %6067 to i32
  %6069 = sitofp i32 %6068 to double
  br label %6071

6070:                                             ; preds = %6061
  br label %6071

6071:                                             ; preds = %6070, %6066
  %6072 = phi double [ %6069, %6066 ], [ 1.000000e+00, %6070 ]
  br label %6073

6073:                                             ; preds = %6071, %6057
  %6074 = phi double [ %6060, %6057 ], [ %6072, %6071 ]
  br label %6087

6075:                                             ; preds = %6047
  %6076 = load i16, ptr %145, align 2, !tbaa !15
  %6077 = sext i16 %6076 to i32
  %6078 = sitofp i32 %6077 to double
  %6079 = fcmp olt double -1.000000e+00, %6078
  br i1 %6079, label %6080, label %6084

6080:                                             ; preds = %6075
  %6081 = load i16, ptr %145, align 2, !tbaa !15
  %6082 = sext i16 %6081 to i32
  %6083 = sitofp i32 %6082 to double
  br label %6085

6084:                                             ; preds = %6075
  br label %6085

6085:                                             ; preds = %6084, %6080
  %6086 = phi double [ %6083, %6080 ], [ -1.000000e+00, %6084 ]
  br label %6087

6087:                                             ; preds = %6085, %6073
  %6088 = phi double [ %6074, %6073 ], [ %6086, %6085 ]
  %6089 = fptrunc double %6088 to float
  %6090 = load ptr, ptr %7, align 8, !tbaa !5
  store float %6089, ptr %6090, align 4, !tbaa !18
  br label %6095

6091:                                             ; preds = %6043
  %6092 = load i16, ptr %145, align 2, !tbaa !15
  %6093 = sitofp i16 %6092 to float
  %6094 = load ptr, ptr %7, align 8, !tbaa !5
  store float %6093, ptr %6094, align 4, !tbaa !18
  br label %6095

6095:                                             ; preds = %6091, %6087
  br label %6096

6096:                                             ; preds = %6095, %6008
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %145) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #3
  br label %6097

6097:                                             ; preds = %6096
  br label %6098

6098:                                             ; preds = %6097
  br label %8668

6099:                                             ; preds = %5043
  br label %6100

6100:                                             ; preds = %6099
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #3
  store double 0.000000e+00, ptr %155, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %156) #3
  %6101 = load ptr, ptr %10, align 8, !tbaa !5
  %6102 = load i8, ptr %6101, align 1, !tbaa !17
  store i8 %6102, ptr %156, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %157) #3
  store double 0.000000e+00, ptr %157, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #3
  store double 0.000000e+00, ptr %158, align 8, !tbaa !11
  %6103 = load ptr, ptr %11, align 8, !tbaa !5
  %6104 = icmp ne ptr null, %6103
  br i1 %6104, label %6105, label %6131

6105:                                             ; preds = %6100
  %6106 = load ptr, ptr %12, align 8, !tbaa !5
  %6107 = icmp ne ptr null, %6106
  br i1 %6107, label %6108, label %6123

6108:                                             ; preds = %6105
  %6109 = load ptr, ptr %11, align 8, !tbaa !5
  %6110 = load i8, ptr %6109, align 1, !tbaa !17
  %6111 = sext i8 %6110 to i32
  %6112 = load i8, ptr %156, align 1, !tbaa !17
  %6113 = sext i8 %6112 to i32
  %6114 = icmp sle i32 %6111, %6113
  br i1 %6114, label %6115, label %6123

6115:                                             ; preds = %6108
  %6116 = load i8, ptr %156, align 1, !tbaa !17
  %6117 = sext i8 %6116 to i32
  %6118 = load ptr, ptr %12, align 8, !tbaa !5
  %6119 = load i8, ptr %6118, align 1, !tbaa !17
  %6120 = sext i8 %6119 to i32
  %6121 = icmp sle i32 %6117, %6120
  br i1 %6121, label %6122, label %6123

6122:                                             ; preds = %6115
  br label %6124

6123:                                             ; preds = %6115, %6108, %6105
  call void @__assert_fail(ptr noundef @.str.45, ptr noundef @.str.24, i32 noundef 470, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

6124:                                             ; preds = %6122
  %6125 = load ptr, ptr %11, align 8, !tbaa !5
  %6126 = load i8, ptr %6125, align 1, !tbaa !17
  %6127 = sitofp i8 %6126 to double
  store double %6127, ptr %157, align 8, !tbaa !11
  %6128 = load ptr, ptr %12, align 8, !tbaa !5
  %6129 = load i8, ptr %6128, align 1, !tbaa !17
  %6130 = sitofp i8 %6129 to double
  store double %6130, ptr %158, align 8, !tbaa !11
  br label %6131

6131:                                             ; preds = %6124, %6100
  %6132 = load i32, ptr %8, align 4, !tbaa !9
  %6133 = icmp ule i32 6, %6132
  br i1 %6133, label %6134, label %6372

6134:                                             ; preds = %6131
  %6135 = load double, ptr %157, align 8, !tbaa !11
  %6136 = load double, ptr %158, align 8, !tbaa !11
  %6137 = fcmp olt double %6135, %6136
  br i1 %6137, label %6138, label %6372

6138:                                             ; preds = %6134
  %6139 = load i32, ptr %8, align 4, !tbaa !9
  %6140 = icmp ule i32 15, %6139
  br i1 %6140, label %6141, label %6195

6141:                                             ; preds = %6138
  call void @llvm.lifetime.start.p0(i64 8, ptr %159) #3
  %6142 = load double, ptr %157, align 8, !tbaa !11
  %6143 = fcmp olt double 0.000000e+00, %6142
  br i1 %6143, label %6144, label %6146

6144:                                             ; preds = %6141
  %6145 = load double, ptr %157, align 8, !tbaa !11
  br label %6147

6146:                                             ; preds = %6141
  br label %6147

6147:                                             ; preds = %6146, %6144
  %6148 = phi double [ %6145, %6144 ], [ 0.000000e+00, %6146 ]
  store double %6148, ptr %159, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #3
  %6149 = load double, ptr %158, align 8, !tbaa !11
  %6150 = fcmp olt double 0.000000e+00, %6149
  br i1 %6150, label %6151, label %6153

6151:                                             ; preds = %6147
  %6152 = load double, ptr %158, align 8, !tbaa !11
  br label %6154

6153:                                             ; preds = %6147
  br label %6154

6154:                                             ; preds = %6153, %6151
  %6155 = phi double [ %6152, %6151 ], [ 0.000000e+00, %6153 ]
  store double %6155, ptr %160, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #3
  %6156 = load double, ptr %159, align 8, !tbaa !11
  %6157 = load double, ptr %160, align 8, !tbaa !11
  %6158 = fcmp olt double %6156, %6157
  br i1 %6158, label %6159, label %6167

6159:                                             ; preds = %6154
  %6160 = load double, ptr %158, align 8, !tbaa !11
  %6161 = load double, ptr %157, align 8, !tbaa !11
  %6162 = fsub double %6160, %6161
  %6163 = load double, ptr %160, align 8, !tbaa !11
  %6164 = load double, ptr %159, align 8, !tbaa !11
  %6165 = fsub double %6163, %6164
  %6166 = fdiv double %6162, %6165
  br label %6168

6167:                                             ; preds = %6154
  br label %6168

6168:                                             ; preds = %6167, %6159
  %6169 = phi double [ %6166, %6159 ], [ 1.000000e+00, %6167 ]
  store double %6169, ptr %161, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #3
  %6170 = load double, ptr %161, align 8, !tbaa !11
  %6171 = load i8, ptr %156, align 1, !tbaa !17
  %6172 = sext i8 %6171 to i32
  %6173 = icmp slt i32 0, %6172
  br i1 %6173, label %6174, label %6177

6174:                                             ; preds = %6168
  %6175 = load i8, ptr %156, align 1, !tbaa !17
  %6176 = sext i8 %6175 to i32
  br label %6178

6177:                                             ; preds = %6168
  br label %6178

6178:                                             ; preds = %6177, %6174
  %6179 = phi i32 [ %6176, %6174 ], [ 0, %6177 ]
  %6180 = sitofp i32 %6179 to double
  %6181 = fmul double %6170, %6180
  store double %6181, ptr %162, align 8, !tbaa !11
  %6182 = load double, ptr %162, align 8, !tbaa !11
  %6183 = fcmp ole double 0.000000e+00, %6182
  br i1 %6183, label %6184, label %6187

6184:                                             ; preds = %6178
  %6185 = load double, ptr %162, align 8, !tbaa !11
  %6186 = fadd double %6185, 0.000000e+00
  br label %6190

6187:                                             ; preds = %6178
  %6188 = load double, ptr %162, align 8, !tbaa !11
  %6189 = fsub double %6188, 0.000000e+00
  br label %6190

6190:                                             ; preds = %6187, %6184
  %6191 = phi double [ %6186, %6184 ], [ %6189, %6187 ]
  %6192 = fptosi double %6191 to i8
  store i8 %6192, ptr %156, align 1, !tbaa !17
  %6193 = load double, ptr %159, align 8, !tbaa !11
  store double %6193, ptr %157, align 8, !tbaa !11
  %6194 = load double, ptr %160, align 8, !tbaa !11
  store double %6194, ptr %158, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #3
  br label %6251

6195:                                             ; preds = %6138
  %6196 = load i32, ptr %8, align 4, !tbaa !9
  %6197 = icmp ugt i32 6, %6196
  br i1 %6197, label %6226, label %6198

6198:                                             ; preds = %6195
  %6199 = load i32, ptr %8, align 4, !tbaa !9
  %6200 = icmp ugt i32 15, %6199
  br i1 %6200, label %6201, label %6212

6201:                                             ; preds = %6198
  %6202 = load i32, ptr %9, align 4, !tbaa !9
  %6203 = icmp ugt i32 15, %6202
  br i1 %6203, label %6204, label %6209

6204:                                             ; preds = %6201
  %6205 = load i32, ptr %9, align 4, !tbaa !9
  %6206 = load i32, ptr %8, align 4, !tbaa !9
  %6207 = icmp ugt i32 %6205, %6206
  %6208 = zext i1 %6207 to i32
  br label %6210

6209:                                             ; preds = %6201
  br label %6210

6210:                                             ; preds = %6209, %6204
  %6211 = phi i32 [ %6208, %6204 ], [ 0, %6209 ]
  br label %6223

6212:                                             ; preds = %6198
  %6213 = load i32, ptr %9, align 4, !tbaa !9
  %6214 = icmp ugt i32 15, %6213
  br i1 %6214, label %6215, label %6216

6215:                                             ; preds = %6212
  br label %6221

6216:                                             ; preds = %6212
  %6217 = load i32, ptr %9, align 4, !tbaa !9
  %6218 = load i32, ptr %8, align 4, !tbaa !9
  %6219 = icmp ugt i32 %6217, %6218
  %6220 = zext i1 %6219 to i32
  br label %6221

6221:                                             ; preds = %6216, %6215
  %6222 = phi i32 [ 0, %6215 ], [ %6220, %6216 ]
  br label %6223

6223:                                             ; preds = %6221, %6210
  %6224 = phi i32 [ %6211, %6210 ], [ %6222, %6221 ]
  %6225 = icmp ne i32 %6224, 0
  br label %6226

6226:                                             ; preds = %6223, %6195
  %6227 = phi i1 [ true, %6195 ], [ %6225, %6223 ]
  %6228 = zext i1 %6227 to i32
  %6229 = icmp eq i32 0, %6228
  br i1 %6229, label %6230, label %6250

6230:                                             ; preds = %6226
  %6231 = load double, ptr %157, align 8, !tbaa !11
  %6232 = fcmp ogt double 0.000000e+00, %6231
  br i1 %6232, label %6233, label %6250

6233:                                             ; preds = %6230
  %6234 = load double, ptr %158, align 8, !tbaa !11
  %6235 = fcmp olt double 0.000000e+00, %6234
  br i1 %6235, label %6236, label %6250

6236:                                             ; preds = %6233
  %6237 = load double, ptr %157, align 8, !tbaa !11
  %6238 = fneg double %6237
  %6239 = load double, ptr %158, align 8, !tbaa !11
  %6240 = fcmp olt double %6238, %6239
  br i1 %6240, label %6241, label %6243

6241:                                             ; preds = %6236
  %6242 = load double, ptr %158, align 8, !tbaa !11
  br label %6246

6243:                                             ; preds = %6236
  %6244 = load double, ptr %157, align 8, !tbaa !11
  %6245 = fneg double %6244
  br label %6246

6246:                                             ; preds = %6243, %6241
  %6247 = phi double [ %6242, %6241 ], [ %6245, %6243 ]
  store double %6247, ptr %158, align 8, !tbaa !11
  %6248 = load double, ptr %158, align 8, !tbaa !11
  %6249 = fneg double %6248
  store double %6249, ptr %157, align 8, !tbaa !11
  br label %6250

6250:                                             ; preds = %6246, %6233, %6230, %6226
  br label %6251

6251:                                             ; preds = %6250, %6190
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #3
  %6252 = load double, ptr %157, align 8, !tbaa !11
  %6253 = fcmp ole double 0.000000e+00, %6252
  %6254 = zext i1 %6253 to i64
  %6255 = select i1 %6253, double 0.000000e+00, double -1.000000e+00
  store double %6255, ptr %163, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #3
  %6256 = load double, ptr %158, align 8, !tbaa !11
  %6257 = fcmp ole double 0.000000e+00, %6256
  %6258 = zext i1 %6257 to i64
  %6259 = select i1 %6257, double 1.000000e+00, double 0.000000e+00
  store double %6259, ptr %164, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %165) #3
  %6260 = load i8, ptr %156, align 1, !tbaa !17
  %6261 = sitofp i8 %6260 to double
  %6262 = load double, ptr %157, align 8, !tbaa !11
  %6263 = fsub double %6261, %6262
  %6264 = load double, ptr %164, align 8, !tbaa !11
  %6265 = load double, ptr %163, align 8, !tbaa !11
  %6266 = fsub double %6264, %6265
  %6267 = fmul double %6263, %6266
  %6268 = load double, ptr %158, align 8, !tbaa !11
  %6269 = load double, ptr %157, align 8, !tbaa !11
  %6270 = fsub double %6268, %6269
  %6271 = fdiv double %6267, %6270
  %6272 = load double, ptr %163, align 8, !tbaa !11
  %6273 = fadd double %6271, %6272
  store double %6273, ptr %165, align 8, !tbaa !11
  %6274 = load double, ptr %163, align 8, !tbaa !11
  %6275 = load double, ptr %165, align 8, !tbaa !11
  %6276 = fcmp ole double 0.000000e+00, %6275
  br i1 %6276, label %6277, label %6280

6277:                                             ; preds = %6251
  %6278 = load double, ptr %165, align 8, !tbaa !11
  %6279 = fadd double %6278, 0.000000e+00
  br label %6283

6280:                                             ; preds = %6251
  %6281 = load double, ptr %165, align 8, !tbaa !11
  %6282 = fsub double %6281, 0.000000e+00
  br label %6283

6283:                                             ; preds = %6280, %6277
  %6284 = phi double [ %6279, %6277 ], [ %6282, %6280 ]
  %6285 = fcmp olt double %6274, %6284
  br i1 %6285, label %6286, label %6340

6286:                                             ; preds = %6283
  %6287 = load double, ptr %165, align 8, !tbaa !11
  %6288 = fcmp ole double 0.000000e+00, %6287
  br i1 %6288, label %6289, label %6292

6289:                                             ; preds = %6286
  %6290 = load double, ptr %165, align 8, !tbaa !11
  %6291 = fadd double %6290, 0.000000e+00
  br label %6295

6292:                                             ; preds = %6286
  %6293 = load double, ptr %165, align 8, !tbaa !11
  %6294 = fsub double %6293, 0.000000e+00
  br label %6295

6295:                                             ; preds = %6292, %6289
  %6296 = phi double [ %6291, %6289 ], [ %6294, %6292 ]
  %6297 = load double, ptr %164, align 8, !tbaa !11
  %6298 = fcmp ole double %6296, %6297
  br i1 %6298, label %6299, label %6310

6299:                                             ; preds = %6295
  %6300 = load double, ptr %165, align 8, !tbaa !11
  %6301 = fcmp ole double 0.000000e+00, %6300
  br i1 %6301, label %6302, label %6305

6302:                                             ; preds = %6299
  %6303 = load double, ptr %165, align 8, !tbaa !11
  %6304 = fadd double %6303, 0.000000e+00
  br label %6308

6305:                                             ; preds = %6299
  %6306 = load double, ptr %165, align 8, !tbaa !11
  %6307 = fsub double %6306, 0.000000e+00
  br label %6308

6308:                                             ; preds = %6305, %6302
  %6309 = phi double [ %6304, %6302 ], [ %6307, %6305 ]
  br label %6338

6310:                                             ; preds = %6295
  %6311 = load double, ptr %165, align 8, !tbaa !11
  %6312 = fcmp ole double 0.000000e+00, %6311
  br i1 %6312, label %6313, label %6316

6313:                                             ; preds = %6310
  %6314 = load double, ptr %165, align 8, !tbaa !11
  %6315 = fadd double %6314, 0.000000e+00
  br label %6319

6316:                                             ; preds = %6310
  %6317 = load double, ptr %165, align 8, !tbaa !11
  %6318 = fsub double %6317, 0.000000e+00
  br label %6319

6319:                                             ; preds = %6316, %6313
  %6320 = phi double [ %6315, %6313 ], [ %6318, %6316 ]
  %6321 = load double, ptr %164, align 8, !tbaa !11
  %6322 = fcmp olt double %6320, %6321
  br i1 %6322, label %6323, label %6334

6323:                                             ; preds = %6319
  %6324 = load double, ptr %165, align 8, !tbaa !11
  %6325 = fcmp ole double 0.000000e+00, %6324
  br i1 %6325, label %6326, label %6329

6326:                                             ; preds = %6323
  %6327 = load double, ptr %165, align 8, !tbaa !11
  %6328 = fadd double %6327, 0.000000e+00
  br label %6332

6329:                                             ; preds = %6323
  %6330 = load double, ptr %165, align 8, !tbaa !11
  %6331 = fsub double %6330, 0.000000e+00
  br label %6332

6332:                                             ; preds = %6329, %6326
  %6333 = phi double [ %6328, %6326 ], [ %6331, %6329 ]
  br label %6336

6334:                                             ; preds = %6319
  %6335 = load double, ptr %164, align 8, !tbaa !11
  br label %6336

6336:                                             ; preds = %6334, %6332
  %6337 = phi double [ %6333, %6332 ], [ %6335, %6334 ]
  br label %6338

6338:                                             ; preds = %6336, %6308
  %6339 = phi double [ %6309, %6308 ], [ %6337, %6336 ]
  br label %6368

6340:                                             ; preds = %6283
  %6341 = load double, ptr %163, align 8, !tbaa !11
  %6342 = load double, ptr %165, align 8, !tbaa !11
  %6343 = fcmp ole double 0.000000e+00, %6342
  br i1 %6343, label %6344, label %6347

6344:                                             ; preds = %6340
  %6345 = load double, ptr %165, align 8, !tbaa !11
  %6346 = fadd double %6345, 0.000000e+00
  br label %6350

6347:                                             ; preds = %6340
  %6348 = load double, ptr %165, align 8, !tbaa !11
  %6349 = fsub double %6348, 0.000000e+00
  br label %6350

6350:                                             ; preds = %6347, %6344
  %6351 = phi double [ %6346, %6344 ], [ %6349, %6347 ]
  %6352 = fcmp olt double %6341, %6351
  br i1 %6352, label %6353, label %6364

6353:                                             ; preds = %6350
  %6354 = load double, ptr %165, align 8, !tbaa !11
  %6355 = fcmp ole double 0.000000e+00, %6354
  br i1 %6355, label %6356, label %6359

6356:                                             ; preds = %6353
  %6357 = load double, ptr %165, align 8, !tbaa !11
  %6358 = fadd double %6357, 0.000000e+00
  br label %6362

6359:                                             ; preds = %6353
  %6360 = load double, ptr %165, align 8, !tbaa !11
  %6361 = fsub double %6360, 0.000000e+00
  br label %6362

6362:                                             ; preds = %6359, %6356
  %6363 = phi double [ %6358, %6356 ], [ %6361, %6359 ]
  br label %6366

6364:                                             ; preds = %6350
  %6365 = load double, ptr %163, align 8, !tbaa !11
  br label %6366

6366:                                             ; preds = %6364, %6362
  %6367 = phi double [ %6363, %6362 ], [ %6365, %6364 ]
  br label %6368

6368:                                             ; preds = %6366, %6338
  %6369 = phi double [ %6339, %6338 ], [ %6367, %6366 ]
  %6370 = fptrunc double %6369 to float
  %6371 = load ptr, ptr %7, align 8, !tbaa !5
  store float %6370, ptr %6371, align 4, !tbaa !18
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #3
  br label %6456

6372:                                             ; preds = %6134, %6131
  %6373 = load i32, ptr %8, align 4, !tbaa !9
  %6374 = icmp ugt i32 6, %6373
  br i1 %6374, label %6403, label %6375

6375:                                             ; preds = %6372
  %6376 = load i32, ptr %8, align 4, !tbaa !9
  %6377 = icmp ugt i32 15, %6376
  br i1 %6377, label %6378, label %6389

6378:                                             ; preds = %6375
  %6379 = load i32, ptr %9, align 4, !tbaa !9
  %6380 = icmp ugt i32 15, %6379
  br i1 %6380, label %6381, label %6386

6381:                                             ; preds = %6378
  %6382 = load i32, ptr %9, align 4, !tbaa !9
  %6383 = load i32, ptr %8, align 4, !tbaa !9
  %6384 = icmp ugt i32 %6382, %6383
  %6385 = zext i1 %6384 to i32
  br label %6387

6386:                                             ; preds = %6378
  br label %6387

6387:                                             ; preds = %6386, %6381
  %6388 = phi i32 [ %6385, %6381 ], [ 0, %6386 ]
  br label %6400

6389:                                             ; preds = %6375
  %6390 = load i32, ptr %9, align 4, !tbaa !9
  %6391 = icmp ugt i32 15, %6390
  br i1 %6391, label %6392, label %6393

6392:                                             ; preds = %6389
  br label %6398

6393:                                             ; preds = %6389
  %6394 = load i32, ptr %9, align 4, !tbaa !9
  %6395 = load i32, ptr %8, align 4, !tbaa !9
  %6396 = icmp ugt i32 %6394, %6395
  %6397 = zext i1 %6396 to i32
  br label %6398

6398:                                             ; preds = %6393, %6392
  %6399 = phi i32 [ 0, %6392 ], [ %6397, %6393 ]
  br label %6400

6400:                                             ; preds = %6398, %6387
  %6401 = phi i32 [ %6388, %6387 ], [ %6399, %6398 ]
  %6402 = icmp ne i32 %6401, 0
  br label %6403

6403:                                             ; preds = %6400, %6372
  %6404 = phi i1 [ true, %6372 ], [ %6402, %6400 ]
  %6405 = zext i1 %6404 to i32
  %6406 = icmp eq i32 0, %6405
  br i1 %6406, label %6407, label %6451

6407:                                             ; preds = %6403
  %6408 = load i8, ptr %156, align 1, !tbaa !17
  %6409 = sext i8 %6408 to i32
  %6410 = sitofp i32 %6409 to double
  %6411 = fcmp olt double -1.000000e+00, %6410
  br i1 %6411, label %6412, label %6435

6412:                                             ; preds = %6407
  %6413 = load i8, ptr %156, align 1, !tbaa !17
  %6414 = sext i8 %6413 to i32
  %6415 = sitofp i32 %6414 to double
  %6416 = fcmp ole double %6415, 1.000000e+00
  br i1 %6416, label %6417, label %6421

6417:                                             ; preds = %6412
  %6418 = load i8, ptr %156, align 1, !tbaa !17
  %6419 = sext i8 %6418 to i32
  %6420 = sitofp i32 %6419 to double
  br label %6433

6421:                                             ; preds = %6412
  %6422 = load i8, ptr %156, align 1, !tbaa !17
  %6423 = sext i8 %6422 to i32
  %6424 = sitofp i32 %6423 to double
  %6425 = fcmp olt double %6424, 1.000000e+00
  br i1 %6425, label %6426, label %6430

6426:                                             ; preds = %6421
  %6427 = load i8, ptr %156, align 1, !tbaa !17
  %6428 = sext i8 %6427 to i32
  %6429 = sitofp i32 %6428 to double
  br label %6431

6430:                                             ; preds = %6421
  br label %6431

6431:                                             ; preds = %6430, %6426
  %6432 = phi double [ %6429, %6426 ], [ 1.000000e+00, %6430 ]
  br label %6433

6433:                                             ; preds = %6431, %6417
  %6434 = phi double [ %6420, %6417 ], [ %6432, %6431 ]
  br label %6447

6435:                                             ; preds = %6407
  %6436 = load i8, ptr %156, align 1, !tbaa !17
  %6437 = sext i8 %6436 to i32
  %6438 = sitofp i32 %6437 to double
  %6439 = fcmp olt double -1.000000e+00, %6438
  br i1 %6439, label %6440, label %6444

6440:                                             ; preds = %6435
  %6441 = load i8, ptr %156, align 1, !tbaa !17
  %6442 = sext i8 %6441 to i32
  %6443 = sitofp i32 %6442 to double
  br label %6445

6444:                                             ; preds = %6435
  br label %6445

6445:                                             ; preds = %6444, %6440
  %6446 = phi double [ %6443, %6440 ], [ -1.000000e+00, %6444 ]
  br label %6447

6447:                                             ; preds = %6445, %6433
  %6448 = phi double [ %6434, %6433 ], [ %6446, %6445 ]
  %6449 = fptrunc double %6448 to float
  %6450 = load ptr, ptr %7, align 8, !tbaa !5
  store float %6449, ptr %6450, align 4, !tbaa !18
  br label %6455

6451:                                             ; preds = %6403
  %6452 = load i8, ptr %156, align 1, !tbaa !17
  %6453 = sitofp i8 %6452 to float
  %6454 = load ptr, ptr %7, align 8, !tbaa !5
  store float %6453, ptr %6454, align 4, !tbaa !18
  br label %6455

6455:                                             ; preds = %6451, %6447
  br label %6456

6456:                                             ; preds = %6455, %6368
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %156) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #3
  br label %6457

6457:                                             ; preds = %6456
  br label %6458

6458:                                             ; preds = %6457
  br label %8668

6459:                                             ; preds = %5043
  br label %6460

6460:                                             ; preds = %6459
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #3
  store double 0.000000e+00, ptr %166, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #3
  %6461 = load ptr, ptr %10, align 8, !tbaa !5
  %6462 = load i64, ptr %6461, align 8, !tbaa !13
  store i64 %6462, ptr %167, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #3
  store double 0.000000e+00, ptr %168, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #3
  store double 0.000000e+00, ptr %169, align 8, !tbaa !11
  %6463 = load ptr, ptr %11, align 8, !tbaa !5
  %6464 = icmp ne ptr null, %6463
  br i1 %6464, label %6465, label %6487

6465:                                             ; preds = %6460
  %6466 = load ptr, ptr %12, align 8, !tbaa !5
  %6467 = icmp ne ptr null, %6466
  br i1 %6467, label %6468, label %6479

6468:                                             ; preds = %6465
  %6469 = load ptr, ptr %11, align 8, !tbaa !5
  %6470 = load i64, ptr %6469, align 8, !tbaa !13
  %6471 = load i64, ptr %167, align 8, !tbaa !13
  %6472 = icmp ule i64 %6470, %6471
  br i1 %6472, label %6473, label %6479

6473:                                             ; preds = %6468
  %6474 = load i64, ptr %167, align 8, !tbaa !13
  %6475 = load ptr, ptr %12, align 8, !tbaa !5
  %6476 = load i64, ptr %6475, align 8, !tbaa !13
  %6477 = icmp ule i64 %6474, %6476
  br i1 %6477, label %6478, label %6479

6478:                                             ; preds = %6473
  br label %6480

6479:                                             ; preds = %6473, %6468, %6465
  call void @__assert_fail(ptr noundef @.str.46, ptr noundef @.str.24, i32 noundef 470, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

6480:                                             ; preds = %6478
  %6481 = load ptr, ptr %11, align 8, !tbaa !5
  %6482 = load i64, ptr %6481, align 8, !tbaa !13
  %6483 = uitofp i64 %6482 to double
  store double %6483, ptr %168, align 8, !tbaa !11
  %6484 = load ptr, ptr %12, align 8, !tbaa !5
  %6485 = load i64, ptr %6484, align 8, !tbaa !13
  %6486 = uitofp i64 %6485 to double
  store double %6486, ptr %169, align 8, !tbaa !11
  br label %6487

6487:                                             ; preds = %6480, %6460
  %6488 = load i32, ptr %8, align 4, !tbaa !9
  %6489 = icmp ule i32 6, %6488
  br i1 %6489, label %6490, label %6726

6490:                                             ; preds = %6487
  %6491 = load double, ptr %168, align 8, !tbaa !11
  %6492 = load double, ptr %169, align 8, !tbaa !11
  %6493 = fcmp olt double %6491, %6492
  br i1 %6493, label %6494, label %6726

6494:                                             ; preds = %6490
  %6495 = load i32, ptr %8, align 4, !tbaa !9
  %6496 = icmp ule i32 15, %6495
  br i1 %6496, label %6497, label %6549

6497:                                             ; preds = %6494
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #3
  %6498 = load double, ptr %168, align 8, !tbaa !11
  %6499 = fcmp olt double 0.000000e+00, %6498
  br i1 %6499, label %6500, label %6502

6500:                                             ; preds = %6497
  %6501 = load double, ptr %168, align 8, !tbaa !11
  br label %6503

6502:                                             ; preds = %6497
  br label %6503

6503:                                             ; preds = %6502, %6500
  %6504 = phi double [ %6501, %6500 ], [ 0.000000e+00, %6502 ]
  store double %6504, ptr %170, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %171) #3
  %6505 = load double, ptr %169, align 8, !tbaa !11
  %6506 = fcmp olt double 0.000000e+00, %6505
  br i1 %6506, label %6507, label %6509

6507:                                             ; preds = %6503
  %6508 = load double, ptr %169, align 8, !tbaa !11
  br label %6510

6509:                                             ; preds = %6503
  br label %6510

6510:                                             ; preds = %6509, %6507
  %6511 = phi double [ %6508, %6507 ], [ 0.000000e+00, %6509 ]
  store double %6511, ptr %171, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %172) #3
  %6512 = load double, ptr %170, align 8, !tbaa !11
  %6513 = load double, ptr %171, align 8, !tbaa !11
  %6514 = fcmp olt double %6512, %6513
  br i1 %6514, label %6515, label %6523

6515:                                             ; preds = %6510
  %6516 = load double, ptr %169, align 8, !tbaa !11
  %6517 = load double, ptr %168, align 8, !tbaa !11
  %6518 = fsub double %6516, %6517
  %6519 = load double, ptr %171, align 8, !tbaa !11
  %6520 = load double, ptr %170, align 8, !tbaa !11
  %6521 = fsub double %6519, %6520
  %6522 = fdiv double %6518, %6521
  br label %6524

6523:                                             ; preds = %6510
  br label %6524

6524:                                             ; preds = %6523, %6515
  %6525 = phi double [ %6522, %6515 ], [ 1.000000e+00, %6523 ]
  store double %6525, ptr %172, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #3
  %6526 = load double, ptr %172, align 8, !tbaa !11
  %6527 = load i64, ptr %167, align 8, !tbaa !13
  %6528 = icmp ult i64 0, %6527
  br i1 %6528, label %6529, label %6531

6529:                                             ; preds = %6524
  %6530 = load i64, ptr %167, align 8, !tbaa !13
  br label %6532

6531:                                             ; preds = %6524
  br label %6532

6532:                                             ; preds = %6531, %6529
  %6533 = phi i64 [ %6530, %6529 ], [ 0, %6531 ]
  %6534 = uitofp i64 %6533 to double
  %6535 = fmul double %6526, %6534
  store double %6535, ptr %173, align 8, !tbaa !11
  %6536 = load double, ptr %173, align 8, !tbaa !11
  %6537 = fcmp ole double 0.000000e+00, %6536
  br i1 %6537, label %6538, label %6541

6538:                                             ; preds = %6532
  %6539 = load double, ptr %173, align 8, !tbaa !11
  %6540 = fadd double %6539, 0.000000e+00
  br label %6544

6541:                                             ; preds = %6532
  %6542 = load double, ptr %173, align 8, !tbaa !11
  %6543 = fsub double %6542, 0.000000e+00
  br label %6544

6544:                                             ; preds = %6541, %6538
  %6545 = phi double [ %6540, %6538 ], [ %6543, %6541 ]
  %6546 = fptoui double %6545 to i64
  store i64 %6546, ptr %167, align 8, !tbaa !13
  %6547 = load double, ptr %170, align 8, !tbaa !11
  store double %6547, ptr %168, align 8, !tbaa !11
  %6548 = load double, ptr %171, align 8, !tbaa !11
  store double %6548, ptr %169, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %171) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #3
  br label %6605

6549:                                             ; preds = %6494
  %6550 = load i32, ptr %8, align 4, !tbaa !9
  %6551 = icmp ugt i32 6, %6550
  br i1 %6551, label %6580, label %6552

6552:                                             ; preds = %6549
  %6553 = load i32, ptr %8, align 4, !tbaa !9
  %6554 = icmp ugt i32 15, %6553
  br i1 %6554, label %6555, label %6566

6555:                                             ; preds = %6552
  %6556 = load i32, ptr %9, align 4, !tbaa !9
  %6557 = icmp ugt i32 15, %6556
  br i1 %6557, label %6558, label %6563

6558:                                             ; preds = %6555
  %6559 = load i32, ptr %9, align 4, !tbaa !9
  %6560 = load i32, ptr %8, align 4, !tbaa !9
  %6561 = icmp ugt i32 %6559, %6560
  %6562 = zext i1 %6561 to i32
  br label %6564

6563:                                             ; preds = %6555
  br label %6564

6564:                                             ; preds = %6563, %6558
  %6565 = phi i32 [ %6562, %6558 ], [ 0, %6563 ]
  br label %6577

6566:                                             ; preds = %6552
  %6567 = load i32, ptr %9, align 4, !tbaa !9
  %6568 = icmp ugt i32 15, %6567
  br i1 %6568, label %6569, label %6570

6569:                                             ; preds = %6566
  br label %6575

6570:                                             ; preds = %6566
  %6571 = load i32, ptr %9, align 4, !tbaa !9
  %6572 = load i32, ptr %8, align 4, !tbaa !9
  %6573 = icmp ugt i32 %6571, %6572
  %6574 = zext i1 %6573 to i32
  br label %6575

6575:                                             ; preds = %6570, %6569
  %6576 = phi i32 [ 0, %6569 ], [ %6574, %6570 ]
  br label %6577

6577:                                             ; preds = %6575, %6564
  %6578 = phi i32 [ %6565, %6564 ], [ %6576, %6575 ]
  %6579 = icmp ne i32 %6578, 0
  br label %6580

6580:                                             ; preds = %6577, %6549
  %6581 = phi i1 [ true, %6549 ], [ %6579, %6577 ]
  %6582 = zext i1 %6581 to i32
  %6583 = icmp eq i32 0, %6582
  br i1 %6583, label %6584, label %6604

6584:                                             ; preds = %6580
  %6585 = load double, ptr %168, align 8, !tbaa !11
  %6586 = fcmp ogt double 0.000000e+00, %6585
  br i1 %6586, label %6587, label %6604

6587:                                             ; preds = %6584
  %6588 = load double, ptr %169, align 8, !tbaa !11
  %6589 = fcmp olt double 0.000000e+00, %6588
  br i1 %6589, label %6590, label %6604

6590:                                             ; preds = %6587
  %6591 = load double, ptr %168, align 8, !tbaa !11
  %6592 = fneg double %6591
  %6593 = load double, ptr %169, align 8, !tbaa !11
  %6594 = fcmp olt double %6592, %6593
  br i1 %6594, label %6595, label %6597

6595:                                             ; preds = %6590
  %6596 = load double, ptr %169, align 8, !tbaa !11
  br label %6600

6597:                                             ; preds = %6590
  %6598 = load double, ptr %168, align 8, !tbaa !11
  %6599 = fneg double %6598
  br label %6600

6600:                                             ; preds = %6597, %6595
  %6601 = phi double [ %6596, %6595 ], [ %6599, %6597 ]
  store double %6601, ptr %169, align 8, !tbaa !11
  %6602 = load double, ptr %169, align 8, !tbaa !11
  %6603 = fneg double %6602
  store double %6603, ptr %168, align 8, !tbaa !11
  br label %6604

6604:                                             ; preds = %6600, %6587, %6584, %6580
  br label %6605

6605:                                             ; preds = %6604, %6544
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #3
  %6606 = load double, ptr %168, align 8, !tbaa !11
  %6607 = fcmp ole double 0.000000e+00, %6606
  %6608 = zext i1 %6607 to i64
  %6609 = select i1 %6607, double 0.000000e+00, double -1.000000e+00
  store double %6609, ptr %174, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #3
  %6610 = load double, ptr %169, align 8, !tbaa !11
  %6611 = fcmp ole double 0.000000e+00, %6610
  %6612 = zext i1 %6611 to i64
  %6613 = select i1 %6611, double 1.000000e+00, double 0.000000e+00
  store double %6613, ptr %175, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #3
  %6614 = load i64, ptr %167, align 8, !tbaa !13
  %6615 = uitofp i64 %6614 to double
  %6616 = load double, ptr %168, align 8, !tbaa !11
  %6617 = fsub double %6615, %6616
  %6618 = load double, ptr %175, align 8, !tbaa !11
  %6619 = load double, ptr %174, align 8, !tbaa !11
  %6620 = fsub double %6618, %6619
  %6621 = fmul double %6617, %6620
  %6622 = load double, ptr %169, align 8, !tbaa !11
  %6623 = load double, ptr %168, align 8, !tbaa !11
  %6624 = fsub double %6622, %6623
  %6625 = fdiv double %6621, %6624
  %6626 = load double, ptr %174, align 8, !tbaa !11
  %6627 = fadd double %6625, %6626
  store double %6627, ptr %176, align 8, !tbaa !11
  %6628 = load double, ptr %174, align 8, !tbaa !11
  %6629 = load double, ptr %176, align 8, !tbaa !11
  %6630 = fcmp ole double 0.000000e+00, %6629
  br i1 %6630, label %6631, label %6634

6631:                                             ; preds = %6605
  %6632 = load double, ptr %176, align 8, !tbaa !11
  %6633 = fadd double %6632, 0.000000e+00
  br label %6637

6634:                                             ; preds = %6605
  %6635 = load double, ptr %176, align 8, !tbaa !11
  %6636 = fsub double %6635, 0.000000e+00
  br label %6637

6637:                                             ; preds = %6634, %6631
  %6638 = phi double [ %6633, %6631 ], [ %6636, %6634 ]
  %6639 = fcmp olt double %6628, %6638
  br i1 %6639, label %6640, label %6694

6640:                                             ; preds = %6637
  %6641 = load double, ptr %176, align 8, !tbaa !11
  %6642 = fcmp ole double 0.000000e+00, %6641
  br i1 %6642, label %6643, label %6646

6643:                                             ; preds = %6640
  %6644 = load double, ptr %176, align 8, !tbaa !11
  %6645 = fadd double %6644, 0.000000e+00
  br label %6649

6646:                                             ; preds = %6640
  %6647 = load double, ptr %176, align 8, !tbaa !11
  %6648 = fsub double %6647, 0.000000e+00
  br label %6649

6649:                                             ; preds = %6646, %6643
  %6650 = phi double [ %6645, %6643 ], [ %6648, %6646 ]
  %6651 = load double, ptr %175, align 8, !tbaa !11
  %6652 = fcmp ole double %6650, %6651
  br i1 %6652, label %6653, label %6664

6653:                                             ; preds = %6649
  %6654 = load double, ptr %176, align 8, !tbaa !11
  %6655 = fcmp ole double 0.000000e+00, %6654
  br i1 %6655, label %6656, label %6659

6656:                                             ; preds = %6653
  %6657 = load double, ptr %176, align 8, !tbaa !11
  %6658 = fadd double %6657, 0.000000e+00
  br label %6662

6659:                                             ; preds = %6653
  %6660 = load double, ptr %176, align 8, !tbaa !11
  %6661 = fsub double %6660, 0.000000e+00
  br label %6662

6662:                                             ; preds = %6659, %6656
  %6663 = phi double [ %6658, %6656 ], [ %6661, %6659 ]
  br label %6692

6664:                                             ; preds = %6649
  %6665 = load double, ptr %176, align 8, !tbaa !11
  %6666 = fcmp ole double 0.000000e+00, %6665
  br i1 %6666, label %6667, label %6670

6667:                                             ; preds = %6664
  %6668 = load double, ptr %176, align 8, !tbaa !11
  %6669 = fadd double %6668, 0.000000e+00
  br label %6673

6670:                                             ; preds = %6664
  %6671 = load double, ptr %176, align 8, !tbaa !11
  %6672 = fsub double %6671, 0.000000e+00
  br label %6673

6673:                                             ; preds = %6670, %6667
  %6674 = phi double [ %6669, %6667 ], [ %6672, %6670 ]
  %6675 = load double, ptr %175, align 8, !tbaa !11
  %6676 = fcmp olt double %6674, %6675
  br i1 %6676, label %6677, label %6688

6677:                                             ; preds = %6673
  %6678 = load double, ptr %176, align 8, !tbaa !11
  %6679 = fcmp ole double 0.000000e+00, %6678
  br i1 %6679, label %6680, label %6683

6680:                                             ; preds = %6677
  %6681 = load double, ptr %176, align 8, !tbaa !11
  %6682 = fadd double %6681, 0.000000e+00
  br label %6686

6683:                                             ; preds = %6677
  %6684 = load double, ptr %176, align 8, !tbaa !11
  %6685 = fsub double %6684, 0.000000e+00
  br label %6686

6686:                                             ; preds = %6683, %6680
  %6687 = phi double [ %6682, %6680 ], [ %6685, %6683 ]
  br label %6690

6688:                                             ; preds = %6673
  %6689 = load double, ptr %175, align 8, !tbaa !11
  br label %6690

6690:                                             ; preds = %6688, %6686
  %6691 = phi double [ %6687, %6686 ], [ %6689, %6688 ]
  br label %6692

6692:                                             ; preds = %6690, %6662
  %6693 = phi double [ %6663, %6662 ], [ %6691, %6690 ]
  br label %6722

6694:                                             ; preds = %6637
  %6695 = load double, ptr %174, align 8, !tbaa !11
  %6696 = load double, ptr %176, align 8, !tbaa !11
  %6697 = fcmp ole double 0.000000e+00, %6696
  br i1 %6697, label %6698, label %6701

6698:                                             ; preds = %6694
  %6699 = load double, ptr %176, align 8, !tbaa !11
  %6700 = fadd double %6699, 0.000000e+00
  br label %6704

6701:                                             ; preds = %6694
  %6702 = load double, ptr %176, align 8, !tbaa !11
  %6703 = fsub double %6702, 0.000000e+00
  br label %6704

6704:                                             ; preds = %6701, %6698
  %6705 = phi double [ %6700, %6698 ], [ %6703, %6701 ]
  %6706 = fcmp olt double %6695, %6705
  br i1 %6706, label %6707, label %6718

6707:                                             ; preds = %6704
  %6708 = load double, ptr %176, align 8, !tbaa !11
  %6709 = fcmp ole double 0.000000e+00, %6708
  br i1 %6709, label %6710, label %6713

6710:                                             ; preds = %6707
  %6711 = load double, ptr %176, align 8, !tbaa !11
  %6712 = fadd double %6711, 0.000000e+00
  br label %6716

6713:                                             ; preds = %6707
  %6714 = load double, ptr %176, align 8, !tbaa !11
  %6715 = fsub double %6714, 0.000000e+00
  br label %6716

6716:                                             ; preds = %6713, %6710
  %6717 = phi double [ %6712, %6710 ], [ %6715, %6713 ]
  br label %6720

6718:                                             ; preds = %6704
  %6719 = load double, ptr %174, align 8, !tbaa !11
  br label %6720

6720:                                             ; preds = %6718, %6716
  %6721 = phi double [ %6717, %6716 ], [ %6719, %6718 ]
  br label %6722

6722:                                             ; preds = %6720, %6692
  %6723 = phi double [ %6693, %6692 ], [ %6721, %6720 ]
  %6724 = fptrunc double %6723 to float
  %6725 = load ptr, ptr %7, align 8, !tbaa !5
  store float %6724, ptr %6725, align 4, !tbaa !18
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #3
  br label %6803

6726:                                             ; preds = %6490, %6487
  %6727 = load i32, ptr %8, align 4, !tbaa !9
  %6728 = icmp ugt i32 6, %6727
  br i1 %6728, label %6757, label %6729

6729:                                             ; preds = %6726
  %6730 = load i32, ptr %8, align 4, !tbaa !9
  %6731 = icmp ugt i32 15, %6730
  br i1 %6731, label %6732, label %6743

6732:                                             ; preds = %6729
  %6733 = load i32, ptr %9, align 4, !tbaa !9
  %6734 = icmp ugt i32 15, %6733
  br i1 %6734, label %6735, label %6740

6735:                                             ; preds = %6732
  %6736 = load i32, ptr %9, align 4, !tbaa !9
  %6737 = load i32, ptr %8, align 4, !tbaa !9
  %6738 = icmp ugt i32 %6736, %6737
  %6739 = zext i1 %6738 to i32
  br label %6741

6740:                                             ; preds = %6732
  br label %6741

6741:                                             ; preds = %6740, %6735
  %6742 = phi i32 [ %6739, %6735 ], [ 0, %6740 ]
  br label %6754

6743:                                             ; preds = %6729
  %6744 = load i32, ptr %9, align 4, !tbaa !9
  %6745 = icmp ugt i32 15, %6744
  br i1 %6745, label %6746, label %6747

6746:                                             ; preds = %6743
  br label %6752

6747:                                             ; preds = %6743
  %6748 = load i32, ptr %9, align 4, !tbaa !9
  %6749 = load i32, ptr %8, align 4, !tbaa !9
  %6750 = icmp ugt i32 %6748, %6749
  %6751 = zext i1 %6750 to i32
  br label %6752

6752:                                             ; preds = %6747, %6746
  %6753 = phi i32 [ 0, %6746 ], [ %6751, %6747 ]
  br label %6754

6754:                                             ; preds = %6752, %6741
  %6755 = phi i32 [ %6742, %6741 ], [ %6753, %6752 ]
  %6756 = icmp ne i32 %6755, 0
  br label %6757

6757:                                             ; preds = %6754, %6726
  %6758 = phi i1 [ true, %6726 ], [ %6756, %6754 ]
  %6759 = zext i1 %6758 to i32
  %6760 = icmp eq i32 0, %6759
  br i1 %6760, label %6761, label %6798

6761:                                             ; preds = %6757
  %6762 = load i64, ptr %167, align 8, !tbaa !13
  %6763 = uitofp i64 %6762 to double
  %6764 = fcmp olt double -1.000000e+00, %6763
  br i1 %6764, label %6765, label %6784

6765:                                             ; preds = %6761
  %6766 = load i64, ptr %167, align 8, !tbaa !13
  %6767 = uitofp i64 %6766 to double
  %6768 = fcmp ole double %6767, 1.000000e+00
  br i1 %6768, label %6769, label %6772

6769:                                             ; preds = %6765
  %6770 = load i64, ptr %167, align 8, !tbaa !13
  %6771 = uitofp i64 %6770 to double
  br label %6782

6772:                                             ; preds = %6765
  %6773 = load i64, ptr %167, align 8, !tbaa !13
  %6774 = uitofp i64 %6773 to double
  %6775 = fcmp olt double %6774, 1.000000e+00
  br i1 %6775, label %6776, label %6779

6776:                                             ; preds = %6772
  %6777 = load i64, ptr %167, align 8, !tbaa !13
  %6778 = uitofp i64 %6777 to double
  br label %6780

6779:                                             ; preds = %6772
  br label %6780

6780:                                             ; preds = %6779, %6776
  %6781 = phi double [ %6778, %6776 ], [ 1.000000e+00, %6779 ]
  br label %6782

6782:                                             ; preds = %6780, %6769
  %6783 = phi double [ %6771, %6769 ], [ %6781, %6780 ]
  br label %6794

6784:                                             ; preds = %6761
  %6785 = load i64, ptr %167, align 8, !tbaa !13
  %6786 = uitofp i64 %6785 to double
  %6787 = fcmp olt double -1.000000e+00, %6786
  br i1 %6787, label %6788, label %6791

6788:                                             ; preds = %6784
  %6789 = load i64, ptr %167, align 8, !tbaa !13
  %6790 = uitofp i64 %6789 to double
  br label %6792

6791:                                             ; preds = %6784
  br label %6792

6792:                                             ; preds = %6791, %6788
  %6793 = phi double [ %6790, %6788 ], [ -1.000000e+00, %6791 ]
  br label %6794

6794:                                             ; preds = %6792, %6782
  %6795 = phi double [ %6783, %6782 ], [ %6793, %6792 ]
  %6796 = fptrunc double %6795 to float
  %6797 = load ptr, ptr %7, align 8, !tbaa !5
  store float %6796, ptr %6797, align 4, !tbaa !18
  br label %6802

6798:                                             ; preds = %6757
  %6799 = load i64, ptr %167, align 8, !tbaa !13
  %6800 = uitofp i64 %6799 to float
  %6801 = load ptr, ptr %7, align 8, !tbaa !5
  store float %6800, ptr %6801, align 4, !tbaa !18
  br label %6802

6802:                                             ; preds = %6798, %6794
  br label %6803

6803:                                             ; preds = %6802, %6722
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #3
  br label %6804

6804:                                             ; preds = %6803
  br label %6805

6805:                                             ; preds = %6804
  br label %8668

6806:                                             ; preds = %5043
  br label %6807

6807:                                             ; preds = %6806
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #3
  store double 0.000000e+00, ptr %177, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #3
  %6808 = load ptr, ptr %10, align 8, !tbaa !5
  %6809 = load i32, ptr %6808, align 4, !tbaa !9
  store i32 %6809, ptr %178, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %179) #3
  store double 0.000000e+00, ptr %179, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %180) #3
  store double 0.000000e+00, ptr %180, align 8, !tbaa !11
  %6810 = load ptr, ptr %11, align 8, !tbaa !5
  %6811 = icmp ne ptr null, %6810
  br i1 %6811, label %6812, label %6834

6812:                                             ; preds = %6807
  %6813 = load ptr, ptr %12, align 8, !tbaa !5
  %6814 = icmp ne ptr null, %6813
  br i1 %6814, label %6815, label %6826

6815:                                             ; preds = %6812
  %6816 = load ptr, ptr %11, align 8, !tbaa !5
  %6817 = load i32, ptr %6816, align 4, !tbaa !9
  %6818 = load i32, ptr %178, align 4, !tbaa !9
  %6819 = icmp ule i32 %6817, %6818
  br i1 %6819, label %6820, label %6826

6820:                                             ; preds = %6815
  %6821 = load i32, ptr %178, align 4, !tbaa !9
  %6822 = load ptr, ptr %12, align 8, !tbaa !5
  %6823 = load i32, ptr %6822, align 4, !tbaa !9
  %6824 = icmp ule i32 %6821, %6823
  br i1 %6824, label %6825, label %6826

6825:                                             ; preds = %6820
  br label %6827

6826:                                             ; preds = %6820, %6815, %6812
  call void @__assert_fail(ptr noundef @.str.47, ptr noundef @.str.24, i32 noundef 470, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

6827:                                             ; preds = %6825
  %6828 = load ptr, ptr %11, align 8, !tbaa !5
  %6829 = load i32, ptr %6828, align 4, !tbaa !9
  %6830 = uitofp i32 %6829 to double
  store double %6830, ptr %179, align 8, !tbaa !11
  %6831 = load ptr, ptr %12, align 8, !tbaa !5
  %6832 = load i32, ptr %6831, align 4, !tbaa !9
  %6833 = uitofp i32 %6832 to double
  store double %6833, ptr %180, align 8, !tbaa !11
  br label %6834

6834:                                             ; preds = %6827, %6807
  %6835 = load i32, ptr %8, align 4, !tbaa !9
  %6836 = icmp ule i32 6, %6835
  br i1 %6836, label %6837, label %7073

6837:                                             ; preds = %6834
  %6838 = load double, ptr %179, align 8, !tbaa !11
  %6839 = load double, ptr %180, align 8, !tbaa !11
  %6840 = fcmp olt double %6838, %6839
  br i1 %6840, label %6841, label %7073

6841:                                             ; preds = %6837
  %6842 = load i32, ptr %8, align 4, !tbaa !9
  %6843 = icmp ule i32 15, %6842
  br i1 %6843, label %6844, label %6896

6844:                                             ; preds = %6841
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #3
  %6845 = load double, ptr %179, align 8, !tbaa !11
  %6846 = fcmp olt double 0.000000e+00, %6845
  br i1 %6846, label %6847, label %6849

6847:                                             ; preds = %6844
  %6848 = load double, ptr %179, align 8, !tbaa !11
  br label %6850

6849:                                             ; preds = %6844
  br label %6850

6850:                                             ; preds = %6849, %6847
  %6851 = phi double [ %6848, %6847 ], [ 0.000000e+00, %6849 ]
  store double %6851, ptr %181, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #3
  %6852 = load double, ptr %180, align 8, !tbaa !11
  %6853 = fcmp olt double 0.000000e+00, %6852
  br i1 %6853, label %6854, label %6856

6854:                                             ; preds = %6850
  %6855 = load double, ptr %180, align 8, !tbaa !11
  br label %6857

6856:                                             ; preds = %6850
  br label %6857

6857:                                             ; preds = %6856, %6854
  %6858 = phi double [ %6855, %6854 ], [ 0.000000e+00, %6856 ]
  store double %6858, ptr %182, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %183) #3
  %6859 = load double, ptr %181, align 8, !tbaa !11
  %6860 = load double, ptr %182, align 8, !tbaa !11
  %6861 = fcmp olt double %6859, %6860
  br i1 %6861, label %6862, label %6870

6862:                                             ; preds = %6857
  %6863 = load double, ptr %180, align 8, !tbaa !11
  %6864 = load double, ptr %179, align 8, !tbaa !11
  %6865 = fsub double %6863, %6864
  %6866 = load double, ptr %182, align 8, !tbaa !11
  %6867 = load double, ptr %181, align 8, !tbaa !11
  %6868 = fsub double %6866, %6867
  %6869 = fdiv double %6865, %6868
  br label %6871

6870:                                             ; preds = %6857
  br label %6871

6871:                                             ; preds = %6870, %6862
  %6872 = phi double [ %6869, %6862 ], [ 1.000000e+00, %6870 ]
  store double %6872, ptr %183, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %184) #3
  %6873 = load double, ptr %183, align 8, !tbaa !11
  %6874 = load i32, ptr %178, align 4, !tbaa !9
  %6875 = icmp ult i32 0, %6874
  br i1 %6875, label %6876, label %6878

6876:                                             ; preds = %6871
  %6877 = load i32, ptr %178, align 4, !tbaa !9
  br label %6879

6878:                                             ; preds = %6871
  br label %6879

6879:                                             ; preds = %6878, %6876
  %6880 = phi i32 [ %6877, %6876 ], [ 0, %6878 ]
  %6881 = uitofp i32 %6880 to double
  %6882 = fmul double %6873, %6881
  store double %6882, ptr %184, align 8, !tbaa !11
  %6883 = load double, ptr %184, align 8, !tbaa !11
  %6884 = fcmp ole double 0.000000e+00, %6883
  br i1 %6884, label %6885, label %6888

6885:                                             ; preds = %6879
  %6886 = load double, ptr %184, align 8, !tbaa !11
  %6887 = fadd double %6886, 0.000000e+00
  br label %6891

6888:                                             ; preds = %6879
  %6889 = load double, ptr %184, align 8, !tbaa !11
  %6890 = fsub double %6889, 0.000000e+00
  br label %6891

6891:                                             ; preds = %6888, %6885
  %6892 = phi double [ %6887, %6885 ], [ %6890, %6888 ]
  %6893 = fptoui double %6892 to i32
  store i32 %6893, ptr %178, align 4, !tbaa !9
  %6894 = load double, ptr %181, align 8, !tbaa !11
  store double %6894, ptr %179, align 8, !tbaa !11
  %6895 = load double, ptr %182, align 8, !tbaa !11
  store double %6895, ptr %180, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %184) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %183) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #3
  br label %6952

6896:                                             ; preds = %6841
  %6897 = load i32, ptr %8, align 4, !tbaa !9
  %6898 = icmp ugt i32 6, %6897
  br i1 %6898, label %6927, label %6899

6899:                                             ; preds = %6896
  %6900 = load i32, ptr %8, align 4, !tbaa !9
  %6901 = icmp ugt i32 15, %6900
  br i1 %6901, label %6902, label %6913

6902:                                             ; preds = %6899
  %6903 = load i32, ptr %9, align 4, !tbaa !9
  %6904 = icmp ugt i32 15, %6903
  br i1 %6904, label %6905, label %6910

6905:                                             ; preds = %6902
  %6906 = load i32, ptr %9, align 4, !tbaa !9
  %6907 = load i32, ptr %8, align 4, !tbaa !9
  %6908 = icmp ugt i32 %6906, %6907
  %6909 = zext i1 %6908 to i32
  br label %6911

6910:                                             ; preds = %6902
  br label %6911

6911:                                             ; preds = %6910, %6905
  %6912 = phi i32 [ %6909, %6905 ], [ 0, %6910 ]
  br label %6924

6913:                                             ; preds = %6899
  %6914 = load i32, ptr %9, align 4, !tbaa !9
  %6915 = icmp ugt i32 15, %6914
  br i1 %6915, label %6916, label %6917

6916:                                             ; preds = %6913
  br label %6922

6917:                                             ; preds = %6913
  %6918 = load i32, ptr %9, align 4, !tbaa !9
  %6919 = load i32, ptr %8, align 4, !tbaa !9
  %6920 = icmp ugt i32 %6918, %6919
  %6921 = zext i1 %6920 to i32
  br label %6922

6922:                                             ; preds = %6917, %6916
  %6923 = phi i32 [ 0, %6916 ], [ %6921, %6917 ]
  br label %6924

6924:                                             ; preds = %6922, %6911
  %6925 = phi i32 [ %6912, %6911 ], [ %6923, %6922 ]
  %6926 = icmp ne i32 %6925, 0
  br label %6927

6927:                                             ; preds = %6924, %6896
  %6928 = phi i1 [ true, %6896 ], [ %6926, %6924 ]
  %6929 = zext i1 %6928 to i32
  %6930 = icmp eq i32 0, %6929
  br i1 %6930, label %6931, label %6951

6931:                                             ; preds = %6927
  %6932 = load double, ptr %179, align 8, !tbaa !11
  %6933 = fcmp ogt double 0.000000e+00, %6932
  br i1 %6933, label %6934, label %6951

6934:                                             ; preds = %6931
  %6935 = load double, ptr %180, align 8, !tbaa !11
  %6936 = fcmp olt double 0.000000e+00, %6935
  br i1 %6936, label %6937, label %6951

6937:                                             ; preds = %6934
  %6938 = load double, ptr %179, align 8, !tbaa !11
  %6939 = fneg double %6938
  %6940 = load double, ptr %180, align 8, !tbaa !11
  %6941 = fcmp olt double %6939, %6940
  br i1 %6941, label %6942, label %6944

6942:                                             ; preds = %6937
  %6943 = load double, ptr %180, align 8, !tbaa !11
  br label %6947

6944:                                             ; preds = %6937
  %6945 = load double, ptr %179, align 8, !tbaa !11
  %6946 = fneg double %6945
  br label %6947

6947:                                             ; preds = %6944, %6942
  %6948 = phi double [ %6943, %6942 ], [ %6946, %6944 ]
  store double %6948, ptr %180, align 8, !tbaa !11
  %6949 = load double, ptr %180, align 8, !tbaa !11
  %6950 = fneg double %6949
  store double %6950, ptr %179, align 8, !tbaa !11
  br label %6951

6951:                                             ; preds = %6947, %6934, %6931, %6927
  br label %6952

6952:                                             ; preds = %6951, %6891
  call void @llvm.lifetime.start.p0(i64 8, ptr %185) #3
  %6953 = load double, ptr %179, align 8, !tbaa !11
  %6954 = fcmp ole double 0.000000e+00, %6953
  %6955 = zext i1 %6954 to i64
  %6956 = select i1 %6954, double 0.000000e+00, double -1.000000e+00
  store double %6956, ptr %185, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %186) #3
  %6957 = load double, ptr %180, align 8, !tbaa !11
  %6958 = fcmp ole double 0.000000e+00, %6957
  %6959 = zext i1 %6958 to i64
  %6960 = select i1 %6958, double 1.000000e+00, double 0.000000e+00
  store double %6960, ptr %186, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %187) #3
  %6961 = load i32, ptr %178, align 4, !tbaa !9
  %6962 = uitofp i32 %6961 to double
  %6963 = load double, ptr %179, align 8, !tbaa !11
  %6964 = fsub double %6962, %6963
  %6965 = load double, ptr %186, align 8, !tbaa !11
  %6966 = load double, ptr %185, align 8, !tbaa !11
  %6967 = fsub double %6965, %6966
  %6968 = fmul double %6964, %6967
  %6969 = load double, ptr %180, align 8, !tbaa !11
  %6970 = load double, ptr %179, align 8, !tbaa !11
  %6971 = fsub double %6969, %6970
  %6972 = fdiv double %6968, %6971
  %6973 = load double, ptr %185, align 8, !tbaa !11
  %6974 = fadd double %6972, %6973
  store double %6974, ptr %187, align 8, !tbaa !11
  %6975 = load double, ptr %185, align 8, !tbaa !11
  %6976 = load double, ptr %187, align 8, !tbaa !11
  %6977 = fcmp ole double 0.000000e+00, %6976
  br i1 %6977, label %6978, label %6981

6978:                                             ; preds = %6952
  %6979 = load double, ptr %187, align 8, !tbaa !11
  %6980 = fadd double %6979, 0.000000e+00
  br label %6984

6981:                                             ; preds = %6952
  %6982 = load double, ptr %187, align 8, !tbaa !11
  %6983 = fsub double %6982, 0.000000e+00
  br label %6984

6984:                                             ; preds = %6981, %6978
  %6985 = phi double [ %6980, %6978 ], [ %6983, %6981 ]
  %6986 = fcmp olt double %6975, %6985
  br i1 %6986, label %6987, label %7041

6987:                                             ; preds = %6984
  %6988 = load double, ptr %187, align 8, !tbaa !11
  %6989 = fcmp ole double 0.000000e+00, %6988
  br i1 %6989, label %6990, label %6993

6990:                                             ; preds = %6987
  %6991 = load double, ptr %187, align 8, !tbaa !11
  %6992 = fadd double %6991, 0.000000e+00
  br label %6996

6993:                                             ; preds = %6987
  %6994 = load double, ptr %187, align 8, !tbaa !11
  %6995 = fsub double %6994, 0.000000e+00
  br label %6996

6996:                                             ; preds = %6993, %6990
  %6997 = phi double [ %6992, %6990 ], [ %6995, %6993 ]
  %6998 = load double, ptr %186, align 8, !tbaa !11
  %6999 = fcmp ole double %6997, %6998
  br i1 %6999, label %7000, label %7011

7000:                                             ; preds = %6996
  %7001 = load double, ptr %187, align 8, !tbaa !11
  %7002 = fcmp ole double 0.000000e+00, %7001
  br i1 %7002, label %7003, label %7006

7003:                                             ; preds = %7000
  %7004 = load double, ptr %187, align 8, !tbaa !11
  %7005 = fadd double %7004, 0.000000e+00
  br label %7009

7006:                                             ; preds = %7000
  %7007 = load double, ptr %187, align 8, !tbaa !11
  %7008 = fsub double %7007, 0.000000e+00
  br label %7009

7009:                                             ; preds = %7006, %7003
  %7010 = phi double [ %7005, %7003 ], [ %7008, %7006 ]
  br label %7039

7011:                                             ; preds = %6996
  %7012 = load double, ptr %187, align 8, !tbaa !11
  %7013 = fcmp ole double 0.000000e+00, %7012
  br i1 %7013, label %7014, label %7017

7014:                                             ; preds = %7011
  %7015 = load double, ptr %187, align 8, !tbaa !11
  %7016 = fadd double %7015, 0.000000e+00
  br label %7020

7017:                                             ; preds = %7011
  %7018 = load double, ptr %187, align 8, !tbaa !11
  %7019 = fsub double %7018, 0.000000e+00
  br label %7020

7020:                                             ; preds = %7017, %7014
  %7021 = phi double [ %7016, %7014 ], [ %7019, %7017 ]
  %7022 = load double, ptr %186, align 8, !tbaa !11
  %7023 = fcmp olt double %7021, %7022
  br i1 %7023, label %7024, label %7035

7024:                                             ; preds = %7020
  %7025 = load double, ptr %187, align 8, !tbaa !11
  %7026 = fcmp ole double 0.000000e+00, %7025
  br i1 %7026, label %7027, label %7030

7027:                                             ; preds = %7024
  %7028 = load double, ptr %187, align 8, !tbaa !11
  %7029 = fadd double %7028, 0.000000e+00
  br label %7033

7030:                                             ; preds = %7024
  %7031 = load double, ptr %187, align 8, !tbaa !11
  %7032 = fsub double %7031, 0.000000e+00
  br label %7033

7033:                                             ; preds = %7030, %7027
  %7034 = phi double [ %7029, %7027 ], [ %7032, %7030 ]
  br label %7037

7035:                                             ; preds = %7020
  %7036 = load double, ptr %186, align 8, !tbaa !11
  br label %7037

7037:                                             ; preds = %7035, %7033
  %7038 = phi double [ %7034, %7033 ], [ %7036, %7035 ]
  br label %7039

7039:                                             ; preds = %7037, %7009
  %7040 = phi double [ %7010, %7009 ], [ %7038, %7037 ]
  br label %7069

7041:                                             ; preds = %6984
  %7042 = load double, ptr %185, align 8, !tbaa !11
  %7043 = load double, ptr %187, align 8, !tbaa !11
  %7044 = fcmp ole double 0.000000e+00, %7043
  br i1 %7044, label %7045, label %7048

7045:                                             ; preds = %7041
  %7046 = load double, ptr %187, align 8, !tbaa !11
  %7047 = fadd double %7046, 0.000000e+00
  br label %7051

7048:                                             ; preds = %7041
  %7049 = load double, ptr %187, align 8, !tbaa !11
  %7050 = fsub double %7049, 0.000000e+00
  br label %7051

7051:                                             ; preds = %7048, %7045
  %7052 = phi double [ %7047, %7045 ], [ %7050, %7048 ]
  %7053 = fcmp olt double %7042, %7052
  br i1 %7053, label %7054, label %7065

7054:                                             ; preds = %7051
  %7055 = load double, ptr %187, align 8, !tbaa !11
  %7056 = fcmp ole double 0.000000e+00, %7055
  br i1 %7056, label %7057, label %7060

7057:                                             ; preds = %7054
  %7058 = load double, ptr %187, align 8, !tbaa !11
  %7059 = fadd double %7058, 0.000000e+00
  br label %7063

7060:                                             ; preds = %7054
  %7061 = load double, ptr %187, align 8, !tbaa !11
  %7062 = fsub double %7061, 0.000000e+00
  br label %7063

7063:                                             ; preds = %7060, %7057
  %7064 = phi double [ %7059, %7057 ], [ %7062, %7060 ]
  br label %7067

7065:                                             ; preds = %7051
  %7066 = load double, ptr %185, align 8, !tbaa !11
  br label %7067

7067:                                             ; preds = %7065, %7063
  %7068 = phi double [ %7064, %7063 ], [ %7066, %7065 ]
  br label %7069

7069:                                             ; preds = %7067, %7039
  %7070 = phi double [ %7040, %7039 ], [ %7068, %7067 ]
  %7071 = fptrunc double %7070 to float
  %7072 = load ptr, ptr %7, align 8, !tbaa !5
  store float %7071, ptr %7072, align 4, !tbaa !18
  call void @llvm.lifetime.end.p0(i64 8, ptr %187) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #3
  br label %7150

7073:                                             ; preds = %6837, %6834
  %7074 = load i32, ptr %8, align 4, !tbaa !9
  %7075 = icmp ugt i32 6, %7074
  br i1 %7075, label %7104, label %7076

7076:                                             ; preds = %7073
  %7077 = load i32, ptr %8, align 4, !tbaa !9
  %7078 = icmp ugt i32 15, %7077
  br i1 %7078, label %7079, label %7090

7079:                                             ; preds = %7076
  %7080 = load i32, ptr %9, align 4, !tbaa !9
  %7081 = icmp ugt i32 15, %7080
  br i1 %7081, label %7082, label %7087

7082:                                             ; preds = %7079
  %7083 = load i32, ptr %9, align 4, !tbaa !9
  %7084 = load i32, ptr %8, align 4, !tbaa !9
  %7085 = icmp ugt i32 %7083, %7084
  %7086 = zext i1 %7085 to i32
  br label %7088

7087:                                             ; preds = %7079
  br label %7088

7088:                                             ; preds = %7087, %7082
  %7089 = phi i32 [ %7086, %7082 ], [ 0, %7087 ]
  br label %7101

7090:                                             ; preds = %7076
  %7091 = load i32, ptr %9, align 4, !tbaa !9
  %7092 = icmp ugt i32 15, %7091
  br i1 %7092, label %7093, label %7094

7093:                                             ; preds = %7090
  br label %7099

7094:                                             ; preds = %7090
  %7095 = load i32, ptr %9, align 4, !tbaa !9
  %7096 = load i32, ptr %8, align 4, !tbaa !9
  %7097 = icmp ugt i32 %7095, %7096
  %7098 = zext i1 %7097 to i32
  br label %7099

7099:                                             ; preds = %7094, %7093
  %7100 = phi i32 [ 0, %7093 ], [ %7098, %7094 ]
  br label %7101

7101:                                             ; preds = %7099, %7088
  %7102 = phi i32 [ %7089, %7088 ], [ %7100, %7099 ]
  %7103 = icmp ne i32 %7102, 0
  br label %7104

7104:                                             ; preds = %7101, %7073
  %7105 = phi i1 [ true, %7073 ], [ %7103, %7101 ]
  %7106 = zext i1 %7105 to i32
  %7107 = icmp eq i32 0, %7106
  br i1 %7107, label %7108, label %7145

7108:                                             ; preds = %7104
  %7109 = load i32, ptr %178, align 4, !tbaa !9
  %7110 = uitofp i32 %7109 to double
  %7111 = fcmp olt double -1.000000e+00, %7110
  br i1 %7111, label %7112, label %7131

7112:                                             ; preds = %7108
  %7113 = load i32, ptr %178, align 4, !tbaa !9
  %7114 = uitofp i32 %7113 to double
  %7115 = fcmp ole double %7114, 1.000000e+00
  br i1 %7115, label %7116, label %7119

7116:                                             ; preds = %7112
  %7117 = load i32, ptr %178, align 4, !tbaa !9
  %7118 = uitofp i32 %7117 to double
  br label %7129

7119:                                             ; preds = %7112
  %7120 = load i32, ptr %178, align 4, !tbaa !9
  %7121 = uitofp i32 %7120 to double
  %7122 = fcmp olt double %7121, 1.000000e+00
  br i1 %7122, label %7123, label %7126

7123:                                             ; preds = %7119
  %7124 = load i32, ptr %178, align 4, !tbaa !9
  %7125 = uitofp i32 %7124 to double
  br label %7127

7126:                                             ; preds = %7119
  br label %7127

7127:                                             ; preds = %7126, %7123
  %7128 = phi double [ %7125, %7123 ], [ 1.000000e+00, %7126 ]
  br label %7129

7129:                                             ; preds = %7127, %7116
  %7130 = phi double [ %7118, %7116 ], [ %7128, %7127 ]
  br label %7141

7131:                                             ; preds = %7108
  %7132 = load i32, ptr %178, align 4, !tbaa !9
  %7133 = uitofp i32 %7132 to double
  %7134 = fcmp olt double -1.000000e+00, %7133
  br i1 %7134, label %7135, label %7138

7135:                                             ; preds = %7131
  %7136 = load i32, ptr %178, align 4, !tbaa !9
  %7137 = uitofp i32 %7136 to double
  br label %7139

7138:                                             ; preds = %7131
  br label %7139

7139:                                             ; preds = %7138, %7135
  %7140 = phi double [ %7137, %7135 ], [ -1.000000e+00, %7138 ]
  br label %7141

7141:                                             ; preds = %7139, %7129
  %7142 = phi double [ %7130, %7129 ], [ %7140, %7139 ]
  %7143 = fptrunc double %7142 to float
  %7144 = load ptr, ptr %7, align 8, !tbaa !5
  store float %7143, ptr %7144, align 4, !tbaa !18
  br label %7149

7145:                                             ; preds = %7104
  %7146 = load i32, ptr %178, align 4, !tbaa !9
  %7147 = uitofp i32 %7146 to float
  %7148 = load ptr, ptr %7, align 8, !tbaa !5
  store float %7147, ptr %7148, align 4, !tbaa !18
  br label %7149

7149:                                             ; preds = %7145, %7141
  br label %7150

7150:                                             ; preds = %7149, %7069
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %179) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #3
  br label %7151

7151:                                             ; preds = %7150
  br label %7152

7152:                                             ; preds = %7151
  br label %8668

7153:                                             ; preds = %5043
  br label %7154

7154:                                             ; preds = %7153
  call void @llvm.lifetime.start.p0(i64 8, ptr %188) #3
  store double 0.000000e+00, ptr %188, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %189) #3
  %7155 = load ptr, ptr %10, align 8, !tbaa !5
  %7156 = load i16, ptr %7155, align 2, !tbaa !15
  store i16 %7156, ptr %189, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %190) #3
  store double 0.000000e+00, ptr %190, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %191) #3
  store double 0.000000e+00, ptr %191, align 8, !tbaa !11
  %7157 = load ptr, ptr %11, align 8, !tbaa !5
  %7158 = icmp ne ptr null, %7157
  br i1 %7158, label %7159, label %7185

7159:                                             ; preds = %7154
  %7160 = load ptr, ptr %12, align 8, !tbaa !5
  %7161 = icmp ne ptr null, %7160
  br i1 %7161, label %7162, label %7177

7162:                                             ; preds = %7159
  %7163 = load ptr, ptr %11, align 8, !tbaa !5
  %7164 = load i16, ptr %7163, align 2, !tbaa !15
  %7165 = zext i16 %7164 to i32
  %7166 = load i16, ptr %189, align 2, !tbaa !15
  %7167 = zext i16 %7166 to i32
  %7168 = icmp sle i32 %7165, %7167
  br i1 %7168, label %7169, label %7177

7169:                                             ; preds = %7162
  %7170 = load i16, ptr %189, align 2, !tbaa !15
  %7171 = zext i16 %7170 to i32
  %7172 = load ptr, ptr %12, align 8, !tbaa !5
  %7173 = load i16, ptr %7172, align 2, !tbaa !15
  %7174 = zext i16 %7173 to i32
  %7175 = icmp sle i32 %7171, %7174
  br i1 %7175, label %7176, label %7177

7176:                                             ; preds = %7169
  br label %7178

7177:                                             ; preds = %7169, %7162, %7159
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.24, i32 noundef 470, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

7178:                                             ; preds = %7176
  %7179 = load ptr, ptr %11, align 8, !tbaa !5
  %7180 = load i16, ptr %7179, align 2, !tbaa !15
  %7181 = uitofp i16 %7180 to double
  store double %7181, ptr %190, align 8, !tbaa !11
  %7182 = load ptr, ptr %12, align 8, !tbaa !5
  %7183 = load i16, ptr %7182, align 2, !tbaa !15
  %7184 = uitofp i16 %7183 to double
  store double %7184, ptr %191, align 8, !tbaa !11
  br label %7185

7185:                                             ; preds = %7178, %7154
  %7186 = load i32, ptr %8, align 4, !tbaa !9
  %7187 = icmp ule i32 6, %7186
  br i1 %7187, label %7188, label %7426

7188:                                             ; preds = %7185
  %7189 = load double, ptr %190, align 8, !tbaa !11
  %7190 = load double, ptr %191, align 8, !tbaa !11
  %7191 = fcmp olt double %7189, %7190
  br i1 %7191, label %7192, label %7426

7192:                                             ; preds = %7188
  %7193 = load i32, ptr %8, align 4, !tbaa !9
  %7194 = icmp ule i32 15, %7193
  br i1 %7194, label %7195, label %7249

7195:                                             ; preds = %7192
  call void @llvm.lifetime.start.p0(i64 8, ptr %192) #3
  %7196 = load double, ptr %190, align 8, !tbaa !11
  %7197 = fcmp olt double 0.000000e+00, %7196
  br i1 %7197, label %7198, label %7200

7198:                                             ; preds = %7195
  %7199 = load double, ptr %190, align 8, !tbaa !11
  br label %7201

7200:                                             ; preds = %7195
  br label %7201

7201:                                             ; preds = %7200, %7198
  %7202 = phi double [ %7199, %7198 ], [ 0.000000e+00, %7200 ]
  store double %7202, ptr %192, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %193) #3
  %7203 = load double, ptr %191, align 8, !tbaa !11
  %7204 = fcmp olt double 0.000000e+00, %7203
  br i1 %7204, label %7205, label %7207

7205:                                             ; preds = %7201
  %7206 = load double, ptr %191, align 8, !tbaa !11
  br label %7208

7207:                                             ; preds = %7201
  br label %7208

7208:                                             ; preds = %7207, %7205
  %7209 = phi double [ %7206, %7205 ], [ 0.000000e+00, %7207 ]
  store double %7209, ptr %193, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %194) #3
  %7210 = load double, ptr %192, align 8, !tbaa !11
  %7211 = load double, ptr %193, align 8, !tbaa !11
  %7212 = fcmp olt double %7210, %7211
  br i1 %7212, label %7213, label %7221

7213:                                             ; preds = %7208
  %7214 = load double, ptr %191, align 8, !tbaa !11
  %7215 = load double, ptr %190, align 8, !tbaa !11
  %7216 = fsub double %7214, %7215
  %7217 = load double, ptr %193, align 8, !tbaa !11
  %7218 = load double, ptr %192, align 8, !tbaa !11
  %7219 = fsub double %7217, %7218
  %7220 = fdiv double %7216, %7219
  br label %7222

7221:                                             ; preds = %7208
  br label %7222

7222:                                             ; preds = %7221, %7213
  %7223 = phi double [ %7220, %7213 ], [ 1.000000e+00, %7221 ]
  store double %7223, ptr %194, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %195) #3
  %7224 = load double, ptr %194, align 8, !tbaa !11
  %7225 = load i16, ptr %189, align 2, !tbaa !15
  %7226 = zext i16 %7225 to i32
  %7227 = icmp slt i32 0, %7226
  br i1 %7227, label %7228, label %7231

7228:                                             ; preds = %7222
  %7229 = load i16, ptr %189, align 2, !tbaa !15
  %7230 = zext i16 %7229 to i32
  br label %7232

7231:                                             ; preds = %7222
  br label %7232

7232:                                             ; preds = %7231, %7228
  %7233 = phi i32 [ %7230, %7228 ], [ 0, %7231 ]
  %7234 = sitofp i32 %7233 to double
  %7235 = fmul double %7224, %7234
  store double %7235, ptr %195, align 8, !tbaa !11
  %7236 = load double, ptr %195, align 8, !tbaa !11
  %7237 = fcmp ole double 0.000000e+00, %7236
  br i1 %7237, label %7238, label %7241

7238:                                             ; preds = %7232
  %7239 = load double, ptr %195, align 8, !tbaa !11
  %7240 = fadd double %7239, 0.000000e+00
  br label %7244

7241:                                             ; preds = %7232
  %7242 = load double, ptr %195, align 8, !tbaa !11
  %7243 = fsub double %7242, 0.000000e+00
  br label %7244

7244:                                             ; preds = %7241, %7238
  %7245 = phi double [ %7240, %7238 ], [ %7243, %7241 ]
  %7246 = fptoui double %7245 to i16
  store i16 %7246, ptr %189, align 2, !tbaa !15
  %7247 = load double, ptr %192, align 8, !tbaa !11
  store double %7247, ptr %190, align 8, !tbaa !11
  %7248 = load double, ptr %193, align 8, !tbaa !11
  store double %7248, ptr %191, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %195) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %192) #3
  br label %7305

7249:                                             ; preds = %7192
  %7250 = load i32, ptr %8, align 4, !tbaa !9
  %7251 = icmp ugt i32 6, %7250
  br i1 %7251, label %7280, label %7252

7252:                                             ; preds = %7249
  %7253 = load i32, ptr %8, align 4, !tbaa !9
  %7254 = icmp ugt i32 15, %7253
  br i1 %7254, label %7255, label %7266

7255:                                             ; preds = %7252
  %7256 = load i32, ptr %9, align 4, !tbaa !9
  %7257 = icmp ugt i32 15, %7256
  br i1 %7257, label %7258, label %7263

7258:                                             ; preds = %7255
  %7259 = load i32, ptr %9, align 4, !tbaa !9
  %7260 = load i32, ptr %8, align 4, !tbaa !9
  %7261 = icmp ugt i32 %7259, %7260
  %7262 = zext i1 %7261 to i32
  br label %7264

7263:                                             ; preds = %7255
  br label %7264

7264:                                             ; preds = %7263, %7258
  %7265 = phi i32 [ %7262, %7258 ], [ 0, %7263 ]
  br label %7277

7266:                                             ; preds = %7252
  %7267 = load i32, ptr %9, align 4, !tbaa !9
  %7268 = icmp ugt i32 15, %7267
  br i1 %7268, label %7269, label %7270

7269:                                             ; preds = %7266
  br label %7275

7270:                                             ; preds = %7266
  %7271 = load i32, ptr %9, align 4, !tbaa !9
  %7272 = load i32, ptr %8, align 4, !tbaa !9
  %7273 = icmp ugt i32 %7271, %7272
  %7274 = zext i1 %7273 to i32
  br label %7275

7275:                                             ; preds = %7270, %7269
  %7276 = phi i32 [ 0, %7269 ], [ %7274, %7270 ]
  br label %7277

7277:                                             ; preds = %7275, %7264
  %7278 = phi i32 [ %7265, %7264 ], [ %7276, %7275 ]
  %7279 = icmp ne i32 %7278, 0
  br label %7280

7280:                                             ; preds = %7277, %7249
  %7281 = phi i1 [ true, %7249 ], [ %7279, %7277 ]
  %7282 = zext i1 %7281 to i32
  %7283 = icmp eq i32 0, %7282
  br i1 %7283, label %7284, label %7304

7284:                                             ; preds = %7280
  %7285 = load double, ptr %190, align 8, !tbaa !11
  %7286 = fcmp ogt double 0.000000e+00, %7285
  br i1 %7286, label %7287, label %7304

7287:                                             ; preds = %7284
  %7288 = load double, ptr %191, align 8, !tbaa !11
  %7289 = fcmp olt double 0.000000e+00, %7288
  br i1 %7289, label %7290, label %7304

7290:                                             ; preds = %7287
  %7291 = load double, ptr %190, align 8, !tbaa !11
  %7292 = fneg double %7291
  %7293 = load double, ptr %191, align 8, !tbaa !11
  %7294 = fcmp olt double %7292, %7293
  br i1 %7294, label %7295, label %7297

7295:                                             ; preds = %7290
  %7296 = load double, ptr %191, align 8, !tbaa !11
  br label %7300

7297:                                             ; preds = %7290
  %7298 = load double, ptr %190, align 8, !tbaa !11
  %7299 = fneg double %7298
  br label %7300

7300:                                             ; preds = %7297, %7295
  %7301 = phi double [ %7296, %7295 ], [ %7299, %7297 ]
  store double %7301, ptr %191, align 8, !tbaa !11
  %7302 = load double, ptr %191, align 8, !tbaa !11
  %7303 = fneg double %7302
  store double %7303, ptr %190, align 8, !tbaa !11
  br label %7304

7304:                                             ; preds = %7300, %7287, %7284, %7280
  br label %7305

7305:                                             ; preds = %7304, %7244
  call void @llvm.lifetime.start.p0(i64 8, ptr %196) #3
  %7306 = load double, ptr %190, align 8, !tbaa !11
  %7307 = fcmp ole double 0.000000e+00, %7306
  %7308 = zext i1 %7307 to i64
  %7309 = select i1 %7307, double 0.000000e+00, double -1.000000e+00
  store double %7309, ptr %196, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %197) #3
  %7310 = load double, ptr %191, align 8, !tbaa !11
  %7311 = fcmp ole double 0.000000e+00, %7310
  %7312 = zext i1 %7311 to i64
  %7313 = select i1 %7311, double 1.000000e+00, double 0.000000e+00
  store double %7313, ptr %197, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %198) #3
  %7314 = load i16, ptr %189, align 2, !tbaa !15
  %7315 = uitofp i16 %7314 to double
  %7316 = load double, ptr %190, align 8, !tbaa !11
  %7317 = fsub double %7315, %7316
  %7318 = load double, ptr %197, align 8, !tbaa !11
  %7319 = load double, ptr %196, align 8, !tbaa !11
  %7320 = fsub double %7318, %7319
  %7321 = fmul double %7317, %7320
  %7322 = load double, ptr %191, align 8, !tbaa !11
  %7323 = load double, ptr %190, align 8, !tbaa !11
  %7324 = fsub double %7322, %7323
  %7325 = fdiv double %7321, %7324
  %7326 = load double, ptr %196, align 8, !tbaa !11
  %7327 = fadd double %7325, %7326
  store double %7327, ptr %198, align 8, !tbaa !11
  %7328 = load double, ptr %196, align 8, !tbaa !11
  %7329 = load double, ptr %198, align 8, !tbaa !11
  %7330 = fcmp ole double 0.000000e+00, %7329
  br i1 %7330, label %7331, label %7334

7331:                                             ; preds = %7305
  %7332 = load double, ptr %198, align 8, !tbaa !11
  %7333 = fadd double %7332, 0.000000e+00
  br label %7337

7334:                                             ; preds = %7305
  %7335 = load double, ptr %198, align 8, !tbaa !11
  %7336 = fsub double %7335, 0.000000e+00
  br label %7337

7337:                                             ; preds = %7334, %7331
  %7338 = phi double [ %7333, %7331 ], [ %7336, %7334 ]
  %7339 = fcmp olt double %7328, %7338
  br i1 %7339, label %7340, label %7394

7340:                                             ; preds = %7337
  %7341 = load double, ptr %198, align 8, !tbaa !11
  %7342 = fcmp ole double 0.000000e+00, %7341
  br i1 %7342, label %7343, label %7346

7343:                                             ; preds = %7340
  %7344 = load double, ptr %198, align 8, !tbaa !11
  %7345 = fadd double %7344, 0.000000e+00
  br label %7349

7346:                                             ; preds = %7340
  %7347 = load double, ptr %198, align 8, !tbaa !11
  %7348 = fsub double %7347, 0.000000e+00
  br label %7349

7349:                                             ; preds = %7346, %7343
  %7350 = phi double [ %7345, %7343 ], [ %7348, %7346 ]
  %7351 = load double, ptr %197, align 8, !tbaa !11
  %7352 = fcmp ole double %7350, %7351
  br i1 %7352, label %7353, label %7364

7353:                                             ; preds = %7349
  %7354 = load double, ptr %198, align 8, !tbaa !11
  %7355 = fcmp ole double 0.000000e+00, %7354
  br i1 %7355, label %7356, label %7359

7356:                                             ; preds = %7353
  %7357 = load double, ptr %198, align 8, !tbaa !11
  %7358 = fadd double %7357, 0.000000e+00
  br label %7362

7359:                                             ; preds = %7353
  %7360 = load double, ptr %198, align 8, !tbaa !11
  %7361 = fsub double %7360, 0.000000e+00
  br label %7362

7362:                                             ; preds = %7359, %7356
  %7363 = phi double [ %7358, %7356 ], [ %7361, %7359 ]
  br label %7392

7364:                                             ; preds = %7349
  %7365 = load double, ptr %198, align 8, !tbaa !11
  %7366 = fcmp ole double 0.000000e+00, %7365
  br i1 %7366, label %7367, label %7370

7367:                                             ; preds = %7364
  %7368 = load double, ptr %198, align 8, !tbaa !11
  %7369 = fadd double %7368, 0.000000e+00
  br label %7373

7370:                                             ; preds = %7364
  %7371 = load double, ptr %198, align 8, !tbaa !11
  %7372 = fsub double %7371, 0.000000e+00
  br label %7373

7373:                                             ; preds = %7370, %7367
  %7374 = phi double [ %7369, %7367 ], [ %7372, %7370 ]
  %7375 = load double, ptr %197, align 8, !tbaa !11
  %7376 = fcmp olt double %7374, %7375
  br i1 %7376, label %7377, label %7388

7377:                                             ; preds = %7373
  %7378 = load double, ptr %198, align 8, !tbaa !11
  %7379 = fcmp ole double 0.000000e+00, %7378
  br i1 %7379, label %7380, label %7383

7380:                                             ; preds = %7377
  %7381 = load double, ptr %198, align 8, !tbaa !11
  %7382 = fadd double %7381, 0.000000e+00
  br label %7386

7383:                                             ; preds = %7377
  %7384 = load double, ptr %198, align 8, !tbaa !11
  %7385 = fsub double %7384, 0.000000e+00
  br label %7386

7386:                                             ; preds = %7383, %7380
  %7387 = phi double [ %7382, %7380 ], [ %7385, %7383 ]
  br label %7390

7388:                                             ; preds = %7373
  %7389 = load double, ptr %197, align 8, !tbaa !11
  br label %7390

7390:                                             ; preds = %7388, %7386
  %7391 = phi double [ %7387, %7386 ], [ %7389, %7388 ]
  br label %7392

7392:                                             ; preds = %7390, %7362
  %7393 = phi double [ %7363, %7362 ], [ %7391, %7390 ]
  br label %7422

7394:                                             ; preds = %7337
  %7395 = load double, ptr %196, align 8, !tbaa !11
  %7396 = load double, ptr %198, align 8, !tbaa !11
  %7397 = fcmp ole double 0.000000e+00, %7396
  br i1 %7397, label %7398, label %7401

7398:                                             ; preds = %7394
  %7399 = load double, ptr %198, align 8, !tbaa !11
  %7400 = fadd double %7399, 0.000000e+00
  br label %7404

7401:                                             ; preds = %7394
  %7402 = load double, ptr %198, align 8, !tbaa !11
  %7403 = fsub double %7402, 0.000000e+00
  br label %7404

7404:                                             ; preds = %7401, %7398
  %7405 = phi double [ %7400, %7398 ], [ %7403, %7401 ]
  %7406 = fcmp olt double %7395, %7405
  br i1 %7406, label %7407, label %7418

7407:                                             ; preds = %7404
  %7408 = load double, ptr %198, align 8, !tbaa !11
  %7409 = fcmp ole double 0.000000e+00, %7408
  br i1 %7409, label %7410, label %7413

7410:                                             ; preds = %7407
  %7411 = load double, ptr %198, align 8, !tbaa !11
  %7412 = fadd double %7411, 0.000000e+00
  br label %7416

7413:                                             ; preds = %7407
  %7414 = load double, ptr %198, align 8, !tbaa !11
  %7415 = fsub double %7414, 0.000000e+00
  br label %7416

7416:                                             ; preds = %7413, %7410
  %7417 = phi double [ %7412, %7410 ], [ %7415, %7413 ]
  br label %7420

7418:                                             ; preds = %7404
  %7419 = load double, ptr %196, align 8, !tbaa !11
  br label %7420

7420:                                             ; preds = %7418, %7416
  %7421 = phi double [ %7417, %7416 ], [ %7419, %7418 ]
  br label %7422

7422:                                             ; preds = %7420, %7392
  %7423 = phi double [ %7393, %7392 ], [ %7421, %7420 ]
  %7424 = fptrunc double %7423 to float
  %7425 = load ptr, ptr %7, align 8, !tbaa !5
  store float %7424, ptr %7425, align 4, !tbaa !18
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #3
  br label %7510

7426:                                             ; preds = %7188, %7185
  %7427 = load i32, ptr %8, align 4, !tbaa !9
  %7428 = icmp ugt i32 6, %7427
  br i1 %7428, label %7457, label %7429

7429:                                             ; preds = %7426
  %7430 = load i32, ptr %8, align 4, !tbaa !9
  %7431 = icmp ugt i32 15, %7430
  br i1 %7431, label %7432, label %7443

7432:                                             ; preds = %7429
  %7433 = load i32, ptr %9, align 4, !tbaa !9
  %7434 = icmp ugt i32 15, %7433
  br i1 %7434, label %7435, label %7440

7435:                                             ; preds = %7432
  %7436 = load i32, ptr %9, align 4, !tbaa !9
  %7437 = load i32, ptr %8, align 4, !tbaa !9
  %7438 = icmp ugt i32 %7436, %7437
  %7439 = zext i1 %7438 to i32
  br label %7441

7440:                                             ; preds = %7432
  br label %7441

7441:                                             ; preds = %7440, %7435
  %7442 = phi i32 [ %7439, %7435 ], [ 0, %7440 ]
  br label %7454

7443:                                             ; preds = %7429
  %7444 = load i32, ptr %9, align 4, !tbaa !9
  %7445 = icmp ugt i32 15, %7444
  br i1 %7445, label %7446, label %7447

7446:                                             ; preds = %7443
  br label %7452

7447:                                             ; preds = %7443
  %7448 = load i32, ptr %9, align 4, !tbaa !9
  %7449 = load i32, ptr %8, align 4, !tbaa !9
  %7450 = icmp ugt i32 %7448, %7449
  %7451 = zext i1 %7450 to i32
  br label %7452

7452:                                             ; preds = %7447, %7446
  %7453 = phi i32 [ 0, %7446 ], [ %7451, %7447 ]
  br label %7454

7454:                                             ; preds = %7452, %7441
  %7455 = phi i32 [ %7442, %7441 ], [ %7453, %7452 ]
  %7456 = icmp ne i32 %7455, 0
  br label %7457

7457:                                             ; preds = %7454, %7426
  %7458 = phi i1 [ true, %7426 ], [ %7456, %7454 ]
  %7459 = zext i1 %7458 to i32
  %7460 = icmp eq i32 0, %7459
  br i1 %7460, label %7461, label %7505

7461:                                             ; preds = %7457
  %7462 = load i16, ptr %189, align 2, !tbaa !15
  %7463 = zext i16 %7462 to i32
  %7464 = sitofp i32 %7463 to double
  %7465 = fcmp olt double -1.000000e+00, %7464
  br i1 %7465, label %7466, label %7489

7466:                                             ; preds = %7461
  %7467 = load i16, ptr %189, align 2, !tbaa !15
  %7468 = zext i16 %7467 to i32
  %7469 = sitofp i32 %7468 to double
  %7470 = fcmp ole double %7469, 1.000000e+00
  br i1 %7470, label %7471, label %7475

7471:                                             ; preds = %7466
  %7472 = load i16, ptr %189, align 2, !tbaa !15
  %7473 = zext i16 %7472 to i32
  %7474 = sitofp i32 %7473 to double
  br label %7487

7475:                                             ; preds = %7466
  %7476 = load i16, ptr %189, align 2, !tbaa !15
  %7477 = zext i16 %7476 to i32
  %7478 = sitofp i32 %7477 to double
  %7479 = fcmp olt double %7478, 1.000000e+00
  br i1 %7479, label %7480, label %7484

7480:                                             ; preds = %7475
  %7481 = load i16, ptr %189, align 2, !tbaa !15
  %7482 = zext i16 %7481 to i32
  %7483 = sitofp i32 %7482 to double
  br label %7485

7484:                                             ; preds = %7475
  br label %7485

7485:                                             ; preds = %7484, %7480
  %7486 = phi double [ %7483, %7480 ], [ 1.000000e+00, %7484 ]
  br label %7487

7487:                                             ; preds = %7485, %7471
  %7488 = phi double [ %7474, %7471 ], [ %7486, %7485 ]
  br label %7501

7489:                                             ; preds = %7461
  %7490 = load i16, ptr %189, align 2, !tbaa !15
  %7491 = zext i16 %7490 to i32
  %7492 = sitofp i32 %7491 to double
  %7493 = fcmp olt double -1.000000e+00, %7492
  br i1 %7493, label %7494, label %7498

7494:                                             ; preds = %7489
  %7495 = load i16, ptr %189, align 2, !tbaa !15
  %7496 = zext i16 %7495 to i32
  %7497 = sitofp i32 %7496 to double
  br label %7499

7498:                                             ; preds = %7489
  br label %7499

7499:                                             ; preds = %7498, %7494
  %7500 = phi double [ %7497, %7494 ], [ -1.000000e+00, %7498 ]
  br label %7501

7501:                                             ; preds = %7499, %7487
  %7502 = phi double [ %7488, %7487 ], [ %7500, %7499 ]
  %7503 = fptrunc double %7502 to float
  %7504 = load ptr, ptr %7, align 8, !tbaa !5
  store float %7503, ptr %7504, align 4, !tbaa !18
  br label %7509

7505:                                             ; preds = %7457
  %7506 = load i16, ptr %189, align 2, !tbaa !15
  %7507 = uitofp i16 %7506 to float
  %7508 = load ptr, ptr %7, align 8, !tbaa !5
  store float %7507, ptr %7508, align 4, !tbaa !18
  br label %7509

7509:                                             ; preds = %7505, %7501
  br label %7510

7510:                                             ; preds = %7509, %7422
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %190) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %189) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #3
  br label %7511

7511:                                             ; preds = %7510
  br label %7512

7512:                                             ; preds = %7511
  br label %8668

7513:                                             ; preds = %5043
  br label %7514

7514:                                             ; preds = %7513
  call void @llvm.lifetime.start.p0(i64 8, ptr %199) #3
  store double 0.000000e+00, ptr %199, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %200) #3
  %7515 = load ptr, ptr %10, align 8, !tbaa !5
  %7516 = load i8, ptr %7515, align 1, !tbaa !17
  store i8 %7516, ptr %200, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %201) #3
  store double 0.000000e+00, ptr %201, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %202) #3
  store double 0.000000e+00, ptr %202, align 8, !tbaa !11
  %7517 = load ptr, ptr %11, align 8, !tbaa !5
  %7518 = icmp ne ptr null, %7517
  br i1 %7518, label %7519, label %7545

7519:                                             ; preds = %7514
  %7520 = load ptr, ptr %12, align 8, !tbaa !5
  %7521 = icmp ne ptr null, %7520
  br i1 %7521, label %7522, label %7537

7522:                                             ; preds = %7519
  %7523 = load ptr, ptr %11, align 8, !tbaa !5
  %7524 = load i8, ptr %7523, align 1, !tbaa !17
  %7525 = zext i8 %7524 to i32
  %7526 = load i8, ptr %200, align 1, !tbaa !17
  %7527 = zext i8 %7526 to i32
  %7528 = icmp sle i32 %7525, %7527
  br i1 %7528, label %7529, label %7537

7529:                                             ; preds = %7522
  %7530 = load i8, ptr %200, align 1, !tbaa !17
  %7531 = zext i8 %7530 to i32
  %7532 = load ptr, ptr %12, align 8, !tbaa !5
  %7533 = load i8, ptr %7532, align 1, !tbaa !17
  %7534 = zext i8 %7533 to i32
  %7535 = icmp sle i32 %7531, %7534
  br i1 %7535, label %7536, label %7537

7536:                                             ; preds = %7529
  br label %7538

7537:                                             ; preds = %7529, %7522, %7519
  call void @__assert_fail(ptr noundef @.str.49, ptr noundef @.str.24, i32 noundef 470, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

7538:                                             ; preds = %7536
  %7539 = load ptr, ptr %11, align 8, !tbaa !5
  %7540 = load i8, ptr %7539, align 1, !tbaa !17
  %7541 = uitofp i8 %7540 to double
  store double %7541, ptr %201, align 8, !tbaa !11
  %7542 = load ptr, ptr %12, align 8, !tbaa !5
  %7543 = load i8, ptr %7542, align 1, !tbaa !17
  %7544 = uitofp i8 %7543 to double
  store double %7544, ptr %202, align 8, !tbaa !11
  br label %7545

7545:                                             ; preds = %7538, %7514
  %7546 = load i32, ptr %8, align 4, !tbaa !9
  %7547 = icmp ule i32 6, %7546
  br i1 %7547, label %7548, label %7786

7548:                                             ; preds = %7545
  %7549 = load double, ptr %201, align 8, !tbaa !11
  %7550 = load double, ptr %202, align 8, !tbaa !11
  %7551 = fcmp olt double %7549, %7550
  br i1 %7551, label %7552, label %7786

7552:                                             ; preds = %7548
  %7553 = load i32, ptr %8, align 4, !tbaa !9
  %7554 = icmp ule i32 15, %7553
  br i1 %7554, label %7555, label %7609

7555:                                             ; preds = %7552
  call void @llvm.lifetime.start.p0(i64 8, ptr %203) #3
  %7556 = load double, ptr %201, align 8, !tbaa !11
  %7557 = fcmp olt double 0.000000e+00, %7556
  br i1 %7557, label %7558, label %7560

7558:                                             ; preds = %7555
  %7559 = load double, ptr %201, align 8, !tbaa !11
  br label %7561

7560:                                             ; preds = %7555
  br label %7561

7561:                                             ; preds = %7560, %7558
  %7562 = phi double [ %7559, %7558 ], [ 0.000000e+00, %7560 ]
  store double %7562, ptr %203, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %204) #3
  %7563 = load double, ptr %202, align 8, !tbaa !11
  %7564 = fcmp olt double 0.000000e+00, %7563
  br i1 %7564, label %7565, label %7567

7565:                                             ; preds = %7561
  %7566 = load double, ptr %202, align 8, !tbaa !11
  br label %7568

7567:                                             ; preds = %7561
  br label %7568

7568:                                             ; preds = %7567, %7565
  %7569 = phi double [ %7566, %7565 ], [ 0.000000e+00, %7567 ]
  store double %7569, ptr %204, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %205) #3
  %7570 = load double, ptr %203, align 8, !tbaa !11
  %7571 = load double, ptr %204, align 8, !tbaa !11
  %7572 = fcmp olt double %7570, %7571
  br i1 %7572, label %7573, label %7581

7573:                                             ; preds = %7568
  %7574 = load double, ptr %202, align 8, !tbaa !11
  %7575 = load double, ptr %201, align 8, !tbaa !11
  %7576 = fsub double %7574, %7575
  %7577 = load double, ptr %204, align 8, !tbaa !11
  %7578 = load double, ptr %203, align 8, !tbaa !11
  %7579 = fsub double %7577, %7578
  %7580 = fdiv double %7576, %7579
  br label %7582

7581:                                             ; preds = %7568
  br label %7582

7582:                                             ; preds = %7581, %7573
  %7583 = phi double [ %7580, %7573 ], [ 1.000000e+00, %7581 ]
  store double %7583, ptr %205, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %206) #3
  %7584 = load double, ptr %205, align 8, !tbaa !11
  %7585 = load i8, ptr %200, align 1, !tbaa !17
  %7586 = zext i8 %7585 to i32
  %7587 = icmp slt i32 0, %7586
  br i1 %7587, label %7588, label %7591

7588:                                             ; preds = %7582
  %7589 = load i8, ptr %200, align 1, !tbaa !17
  %7590 = zext i8 %7589 to i32
  br label %7592

7591:                                             ; preds = %7582
  br label %7592

7592:                                             ; preds = %7591, %7588
  %7593 = phi i32 [ %7590, %7588 ], [ 0, %7591 ]
  %7594 = sitofp i32 %7593 to double
  %7595 = fmul double %7584, %7594
  store double %7595, ptr %206, align 8, !tbaa !11
  %7596 = load double, ptr %206, align 8, !tbaa !11
  %7597 = fcmp ole double 0.000000e+00, %7596
  br i1 %7597, label %7598, label %7601

7598:                                             ; preds = %7592
  %7599 = load double, ptr %206, align 8, !tbaa !11
  %7600 = fadd double %7599, 0.000000e+00
  br label %7604

7601:                                             ; preds = %7592
  %7602 = load double, ptr %206, align 8, !tbaa !11
  %7603 = fsub double %7602, 0.000000e+00
  br label %7604

7604:                                             ; preds = %7601, %7598
  %7605 = phi double [ %7600, %7598 ], [ %7603, %7601 ]
  %7606 = fptoui double %7605 to i8
  store i8 %7606, ptr %200, align 1, !tbaa !17
  %7607 = load double, ptr %203, align 8, !tbaa !11
  store double %7607, ptr %201, align 8, !tbaa !11
  %7608 = load double, ptr %204, align 8, !tbaa !11
  store double %7608, ptr %202, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %206) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %204) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %203) #3
  br label %7665

7609:                                             ; preds = %7552
  %7610 = load i32, ptr %8, align 4, !tbaa !9
  %7611 = icmp ugt i32 6, %7610
  br i1 %7611, label %7640, label %7612

7612:                                             ; preds = %7609
  %7613 = load i32, ptr %8, align 4, !tbaa !9
  %7614 = icmp ugt i32 15, %7613
  br i1 %7614, label %7615, label %7626

7615:                                             ; preds = %7612
  %7616 = load i32, ptr %9, align 4, !tbaa !9
  %7617 = icmp ugt i32 15, %7616
  br i1 %7617, label %7618, label %7623

7618:                                             ; preds = %7615
  %7619 = load i32, ptr %9, align 4, !tbaa !9
  %7620 = load i32, ptr %8, align 4, !tbaa !9
  %7621 = icmp ugt i32 %7619, %7620
  %7622 = zext i1 %7621 to i32
  br label %7624

7623:                                             ; preds = %7615
  br label %7624

7624:                                             ; preds = %7623, %7618
  %7625 = phi i32 [ %7622, %7618 ], [ 0, %7623 ]
  br label %7637

7626:                                             ; preds = %7612
  %7627 = load i32, ptr %9, align 4, !tbaa !9
  %7628 = icmp ugt i32 15, %7627
  br i1 %7628, label %7629, label %7630

7629:                                             ; preds = %7626
  br label %7635

7630:                                             ; preds = %7626
  %7631 = load i32, ptr %9, align 4, !tbaa !9
  %7632 = load i32, ptr %8, align 4, !tbaa !9
  %7633 = icmp ugt i32 %7631, %7632
  %7634 = zext i1 %7633 to i32
  br label %7635

7635:                                             ; preds = %7630, %7629
  %7636 = phi i32 [ 0, %7629 ], [ %7634, %7630 ]
  br label %7637

7637:                                             ; preds = %7635, %7624
  %7638 = phi i32 [ %7625, %7624 ], [ %7636, %7635 ]
  %7639 = icmp ne i32 %7638, 0
  br label %7640

7640:                                             ; preds = %7637, %7609
  %7641 = phi i1 [ true, %7609 ], [ %7639, %7637 ]
  %7642 = zext i1 %7641 to i32
  %7643 = icmp eq i32 0, %7642
  br i1 %7643, label %7644, label %7664

7644:                                             ; preds = %7640
  %7645 = load double, ptr %201, align 8, !tbaa !11
  %7646 = fcmp ogt double 0.000000e+00, %7645
  br i1 %7646, label %7647, label %7664

7647:                                             ; preds = %7644
  %7648 = load double, ptr %202, align 8, !tbaa !11
  %7649 = fcmp olt double 0.000000e+00, %7648
  br i1 %7649, label %7650, label %7664

7650:                                             ; preds = %7647
  %7651 = load double, ptr %201, align 8, !tbaa !11
  %7652 = fneg double %7651
  %7653 = load double, ptr %202, align 8, !tbaa !11
  %7654 = fcmp olt double %7652, %7653
  br i1 %7654, label %7655, label %7657

7655:                                             ; preds = %7650
  %7656 = load double, ptr %202, align 8, !tbaa !11
  br label %7660

7657:                                             ; preds = %7650
  %7658 = load double, ptr %201, align 8, !tbaa !11
  %7659 = fneg double %7658
  br label %7660

7660:                                             ; preds = %7657, %7655
  %7661 = phi double [ %7656, %7655 ], [ %7659, %7657 ]
  store double %7661, ptr %202, align 8, !tbaa !11
  %7662 = load double, ptr %202, align 8, !tbaa !11
  %7663 = fneg double %7662
  store double %7663, ptr %201, align 8, !tbaa !11
  br label %7664

7664:                                             ; preds = %7660, %7647, %7644, %7640
  br label %7665

7665:                                             ; preds = %7664, %7604
  call void @llvm.lifetime.start.p0(i64 8, ptr %207) #3
  %7666 = load double, ptr %201, align 8, !tbaa !11
  %7667 = fcmp ole double 0.000000e+00, %7666
  %7668 = zext i1 %7667 to i64
  %7669 = select i1 %7667, double 0.000000e+00, double -1.000000e+00
  store double %7669, ptr %207, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %208) #3
  %7670 = load double, ptr %202, align 8, !tbaa !11
  %7671 = fcmp ole double 0.000000e+00, %7670
  %7672 = zext i1 %7671 to i64
  %7673 = select i1 %7671, double 1.000000e+00, double 0.000000e+00
  store double %7673, ptr %208, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %209) #3
  %7674 = load i8, ptr %200, align 1, !tbaa !17
  %7675 = uitofp i8 %7674 to double
  %7676 = load double, ptr %201, align 8, !tbaa !11
  %7677 = fsub double %7675, %7676
  %7678 = load double, ptr %208, align 8, !tbaa !11
  %7679 = load double, ptr %207, align 8, !tbaa !11
  %7680 = fsub double %7678, %7679
  %7681 = fmul double %7677, %7680
  %7682 = load double, ptr %202, align 8, !tbaa !11
  %7683 = load double, ptr %201, align 8, !tbaa !11
  %7684 = fsub double %7682, %7683
  %7685 = fdiv double %7681, %7684
  %7686 = load double, ptr %207, align 8, !tbaa !11
  %7687 = fadd double %7685, %7686
  store double %7687, ptr %209, align 8, !tbaa !11
  %7688 = load double, ptr %207, align 8, !tbaa !11
  %7689 = load double, ptr %209, align 8, !tbaa !11
  %7690 = fcmp ole double 0.000000e+00, %7689
  br i1 %7690, label %7691, label %7694

7691:                                             ; preds = %7665
  %7692 = load double, ptr %209, align 8, !tbaa !11
  %7693 = fadd double %7692, 0.000000e+00
  br label %7697

7694:                                             ; preds = %7665
  %7695 = load double, ptr %209, align 8, !tbaa !11
  %7696 = fsub double %7695, 0.000000e+00
  br label %7697

7697:                                             ; preds = %7694, %7691
  %7698 = phi double [ %7693, %7691 ], [ %7696, %7694 ]
  %7699 = fcmp olt double %7688, %7698
  br i1 %7699, label %7700, label %7754

7700:                                             ; preds = %7697
  %7701 = load double, ptr %209, align 8, !tbaa !11
  %7702 = fcmp ole double 0.000000e+00, %7701
  br i1 %7702, label %7703, label %7706

7703:                                             ; preds = %7700
  %7704 = load double, ptr %209, align 8, !tbaa !11
  %7705 = fadd double %7704, 0.000000e+00
  br label %7709

7706:                                             ; preds = %7700
  %7707 = load double, ptr %209, align 8, !tbaa !11
  %7708 = fsub double %7707, 0.000000e+00
  br label %7709

7709:                                             ; preds = %7706, %7703
  %7710 = phi double [ %7705, %7703 ], [ %7708, %7706 ]
  %7711 = load double, ptr %208, align 8, !tbaa !11
  %7712 = fcmp ole double %7710, %7711
  br i1 %7712, label %7713, label %7724

7713:                                             ; preds = %7709
  %7714 = load double, ptr %209, align 8, !tbaa !11
  %7715 = fcmp ole double 0.000000e+00, %7714
  br i1 %7715, label %7716, label %7719

7716:                                             ; preds = %7713
  %7717 = load double, ptr %209, align 8, !tbaa !11
  %7718 = fadd double %7717, 0.000000e+00
  br label %7722

7719:                                             ; preds = %7713
  %7720 = load double, ptr %209, align 8, !tbaa !11
  %7721 = fsub double %7720, 0.000000e+00
  br label %7722

7722:                                             ; preds = %7719, %7716
  %7723 = phi double [ %7718, %7716 ], [ %7721, %7719 ]
  br label %7752

7724:                                             ; preds = %7709
  %7725 = load double, ptr %209, align 8, !tbaa !11
  %7726 = fcmp ole double 0.000000e+00, %7725
  br i1 %7726, label %7727, label %7730

7727:                                             ; preds = %7724
  %7728 = load double, ptr %209, align 8, !tbaa !11
  %7729 = fadd double %7728, 0.000000e+00
  br label %7733

7730:                                             ; preds = %7724
  %7731 = load double, ptr %209, align 8, !tbaa !11
  %7732 = fsub double %7731, 0.000000e+00
  br label %7733

7733:                                             ; preds = %7730, %7727
  %7734 = phi double [ %7729, %7727 ], [ %7732, %7730 ]
  %7735 = load double, ptr %208, align 8, !tbaa !11
  %7736 = fcmp olt double %7734, %7735
  br i1 %7736, label %7737, label %7748

7737:                                             ; preds = %7733
  %7738 = load double, ptr %209, align 8, !tbaa !11
  %7739 = fcmp ole double 0.000000e+00, %7738
  br i1 %7739, label %7740, label %7743

7740:                                             ; preds = %7737
  %7741 = load double, ptr %209, align 8, !tbaa !11
  %7742 = fadd double %7741, 0.000000e+00
  br label %7746

7743:                                             ; preds = %7737
  %7744 = load double, ptr %209, align 8, !tbaa !11
  %7745 = fsub double %7744, 0.000000e+00
  br label %7746

7746:                                             ; preds = %7743, %7740
  %7747 = phi double [ %7742, %7740 ], [ %7745, %7743 ]
  br label %7750

7748:                                             ; preds = %7733
  %7749 = load double, ptr %208, align 8, !tbaa !11
  br label %7750

7750:                                             ; preds = %7748, %7746
  %7751 = phi double [ %7747, %7746 ], [ %7749, %7748 ]
  br label %7752

7752:                                             ; preds = %7750, %7722
  %7753 = phi double [ %7723, %7722 ], [ %7751, %7750 ]
  br label %7782

7754:                                             ; preds = %7697
  %7755 = load double, ptr %207, align 8, !tbaa !11
  %7756 = load double, ptr %209, align 8, !tbaa !11
  %7757 = fcmp ole double 0.000000e+00, %7756
  br i1 %7757, label %7758, label %7761

7758:                                             ; preds = %7754
  %7759 = load double, ptr %209, align 8, !tbaa !11
  %7760 = fadd double %7759, 0.000000e+00
  br label %7764

7761:                                             ; preds = %7754
  %7762 = load double, ptr %209, align 8, !tbaa !11
  %7763 = fsub double %7762, 0.000000e+00
  br label %7764

7764:                                             ; preds = %7761, %7758
  %7765 = phi double [ %7760, %7758 ], [ %7763, %7761 ]
  %7766 = fcmp olt double %7755, %7765
  br i1 %7766, label %7767, label %7778

7767:                                             ; preds = %7764
  %7768 = load double, ptr %209, align 8, !tbaa !11
  %7769 = fcmp ole double 0.000000e+00, %7768
  br i1 %7769, label %7770, label %7773

7770:                                             ; preds = %7767
  %7771 = load double, ptr %209, align 8, !tbaa !11
  %7772 = fadd double %7771, 0.000000e+00
  br label %7776

7773:                                             ; preds = %7767
  %7774 = load double, ptr %209, align 8, !tbaa !11
  %7775 = fsub double %7774, 0.000000e+00
  br label %7776

7776:                                             ; preds = %7773, %7770
  %7777 = phi double [ %7772, %7770 ], [ %7775, %7773 ]
  br label %7780

7778:                                             ; preds = %7764
  %7779 = load double, ptr %207, align 8, !tbaa !11
  br label %7780

7780:                                             ; preds = %7778, %7776
  %7781 = phi double [ %7777, %7776 ], [ %7779, %7778 ]
  br label %7782

7782:                                             ; preds = %7780, %7752
  %7783 = phi double [ %7753, %7752 ], [ %7781, %7780 ]
  %7784 = fptrunc double %7783 to float
  %7785 = load ptr, ptr %7, align 8, !tbaa !5
  store float %7784, ptr %7785, align 4, !tbaa !18
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %207) #3
  br label %7870

7786:                                             ; preds = %7548, %7545
  %7787 = load i32, ptr %8, align 4, !tbaa !9
  %7788 = icmp ugt i32 6, %7787
  br i1 %7788, label %7817, label %7789

7789:                                             ; preds = %7786
  %7790 = load i32, ptr %8, align 4, !tbaa !9
  %7791 = icmp ugt i32 15, %7790
  br i1 %7791, label %7792, label %7803

7792:                                             ; preds = %7789
  %7793 = load i32, ptr %9, align 4, !tbaa !9
  %7794 = icmp ugt i32 15, %7793
  br i1 %7794, label %7795, label %7800

7795:                                             ; preds = %7792
  %7796 = load i32, ptr %9, align 4, !tbaa !9
  %7797 = load i32, ptr %8, align 4, !tbaa !9
  %7798 = icmp ugt i32 %7796, %7797
  %7799 = zext i1 %7798 to i32
  br label %7801

7800:                                             ; preds = %7792
  br label %7801

7801:                                             ; preds = %7800, %7795
  %7802 = phi i32 [ %7799, %7795 ], [ 0, %7800 ]
  br label %7814

7803:                                             ; preds = %7789
  %7804 = load i32, ptr %9, align 4, !tbaa !9
  %7805 = icmp ugt i32 15, %7804
  br i1 %7805, label %7806, label %7807

7806:                                             ; preds = %7803
  br label %7812

7807:                                             ; preds = %7803
  %7808 = load i32, ptr %9, align 4, !tbaa !9
  %7809 = load i32, ptr %8, align 4, !tbaa !9
  %7810 = icmp ugt i32 %7808, %7809
  %7811 = zext i1 %7810 to i32
  br label %7812

7812:                                             ; preds = %7807, %7806
  %7813 = phi i32 [ 0, %7806 ], [ %7811, %7807 ]
  br label %7814

7814:                                             ; preds = %7812, %7801
  %7815 = phi i32 [ %7802, %7801 ], [ %7813, %7812 ]
  %7816 = icmp ne i32 %7815, 0
  br label %7817

7817:                                             ; preds = %7814, %7786
  %7818 = phi i1 [ true, %7786 ], [ %7816, %7814 ]
  %7819 = zext i1 %7818 to i32
  %7820 = icmp eq i32 0, %7819
  br i1 %7820, label %7821, label %7865

7821:                                             ; preds = %7817
  %7822 = load i8, ptr %200, align 1, !tbaa !17
  %7823 = zext i8 %7822 to i32
  %7824 = sitofp i32 %7823 to double
  %7825 = fcmp olt double -1.000000e+00, %7824
  br i1 %7825, label %7826, label %7849

7826:                                             ; preds = %7821
  %7827 = load i8, ptr %200, align 1, !tbaa !17
  %7828 = zext i8 %7827 to i32
  %7829 = sitofp i32 %7828 to double
  %7830 = fcmp ole double %7829, 1.000000e+00
  br i1 %7830, label %7831, label %7835

7831:                                             ; preds = %7826
  %7832 = load i8, ptr %200, align 1, !tbaa !17
  %7833 = zext i8 %7832 to i32
  %7834 = sitofp i32 %7833 to double
  br label %7847

7835:                                             ; preds = %7826
  %7836 = load i8, ptr %200, align 1, !tbaa !17
  %7837 = zext i8 %7836 to i32
  %7838 = sitofp i32 %7837 to double
  %7839 = fcmp olt double %7838, 1.000000e+00
  br i1 %7839, label %7840, label %7844

7840:                                             ; preds = %7835
  %7841 = load i8, ptr %200, align 1, !tbaa !17
  %7842 = zext i8 %7841 to i32
  %7843 = sitofp i32 %7842 to double
  br label %7845

7844:                                             ; preds = %7835
  br label %7845

7845:                                             ; preds = %7844, %7840
  %7846 = phi double [ %7843, %7840 ], [ 1.000000e+00, %7844 ]
  br label %7847

7847:                                             ; preds = %7845, %7831
  %7848 = phi double [ %7834, %7831 ], [ %7846, %7845 ]
  br label %7861

7849:                                             ; preds = %7821
  %7850 = load i8, ptr %200, align 1, !tbaa !17
  %7851 = zext i8 %7850 to i32
  %7852 = sitofp i32 %7851 to double
  %7853 = fcmp olt double -1.000000e+00, %7852
  br i1 %7853, label %7854, label %7858

7854:                                             ; preds = %7849
  %7855 = load i8, ptr %200, align 1, !tbaa !17
  %7856 = zext i8 %7855 to i32
  %7857 = sitofp i32 %7856 to double
  br label %7859

7858:                                             ; preds = %7849
  br label %7859

7859:                                             ; preds = %7858, %7854
  %7860 = phi double [ %7857, %7854 ], [ -1.000000e+00, %7858 ]
  br label %7861

7861:                                             ; preds = %7859, %7847
  %7862 = phi double [ %7848, %7847 ], [ %7860, %7859 ]
  %7863 = fptrunc double %7862 to float
  %7864 = load ptr, ptr %7, align 8, !tbaa !5
  store float %7863, ptr %7864, align 4, !tbaa !18
  br label %7869

7865:                                             ; preds = %7817
  %7866 = load i8, ptr %200, align 1, !tbaa !17
  %7867 = uitofp i8 %7866 to float
  %7868 = load ptr, ptr %7, align 8, !tbaa !5
  store float %7867, ptr %7868, align 4, !tbaa !18
  br label %7869

7869:                                             ; preds = %7865, %7861
  br label %7870

7870:                                             ; preds = %7869, %7782
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %202) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %201) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %200) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %199) #3
  br label %7871

7871:                                             ; preds = %7870
  br label %7872

7872:                                             ; preds = %7871
  br label %8668

7873:                                             ; preds = %5043
  br label %7874

7874:                                             ; preds = %7873
  call void @llvm.lifetime.start.p0(i64 8, ptr %210) #3
  store double 0.000000e+00, ptr %210, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %211) #3
  %7875 = load ptr, ptr %10, align 8, !tbaa !5
  %7876 = load double, ptr %7875, align 8, !tbaa !11
  store double %7876, ptr %211, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %212) #3
  store double 0.000000e+00, ptr %212, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %213) #3
  store double 0.000000e+00, ptr %213, align 8, !tbaa !11
  %7877 = load ptr, ptr %11, align 8, !tbaa !5
  %7878 = icmp ne ptr null, %7877
  br i1 %7878, label %7879, label %7903

7879:                                             ; preds = %7874
  %7880 = load double, ptr %211, align 8, !tbaa !11
  %7881 = load double, ptr %211, align 8, !tbaa !11
  %7882 = fcmp oeq double %7880, %7881
  br i1 %7882, label %7883, label %7903

7883:                                             ; preds = %7879
  %7884 = load ptr, ptr %12, align 8, !tbaa !5
  %7885 = icmp ne ptr null, %7884
  br i1 %7885, label %7886, label %7897

7886:                                             ; preds = %7883
  %7887 = load ptr, ptr %11, align 8, !tbaa !5
  %7888 = load double, ptr %7887, align 8, !tbaa !11
  %7889 = load double, ptr %211, align 8, !tbaa !11
  %7890 = fcmp ole double %7888, %7889
  br i1 %7890, label %7891, label %7897

7891:                                             ; preds = %7886
  %7892 = load double, ptr %211, align 8, !tbaa !11
  %7893 = load ptr, ptr %12, align 8, !tbaa !5
  %7894 = load double, ptr %7893, align 8, !tbaa !11
  %7895 = fcmp ole double %7892, %7894
  br i1 %7895, label %7896, label %7897

7896:                                             ; preds = %7891
  br label %7898

7897:                                             ; preds = %7891, %7886, %7883
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.24, i32 noundef 470, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

7898:                                             ; preds = %7896
  %7899 = load ptr, ptr %11, align 8, !tbaa !5
  %7900 = load double, ptr %7899, align 8, !tbaa !11
  store double %7900, ptr %212, align 8, !tbaa !11
  %7901 = load ptr, ptr %12, align 8, !tbaa !5
  %7902 = load double, ptr %7901, align 8, !tbaa !11
  store double %7902, ptr %213, align 8, !tbaa !11
  br label %7903

7903:                                             ; preds = %7898, %7879, %7874
  %7904 = load i32, ptr %8, align 4, !tbaa !9
  %7905 = icmp ule i32 6, %7904
  br i1 %7905, label %7906, label %8129

7906:                                             ; preds = %7903
  %7907 = load double, ptr %212, align 8, !tbaa !11
  %7908 = load double, ptr %213, align 8, !tbaa !11
  %7909 = fcmp olt double %7907, %7908
  br i1 %7909, label %7910, label %8129

7910:                                             ; preds = %7906
  %7911 = load i32, ptr %8, align 4, !tbaa !9
  %7912 = icmp ule i32 15, %7911
  br i1 %7912, label %7913, label %7953

7913:                                             ; preds = %7910
  call void @llvm.lifetime.start.p0(i64 8, ptr %214) #3
  %7914 = load double, ptr %212, align 8, !tbaa !11
  %7915 = fcmp olt double 0.000000e+00, %7914
  br i1 %7915, label %7916, label %7918

7916:                                             ; preds = %7913
  %7917 = load double, ptr %212, align 8, !tbaa !11
  br label %7919

7918:                                             ; preds = %7913
  br label %7919

7919:                                             ; preds = %7918, %7916
  %7920 = phi double [ %7917, %7916 ], [ 0.000000e+00, %7918 ]
  store double %7920, ptr %214, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %215) #3
  %7921 = load double, ptr %213, align 8, !tbaa !11
  %7922 = fcmp olt double 0.000000e+00, %7921
  br i1 %7922, label %7923, label %7925

7923:                                             ; preds = %7919
  %7924 = load double, ptr %213, align 8, !tbaa !11
  br label %7926

7925:                                             ; preds = %7919
  br label %7926

7926:                                             ; preds = %7925, %7923
  %7927 = phi double [ %7924, %7923 ], [ 0.000000e+00, %7925 ]
  store double %7927, ptr %215, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %216) #3
  %7928 = load double, ptr %214, align 8, !tbaa !11
  %7929 = load double, ptr %215, align 8, !tbaa !11
  %7930 = fcmp olt double %7928, %7929
  br i1 %7930, label %7931, label %7939

7931:                                             ; preds = %7926
  %7932 = load double, ptr %213, align 8, !tbaa !11
  %7933 = load double, ptr %212, align 8, !tbaa !11
  %7934 = fsub double %7932, %7933
  %7935 = load double, ptr %215, align 8, !tbaa !11
  %7936 = load double, ptr %214, align 8, !tbaa !11
  %7937 = fsub double %7935, %7936
  %7938 = fdiv double %7934, %7937
  br label %7940

7939:                                             ; preds = %7926
  br label %7940

7940:                                             ; preds = %7939, %7931
  %7941 = phi double [ %7938, %7931 ], [ 1.000000e+00, %7939 ]
  store double %7941, ptr %216, align 8, !tbaa !11
  %7942 = load double, ptr %216, align 8, !tbaa !11
  %7943 = load double, ptr %211, align 8, !tbaa !11
  %7944 = fcmp olt double 0.000000e+00, %7943
  br i1 %7944, label %7945, label %7947

7945:                                             ; preds = %7940
  %7946 = load double, ptr %211, align 8, !tbaa !11
  br label %7948

7947:                                             ; preds = %7940
  br label %7948

7948:                                             ; preds = %7947, %7945
  %7949 = phi double [ %7946, %7945 ], [ 0.000000e+00, %7947 ]
  %7950 = fmul double %7942, %7949
  store double %7950, ptr %211, align 8, !tbaa !11
  %7951 = load double, ptr %214, align 8, !tbaa !11
  store double %7951, ptr %212, align 8, !tbaa !11
  %7952 = load double, ptr %215, align 8, !tbaa !11
  store double %7952, ptr %213, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %216) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %215) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %214) #3
  br label %8009

7953:                                             ; preds = %7910
  %7954 = load i32, ptr %8, align 4, !tbaa !9
  %7955 = icmp ugt i32 6, %7954
  br i1 %7955, label %7984, label %7956

7956:                                             ; preds = %7953
  %7957 = load i32, ptr %8, align 4, !tbaa !9
  %7958 = icmp ugt i32 15, %7957
  br i1 %7958, label %7959, label %7970

7959:                                             ; preds = %7956
  %7960 = load i32, ptr %9, align 4, !tbaa !9
  %7961 = icmp ugt i32 15, %7960
  br i1 %7961, label %7962, label %7967

7962:                                             ; preds = %7959
  %7963 = load i32, ptr %9, align 4, !tbaa !9
  %7964 = load i32, ptr %8, align 4, !tbaa !9
  %7965 = icmp ugt i32 %7963, %7964
  %7966 = zext i1 %7965 to i32
  br label %7968

7967:                                             ; preds = %7959
  br label %7968

7968:                                             ; preds = %7967, %7962
  %7969 = phi i32 [ %7966, %7962 ], [ 0, %7967 ]
  br label %7981

7970:                                             ; preds = %7956
  %7971 = load i32, ptr %9, align 4, !tbaa !9
  %7972 = icmp ugt i32 15, %7971
  br i1 %7972, label %7973, label %7974

7973:                                             ; preds = %7970
  br label %7979

7974:                                             ; preds = %7970
  %7975 = load i32, ptr %9, align 4, !tbaa !9
  %7976 = load i32, ptr %8, align 4, !tbaa !9
  %7977 = icmp ugt i32 %7975, %7976
  %7978 = zext i1 %7977 to i32
  br label %7979

7979:                                             ; preds = %7974, %7973
  %7980 = phi i32 [ 0, %7973 ], [ %7978, %7974 ]
  br label %7981

7981:                                             ; preds = %7979, %7968
  %7982 = phi i32 [ %7969, %7968 ], [ %7980, %7979 ]
  %7983 = icmp ne i32 %7982, 0
  br label %7984

7984:                                             ; preds = %7981, %7953
  %7985 = phi i1 [ true, %7953 ], [ %7983, %7981 ]
  %7986 = zext i1 %7985 to i32
  %7987 = icmp eq i32 0, %7986
  br i1 %7987, label %7988, label %8008

7988:                                             ; preds = %7984
  %7989 = load double, ptr %212, align 8, !tbaa !11
  %7990 = fcmp ogt double 0.000000e+00, %7989
  br i1 %7990, label %7991, label %8008

7991:                                             ; preds = %7988
  %7992 = load double, ptr %213, align 8, !tbaa !11
  %7993 = fcmp olt double 0.000000e+00, %7992
  br i1 %7993, label %7994, label %8008

7994:                                             ; preds = %7991
  %7995 = load double, ptr %212, align 8, !tbaa !11
  %7996 = fneg double %7995
  %7997 = load double, ptr %213, align 8, !tbaa !11
  %7998 = fcmp olt double %7996, %7997
  br i1 %7998, label %7999, label %8001

7999:                                             ; preds = %7994
  %8000 = load double, ptr %213, align 8, !tbaa !11
  br label %8004

8001:                                             ; preds = %7994
  %8002 = load double, ptr %212, align 8, !tbaa !11
  %8003 = fneg double %8002
  br label %8004

8004:                                             ; preds = %8001, %7999
  %8005 = phi double [ %8000, %7999 ], [ %8003, %8001 ]
  store double %8005, ptr %213, align 8, !tbaa !11
  %8006 = load double, ptr %213, align 8, !tbaa !11
  %8007 = fneg double %8006
  store double %8007, ptr %212, align 8, !tbaa !11
  br label %8008

8008:                                             ; preds = %8004, %7991, %7988, %7984
  br label %8009

8009:                                             ; preds = %8008, %7948
  call void @llvm.lifetime.start.p0(i64 8, ptr %217) #3
  %8010 = load double, ptr %212, align 8, !tbaa !11
  %8011 = fcmp ole double 0.000000e+00, %8010
  %8012 = zext i1 %8011 to i64
  %8013 = select i1 %8011, double 0.000000e+00, double -1.000000e+00
  store double %8013, ptr %217, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %218) #3
  %8014 = load double, ptr %213, align 8, !tbaa !11
  %8015 = fcmp ole double 0.000000e+00, %8014
  %8016 = zext i1 %8015 to i64
  %8017 = select i1 %8015, double 1.000000e+00, double 0.000000e+00
  store double %8017, ptr %218, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %219) #3
  %8018 = load double, ptr %211, align 8, !tbaa !11
  %8019 = load double, ptr %212, align 8, !tbaa !11
  %8020 = fsub double %8018, %8019
  %8021 = load double, ptr %218, align 8, !tbaa !11
  %8022 = load double, ptr %217, align 8, !tbaa !11
  %8023 = fsub double %8021, %8022
  %8024 = fmul double %8020, %8023
  %8025 = load double, ptr %213, align 8, !tbaa !11
  %8026 = load double, ptr %212, align 8, !tbaa !11
  %8027 = fsub double %8025, %8026
  %8028 = fdiv double %8024, %8027
  %8029 = load double, ptr %217, align 8, !tbaa !11
  %8030 = fadd double %8028, %8029
  store double %8030, ptr %219, align 8, !tbaa !11
  %8031 = load double, ptr %217, align 8, !tbaa !11
  %8032 = load double, ptr %219, align 8, !tbaa !11
  %8033 = fcmp ole double 0.000000e+00, %8032
  br i1 %8033, label %8034, label %8037

8034:                                             ; preds = %8009
  %8035 = load double, ptr %219, align 8, !tbaa !11
  %8036 = fadd double %8035, 0.000000e+00
  br label %8040

8037:                                             ; preds = %8009
  %8038 = load double, ptr %219, align 8, !tbaa !11
  %8039 = fsub double %8038, 0.000000e+00
  br label %8040

8040:                                             ; preds = %8037, %8034
  %8041 = phi double [ %8036, %8034 ], [ %8039, %8037 ]
  %8042 = fcmp olt double %8031, %8041
  br i1 %8042, label %8043, label %8097

8043:                                             ; preds = %8040
  %8044 = load double, ptr %219, align 8, !tbaa !11
  %8045 = fcmp ole double 0.000000e+00, %8044
  br i1 %8045, label %8046, label %8049

8046:                                             ; preds = %8043
  %8047 = load double, ptr %219, align 8, !tbaa !11
  %8048 = fadd double %8047, 0.000000e+00
  br label %8052

8049:                                             ; preds = %8043
  %8050 = load double, ptr %219, align 8, !tbaa !11
  %8051 = fsub double %8050, 0.000000e+00
  br label %8052

8052:                                             ; preds = %8049, %8046
  %8053 = phi double [ %8048, %8046 ], [ %8051, %8049 ]
  %8054 = load double, ptr %218, align 8, !tbaa !11
  %8055 = fcmp ole double %8053, %8054
  br i1 %8055, label %8056, label %8067

8056:                                             ; preds = %8052
  %8057 = load double, ptr %219, align 8, !tbaa !11
  %8058 = fcmp ole double 0.000000e+00, %8057
  br i1 %8058, label %8059, label %8062

8059:                                             ; preds = %8056
  %8060 = load double, ptr %219, align 8, !tbaa !11
  %8061 = fadd double %8060, 0.000000e+00
  br label %8065

8062:                                             ; preds = %8056
  %8063 = load double, ptr %219, align 8, !tbaa !11
  %8064 = fsub double %8063, 0.000000e+00
  br label %8065

8065:                                             ; preds = %8062, %8059
  %8066 = phi double [ %8061, %8059 ], [ %8064, %8062 ]
  br label %8095

8067:                                             ; preds = %8052
  %8068 = load double, ptr %219, align 8, !tbaa !11
  %8069 = fcmp ole double 0.000000e+00, %8068
  br i1 %8069, label %8070, label %8073

8070:                                             ; preds = %8067
  %8071 = load double, ptr %219, align 8, !tbaa !11
  %8072 = fadd double %8071, 0.000000e+00
  br label %8076

8073:                                             ; preds = %8067
  %8074 = load double, ptr %219, align 8, !tbaa !11
  %8075 = fsub double %8074, 0.000000e+00
  br label %8076

8076:                                             ; preds = %8073, %8070
  %8077 = phi double [ %8072, %8070 ], [ %8075, %8073 ]
  %8078 = load double, ptr %218, align 8, !tbaa !11
  %8079 = fcmp olt double %8077, %8078
  br i1 %8079, label %8080, label %8091

8080:                                             ; preds = %8076
  %8081 = load double, ptr %219, align 8, !tbaa !11
  %8082 = fcmp ole double 0.000000e+00, %8081
  br i1 %8082, label %8083, label %8086

8083:                                             ; preds = %8080
  %8084 = load double, ptr %219, align 8, !tbaa !11
  %8085 = fadd double %8084, 0.000000e+00
  br label %8089

8086:                                             ; preds = %8080
  %8087 = load double, ptr %219, align 8, !tbaa !11
  %8088 = fsub double %8087, 0.000000e+00
  br label %8089

8089:                                             ; preds = %8086, %8083
  %8090 = phi double [ %8085, %8083 ], [ %8088, %8086 ]
  br label %8093

8091:                                             ; preds = %8076
  %8092 = load double, ptr %218, align 8, !tbaa !11
  br label %8093

8093:                                             ; preds = %8091, %8089
  %8094 = phi double [ %8090, %8089 ], [ %8092, %8091 ]
  br label %8095

8095:                                             ; preds = %8093, %8065
  %8096 = phi double [ %8066, %8065 ], [ %8094, %8093 ]
  br label %8125

8097:                                             ; preds = %8040
  %8098 = load double, ptr %217, align 8, !tbaa !11
  %8099 = load double, ptr %219, align 8, !tbaa !11
  %8100 = fcmp ole double 0.000000e+00, %8099
  br i1 %8100, label %8101, label %8104

8101:                                             ; preds = %8097
  %8102 = load double, ptr %219, align 8, !tbaa !11
  %8103 = fadd double %8102, 0.000000e+00
  br label %8107

8104:                                             ; preds = %8097
  %8105 = load double, ptr %219, align 8, !tbaa !11
  %8106 = fsub double %8105, 0.000000e+00
  br label %8107

8107:                                             ; preds = %8104, %8101
  %8108 = phi double [ %8103, %8101 ], [ %8106, %8104 ]
  %8109 = fcmp olt double %8098, %8108
  br i1 %8109, label %8110, label %8121

8110:                                             ; preds = %8107
  %8111 = load double, ptr %219, align 8, !tbaa !11
  %8112 = fcmp ole double 0.000000e+00, %8111
  br i1 %8112, label %8113, label %8116

8113:                                             ; preds = %8110
  %8114 = load double, ptr %219, align 8, !tbaa !11
  %8115 = fadd double %8114, 0.000000e+00
  br label %8119

8116:                                             ; preds = %8110
  %8117 = load double, ptr %219, align 8, !tbaa !11
  %8118 = fsub double %8117, 0.000000e+00
  br label %8119

8119:                                             ; preds = %8116, %8113
  %8120 = phi double [ %8115, %8113 ], [ %8118, %8116 ]
  br label %8123

8121:                                             ; preds = %8107
  %8122 = load double, ptr %217, align 8, !tbaa !11
  br label %8123

8123:                                             ; preds = %8121, %8119
  %8124 = phi double [ %8120, %8119 ], [ %8122, %8121 ]
  br label %8125

8125:                                             ; preds = %8123, %8095
  %8126 = phi double [ %8096, %8095 ], [ %8124, %8123 ]
  %8127 = fptrunc double %8126 to float
  %8128 = load ptr, ptr %7, align 8, !tbaa !5
  store float %8127, ptr %8128, align 4, !tbaa !18
  call void @llvm.lifetime.end.p0(i64 8, ptr %219) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %218) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %217) #3
  br label %8255

8129:                                             ; preds = %7906, %7903
  %8130 = load i32, ptr %8, align 4, !tbaa !9
  %8131 = icmp ugt i32 6, %8130
  br i1 %8131, label %8160, label %8132

8132:                                             ; preds = %8129
  %8133 = load i32, ptr %8, align 4, !tbaa !9
  %8134 = icmp ugt i32 15, %8133
  br i1 %8134, label %8135, label %8146

8135:                                             ; preds = %8132
  %8136 = load i32, ptr %9, align 4, !tbaa !9
  %8137 = icmp ugt i32 15, %8136
  br i1 %8137, label %8138, label %8143

8138:                                             ; preds = %8135
  %8139 = load i32, ptr %9, align 4, !tbaa !9
  %8140 = load i32, ptr %8, align 4, !tbaa !9
  %8141 = icmp ugt i32 %8139, %8140
  %8142 = zext i1 %8141 to i32
  br label %8144

8143:                                             ; preds = %8135
  br label %8144

8144:                                             ; preds = %8143, %8138
  %8145 = phi i32 [ %8142, %8138 ], [ 0, %8143 ]
  br label %8157

8146:                                             ; preds = %8132
  %8147 = load i32, ptr %9, align 4, !tbaa !9
  %8148 = icmp ugt i32 15, %8147
  br i1 %8148, label %8149, label %8150

8149:                                             ; preds = %8146
  br label %8155

8150:                                             ; preds = %8146
  %8151 = load i32, ptr %9, align 4, !tbaa !9
  %8152 = load i32, ptr %8, align 4, !tbaa !9
  %8153 = icmp ugt i32 %8151, %8152
  %8154 = zext i1 %8153 to i32
  br label %8155

8155:                                             ; preds = %8150, %8149
  %8156 = phi i32 [ 0, %8149 ], [ %8154, %8150 ]
  br label %8157

8157:                                             ; preds = %8155, %8144
  %8158 = phi i32 [ %8145, %8144 ], [ %8156, %8155 ]
  %8159 = icmp ne i32 %8158, 0
  br label %8160

8160:                                             ; preds = %8157, %8129
  %8161 = phi i1 [ true, %8129 ], [ %8159, %8157 ]
  %8162 = zext i1 %8161 to i32
  %8163 = icmp eq i32 0, %8162
  br i1 %8163, label %8164, label %8241

8164:                                             ; preds = %8160
  %8165 = load double, ptr %211, align 8, !tbaa !11
  %8166 = fcmp ole double 0.000000e+00, %8165
  br i1 %8166, label %8167, label %8202

8167:                                             ; preds = %8164
  %8168 = load double, ptr %211, align 8, !tbaa !11
  %8169 = fadd double %8168, 0.000000e+00
  %8170 = fcmp olt double -1.000000e+00, %8169
  br i1 %8170, label %8171, label %8190

8171:                                             ; preds = %8167
  %8172 = load double, ptr %211, align 8, !tbaa !11
  %8173 = fadd double %8172, 0.000000e+00
  %8174 = fcmp ole double %8173, 1.000000e+00
  br i1 %8174, label %8175, label %8178

8175:                                             ; preds = %8171
  %8176 = load double, ptr %211, align 8, !tbaa !11
  %8177 = fadd double %8176, 0.000000e+00
  br label %8188

8178:                                             ; preds = %8171
  %8179 = load double, ptr %211, align 8, !tbaa !11
  %8180 = fadd double %8179, 0.000000e+00
  %8181 = fcmp olt double %8180, 1.000000e+00
  br i1 %8181, label %8182, label %8185

8182:                                             ; preds = %8178
  %8183 = load double, ptr %211, align 8, !tbaa !11
  %8184 = fadd double %8183, 0.000000e+00
  br label %8186

8185:                                             ; preds = %8178
  br label %8186

8186:                                             ; preds = %8185, %8182
  %8187 = phi double [ %8184, %8182 ], [ 1.000000e+00, %8185 ]
  br label %8188

8188:                                             ; preds = %8186, %8175
  %8189 = phi double [ %8177, %8175 ], [ %8187, %8186 ]
  br label %8200

8190:                                             ; preds = %8167
  %8191 = load double, ptr %211, align 8, !tbaa !11
  %8192 = fadd double %8191, 0.000000e+00
  %8193 = fcmp olt double -1.000000e+00, %8192
  br i1 %8193, label %8194, label %8197

8194:                                             ; preds = %8190
  %8195 = load double, ptr %211, align 8, !tbaa !11
  %8196 = fadd double %8195, 0.000000e+00
  br label %8198

8197:                                             ; preds = %8190
  br label %8198

8198:                                             ; preds = %8197, %8194
  %8199 = phi double [ %8196, %8194 ], [ -1.000000e+00, %8197 ]
  br label %8200

8200:                                             ; preds = %8198, %8188
  %8201 = phi double [ %8189, %8188 ], [ %8199, %8198 ]
  br label %8237

8202:                                             ; preds = %8164
  %8203 = load double, ptr %211, align 8, !tbaa !11
  %8204 = fsub double %8203, 0.000000e+00
  %8205 = fcmp olt double -1.000000e+00, %8204
  br i1 %8205, label %8206, label %8225

8206:                                             ; preds = %8202
  %8207 = load double, ptr %211, align 8, !tbaa !11
  %8208 = fsub double %8207, 0.000000e+00
  %8209 = fcmp ole double %8208, 1.000000e+00
  br i1 %8209, label %8210, label %8213

8210:                                             ; preds = %8206
  %8211 = load double, ptr %211, align 8, !tbaa !11
  %8212 = fsub double %8211, 0.000000e+00
  br label %8223

8213:                                             ; preds = %8206
  %8214 = load double, ptr %211, align 8, !tbaa !11
  %8215 = fsub double %8214, 0.000000e+00
  %8216 = fcmp olt double %8215, 1.000000e+00
  br i1 %8216, label %8217, label %8220

8217:                                             ; preds = %8213
  %8218 = load double, ptr %211, align 8, !tbaa !11
  %8219 = fsub double %8218, 0.000000e+00
  br label %8221

8220:                                             ; preds = %8213
  br label %8221

8221:                                             ; preds = %8220, %8217
  %8222 = phi double [ %8219, %8217 ], [ 1.000000e+00, %8220 ]
  br label %8223

8223:                                             ; preds = %8221, %8210
  %8224 = phi double [ %8212, %8210 ], [ %8222, %8221 ]
  br label %8235

8225:                                             ; preds = %8202
  %8226 = load double, ptr %211, align 8, !tbaa !11
  %8227 = fsub double %8226, 0.000000e+00
  %8228 = fcmp olt double -1.000000e+00, %8227
  br i1 %8228, label %8229, label %8232

8229:                                             ; preds = %8225
  %8230 = load double, ptr %211, align 8, !tbaa !11
  %8231 = fsub double %8230, 0.000000e+00
  br label %8233

8232:                                             ; preds = %8225
  br label %8233

8233:                                             ; preds = %8232, %8229
  %8234 = phi double [ %8231, %8229 ], [ -1.000000e+00, %8232 ]
  br label %8235

8235:                                             ; preds = %8233, %8223
  %8236 = phi double [ %8224, %8223 ], [ %8234, %8233 ]
  br label %8237

8237:                                             ; preds = %8235, %8200
  %8238 = phi double [ %8201, %8200 ], [ %8236, %8235 ]
  %8239 = fptrunc double %8238 to float
  %8240 = load ptr, ptr %7, align 8, !tbaa !5
  store float %8239, ptr %8240, align 4, !tbaa !18
  br label %8254

8241:                                             ; preds = %8160
  %8242 = load double, ptr %211, align 8, !tbaa !11
  %8243 = fcmp ole double 0.000000e+00, %8242
  br i1 %8243, label %8244, label %8247

8244:                                             ; preds = %8241
  %8245 = load double, ptr %211, align 8, !tbaa !11
  %8246 = fadd double %8245, 0.000000e+00
  br label %8250

8247:                                             ; preds = %8241
  %8248 = load double, ptr %211, align 8, !tbaa !11
  %8249 = fsub double %8248, 0.000000e+00
  br label %8250

8250:                                             ; preds = %8247, %8244
  %8251 = phi double [ %8246, %8244 ], [ %8249, %8247 ]
  %8252 = fptrunc double %8251 to float
  %8253 = load ptr, ptr %7, align 8, !tbaa !5
  store float %8252, ptr %8253, align 4, !tbaa !18
  br label %8254

8254:                                             ; preds = %8250, %8237
  br label %8255

8255:                                             ; preds = %8254, %8125
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %212) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %211) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %210) #3
  br label %8256

8256:                                             ; preds = %8255
  br label %8257

8257:                                             ; preds = %8256
  br label %8668

8258:                                             ; preds = %5043
  br label %8259

8259:                                             ; preds = %8258
  call void @llvm.lifetime.start.p0(i64 8, ptr %220) #3
  store double 0.000000e+00, ptr %220, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #3
  %8260 = load ptr, ptr %10, align 8, !tbaa !5
  %8261 = load float, ptr %8260, align 4, !tbaa !18
  store float %8261, ptr %221, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %222) #3
  store double 0.000000e+00, ptr %222, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %223) #3
  store double 0.000000e+00, ptr %223, align 8, !tbaa !11
  %8262 = load ptr, ptr %11, align 8, !tbaa !5
  %8263 = icmp ne ptr null, %8262
  br i1 %8263, label %8264, label %8290

8264:                                             ; preds = %8259
  %8265 = load float, ptr %221, align 4, !tbaa !18
  %8266 = load float, ptr %221, align 4, !tbaa !18
  %8267 = fcmp oeq float %8265, %8266
  br i1 %8267, label %8268, label %8290

8268:                                             ; preds = %8264
  %8269 = load ptr, ptr %12, align 8, !tbaa !5
  %8270 = icmp ne ptr null, %8269
  br i1 %8270, label %8271, label %8282

8271:                                             ; preds = %8268
  %8272 = load ptr, ptr %11, align 8, !tbaa !5
  %8273 = load float, ptr %8272, align 4, !tbaa !18
  %8274 = load float, ptr %221, align 4, !tbaa !18
  %8275 = fcmp ole float %8273, %8274
  br i1 %8275, label %8276, label %8282

8276:                                             ; preds = %8271
  %8277 = load float, ptr %221, align 4, !tbaa !18
  %8278 = load ptr, ptr %12, align 8, !tbaa !5
  %8279 = load float, ptr %8278, align 4, !tbaa !18
  %8280 = fcmp ole float %8277, %8279
  br i1 %8280, label %8281, label %8282

8281:                                             ; preds = %8276
  br label %8283

8282:                                             ; preds = %8276, %8271, %8268
  call void @__assert_fail(ptr noundef @.str.51, ptr noundef @.str.24, i32 noundef 470, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

8283:                                             ; preds = %8281
  %8284 = load ptr, ptr %11, align 8, !tbaa !5
  %8285 = load float, ptr %8284, align 4, !tbaa !18
  %8286 = fpext float %8285 to double
  store double %8286, ptr %222, align 8, !tbaa !11
  %8287 = load ptr, ptr %12, align 8, !tbaa !5
  %8288 = load float, ptr %8287, align 4, !tbaa !18
  %8289 = fpext float %8288 to double
  store double %8289, ptr %223, align 8, !tbaa !11
  br label %8290

8290:                                             ; preds = %8283, %8264, %8259
  %8291 = load i32, ptr %8, align 4, !tbaa !9
  %8292 = icmp ule i32 6, %8291
  br i1 %8292, label %8293, label %8519

8293:                                             ; preds = %8290
  %8294 = load double, ptr %222, align 8, !tbaa !11
  %8295 = load double, ptr %223, align 8, !tbaa !11
  %8296 = fcmp olt double %8294, %8295
  br i1 %8296, label %8297, label %8519

8297:                                             ; preds = %8293
  %8298 = load i32, ptr %8, align 4, !tbaa !9
  %8299 = icmp ule i32 15, %8298
  br i1 %8299, label %8300, label %8342

8300:                                             ; preds = %8297
  call void @llvm.lifetime.start.p0(i64 8, ptr %224) #3
  %8301 = load double, ptr %222, align 8, !tbaa !11
  %8302 = fcmp olt double 0.000000e+00, %8301
  br i1 %8302, label %8303, label %8305

8303:                                             ; preds = %8300
  %8304 = load double, ptr %222, align 8, !tbaa !11
  br label %8306

8305:                                             ; preds = %8300
  br label %8306

8306:                                             ; preds = %8305, %8303
  %8307 = phi double [ %8304, %8303 ], [ 0.000000e+00, %8305 ]
  store double %8307, ptr %224, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %225) #3
  %8308 = load double, ptr %223, align 8, !tbaa !11
  %8309 = fcmp olt double 0.000000e+00, %8308
  br i1 %8309, label %8310, label %8312

8310:                                             ; preds = %8306
  %8311 = load double, ptr %223, align 8, !tbaa !11
  br label %8313

8312:                                             ; preds = %8306
  br label %8313

8313:                                             ; preds = %8312, %8310
  %8314 = phi double [ %8311, %8310 ], [ 0.000000e+00, %8312 ]
  store double %8314, ptr %225, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %226) #3
  %8315 = load double, ptr %224, align 8, !tbaa !11
  %8316 = load double, ptr %225, align 8, !tbaa !11
  %8317 = fcmp olt double %8315, %8316
  br i1 %8317, label %8318, label %8326

8318:                                             ; preds = %8313
  %8319 = load double, ptr %223, align 8, !tbaa !11
  %8320 = load double, ptr %222, align 8, !tbaa !11
  %8321 = fsub double %8319, %8320
  %8322 = load double, ptr %225, align 8, !tbaa !11
  %8323 = load double, ptr %224, align 8, !tbaa !11
  %8324 = fsub double %8322, %8323
  %8325 = fdiv double %8321, %8324
  br label %8327

8326:                                             ; preds = %8313
  br label %8327

8327:                                             ; preds = %8326, %8318
  %8328 = phi double [ %8325, %8318 ], [ 1.000000e+00, %8326 ]
  store double %8328, ptr %226, align 8, !tbaa !11
  %8329 = load double, ptr %226, align 8, !tbaa !11
  %8330 = load float, ptr %221, align 4, !tbaa !18
  %8331 = fcmp olt float 0.000000e+00, %8330
  br i1 %8331, label %8332, label %8334

8332:                                             ; preds = %8327
  %8333 = load float, ptr %221, align 4, !tbaa !18
  br label %8335

8334:                                             ; preds = %8327
  br label %8335

8335:                                             ; preds = %8334, %8332
  %8336 = phi float [ %8333, %8332 ], [ 0.000000e+00, %8334 ]
  %8337 = fpext float %8336 to double
  %8338 = fmul double %8329, %8337
  %8339 = fptrunc double %8338 to float
  store float %8339, ptr %221, align 4, !tbaa !18
  %8340 = load double, ptr %224, align 8, !tbaa !11
  store double %8340, ptr %222, align 8, !tbaa !11
  %8341 = load double, ptr %225, align 8, !tbaa !11
  store double %8341, ptr %223, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %224) #3
  br label %8398

8342:                                             ; preds = %8297
  %8343 = load i32, ptr %8, align 4, !tbaa !9
  %8344 = icmp ugt i32 6, %8343
  br i1 %8344, label %8373, label %8345

8345:                                             ; preds = %8342
  %8346 = load i32, ptr %8, align 4, !tbaa !9
  %8347 = icmp ugt i32 15, %8346
  br i1 %8347, label %8348, label %8359

8348:                                             ; preds = %8345
  %8349 = load i32, ptr %9, align 4, !tbaa !9
  %8350 = icmp ugt i32 15, %8349
  br i1 %8350, label %8351, label %8356

8351:                                             ; preds = %8348
  %8352 = load i32, ptr %9, align 4, !tbaa !9
  %8353 = load i32, ptr %8, align 4, !tbaa !9
  %8354 = icmp ugt i32 %8352, %8353
  %8355 = zext i1 %8354 to i32
  br label %8357

8356:                                             ; preds = %8348
  br label %8357

8357:                                             ; preds = %8356, %8351
  %8358 = phi i32 [ %8355, %8351 ], [ 0, %8356 ]
  br label %8370

8359:                                             ; preds = %8345
  %8360 = load i32, ptr %9, align 4, !tbaa !9
  %8361 = icmp ugt i32 15, %8360
  br i1 %8361, label %8362, label %8363

8362:                                             ; preds = %8359
  br label %8368

8363:                                             ; preds = %8359
  %8364 = load i32, ptr %9, align 4, !tbaa !9
  %8365 = load i32, ptr %8, align 4, !tbaa !9
  %8366 = icmp ugt i32 %8364, %8365
  %8367 = zext i1 %8366 to i32
  br label %8368

8368:                                             ; preds = %8363, %8362
  %8369 = phi i32 [ 0, %8362 ], [ %8367, %8363 ]
  br label %8370

8370:                                             ; preds = %8368, %8357
  %8371 = phi i32 [ %8358, %8357 ], [ %8369, %8368 ]
  %8372 = icmp ne i32 %8371, 0
  br label %8373

8373:                                             ; preds = %8370, %8342
  %8374 = phi i1 [ true, %8342 ], [ %8372, %8370 ]
  %8375 = zext i1 %8374 to i32
  %8376 = icmp eq i32 0, %8375
  br i1 %8376, label %8377, label %8397

8377:                                             ; preds = %8373
  %8378 = load double, ptr %222, align 8, !tbaa !11
  %8379 = fcmp ogt double 0.000000e+00, %8378
  br i1 %8379, label %8380, label %8397

8380:                                             ; preds = %8377
  %8381 = load double, ptr %223, align 8, !tbaa !11
  %8382 = fcmp olt double 0.000000e+00, %8381
  br i1 %8382, label %8383, label %8397

8383:                                             ; preds = %8380
  %8384 = load double, ptr %222, align 8, !tbaa !11
  %8385 = fneg double %8384
  %8386 = load double, ptr %223, align 8, !tbaa !11
  %8387 = fcmp olt double %8385, %8386
  br i1 %8387, label %8388, label %8390

8388:                                             ; preds = %8383
  %8389 = load double, ptr %223, align 8, !tbaa !11
  br label %8393

8390:                                             ; preds = %8383
  %8391 = load double, ptr %222, align 8, !tbaa !11
  %8392 = fneg double %8391
  br label %8393

8393:                                             ; preds = %8390, %8388
  %8394 = phi double [ %8389, %8388 ], [ %8392, %8390 ]
  store double %8394, ptr %223, align 8, !tbaa !11
  %8395 = load double, ptr %223, align 8, !tbaa !11
  %8396 = fneg double %8395
  store double %8396, ptr %222, align 8, !tbaa !11
  br label %8397

8397:                                             ; preds = %8393, %8380, %8377, %8373
  br label %8398

8398:                                             ; preds = %8397, %8335
  call void @llvm.lifetime.start.p0(i64 8, ptr %227) #3
  %8399 = load double, ptr %222, align 8, !tbaa !11
  %8400 = fcmp ole double 0.000000e+00, %8399
  %8401 = zext i1 %8400 to i64
  %8402 = select i1 %8400, double 0.000000e+00, double -1.000000e+00
  store double %8402, ptr %227, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %228) #3
  %8403 = load double, ptr %223, align 8, !tbaa !11
  %8404 = fcmp ole double 0.000000e+00, %8403
  %8405 = zext i1 %8404 to i64
  %8406 = select i1 %8404, double 1.000000e+00, double 0.000000e+00
  store double %8406, ptr %228, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %229) #3
  %8407 = load float, ptr %221, align 4, !tbaa !18
  %8408 = fpext float %8407 to double
  %8409 = load double, ptr %222, align 8, !tbaa !11
  %8410 = fsub double %8408, %8409
  %8411 = load double, ptr %228, align 8, !tbaa !11
  %8412 = load double, ptr %227, align 8, !tbaa !11
  %8413 = fsub double %8411, %8412
  %8414 = fmul double %8410, %8413
  %8415 = load double, ptr %223, align 8, !tbaa !11
  %8416 = load double, ptr %222, align 8, !tbaa !11
  %8417 = fsub double %8415, %8416
  %8418 = fdiv double %8414, %8417
  %8419 = load double, ptr %227, align 8, !tbaa !11
  %8420 = fadd double %8418, %8419
  store double %8420, ptr %229, align 8, !tbaa !11
  %8421 = load double, ptr %227, align 8, !tbaa !11
  %8422 = load double, ptr %229, align 8, !tbaa !11
  %8423 = fcmp ole double 0.000000e+00, %8422
  br i1 %8423, label %8424, label %8427

8424:                                             ; preds = %8398
  %8425 = load double, ptr %229, align 8, !tbaa !11
  %8426 = fadd double %8425, 0.000000e+00
  br label %8430

8427:                                             ; preds = %8398
  %8428 = load double, ptr %229, align 8, !tbaa !11
  %8429 = fsub double %8428, 0.000000e+00
  br label %8430

8430:                                             ; preds = %8427, %8424
  %8431 = phi double [ %8426, %8424 ], [ %8429, %8427 ]
  %8432 = fcmp olt double %8421, %8431
  br i1 %8432, label %8433, label %8487

8433:                                             ; preds = %8430
  %8434 = load double, ptr %229, align 8, !tbaa !11
  %8435 = fcmp ole double 0.000000e+00, %8434
  br i1 %8435, label %8436, label %8439

8436:                                             ; preds = %8433
  %8437 = load double, ptr %229, align 8, !tbaa !11
  %8438 = fadd double %8437, 0.000000e+00
  br label %8442

8439:                                             ; preds = %8433
  %8440 = load double, ptr %229, align 8, !tbaa !11
  %8441 = fsub double %8440, 0.000000e+00
  br label %8442

8442:                                             ; preds = %8439, %8436
  %8443 = phi double [ %8438, %8436 ], [ %8441, %8439 ]
  %8444 = load double, ptr %228, align 8, !tbaa !11
  %8445 = fcmp ole double %8443, %8444
  br i1 %8445, label %8446, label %8457

8446:                                             ; preds = %8442
  %8447 = load double, ptr %229, align 8, !tbaa !11
  %8448 = fcmp ole double 0.000000e+00, %8447
  br i1 %8448, label %8449, label %8452

8449:                                             ; preds = %8446
  %8450 = load double, ptr %229, align 8, !tbaa !11
  %8451 = fadd double %8450, 0.000000e+00
  br label %8455

8452:                                             ; preds = %8446
  %8453 = load double, ptr %229, align 8, !tbaa !11
  %8454 = fsub double %8453, 0.000000e+00
  br label %8455

8455:                                             ; preds = %8452, %8449
  %8456 = phi double [ %8451, %8449 ], [ %8454, %8452 ]
  br label %8485

8457:                                             ; preds = %8442
  %8458 = load double, ptr %229, align 8, !tbaa !11
  %8459 = fcmp ole double 0.000000e+00, %8458
  br i1 %8459, label %8460, label %8463

8460:                                             ; preds = %8457
  %8461 = load double, ptr %229, align 8, !tbaa !11
  %8462 = fadd double %8461, 0.000000e+00
  br label %8466

8463:                                             ; preds = %8457
  %8464 = load double, ptr %229, align 8, !tbaa !11
  %8465 = fsub double %8464, 0.000000e+00
  br label %8466

8466:                                             ; preds = %8463, %8460
  %8467 = phi double [ %8462, %8460 ], [ %8465, %8463 ]
  %8468 = load double, ptr %228, align 8, !tbaa !11
  %8469 = fcmp olt double %8467, %8468
  br i1 %8469, label %8470, label %8481

8470:                                             ; preds = %8466
  %8471 = load double, ptr %229, align 8, !tbaa !11
  %8472 = fcmp ole double 0.000000e+00, %8471
  br i1 %8472, label %8473, label %8476

8473:                                             ; preds = %8470
  %8474 = load double, ptr %229, align 8, !tbaa !11
  %8475 = fadd double %8474, 0.000000e+00
  br label %8479

8476:                                             ; preds = %8470
  %8477 = load double, ptr %229, align 8, !tbaa !11
  %8478 = fsub double %8477, 0.000000e+00
  br label %8479

8479:                                             ; preds = %8476, %8473
  %8480 = phi double [ %8475, %8473 ], [ %8478, %8476 ]
  br label %8483

8481:                                             ; preds = %8466
  %8482 = load double, ptr %228, align 8, !tbaa !11
  br label %8483

8483:                                             ; preds = %8481, %8479
  %8484 = phi double [ %8480, %8479 ], [ %8482, %8481 ]
  br label %8485

8485:                                             ; preds = %8483, %8455
  %8486 = phi double [ %8456, %8455 ], [ %8484, %8483 ]
  br label %8515

8487:                                             ; preds = %8430
  %8488 = load double, ptr %227, align 8, !tbaa !11
  %8489 = load double, ptr %229, align 8, !tbaa !11
  %8490 = fcmp ole double 0.000000e+00, %8489
  br i1 %8490, label %8491, label %8494

8491:                                             ; preds = %8487
  %8492 = load double, ptr %229, align 8, !tbaa !11
  %8493 = fadd double %8492, 0.000000e+00
  br label %8497

8494:                                             ; preds = %8487
  %8495 = load double, ptr %229, align 8, !tbaa !11
  %8496 = fsub double %8495, 0.000000e+00
  br label %8497

8497:                                             ; preds = %8494, %8491
  %8498 = phi double [ %8493, %8491 ], [ %8496, %8494 ]
  %8499 = fcmp olt double %8488, %8498
  br i1 %8499, label %8500, label %8511

8500:                                             ; preds = %8497
  %8501 = load double, ptr %229, align 8, !tbaa !11
  %8502 = fcmp ole double 0.000000e+00, %8501
  br i1 %8502, label %8503, label %8506

8503:                                             ; preds = %8500
  %8504 = load double, ptr %229, align 8, !tbaa !11
  %8505 = fadd double %8504, 0.000000e+00
  br label %8509

8506:                                             ; preds = %8500
  %8507 = load double, ptr %229, align 8, !tbaa !11
  %8508 = fsub double %8507, 0.000000e+00
  br label %8509

8509:                                             ; preds = %8506, %8503
  %8510 = phi double [ %8505, %8503 ], [ %8508, %8506 ]
  br label %8513

8511:                                             ; preds = %8497
  %8512 = load double, ptr %227, align 8, !tbaa !11
  br label %8513

8513:                                             ; preds = %8511, %8509
  %8514 = phi double [ %8510, %8509 ], [ %8512, %8511 ]
  br label %8515

8515:                                             ; preds = %8513, %8485
  %8516 = phi double [ %8486, %8485 ], [ %8514, %8513 ]
  %8517 = fptrunc double %8516 to float
  %8518 = load ptr, ptr %7, align 8, !tbaa !5
  store float %8517, ptr %8518, align 4, !tbaa !18
  call void @llvm.lifetime.end.p0(i64 8, ptr %229) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %228) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %227) #3
  br label %8661

8519:                                             ; preds = %8293, %8290
  %8520 = load i32, ptr %8, align 4, !tbaa !9
  %8521 = icmp ugt i32 6, %8520
  br i1 %8521, label %8550, label %8522

8522:                                             ; preds = %8519
  %8523 = load i32, ptr %8, align 4, !tbaa !9
  %8524 = icmp ugt i32 15, %8523
  br i1 %8524, label %8525, label %8536

8525:                                             ; preds = %8522
  %8526 = load i32, ptr %9, align 4, !tbaa !9
  %8527 = icmp ugt i32 15, %8526
  br i1 %8527, label %8528, label %8533

8528:                                             ; preds = %8525
  %8529 = load i32, ptr %9, align 4, !tbaa !9
  %8530 = load i32, ptr %8, align 4, !tbaa !9
  %8531 = icmp ugt i32 %8529, %8530
  %8532 = zext i1 %8531 to i32
  br label %8534

8533:                                             ; preds = %8525
  br label %8534

8534:                                             ; preds = %8533, %8528
  %8535 = phi i32 [ %8532, %8528 ], [ 0, %8533 ]
  br label %8547

8536:                                             ; preds = %8522
  %8537 = load i32, ptr %9, align 4, !tbaa !9
  %8538 = icmp ugt i32 15, %8537
  br i1 %8538, label %8539, label %8540

8539:                                             ; preds = %8536
  br label %8545

8540:                                             ; preds = %8536
  %8541 = load i32, ptr %9, align 4, !tbaa !9
  %8542 = load i32, ptr %8, align 4, !tbaa !9
  %8543 = icmp ugt i32 %8541, %8542
  %8544 = zext i1 %8543 to i32
  br label %8545

8545:                                             ; preds = %8540, %8539
  %8546 = phi i32 [ 0, %8539 ], [ %8544, %8540 ]
  br label %8547

8547:                                             ; preds = %8545, %8534
  %8548 = phi i32 [ %8535, %8534 ], [ %8546, %8545 ]
  %8549 = icmp ne i32 %8548, 0
  br label %8550

8550:                                             ; preds = %8547, %8519
  %8551 = phi i1 [ true, %8519 ], [ %8549, %8547 ]
  %8552 = zext i1 %8551 to i32
  %8553 = icmp eq i32 0, %8552
  br i1 %8553, label %8554, label %8645

8554:                                             ; preds = %8550
  %8555 = load float, ptr %221, align 4, !tbaa !18
  %8556 = fcmp ole float 0.000000e+00, %8555
  br i1 %8556, label %8557, label %8599

8557:                                             ; preds = %8554
  %8558 = load float, ptr %221, align 4, !tbaa !18
  %8559 = fpext float %8558 to double
  %8560 = fadd double %8559, 0.000000e+00
  %8561 = fcmp olt double -1.000000e+00, %8560
  br i1 %8561, label %8562, label %8585

8562:                                             ; preds = %8557
  %8563 = load float, ptr %221, align 4, !tbaa !18
  %8564 = fpext float %8563 to double
  %8565 = fadd double %8564, 0.000000e+00
  %8566 = fcmp ole double %8565, 1.000000e+00
  br i1 %8566, label %8567, label %8571

8567:                                             ; preds = %8562
  %8568 = load float, ptr %221, align 4, !tbaa !18
  %8569 = fpext float %8568 to double
  %8570 = fadd double %8569, 0.000000e+00
  br label %8583

8571:                                             ; preds = %8562
  %8572 = load float, ptr %221, align 4, !tbaa !18
  %8573 = fpext float %8572 to double
  %8574 = fadd double %8573, 0.000000e+00
  %8575 = fcmp olt double %8574, 1.000000e+00
  br i1 %8575, label %8576, label %8580

8576:                                             ; preds = %8571
  %8577 = load float, ptr %221, align 4, !tbaa !18
  %8578 = fpext float %8577 to double
  %8579 = fadd double %8578, 0.000000e+00
  br label %8581

8580:                                             ; preds = %8571
  br label %8581

8581:                                             ; preds = %8580, %8576
  %8582 = phi double [ %8579, %8576 ], [ 1.000000e+00, %8580 ]
  br label %8583

8583:                                             ; preds = %8581, %8567
  %8584 = phi double [ %8570, %8567 ], [ %8582, %8581 ]
  br label %8597

8585:                                             ; preds = %8557
  %8586 = load float, ptr %221, align 4, !tbaa !18
  %8587 = fpext float %8586 to double
  %8588 = fadd double %8587, 0.000000e+00
  %8589 = fcmp olt double -1.000000e+00, %8588
  br i1 %8589, label %8590, label %8594

8590:                                             ; preds = %8585
  %8591 = load float, ptr %221, align 4, !tbaa !18
  %8592 = fpext float %8591 to double
  %8593 = fadd double %8592, 0.000000e+00
  br label %8595

8594:                                             ; preds = %8585
  br label %8595

8595:                                             ; preds = %8594, %8590
  %8596 = phi double [ %8593, %8590 ], [ -1.000000e+00, %8594 ]
  br label %8597

8597:                                             ; preds = %8595, %8583
  %8598 = phi double [ %8584, %8583 ], [ %8596, %8595 ]
  br label %8641

8599:                                             ; preds = %8554
  %8600 = load float, ptr %221, align 4, !tbaa !18
  %8601 = fpext float %8600 to double
  %8602 = fsub double %8601, 0.000000e+00
  %8603 = fcmp olt double -1.000000e+00, %8602
  br i1 %8603, label %8604, label %8627

8604:                                             ; preds = %8599
  %8605 = load float, ptr %221, align 4, !tbaa !18
  %8606 = fpext float %8605 to double
  %8607 = fsub double %8606, 0.000000e+00
  %8608 = fcmp ole double %8607, 1.000000e+00
  br i1 %8608, label %8609, label %8613

8609:                                             ; preds = %8604
  %8610 = load float, ptr %221, align 4, !tbaa !18
  %8611 = fpext float %8610 to double
  %8612 = fsub double %8611, 0.000000e+00
  br label %8625

8613:                                             ; preds = %8604
  %8614 = load float, ptr %221, align 4, !tbaa !18
  %8615 = fpext float %8614 to double
  %8616 = fsub double %8615, 0.000000e+00
  %8617 = fcmp olt double %8616, 1.000000e+00
  br i1 %8617, label %8618, label %8622

8618:                                             ; preds = %8613
  %8619 = load float, ptr %221, align 4, !tbaa !18
  %8620 = fpext float %8619 to double
  %8621 = fsub double %8620, 0.000000e+00
  br label %8623

8622:                                             ; preds = %8613
  br label %8623

8623:                                             ; preds = %8622, %8618
  %8624 = phi double [ %8621, %8618 ], [ 1.000000e+00, %8622 ]
  br label %8625

8625:                                             ; preds = %8623, %8609
  %8626 = phi double [ %8612, %8609 ], [ %8624, %8623 ]
  br label %8639

8627:                                             ; preds = %8599
  %8628 = load float, ptr %221, align 4, !tbaa !18
  %8629 = fpext float %8628 to double
  %8630 = fsub double %8629, 0.000000e+00
  %8631 = fcmp olt double -1.000000e+00, %8630
  br i1 %8631, label %8632, label %8636

8632:                                             ; preds = %8627
  %8633 = load float, ptr %221, align 4, !tbaa !18
  %8634 = fpext float %8633 to double
  %8635 = fsub double %8634, 0.000000e+00
  br label %8637

8636:                                             ; preds = %8627
  br label %8637

8637:                                             ; preds = %8636, %8632
  %8638 = phi double [ %8635, %8632 ], [ -1.000000e+00, %8636 ]
  br label %8639

8639:                                             ; preds = %8637, %8625
  %8640 = phi double [ %8626, %8625 ], [ %8638, %8637 ]
  br label %8641

8641:                                             ; preds = %8639, %8597
  %8642 = phi double [ %8598, %8597 ], [ %8640, %8639 ]
  %8643 = fptrunc double %8642 to float
  %8644 = load ptr, ptr %7, align 8, !tbaa !5
  store float %8643, ptr %8644, align 4, !tbaa !18
  br label %8660

8645:                                             ; preds = %8550
  %8646 = load float, ptr %221, align 4, !tbaa !18
  %8647 = fcmp ole float 0.000000e+00, %8646
  br i1 %8647, label %8648, label %8652

8648:                                             ; preds = %8645
  %8649 = load float, ptr %221, align 4, !tbaa !18
  %8650 = fpext float %8649 to double
  %8651 = fadd double %8650, 0.000000e+00
  br label %8656

8652:                                             ; preds = %8645
  %8653 = load float, ptr %221, align 4, !tbaa !18
  %8654 = fpext float %8653 to double
  %8655 = fsub double %8654, 0.000000e+00
  br label %8656

8656:                                             ; preds = %8652, %8648
  %8657 = phi double [ %8651, %8648 ], [ %8655, %8652 ]
  %8658 = fptrunc double %8657 to float
  %8659 = load ptr, ptr %7, align 8, !tbaa !5
  store float %8658, ptr %8659, align 4, !tbaa !18
  br label %8660

8660:                                             ; preds = %8656, %8641
  br label %8661

8661:                                             ; preds = %8660, %8515
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %223) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %222) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %220) #3
  br label %8662

8662:                                             ; preds = %8661
  br label %8663

8663:                                             ; preds = %8662
  br label %8668

8664:                                             ; preds = %5043
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 470, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

8665:                                             ; preds = %5043
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 470, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

8666:                                             ; preds = %5043
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 470, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

8667:                                             ; preds = %5043
  store i32 1, ptr %13, align 4, !tbaa !9
  br label %8668

8668:                                             ; preds = %8667, %8663, %8257, %7872, %7512, %7152, %6805, %6458, %6098, %5738, %5391
  br label %8669

8669:                                             ; preds = %8668
  br label %8670

8670:                                             ; preds = %8669
  br label %48657

8671:                                             ; preds = %6
  br label %8672

8672:                                             ; preds = %8671
  %8673 = load ptr, ptr %7, align 8, !tbaa !5
  %8674 = icmp ne ptr null, %8673
  br i1 %8674, label %8675, label %8679

8675:                                             ; preds = %8672
  %8676 = load ptr, ptr %10, align 8, !tbaa !5
  %8677 = icmp ne ptr null, %8676
  br i1 %8677, label %8678, label %8679

8678:                                             ; preds = %8675
  br label %8680

8679:                                             ; preds = %8675, %8672
  call void @__assert_fail(ptr noundef @.str.41, ptr noundef @.str.24, i32 noundef 473, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

8680:                                             ; preds = %8678
  %8681 = load i32, ptr %9, align 4, !tbaa !9
  switch i32 %8681, label %12302 [
    i32 6, label %8682
    i32 8, label %9029
    i32 10, label %9376
    i32 12, label %9735
    i32 15, label %10095
    i32 16, label %10442
    i32 17, label %10789
    i32 18, label %11148
    i32 0, label %11508
    i32 1, label %11893
    i32 3, label %12299
    i32 2, label %12300
    i32 4, label %12301
  ]

8682:                                             ; preds = %8680
  br label %8683

8683:                                             ; preds = %8682
  call void @llvm.lifetime.start.p0(i64 8, ptr %230) #3
  store double 5.000000e-01, ptr %230, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %231) #3
  %8684 = load ptr, ptr %10, align 8, !tbaa !5
  %8685 = load i64, ptr %8684, align 8, !tbaa !13
  store i64 %8685, ptr %231, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %232) #3
  store double 0.000000e+00, ptr %232, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %233) #3
  store double 0.000000e+00, ptr %233, align 8, !tbaa !11
  %8686 = load ptr, ptr %11, align 8, !tbaa !5
  %8687 = icmp ne ptr null, %8686
  br i1 %8687, label %8688, label %8710

8688:                                             ; preds = %8683
  %8689 = load ptr, ptr %12, align 8, !tbaa !5
  %8690 = icmp ne ptr null, %8689
  br i1 %8690, label %8691, label %8702

8691:                                             ; preds = %8688
  %8692 = load ptr, ptr %11, align 8, !tbaa !5
  %8693 = load i64, ptr %8692, align 8, !tbaa !13
  %8694 = load i64, ptr %231, align 8, !tbaa !13
  %8695 = icmp sle i64 %8693, %8694
  br i1 %8695, label %8696, label %8702

8696:                                             ; preds = %8691
  %8697 = load i64, ptr %231, align 8, !tbaa !13
  %8698 = load ptr, ptr %12, align 8, !tbaa !5
  %8699 = load i64, ptr %8698, align 8, !tbaa !13
  %8700 = icmp sle i64 %8697, %8699
  br i1 %8700, label %8701, label %8702

8701:                                             ; preds = %8696
  br label %8703

8702:                                             ; preds = %8696, %8691, %8688
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.24, i32 noundef 473, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

8703:                                             ; preds = %8701
  %8704 = load ptr, ptr %11, align 8, !tbaa !5
  %8705 = load i64, ptr %8704, align 8, !tbaa !13
  %8706 = sitofp i64 %8705 to double
  store double %8706, ptr %232, align 8, !tbaa !11
  %8707 = load ptr, ptr %12, align 8, !tbaa !5
  %8708 = load i64, ptr %8707, align 8, !tbaa !13
  %8709 = sitofp i64 %8708 to double
  store double %8709, ptr %233, align 8, !tbaa !11
  br label %8710

8710:                                             ; preds = %8703, %8683
  %8711 = load i32, ptr %8, align 4, !tbaa !9
  %8712 = icmp ule i32 6, %8711
  br i1 %8712, label %8713, label %8949

8713:                                             ; preds = %8710
  %8714 = load double, ptr %232, align 8, !tbaa !11
  %8715 = load double, ptr %233, align 8, !tbaa !11
  %8716 = fcmp olt double %8714, %8715
  br i1 %8716, label %8717, label %8949

8717:                                             ; preds = %8713
  %8718 = load i32, ptr %8, align 4, !tbaa !9
  %8719 = icmp ule i32 15, %8718
  br i1 %8719, label %8720, label %8772

8720:                                             ; preds = %8717
  call void @llvm.lifetime.start.p0(i64 8, ptr %234) #3
  %8721 = load double, ptr %232, align 8, !tbaa !11
  %8722 = fcmp olt double 0.000000e+00, %8721
  br i1 %8722, label %8723, label %8725

8723:                                             ; preds = %8720
  %8724 = load double, ptr %232, align 8, !tbaa !11
  br label %8726

8725:                                             ; preds = %8720
  br label %8726

8726:                                             ; preds = %8725, %8723
  %8727 = phi double [ %8724, %8723 ], [ 0.000000e+00, %8725 ]
  store double %8727, ptr %234, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %235) #3
  %8728 = load double, ptr %233, align 8, !tbaa !11
  %8729 = fcmp olt double 0.000000e+00, %8728
  br i1 %8729, label %8730, label %8732

8730:                                             ; preds = %8726
  %8731 = load double, ptr %233, align 8, !tbaa !11
  br label %8733

8732:                                             ; preds = %8726
  br label %8733

8733:                                             ; preds = %8732, %8730
  %8734 = phi double [ %8731, %8730 ], [ 0.000000e+00, %8732 ]
  store double %8734, ptr %235, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %236) #3
  %8735 = load double, ptr %234, align 8, !tbaa !11
  %8736 = load double, ptr %235, align 8, !tbaa !11
  %8737 = fcmp olt double %8735, %8736
  br i1 %8737, label %8738, label %8746

8738:                                             ; preds = %8733
  %8739 = load double, ptr %233, align 8, !tbaa !11
  %8740 = load double, ptr %232, align 8, !tbaa !11
  %8741 = fsub double %8739, %8740
  %8742 = load double, ptr %235, align 8, !tbaa !11
  %8743 = load double, ptr %234, align 8, !tbaa !11
  %8744 = fsub double %8742, %8743
  %8745 = fdiv double %8741, %8744
  br label %8747

8746:                                             ; preds = %8733
  br label %8747

8747:                                             ; preds = %8746, %8738
  %8748 = phi double [ %8745, %8738 ], [ 1.000000e+00, %8746 ]
  store double %8748, ptr %236, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %237) #3
  %8749 = load double, ptr %236, align 8, !tbaa !11
  %8750 = load i64, ptr %231, align 8, !tbaa !13
  %8751 = icmp slt i64 0, %8750
  br i1 %8751, label %8752, label %8754

8752:                                             ; preds = %8747
  %8753 = load i64, ptr %231, align 8, !tbaa !13
  br label %8755

8754:                                             ; preds = %8747
  br label %8755

8755:                                             ; preds = %8754, %8752
  %8756 = phi i64 [ %8753, %8752 ], [ 0, %8754 ]
  %8757 = sitofp i64 %8756 to double
  %8758 = fmul double %8749, %8757
  store double %8758, ptr %237, align 8, !tbaa !11
  %8759 = load double, ptr %237, align 8, !tbaa !11
  %8760 = fcmp ole double 0.000000e+00, %8759
  br i1 %8760, label %8761, label %8764

8761:                                             ; preds = %8755
  %8762 = load double, ptr %237, align 8, !tbaa !11
  %8763 = fadd double %8762, 5.000000e-01
  br label %8767

8764:                                             ; preds = %8755
  %8765 = load double, ptr %237, align 8, !tbaa !11
  %8766 = fsub double %8765, 5.000000e-01
  br label %8767

8767:                                             ; preds = %8764, %8761
  %8768 = phi double [ %8763, %8761 ], [ %8766, %8764 ]
  %8769 = fptosi double %8768 to i64
  store i64 %8769, ptr %231, align 8, !tbaa !13
  %8770 = load double, ptr %234, align 8, !tbaa !11
  store double %8770, ptr %232, align 8, !tbaa !11
  %8771 = load double, ptr %235, align 8, !tbaa !11
  store double %8771, ptr %233, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %236) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %235) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #3
  br label %8828

8772:                                             ; preds = %8717
  %8773 = load i32, ptr %8, align 4, !tbaa !9
  %8774 = icmp ugt i32 6, %8773
  br i1 %8774, label %8803, label %8775

8775:                                             ; preds = %8772
  %8776 = load i32, ptr %8, align 4, !tbaa !9
  %8777 = icmp ugt i32 15, %8776
  br i1 %8777, label %8778, label %8789

8778:                                             ; preds = %8775
  %8779 = load i32, ptr %9, align 4, !tbaa !9
  %8780 = icmp ugt i32 15, %8779
  br i1 %8780, label %8781, label %8786

8781:                                             ; preds = %8778
  %8782 = load i32, ptr %9, align 4, !tbaa !9
  %8783 = load i32, ptr %8, align 4, !tbaa !9
  %8784 = icmp ugt i32 %8782, %8783
  %8785 = zext i1 %8784 to i32
  br label %8787

8786:                                             ; preds = %8778
  br label %8787

8787:                                             ; preds = %8786, %8781
  %8788 = phi i32 [ %8785, %8781 ], [ 0, %8786 ]
  br label %8800

8789:                                             ; preds = %8775
  %8790 = load i32, ptr %9, align 4, !tbaa !9
  %8791 = icmp ugt i32 15, %8790
  br i1 %8791, label %8792, label %8793

8792:                                             ; preds = %8789
  br label %8798

8793:                                             ; preds = %8789
  %8794 = load i32, ptr %9, align 4, !tbaa !9
  %8795 = load i32, ptr %8, align 4, !tbaa !9
  %8796 = icmp ugt i32 %8794, %8795
  %8797 = zext i1 %8796 to i32
  br label %8798

8798:                                             ; preds = %8793, %8792
  %8799 = phi i32 [ 0, %8792 ], [ %8797, %8793 ]
  br label %8800

8800:                                             ; preds = %8798, %8787
  %8801 = phi i32 [ %8788, %8787 ], [ %8799, %8798 ]
  %8802 = icmp ne i32 %8801, 0
  br label %8803

8803:                                             ; preds = %8800, %8772
  %8804 = phi i1 [ true, %8772 ], [ %8802, %8800 ]
  %8805 = zext i1 %8804 to i32
  %8806 = icmp eq i32 0, %8805
  br i1 %8806, label %8807, label %8827

8807:                                             ; preds = %8803
  %8808 = load double, ptr %232, align 8, !tbaa !11
  %8809 = fcmp ogt double 0.000000e+00, %8808
  br i1 %8809, label %8810, label %8827

8810:                                             ; preds = %8807
  %8811 = load double, ptr %233, align 8, !tbaa !11
  %8812 = fcmp olt double 0.000000e+00, %8811
  br i1 %8812, label %8813, label %8827

8813:                                             ; preds = %8810
  %8814 = load double, ptr %232, align 8, !tbaa !11
  %8815 = fneg double %8814
  %8816 = load double, ptr %233, align 8, !tbaa !11
  %8817 = fcmp olt double %8815, %8816
  br i1 %8817, label %8818, label %8820

8818:                                             ; preds = %8813
  %8819 = load double, ptr %233, align 8, !tbaa !11
  br label %8823

8820:                                             ; preds = %8813
  %8821 = load double, ptr %232, align 8, !tbaa !11
  %8822 = fneg double %8821
  br label %8823

8823:                                             ; preds = %8820, %8818
  %8824 = phi double [ %8819, %8818 ], [ %8822, %8820 ]
  store double %8824, ptr %233, align 8, !tbaa !11
  %8825 = load double, ptr %233, align 8, !tbaa !11
  %8826 = fneg double %8825
  store double %8826, ptr %232, align 8, !tbaa !11
  br label %8827

8827:                                             ; preds = %8823, %8810, %8807, %8803
  br label %8828

8828:                                             ; preds = %8827, %8767
  call void @llvm.lifetime.start.p0(i64 8, ptr %238) #3
  %8829 = load double, ptr %232, align 8, !tbaa !11
  %8830 = fcmp ole double 0.000000e+00, %8829
  %8831 = zext i1 %8830 to i64
  %8832 = select i1 %8830, double 0.000000e+00, double -1.000000e+00
  store double %8832, ptr %238, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %239) #3
  %8833 = load double, ptr %233, align 8, !tbaa !11
  %8834 = fcmp ole double 0.000000e+00, %8833
  %8835 = zext i1 %8834 to i64
  %8836 = select i1 %8834, double 1.000000e+00, double 0.000000e+00
  store double %8836, ptr %239, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %240) #3
  %8837 = load i64, ptr %231, align 8, !tbaa !13
  %8838 = sitofp i64 %8837 to double
  %8839 = load double, ptr %232, align 8, !tbaa !11
  %8840 = fsub double %8838, %8839
  %8841 = load double, ptr %239, align 8, !tbaa !11
  %8842 = load double, ptr %238, align 8, !tbaa !11
  %8843 = fsub double %8841, %8842
  %8844 = fmul double %8840, %8843
  %8845 = load double, ptr %233, align 8, !tbaa !11
  %8846 = load double, ptr %232, align 8, !tbaa !11
  %8847 = fsub double %8845, %8846
  %8848 = fdiv double %8844, %8847
  %8849 = load double, ptr %238, align 8, !tbaa !11
  %8850 = fadd double %8848, %8849
  store double %8850, ptr %240, align 8, !tbaa !11
  %8851 = load double, ptr %238, align 8, !tbaa !11
  %8852 = load double, ptr %240, align 8, !tbaa !11
  %8853 = fcmp ole double 0.000000e+00, %8852
  br i1 %8853, label %8854, label %8857

8854:                                             ; preds = %8828
  %8855 = load double, ptr %240, align 8, !tbaa !11
  %8856 = fadd double %8855, 5.000000e-01
  br label %8860

8857:                                             ; preds = %8828
  %8858 = load double, ptr %240, align 8, !tbaa !11
  %8859 = fsub double %8858, 5.000000e-01
  br label %8860

8860:                                             ; preds = %8857, %8854
  %8861 = phi double [ %8856, %8854 ], [ %8859, %8857 ]
  %8862 = fcmp olt double %8851, %8861
  br i1 %8862, label %8863, label %8917

8863:                                             ; preds = %8860
  %8864 = load double, ptr %240, align 8, !tbaa !11
  %8865 = fcmp ole double 0.000000e+00, %8864
  br i1 %8865, label %8866, label %8869

8866:                                             ; preds = %8863
  %8867 = load double, ptr %240, align 8, !tbaa !11
  %8868 = fadd double %8867, 5.000000e-01
  br label %8872

8869:                                             ; preds = %8863
  %8870 = load double, ptr %240, align 8, !tbaa !11
  %8871 = fsub double %8870, 5.000000e-01
  br label %8872

8872:                                             ; preds = %8869, %8866
  %8873 = phi double [ %8868, %8866 ], [ %8871, %8869 ]
  %8874 = load double, ptr %239, align 8, !tbaa !11
  %8875 = fcmp ole double %8873, %8874
  br i1 %8875, label %8876, label %8887

8876:                                             ; preds = %8872
  %8877 = load double, ptr %240, align 8, !tbaa !11
  %8878 = fcmp ole double 0.000000e+00, %8877
  br i1 %8878, label %8879, label %8882

8879:                                             ; preds = %8876
  %8880 = load double, ptr %240, align 8, !tbaa !11
  %8881 = fadd double %8880, 5.000000e-01
  br label %8885

8882:                                             ; preds = %8876
  %8883 = load double, ptr %240, align 8, !tbaa !11
  %8884 = fsub double %8883, 5.000000e-01
  br label %8885

8885:                                             ; preds = %8882, %8879
  %8886 = phi double [ %8881, %8879 ], [ %8884, %8882 ]
  br label %8915

8887:                                             ; preds = %8872
  %8888 = load double, ptr %240, align 8, !tbaa !11
  %8889 = fcmp ole double 0.000000e+00, %8888
  br i1 %8889, label %8890, label %8893

8890:                                             ; preds = %8887
  %8891 = load double, ptr %240, align 8, !tbaa !11
  %8892 = fadd double %8891, 5.000000e-01
  br label %8896

8893:                                             ; preds = %8887
  %8894 = load double, ptr %240, align 8, !tbaa !11
  %8895 = fsub double %8894, 5.000000e-01
  br label %8896

8896:                                             ; preds = %8893, %8890
  %8897 = phi double [ %8892, %8890 ], [ %8895, %8893 ]
  %8898 = load double, ptr %239, align 8, !tbaa !11
  %8899 = fcmp olt double %8897, %8898
  br i1 %8899, label %8900, label %8911

8900:                                             ; preds = %8896
  %8901 = load double, ptr %240, align 8, !tbaa !11
  %8902 = fcmp ole double 0.000000e+00, %8901
  br i1 %8902, label %8903, label %8906

8903:                                             ; preds = %8900
  %8904 = load double, ptr %240, align 8, !tbaa !11
  %8905 = fadd double %8904, 5.000000e-01
  br label %8909

8906:                                             ; preds = %8900
  %8907 = load double, ptr %240, align 8, !tbaa !11
  %8908 = fsub double %8907, 5.000000e-01
  br label %8909

8909:                                             ; preds = %8906, %8903
  %8910 = phi double [ %8905, %8903 ], [ %8908, %8906 ]
  br label %8913

8911:                                             ; preds = %8896
  %8912 = load double, ptr %239, align 8, !tbaa !11
  br label %8913

8913:                                             ; preds = %8911, %8909
  %8914 = phi double [ %8910, %8909 ], [ %8912, %8911 ]
  br label %8915

8915:                                             ; preds = %8913, %8885
  %8916 = phi double [ %8886, %8885 ], [ %8914, %8913 ]
  br label %8945

8917:                                             ; preds = %8860
  %8918 = load double, ptr %238, align 8, !tbaa !11
  %8919 = load double, ptr %240, align 8, !tbaa !11
  %8920 = fcmp ole double 0.000000e+00, %8919
  br i1 %8920, label %8921, label %8924

8921:                                             ; preds = %8917
  %8922 = load double, ptr %240, align 8, !tbaa !11
  %8923 = fadd double %8922, 5.000000e-01
  br label %8927

8924:                                             ; preds = %8917
  %8925 = load double, ptr %240, align 8, !tbaa !11
  %8926 = fsub double %8925, 5.000000e-01
  br label %8927

8927:                                             ; preds = %8924, %8921
  %8928 = phi double [ %8923, %8921 ], [ %8926, %8924 ]
  %8929 = fcmp olt double %8918, %8928
  br i1 %8929, label %8930, label %8941

8930:                                             ; preds = %8927
  %8931 = load double, ptr %240, align 8, !tbaa !11
  %8932 = fcmp ole double 0.000000e+00, %8931
  br i1 %8932, label %8933, label %8936

8933:                                             ; preds = %8930
  %8934 = load double, ptr %240, align 8, !tbaa !11
  %8935 = fadd double %8934, 5.000000e-01
  br label %8939

8936:                                             ; preds = %8930
  %8937 = load double, ptr %240, align 8, !tbaa !11
  %8938 = fsub double %8937, 5.000000e-01
  br label %8939

8939:                                             ; preds = %8936, %8933
  %8940 = phi double [ %8935, %8933 ], [ %8938, %8936 ]
  br label %8943

8941:                                             ; preds = %8927
  %8942 = load double, ptr %238, align 8, !tbaa !11
  br label %8943

8943:                                             ; preds = %8941, %8939
  %8944 = phi double [ %8940, %8939 ], [ %8942, %8941 ]
  br label %8945

8945:                                             ; preds = %8943, %8915
  %8946 = phi double [ %8916, %8915 ], [ %8944, %8943 ]
  %8947 = fptoui double %8946 to i16
  %8948 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %8947, ptr %8948, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %239) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %238) #3
  br label %9026

8949:                                             ; preds = %8713, %8710
  %8950 = load i32, ptr %8, align 4, !tbaa !9
  %8951 = icmp ugt i32 6, %8950
  br i1 %8951, label %8980, label %8952

8952:                                             ; preds = %8949
  %8953 = load i32, ptr %8, align 4, !tbaa !9
  %8954 = icmp ugt i32 15, %8953
  br i1 %8954, label %8955, label %8966

8955:                                             ; preds = %8952
  %8956 = load i32, ptr %9, align 4, !tbaa !9
  %8957 = icmp ugt i32 15, %8956
  br i1 %8957, label %8958, label %8963

8958:                                             ; preds = %8955
  %8959 = load i32, ptr %9, align 4, !tbaa !9
  %8960 = load i32, ptr %8, align 4, !tbaa !9
  %8961 = icmp ugt i32 %8959, %8960
  %8962 = zext i1 %8961 to i32
  br label %8964

8963:                                             ; preds = %8955
  br label %8964

8964:                                             ; preds = %8963, %8958
  %8965 = phi i32 [ %8962, %8958 ], [ 0, %8963 ]
  br label %8977

8966:                                             ; preds = %8952
  %8967 = load i32, ptr %9, align 4, !tbaa !9
  %8968 = icmp ugt i32 15, %8967
  br i1 %8968, label %8969, label %8970

8969:                                             ; preds = %8966
  br label %8975

8970:                                             ; preds = %8966
  %8971 = load i32, ptr %9, align 4, !tbaa !9
  %8972 = load i32, ptr %8, align 4, !tbaa !9
  %8973 = icmp ugt i32 %8971, %8972
  %8974 = zext i1 %8973 to i32
  br label %8975

8975:                                             ; preds = %8970, %8969
  %8976 = phi i32 [ 0, %8969 ], [ %8974, %8970 ]
  br label %8977

8977:                                             ; preds = %8975, %8964
  %8978 = phi i32 [ %8965, %8964 ], [ %8976, %8975 ]
  %8979 = icmp ne i32 %8978, 0
  br label %8980

8980:                                             ; preds = %8977, %8949
  %8981 = phi i1 [ true, %8949 ], [ %8979, %8977 ]
  %8982 = zext i1 %8981 to i32
  %8983 = icmp eq i32 0, %8982
  br i1 %8983, label %8984, label %9021

8984:                                             ; preds = %8980
  %8985 = load i64, ptr %231, align 8, !tbaa !13
  %8986 = sitofp i64 %8985 to double
  %8987 = fcmp olt double -1.000000e+00, %8986
  br i1 %8987, label %8988, label %9007

8988:                                             ; preds = %8984
  %8989 = load i64, ptr %231, align 8, !tbaa !13
  %8990 = sitofp i64 %8989 to double
  %8991 = fcmp ole double %8990, 1.000000e+00
  br i1 %8991, label %8992, label %8995

8992:                                             ; preds = %8988
  %8993 = load i64, ptr %231, align 8, !tbaa !13
  %8994 = sitofp i64 %8993 to double
  br label %9005

8995:                                             ; preds = %8988
  %8996 = load i64, ptr %231, align 8, !tbaa !13
  %8997 = sitofp i64 %8996 to double
  %8998 = fcmp olt double %8997, 1.000000e+00
  br i1 %8998, label %8999, label %9002

8999:                                             ; preds = %8995
  %9000 = load i64, ptr %231, align 8, !tbaa !13
  %9001 = sitofp i64 %9000 to double
  br label %9003

9002:                                             ; preds = %8995
  br label %9003

9003:                                             ; preds = %9002, %8999
  %9004 = phi double [ %9001, %8999 ], [ 1.000000e+00, %9002 ]
  br label %9005

9005:                                             ; preds = %9003, %8992
  %9006 = phi double [ %8994, %8992 ], [ %9004, %9003 ]
  br label %9017

9007:                                             ; preds = %8984
  %9008 = load i64, ptr %231, align 8, !tbaa !13
  %9009 = sitofp i64 %9008 to double
  %9010 = fcmp olt double -1.000000e+00, %9009
  br i1 %9010, label %9011, label %9014

9011:                                             ; preds = %9007
  %9012 = load i64, ptr %231, align 8, !tbaa !13
  %9013 = sitofp i64 %9012 to double
  br label %9015

9014:                                             ; preds = %9007
  br label %9015

9015:                                             ; preds = %9014, %9011
  %9016 = phi double [ %9013, %9011 ], [ -1.000000e+00, %9014 ]
  br label %9017

9017:                                             ; preds = %9015, %9005
  %9018 = phi double [ %9006, %9005 ], [ %9016, %9015 ]
  %9019 = fptoui double %9018 to i16
  %9020 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %9019, ptr %9020, align 2, !tbaa !15
  br label %9025

9021:                                             ; preds = %8980
  %9022 = load i64, ptr %231, align 8, !tbaa !13
  %9023 = trunc i64 %9022 to i16
  %9024 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %9023, ptr %9024, align 2, !tbaa !15
  br label %9025

9025:                                             ; preds = %9021, %9017
  br label %9026

9026:                                             ; preds = %9025, %8945
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %233) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %232) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %231) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %230) #3
  br label %9027

9027:                                             ; preds = %9026
  br label %9028

9028:                                             ; preds = %9027
  br label %12303

9029:                                             ; preds = %8680
  br label %9030

9030:                                             ; preds = %9029
  call void @llvm.lifetime.start.p0(i64 8, ptr %241) #3
  store double 5.000000e-01, ptr %241, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #3
  %9031 = load ptr, ptr %10, align 8, !tbaa !5
  %9032 = load i32, ptr %9031, align 4, !tbaa !9
  store i32 %9032, ptr %242, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %243) #3
  store double 0.000000e+00, ptr %243, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %244) #3
  store double 0.000000e+00, ptr %244, align 8, !tbaa !11
  %9033 = load ptr, ptr %11, align 8, !tbaa !5
  %9034 = icmp ne ptr null, %9033
  br i1 %9034, label %9035, label %9057

9035:                                             ; preds = %9030
  %9036 = load ptr, ptr %12, align 8, !tbaa !5
  %9037 = icmp ne ptr null, %9036
  br i1 %9037, label %9038, label %9049

9038:                                             ; preds = %9035
  %9039 = load ptr, ptr %11, align 8, !tbaa !5
  %9040 = load i32, ptr %9039, align 4, !tbaa !9
  %9041 = load i32, ptr %242, align 4, !tbaa !9
  %9042 = icmp sle i32 %9040, %9041
  br i1 %9042, label %9043, label %9049

9043:                                             ; preds = %9038
  %9044 = load i32, ptr %242, align 4, !tbaa !9
  %9045 = load ptr, ptr %12, align 8, !tbaa !5
  %9046 = load i32, ptr %9045, align 4, !tbaa !9
  %9047 = icmp sle i32 %9044, %9046
  br i1 %9047, label %9048, label %9049

9048:                                             ; preds = %9043
  br label %9050

9049:                                             ; preds = %9043, %9038, %9035
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.24, i32 noundef 473, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

9050:                                             ; preds = %9048
  %9051 = load ptr, ptr %11, align 8, !tbaa !5
  %9052 = load i32, ptr %9051, align 4, !tbaa !9
  %9053 = sitofp i32 %9052 to double
  store double %9053, ptr %243, align 8, !tbaa !11
  %9054 = load ptr, ptr %12, align 8, !tbaa !5
  %9055 = load i32, ptr %9054, align 4, !tbaa !9
  %9056 = sitofp i32 %9055 to double
  store double %9056, ptr %244, align 8, !tbaa !11
  br label %9057

9057:                                             ; preds = %9050, %9030
  %9058 = load i32, ptr %8, align 4, !tbaa !9
  %9059 = icmp ule i32 6, %9058
  br i1 %9059, label %9060, label %9296

9060:                                             ; preds = %9057
  %9061 = load double, ptr %243, align 8, !tbaa !11
  %9062 = load double, ptr %244, align 8, !tbaa !11
  %9063 = fcmp olt double %9061, %9062
  br i1 %9063, label %9064, label %9296

9064:                                             ; preds = %9060
  %9065 = load i32, ptr %8, align 4, !tbaa !9
  %9066 = icmp ule i32 15, %9065
  br i1 %9066, label %9067, label %9119

9067:                                             ; preds = %9064
  call void @llvm.lifetime.start.p0(i64 8, ptr %245) #3
  %9068 = load double, ptr %243, align 8, !tbaa !11
  %9069 = fcmp olt double 0.000000e+00, %9068
  br i1 %9069, label %9070, label %9072

9070:                                             ; preds = %9067
  %9071 = load double, ptr %243, align 8, !tbaa !11
  br label %9073

9072:                                             ; preds = %9067
  br label %9073

9073:                                             ; preds = %9072, %9070
  %9074 = phi double [ %9071, %9070 ], [ 0.000000e+00, %9072 ]
  store double %9074, ptr %245, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %246) #3
  %9075 = load double, ptr %244, align 8, !tbaa !11
  %9076 = fcmp olt double 0.000000e+00, %9075
  br i1 %9076, label %9077, label %9079

9077:                                             ; preds = %9073
  %9078 = load double, ptr %244, align 8, !tbaa !11
  br label %9080

9079:                                             ; preds = %9073
  br label %9080

9080:                                             ; preds = %9079, %9077
  %9081 = phi double [ %9078, %9077 ], [ 0.000000e+00, %9079 ]
  store double %9081, ptr %246, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %247) #3
  %9082 = load double, ptr %245, align 8, !tbaa !11
  %9083 = load double, ptr %246, align 8, !tbaa !11
  %9084 = fcmp olt double %9082, %9083
  br i1 %9084, label %9085, label %9093

9085:                                             ; preds = %9080
  %9086 = load double, ptr %244, align 8, !tbaa !11
  %9087 = load double, ptr %243, align 8, !tbaa !11
  %9088 = fsub double %9086, %9087
  %9089 = load double, ptr %246, align 8, !tbaa !11
  %9090 = load double, ptr %245, align 8, !tbaa !11
  %9091 = fsub double %9089, %9090
  %9092 = fdiv double %9088, %9091
  br label %9094

9093:                                             ; preds = %9080
  br label %9094

9094:                                             ; preds = %9093, %9085
  %9095 = phi double [ %9092, %9085 ], [ 1.000000e+00, %9093 ]
  store double %9095, ptr %247, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %248) #3
  %9096 = load double, ptr %247, align 8, !tbaa !11
  %9097 = load i32, ptr %242, align 4, !tbaa !9
  %9098 = icmp slt i32 0, %9097
  br i1 %9098, label %9099, label %9101

9099:                                             ; preds = %9094
  %9100 = load i32, ptr %242, align 4, !tbaa !9
  br label %9102

9101:                                             ; preds = %9094
  br label %9102

9102:                                             ; preds = %9101, %9099
  %9103 = phi i32 [ %9100, %9099 ], [ 0, %9101 ]
  %9104 = sitofp i32 %9103 to double
  %9105 = fmul double %9096, %9104
  store double %9105, ptr %248, align 8, !tbaa !11
  %9106 = load double, ptr %248, align 8, !tbaa !11
  %9107 = fcmp ole double 0.000000e+00, %9106
  br i1 %9107, label %9108, label %9111

9108:                                             ; preds = %9102
  %9109 = load double, ptr %248, align 8, !tbaa !11
  %9110 = fadd double %9109, 5.000000e-01
  br label %9114

9111:                                             ; preds = %9102
  %9112 = load double, ptr %248, align 8, !tbaa !11
  %9113 = fsub double %9112, 5.000000e-01
  br label %9114

9114:                                             ; preds = %9111, %9108
  %9115 = phi double [ %9110, %9108 ], [ %9113, %9111 ]
  %9116 = fptosi double %9115 to i32
  store i32 %9116, ptr %242, align 4, !tbaa !9
  %9117 = load double, ptr %245, align 8, !tbaa !11
  store double %9117, ptr %243, align 8, !tbaa !11
  %9118 = load double, ptr %246, align 8, !tbaa !11
  store double %9118, ptr %244, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %248) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %247) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %246) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %245) #3
  br label %9175

9119:                                             ; preds = %9064
  %9120 = load i32, ptr %8, align 4, !tbaa !9
  %9121 = icmp ugt i32 6, %9120
  br i1 %9121, label %9150, label %9122

9122:                                             ; preds = %9119
  %9123 = load i32, ptr %8, align 4, !tbaa !9
  %9124 = icmp ugt i32 15, %9123
  br i1 %9124, label %9125, label %9136

9125:                                             ; preds = %9122
  %9126 = load i32, ptr %9, align 4, !tbaa !9
  %9127 = icmp ugt i32 15, %9126
  br i1 %9127, label %9128, label %9133

9128:                                             ; preds = %9125
  %9129 = load i32, ptr %9, align 4, !tbaa !9
  %9130 = load i32, ptr %8, align 4, !tbaa !9
  %9131 = icmp ugt i32 %9129, %9130
  %9132 = zext i1 %9131 to i32
  br label %9134

9133:                                             ; preds = %9125
  br label %9134

9134:                                             ; preds = %9133, %9128
  %9135 = phi i32 [ %9132, %9128 ], [ 0, %9133 ]
  br label %9147

9136:                                             ; preds = %9122
  %9137 = load i32, ptr %9, align 4, !tbaa !9
  %9138 = icmp ugt i32 15, %9137
  br i1 %9138, label %9139, label %9140

9139:                                             ; preds = %9136
  br label %9145

9140:                                             ; preds = %9136
  %9141 = load i32, ptr %9, align 4, !tbaa !9
  %9142 = load i32, ptr %8, align 4, !tbaa !9
  %9143 = icmp ugt i32 %9141, %9142
  %9144 = zext i1 %9143 to i32
  br label %9145

9145:                                             ; preds = %9140, %9139
  %9146 = phi i32 [ 0, %9139 ], [ %9144, %9140 ]
  br label %9147

9147:                                             ; preds = %9145, %9134
  %9148 = phi i32 [ %9135, %9134 ], [ %9146, %9145 ]
  %9149 = icmp ne i32 %9148, 0
  br label %9150

9150:                                             ; preds = %9147, %9119
  %9151 = phi i1 [ true, %9119 ], [ %9149, %9147 ]
  %9152 = zext i1 %9151 to i32
  %9153 = icmp eq i32 0, %9152
  br i1 %9153, label %9154, label %9174

9154:                                             ; preds = %9150
  %9155 = load double, ptr %243, align 8, !tbaa !11
  %9156 = fcmp ogt double 0.000000e+00, %9155
  br i1 %9156, label %9157, label %9174

9157:                                             ; preds = %9154
  %9158 = load double, ptr %244, align 8, !tbaa !11
  %9159 = fcmp olt double 0.000000e+00, %9158
  br i1 %9159, label %9160, label %9174

9160:                                             ; preds = %9157
  %9161 = load double, ptr %243, align 8, !tbaa !11
  %9162 = fneg double %9161
  %9163 = load double, ptr %244, align 8, !tbaa !11
  %9164 = fcmp olt double %9162, %9163
  br i1 %9164, label %9165, label %9167

9165:                                             ; preds = %9160
  %9166 = load double, ptr %244, align 8, !tbaa !11
  br label %9170

9167:                                             ; preds = %9160
  %9168 = load double, ptr %243, align 8, !tbaa !11
  %9169 = fneg double %9168
  br label %9170

9170:                                             ; preds = %9167, %9165
  %9171 = phi double [ %9166, %9165 ], [ %9169, %9167 ]
  store double %9171, ptr %244, align 8, !tbaa !11
  %9172 = load double, ptr %244, align 8, !tbaa !11
  %9173 = fneg double %9172
  store double %9173, ptr %243, align 8, !tbaa !11
  br label %9174

9174:                                             ; preds = %9170, %9157, %9154, %9150
  br label %9175

9175:                                             ; preds = %9174, %9114
  call void @llvm.lifetime.start.p0(i64 8, ptr %249) #3
  %9176 = load double, ptr %243, align 8, !tbaa !11
  %9177 = fcmp ole double 0.000000e+00, %9176
  %9178 = zext i1 %9177 to i64
  %9179 = select i1 %9177, double 0.000000e+00, double -1.000000e+00
  store double %9179, ptr %249, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %250) #3
  %9180 = load double, ptr %244, align 8, !tbaa !11
  %9181 = fcmp ole double 0.000000e+00, %9180
  %9182 = zext i1 %9181 to i64
  %9183 = select i1 %9181, double 1.000000e+00, double 0.000000e+00
  store double %9183, ptr %250, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %251) #3
  %9184 = load i32, ptr %242, align 4, !tbaa !9
  %9185 = sitofp i32 %9184 to double
  %9186 = load double, ptr %243, align 8, !tbaa !11
  %9187 = fsub double %9185, %9186
  %9188 = load double, ptr %250, align 8, !tbaa !11
  %9189 = load double, ptr %249, align 8, !tbaa !11
  %9190 = fsub double %9188, %9189
  %9191 = fmul double %9187, %9190
  %9192 = load double, ptr %244, align 8, !tbaa !11
  %9193 = load double, ptr %243, align 8, !tbaa !11
  %9194 = fsub double %9192, %9193
  %9195 = fdiv double %9191, %9194
  %9196 = load double, ptr %249, align 8, !tbaa !11
  %9197 = fadd double %9195, %9196
  store double %9197, ptr %251, align 8, !tbaa !11
  %9198 = load double, ptr %249, align 8, !tbaa !11
  %9199 = load double, ptr %251, align 8, !tbaa !11
  %9200 = fcmp ole double 0.000000e+00, %9199
  br i1 %9200, label %9201, label %9204

9201:                                             ; preds = %9175
  %9202 = load double, ptr %251, align 8, !tbaa !11
  %9203 = fadd double %9202, 5.000000e-01
  br label %9207

9204:                                             ; preds = %9175
  %9205 = load double, ptr %251, align 8, !tbaa !11
  %9206 = fsub double %9205, 5.000000e-01
  br label %9207

9207:                                             ; preds = %9204, %9201
  %9208 = phi double [ %9203, %9201 ], [ %9206, %9204 ]
  %9209 = fcmp olt double %9198, %9208
  br i1 %9209, label %9210, label %9264

9210:                                             ; preds = %9207
  %9211 = load double, ptr %251, align 8, !tbaa !11
  %9212 = fcmp ole double 0.000000e+00, %9211
  br i1 %9212, label %9213, label %9216

9213:                                             ; preds = %9210
  %9214 = load double, ptr %251, align 8, !tbaa !11
  %9215 = fadd double %9214, 5.000000e-01
  br label %9219

9216:                                             ; preds = %9210
  %9217 = load double, ptr %251, align 8, !tbaa !11
  %9218 = fsub double %9217, 5.000000e-01
  br label %9219

9219:                                             ; preds = %9216, %9213
  %9220 = phi double [ %9215, %9213 ], [ %9218, %9216 ]
  %9221 = load double, ptr %250, align 8, !tbaa !11
  %9222 = fcmp ole double %9220, %9221
  br i1 %9222, label %9223, label %9234

9223:                                             ; preds = %9219
  %9224 = load double, ptr %251, align 8, !tbaa !11
  %9225 = fcmp ole double 0.000000e+00, %9224
  br i1 %9225, label %9226, label %9229

9226:                                             ; preds = %9223
  %9227 = load double, ptr %251, align 8, !tbaa !11
  %9228 = fadd double %9227, 5.000000e-01
  br label %9232

9229:                                             ; preds = %9223
  %9230 = load double, ptr %251, align 8, !tbaa !11
  %9231 = fsub double %9230, 5.000000e-01
  br label %9232

9232:                                             ; preds = %9229, %9226
  %9233 = phi double [ %9228, %9226 ], [ %9231, %9229 ]
  br label %9262

9234:                                             ; preds = %9219
  %9235 = load double, ptr %251, align 8, !tbaa !11
  %9236 = fcmp ole double 0.000000e+00, %9235
  br i1 %9236, label %9237, label %9240

9237:                                             ; preds = %9234
  %9238 = load double, ptr %251, align 8, !tbaa !11
  %9239 = fadd double %9238, 5.000000e-01
  br label %9243

9240:                                             ; preds = %9234
  %9241 = load double, ptr %251, align 8, !tbaa !11
  %9242 = fsub double %9241, 5.000000e-01
  br label %9243

9243:                                             ; preds = %9240, %9237
  %9244 = phi double [ %9239, %9237 ], [ %9242, %9240 ]
  %9245 = load double, ptr %250, align 8, !tbaa !11
  %9246 = fcmp olt double %9244, %9245
  br i1 %9246, label %9247, label %9258

9247:                                             ; preds = %9243
  %9248 = load double, ptr %251, align 8, !tbaa !11
  %9249 = fcmp ole double 0.000000e+00, %9248
  br i1 %9249, label %9250, label %9253

9250:                                             ; preds = %9247
  %9251 = load double, ptr %251, align 8, !tbaa !11
  %9252 = fadd double %9251, 5.000000e-01
  br label %9256

9253:                                             ; preds = %9247
  %9254 = load double, ptr %251, align 8, !tbaa !11
  %9255 = fsub double %9254, 5.000000e-01
  br label %9256

9256:                                             ; preds = %9253, %9250
  %9257 = phi double [ %9252, %9250 ], [ %9255, %9253 ]
  br label %9260

9258:                                             ; preds = %9243
  %9259 = load double, ptr %250, align 8, !tbaa !11
  br label %9260

9260:                                             ; preds = %9258, %9256
  %9261 = phi double [ %9257, %9256 ], [ %9259, %9258 ]
  br label %9262

9262:                                             ; preds = %9260, %9232
  %9263 = phi double [ %9233, %9232 ], [ %9261, %9260 ]
  br label %9292

9264:                                             ; preds = %9207
  %9265 = load double, ptr %249, align 8, !tbaa !11
  %9266 = load double, ptr %251, align 8, !tbaa !11
  %9267 = fcmp ole double 0.000000e+00, %9266
  br i1 %9267, label %9268, label %9271

9268:                                             ; preds = %9264
  %9269 = load double, ptr %251, align 8, !tbaa !11
  %9270 = fadd double %9269, 5.000000e-01
  br label %9274

9271:                                             ; preds = %9264
  %9272 = load double, ptr %251, align 8, !tbaa !11
  %9273 = fsub double %9272, 5.000000e-01
  br label %9274

9274:                                             ; preds = %9271, %9268
  %9275 = phi double [ %9270, %9268 ], [ %9273, %9271 ]
  %9276 = fcmp olt double %9265, %9275
  br i1 %9276, label %9277, label %9288

9277:                                             ; preds = %9274
  %9278 = load double, ptr %251, align 8, !tbaa !11
  %9279 = fcmp ole double 0.000000e+00, %9278
  br i1 %9279, label %9280, label %9283

9280:                                             ; preds = %9277
  %9281 = load double, ptr %251, align 8, !tbaa !11
  %9282 = fadd double %9281, 5.000000e-01
  br label %9286

9283:                                             ; preds = %9277
  %9284 = load double, ptr %251, align 8, !tbaa !11
  %9285 = fsub double %9284, 5.000000e-01
  br label %9286

9286:                                             ; preds = %9283, %9280
  %9287 = phi double [ %9282, %9280 ], [ %9285, %9283 ]
  br label %9290

9288:                                             ; preds = %9274
  %9289 = load double, ptr %249, align 8, !tbaa !11
  br label %9290

9290:                                             ; preds = %9288, %9286
  %9291 = phi double [ %9287, %9286 ], [ %9289, %9288 ]
  br label %9292

9292:                                             ; preds = %9290, %9262
  %9293 = phi double [ %9263, %9262 ], [ %9291, %9290 ]
  %9294 = fptoui double %9293 to i16
  %9295 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %9294, ptr %9295, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %251) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %250) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %249) #3
  br label %9373

9296:                                             ; preds = %9060, %9057
  %9297 = load i32, ptr %8, align 4, !tbaa !9
  %9298 = icmp ugt i32 6, %9297
  br i1 %9298, label %9327, label %9299

9299:                                             ; preds = %9296
  %9300 = load i32, ptr %8, align 4, !tbaa !9
  %9301 = icmp ugt i32 15, %9300
  br i1 %9301, label %9302, label %9313

9302:                                             ; preds = %9299
  %9303 = load i32, ptr %9, align 4, !tbaa !9
  %9304 = icmp ugt i32 15, %9303
  br i1 %9304, label %9305, label %9310

9305:                                             ; preds = %9302
  %9306 = load i32, ptr %9, align 4, !tbaa !9
  %9307 = load i32, ptr %8, align 4, !tbaa !9
  %9308 = icmp ugt i32 %9306, %9307
  %9309 = zext i1 %9308 to i32
  br label %9311

9310:                                             ; preds = %9302
  br label %9311

9311:                                             ; preds = %9310, %9305
  %9312 = phi i32 [ %9309, %9305 ], [ 0, %9310 ]
  br label %9324

9313:                                             ; preds = %9299
  %9314 = load i32, ptr %9, align 4, !tbaa !9
  %9315 = icmp ugt i32 15, %9314
  br i1 %9315, label %9316, label %9317

9316:                                             ; preds = %9313
  br label %9322

9317:                                             ; preds = %9313
  %9318 = load i32, ptr %9, align 4, !tbaa !9
  %9319 = load i32, ptr %8, align 4, !tbaa !9
  %9320 = icmp ugt i32 %9318, %9319
  %9321 = zext i1 %9320 to i32
  br label %9322

9322:                                             ; preds = %9317, %9316
  %9323 = phi i32 [ 0, %9316 ], [ %9321, %9317 ]
  br label %9324

9324:                                             ; preds = %9322, %9311
  %9325 = phi i32 [ %9312, %9311 ], [ %9323, %9322 ]
  %9326 = icmp ne i32 %9325, 0
  br label %9327

9327:                                             ; preds = %9324, %9296
  %9328 = phi i1 [ true, %9296 ], [ %9326, %9324 ]
  %9329 = zext i1 %9328 to i32
  %9330 = icmp eq i32 0, %9329
  br i1 %9330, label %9331, label %9368

9331:                                             ; preds = %9327
  %9332 = load i32, ptr %242, align 4, !tbaa !9
  %9333 = sitofp i32 %9332 to double
  %9334 = fcmp olt double -1.000000e+00, %9333
  br i1 %9334, label %9335, label %9354

9335:                                             ; preds = %9331
  %9336 = load i32, ptr %242, align 4, !tbaa !9
  %9337 = sitofp i32 %9336 to double
  %9338 = fcmp ole double %9337, 1.000000e+00
  br i1 %9338, label %9339, label %9342

9339:                                             ; preds = %9335
  %9340 = load i32, ptr %242, align 4, !tbaa !9
  %9341 = sitofp i32 %9340 to double
  br label %9352

9342:                                             ; preds = %9335
  %9343 = load i32, ptr %242, align 4, !tbaa !9
  %9344 = sitofp i32 %9343 to double
  %9345 = fcmp olt double %9344, 1.000000e+00
  br i1 %9345, label %9346, label %9349

9346:                                             ; preds = %9342
  %9347 = load i32, ptr %242, align 4, !tbaa !9
  %9348 = sitofp i32 %9347 to double
  br label %9350

9349:                                             ; preds = %9342
  br label %9350

9350:                                             ; preds = %9349, %9346
  %9351 = phi double [ %9348, %9346 ], [ 1.000000e+00, %9349 ]
  br label %9352

9352:                                             ; preds = %9350, %9339
  %9353 = phi double [ %9341, %9339 ], [ %9351, %9350 ]
  br label %9364

9354:                                             ; preds = %9331
  %9355 = load i32, ptr %242, align 4, !tbaa !9
  %9356 = sitofp i32 %9355 to double
  %9357 = fcmp olt double -1.000000e+00, %9356
  br i1 %9357, label %9358, label %9361

9358:                                             ; preds = %9354
  %9359 = load i32, ptr %242, align 4, !tbaa !9
  %9360 = sitofp i32 %9359 to double
  br label %9362

9361:                                             ; preds = %9354
  br label %9362

9362:                                             ; preds = %9361, %9358
  %9363 = phi double [ %9360, %9358 ], [ -1.000000e+00, %9361 ]
  br label %9364

9364:                                             ; preds = %9362, %9352
  %9365 = phi double [ %9353, %9352 ], [ %9363, %9362 ]
  %9366 = fptoui double %9365 to i16
  %9367 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %9366, ptr %9367, align 2, !tbaa !15
  br label %9372

9368:                                             ; preds = %9327
  %9369 = load i32, ptr %242, align 4, !tbaa !9
  %9370 = trunc i32 %9369 to i16
  %9371 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %9370, ptr %9371, align 2, !tbaa !15
  br label %9372

9372:                                             ; preds = %9368, %9364
  br label %9373

9373:                                             ; preds = %9372, %9292
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %243) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %241) #3
  br label %9374

9374:                                             ; preds = %9373
  br label %9375

9375:                                             ; preds = %9374
  br label %12303

9376:                                             ; preds = %8680
  br label %9377

9377:                                             ; preds = %9376
  call void @llvm.lifetime.start.p0(i64 8, ptr %252) #3
  store double 5.000000e-01, ptr %252, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %253) #3
  %9378 = load ptr, ptr %10, align 8, !tbaa !5
  %9379 = load i16, ptr %9378, align 2, !tbaa !15
  store i16 %9379, ptr %253, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %254) #3
  store double 0.000000e+00, ptr %254, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %255) #3
  store double 0.000000e+00, ptr %255, align 8, !tbaa !11
  %9380 = load ptr, ptr %11, align 8, !tbaa !5
  %9381 = icmp ne ptr null, %9380
  br i1 %9381, label %9382, label %9408

9382:                                             ; preds = %9377
  %9383 = load ptr, ptr %12, align 8, !tbaa !5
  %9384 = icmp ne ptr null, %9383
  br i1 %9384, label %9385, label %9400

9385:                                             ; preds = %9382
  %9386 = load ptr, ptr %11, align 8, !tbaa !5
  %9387 = load i16, ptr %9386, align 2, !tbaa !15
  %9388 = sext i16 %9387 to i32
  %9389 = load i16, ptr %253, align 2, !tbaa !15
  %9390 = sext i16 %9389 to i32
  %9391 = icmp sle i32 %9388, %9390
  br i1 %9391, label %9392, label %9400

9392:                                             ; preds = %9385
  %9393 = load i16, ptr %253, align 2, !tbaa !15
  %9394 = sext i16 %9393 to i32
  %9395 = load ptr, ptr %12, align 8, !tbaa !5
  %9396 = load i16, ptr %9395, align 2, !tbaa !15
  %9397 = sext i16 %9396 to i32
  %9398 = icmp sle i32 %9394, %9397
  br i1 %9398, label %9399, label %9400

9399:                                             ; preds = %9392
  br label %9401

9400:                                             ; preds = %9392, %9385, %9382
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.24, i32 noundef 473, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

9401:                                             ; preds = %9399
  %9402 = load ptr, ptr %11, align 8, !tbaa !5
  %9403 = load i16, ptr %9402, align 2, !tbaa !15
  %9404 = sitofp i16 %9403 to double
  store double %9404, ptr %254, align 8, !tbaa !11
  %9405 = load ptr, ptr %12, align 8, !tbaa !5
  %9406 = load i16, ptr %9405, align 2, !tbaa !15
  %9407 = sitofp i16 %9406 to double
  store double %9407, ptr %255, align 8, !tbaa !11
  br label %9408

9408:                                             ; preds = %9401, %9377
  %9409 = load i32, ptr %8, align 4, !tbaa !9
  %9410 = icmp ule i32 6, %9409
  br i1 %9410, label %9411, label %9649

9411:                                             ; preds = %9408
  %9412 = load double, ptr %254, align 8, !tbaa !11
  %9413 = load double, ptr %255, align 8, !tbaa !11
  %9414 = fcmp olt double %9412, %9413
  br i1 %9414, label %9415, label %9649

9415:                                             ; preds = %9411
  %9416 = load i32, ptr %8, align 4, !tbaa !9
  %9417 = icmp ule i32 15, %9416
  br i1 %9417, label %9418, label %9472

9418:                                             ; preds = %9415
  call void @llvm.lifetime.start.p0(i64 8, ptr %256) #3
  %9419 = load double, ptr %254, align 8, !tbaa !11
  %9420 = fcmp olt double 0.000000e+00, %9419
  br i1 %9420, label %9421, label %9423

9421:                                             ; preds = %9418
  %9422 = load double, ptr %254, align 8, !tbaa !11
  br label %9424

9423:                                             ; preds = %9418
  br label %9424

9424:                                             ; preds = %9423, %9421
  %9425 = phi double [ %9422, %9421 ], [ 0.000000e+00, %9423 ]
  store double %9425, ptr %256, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %257) #3
  %9426 = load double, ptr %255, align 8, !tbaa !11
  %9427 = fcmp olt double 0.000000e+00, %9426
  br i1 %9427, label %9428, label %9430

9428:                                             ; preds = %9424
  %9429 = load double, ptr %255, align 8, !tbaa !11
  br label %9431

9430:                                             ; preds = %9424
  br label %9431

9431:                                             ; preds = %9430, %9428
  %9432 = phi double [ %9429, %9428 ], [ 0.000000e+00, %9430 ]
  store double %9432, ptr %257, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %258) #3
  %9433 = load double, ptr %256, align 8, !tbaa !11
  %9434 = load double, ptr %257, align 8, !tbaa !11
  %9435 = fcmp olt double %9433, %9434
  br i1 %9435, label %9436, label %9444

9436:                                             ; preds = %9431
  %9437 = load double, ptr %255, align 8, !tbaa !11
  %9438 = load double, ptr %254, align 8, !tbaa !11
  %9439 = fsub double %9437, %9438
  %9440 = load double, ptr %257, align 8, !tbaa !11
  %9441 = load double, ptr %256, align 8, !tbaa !11
  %9442 = fsub double %9440, %9441
  %9443 = fdiv double %9439, %9442
  br label %9445

9444:                                             ; preds = %9431
  br label %9445

9445:                                             ; preds = %9444, %9436
  %9446 = phi double [ %9443, %9436 ], [ 1.000000e+00, %9444 ]
  store double %9446, ptr %258, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %259) #3
  %9447 = load double, ptr %258, align 8, !tbaa !11
  %9448 = load i16, ptr %253, align 2, !tbaa !15
  %9449 = sext i16 %9448 to i32
  %9450 = icmp slt i32 0, %9449
  br i1 %9450, label %9451, label %9454

9451:                                             ; preds = %9445
  %9452 = load i16, ptr %253, align 2, !tbaa !15
  %9453 = sext i16 %9452 to i32
  br label %9455

9454:                                             ; preds = %9445
  br label %9455

9455:                                             ; preds = %9454, %9451
  %9456 = phi i32 [ %9453, %9451 ], [ 0, %9454 ]
  %9457 = sitofp i32 %9456 to double
  %9458 = fmul double %9447, %9457
  store double %9458, ptr %259, align 8, !tbaa !11
  %9459 = load double, ptr %259, align 8, !tbaa !11
  %9460 = fcmp ole double 0.000000e+00, %9459
  br i1 %9460, label %9461, label %9464

9461:                                             ; preds = %9455
  %9462 = load double, ptr %259, align 8, !tbaa !11
  %9463 = fadd double %9462, 5.000000e-01
  br label %9467

9464:                                             ; preds = %9455
  %9465 = load double, ptr %259, align 8, !tbaa !11
  %9466 = fsub double %9465, 5.000000e-01
  br label %9467

9467:                                             ; preds = %9464, %9461
  %9468 = phi double [ %9463, %9461 ], [ %9466, %9464 ]
  %9469 = fptosi double %9468 to i16
  store i16 %9469, ptr %253, align 2, !tbaa !15
  %9470 = load double, ptr %256, align 8, !tbaa !11
  store double %9470, ptr %254, align 8, !tbaa !11
  %9471 = load double, ptr %257, align 8, !tbaa !11
  store double %9471, ptr %255, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %259) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %258) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %257) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %256) #3
  br label %9528

9472:                                             ; preds = %9415
  %9473 = load i32, ptr %8, align 4, !tbaa !9
  %9474 = icmp ugt i32 6, %9473
  br i1 %9474, label %9503, label %9475

9475:                                             ; preds = %9472
  %9476 = load i32, ptr %8, align 4, !tbaa !9
  %9477 = icmp ugt i32 15, %9476
  br i1 %9477, label %9478, label %9489

9478:                                             ; preds = %9475
  %9479 = load i32, ptr %9, align 4, !tbaa !9
  %9480 = icmp ugt i32 15, %9479
  br i1 %9480, label %9481, label %9486

9481:                                             ; preds = %9478
  %9482 = load i32, ptr %9, align 4, !tbaa !9
  %9483 = load i32, ptr %8, align 4, !tbaa !9
  %9484 = icmp ugt i32 %9482, %9483
  %9485 = zext i1 %9484 to i32
  br label %9487

9486:                                             ; preds = %9478
  br label %9487

9487:                                             ; preds = %9486, %9481
  %9488 = phi i32 [ %9485, %9481 ], [ 0, %9486 ]
  br label %9500

9489:                                             ; preds = %9475
  %9490 = load i32, ptr %9, align 4, !tbaa !9
  %9491 = icmp ugt i32 15, %9490
  br i1 %9491, label %9492, label %9493

9492:                                             ; preds = %9489
  br label %9498

9493:                                             ; preds = %9489
  %9494 = load i32, ptr %9, align 4, !tbaa !9
  %9495 = load i32, ptr %8, align 4, !tbaa !9
  %9496 = icmp ugt i32 %9494, %9495
  %9497 = zext i1 %9496 to i32
  br label %9498

9498:                                             ; preds = %9493, %9492
  %9499 = phi i32 [ 0, %9492 ], [ %9497, %9493 ]
  br label %9500

9500:                                             ; preds = %9498, %9487
  %9501 = phi i32 [ %9488, %9487 ], [ %9499, %9498 ]
  %9502 = icmp ne i32 %9501, 0
  br label %9503

9503:                                             ; preds = %9500, %9472
  %9504 = phi i1 [ true, %9472 ], [ %9502, %9500 ]
  %9505 = zext i1 %9504 to i32
  %9506 = icmp eq i32 0, %9505
  br i1 %9506, label %9507, label %9527

9507:                                             ; preds = %9503
  %9508 = load double, ptr %254, align 8, !tbaa !11
  %9509 = fcmp ogt double 0.000000e+00, %9508
  br i1 %9509, label %9510, label %9527

9510:                                             ; preds = %9507
  %9511 = load double, ptr %255, align 8, !tbaa !11
  %9512 = fcmp olt double 0.000000e+00, %9511
  br i1 %9512, label %9513, label %9527

9513:                                             ; preds = %9510
  %9514 = load double, ptr %254, align 8, !tbaa !11
  %9515 = fneg double %9514
  %9516 = load double, ptr %255, align 8, !tbaa !11
  %9517 = fcmp olt double %9515, %9516
  br i1 %9517, label %9518, label %9520

9518:                                             ; preds = %9513
  %9519 = load double, ptr %255, align 8, !tbaa !11
  br label %9523

9520:                                             ; preds = %9513
  %9521 = load double, ptr %254, align 8, !tbaa !11
  %9522 = fneg double %9521
  br label %9523

9523:                                             ; preds = %9520, %9518
  %9524 = phi double [ %9519, %9518 ], [ %9522, %9520 ]
  store double %9524, ptr %255, align 8, !tbaa !11
  %9525 = load double, ptr %255, align 8, !tbaa !11
  %9526 = fneg double %9525
  store double %9526, ptr %254, align 8, !tbaa !11
  br label %9527

9527:                                             ; preds = %9523, %9510, %9507, %9503
  br label %9528

9528:                                             ; preds = %9527, %9467
  call void @llvm.lifetime.start.p0(i64 8, ptr %260) #3
  %9529 = load double, ptr %254, align 8, !tbaa !11
  %9530 = fcmp ole double 0.000000e+00, %9529
  %9531 = zext i1 %9530 to i64
  %9532 = select i1 %9530, double 0.000000e+00, double -1.000000e+00
  store double %9532, ptr %260, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %261) #3
  %9533 = load double, ptr %255, align 8, !tbaa !11
  %9534 = fcmp ole double 0.000000e+00, %9533
  %9535 = zext i1 %9534 to i64
  %9536 = select i1 %9534, double 1.000000e+00, double 0.000000e+00
  store double %9536, ptr %261, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %262) #3
  %9537 = load i16, ptr %253, align 2, !tbaa !15
  %9538 = sitofp i16 %9537 to double
  %9539 = load double, ptr %254, align 8, !tbaa !11
  %9540 = fsub double %9538, %9539
  %9541 = load double, ptr %261, align 8, !tbaa !11
  %9542 = load double, ptr %260, align 8, !tbaa !11
  %9543 = fsub double %9541, %9542
  %9544 = fmul double %9540, %9543
  %9545 = load double, ptr %255, align 8, !tbaa !11
  %9546 = load double, ptr %254, align 8, !tbaa !11
  %9547 = fsub double %9545, %9546
  %9548 = fdiv double %9544, %9547
  %9549 = load double, ptr %260, align 8, !tbaa !11
  %9550 = fadd double %9548, %9549
  store double %9550, ptr %262, align 8, !tbaa !11
  %9551 = load double, ptr %260, align 8, !tbaa !11
  %9552 = load double, ptr %262, align 8, !tbaa !11
  %9553 = fcmp ole double 0.000000e+00, %9552
  br i1 %9553, label %9554, label %9557

9554:                                             ; preds = %9528
  %9555 = load double, ptr %262, align 8, !tbaa !11
  %9556 = fadd double %9555, 5.000000e-01
  br label %9560

9557:                                             ; preds = %9528
  %9558 = load double, ptr %262, align 8, !tbaa !11
  %9559 = fsub double %9558, 5.000000e-01
  br label %9560

9560:                                             ; preds = %9557, %9554
  %9561 = phi double [ %9556, %9554 ], [ %9559, %9557 ]
  %9562 = fcmp olt double %9551, %9561
  br i1 %9562, label %9563, label %9617

9563:                                             ; preds = %9560
  %9564 = load double, ptr %262, align 8, !tbaa !11
  %9565 = fcmp ole double 0.000000e+00, %9564
  br i1 %9565, label %9566, label %9569

9566:                                             ; preds = %9563
  %9567 = load double, ptr %262, align 8, !tbaa !11
  %9568 = fadd double %9567, 5.000000e-01
  br label %9572

9569:                                             ; preds = %9563
  %9570 = load double, ptr %262, align 8, !tbaa !11
  %9571 = fsub double %9570, 5.000000e-01
  br label %9572

9572:                                             ; preds = %9569, %9566
  %9573 = phi double [ %9568, %9566 ], [ %9571, %9569 ]
  %9574 = load double, ptr %261, align 8, !tbaa !11
  %9575 = fcmp ole double %9573, %9574
  br i1 %9575, label %9576, label %9587

9576:                                             ; preds = %9572
  %9577 = load double, ptr %262, align 8, !tbaa !11
  %9578 = fcmp ole double 0.000000e+00, %9577
  br i1 %9578, label %9579, label %9582

9579:                                             ; preds = %9576
  %9580 = load double, ptr %262, align 8, !tbaa !11
  %9581 = fadd double %9580, 5.000000e-01
  br label %9585

9582:                                             ; preds = %9576
  %9583 = load double, ptr %262, align 8, !tbaa !11
  %9584 = fsub double %9583, 5.000000e-01
  br label %9585

9585:                                             ; preds = %9582, %9579
  %9586 = phi double [ %9581, %9579 ], [ %9584, %9582 ]
  br label %9615

9587:                                             ; preds = %9572
  %9588 = load double, ptr %262, align 8, !tbaa !11
  %9589 = fcmp ole double 0.000000e+00, %9588
  br i1 %9589, label %9590, label %9593

9590:                                             ; preds = %9587
  %9591 = load double, ptr %262, align 8, !tbaa !11
  %9592 = fadd double %9591, 5.000000e-01
  br label %9596

9593:                                             ; preds = %9587
  %9594 = load double, ptr %262, align 8, !tbaa !11
  %9595 = fsub double %9594, 5.000000e-01
  br label %9596

9596:                                             ; preds = %9593, %9590
  %9597 = phi double [ %9592, %9590 ], [ %9595, %9593 ]
  %9598 = load double, ptr %261, align 8, !tbaa !11
  %9599 = fcmp olt double %9597, %9598
  br i1 %9599, label %9600, label %9611

9600:                                             ; preds = %9596
  %9601 = load double, ptr %262, align 8, !tbaa !11
  %9602 = fcmp ole double 0.000000e+00, %9601
  br i1 %9602, label %9603, label %9606

9603:                                             ; preds = %9600
  %9604 = load double, ptr %262, align 8, !tbaa !11
  %9605 = fadd double %9604, 5.000000e-01
  br label %9609

9606:                                             ; preds = %9600
  %9607 = load double, ptr %262, align 8, !tbaa !11
  %9608 = fsub double %9607, 5.000000e-01
  br label %9609

9609:                                             ; preds = %9606, %9603
  %9610 = phi double [ %9605, %9603 ], [ %9608, %9606 ]
  br label %9613

9611:                                             ; preds = %9596
  %9612 = load double, ptr %261, align 8, !tbaa !11
  br label %9613

9613:                                             ; preds = %9611, %9609
  %9614 = phi double [ %9610, %9609 ], [ %9612, %9611 ]
  br label %9615

9615:                                             ; preds = %9613, %9585
  %9616 = phi double [ %9586, %9585 ], [ %9614, %9613 ]
  br label %9645

9617:                                             ; preds = %9560
  %9618 = load double, ptr %260, align 8, !tbaa !11
  %9619 = load double, ptr %262, align 8, !tbaa !11
  %9620 = fcmp ole double 0.000000e+00, %9619
  br i1 %9620, label %9621, label %9624

9621:                                             ; preds = %9617
  %9622 = load double, ptr %262, align 8, !tbaa !11
  %9623 = fadd double %9622, 5.000000e-01
  br label %9627

9624:                                             ; preds = %9617
  %9625 = load double, ptr %262, align 8, !tbaa !11
  %9626 = fsub double %9625, 5.000000e-01
  br label %9627

9627:                                             ; preds = %9624, %9621
  %9628 = phi double [ %9623, %9621 ], [ %9626, %9624 ]
  %9629 = fcmp olt double %9618, %9628
  br i1 %9629, label %9630, label %9641

9630:                                             ; preds = %9627
  %9631 = load double, ptr %262, align 8, !tbaa !11
  %9632 = fcmp ole double 0.000000e+00, %9631
  br i1 %9632, label %9633, label %9636

9633:                                             ; preds = %9630
  %9634 = load double, ptr %262, align 8, !tbaa !11
  %9635 = fadd double %9634, 5.000000e-01
  br label %9639

9636:                                             ; preds = %9630
  %9637 = load double, ptr %262, align 8, !tbaa !11
  %9638 = fsub double %9637, 5.000000e-01
  br label %9639

9639:                                             ; preds = %9636, %9633
  %9640 = phi double [ %9635, %9633 ], [ %9638, %9636 ]
  br label %9643

9641:                                             ; preds = %9627
  %9642 = load double, ptr %260, align 8, !tbaa !11
  br label %9643

9643:                                             ; preds = %9641, %9639
  %9644 = phi double [ %9640, %9639 ], [ %9642, %9641 ]
  br label %9645

9645:                                             ; preds = %9643, %9615
  %9646 = phi double [ %9616, %9615 ], [ %9644, %9643 ]
  %9647 = fptoui double %9646 to i16
  %9648 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %9647, ptr %9648, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %262) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %261) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %260) #3
  br label %9732

9649:                                             ; preds = %9411, %9408
  %9650 = load i32, ptr %8, align 4, !tbaa !9
  %9651 = icmp ugt i32 6, %9650
  br i1 %9651, label %9680, label %9652

9652:                                             ; preds = %9649
  %9653 = load i32, ptr %8, align 4, !tbaa !9
  %9654 = icmp ugt i32 15, %9653
  br i1 %9654, label %9655, label %9666

9655:                                             ; preds = %9652
  %9656 = load i32, ptr %9, align 4, !tbaa !9
  %9657 = icmp ugt i32 15, %9656
  br i1 %9657, label %9658, label %9663

9658:                                             ; preds = %9655
  %9659 = load i32, ptr %9, align 4, !tbaa !9
  %9660 = load i32, ptr %8, align 4, !tbaa !9
  %9661 = icmp ugt i32 %9659, %9660
  %9662 = zext i1 %9661 to i32
  br label %9664

9663:                                             ; preds = %9655
  br label %9664

9664:                                             ; preds = %9663, %9658
  %9665 = phi i32 [ %9662, %9658 ], [ 0, %9663 ]
  br label %9677

9666:                                             ; preds = %9652
  %9667 = load i32, ptr %9, align 4, !tbaa !9
  %9668 = icmp ugt i32 15, %9667
  br i1 %9668, label %9669, label %9670

9669:                                             ; preds = %9666
  br label %9675

9670:                                             ; preds = %9666
  %9671 = load i32, ptr %9, align 4, !tbaa !9
  %9672 = load i32, ptr %8, align 4, !tbaa !9
  %9673 = icmp ugt i32 %9671, %9672
  %9674 = zext i1 %9673 to i32
  br label %9675

9675:                                             ; preds = %9670, %9669
  %9676 = phi i32 [ 0, %9669 ], [ %9674, %9670 ]
  br label %9677

9677:                                             ; preds = %9675, %9664
  %9678 = phi i32 [ %9665, %9664 ], [ %9676, %9675 ]
  %9679 = icmp ne i32 %9678, 0
  br label %9680

9680:                                             ; preds = %9677, %9649
  %9681 = phi i1 [ true, %9649 ], [ %9679, %9677 ]
  %9682 = zext i1 %9681 to i32
  %9683 = icmp eq i32 0, %9682
  br i1 %9683, label %9684, label %9728

9684:                                             ; preds = %9680
  %9685 = load i16, ptr %253, align 2, !tbaa !15
  %9686 = sext i16 %9685 to i32
  %9687 = sitofp i32 %9686 to double
  %9688 = fcmp olt double -1.000000e+00, %9687
  br i1 %9688, label %9689, label %9712

9689:                                             ; preds = %9684
  %9690 = load i16, ptr %253, align 2, !tbaa !15
  %9691 = sext i16 %9690 to i32
  %9692 = sitofp i32 %9691 to double
  %9693 = fcmp ole double %9692, 1.000000e+00
  br i1 %9693, label %9694, label %9698

9694:                                             ; preds = %9689
  %9695 = load i16, ptr %253, align 2, !tbaa !15
  %9696 = sext i16 %9695 to i32
  %9697 = sitofp i32 %9696 to double
  br label %9710

9698:                                             ; preds = %9689
  %9699 = load i16, ptr %253, align 2, !tbaa !15
  %9700 = sext i16 %9699 to i32
  %9701 = sitofp i32 %9700 to double
  %9702 = fcmp olt double %9701, 1.000000e+00
  br i1 %9702, label %9703, label %9707

9703:                                             ; preds = %9698
  %9704 = load i16, ptr %253, align 2, !tbaa !15
  %9705 = sext i16 %9704 to i32
  %9706 = sitofp i32 %9705 to double
  br label %9708

9707:                                             ; preds = %9698
  br label %9708

9708:                                             ; preds = %9707, %9703
  %9709 = phi double [ %9706, %9703 ], [ 1.000000e+00, %9707 ]
  br label %9710

9710:                                             ; preds = %9708, %9694
  %9711 = phi double [ %9697, %9694 ], [ %9709, %9708 ]
  br label %9724

9712:                                             ; preds = %9684
  %9713 = load i16, ptr %253, align 2, !tbaa !15
  %9714 = sext i16 %9713 to i32
  %9715 = sitofp i32 %9714 to double
  %9716 = fcmp olt double -1.000000e+00, %9715
  br i1 %9716, label %9717, label %9721

9717:                                             ; preds = %9712
  %9718 = load i16, ptr %253, align 2, !tbaa !15
  %9719 = sext i16 %9718 to i32
  %9720 = sitofp i32 %9719 to double
  br label %9722

9721:                                             ; preds = %9712
  br label %9722

9722:                                             ; preds = %9721, %9717
  %9723 = phi double [ %9720, %9717 ], [ -1.000000e+00, %9721 ]
  br label %9724

9724:                                             ; preds = %9722, %9710
  %9725 = phi double [ %9711, %9710 ], [ %9723, %9722 ]
  %9726 = fptoui double %9725 to i16
  %9727 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %9726, ptr %9727, align 2, !tbaa !15
  br label %9731

9728:                                             ; preds = %9680
  %9729 = load i16, ptr %253, align 2, !tbaa !15
  %9730 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %9729, ptr %9730, align 2, !tbaa !15
  br label %9731

9731:                                             ; preds = %9728, %9724
  br label %9732

9732:                                             ; preds = %9731, %9645
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %255) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %254) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %253) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %252) #3
  br label %9733

9733:                                             ; preds = %9732
  br label %9734

9734:                                             ; preds = %9733
  br label %12303

9735:                                             ; preds = %8680
  br label %9736

9736:                                             ; preds = %9735
  call void @llvm.lifetime.start.p0(i64 8, ptr %263) #3
  store double 5.000000e-01, ptr %263, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %264) #3
  %9737 = load ptr, ptr %10, align 8, !tbaa !5
  %9738 = load i8, ptr %9737, align 1, !tbaa !17
  store i8 %9738, ptr %264, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %265) #3
  store double 0.000000e+00, ptr %265, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %266) #3
  store double 0.000000e+00, ptr %266, align 8, !tbaa !11
  %9739 = load ptr, ptr %11, align 8, !tbaa !5
  %9740 = icmp ne ptr null, %9739
  br i1 %9740, label %9741, label %9767

9741:                                             ; preds = %9736
  %9742 = load ptr, ptr %12, align 8, !tbaa !5
  %9743 = icmp ne ptr null, %9742
  br i1 %9743, label %9744, label %9759

9744:                                             ; preds = %9741
  %9745 = load ptr, ptr %11, align 8, !tbaa !5
  %9746 = load i8, ptr %9745, align 1, !tbaa !17
  %9747 = sext i8 %9746 to i32
  %9748 = load i8, ptr %264, align 1, !tbaa !17
  %9749 = sext i8 %9748 to i32
  %9750 = icmp sle i32 %9747, %9749
  br i1 %9750, label %9751, label %9759

9751:                                             ; preds = %9744
  %9752 = load i8, ptr %264, align 1, !tbaa !17
  %9753 = sext i8 %9752 to i32
  %9754 = load ptr, ptr %12, align 8, !tbaa !5
  %9755 = load i8, ptr %9754, align 1, !tbaa !17
  %9756 = sext i8 %9755 to i32
  %9757 = icmp sle i32 %9753, %9756
  br i1 %9757, label %9758, label %9759

9758:                                             ; preds = %9751
  br label %9760

9759:                                             ; preds = %9751, %9744, %9741
  call void @__assert_fail(ptr noundef @.str.45, ptr noundef @.str.24, i32 noundef 473, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

9760:                                             ; preds = %9758
  %9761 = load ptr, ptr %11, align 8, !tbaa !5
  %9762 = load i8, ptr %9761, align 1, !tbaa !17
  %9763 = sitofp i8 %9762 to double
  store double %9763, ptr %265, align 8, !tbaa !11
  %9764 = load ptr, ptr %12, align 8, !tbaa !5
  %9765 = load i8, ptr %9764, align 1, !tbaa !17
  %9766 = sitofp i8 %9765 to double
  store double %9766, ptr %266, align 8, !tbaa !11
  br label %9767

9767:                                             ; preds = %9760, %9736
  %9768 = load i32, ptr %8, align 4, !tbaa !9
  %9769 = icmp ule i32 6, %9768
  br i1 %9769, label %9770, label %10008

9770:                                             ; preds = %9767
  %9771 = load double, ptr %265, align 8, !tbaa !11
  %9772 = load double, ptr %266, align 8, !tbaa !11
  %9773 = fcmp olt double %9771, %9772
  br i1 %9773, label %9774, label %10008

9774:                                             ; preds = %9770
  %9775 = load i32, ptr %8, align 4, !tbaa !9
  %9776 = icmp ule i32 15, %9775
  br i1 %9776, label %9777, label %9831

9777:                                             ; preds = %9774
  call void @llvm.lifetime.start.p0(i64 8, ptr %267) #3
  %9778 = load double, ptr %265, align 8, !tbaa !11
  %9779 = fcmp olt double 0.000000e+00, %9778
  br i1 %9779, label %9780, label %9782

9780:                                             ; preds = %9777
  %9781 = load double, ptr %265, align 8, !tbaa !11
  br label %9783

9782:                                             ; preds = %9777
  br label %9783

9783:                                             ; preds = %9782, %9780
  %9784 = phi double [ %9781, %9780 ], [ 0.000000e+00, %9782 ]
  store double %9784, ptr %267, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %268) #3
  %9785 = load double, ptr %266, align 8, !tbaa !11
  %9786 = fcmp olt double 0.000000e+00, %9785
  br i1 %9786, label %9787, label %9789

9787:                                             ; preds = %9783
  %9788 = load double, ptr %266, align 8, !tbaa !11
  br label %9790

9789:                                             ; preds = %9783
  br label %9790

9790:                                             ; preds = %9789, %9787
  %9791 = phi double [ %9788, %9787 ], [ 0.000000e+00, %9789 ]
  store double %9791, ptr %268, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %269) #3
  %9792 = load double, ptr %267, align 8, !tbaa !11
  %9793 = load double, ptr %268, align 8, !tbaa !11
  %9794 = fcmp olt double %9792, %9793
  br i1 %9794, label %9795, label %9803

9795:                                             ; preds = %9790
  %9796 = load double, ptr %266, align 8, !tbaa !11
  %9797 = load double, ptr %265, align 8, !tbaa !11
  %9798 = fsub double %9796, %9797
  %9799 = load double, ptr %268, align 8, !tbaa !11
  %9800 = load double, ptr %267, align 8, !tbaa !11
  %9801 = fsub double %9799, %9800
  %9802 = fdiv double %9798, %9801
  br label %9804

9803:                                             ; preds = %9790
  br label %9804

9804:                                             ; preds = %9803, %9795
  %9805 = phi double [ %9802, %9795 ], [ 1.000000e+00, %9803 ]
  store double %9805, ptr %269, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %270) #3
  %9806 = load double, ptr %269, align 8, !tbaa !11
  %9807 = load i8, ptr %264, align 1, !tbaa !17
  %9808 = sext i8 %9807 to i32
  %9809 = icmp slt i32 0, %9808
  br i1 %9809, label %9810, label %9813

9810:                                             ; preds = %9804
  %9811 = load i8, ptr %264, align 1, !tbaa !17
  %9812 = sext i8 %9811 to i32
  br label %9814

9813:                                             ; preds = %9804
  br label %9814

9814:                                             ; preds = %9813, %9810
  %9815 = phi i32 [ %9812, %9810 ], [ 0, %9813 ]
  %9816 = sitofp i32 %9815 to double
  %9817 = fmul double %9806, %9816
  store double %9817, ptr %270, align 8, !tbaa !11
  %9818 = load double, ptr %270, align 8, !tbaa !11
  %9819 = fcmp ole double 0.000000e+00, %9818
  br i1 %9819, label %9820, label %9823

9820:                                             ; preds = %9814
  %9821 = load double, ptr %270, align 8, !tbaa !11
  %9822 = fadd double %9821, 5.000000e-01
  br label %9826

9823:                                             ; preds = %9814
  %9824 = load double, ptr %270, align 8, !tbaa !11
  %9825 = fsub double %9824, 5.000000e-01
  br label %9826

9826:                                             ; preds = %9823, %9820
  %9827 = phi double [ %9822, %9820 ], [ %9825, %9823 ]
  %9828 = fptosi double %9827 to i8
  store i8 %9828, ptr %264, align 1, !tbaa !17
  %9829 = load double, ptr %267, align 8, !tbaa !11
  store double %9829, ptr %265, align 8, !tbaa !11
  %9830 = load double, ptr %268, align 8, !tbaa !11
  store double %9830, ptr %266, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %270) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %269) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %268) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %267) #3
  br label %9887

9831:                                             ; preds = %9774
  %9832 = load i32, ptr %8, align 4, !tbaa !9
  %9833 = icmp ugt i32 6, %9832
  br i1 %9833, label %9862, label %9834

9834:                                             ; preds = %9831
  %9835 = load i32, ptr %8, align 4, !tbaa !9
  %9836 = icmp ugt i32 15, %9835
  br i1 %9836, label %9837, label %9848

9837:                                             ; preds = %9834
  %9838 = load i32, ptr %9, align 4, !tbaa !9
  %9839 = icmp ugt i32 15, %9838
  br i1 %9839, label %9840, label %9845

9840:                                             ; preds = %9837
  %9841 = load i32, ptr %9, align 4, !tbaa !9
  %9842 = load i32, ptr %8, align 4, !tbaa !9
  %9843 = icmp ugt i32 %9841, %9842
  %9844 = zext i1 %9843 to i32
  br label %9846

9845:                                             ; preds = %9837
  br label %9846

9846:                                             ; preds = %9845, %9840
  %9847 = phi i32 [ %9844, %9840 ], [ 0, %9845 ]
  br label %9859

9848:                                             ; preds = %9834
  %9849 = load i32, ptr %9, align 4, !tbaa !9
  %9850 = icmp ugt i32 15, %9849
  br i1 %9850, label %9851, label %9852

9851:                                             ; preds = %9848
  br label %9857

9852:                                             ; preds = %9848
  %9853 = load i32, ptr %9, align 4, !tbaa !9
  %9854 = load i32, ptr %8, align 4, !tbaa !9
  %9855 = icmp ugt i32 %9853, %9854
  %9856 = zext i1 %9855 to i32
  br label %9857

9857:                                             ; preds = %9852, %9851
  %9858 = phi i32 [ 0, %9851 ], [ %9856, %9852 ]
  br label %9859

9859:                                             ; preds = %9857, %9846
  %9860 = phi i32 [ %9847, %9846 ], [ %9858, %9857 ]
  %9861 = icmp ne i32 %9860, 0
  br label %9862

9862:                                             ; preds = %9859, %9831
  %9863 = phi i1 [ true, %9831 ], [ %9861, %9859 ]
  %9864 = zext i1 %9863 to i32
  %9865 = icmp eq i32 0, %9864
  br i1 %9865, label %9866, label %9886

9866:                                             ; preds = %9862
  %9867 = load double, ptr %265, align 8, !tbaa !11
  %9868 = fcmp ogt double 0.000000e+00, %9867
  br i1 %9868, label %9869, label %9886

9869:                                             ; preds = %9866
  %9870 = load double, ptr %266, align 8, !tbaa !11
  %9871 = fcmp olt double 0.000000e+00, %9870
  br i1 %9871, label %9872, label %9886

9872:                                             ; preds = %9869
  %9873 = load double, ptr %265, align 8, !tbaa !11
  %9874 = fneg double %9873
  %9875 = load double, ptr %266, align 8, !tbaa !11
  %9876 = fcmp olt double %9874, %9875
  br i1 %9876, label %9877, label %9879

9877:                                             ; preds = %9872
  %9878 = load double, ptr %266, align 8, !tbaa !11
  br label %9882

9879:                                             ; preds = %9872
  %9880 = load double, ptr %265, align 8, !tbaa !11
  %9881 = fneg double %9880
  br label %9882

9882:                                             ; preds = %9879, %9877
  %9883 = phi double [ %9878, %9877 ], [ %9881, %9879 ]
  store double %9883, ptr %266, align 8, !tbaa !11
  %9884 = load double, ptr %266, align 8, !tbaa !11
  %9885 = fneg double %9884
  store double %9885, ptr %265, align 8, !tbaa !11
  br label %9886

9886:                                             ; preds = %9882, %9869, %9866, %9862
  br label %9887

9887:                                             ; preds = %9886, %9826
  call void @llvm.lifetime.start.p0(i64 8, ptr %271) #3
  %9888 = load double, ptr %265, align 8, !tbaa !11
  %9889 = fcmp ole double 0.000000e+00, %9888
  %9890 = zext i1 %9889 to i64
  %9891 = select i1 %9889, double 0.000000e+00, double -1.000000e+00
  store double %9891, ptr %271, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %272) #3
  %9892 = load double, ptr %266, align 8, !tbaa !11
  %9893 = fcmp ole double 0.000000e+00, %9892
  %9894 = zext i1 %9893 to i64
  %9895 = select i1 %9893, double 1.000000e+00, double 0.000000e+00
  store double %9895, ptr %272, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %273) #3
  %9896 = load i8, ptr %264, align 1, !tbaa !17
  %9897 = sitofp i8 %9896 to double
  %9898 = load double, ptr %265, align 8, !tbaa !11
  %9899 = fsub double %9897, %9898
  %9900 = load double, ptr %272, align 8, !tbaa !11
  %9901 = load double, ptr %271, align 8, !tbaa !11
  %9902 = fsub double %9900, %9901
  %9903 = fmul double %9899, %9902
  %9904 = load double, ptr %266, align 8, !tbaa !11
  %9905 = load double, ptr %265, align 8, !tbaa !11
  %9906 = fsub double %9904, %9905
  %9907 = fdiv double %9903, %9906
  %9908 = load double, ptr %271, align 8, !tbaa !11
  %9909 = fadd double %9907, %9908
  store double %9909, ptr %273, align 8, !tbaa !11
  %9910 = load double, ptr %271, align 8, !tbaa !11
  %9911 = load double, ptr %273, align 8, !tbaa !11
  %9912 = fcmp ole double 0.000000e+00, %9911
  br i1 %9912, label %9913, label %9916

9913:                                             ; preds = %9887
  %9914 = load double, ptr %273, align 8, !tbaa !11
  %9915 = fadd double %9914, 5.000000e-01
  br label %9919

9916:                                             ; preds = %9887
  %9917 = load double, ptr %273, align 8, !tbaa !11
  %9918 = fsub double %9917, 5.000000e-01
  br label %9919

9919:                                             ; preds = %9916, %9913
  %9920 = phi double [ %9915, %9913 ], [ %9918, %9916 ]
  %9921 = fcmp olt double %9910, %9920
  br i1 %9921, label %9922, label %9976

9922:                                             ; preds = %9919
  %9923 = load double, ptr %273, align 8, !tbaa !11
  %9924 = fcmp ole double 0.000000e+00, %9923
  br i1 %9924, label %9925, label %9928

9925:                                             ; preds = %9922
  %9926 = load double, ptr %273, align 8, !tbaa !11
  %9927 = fadd double %9926, 5.000000e-01
  br label %9931

9928:                                             ; preds = %9922
  %9929 = load double, ptr %273, align 8, !tbaa !11
  %9930 = fsub double %9929, 5.000000e-01
  br label %9931

9931:                                             ; preds = %9928, %9925
  %9932 = phi double [ %9927, %9925 ], [ %9930, %9928 ]
  %9933 = load double, ptr %272, align 8, !tbaa !11
  %9934 = fcmp ole double %9932, %9933
  br i1 %9934, label %9935, label %9946

9935:                                             ; preds = %9931
  %9936 = load double, ptr %273, align 8, !tbaa !11
  %9937 = fcmp ole double 0.000000e+00, %9936
  br i1 %9937, label %9938, label %9941

9938:                                             ; preds = %9935
  %9939 = load double, ptr %273, align 8, !tbaa !11
  %9940 = fadd double %9939, 5.000000e-01
  br label %9944

9941:                                             ; preds = %9935
  %9942 = load double, ptr %273, align 8, !tbaa !11
  %9943 = fsub double %9942, 5.000000e-01
  br label %9944

9944:                                             ; preds = %9941, %9938
  %9945 = phi double [ %9940, %9938 ], [ %9943, %9941 ]
  br label %9974

9946:                                             ; preds = %9931
  %9947 = load double, ptr %273, align 8, !tbaa !11
  %9948 = fcmp ole double 0.000000e+00, %9947
  br i1 %9948, label %9949, label %9952

9949:                                             ; preds = %9946
  %9950 = load double, ptr %273, align 8, !tbaa !11
  %9951 = fadd double %9950, 5.000000e-01
  br label %9955

9952:                                             ; preds = %9946
  %9953 = load double, ptr %273, align 8, !tbaa !11
  %9954 = fsub double %9953, 5.000000e-01
  br label %9955

9955:                                             ; preds = %9952, %9949
  %9956 = phi double [ %9951, %9949 ], [ %9954, %9952 ]
  %9957 = load double, ptr %272, align 8, !tbaa !11
  %9958 = fcmp olt double %9956, %9957
  br i1 %9958, label %9959, label %9970

9959:                                             ; preds = %9955
  %9960 = load double, ptr %273, align 8, !tbaa !11
  %9961 = fcmp ole double 0.000000e+00, %9960
  br i1 %9961, label %9962, label %9965

9962:                                             ; preds = %9959
  %9963 = load double, ptr %273, align 8, !tbaa !11
  %9964 = fadd double %9963, 5.000000e-01
  br label %9968

9965:                                             ; preds = %9959
  %9966 = load double, ptr %273, align 8, !tbaa !11
  %9967 = fsub double %9966, 5.000000e-01
  br label %9968

9968:                                             ; preds = %9965, %9962
  %9969 = phi double [ %9964, %9962 ], [ %9967, %9965 ]
  br label %9972

9970:                                             ; preds = %9955
  %9971 = load double, ptr %272, align 8, !tbaa !11
  br label %9972

9972:                                             ; preds = %9970, %9968
  %9973 = phi double [ %9969, %9968 ], [ %9971, %9970 ]
  br label %9974

9974:                                             ; preds = %9972, %9944
  %9975 = phi double [ %9945, %9944 ], [ %9973, %9972 ]
  br label %10004

9976:                                             ; preds = %9919
  %9977 = load double, ptr %271, align 8, !tbaa !11
  %9978 = load double, ptr %273, align 8, !tbaa !11
  %9979 = fcmp ole double 0.000000e+00, %9978
  br i1 %9979, label %9980, label %9983

9980:                                             ; preds = %9976
  %9981 = load double, ptr %273, align 8, !tbaa !11
  %9982 = fadd double %9981, 5.000000e-01
  br label %9986

9983:                                             ; preds = %9976
  %9984 = load double, ptr %273, align 8, !tbaa !11
  %9985 = fsub double %9984, 5.000000e-01
  br label %9986

9986:                                             ; preds = %9983, %9980
  %9987 = phi double [ %9982, %9980 ], [ %9985, %9983 ]
  %9988 = fcmp olt double %9977, %9987
  br i1 %9988, label %9989, label %10000

9989:                                             ; preds = %9986
  %9990 = load double, ptr %273, align 8, !tbaa !11
  %9991 = fcmp ole double 0.000000e+00, %9990
  br i1 %9991, label %9992, label %9995

9992:                                             ; preds = %9989
  %9993 = load double, ptr %273, align 8, !tbaa !11
  %9994 = fadd double %9993, 5.000000e-01
  br label %9998

9995:                                             ; preds = %9989
  %9996 = load double, ptr %273, align 8, !tbaa !11
  %9997 = fsub double %9996, 5.000000e-01
  br label %9998

9998:                                             ; preds = %9995, %9992
  %9999 = phi double [ %9994, %9992 ], [ %9997, %9995 ]
  br label %10002

10000:                                            ; preds = %9986
  %10001 = load double, ptr %271, align 8, !tbaa !11
  br label %10002

10002:                                            ; preds = %10000, %9998
  %10003 = phi double [ %9999, %9998 ], [ %10001, %10000 ]
  br label %10004

10004:                                            ; preds = %10002, %9974
  %10005 = phi double [ %9975, %9974 ], [ %10003, %10002 ]
  %10006 = fptoui double %10005 to i16
  %10007 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %10006, ptr %10007, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %273) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %272) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %271) #3
  br label %10092

10008:                                            ; preds = %9770, %9767
  %10009 = load i32, ptr %8, align 4, !tbaa !9
  %10010 = icmp ugt i32 6, %10009
  br i1 %10010, label %10039, label %10011

10011:                                            ; preds = %10008
  %10012 = load i32, ptr %8, align 4, !tbaa !9
  %10013 = icmp ugt i32 15, %10012
  br i1 %10013, label %10014, label %10025

10014:                                            ; preds = %10011
  %10015 = load i32, ptr %9, align 4, !tbaa !9
  %10016 = icmp ugt i32 15, %10015
  br i1 %10016, label %10017, label %10022

10017:                                            ; preds = %10014
  %10018 = load i32, ptr %9, align 4, !tbaa !9
  %10019 = load i32, ptr %8, align 4, !tbaa !9
  %10020 = icmp ugt i32 %10018, %10019
  %10021 = zext i1 %10020 to i32
  br label %10023

10022:                                            ; preds = %10014
  br label %10023

10023:                                            ; preds = %10022, %10017
  %10024 = phi i32 [ %10021, %10017 ], [ 0, %10022 ]
  br label %10036

10025:                                            ; preds = %10011
  %10026 = load i32, ptr %9, align 4, !tbaa !9
  %10027 = icmp ugt i32 15, %10026
  br i1 %10027, label %10028, label %10029

10028:                                            ; preds = %10025
  br label %10034

10029:                                            ; preds = %10025
  %10030 = load i32, ptr %9, align 4, !tbaa !9
  %10031 = load i32, ptr %8, align 4, !tbaa !9
  %10032 = icmp ugt i32 %10030, %10031
  %10033 = zext i1 %10032 to i32
  br label %10034

10034:                                            ; preds = %10029, %10028
  %10035 = phi i32 [ 0, %10028 ], [ %10033, %10029 ]
  br label %10036

10036:                                            ; preds = %10034, %10023
  %10037 = phi i32 [ %10024, %10023 ], [ %10035, %10034 ]
  %10038 = icmp ne i32 %10037, 0
  br label %10039

10039:                                            ; preds = %10036, %10008
  %10040 = phi i1 [ true, %10008 ], [ %10038, %10036 ]
  %10041 = zext i1 %10040 to i32
  %10042 = icmp eq i32 0, %10041
  br i1 %10042, label %10043, label %10087

10043:                                            ; preds = %10039
  %10044 = load i8, ptr %264, align 1, !tbaa !17
  %10045 = sext i8 %10044 to i32
  %10046 = sitofp i32 %10045 to double
  %10047 = fcmp olt double -1.000000e+00, %10046
  br i1 %10047, label %10048, label %10071

10048:                                            ; preds = %10043
  %10049 = load i8, ptr %264, align 1, !tbaa !17
  %10050 = sext i8 %10049 to i32
  %10051 = sitofp i32 %10050 to double
  %10052 = fcmp ole double %10051, 1.000000e+00
  br i1 %10052, label %10053, label %10057

10053:                                            ; preds = %10048
  %10054 = load i8, ptr %264, align 1, !tbaa !17
  %10055 = sext i8 %10054 to i32
  %10056 = sitofp i32 %10055 to double
  br label %10069

10057:                                            ; preds = %10048
  %10058 = load i8, ptr %264, align 1, !tbaa !17
  %10059 = sext i8 %10058 to i32
  %10060 = sitofp i32 %10059 to double
  %10061 = fcmp olt double %10060, 1.000000e+00
  br i1 %10061, label %10062, label %10066

10062:                                            ; preds = %10057
  %10063 = load i8, ptr %264, align 1, !tbaa !17
  %10064 = sext i8 %10063 to i32
  %10065 = sitofp i32 %10064 to double
  br label %10067

10066:                                            ; preds = %10057
  br label %10067

10067:                                            ; preds = %10066, %10062
  %10068 = phi double [ %10065, %10062 ], [ 1.000000e+00, %10066 ]
  br label %10069

10069:                                            ; preds = %10067, %10053
  %10070 = phi double [ %10056, %10053 ], [ %10068, %10067 ]
  br label %10083

10071:                                            ; preds = %10043
  %10072 = load i8, ptr %264, align 1, !tbaa !17
  %10073 = sext i8 %10072 to i32
  %10074 = sitofp i32 %10073 to double
  %10075 = fcmp olt double -1.000000e+00, %10074
  br i1 %10075, label %10076, label %10080

10076:                                            ; preds = %10071
  %10077 = load i8, ptr %264, align 1, !tbaa !17
  %10078 = sext i8 %10077 to i32
  %10079 = sitofp i32 %10078 to double
  br label %10081

10080:                                            ; preds = %10071
  br label %10081

10081:                                            ; preds = %10080, %10076
  %10082 = phi double [ %10079, %10076 ], [ -1.000000e+00, %10080 ]
  br label %10083

10083:                                            ; preds = %10081, %10069
  %10084 = phi double [ %10070, %10069 ], [ %10082, %10081 ]
  %10085 = fptoui double %10084 to i16
  %10086 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %10085, ptr %10086, align 2, !tbaa !15
  br label %10091

10087:                                            ; preds = %10039
  %10088 = load i8, ptr %264, align 1, !tbaa !17
  %10089 = sext i8 %10088 to i16
  %10090 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %10089, ptr %10090, align 2, !tbaa !15
  br label %10091

10091:                                            ; preds = %10087, %10083
  br label %10092

10092:                                            ; preds = %10091, %10004
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %266) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %265) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %264) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %263) #3
  br label %10093

10093:                                            ; preds = %10092
  br label %10094

10094:                                            ; preds = %10093
  br label %12303

10095:                                            ; preds = %8680
  br label %10096

10096:                                            ; preds = %10095
  call void @llvm.lifetime.start.p0(i64 8, ptr %274) #3
  store double 5.000000e-01, ptr %274, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %275) #3
  %10097 = load ptr, ptr %10, align 8, !tbaa !5
  %10098 = load i64, ptr %10097, align 8, !tbaa !13
  store i64 %10098, ptr %275, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %276) #3
  store double 0.000000e+00, ptr %276, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %277) #3
  store double 0.000000e+00, ptr %277, align 8, !tbaa !11
  %10099 = load ptr, ptr %11, align 8, !tbaa !5
  %10100 = icmp ne ptr null, %10099
  br i1 %10100, label %10101, label %10123

10101:                                            ; preds = %10096
  %10102 = load ptr, ptr %12, align 8, !tbaa !5
  %10103 = icmp ne ptr null, %10102
  br i1 %10103, label %10104, label %10115

10104:                                            ; preds = %10101
  %10105 = load ptr, ptr %11, align 8, !tbaa !5
  %10106 = load i64, ptr %10105, align 8, !tbaa !13
  %10107 = load i64, ptr %275, align 8, !tbaa !13
  %10108 = icmp ule i64 %10106, %10107
  br i1 %10108, label %10109, label %10115

10109:                                            ; preds = %10104
  %10110 = load i64, ptr %275, align 8, !tbaa !13
  %10111 = load ptr, ptr %12, align 8, !tbaa !5
  %10112 = load i64, ptr %10111, align 8, !tbaa !13
  %10113 = icmp ule i64 %10110, %10112
  br i1 %10113, label %10114, label %10115

10114:                                            ; preds = %10109
  br label %10116

10115:                                            ; preds = %10109, %10104, %10101
  call void @__assert_fail(ptr noundef @.str.46, ptr noundef @.str.24, i32 noundef 473, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

10116:                                            ; preds = %10114
  %10117 = load ptr, ptr %11, align 8, !tbaa !5
  %10118 = load i64, ptr %10117, align 8, !tbaa !13
  %10119 = uitofp i64 %10118 to double
  store double %10119, ptr %276, align 8, !tbaa !11
  %10120 = load ptr, ptr %12, align 8, !tbaa !5
  %10121 = load i64, ptr %10120, align 8, !tbaa !13
  %10122 = uitofp i64 %10121 to double
  store double %10122, ptr %277, align 8, !tbaa !11
  br label %10123

10123:                                            ; preds = %10116, %10096
  %10124 = load i32, ptr %8, align 4, !tbaa !9
  %10125 = icmp ule i32 6, %10124
  br i1 %10125, label %10126, label %10362

10126:                                            ; preds = %10123
  %10127 = load double, ptr %276, align 8, !tbaa !11
  %10128 = load double, ptr %277, align 8, !tbaa !11
  %10129 = fcmp olt double %10127, %10128
  br i1 %10129, label %10130, label %10362

10130:                                            ; preds = %10126
  %10131 = load i32, ptr %8, align 4, !tbaa !9
  %10132 = icmp ule i32 15, %10131
  br i1 %10132, label %10133, label %10185

10133:                                            ; preds = %10130
  call void @llvm.lifetime.start.p0(i64 8, ptr %278) #3
  %10134 = load double, ptr %276, align 8, !tbaa !11
  %10135 = fcmp olt double 0.000000e+00, %10134
  br i1 %10135, label %10136, label %10138

10136:                                            ; preds = %10133
  %10137 = load double, ptr %276, align 8, !tbaa !11
  br label %10139

10138:                                            ; preds = %10133
  br label %10139

10139:                                            ; preds = %10138, %10136
  %10140 = phi double [ %10137, %10136 ], [ 0.000000e+00, %10138 ]
  store double %10140, ptr %278, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %279) #3
  %10141 = load double, ptr %277, align 8, !tbaa !11
  %10142 = fcmp olt double 0.000000e+00, %10141
  br i1 %10142, label %10143, label %10145

10143:                                            ; preds = %10139
  %10144 = load double, ptr %277, align 8, !tbaa !11
  br label %10146

10145:                                            ; preds = %10139
  br label %10146

10146:                                            ; preds = %10145, %10143
  %10147 = phi double [ %10144, %10143 ], [ 0.000000e+00, %10145 ]
  store double %10147, ptr %279, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %280) #3
  %10148 = load double, ptr %278, align 8, !tbaa !11
  %10149 = load double, ptr %279, align 8, !tbaa !11
  %10150 = fcmp olt double %10148, %10149
  br i1 %10150, label %10151, label %10159

10151:                                            ; preds = %10146
  %10152 = load double, ptr %277, align 8, !tbaa !11
  %10153 = load double, ptr %276, align 8, !tbaa !11
  %10154 = fsub double %10152, %10153
  %10155 = load double, ptr %279, align 8, !tbaa !11
  %10156 = load double, ptr %278, align 8, !tbaa !11
  %10157 = fsub double %10155, %10156
  %10158 = fdiv double %10154, %10157
  br label %10160

10159:                                            ; preds = %10146
  br label %10160

10160:                                            ; preds = %10159, %10151
  %10161 = phi double [ %10158, %10151 ], [ 1.000000e+00, %10159 ]
  store double %10161, ptr %280, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %281) #3
  %10162 = load double, ptr %280, align 8, !tbaa !11
  %10163 = load i64, ptr %275, align 8, !tbaa !13
  %10164 = icmp ult i64 0, %10163
  br i1 %10164, label %10165, label %10167

10165:                                            ; preds = %10160
  %10166 = load i64, ptr %275, align 8, !tbaa !13
  br label %10168

10167:                                            ; preds = %10160
  br label %10168

10168:                                            ; preds = %10167, %10165
  %10169 = phi i64 [ %10166, %10165 ], [ 0, %10167 ]
  %10170 = uitofp i64 %10169 to double
  %10171 = fmul double %10162, %10170
  store double %10171, ptr %281, align 8, !tbaa !11
  %10172 = load double, ptr %281, align 8, !tbaa !11
  %10173 = fcmp ole double 0.000000e+00, %10172
  br i1 %10173, label %10174, label %10177

10174:                                            ; preds = %10168
  %10175 = load double, ptr %281, align 8, !tbaa !11
  %10176 = fadd double %10175, 5.000000e-01
  br label %10180

10177:                                            ; preds = %10168
  %10178 = load double, ptr %281, align 8, !tbaa !11
  %10179 = fsub double %10178, 5.000000e-01
  br label %10180

10180:                                            ; preds = %10177, %10174
  %10181 = phi double [ %10176, %10174 ], [ %10179, %10177 ]
  %10182 = fptoui double %10181 to i64
  store i64 %10182, ptr %275, align 8, !tbaa !13
  %10183 = load double, ptr %278, align 8, !tbaa !11
  store double %10183, ptr %276, align 8, !tbaa !11
  %10184 = load double, ptr %279, align 8, !tbaa !11
  store double %10184, ptr %277, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %281) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %280) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %279) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %278) #3
  br label %10241

10185:                                            ; preds = %10130
  %10186 = load i32, ptr %8, align 4, !tbaa !9
  %10187 = icmp ugt i32 6, %10186
  br i1 %10187, label %10216, label %10188

10188:                                            ; preds = %10185
  %10189 = load i32, ptr %8, align 4, !tbaa !9
  %10190 = icmp ugt i32 15, %10189
  br i1 %10190, label %10191, label %10202

10191:                                            ; preds = %10188
  %10192 = load i32, ptr %9, align 4, !tbaa !9
  %10193 = icmp ugt i32 15, %10192
  br i1 %10193, label %10194, label %10199

10194:                                            ; preds = %10191
  %10195 = load i32, ptr %9, align 4, !tbaa !9
  %10196 = load i32, ptr %8, align 4, !tbaa !9
  %10197 = icmp ugt i32 %10195, %10196
  %10198 = zext i1 %10197 to i32
  br label %10200

10199:                                            ; preds = %10191
  br label %10200

10200:                                            ; preds = %10199, %10194
  %10201 = phi i32 [ %10198, %10194 ], [ 0, %10199 ]
  br label %10213

10202:                                            ; preds = %10188
  %10203 = load i32, ptr %9, align 4, !tbaa !9
  %10204 = icmp ugt i32 15, %10203
  br i1 %10204, label %10205, label %10206

10205:                                            ; preds = %10202
  br label %10211

10206:                                            ; preds = %10202
  %10207 = load i32, ptr %9, align 4, !tbaa !9
  %10208 = load i32, ptr %8, align 4, !tbaa !9
  %10209 = icmp ugt i32 %10207, %10208
  %10210 = zext i1 %10209 to i32
  br label %10211

10211:                                            ; preds = %10206, %10205
  %10212 = phi i32 [ 0, %10205 ], [ %10210, %10206 ]
  br label %10213

10213:                                            ; preds = %10211, %10200
  %10214 = phi i32 [ %10201, %10200 ], [ %10212, %10211 ]
  %10215 = icmp ne i32 %10214, 0
  br label %10216

10216:                                            ; preds = %10213, %10185
  %10217 = phi i1 [ true, %10185 ], [ %10215, %10213 ]
  %10218 = zext i1 %10217 to i32
  %10219 = icmp eq i32 0, %10218
  br i1 %10219, label %10220, label %10240

10220:                                            ; preds = %10216
  %10221 = load double, ptr %276, align 8, !tbaa !11
  %10222 = fcmp ogt double 0.000000e+00, %10221
  br i1 %10222, label %10223, label %10240

10223:                                            ; preds = %10220
  %10224 = load double, ptr %277, align 8, !tbaa !11
  %10225 = fcmp olt double 0.000000e+00, %10224
  br i1 %10225, label %10226, label %10240

10226:                                            ; preds = %10223
  %10227 = load double, ptr %276, align 8, !tbaa !11
  %10228 = fneg double %10227
  %10229 = load double, ptr %277, align 8, !tbaa !11
  %10230 = fcmp olt double %10228, %10229
  br i1 %10230, label %10231, label %10233

10231:                                            ; preds = %10226
  %10232 = load double, ptr %277, align 8, !tbaa !11
  br label %10236

10233:                                            ; preds = %10226
  %10234 = load double, ptr %276, align 8, !tbaa !11
  %10235 = fneg double %10234
  br label %10236

10236:                                            ; preds = %10233, %10231
  %10237 = phi double [ %10232, %10231 ], [ %10235, %10233 ]
  store double %10237, ptr %277, align 8, !tbaa !11
  %10238 = load double, ptr %277, align 8, !tbaa !11
  %10239 = fneg double %10238
  store double %10239, ptr %276, align 8, !tbaa !11
  br label %10240

10240:                                            ; preds = %10236, %10223, %10220, %10216
  br label %10241

10241:                                            ; preds = %10240, %10180
  call void @llvm.lifetime.start.p0(i64 8, ptr %282) #3
  %10242 = load double, ptr %276, align 8, !tbaa !11
  %10243 = fcmp ole double 0.000000e+00, %10242
  %10244 = zext i1 %10243 to i64
  %10245 = select i1 %10243, double 0.000000e+00, double -1.000000e+00
  store double %10245, ptr %282, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %283) #3
  %10246 = load double, ptr %277, align 8, !tbaa !11
  %10247 = fcmp ole double 0.000000e+00, %10246
  %10248 = zext i1 %10247 to i64
  %10249 = select i1 %10247, double 1.000000e+00, double 0.000000e+00
  store double %10249, ptr %283, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %284) #3
  %10250 = load i64, ptr %275, align 8, !tbaa !13
  %10251 = uitofp i64 %10250 to double
  %10252 = load double, ptr %276, align 8, !tbaa !11
  %10253 = fsub double %10251, %10252
  %10254 = load double, ptr %283, align 8, !tbaa !11
  %10255 = load double, ptr %282, align 8, !tbaa !11
  %10256 = fsub double %10254, %10255
  %10257 = fmul double %10253, %10256
  %10258 = load double, ptr %277, align 8, !tbaa !11
  %10259 = load double, ptr %276, align 8, !tbaa !11
  %10260 = fsub double %10258, %10259
  %10261 = fdiv double %10257, %10260
  %10262 = load double, ptr %282, align 8, !tbaa !11
  %10263 = fadd double %10261, %10262
  store double %10263, ptr %284, align 8, !tbaa !11
  %10264 = load double, ptr %282, align 8, !tbaa !11
  %10265 = load double, ptr %284, align 8, !tbaa !11
  %10266 = fcmp ole double 0.000000e+00, %10265
  br i1 %10266, label %10267, label %10270

10267:                                            ; preds = %10241
  %10268 = load double, ptr %284, align 8, !tbaa !11
  %10269 = fadd double %10268, 5.000000e-01
  br label %10273

10270:                                            ; preds = %10241
  %10271 = load double, ptr %284, align 8, !tbaa !11
  %10272 = fsub double %10271, 5.000000e-01
  br label %10273

10273:                                            ; preds = %10270, %10267
  %10274 = phi double [ %10269, %10267 ], [ %10272, %10270 ]
  %10275 = fcmp olt double %10264, %10274
  br i1 %10275, label %10276, label %10330

10276:                                            ; preds = %10273
  %10277 = load double, ptr %284, align 8, !tbaa !11
  %10278 = fcmp ole double 0.000000e+00, %10277
  br i1 %10278, label %10279, label %10282

10279:                                            ; preds = %10276
  %10280 = load double, ptr %284, align 8, !tbaa !11
  %10281 = fadd double %10280, 5.000000e-01
  br label %10285

10282:                                            ; preds = %10276
  %10283 = load double, ptr %284, align 8, !tbaa !11
  %10284 = fsub double %10283, 5.000000e-01
  br label %10285

10285:                                            ; preds = %10282, %10279
  %10286 = phi double [ %10281, %10279 ], [ %10284, %10282 ]
  %10287 = load double, ptr %283, align 8, !tbaa !11
  %10288 = fcmp ole double %10286, %10287
  br i1 %10288, label %10289, label %10300

10289:                                            ; preds = %10285
  %10290 = load double, ptr %284, align 8, !tbaa !11
  %10291 = fcmp ole double 0.000000e+00, %10290
  br i1 %10291, label %10292, label %10295

10292:                                            ; preds = %10289
  %10293 = load double, ptr %284, align 8, !tbaa !11
  %10294 = fadd double %10293, 5.000000e-01
  br label %10298

10295:                                            ; preds = %10289
  %10296 = load double, ptr %284, align 8, !tbaa !11
  %10297 = fsub double %10296, 5.000000e-01
  br label %10298

10298:                                            ; preds = %10295, %10292
  %10299 = phi double [ %10294, %10292 ], [ %10297, %10295 ]
  br label %10328

10300:                                            ; preds = %10285
  %10301 = load double, ptr %284, align 8, !tbaa !11
  %10302 = fcmp ole double 0.000000e+00, %10301
  br i1 %10302, label %10303, label %10306

10303:                                            ; preds = %10300
  %10304 = load double, ptr %284, align 8, !tbaa !11
  %10305 = fadd double %10304, 5.000000e-01
  br label %10309

10306:                                            ; preds = %10300
  %10307 = load double, ptr %284, align 8, !tbaa !11
  %10308 = fsub double %10307, 5.000000e-01
  br label %10309

10309:                                            ; preds = %10306, %10303
  %10310 = phi double [ %10305, %10303 ], [ %10308, %10306 ]
  %10311 = load double, ptr %283, align 8, !tbaa !11
  %10312 = fcmp olt double %10310, %10311
  br i1 %10312, label %10313, label %10324

10313:                                            ; preds = %10309
  %10314 = load double, ptr %284, align 8, !tbaa !11
  %10315 = fcmp ole double 0.000000e+00, %10314
  br i1 %10315, label %10316, label %10319

10316:                                            ; preds = %10313
  %10317 = load double, ptr %284, align 8, !tbaa !11
  %10318 = fadd double %10317, 5.000000e-01
  br label %10322

10319:                                            ; preds = %10313
  %10320 = load double, ptr %284, align 8, !tbaa !11
  %10321 = fsub double %10320, 5.000000e-01
  br label %10322

10322:                                            ; preds = %10319, %10316
  %10323 = phi double [ %10318, %10316 ], [ %10321, %10319 ]
  br label %10326

10324:                                            ; preds = %10309
  %10325 = load double, ptr %283, align 8, !tbaa !11
  br label %10326

10326:                                            ; preds = %10324, %10322
  %10327 = phi double [ %10323, %10322 ], [ %10325, %10324 ]
  br label %10328

10328:                                            ; preds = %10326, %10298
  %10329 = phi double [ %10299, %10298 ], [ %10327, %10326 ]
  br label %10358

10330:                                            ; preds = %10273
  %10331 = load double, ptr %282, align 8, !tbaa !11
  %10332 = load double, ptr %284, align 8, !tbaa !11
  %10333 = fcmp ole double 0.000000e+00, %10332
  br i1 %10333, label %10334, label %10337

10334:                                            ; preds = %10330
  %10335 = load double, ptr %284, align 8, !tbaa !11
  %10336 = fadd double %10335, 5.000000e-01
  br label %10340

10337:                                            ; preds = %10330
  %10338 = load double, ptr %284, align 8, !tbaa !11
  %10339 = fsub double %10338, 5.000000e-01
  br label %10340

10340:                                            ; preds = %10337, %10334
  %10341 = phi double [ %10336, %10334 ], [ %10339, %10337 ]
  %10342 = fcmp olt double %10331, %10341
  br i1 %10342, label %10343, label %10354

10343:                                            ; preds = %10340
  %10344 = load double, ptr %284, align 8, !tbaa !11
  %10345 = fcmp ole double 0.000000e+00, %10344
  br i1 %10345, label %10346, label %10349

10346:                                            ; preds = %10343
  %10347 = load double, ptr %284, align 8, !tbaa !11
  %10348 = fadd double %10347, 5.000000e-01
  br label %10352

10349:                                            ; preds = %10343
  %10350 = load double, ptr %284, align 8, !tbaa !11
  %10351 = fsub double %10350, 5.000000e-01
  br label %10352

10352:                                            ; preds = %10349, %10346
  %10353 = phi double [ %10348, %10346 ], [ %10351, %10349 ]
  br label %10356

10354:                                            ; preds = %10340
  %10355 = load double, ptr %282, align 8, !tbaa !11
  br label %10356

10356:                                            ; preds = %10354, %10352
  %10357 = phi double [ %10353, %10352 ], [ %10355, %10354 ]
  br label %10358

10358:                                            ; preds = %10356, %10328
  %10359 = phi double [ %10329, %10328 ], [ %10357, %10356 ]
  %10360 = fptoui double %10359 to i16
  %10361 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %10360, ptr %10361, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %284) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %283) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %282) #3
  br label %10439

10362:                                            ; preds = %10126, %10123
  %10363 = load i32, ptr %8, align 4, !tbaa !9
  %10364 = icmp ugt i32 6, %10363
  br i1 %10364, label %10393, label %10365

10365:                                            ; preds = %10362
  %10366 = load i32, ptr %8, align 4, !tbaa !9
  %10367 = icmp ugt i32 15, %10366
  br i1 %10367, label %10368, label %10379

10368:                                            ; preds = %10365
  %10369 = load i32, ptr %9, align 4, !tbaa !9
  %10370 = icmp ugt i32 15, %10369
  br i1 %10370, label %10371, label %10376

10371:                                            ; preds = %10368
  %10372 = load i32, ptr %9, align 4, !tbaa !9
  %10373 = load i32, ptr %8, align 4, !tbaa !9
  %10374 = icmp ugt i32 %10372, %10373
  %10375 = zext i1 %10374 to i32
  br label %10377

10376:                                            ; preds = %10368
  br label %10377

10377:                                            ; preds = %10376, %10371
  %10378 = phi i32 [ %10375, %10371 ], [ 0, %10376 ]
  br label %10390

10379:                                            ; preds = %10365
  %10380 = load i32, ptr %9, align 4, !tbaa !9
  %10381 = icmp ugt i32 15, %10380
  br i1 %10381, label %10382, label %10383

10382:                                            ; preds = %10379
  br label %10388

10383:                                            ; preds = %10379
  %10384 = load i32, ptr %9, align 4, !tbaa !9
  %10385 = load i32, ptr %8, align 4, !tbaa !9
  %10386 = icmp ugt i32 %10384, %10385
  %10387 = zext i1 %10386 to i32
  br label %10388

10388:                                            ; preds = %10383, %10382
  %10389 = phi i32 [ 0, %10382 ], [ %10387, %10383 ]
  br label %10390

10390:                                            ; preds = %10388, %10377
  %10391 = phi i32 [ %10378, %10377 ], [ %10389, %10388 ]
  %10392 = icmp ne i32 %10391, 0
  br label %10393

10393:                                            ; preds = %10390, %10362
  %10394 = phi i1 [ true, %10362 ], [ %10392, %10390 ]
  %10395 = zext i1 %10394 to i32
  %10396 = icmp eq i32 0, %10395
  br i1 %10396, label %10397, label %10434

10397:                                            ; preds = %10393
  %10398 = load i64, ptr %275, align 8, !tbaa !13
  %10399 = uitofp i64 %10398 to double
  %10400 = fcmp olt double -1.000000e+00, %10399
  br i1 %10400, label %10401, label %10420

10401:                                            ; preds = %10397
  %10402 = load i64, ptr %275, align 8, !tbaa !13
  %10403 = uitofp i64 %10402 to double
  %10404 = fcmp ole double %10403, 1.000000e+00
  br i1 %10404, label %10405, label %10408

10405:                                            ; preds = %10401
  %10406 = load i64, ptr %275, align 8, !tbaa !13
  %10407 = uitofp i64 %10406 to double
  br label %10418

10408:                                            ; preds = %10401
  %10409 = load i64, ptr %275, align 8, !tbaa !13
  %10410 = uitofp i64 %10409 to double
  %10411 = fcmp olt double %10410, 1.000000e+00
  br i1 %10411, label %10412, label %10415

10412:                                            ; preds = %10408
  %10413 = load i64, ptr %275, align 8, !tbaa !13
  %10414 = uitofp i64 %10413 to double
  br label %10416

10415:                                            ; preds = %10408
  br label %10416

10416:                                            ; preds = %10415, %10412
  %10417 = phi double [ %10414, %10412 ], [ 1.000000e+00, %10415 ]
  br label %10418

10418:                                            ; preds = %10416, %10405
  %10419 = phi double [ %10407, %10405 ], [ %10417, %10416 ]
  br label %10430

10420:                                            ; preds = %10397
  %10421 = load i64, ptr %275, align 8, !tbaa !13
  %10422 = uitofp i64 %10421 to double
  %10423 = fcmp olt double -1.000000e+00, %10422
  br i1 %10423, label %10424, label %10427

10424:                                            ; preds = %10420
  %10425 = load i64, ptr %275, align 8, !tbaa !13
  %10426 = uitofp i64 %10425 to double
  br label %10428

10427:                                            ; preds = %10420
  br label %10428

10428:                                            ; preds = %10427, %10424
  %10429 = phi double [ %10426, %10424 ], [ -1.000000e+00, %10427 ]
  br label %10430

10430:                                            ; preds = %10428, %10418
  %10431 = phi double [ %10419, %10418 ], [ %10429, %10428 ]
  %10432 = fptoui double %10431 to i16
  %10433 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %10432, ptr %10433, align 2, !tbaa !15
  br label %10438

10434:                                            ; preds = %10393
  %10435 = load i64, ptr %275, align 8, !tbaa !13
  %10436 = trunc i64 %10435 to i16
  %10437 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %10436, ptr %10437, align 2, !tbaa !15
  br label %10438

10438:                                            ; preds = %10434, %10430
  br label %10439

10439:                                            ; preds = %10438, %10358
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %277) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %276) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %275) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %274) #3
  br label %10440

10440:                                            ; preds = %10439
  br label %10441

10441:                                            ; preds = %10440
  br label %12303

10442:                                            ; preds = %8680
  br label %10443

10443:                                            ; preds = %10442
  call void @llvm.lifetime.start.p0(i64 8, ptr %285) #3
  store double 5.000000e-01, ptr %285, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %286) #3
  %10444 = load ptr, ptr %10, align 8, !tbaa !5
  %10445 = load i32, ptr %10444, align 4, !tbaa !9
  store i32 %10445, ptr %286, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %287) #3
  store double 0.000000e+00, ptr %287, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %288) #3
  store double 0.000000e+00, ptr %288, align 8, !tbaa !11
  %10446 = load ptr, ptr %11, align 8, !tbaa !5
  %10447 = icmp ne ptr null, %10446
  br i1 %10447, label %10448, label %10470

10448:                                            ; preds = %10443
  %10449 = load ptr, ptr %12, align 8, !tbaa !5
  %10450 = icmp ne ptr null, %10449
  br i1 %10450, label %10451, label %10462

10451:                                            ; preds = %10448
  %10452 = load ptr, ptr %11, align 8, !tbaa !5
  %10453 = load i32, ptr %10452, align 4, !tbaa !9
  %10454 = load i32, ptr %286, align 4, !tbaa !9
  %10455 = icmp ule i32 %10453, %10454
  br i1 %10455, label %10456, label %10462

10456:                                            ; preds = %10451
  %10457 = load i32, ptr %286, align 4, !tbaa !9
  %10458 = load ptr, ptr %12, align 8, !tbaa !5
  %10459 = load i32, ptr %10458, align 4, !tbaa !9
  %10460 = icmp ule i32 %10457, %10459
  br i1 %10460, label %10461, label %10462

10461:                                            ; preds = %10456
  br label %10463

10462:                                            ; preds = %10456, %10451, %10448
  call void @__assert_fail(ptr noundef @.str.47, ptr noundef @.str.24, i32 noundef 473, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

10463:                                            ; preds = %10461
  %10464 = load ptr, ptr %11, align 8, !tbaa !5
  %10465 = load i32, ptr %10464, align 4, !tbaa !9
  %10466 = uitofp i32 %10465 to double
  store double %10466, ptr %287, align 8, !tbaa !11
  %10467 = load ptr, ptr %12, align 8, !tbaa !5
  %10468 = load i32, ptr %10467, align 4, !tbaa !9
  %10469 = uitofp i32 %10468 to double
  store double %10469, ptr %288, align 8, !tbaa !11
  br label %10470

10470:                                            ; preds = %10463, %10443
  %10471 = load i32, ptr %8, align 4, !tbaa !9
  %10472 = icmp ule i32 6, %10471
  br i1 %10472, label %10473, label %10709

10473:                                            ; preds = %10470
  %10474 = load double, ptr %287, align 8, !tbaa !11
  %10475 = load double, ptr %288, align 8, !tbaa !11
  %10476 = fcmp olt double %10474, %10475
  br i1 %10476, label %10477, label %10709

10477:                                            ; preds = %10473
  %10478 = load i32, ptr %8, align 4, !tbaa !9
  %10479 = icmp ule i32 15, %10478
  br i1 %10479, label %10480, label %10532

10480:                                            ; preds = %10477
  call void @llvm.lifetime.start.p0(i64 8, ptr %289) #3
  %10481 = load double, ptr %287, align 8, !tbaa !11
  %10482 = fcmp olt double 0.000000e+00, %10481
  br i1 %10482, label %10483, label %10485

10483:                                            ; preds = %10480
  %10484 = load double, ptr %287, align 8, !tbaa !11
  br label %10486

10485:                                            ; preds = %10480
  br label %10486

10486:                                            ; preds = %10485, %10483
  %10487 = phi double [ %10484, %10483 ], [ 0.000000e+00, %10485 ]
  store double %10487, ptr %289, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %290) #3
  %10488 = load double, ptr %288, align 8, !tbaa !11
  %10489 = fcmp olt double 0.000000e+00, %10488
  br i1 %10489, label %10490, label %10492

10490:                                            ; preds = %10486
  %10491 = load double, ptr %288, align 8, !tbaa !11
  br label %10493

10492:                                            ; preds = %10486
  br label %10493

10493:                                            ; preds = %10492, %10490
  %10494 = phi double [ %10491, %10490 ], [ 0.000000e+00, %10492 ]
  store double %10494, ptr %290, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %291) #3
  %10495 = load double, ptr %289, align 8, !tbaa !11
  %10496 = load double, ptr %290, align 8, !tbaa !11
  %10497 = fcmp olt double %10495, %10496
  br i1 %10497, label %10498, label %10506

10498:                                            ; preds = %10493
  %10499 = load double, ptr %288, align 8, !tbaa !11
  %10500 = load double, ptr %287, align 8, !tbaa !11
  %10501 = fsub double %10499, %10500
  %10502 = load double, ptr %290, align 8, !tbaa !11
  %10503 = load double, ptr %289, align 8, !tbaa !11
  %10504 = fsub double %10502, %10503
  %10505 = fdiv double %10501, %10504
  br label %10507

10506:                                            ; preds = %10493
  br label %10507

10507:                                            ; preds = %10506, %10498
  %10508 = phi double [ %10505, %10498 ], [ 1.000000e+00, %10506 ]
  store double %10508, ptr %291, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %292) #3
  %10509 = load double, ptr %291, align 8, !tbaa !11
  %10510 = load i32, ptr %286, align 4, !tbaa !9
  %10511 = icmp ult i32 0, %10510
  br i1 %10511, label %10512, label %10514

10512:                                            ; preds = %10507
  %10513 = load i32, ptr %286, align 4, !tbaa !9
  br label %10515

10514:                                            ; preds = %10507
  br label %10515

10515:                                            ; preds = %10514, %10512
  %10516 = phi i32 [ %10513, %10512 ], [ 0, %10514 ]
  %10517 = uitofp i32 %10516 to double
  %10518 = fmul double %10509, %10517
  store double %10518, ptr %292, align 8, !tbaa !11
  %10519 = load double, ptr %292, align 8, !tbaa !11
  %10520 = fcmp ole double 0.000000e+00, %10519
  br i1 %10520, label %10521, label %10524

10521:                                            ; preds = %10515
  %10522 = load double, ptr %292, align 8, !tbaa !11
  %10523 = fadd double %10522, 5.000000e-01
  br label %10527

10524:                                            ; preds = %10515
  %10525 = load double, ptr %292, align 8, !tbaa !11
  %10526 = fsub double %10525, 5.000000e-01
  br label %10527

10527:                                            ; preds = %10524, %10521
  %10528 = phi double [ %10523, %10521 ], [ %10526, %10524 ]
  %10529 = fptoui double %10528 to i32
  store i32 %10529, ptr %286, align 4, !tbaa !9
  %10530 = load double, ptr %289, align 8, !tbaa !11
  store double %10530, ptr %287, align 8, !tbaa !11
  %10531 = load double, ptr %290, align 8, !tbaa !11
  store double %10531, ptr %288, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %292) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %290) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %289) #3
  br label %10588

10532:                                            ; preds = %10477
  %10533 = load i32, ptr %8, align 4, !tbaa !9
  %10534 = icmp ugt i32 6, %10533
  br i1 %10534, label %10563, label %10535

10535:                                            ; preds = %10532
  %10536 = load i32, ptr %8, align 4, !tbaa !9
  %10537 = icmp ugt i32 15, %10536
  br i1 %10537, label %10538, label %10549

10538:                                            ; preds = %10535
  %10539 = load i32, ptr %9, align 4, !tbaa !9
  %10540 = icmp ugt i32 15, %10539
  br i1 %10540, label %10541, label %10546

10541:                                            ; preds = %10538
  %10542 = load i32, ptr %9, align 4, !tbaa !9
  %10543 = load i32, ptr %8, align 4, !tbaa !9
  %10544 = icmp ugt i32 %10542, %10543
  %10545 = zext i1 %10544 to i32
  br label %10547

10546:                                            ; preds = %10538
  br label %10547

10547:                                            ; preds = %10546, %10541
  %10548 = phi i32 [ %10545, %10541 ], [ 0, %10546 ]
  br label %10560

10549:                                            ; preds = %10535
  %10550 = load i32, ptr %9, align 4, !tbaa !9
  %10551 = icmp ugt i32 15, %10550
  br i1 %10551, label %10552, label %10553

10552:                                            ; preds = %10549
  br label %10558

10553:                                            ; preds = %10549
  %10554 = load i32, ptr %9, align 4, !tbaa !9
  %10555 = load i32, ptr %8, align 4, !tbaa !9
  %10556 = icmp ugt i32 %10554, %10555
  %10557 = zext i1 %10556 to i32
  br label %10558

10558:                                            ; preds = %10553, %10552
  %10559 = phi i32 [ 0, %10552 ], [ %10557, %10553 ]
  br label %10560

10560:                                            ; preds = %10558, %10547
  %10561 = phi i32 [ %10548, %10547 ], [ %10559, %10558 ]
  %10562 = icmp ne i32 %10561, 0
  br label %10563

10563:                                            ; preds = %10560, %10532
  %10564 = phi i1 [ true, %10532 ], [ %10562, %10560 ]
  %10565 = zext i1 %10564 to i32
  %10566 = icmp eq i32 0, %10565
  br i1 %10566, label %10567, label %10587

10567:                                            ; preds = %10563
  %10568 = load double, ptr %287, align 8, !tbaa !11
  %10569 = fcmp ogt double 0.000000e+00, %10568
  br i1 %10569, label %10570, label %10587

10570:                                            ; preds = %10567
  %10571 = load double, ptr %288, align 8, !tbaa !11
  %10572 = fcmp olt double 0.000000e+00, %10571
  br i1 %10572, label %10573, label %10587

10573:                                            ; preds = %10570
  %10574 = load double, ptr %287, align 8, !tbaa !11
  %10575 = fneg double %10574
  %10576 = load double, ptr %288, align 8, !tbaa !11
  %10577 = fcmp olt double %10575, %10576
  br i1 %10577, label %10578, label %10580

10578:                                            ; preds = %10573
  %10579 = load double, ptr %288, align 8, !tbaa !11
  br label %10583

10580:                                            ; preds = %10573
  %10581 = load double, ptr %287, align 8, !tbaa !11
  %10582 = fneg double %10581
  br label %10583

10583:                                            ; preds = %10580, %10578
  %10584 = phi double [ %10579, %10578 ], [ %10582, %10580 ]
  store double %10584, ptr %288, align 8, !tbaa !11
  %10585 = load double, ptr %288, align 8, !tbaa !11
  %10586 = fneg double %10585
  store double %10586, ptr %287, align 8, !tbaa !11
  br label %10587

10587:                                            ; preds = %10583, %10570, %10567, %10563
  br label %10588

10588:                                            ; preds = %10587, %10527
  call void @llvm.lifetime.start.p0(i64 8, ptr %293) #3
  %10589 = load double, ptr %287, align 8, !tbaa !11
  %10590 = fcmp ole double 0.000000e+00, %10589
  %10591 = zext i1 %10590 to i64
  %10592 = select i1 %10590, double 0.000000e+00, double -1.000000e+00
  store double %10592, ptr %293, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %294) #3
  %10593 = load double, ptr %288, align 8, !tbaa !11
  %10594 = fcmp ole double 0.000000e+00, %10593
  %10595 = zext i1 %10594 to i64
  %10596 = select i1 %10594, double 1.000000e+00, double 0.000000e+00
  store double %10596, ptr %294, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %295) #3
  %10597 = load i32, ptr %286, align 4, !tbaa !9
  %10598 = uitofp i32 %10597 to double
  %10599 = load double, ptr %287, align 8, !tbaa !11
  %10600 = fsub double %10598, %10599
  %10601 = load double, ptr %294, align 8, !tbaa !11
  %10602 = load double, ptr %293, align 8, !tbaa !11
  %10603 = fsub double %10601, %10602
  %10604 = fmul double %10600, %10603
  %10605 = load double, ptr %288, align 8, !tbaa !11
  %10606 = load double, ptr %287, align 8, !tbaa !11
  %10607 = fsub double %10605, %10606
  %10608 = fdiv double %10604, %10607
  %10609 = load double, ptr %293, align 8, !tbaa !11
  %10610 = fadd double %10608, %10609
  store double %10610, ptr %295, align 8, !tbaa !11
  %10611 = load double, ptr %293, align 8, !tbaa !11
  %10612 = load double, ptr %295, align 8, !tbaa !11
  %10613 = fcmp ole double 0.000000e+00, %10612
  br i1 %10613, label %10614, label %10617

10614:                                            ; preds = %10588
  %10615 = load double, ptr %295, align 8, !tbaa !11
  %10616 = fadd double %10615, 5.000000e-01
  br label %10620

10617:                                            ; preds = %10588
  %10618 = load double, ptr %295, align 8, !tbaa !11
  %10619 = fsub double %10618, 5.000000e-01
  br label %10620

10620:                                            ; preds = %10617, %10614
  %10621 = phi double [ %10616, %10614 ], [ %10619, %10617 ]
  %10622 = fcmp olt double %10611, %10621
  br i1 %10622, label %10623, label %10677

10623:                                            ; preds = %10620
  %10624 = load double, ptr %295, align 8, !tbaa !11
  %10625 = fcmp ole double 0.000000e+00, %10624
  br i1 %10625, label %10626, label %10629

10626:                                            ; preds = %10623
  %10627 = load double, ptr %295, align 8, !tbaa !11
  %10628 = fadd double %10627, 5.000000e-01
  br label %10632

10629:                                            ; preds = %10623
  %10630 = load double, ptr %295, align 8, !tbaa !11
  %10631 = fsub double %10630, 5.000000e-01
  br label %10632

10632:                                            ; preds = %10629, %10626
  %10633 = phi double [ %10628, %10626 ], [ %10631, %10629 ]
  %10634 = load double, ptr %294, align 8, !tbaa !11
  %10635 = fcmp ole double %10633, %10634
  br i1 %10635, label %10636, label %10647

10636:                                            ; preds = %10632
  %10637 = load double, ptr %295, align 8, !tbaa !11
  %10638 = fcmp ole double 0.000000e+00, %10637
  br i1 %10638, label %10639, label %10642

10639:                                            ; preds = %10636
  %10640 = load double, ptr %295, align 8, !tbaa !11
  %10641 = fadd double %10640, 5.000000e-01
  br label %10645

10642:                                            ; preds = %10636
  %10643 = load double, ptr %295, align 8, !tbaa !11
  %10644 = fsub double %10643, 5.000000e-01
  br label %10645

10645:                                            ; preds = %10642, %10639
  %10646 = phi double [ %10641, %10639 ], [ %10644, %10642 ]
  br label %10675

10647:                                            ; preds = %10632
  %10648 = load double, ptr %295, align 8, !tbaa !11
  %10649 = fcmp ole double 0.000000e+00, %10648
  br i1 %10649, label %10650, label %10653

10650:                                            ; preds = %10647
  %10651 = load double, ptr %295, align 8, !tbaa !11
  %10652 = fadd double %10651, 5.000000e-01
  br label %10656

10653:                                            ; preds = %10647
  %10654 = load double, ptr %295, align 8, !tbaa !11
  %10655 = fsub double %10654, 5.000000e-01
  br label %10656

10656:                                            ; preds = %10653, %10650
  %10657 = phi double [ %10652, %10650 ], [ %10655, %10653 ]
  %10658 = load double, ptr %294, align 8, !tbaa !11
  %10659 = fcmp olt double %10657, %10658
  br i1 %10659, label %10660, label %10671

10660:                                            ; preds = %10656
  %10661 = load double, ptr %295, align 8, !tbaa !11
  %10662 = fcmp ole double 0.000000e+00, %10661
  br i1 %10662, label %10663, label %10666

10663:                                            ; preds = %10660
  %10664 = load double, ptr %295, align 8, !tbaa !11
  %10665 = fadd double %10664, 5.000000e-01
  br label %10669

10666:                                            ; preds = %10660
  %10667 = load double, ptr %295, align 8, !tbaa !11
  %10668 = fsub double %10667, 5.000000e-01
  br label %10669

10669:                                            ; preds = %10666, %10663
  %10670 = phi double [ %10665, %10663 ], [ %10668, %10666 ]
  br label %10673

10671:                                            ; preds = %10656
  %10672 = load double, ptr %294, align 8, !tbaa !11
  br label %10673

10673:                                            ; preds = %10671, %10669
  %10674 = phi double [ %10670, %10669 ], [ %10672, %10671 ]
  br label %10675

10675:                                            ; preds = %10673, %10645
  %10676 = phi double [ %10646, %10645 ], [ %10674, %10673 ]
  br label %10705

10677:                                            ; preds = %10620
  %10678 = load double, ptr %293, align 8, !tbaa !11
  %10679 = load double, ptr %295, align 8, !tbaa !11
  %10680 = fcmp ole double 0.000000e+00, %10679
  br i1 %10680, label %10681, label %10684

10681:                                            ; preds = %10677
  %10682 = load double, ptr %295, align 8, !tbaa !11
  %10683 = fadd double %10682, 5.000000e-01
  br label %10687

10684:                                            ; preds = %10677
  %10685 = load double, ptr %295, align 8, !tbaa !11
  %10686 = fsub double %10685, 5.000000e-01
  br label %10687

10687:                                            ; preds = %10684, %10681
  %10688 = phi double [ %10683, %10681 ], [ %10686, %10684 ]
  %10689 = fcmp olt double %10678, %10688
  br i1 %10689, label %10690, label %10701

10690:                                            ; preds = %10687
  %10691 = load double, ptr %295, align 8, !tbaa !11
  %10692 = fcmp ole double 0.000000e+00, %10691
  br i1 %10692, label %10693, label %10696

10693:                                            ; preds = %10690
  %10694 = load double, ptr %295, align 8, !tbaa !11
  %10695 = fadd double %10694, 5.000000e-01
  br label %10699

10696:                                            ; preds = %10690
  %10697 = load double, ptr %295, align 8, !tbaa !11
  %10698 = fsub double %10697, 5.000000e-01
  br label %10699

10699:                                            ; preds = %10696, %10693
  %10700 = phi double [ %10695, %10693 ], [ %10698, %10696 ]
  br label %10703

10701:                                            ; preds = %10687
  %10702 = load double, ptr %293, align 8, !tbaa !11
  br label %10703

10703:                                            ; preds = %10701, %10699
  %10704 = phi double [ %10700, %10699 ], [ %10702, %10701 ]
  br label %10705

10705:                                            ; preds = %10703, %10675
  %10706 = phi double [ %10676, %10675 ], [ %10704, %10703 ]
  %10707 = fptoui double %10706 to i16
  %10708 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %10707, ptr %10708, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %295) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %294) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %293) #3
  br label %10786

10709:                                            ; preds = %10473, %10470
  %10710 = load i32, ptr %8, align 4, !tbaa !9
  %10711 = icmp ugt i32 6, %10710
  br i1 %10711, label %10740, label %10712

10712:                                            ; preds = %10709
  %10713 = load i32, ptr %8, align 4, !tbaa !9
  %10714 = icmp ugt i32 15, %10713
  br i1 %10714, label %10715, label %10726

10715:                                            ; preds = %10712
  %10716 = load i32, ptr %9, align 4, !tbaa !9
  %10717 = icmp ugt i32 15, %10716
  br i1 %10717, label %10718, label %10723

10718:                                            ; preds = %10715
  %10719 = load i32, ptr %9, align 4, !tbaa !9
  %10720 = load i32, ptr %8, align 4, !tbaa !9
  %10721 = icmp ugt i32 %10719, %10720
  %10722 = zext i1 %10721 to i32
  br label %10724

10723:                                            ; preds = %10715
  br label %10724

10724:                                            ; preds = %10723, %10718
  %10725 = phi i32 [ %10722, %10718 ], [ 0, %10723 ]
  br label %10737

10726:                                            ; preds = %10712
  %10727 = load i32, ptr %9, align 4, !tbaa !9
  %10728 = icmp ugt i32 15, %10727
  br i1 %10728, label %10729, label %10730

10729:                                            ; preds = %10726
  br label %10735

10730:                                            ; preds = %10726
  %10731 = load i32, ptr %9, align 4, !tbaa !9
  %10732 = load i32, ptr %8, align 4, !tbaa !9
  %10733 = icmp ugt i32 %10731, %10732
  %10734 = zext i1 %10733 to i32
  br label %10735

10735:                                            ; preds = %10730, %10729
  %10736 = phi i32 [ 0, %10729 ], [ %10734, %10730 ]
  br label %10737

10737:                                            ; preds = %10735, %10724
  %10738 = phi i32 [ %10725, %10724 ], [ %10736, %10735 ]
  %10739 = icmp ne i32 %10738, 0
  br label %10740

10740:                                            ; preds = %10737, %10709
  %10741 = phi i1 [ true, %10709 ], [ %10739, %10737 ]
  %10742 = zext i1 %10741 to i32
  %10743 = icmp eq i32 0, %10742
  br i1 %10743, label %10744, label %10781

10744:                                            ; preds = %10740
  %10745 = load i32, ptr %286, align 4, !tbaa !9
  %10746 = uitofp i32 %10745 to double
  %10747 = fcmp olt double -1.000000e+00, %10746
  br i1 %10747, label %10748, label %10767

10748:                                            ; preds = %10744
  %10749 = load i32, ptr %286, align 4, !tbaa !9
  %10750 = uitofp i32 %10749 to double
  %10751 = fcmp ole double %10750, 1.000000e+00
  br i1 %10751, label %10752, label %10755

10752:                                            ; preds = %10748
  %10753 = load i32, ptr %286, align 4, !tbaa !9
  %10754 = uitofp i32 %10753 to double
  br label %10765

10755:                                            ; preds = %10748
  %10756 = load i32, ptr %286, align 4, !tbaa !9
  %10757 = uitofp i32 %10756 to double
  %10758 = fcmp olt double %10757, 1.000000e+00
  br i1 %10758, label %10759, label %10762

10759:                                            ; preds = %10755
  %10760 = load i32, ptr %286, align 4, !tbaa !9
  %10761 = uitofp i32 %10760 to double
  br label %10763

10762:                                            ; preds = %10755
  br label %10763

10763:                                            ; preds = %10762, %10759
  %10764 = phi double [ %10761, %10759 ], [ 1.000000e+00, %10762 ]
  br label %10765

10765:                                            ; preds = %10763, %10752
  %10766 = phi double [ %10754, %10752 ], [ %10764, %10763 ]
  br label %10777

10767:                                            ; preds = %10744
  %10768 = load i32, ptr %286, align 4, !tbaa !9
  %10769 = uitofp i32 %10768 to double
  %10770 = fcmp olt double -1.000000e+00, %10769
  br i1 %10770, label %10771, label %10774

10771:                                            ; preds = %10767
  %10772 = load i32, ptr %286, align 4, !tbaa !9
  %10773 = uitofp i32 %10772 to double
  br label %10775

10774:                                            ; preds = %10767
  br label %10775

10775:                                            ; preds = %10774, %10771
  %10776 = phi double [ %10773, %10771 ], [ -1.000000e+00, %10774 ]
  br label %10777

10777:                                            ; preds = %10775, %10765
  %10778 = phi double [ %10766, %10765 ], [ %10776, %10775 ]
  %10779 = fptoui double %10778 to i16
  %10780 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %10779, ptr %10780, align 2, !tbaa !15
  br label %10785

10781:                                            ; preds = %10740
  %10782 = load i32, ptr %286, align 4, !tbaa !9
  %10783 = trunc i32 %10782 to i16
  %10784 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %10783, ptr %10784, align 2, !tbaa !15
  br label %10785

10785:                                            ; preds = %10781, %10777
  br label %10786

10786:                                            ; preds = %10785, %10705
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %288) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %287) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %286) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %285) #3
  br label %10787

10787:                                            ; preds = %10786
  br label %10788

10788:                                            ; preds = %10787
  br label %12303

10789:                                            ; preds = %8680
  br label %10790

10790:                                            ; preds = %10789
  call void @llvm.lifetime.start.p0(i64 8, ptr %296) #3
  store double 5.000000e-01, ptr %296, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %297) #3
  %10791 = load ptr, ptr %10, align 8, !tbaa !5
  %10792 = load i16, ptr %10791, align 2, !tbaa !15
  store i16 %10792, ptr %297, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %298) #3
  store double 0.000000e+00, ptr %298, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %299) #3
  store double 0.000000e+00, ptr %299, align 8, !tbaa !11
  %10793 = load ptr, ptr %11, align 8, !tbaa !5
  %10794 = icmp ne ptr null, %10793
  br i1 %10794, label %10795, label %10821

10795:                                            ; preds = %10790
  %10796 = load ptr, ptr %12, align 8, !tbaa !5
  %10797 = icmp ne ptr null, %10796
  br i1 %10797, label %10798, label %10813

10798:                                            ; preds = %10795
  %10799 = load ptr, ptr %11, align 8, !tbaa !5
  %10800 = load i16, ptr %10799, align 2, !tbaa !15
  %10801 = zext i16 %10800 to i32
  %10802 = load i16, ptr %297, align 2, !tbaa !15
  %10803 = zext i16 %10802 to i32
  %10804 = icmp sle i32 %10801, %10803
  br i1 %10804, label %10805, label %10813

10805:                                            ; preds = %10798
  %10806 = load i16, ptr %297, align 2, !tbaa !15
  %10807 = zext i16 %10806 to i32
  %10808 = load ptr, ptr %12, align 8, !tbaa !5
  %10809 = load i16, ptr %10808, align 2, !tbaa !15
  %10810 = zext i16 %10809 to i32
  %10811 = icmp sle i32 %10807, %10810
  br i1 %10811, label %10812, label %10813

10812:                                            ; preds = %10805
  br label %10814

10813:                                            ; preds = %10805, %10798, %10795
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.24, i32 noundef 473, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

10814:                                            ; preds = %10812
  %10815 = load ptr, ptr %11, align 8, !tbaa !5
  %10816 = load i16, ptr %10815, align 2, !tbaa !15
  %10817 = uitofp i16 %10816 to double
  store double %10817, ptr %298, align 8, !tbaa !11
  %10818 = load ptr, ptr %12, align 8, !tbaa !5
  %10819 = load i16, ptr %10818, align 2, !tbaa !15
  %10820 = uitofp i16 %10819 to double
  store double %10820, ptr %299, align 8, !tbaa !11
  br label %10821

10821:                                            ; preds = %10814, %10790
  %10822 = load i32, ptr %8, align 4, !tbaa !9
  %10823 = icmp ule i32 6, %10822
  br i1 %10823, label %10824, label %11062

10824:                                            ; preds = %10821
  %10825 = load double, ptr %298, align 8, !tbaa !11
  %10826 = load double, ptr %299, align 8, !tbaa !11
  %10827 = fcmp olt double %10825, %10826
  br i1 %10827, label %10828, label %11062

10828:                                            ; preds = %10824
  %10829 = load i32, ptr %8, align 4, !tbaa !9
  %10830 = icmp ule i32 15, %10829
  br i1 %10830, label %10831, label %10885

10831:                                            ; preds = %10828
  call void @llvm.lifetime.start.p0(i64 8, ptr %300) #3
  %10832 = load double, ptr %298, align 8, !tbaa !11
  %10833 = fcmp olt double 0.000000e+00, %10832
  br i1 %10833, label %10834, label %10836

10834:                                            ; preds = %10831
  %10835 = load double, ptr %298, align 8, !tbaa !11
  br label %10837

10836:                                            ; preds = %10831
  br label %10837

10837:                                            ; preds = %10836, %10834
  %10838 = phi double [ %10835, %10834 ], [ 0.000000e+00, %10836 ]
  store double %10838, ptr %300, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %301) #3
  %10839 = load double, ptr %299, align 8, !tbaa !11
  %10840 = fcmp olt double 0.000000e+00, %10839
  br i1 %10840, label %10841, label %10843

10841:                                            ; preds = %10837
  %10842 = load double, ptr %299, align 8, !tbaa !11
  br label %10844

10843:                                            ; preds = %10837
  br label %10844

10844:                                            ; preds = %10843, %10841
  %10845 = phi double [ %10842, %10841 ], [ 0.000000e+00, %10843 ]
  store double %10845, ptr %301, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %302) #3
  %10846 = load double, ptr %300, align 8, !tbaa !11
  %10847 = load double, ptr %301, align 8, !tbaa !11
  %10848 = fcmp olt double %10846, %10847
  br i1 %10848, label %10849, label %10857

10849:                                            ; preds = %10844
  %10850 = load double, ptr %299, align 8, !tbaa !11
  %10851 = load double, ptr %298, align 8, !tbaa !11
  %10852 = fsub double %10850, %10851
  %10853 = load double, ptr %301, align 8, !tbaa !11
  %10854 = load double, ptr %300, align 8, !tbaa !11
  %10855 = fsub double %10853, %10854
  %10856 = fdiv double %10852, %10855
  br label %10858

10857:                                            ; preds = %10844
  br label %10858

10858:                                            ; preds = %10857, %10849
  %10859 = phi double [ %10856, %10849 ], [ 1.000000e+00, %10857 ]
  store double %10859, ptr %302, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %303) #3
  %10860 = load double, ptr %302, align 8, !tbaa !11
  %10861 = load i16, ptr %297, align 2, !tbaa !15
  %10862 = zext i16 %10861 to i32
  %10863 = icmp slt i32 0, %10862
  br i1 %10863, label %10864, label %10867

10864:                                            ; preds = %10858
  %10865 = load i16, ptr %297, align 2, !tbaa !15
  %10866 = zext i16 %10865 to i32
  br label %10868

10867:                                            ; preds = %10858
  br label %10868

10868:                                            ; preds = %10867, %10864
  %10869 = phi i32 [ %10866, %10864 ], [ 0, %10867 ]
  %10870 = sitofp i32 %10869 to double
  %10871 = fmul double %10860, %10870
  store double %10871, ptr %303, align 8, !tbaa !11
  %10872 = load double, ptr %303, align 8, !tbaa !11
  %10873 = fcmp ole double 0.000000e+00, %10872
  br i1 %10873, label %10874, label %10877

10874:                                            ; preds = %10868
  %10875 = load double, ptr %303, align 8, !tbaa !11
  %10876 = fadd double %10875, 5.000000e-01
  br label %10880

10877:                                            ; preds = %10868
  %10878 = load double, ptr %303, align 8, !tbaa !11
  %10879 = fsub double %10878, 5.000000e-01
  br label %10880

10880:                                            ; preds = %10877, %10874
  %10881 = phi double [ %10876, %10874 ], [ %10879, %10877 ]
  %10882 = fptoui double %10881 to i16
  store i16 %10882, ptr %297, align 2, !tbaa !15
  %10883 = load double, ptr %300, align 8, !tbaa !11
  store double %10883, ptr %298, align 8, !tbaa !11
  %10884 = load double, ptr %301, align 8, !tbaa !11
  store double %10884, ptr %299, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %303) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %302) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %301) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %300) #3
  br label %10941

10885:                                            ; preds = %10828
  %10886 = load i32, ptr %8, align 4, !tbaa !9
  %10887 = icmp ugt i32 6, %10886
  br i1 %10887, label %10916, label %10888

10888:                                            ; preds = %10885
  %10889 = load i32, ptr %8, align 4, !tbaa !9
  %10890 = icmp ugt i32 15, %10889
  br i1 %10890, label %10891, label %10902

10891:                                            ; preds = %10888
  %10892 = load i32, ptr %9, align 4, !tbaa !9
  %10893 = icmp ugt i32 15, %10892
  br i1 %10893, label %10894, label %10899

10894:                                            ; preds = %10891
  %10895 = load i32, ptr %9, align 4, !tbaa !9
  %10896 = load i32, ptr %8, align 4, !tbaa !9
  %10897 = icmp ugt i32 %10895, %10896
  %10898 = zext i1 %10897 to i32
  br label %10900

10899:                                            ; preds = %10891
  br label %10900

10900:                                            ; preds = %10899, %10894
  %10901 = phi i32 [ %10898, %10894 ], [ 0, %10899 ]
  br label %10913

10902:                                            ; preds = %10888
  %10903 = load i32, ptr %9, align 4, !tbaa !9
  %10904 = icmp ugt i32 15, %10903
  br i1 %10904, label %10905, label %10906

10905:                                            ; preds = %10902
  br label %10911

10906:                                            ; preds = %10902
  %10907 = load i32, ptr %9, align 4, !tbaa !9
  %10908 = load i32, ptr %8, align 4, !tbaa !9
  %10909 = icmp ugt i32 %10907, %10908
  %10910 = zext i1 %10909 to i32
  br label %10911

10911:                                            ; preds = %10906, %10905
  %10912 = phi i32 [ 0, %10905 ], [ %10910, %10906 ]
  br label %10913

10913:                                            ; preds = %10911, %10900
  %10914 = phi i32 [ %10901, %10900 ], [ %10912, %10911 ]
  %10915 = icmp ne i32 %10914, 0
  br label %10916

10916:                                            ; preds = %10913, %10885
  %10917 = phi i1 [ true, %10885 ], [ %10915, %10913 ]
  %10918 = zext i1 %10917 to i32
  %10919 = icmp eq i32 0, %10918
  br i1 %10919, label %10920, label %10940

10920:                                            ; preds = %10916
  %10921 = load double, ptr %298, align 8, !tbaa !11
  %10922 = fcmp ogt double 0.000000e+00, %10921
  br i1 %10922, label %10923, label %10940

10923:                                            ; preds = %10920
  %10924 = load double, ptr %299, align 8, !tbaa !11
  %10925 = fcmp olt double 0.000000e+00, %10924
  br i1 %10925, label %10926, label %10940

10926:                                            ; preds = %10923
  %10927 = load double, ptr %298, align 8, !tbaa !11
  %10928 = fneg double %10927
  %10929 = load double, ptr %299, align 8, !tbaa !11
  %10930 = fcmp olt double %10928, %10929
  br i1 %10930, label %10931, label %10933

10931:                                            ; preds = %10926
  %10932 = load double, ptr %299, align 8, !tbaa !11
  br label %10936

10933:                                            ; preds = %10926
  %10934 = load double, ptr %298, align 8, !tbaa !11
  %10935 = fneg double %10934
  br label %10936

10936:                                            ; preds = %10933, %10931
  %10937 = phi double [ %10932, %10931 ], [ %10935, %10933 ]
  store double %10937, ptr %299, align 8, !tbaa !11
  %10938 = load double, ptr %299, align 8, !tbaa !11
  %10939 = fneg double %10938
  store double %10939, ptr %298, align 8, !tbaa !11
  br label %10940

10940:                                            ; preds = %10936, %10923, %10920, %10916
  br label %10941

10941:                                            ; preds = %10940, %10880
  call void @llvm.lifetime.start.p0(i64 8, ptr %304) #3
  %10942 = load double, ptr %298, align 8, !tbaa !11
  %10943 = fcmp ole double 0.000000e+00, %10942
  %10944 = zext i1 %10943 to i64
  %10945 = select i1 %10943, double 0.000000e+00, double -1.000000e+00
  store double %10945, ptr %304, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %305) #3
  %10946 = load double, ptr %299, align 8, !tbaa !11
  %10947 = fcmp ole double 0.000000e+00, %10946
  %10948 = zext i1 %10947 to i64
  %10949 = select i1 %10947, double 1.000000e+00, double 0.000000e+00
  store double %10949, ptr %305, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %306) #3
  %10950 = load i16, ptr %297, align 2, !tbaa !15
  %10951 = uitofp i16 %10950 to double
  %10952 = load double, ptr %298, align 8, !tbaa !11
  %10953 = fsub double %10951, %10952
  %10954 = load double, ptr %305, align 8, !tbaa !11
  %10955 = load double, ptr %304, align 8, !tbaa !11
  %10956 = fsub double %10954, %10955
  %10957 = fmul double %10953, %10956
  %10958 = load double, ptr %299, align 8, !tbaa !11
  %10959 = load double, ptr %298, align 8, !tbaa !11
  %10960 = fsub double %10958, %10959
  %10961 = fdiv double %10957, %10960
  %10962 = load double, ptr %304, align 8, !tbaa !11
  %10963 = fadd double %10961, %10962
  store double %10963, ptr %306, align 8, !tbaa !11
  %10964 = load double, ptr %304, align 8, !tbaa !11
  %10965 = load double, ptr %306, align 8, !tbaa !11
  %10966 = fcmp ole double 0.000000e+00, %10965
  br i1 %10966, label %10967, label %10970

10967:                                            ; preds = %10941
  %10968 = load double, ptr %306, align 8, !tbaa !11
  %10969 = fadd double %10968, 5.000000e-01
  br label %10973

10970:                                            ; preds = %10941
  %10971 = load double, ptr %306, align 8, !tbaa !11
  %10972 = fsub double %10971, 5.000000e-01
  br label %10973

10973:                                            ; preds = %10970, %10967
  %10974 = phi double [ %10969, %10967 ], [ %10972, %10970 ]
  %10975 = fcmp olt double %10964, %10974
  br i1 %10975, label %10976, label %11030

10976:                                            ; preds = %10973
  %10977 = load double, ptr %306, align 8, !tbaa !11
  %10978 = fcmp ole double 0.000000e+00, %10977
  br i1 %10978, label %10979, label %10982

10979:                                            ; preds = %10976
  %10980 = load double, ptr %306, align 8, !tbaa !11
  %10981 = fadd double %10980, 5.000000e-01
  br label %10985

10982:                                            ; preds = %10976
  %10983 = load double, ptr %306, align 8, !tbaa !11
  %10984 = fsub double %10983, 5.000000e-01
  br label %10985

10985:                                            ; preds = %10982, %10979
  %10986 = phi double [ %10981, %10979 ], [ %10984, %10982 ]
  %10987 = load double, ptr %305, align 8, !tbaa !11
  %10988 = fcmp ole double %10986, %10987
  br i1 %10988, label %10989, label %11000

10989:                                            ; preds = %10985
  %10990 = load double, ptr %306, align 8, !tbaa !11
  %10991 = fcmp ole double 0.000000e+00, %10990
  br i1 %10991, label %10992, label %10995

10992:                                            ; preds = %10989
  %10993 = load double, ptr %306, align 8, !tbaa !11
  %10994 = fadd double %10993, 5.000000e-01
  br label %10998

10995:                                            ; preds = %10989
  %10996 = load double, ptr %306, align 8, !tbaa !11
  %10997 = fsub double %10996, 5.000000e-01
  br label %10998

10998:                                            ; preds = %10995, %10992
  %10999 = phi double [ %10994, %10992 ], [ %10997, %10995 ]
  br label %11028

11000:                                            ; preds = %10985
  %11001 = load double, ptr %306, align 8, !tbaa !11
  %11002 = fcmp ole double 0.000000e+00, %11001
  br i1 %11002, label %11003, label %11006

11003:                                            ; preds = %11000
  %11004 = load double, ptr %306, align 8, !tbaa !11
  %11005 = fadd double %11004, 5.000000e-01
  br label %11009

11006:                                            ; preds = %11000
  %11007 = load double, ptr %306, align 8, !tbaa !11
  %11008 = fsub double %11007, 5.000000e-01
  br label %11009

11009:                                            ; preds = %11006, %11003
  %11010 = phi double [ %11005, %11003 ], [ %11008, %11006 ]
  %11011 = load double, ptr %305, align 8, !tbaa !11
  %11012 = fcmp olt double %11010, %11011
  br i1 %11012, label %11013, label %11024

11013:                                            ; preds = %11009
  %11014 = load double, ptr %306, align 8, !tbaa !11
  %11015 = fcmp ole double 0.000000e+00, %11014
  br i1 %11015, label %11016, label %11019

11016:                                            ; preds = %11013
  %11017 = load double, ptr %306, align 8, !tbaa !11
  %11018 = fadd double %11017, 5.000000e-01
  br label %11022

11019:                                            ; preds = %11013
  %11020 = load double, ptr %306, align 8, !tbaa !11
  %11021 = fsub double %11020, 5.000000e-01
  br label %11022

11022:                                            ; preds = %11019, %11016
  %11023 = phi double [ %11018, %11016 ], [ %11021, %11019 ]
  br label %11026

11024:                                            ; preds = %11009
  %11025 = load double, ptr %305, align 8, !tbaa !11
  br label %11026

11026:                                            ; preds = %11024, %11022
  %11027 = phi double [ %11023, %11022 ], [ %11025, %11024 ]
  br label %11028

11028:                                            ; preds = %11026, %10998
  %11029 = phi double [ %10999, %10998 ], [ %11027, %11026 ]
  br label %11058

11030:                                            ; preds = %10973
  %11031 = load double, ptr %304, align 8, !tbaa !11
  %11032 = load double, ptr %306, align 8, !tbaa !11
  %11033 = fcmp ole double 0.000000e+00, %11032
  br i1 %11033, label %11034, label %11037

11034:                                            ; preds = %11030
  %11035 = load double, ptr %306, align 8, !tbaa !11
  %11036 = fadd double %11035, 5.000000e-01
  br label %11040

11037:                                            ; preds = %11030
  %11038 = load double, ptr %306, align 8, !tbaa !11
  %11039 = fsub double %11038, 5.000000e-01
  br label %11040

11040:                                            ; preds = %11037, %11034
  %11041 = phi double [ %11036, %11034 ], [ %11039, %11037 ]
  %11042 = fcmp olt double %11031, %11041
  br i1 %11042, label %11043, label %11054

11043:                                            ; preds = %11040
  %11044 = load double, ptr %306, align 8, !tbaa !11
  %11045 = fcmp ole double 0.000000e+00, %11044
  br i1 %11045, label %11046, label %11049

11046:                                            ; preds = %11043
  %11047 = load double, ptr %306, align 8, !tbaa !11
  %11048 = fadd double %11047, 5.000000e-01
  br label %11052

11049:                                            ; preds = %11043
  %11050 = load double, ptr %306, align 8, !tbaa !11
  %11051 = fsub double %11050, 5.000000e-01
  br label %11052

11052:                                            ; preds = %11049, %11046
  %11053 = phi double [ %11048, %11046 ], [ %11051, %11049 ]
  br label %11056

11054:                                            ; preds = %11040
  %11055 = load double, ptr %304, align 8, !tbaa !11
  br label %11056

11056:                                            ; preds = %11054, %11052
  %11057 = phi double [ %11053, %11052 ], [ %11055, %11054 ]
  br label %11058

11058:                                            ; preds = %11056, %11028
  %11059 = phi double [ %11029, %11028 ], [ %11057, %11056 ]
  %11060 = fptoui double %11059 to i16
  %11061 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %11060, ptr %11061, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %306) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %305) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %304) #3
  br label %11145

11062:                                            ; preds = %10824, %10821
  %11063 = load i32, ptr %8, align 4, !tbaa !9
  %11064 = icmp ugt i32 6, %11063
  br i1 %11064, label %11093, label %11065

11065:                                            ; preds = %11062
  %11066 = load i32, ptr %8, align 4, !tbaa !9
  %11067 = icmp ugt i32 15, %11066
  br i1 %11067, label %11068, label %11079

11068:                                            ; preds = %11065
  %11069 = load i32, ptr %9, align 4, !tbaa !9
  %11070 = icmp ugt i32 15, %11069
  br i1 %11070, label %11071, label %11076

11071:                                            ; preds = %11068
  %11072 = load i32, ptr %9, align 4, !tbaa !9
  %11073 = load i32, ptr %8, align 4, !tbaa !9
  %11074 = icmp ugt i32 %11072, %11073
  %11075 = zext i1 %11074 to i32
  br label %11077

11076:                                            ; preds = %11068
  br label %11077

11077:                                            ; preds = %11076, %11071
  %11078 = phi i32 [ %11075, %11071 ], [ 0, %11076 ]
  br label %11090

11079:                                            ; preds = %11065
  %11080 = load i32, ptr %9, align 4, !tbaa !9
  %11081 = icmp ugt i32 15, %11080
  br i1 %11081, label %11082, label %11083

11082:                                            ; preds = %11079
  br label %11088

11083:                                            ; preds = %11079
  %11084 = load i32, ptr %9, align 4, !tbaa !9
  %11085 = load i32, ptr %8, align 4, !tbaa !9
  %11086 = icmp ugt i32 %11084, %11085
  %11087 = zext i1 %11086 to i32
  br label %11088

11088:                                            ; preds = %11083, %11082
  %11089 = phi i32 [ 0, %11082 ], [ %11087, %11083 ]
  br label %11090

11090:                                            ; preds = %11088, %11077
  %11091 = phi i32 [ %11078, %11077 ], [ %11089, %11088 ]
  %11092 = icmp ne i32 %11091, 0
  br label %11093

11093:                                            ; preds = %11090, %11062
  %11094 = phi i1 [ true, %11062 ], [ %11092, %11090 ]
  %11095 = zext i1 %11094 to i32
  %11096 = icmp eq i32 0, %11095
  br i1 %11096, label %11097, label %11141

11097:                                            ; preds = %11093
  %11098 = load i16, ptr %297, align 2, !tbaa !15
  %11099 = zext i16 %11098 to i32
  %11100 = sitofp i32 %11099 to double
  %11101 = fcmp olt double -1.000000e+00, %11100
  br i1 %11101, label %11102, label %11125

11102:                                            ; preds = %11097
  %11103 = load i16, ptr %297, align 2, !tbaa !15
  %11104 = zext i16 %11103 to i32
  %11105 = sitofp i32 %11104 to double
  %11106 = fcmp ole double %11105, 1.000000e+00
  br i1 %11106, label %11107, label %11111

11107:                                            ; preds = %11102
  %11108 = load i16, ptr %297, align 2, !tbaa !15
  %11109 = zext i16 %11108 to i32
  %11110 = sitofp i32 %11109 to double
  br label %11123

11111:                                            ; preds = %11102
  %11112 = load i16, ptr %297, align 2, !tbaa !15
  %11113 = zext i16 %11112 to i32
  %11114 = sitofp i32 %11113 to double
  %11115 = fcmp olt double %11114, 1.000000e+00
  br i1 %11115, label %11116, label %11120

11116:                                            ; preds = %11111
  %11117 = load i16, ptr %297, align 2, !tbaa !15
  %11118 = zext i16 %11117 to i32
  %11119 = sitofp i32 %11118 to double
  br label %11121

11120:                                            ; preds = %11111
  br label %11121

11121:                                            ; preds = %11120, %11116
  %11122 = phi double [ %11119, %11116 ], [ 1.000000e+00, %11120 ]
  br label %11123

11123:                                            ; preds = %11121, %11107
  %11124 = phi double [ %11110, %11107 ], [ %11122, %11121 ]
  br label %11137

11125:                                            ; preds = %11097
  %11126 = load i16, ptr %297, align 2, !tbaa !15
  %11127 = zext i16 %11126 to i32
  %11128 = sitofp i32 %11127 to double
  %11129 = fcmp olt double -1.000000e+00, %11128
  br i1 %11129, label %11130, label %11134

11130:                                            ; preds = %11125
  %11131 = load i16, ptr %297, align 2, !tbaa !15
  %11132 = zext i16 %11131 to i32
  %11133 = sitofp i32 %11132 to double
  br label %11135

11134:                                            ; preds = %11125
  br label %11135

11135:                                            ; preds = %11134, %11130
  %11136 = phi double [ %11133, %11130 ], [ -1.000000e+00, %11134 ]
  br label %11137

11137:                                            ; preds = %11135, %11123
  %11138 = phi double [ %11124, %11123 ], [ %11136, %11135 ]
  %11139 = fptoui double %11138 to i16
  %11140 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %11139, ptr %11140, align 2, !tbaa !15
  br label %11144

11141:                                            ; preds = %11093
  %11142 = load i16, ptr %297, align 2, !tbaa !15
  %11143 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %11142, ptr %11143, align 2, !tbaa !15
  br label %11144

11144:                                            ; preds = %11141, %11137
  br label %11145

11145:                                            ; preds = %11144, %11058
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %299) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %298) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %297) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %296) #3
  br label %11146

11146:                                            ; preds = %11145
  br label %11147

11147:                                            ; preds = %11146
  br label %12303

11148:                                            ; preds = %8680
  br label %11149

11149:                                            ; preds = %11148
  call void @llvm.lifetime.start.p0(i64 8, ptr %307) #3
  store double 5.000000e-01, ptr %307, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %308) #3
  %11150 = load ptr, ptr %10, align 8, !tbaa !5
  %11151 = load i8, ptr %11150, align 1, !tbaa !17
  store i8 %11151, ptr %308, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %309) #3
  store double 0.000000e+00, ptr %309, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %310) #3
  store double 0.000000e+00, ptr %310, align 8, !tbaa !11
  %11152 = load ptr, ptr %11, align 8, !tbaa !5
  %11153 = icmp ne ptr null, %11152
  br i1 %11153, label %11154, label %11180

11154:                                            ; preds = %11149
  %11155 = load ptr, ptr %12, align 8, !tbaa !5
  %11156 = icmp ne ptr null, %11155
  br i1 %11156, label %11157, label %11172

11157:                                            ; preds = %11154
  %11158 = load ptr, ptr %11, align 8, !tbaa !5
  %11159 = load i8, ptr %11158, align 1, !tbaa !17
  %11160 = zext i8 %11159 to i32
  %11161 = load i8, ptr %308, align 1, !tbaa !17
  %11162 = zext i8 %11161 to i32
  %11163 = icmp sle i32 %11160, %11162
  br i1 %11163, label %11164, label %11172

11164:                                            ; preds = %11157
  %11165 = load i8, ptr %308, align 1, !tbaa !17
  %11166 = zext i8 %11165 to i32
  %11167 = load ptr, ptr %12, align 8, !tbaa !5
  %11168 = load i8, ptr %11167, align 1, !tbaa !17
  %11169 = zext i8 %11168 to i32
  %11170 = icmp sle i32 %11166, %11169
  br i1 %11170, label %11171, label %11172

11171:                                            ; preds = %11164
  br label %11173

11172:                                            ; preds = %11164, %11157, %11154
  call void @__assert_fail(ptr noundef @.str.49, ptr noundef @.str.24, i32 noundef 473, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

11173:                                            ; preds = %11171
  %11174 = load ptr, ptr %11, align 8, !tbaa !5
  %11175 = load i8, ptr %11174, align 1, !tbaa !17
  %11176 = uitofp i8 %11175 to double
  store double %11176, ptr %309, align 8, !tbaa !11
  %11177 = load ptr, ptr %12, align 8, !tbaa !5
  %11178 = load i8, ptr %11177, align 1, !tbaa !17
  %11179 = uitofp i8 %11178 to double
  store double %11179, ptr %310, align 8, !tbaa !11
  br label %11180

11180:                                            ; preds = %11173, %11149
  %11181 = load i32, ptr %8, align 4, !tbaa !9
  %11182 = icmp ule i32 6, %11181
  br i1 %11182, label %11183, label %11421

11183:                                            ; preds = %11180
  %11184 = load double, ptr %309, align 8, !tbaa !11
  %11185 = load double, ptr %310, align 8, !tbaa !11
  %11186 = fcmp olt double %11184, %11185
  br i1 %11186, label %11187, label %11421

11187:                                            ; preds = %11183
  %11188 = load i32, ptr %8, align 4, !tbaa !9
  %11189 = icmp ule i32 15, %11188
  br i1 %11189, label %11190, label %11244

11190:                                            ; preds = %11187
  call void @llvm.lifetime.start.p0(i64 8, ptr %311) #3
  %11191 = load double, ptr %309, align 8, !tbaa !11
  %11192 = fcmp olt double 0.000000e+00, %11191
  br i1 %11192, label %11193, label %11195

11193:                                            ; preds = %11190
  %11194 = load double, ptr %309, align 8, !tbaa !11
  br label %11196

11195:                                            ; preds = %11190
  br label %11196

11196:                                            ; preds = %11195, %11193
  %11197 = phi double [ %11194, %11193 ], [ 0.000000e+00, %11195 ]
  store double %11197, ptr %311, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %312) #3
  %11198 = load double, ptr %310, align 8, !tbaa !11
  %11199 = fcmp olt double 0.000000e+00, %11198
  br i1 %11199, label %11200, label %11202

11200:                                            ; preds = %11196
  %11201 = load double, ptr %310, align 8, !tbaa !11
  br label %11203

11202:                                            ; preds = %11196
  br label %11203

11203:                                            ; preds = %11202, %11200
  %11204 = phi double [ %11201, %11200 ], [ 0.000000e+00, %11202 ]
  store double %11204, ptr %312, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %313) #3
  %11205 = load double, ptr %311, align 8, !tbaa !11
  %11206 = load double, ptr %312, align 8, !tbaa !11
  %11207 = fcmp olt double %11205, %11206
  br i1 %11207, label %11208, label %11216

11208:                                            ; preds = %11203
  %11209 = load double, ptr %310, align 8, !tbaa !11
  %11210 = load double, ptr %309, align 8, !tbaa !11
  %11211 = fsub double %11209, %11210
  %11212 = load double, ptr %312, align 8, !tbaa !11
  %11213 = load double, ptr %311, align 8, !tbaa !11
  %11214 = fsub double %11212, %11213
  %11215 = fdiv double %11211, %11214
  br label %11217

11216:                                            ; preds = %11203
  br label %11217

11217:                                            ; preds = %11216, %11208
  %11218 = phi double [ %11215, %11208 ], [ 1.000000e+00, %11216 ]
  store double %11218, ptr %313, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %314) #3
  %11219 = load double, ptr %313, align 8, !tbaa !11
  %11220 = load i8, ptr %308, align 1, !tbaa !17
  %11221 = zext i8 %11220 to i32
  %11222 = icmp slt i32 0, %11221
  br i1 %11222, label %11223, label %11226

11223:                                            ; preds = %11217
  %11224 = load i8, ptr %308, align 1, !tbaa !17
  %11225 = zext i8 %11224 to i32
  br label %11227

11226:                                            ; preds = %11217
  br label %11227

11227:                                            ; preds = %11226, %11223
  %11228 = phi i32 [ %11225, %11223 ], [ 0, %11226 ]
  %11229 = sitofp i32 %11228 to double
  %11230 = fmul double %11219, %11229
  store double %11230, ptr %314, align 8, !tbaa !11
  %11231 = load double, ptr %314, align 8, !tbaa !11
  %11232 = fcmp ole double 0.000000e+00, %11231
  br i1 %11232, label %11233, label %11236

11233:                                            ; preds = %11227
  %11234 = load double, ptr %314, align 8, !tbaa !11
  %11235 = fadd double %11234, 5.000000e-01
  br label %11239

11236:                                            ; preds = %11227
  %11237 = load double, ptr %314, align 8, !tbaa !11
  %11238 = fsub double %11237, 5.000000e-01
  br label %11239

11239:                                            ; preds = %11236, %11233
  %11240 = phi double [ %11235, %11233 ], [ %11238, %11236 ]
  %11241 = fptoui double %11240 to i8
  store i8 %11241, ptr %308, align 1, !tbaa !17
  %11242 = load double, ptr %311, align 8, !tbaa !11
  store double %11242, ptr %309, align 8, !tbaa !11
  %11243 = load double, ptr %312, align 8, !tbaa !11
  store double %11243, ptr %310, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %314) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %313) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %312) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %311) #3
  br label %11300

11244:                                            ; preds = %11187
  %11245 = load i32, ptr %8, align 4, !tbaa !9
  %11246 = icmp ugt i32 6, %11245
  br i1 %11246, label %11275, label %11247

11247:                                            ; preds = %11244
  %11248 = load i32, ptr %8, align 4, !tbaa !9
  %11249 = icmp ugt i32 15, %11248
  br i1 %11249, label %11250, label %11261

11250:                                            ; preds = %11247
  %11251 = load i32, ptr %9, align 4, !tbaa !9
  %11252 = icmp ugt i32 15, %11251
  br i1 %11252, label %11253, label %11258

11253:                                            ; preds = %11250
  %11254 = load i32, ptr %9, align 4, !tbaa !9
  %11255 = load i32, ptr %8, align 4, !tbaa !9
  %11256 = icmp ugt i32 %11254, %11255
  %11257 = zext i1 %11256 to i32
  br label %11259

11258:                                            ; preds = %11250
  br label %11259

11259:                                            ; preds = %11258, %11253
  %11260 = phi i32 [ %11257, %11253 ], [ 0, %11258 ]
  br label %11272

11261:                                            ; preds = %11247
  %11262 = load i32, ptr %9, align 4, !tbaa !9
  %11263 = icmp ugt i32 15, %11262
  br i1 %11263, label %11264, label %11265

11264:                                            ; preds = %11261
  br label %11270

11265:                                            ; preds = %11261
  %11266 = load i32, ptr %9, align 4, !tbaa !9
  %11267 = load i32, ptr %8, align 4, !tbaa !9
  %11268 = icmp ugt i32 %11266, %11267
  %11269 = zext i1 %11268 to i32
  br label %11270

11270:                                            ; preds = %11265, %11264
  %11271 = phi i32 [ 0, %11264 ], [ %11269, %11265 ]
  br label %11272

11272:                                            ; preds = %11270, %11259
  %11273 = phi i32 [ %11260, %11259 ], [ %11271, %11270 ]
  %11274 = icmp ne i32 %11273, 0
  br label %11275

11275:                                            ; preds = %11272, %11244
  %11276 = phi i1 [ true, %11244 ], [ %11274, %11272 ]
  %11277 = zext i1 %11276 to i32
  %11278 = icmp eq i32 0, %11277
  br i1 %11278, label %11279, label %11299

11279:                                            ; preds = %11275
  %11280 = load double, ptr %309, align 8, !tbaa !11
  %11281 = fcmp ogt double 0.000000e+00, %11280
  br i1 %11281, label %11282, label %11299

11282:                                            ; preds = %11279
  %11283 = load double, ptr %310, align 8, !tbaa !11
  %11284 = fcmp olt double 0.000000e+00, %11283
  br i1 %11284, label %11285, label %11299

11285:                                            ; preds = %11282
  %11286 = load double, ptr %309, align 8, !tbaa !11
  %11287 = fneg double %11286
  %11288 = load double, ptr %310, align 8, !tbaa !11
  %11289 = fcmp olt double %11287, %11288
  br i1 %11289, label %11290, label %11292

11290:                                            ; preds = %11285
  %11291 = load double, ptr %310, align 8, !tbaa !11
  br label %11295

11292:                                            ; preds = %11285
  %11293 = load double, ptr %309, align 8, !tbaa !11
  %11294 = fneg double %11293
  br label %11295

11295:                                            ; preds = %11292, %11290
  %11296 = phi double [ %11291, %11290 ], [ %11294, %11292 ]
  store double %11296, ptr %310, align 8, !tbaa !11
  %11297 = load double, ptr %310, align 8, !tbaa !11
  %11298 = fneg double %11297
  store double %11298, ptr %309, align 8, !tbaa !11
  br label %11299

11299:                                            ; preds = %11295, %11282, %11279, %11275
  br label %11300

11300:                                            ; preds = %11299, %11239
  call void @llvm.lifetime.start.p0(i64 8, ptr %315) #3
  %11301 = load double, ptr %309, align 8, !tbaa !11
  %11302 = fcmp ole double 0.000000e+00, %11301
  %11303 = zext i1 %11302 to i64
  %11304 = select i1 %11302, double 0.000000e+00, double -1.000000e+00
  store double %11304, ptr %315, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %316) #3
  %11305 = load double, ptr %310, align 8, !tbaa !11
  %11306 = fcmp ole double 0.000000e+00, %11305
  %11307 = zext i1 %11306 to i64
  %11308 = select i1 %11306, double 1.000000e+00, double 0.000000e+00
  store double %11308, ptr %316, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %317) #3
  %11309 = load i8, ptr %308, align 1, !tbaa !17
  %11310 = uitofp i8 %11309 to double
  %11311 = load double, ptr %309, align 8, !tbaa !11
  %11312 = fsub double %11310, %11311
  %11313 = load double, ptr %316, align 8, !tbaa !11
  %11314 = load double, ptr %315, align 8, !tbaa !11
  %11315 = fsub double %11313, %11314
  %11316 = fmul double %11312, %11315
  %11317 = load double, ptr %310, align 8, !tbaa !11
  %11318 = load double, ptr %309, align 8, !tbaa !11
  %11319 = fsub double %11317, %11318
  %11320 = fdiv double %11316, %11319
  %11321 = load double, ptr %315, align 8, !tbaa !11
  %11322 = fadd double %11320, %11321
  store double %11322, ptr %317, align 8, !tbaa !11
  %11323 = load double, ptr %315, align 8, !tbaa !11
  %11324 = load double, ptr %317, align 8, !tbaa !11
  %11325 = fcmp ole double 0.000000e+00, %11324
  br i1 %11325, label %11326, label %11329

11326:                                            ; preds = %11300
  %11327 = load double, ptr %317, align 8, !tbaa !11
  %11328 = fadd double %11327, 5.000000e-01
  br label %11332

11329:                                            ; preds = %11300
  %11330 = load double, ptr %317, align 8, !tbaa !11
  %11331 = fsub double %11330, 5.000000e-01
  br label %11332

11332:                                            ; preds = %11329, %11326
  %11333 = phi double [ %11328, %11326 ], [ %11331, %11329 ]
  %11334 = fcmp olt double %11323, %11333
  br i1 %11334, label %11335, label %11389

11335:                                            ; preds = %11332
  %11336 = load double, ptr %317, align 8, !tbaa !11
  %11337 = fcmp ole double 0.000000e+00, %11336
  br i1 %11337, label %11338, label %11341

11338:                                            ; preds = %11335
  %11339 = load double, ptr %317, align 8, !tbaa !11
  %11340 = fadd double %11339, 5.000000e-01
  br label %11344

11341:                                            ; preds = %11335
  %11342 = load double, ptr %317, align 8, !tbaa !11
  %11343 = fsub double %11342, 5.000000e-01
  br label %11344

11344:                                            ; preds = %11341, %11338
  %11345 = phi double [ %11340, %11338 ], [ %11343, %11341 ]
  %11346 = load double, ptr %316, align 8, !tbaa !11
  %11347 = fcmp ole double %11345, %11346
  br i1 %11347, label %11348, label %11359

11348:                                            ; preds = %11344
  %11349 = load double, ptr %317, align 8, !tbaa !11
  %11350 = fcmp ole double 0.000000e+00, %11349
  br i1 %11350, label %11351, label %11354

11351:                                            ; preds = %11348
  %11352 = load double, ptr %317, align 8, !tbaa !11
  %11353 = fadd double %11352, 5.000000e-01
  br label %11357

11354:                                            ; preds = %11348
  %11355 = load double, ptr %317, align 8, !tbaa !11
  %11356 = fsub double %11355, 5.000000e-01
  br label %11357

11357:                                            ; preds = %11354, %11351
  %11358 = phi double [ %11353, %11351 ], [ %11356, %11354 ]
  br label %11387

11359:                                            ; preds = %11344
  %11360 = load double, ptr %317, align 8, !tbaa !11
  %11361 = fcmp ole double 0.000000e+00, %11360
  br i1 %11361, label %11362, label %11365

11362:                                            ; preds = %11359
  %11363 = load double, ptr %317, align 8, !tbaa !11
  %11364 = fadd double %11363, 5.000000e-01
  br label %11368

11365:                                            ; preds = %11359
  %11366 = load double, ptr %317, align 8, !tbaa !11
  %11367 = fsub double %11366, 5.000000e-01
  br label %11368

11368:                                            ; preds = %11365, %11362
  %11369 = phi double [ %11364, %11362 ], [ %11367, %11365 ]
  %11370 = load double, ptr %316, align 8, !tbaa !11
  %11371 = fcmp olt double %11369, %11370
  br i1 %11371, label %11372, label %11383

11372:                                            ; preds = %11368
  %11373 = load double, ptr %317, align 8, !tbaa !11
  %11374 = fcmp ole double 0.000000e+00, %11373
  br i1 %11374, label %11375, label %11378

11375:                                            ; preds = %11372
  %11376 = load double, ptr %317, align 8, !tbaa !11
  %11377 = fadd double %11376, 5.000000e-01
  br label %11381

11378:                                            ; preds = %11372
  %11379 = load double, ptr %317, align 8, !tbaa !11
  %11380 = fsub double %11379, 5.000000e-01
  br label %11381

11381:                                            ; preds = %11378, %11375
  %11382 = phi double [ %11377, %11375 ], [ %11380, %11378 ]
  br label %11385

11383:                                            ; preds = %11368
  %11384 = load double, ptr %316, align 8, !tbaa !11
  br label %11385

11385:                                            ; preds = %11383, %11381
  %11386 = phi double [ %11382, %11381 ], [ %11384, %11383 ]
  br label %11387

11387:                                            ; preds = %11385, %11357
  %11388 = phi double [ %11358, %11357 ], [ %11386, %11385 ]
  br label %11417

11389:                                            ; preds = %11332
  %11390 = load double, ptr %315, align 8, !tbaa !11
  %11391 = load double, ptr %317, align 8, !tbaa !11
  %11392 = fcmp ole double 0.000000e+00, %11391
  br i1 %11392, label %11393, label %11396

11393:                                            ; preds = %11389
  %11394 = load double, ptr %317, align 8, !tbaa !11
  %11395 = fadd double %11394, 5.000000e-01
  br label %11399

11396:                                            ; preds = %11389
  %11397 = load double, ptr %317, align 8, !tbaa !11
  %11398 = fsub double %11397, 5.000000e-01
  br label %11399

11399:                                            ; preds = %11396, %11393
  %11400 = phi double [ %11395, %11393 ], [ %11398, %11396 ]
  %11401 = fcmp olt double %11390, %11400
  br i1 %11401, label %11402, label %11413

11402:                                            ; preds = %11399
  %11403 = load double, ptr %317, align 8, !tbaa !11
  %11404 = fcmp ole double 0.000000e+00, %11403
  br i1 %11404, label %11405, label %11408

11405:                                            ; preds = %11402
  %11406 = load double, ptr %317, align 8, !tbaa !11
  %11407 = fadd double %11406, 5.000000e-01
  br label %11411

11408:                                            ; preds = %11402
  %11409 = load double, ptr %317, align 8, !tbaa !11
  %11410 = fsub double %11409, 5.000000e-01
  br label %11411

11411:                                            ; preds = %11408, %11405
  %11412 = phi double [ %11407, %11405 ], [ %11410, %11408 ]
  br label %11415

11413:                                            ; preds = %11399
  %11414 = load double, ptr %315, align 8, !tbaa !11
  br label %11415

11415:                                            ; preds = %11413, %11411
  %11416 = phi double [ %11412, %11411 ], [ %11414, %11413 ]
  br label %11417

11417:                                            ; preds = %11415, %11387
  %11418 = phi double [ %11388, %11387 ], [ %11416, %11415 ]
  %11419 = fptoui double %11418 to i16
  %11420 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %11419, ptr %11420, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %317) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %316) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %315) #3
  br label %11505

11421:                                            ; preds = %11183, %11180
  %11422 = load i32, ptr %8, align 4, !tbaa !9
  %11423 = icmp ugt i32 6, %11422
  br i1 %11423, label %11452, label %11424

11424:                                            ; preds = %11421
  %11425 = load i32, ptr %8, align 4, !tbaa !9
  %11426 = icmp ugt i32 15, %11425
  br i1 %11426, label %11427, label %11438

11427:                                            ; preds = %11424
  %11428 = load i32, ptr %9, align 4, !tbaa !9
  %11429 = icmp ugt i32 15, %11428
  br i1 %11429, label %11430, label %11435

11430:                                            ; preds = %11427
  %11431 = load i32, ptr %9, align 4, !tbaa !9
  %11432 = load i32, ptr %8, align 4, !tbaa !9
  %11433 = icmp ugt i32 %11431, %11432
  %11434 = zext i1 %11433 to i32
  br label %11436

11435:                                            ; preds = %11427
  br label %11436

11436:                                            ; preds = %11435, %11430
  %11437 = phi i32 [ %11434, %11430 ], [ 0, %11435 ]
  br label %11449

11438:                                            ; preds = %11424
  %11439 = load i32, ptr %9, align 4, !tbaa !9
  %11440 = icmp ugt i32 15, %11439
  br i1 %11440, label %11441, label %11442

11441:                                            ; preds = %11438
  br label %11447

11442:                                            ; preds = %11438
  %11443 = load i32, ptr %9, align 4, !tbaa !9
  %11444 = load i32, ptr %8, align 4, !tbaa !9
  %11445 = icmp ugt i32 %11443, %11444
  %11446 = zext i1 %11445 to i32
  br label %11447

11447:                                            ; preds = %11442, %11441
  %11448 = phi i32 [ 0, %11441 ], [ %11446, %11442 ]
  br label %11449

11449:                                            ; preds = %11447, %11436
  %11450 = phi i32 [ %11437, %11436 ], [ %11448, %11447 ]
  %11451 = icmp ne i32 %11450, 0
  br label %11452

11452:                                            ; preds = %11449, %11421
  %11453 = phi i1 [ true, %11421 ], [ %11451, %11449 ]
  %11454 = zext i1 %11453 to i32
  %11455 = icmp eq i32 0, %11454
  br i1 %11455, label %11456, label %11500

11456:                                            ; preds = %11452
  %11457 = load i8, ptr %308, align 1, !tbaa !17
  %11458 = zext i8 %11457 to i32
  %11459 = sitofp i32 %11458 to double
  %11460 = fcmp olt double -1.000000e+00, %11459
  br i1 %11460, label %11461, label %11484

11461:                                            ; preds = %11456
  %11462 = load i8, ptr %308, align 1, !tbaa !17
  %11463 = zext i8 %11462 to i32
  %11464 = sitofp i32 %11463 to double
  %11465 = fcmp ole double %11464, 1.000000e+00
  br i1 %11465, label %11466, label %11470

11466:                                            ; preds = %11461
  %11467 = load i8, ptr %308, align 1, !tbaa !17
  %11468 = zext i8 %11467 to i32
  %11469 = sitofp i32 %11468 to double
  br label %11482

11470:                                            ; preds = %11461
  %11471 = load i8, ptr %308, align 1, !tbaa !17
  %11472 = zext i8 %11471 to i32
  %11473 = sitofp i32 %11472 to double
  %11474 = fcmp olt double %11473, 1.000000e+00
  br i1 %11474, label %11475, label %11479

11475:                                            ; preds = %11470
  %11476 = load i8, ptr %308, align 1, !tbaa !17
  %11477 = zext i8 %11476 to i32
  %11478 = sitofp i32 %11477 to double
  br label %11480

11479:                                            ; preds = %11470
  br label %11480

11480:                                            ; preds = %11479, %11475
  %11481 = phi double [ %11478, %11475 ], [ 1.000000e+00, %11479 ]
  br label %11482

11482:                                            ; preds = %11480, %11466
  %11483 = phi double [ %11469, %11466 ], [ %11481, %11480 ]
  br label %11496

11484:                                            ; preds = %11456
  %11485 = load i8, ptr %308, align 1, !tbaa !17
  %11486 = zext i8 %11485 to i32
  %11487 = sitofp i32 %11486 to double
  %11488 = fcmp olt double -1.000000e+00, %11487
  br i1 %11488, label %11489, label %11493

11489:                                            ; preds = %11484
  %11490 = load i8, ptr %308, align 1, !tbaa !17
  %11491 = zext i8 %11490 to i32
  %11492 = sitofp i32 %11491 to double
  br label %11494

11493:                                            ; preds = %11484
  br label %11494

11494:                                            ; preds = %11493, %11489
  %11495 = phi double [ %11492, %11489 ], [ -1.000000e+00, %11493 ]
  br label %11496

11496:                                            ; preds = %11494, %11482
  %11497 = phi double [ %11483, %11482 ], [ %11495, %11494 ]
  %11498 = fptoui double %11497 to i16
  %11499 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %11498, ptr %11499, align 2, !tbaa !15
  br label %11504

11500:                                            ; preds = %11452
  %11501 = load i8, ptr %308, align 1, !tbaa !17
  %11502 = zext i8 %11501 to i16
  %11503 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %11502, ptr %11503, align 2, !tbaa !15
  br label %11504

11504:                                            ; preds = %11500, %11496
  br label %11505

11505:                                            ; preds = %11504, %11417
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %310) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %309) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %308) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %307) #3
  br label %11506

11506:                                            ; preds = %11505
  br label %11507

11507:                                            ; preds = %11506
  br label %12303

11508:                                            ; preds = %8680
  br label %11509

11509:                                            ; preds = %11508
  call void @llvm.lifetime.start.p0(i64 8, ptr %318) #3
  store double 5.000000e-01, ptr %318, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %319) #3
  %11510 = load ptr, ptr %10, align 8, !tbaa !5
  %11511 = load double, ptr %11510, align 8, !tbaa !11
  store double %11511, ptr %319, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %320) #3
  store double 0.000000e+00, ptr %320, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %321) #3
  store double 0.000000e+00, ptr %321, align 8, !tbaa !11
  %11512 = load ptr, ptr %11, align 8, !tbaa !5
  %11513 = icmp ne ptr null, %11512
  br i1 %11513, label %11514, label %11538

11514:                                            ; preds = %11509
  %11515 = load double, ptr %319, align 8, !tbaa !11
  %11516 = load double, ptr %319, align 8, !tbaa !11
  %11517 = fcmp oeq double %11515, %11516
  br i1 %11517, label %11518, label %11538

11518:                                            ; preds = %11514
  %11519 = load ptr, ptr %12, align 8, !tbaa !5
  %11520 = icmp ne ptr null, %11519
  br i1 %11520, label %11521, label %11532

11521:                                            ; preds = %11518
  %11522 = load ptr, ptr %11, align 8, !tbaa !5
  %11523 = load double, ptr %11522, align 8, !tbaa !11
  %11524 = load double, ptr %319, align 8, !tbaa !11
  %11525 = fcmp ole double %11523, %11524
  br i1 %11525, label %11526, label %11532

11526:                                            ; preds = %11521
  %11527 = load double, ptr %319, align 8, !tbaa !11
  %11528 = load ptr, ptr %12, align 8, !tbaa !5
  %11529 = load double, ptr %11528, align 8, !tbaa !11
  %11530 = fcmp ole double %11527, %11529
  br i1 %11530, label %11531, label %11532

11531:                                            ; preds = %11526
  br label %11533

11532:                                            ; preds = %11526, %11521, %11518
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.24, i32 noundef 473, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

11533:                                            ; preds = %11531
  %11534 = load ptr, ptr %11, align 8, !tbaa !5
  %11535 = load double, ptr %11534, align 8, !tbaa !11
  store double %11535, ptr %320, align 8, !tbaa !11
  %11536 = load ptr, ptr %12, align 8, !tbaa !5
  %11537 = load double, ptr %11536, align 8, !tbaa !11
  store double %11537, ptr %321, align 8, !tbaa !11
  br label %11538

11538:                                            ; preds = %11533, %11514, %11509
  %11539 = load i32, ptr %8, align 4, !tbaa !9
  %11540 = icmp ule i32 6, %11539
  br i1 %11540, label %11541, label %11764

11541:                                            ; preds = %11538
  %11542 = load double, ptr %320, align 8, !tbaa !11
  %11543 = load double, ptr %321, align 8, !tbaa !11
  %11544 = fcmp olt double %11542, %11543
  br i1 %11544, label %11545, label %11764

11545:                                            ; preds = %11541
  %11546 = load i32, ptr %8, align 4, !tbaa !9
  %11547 = icmp ule i32 15, %11546
  br i1 %11547, label %11548, label %11588

11548:                                            ; preds = %11545
  call void @llvm.lifetime.start.p0(i64 8, ptr %322) #3
  %11549 = load double, ptr %320, align 8, !tbaa !11
  %11550 = fcmp olt double 0.000000e+00, %11549
  br i1 %11550, label %11551, label %11553

11551:                                            ; preds = %11548
  %11552 = load double, ptr %320, align 8, !tbaa !11
  br label %11554

11553:                                            ; preds = %11548
  br label %11554

11554:                                            ; preds = %11553, %11551
  %11555 = phi double [ %11552, %11551 ], [ 0.000000e+00, %11553 ]
  store double %11555, ptr %322, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %323) #3
  %11556 = load double, ptr %321, align 8, !tbaa !11
  %11557 = fcmp olt double 0.000000e+00, %11556
  br i1 %11557, label %11558, label %11560

11558:                                            ; preds = %11554
  %11559 = load double, ptr %321, align 8, !tbaa !11
  br label %11561

11560:                                            ; preds = %11554
  br label %11561

11561:                                            ; preds = %11560, %11558
  %11562 = phi double [ %11559, %11558 ], [ 0.000000e+00, %11560 ]
  store double %11562, ptr %323, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %324) #3
  %11563 = load double, ptr %322, align 8, !tbaa !11
  %11564 = load double, ptr %323, align 8, !tbaa !11
  %11565 = fcmp olt double %11563, %11564
  br i1 %11565, label %11566, label %11574

11566:                                            ; preds = %11561
  %11567 = load double, ptr %321, align 8, !tbaa !11
  %11568 = load double, ptr %320, align 8, !tbaa !11
  %11569 = fsub double %11567, %11568
  %11570 = load double, ptr %323, align 8, !tbaa !11
  %11571 = load double, ptr %322, align 8, !tbaa !11
  %11572 = fsub double %11570, %11571
  %11573 = fdiv double %11569, %11572
  br label %11575

11574:                                            ; preds = %11561
  br label %11575

11575:                                            ; preds = %11574, %11566
  %11576 = phi double [ %11573, %11566 ], [ 1.000000e+00, %11574 ]
  store double %11576, ptr %324, align 8, !tbaa !11
  %11577 = load double, ptr %324, align 8, !tbaa !11
  %11578 = load double, ptr %319, align 8, !tbaa !11
  %11579 = fcmp olt double 0.000000e+00, %11578
  br i1 %11579, label %11580, label %11582

11580:                                            ; preds = %11575
  %11581 = load double, ptr %319, align 8, !tbaa !11
  br label %11583

11582:                                            ; preds = %11575
  br label %11583

11583:                                            ; preds = %11582, %11580
  %11584 = phi double [ %11581, %11580 ], [ 0.000000e+00, %11582 ]
  %11585 = fmul double %11577, %11584
  store double %11585, ptr %319, align 8, !tbaa !11
  %11586 = load double, ptr %322, align 8, !tbaa !11
  store double %11586, ptr %320, align 8, !tbaa !11
  %11587 = load double, ptr %323, align 8, !tbaa !11
  store double %11587, ptr %321, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %324) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %323) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %322) #3
  br label %11644

11588:                                            ; preds = %11545
  %11589 = load i32, ptr %8, align 4, !tbaa !9
  %11590 = icmp ugt i32 6, %11589
  br i1 %11590, label %11619, label %11591

11591:                                            ; preds = %11588
  %11592 = load i32, ptr %8, align 4, !tbaa !9
  %11593 = icmp ugt i32 15, %11592
  br i1 %11593, label %11594, label %11605

11594:                                            ; preds = %11591
  %11595 = load i32, ptr %9, align 4, !tbaa !9
  %11596 = icmp ugt i32 15, %11595
  br i1 %11596, label %11597, label %11602

11597:                                            ; preds = %11594
  %11598 = load i32, ptr %9, align 4, !tbaa !9
  %11599 = load i32, ptr %8, align 4, !tbaa !9
  %11600 = icmp ugt i32 %11598, %11599
  %11601 = zext i1 %11600 to i32
  br label %11603

11602:                                            ; preds = %11594
  br label %11603

11603:                                            ; preds = %11602, %11597
  %11604 = phi i32 [ %11601, %11597 ], [ 0, %11602 ]
  br label %11616

11605:                                            ; preds = %11591
  %11606 = load i32, ptr %9, align 4, !tbaa !9
  %11607 = icmp ugt i32 15, %11606
  br i1 %11607, label %11608, label %11609

11608:                                            ; preds = %11605
  br label %11614

11609:                                            ; preds = %11605
  %11610 = load i32, ptr %9, align 4, !tbaa !9
  %11611 = load i32, ptr %8, align 4, !tbaa !9
  %11612 = icmp ugt i32 %11610, %11611
  %11613 = zext i1 %11612 to i32
  br label %11614

11614:                                            ; preds = %11609, %11608
  %11615 = phi i32 [ 0, %11608 ], [ %11613, %11609 ]
  br label %11616

11616:                                            ; preds = %11614, %11603
  %11617 = phi i32 [ %11604, %11603 ], [ %11615, %11614 ]
  %11618 = icmp ne i32 %11617, 0
  br label %11619

11619:                                            ; preds = %11616, %11588
  %11620 = phi i1 [ true, %11588 ], [ %11618, %11616 ]
  %11621 = zext i1 %11620 to i32
  %11622 = icmp eq i32 0, %11621
  br i1 %11622, label %11623, label %11643

11623:                                            ; preds = %11619
  %11624 = load double, ptr %320, align 8, !tbaa !11
  %11625 = fcmp ogt double 0.000000e+00, %11624
  br i1 %11625, label %11626, label %11643

11626:                                            ; preds = %11623
  %11627 = load double, ptr %321, align 8, !tbaa !11
  %11628 = fcmp olt double 0.000000e+00, %11627
  br i1 %11628, label %11629, label %11643

11629:                                            ; preds = %11626
  %11630 = load double, ptr %320, align 8, !tbaa !11
  %11631 = fneg double %11630
  %11632 = load double, ptr %321, align 8, !tbaa !11
  %11633 = fcmp olt double %11631, %11632
  br i1 %11633, label %11634, label %11636

11634:                                            ; preds = %11629
  %11635 = load double, ptr %321, align 8, !tbaa !11
  br label %11639

11636:                                            ; preds = %11629
  %11637 = load double, ptr %320, align 8, !tbaa !11
  %11638 = fneg double %11637
  br label %11639

11639:                                            ; preds = %11636, %11634
  %11640 = phi double [ %11635, %11634 ], [ %11638, %11636 ]
  store double %11640, ptr %321, align 8, !tbaa !11
  %11641 = load double, ptr %321, align 8, !tbaa !11
  %11642 = fneg double %11641
  store double %11642, ptr %320, align 8, !tbaa !11
  br label %11643

11643:                                            ; preds = %11639, %11626, %11623, %11619
  br label %11644

11644:                                            ; preds = %11643, %11583
  call void @llvm.lifetime.start.p0(i64 8, ptr %325) #3
  %11645 = load double, ptr %320, align 8, !tbaa !11
  %11646 = fcmp ole double 0.000000e+00, %11645
  %11647 = zext i1 %11646 to i64
  %11648 = select i1 %11646, double 0.000000e+00, double -1.000000e+00
  store double %11648, ptr %325, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %326) #3
  %11649 = load double, ptr %321, align 8, !tbaa !11
  %11650 = fcmp ole double 0.000000e+00, %11649
  %11651 = zext i1 %11650 to i64
  %11652 = select i1 %11650, double 1.000000e+00, double 0.000000e+00
  store double %11652, ptr %326, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %327) #3
  %11653 = load double, ptr %319, align 8, !tbaa !11
  %11654 = load double, ptr %320, align 8, !tbaa !11
  %11655 = fsub double %11653, %11654
  %11656 = load double, ptr %326, align 8, !tbaa !11
  %11657 = load double, ptr %325, align 8, !tbaa !11
  %11658 = fsub double %11656, %11657
  %11659 = fmul double %11655, %11658
  %11660 = load double, ptr %321, align 8, !tbaa !11
  %11661 = load double, ptr %320, align 8, !tbaa !11
  %11662 = fsub double %11660, %11661
  %11663 = fdiv double %11659, %11662
  %11664 = load double, ptr %325, align 8, !tbaa !11
  %11665 = fadd double %11663, %11664
  store double %11665, ptr %327, align 8, !tbaa !11
  %11666 = load double, ptr %325, align 8, !tbaa !11
  %11667 = load double, ptr %327, align 8, !tbaa !11
  %11668 = fcmp ole double 0.000000e+00, %11667
  br i1 %11668, label %11669, label %11672

11669:                                            ; preds = %11644
  %11670 = load double, ptr %327, align 8, !tbaa !11
  %11671 = fadd double %11670, 5.000000e-01
  br label %11675

11672:                                            ; preds = %11644
  %11673 = load double, ptr %327, align 8, !tbaa !11
  %11674 = fsub double %11673, 5.000000e-01
  br label %11675

11675:                                            ; preds = %11672, %11669
  %11676 = phi double [ %11671, %11669 ], [ %11674, %11672 ]
  %11677 = fcmp olt double %11666, %11676
  br i1 %11677, label %11678, label %11732

11678:                                            ; preds = %11675
  %11679 = load double, ptr %327, align 8, !tbaa !11
  %11680 = fcmp ole double 0.000000e+00, %11679
  br i1 %11680, label %11681, label %11684

11681:                                            ; preds = %11678
  %11682 = load double, ptr %327, align 8, !tbaa !11
  %11683 = fadd double %11682, 5.000000e-01
  br label %11687

11684:                                            ; preds = %11678
  %11685 = load double, ptr %327, align 8, !tbaa !11
  %11686 = fsub double %11685, 5.000000e-01
  br label %11687

11687:                                            ; preds = %11684, %11681
  %11688 = phi double [ %11683, %11681 ], [ %11686, %11684 ]
  %11689 = load double, ptr %326, align 8, !tbaa !11
  %11690 = fcmp ole double %11688, %11689
  br i1 %11690, label %11691, label %11702

11691:                                            ; preds = %11687
  %11692 = load double, ptr %327, align 8, !tbaa !11
  %11693 = fcmp ole double 0.000000e+00, %11692
  br i1 %11693, label %11694, label %11697

11694:                                            ; preds = %11691
  %11695 = load double, ptr %327, align 8, !tbaa !11
  %11696 = fadd double %11695, 5.000000e-01
  br label %11700

11697:                                            ; preds = %11691
  %11698 = load double, ptr %327, align 8, !tbaa !11
  %11699 = fsub double %11698, 5.000000e-01
  br label %11700

11700:                                            ; preds = %11697, %11694
  %11701 = phi double [ %11696, %11694 ], [ %11699, %11697 ]
  br label %11730

11702:                                            ; preds = %11687
  %11703 = load double, ptr %327, align 8, !tbaa !11
  %11704 = fcmp ole double 0.000000e+00, %11703
  br i1 %11704, label %11705, label %11708

11705:                                            ; preds = %11702
  %11706 = load double, ptr %327, align 8, !tbaa !11
  %11707 = fadd double %11706, 5.000000e-01
  br label %11711

11708:                                            ; preds = %11702
  %11709 = load double, ptr %327, align 8, !tbaa !11
  %11710 = fsub double %11709, 5.000000e-01
  br label %11711

11711:                                            ; preds = %11708, %11705
  %11712 = phi double [ %11707, %11705 ], [ %11710, %11708 ]
  %11713 = load double, ptr %326, align 8, !tbaa !11
  %11714 = fcmp olt double %11712, %11713
  br i1 %11714, label %11715, label %11726

11715:                                            ; preds = %11711
  %11716 = load double, ptr %327, align 8, !tbaa !11
  %11717 = fcmp ole double 0.000000e+00, %11716
  br i1 %11717, label %11718, label %11721

11718:                                            ; preds = %11715
  %11719 = load double, ptr %327, align 8, !tbaa !11
  %11720 = fadd double %11719, 5.000000e-01
  br label %11724

11721:                                            ; preds = %11715
  %11722 = load double, ptr %327, align 8, !tbaa !11
  %11723 = fsub double %11722, 5.000000e-01
  br label %11724

11724:                                            ; preds = %11721, %11718
  %11725 = phi double [ %11720, %11718 ], [ %11723, %11721 ]
  br label %11728

11726:                                            ; preds = %11711
  %11727 = load double, ptr %326, align 8, !tbaa !11
  br label %11728

11728:                                            ; preds = %11726, %11724
  %11729 = phi double [ %11725, %11724 ], [ %11727, %11726 ]
  br label %11730

11730:                                            ; preds = %11728, %11700
  %11731 = phi double [ %11701, %11700 ], [ %11729, %11728 ]
  br label %11760

11732:                                            ; preds = %11675
  %11733 = load double, ptr %325, align 8, !tbaa !11
  %11734 = load double, ptr %327, align 8, !tbaa !11
  %11735 = fcmp ole double 0.000000e+00, %11734
  br i1 %11735, label %11736, label %11739

11736:                                            ; preds = %11732
  %11737 = load double, ptr %327, align 8, !tbaa !11
  %11738 = fadd double %11737, 5.000000e-01
  br label %11742

11739:                                            ; preds = %11732
  %11740 = load double, ptr %327, align 8, !tbaa !11
  %11741 = fsub double %11740, 5.000000e-01
  br label %11742

11742:                                            ; preds = %11739, %11736
  %11743 = phi double [ %11738, %11736 ], [ %11741, %11739 ]
  %11744 = fcmp olt double %11733, %11743
  br i1 %11744, label %11745, label %11756

11745:                                            ; preds = %11742
  %11746 = load double, ptr %327, align 8, !tbaa !11
  %11747 = fcmp ole double 0.000000e+00, %11746
  br i1 %11747, label %11748, label %11751

11748:                                            ; preds = %11745
  %11749 = load double, ptr %327, align 8, !tbaa !11
  %11750 = fadd double %11749, 5.000000e-01
  br label %11754

11751:                                            ; preds = %11745
  %11752 = load double, ptr %327, align 8, !tbaa !11
  %11753 = fsub double %11752, 5.000000e-01
  br label %11754

11754:                                            ; preds = %11751, %11748
  %11755 = phi double [ %11750, %11748 ], [ %11753, %11751 ]
  br label %11758

11756:                                            ; preds = %11742
  %11757 = load double, ptr %325, align 8, !tbaa !11
  br label %11758

11758:                                            ; preds = %11756, %11754
  %11759 = phi double [ %11755, %11754 ], [ %11757, %11756 ]
  br label %11760

11760:                                            ; preds = %11758, %11730
  %11761 = phi double [ %11731, %11730 ], [ %11759, %11758 ]
  %11762 = fptoui double %11761 to i16
  %11763 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %11762, ptr %11763, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %327) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %326) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %325) #3
  br label %11890

11764:                                            ; preds = %11541, %11538
  %11765 = load i32, ptr %8, align 4, !tbaa !9
  %11766 = icmp ugt i32 6, %11765
  br i1 %11766, label %11795, label %11767

11767:                                            ; preds = %11764
  %11768 = load i32, ptr %8, align 4, !tbaa !9
  %11769 = icmp ugt i32 15, %11768
  br i1 %11769, label %11770, label %11781

11770:                                            ; preds = %11767
  %11771 = load i32, ptr %9, align 4, !tbaa !9
  %11772 = icmp ugt i32 15, %11771
  br i1 %11772, label %11773, label %11778

11773:                                            ; preds = %11770
  %11774 = load i32, ptr %9, align 4, !tbaa !9
  %11775 = load i32, ptr %8, align 4, !tbaa !9
  %11776 = icmp ugt i32 %11774, %11775
  %11777 = zext i1 %11776 to i32
  br label %11779

11778:                                            ; preds = %11770
  br label %11779

11779:                                            ; preds = %11778, %11773
  %11780 = phi i32 [ %11777, %11773 ], [ 0, %11778 ]
  br label %11792

11781:                                            ; preds = %11767
  %11782 = load i32, ptr %9, align 4, !tbaa !9
  %11783 = icmp ugt i32 15, %11782
  br i1 %11783, label %11784, label %11785

11784:                                            ; preds = %11781
  br label %11790

11785:                                            ; preds = %11781
  %11786 = load i32, ptr %9, align 4, !tbaa !9
  %11787 = load i32, ptr %8, align 4, !tbaa !9
  %11788 = icmp ugt i32 %11786, %11787
  %11789 = zext i1 %11788 to i32
  br label %11790

11790:                                            ; preds = %11785, %11784
  %11791 = phi i32 [ 0, %11784 ], [ %11789, %11785 ]
  br label %11792

11792:                                            ; preds = %11790, %11779
  %11793 = phi i32 [ %11780, %11779 ], [ %11791, %11790 ]
  %11794 = icmp ne i32 %11793, 0
  br label %11795

11795:                                            ; preds = %11792, %11764
  %11796 = phi i1 [ true, %11764 ], [ %11794, %11792 ]
  %11797 = zext i1 %11796 to i32
  %11798 = icmp eq i32 0, %11797
  br i1 %11798, label %11799, label %11876

11799:                                            ; preds = %11795
  %11800 = load double, ptr %319, align 8, !tbaa !11
  %11801 = fcmp ole double 0.000000e+00, %11800
  br i1 %11801, label %11802, label %11837

11802:                                            ; preds = %11799
  %11803 = load double, ptr %319, align 8, !tbaa !11
  %11804 = fadd double %11803, 5.000000e-01
  %11805 = fcmp olt double -1.000000e+00, %11804
  br i1 %11805, label %11806, label %11825

11806:                                            ; preds = %11802
  %11807 = load double, ptr %319, align 8, !tbaa !11
  %11808 = fadd double %11807, 5.000000e-01
  %11809 = fcmp ole double %11808, 1.000000e+00
  br i1 %11809, label %11810, label %11813

11810:                                            ; preds = %11806
  %11811 = load double, ptr %319, align 8, !tbaa !11
  %11812 = fadd double %11811, 5.000000e-01
  br label %11823

11813:                                            ; preds = %11806
  %11814 = load double, ptr %319, align 8, !tbaa !11
  %11815 = fadd double %11814, 5.000000e-01
  %11816 = fcmp olt double %11815, 1.000000e+00
  br i1 %11816, label %11817, label %11820

11817:                                            ; preds = %11813
  %11818 = load double, ptr %319, align 8, !tbaa !11
  %11819 = fadd double %11818, 5.000000e-01
  br label %11821

11820:                                            ; preds = %11813
  br label %11821

11821:                                            ; preds = %11820, %11817
  %11822 = phi double [ %11819, %11817 ], [ 1.000000e+00, %11820 ]
  br label %11823

11823:                                            ; preds = %11821, %11810
  %11824 = phi double [ %11812, %11810 ], [ %11822, %11821 ]
  br label %11835

11825:                                            ; preds = %11802
  %11826 = load double, ptr %319, align 8, !tbaa !11
  %11827 = fadd double %11826, 5.000000e-01
  %11828 = fcmp olt double -1.000000e+00, %11827
  br i1 %11828, label %11829, label %11832

11829:                                            ; preds = %11825
  %11830 = load double, ptr %319, align 8, !tbaa !11
  %11831 = fadd double %11830, 5.000000e-01
  br label %11833

11832:                                            ; preds = %11825
  br label %11833

11833:                                            ; preds = %11832, %11829
  %11834 = phi double [ %11831, %11829 ], [ -1.000000e+00, %11832 ]
  br label %11835

11835:                                            ; preds = %11833, %11823
  %11836 = phi double [ %11824, %11823 ], [ %11834, %11833 ]
  br label %11872

11837:                                            ; preds = %11799
  %11838 = load double, ptr %319, align 8, !tbaa !11
  %11839 = fsub double %11838, 5.000000e-01
  %11840 = fcmp olt double -1.000000e+00, %11839
  br i1 %11840, label %11841, label %11860

11841:                                            ; preds = %11837
  %11842 = load double, ptr %319, align 8, !tbaa !11
  %11843 = fsub double %11842, 5.000000e-01
  %11844 = fcmp ole double %11843, 1.000000e+00
  br i1 %11844, label %11845, label %11848

11845:                                            ; preds = %11841
  %11846 = load double, ptr %319, align 8, !tbaa !11
  %11847 = fsub double %11846, 5.000000e-01
  br label %11858

11848:                                            ; preds = %11841
  %11849 = load double, ptr %319, align 8, !tbaa !11
  %11850 = fsub double %11849, 5.000000e-01
  %11851 = fcmp olt double %11850, 1.000000e+00
  br i1 %11851, label %11852, label %11855

11852:                                            ; preds = %11848
  %11853 = load double, ptr %319, align 8, !tbaa !11
  %11854 = fsub double %11853, 5.000000e-01
  br label %11856

11855:                                            ; preds = %11848
  br label %11856

11856:                                            ; preds = %11855, %11852
  %11857 = phi double [ %11854, %11852 ], [ 1.000000e+00, %11855 ]
  br label %11858

11858:                                            ; preds = %11856, %11845
  %11859 = phi double [ %11847, %11845 ], [ %11857, %11856 ]
  br label %11870

11860:                                            ; preds = %11837
  %11861 = load double, ptr %319, align 8, !tbaa !11
  %11862 = fsub double %11861, 5.000000e-01
  %11863 = fcmp olt double -1.000000e+00, %11862
  br i1 %11863, label %11864, label %11867

11864:                                            ; preds = %11860
  %11865 = load double, ptr %319, align 8, !tbaa !11
  %11866 = fsub double %11865, 5.000000e-01
  br label %11868

11867:                                            ; preds = %11860
  br label %11868

11868:                                            ; preds = %11867, %11864
  %11869 = phi double [ %11866, %11864 ], [ -1.000000e+00, %11867 ]
  br label %11870

11870:                                            ; preds = %11868, %11858
  %11871 = phi double [ %11859, %11858 ], [ %11869, %11868 ]
  br label %11872

11872:                                            ; preds = %11870, %11835
  %11873 = phi double [ %11836, %11835 ], [ %11871, %11870 ]
  %11874 = fptoui double %11873 to i16
  %11875 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %11874, ptr %11875, align 2, !tbaa !15
  br label %11889

11876:                                            ; preds = %11795
  %11877 = load double, ptr %319, align 8, !tbaa !11
  %11878 = fcmp ole double 0.000000e+00, %11877
  br i1 %11878, label %11879, label %11882

11879:                                            ; preds = %11876
  %11880 = load double, ptr %319, align 8, !tbaa !11
  %11881 = fadd double %11880, 5.000000e-01
  br label %11885

11882:                                            ; preds = %11876
  %11883 = load double, ptr %319, align 8, !tbaa !11
  %11884 = fsub double %11883, 5.000000e-01
  br label %11885

11885:                                            ; preds = %11882, %11879
  %11886 = phi double [ %11881, %11879 ], [ %11884, %11882 ]
  %11887 = fptoui double %11886 to i16
  %11888 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %11887, ptr %11888, align 2, !tbaa !15
  br label %11889

11889:                                            ; preds = %11885, %11872
  br label %11890

11890:                                            ; preds = %11889, %11760
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %321) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %320) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %319) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %318) #3
  br label %11891

11891:                                            ; preds = %11890
  br label %11892

11892:                                            ; preds = %11891
  br label %12303

11893:                                            ; preds = %8680
  br label %11894

11894:                                            ; preds = %11893
  call void @llvm.lifetime.start.p0(i64 8, ptr %328) #3
  store double 5.000000e-01, ptr %328, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %329) #3
  %11895 = load ptr, ptr %10, align 8, !tbaa !5
  %11896 = load float, ptr %11895, align 4, !tbaa !18
  store float %11896, ptr %329, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %330) #3
  store double 0.000000e+00, ptr %330, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %331) #3
  store double 0.000000e+00, ptr %331, align 8, !tbaa !11
  %11897 = load ptr, ptr %11, align 8, !tbaa !5
  %11898 = icmp ne ptr null, %11897
  br i1 %11898, label %11899, label %11925

11899:                                            ; preds = %11894
  %11900 = load float, ptr %329, align 4, !tbaa !18
  %11901 = load float, ptr %329, align 4, !tbaa !18
  %11902 = fcmp oeq float %11900, %11901
  br i1 %11902, label %11903, label %11925

11903:                                            ; preds = %11899
  %11904 = load ptr, ptr %12, align 8, !tbaa !5
  %11905 = icmp ne ptr null, %11904
  br i1 %11905, label %11906, label %11917

11906:                                            ; preds = %11903
  %11907 = load ptr, ptr %11, align 8, !tbaa !5
  %11908 = load float, ptr %11907, align 4, !tbaa !18
  %11909 = load float, ptr %329, align 4, !tbaa !18
  %11910 = fcmp ole float %11908, %11909
  br i1 %11910, label %11911, label %11917

11911:                                            ; preds = %11906
  %11912 = load float, ptr %329, align 4, !tbaa !18
  %11913 = load ptr, ptr %12, align 8, !tbaa !5
  %11914 = load float, ptr %11913, align 4, !tbaa !18
  %11915 = fcmp ole float %11912, %11914
  br i1 %11915, label %11916, label %11917

11916:                                            ; preds = %11911
  br label %11918

11917:                                            ; preds = %11911, %11906, %11903
  call void @__assert_fail(ptr noundef @.str.51, ptr noundef @.str.24, i32 noundef 473, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

11918:                                            ; preds = %11916
  %11919 = load ptr, ptr %11, align 8, !tbaa !5
  %11920 = load float, ptr %11919, align 4, !tbaa !18
  %11921 = fpext float %11920 to double
  store double %11921, ptr %330, align 8, !tbaa !11
  %11922 = load ptr, ptr %12, align 8, !tbaa !5
  %11923 = load float, ptr %11922, align 4, !tbaa !18
  %11924 = fpext float %11923 to double
  store double %11924, ptr %331, align 8, !tbaa !11
  br label %11925

11925:                                            ; preds = %11918, %11899, %11894
  %11926 = load i32, ptr %8, align 4, !tbaa !9
  %11927 = icmp ule i32 6, %11926
  br i1 %11927, label %11928, label %12154

11928:                                            ; preds = %11925
  %11929 = load double, ptr %330, align 8, !tbaa !11
  %11930 = load double, ptr %331, align 8, !tbaa !11
  %11931 = fcmp olt double %11929, %11930
  br i1 %11931, label %11932, label %12154

11932:                                            ; preds = %11928
  %11933 = load i32, ptr %8, align 4, !tbaa !9
  %11934 = icmp ule i32 15, %11933
  br i1 %11934, label %11935, label %11977

11935:                                            ; preds = %11932
  call void @llvm.lifetime.start.p0(i64 8, ptr %332) #3
  %11936 = load double, ptr %330, align 8, !tbaa !11
  %11937 = fcmp olt double 0.000000e+00, %11936
  br i1 %11937, label %11938, label %11940

11938:                                            ; preds = %11935
  %11939 = load double, ptr %330, align 8, !tbaa !11
  br label %11941

11940:                                            ; preds = %11935
  br label %11941

11941:                                            ; preds = %11940, %11938
  %11942 = phi double [ %11939, %11938 ], [ 0.000000e+00, %11940 ]
  store double %11942, ptr %332, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %333) #3
  %11943 = load double, ptr %331, align 8, !tbaa !11
  %11944 = fcmp olt double 0.000000e+00, %11943
  br i1 %11944, label %11945, label %11947

11945:                                            ; preds = %11941
  %11946 = load double, ptr %331, align 8, !tbaa !11
  br label %11948

11947:                                            ; preds = %11941
  br label %11948

11948:                                            ; preds = %11947, %11945
  %11949 = phi double [ %11946, %11945 ], [ 0.000000e+00, %11947 ]
  store double %11949, ptr %333, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %334) #3
  %11950 = load double, ptr %332, align 8, !tbaa !11
  %11951 = load double, ptr %333, align 8, !tbaa !11
  %11952 = fcmp olt double %11950, %11951
  br i1 %11952, label %11953, label %11961

11953:                                            ; preds = %11948
  %11954 = load double, ptr %331, align 8, !tbaa !11
  %11955 = load double, ptr %330, align 8, !tbaa !11
  %11956 = fsub double %11954, %11955
  %11957 = load double, ptr %333, align 8, !tbaa !11
  %11958 = load double, ptr %332, align 8, !tbaa !11
  %11959 = fsub double %11957, %11958
  %11960 = fdiv double %11956, %11959
  br label %11962

11961:                                            ; preds = %11948
  br label %11962

11962:                                            ; preds = %11961, %11953
  %11963 = phi double [ %11960, %11953 ], [ 1.000000e+00, %11961 ]
  store double %11963, ptr %334, align 8, !tbaa !11
  %11964 = load double, ptr %334, align 8, !tbaa !11
  %11965 = load float, ptr %329, align 4, !tbaa !18
  %11966 = fcmp olt float 0.000000e+00, %11965
  br i1 %11966, label %11967, label %11969

11967:                                            ; preds = %11962
  %11968 = load float, ptr %329, align 4, !tbaa !18
  br label %11970

11969:                                            ; preds = %11962
  br label %11970

11970:                                            ; preds = %11969, %11967
  %11971 = phi float [ %11968, %11967 ], [ 0.000000e+00, %11969 ]
  %11972 = fpext float %11971 to double
  %11973 = fmul double %11964, %11972
  %11974 = fptrunc double %11973 to float
  store float %11974, ptr %329, align 4, !tbaa !18
  %11975 = load double, ptr %332, align 8, !tbaa !11
  store double %11975, ptr %330, align 8, !tbaa !11
  %11976 = load double, ptr %333, align 8, !tbaa !11
  store double %11976, ptr %331, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %334) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %333) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %332) #3
  br label %12033

11977:                                            ; preds = %11932
  %11978 = load i32, ptr %8, align 4, !tbaa !9
  %11979 = icmp ugt i32 6, %11978
  br i1 %11979, label %12008, label %11980

11980:                                            ; preds = %11977
  %11981 = load i32, ptr %8, align 4, !tbaa !9
  %11982 = icmp ugt i32 15, %11981
  br i1 %11982, label %11983, label %11994

11983:                                            ; preds = %11980
  %11984 = load i32, ptr %9, align 4, !tbaa !9
  %11985 = icmp ugt i32 15, %11984
  br i1 %11985, label %11986, label %11991

11986:                                            ; preds = %11983
  %11987 = load i32, ptr %9, align 4, !tbaa !9
  %11988 = load i32, ptr %8, align 4, !tbaa !9
  %11989 = icmp ugt i32 %11987, %11988
  %11990 = zext i1 %11989 to i32
  br label %11992

11991:                                            ; preds = %11983
  br label %11992

11992:                                            ; preds = %11991, %11986
  %11993 = phi i32 [ %11990, %11986 ], [ 0, %11991 ]
  br label %12005

11994:                                            ; preds = %11980
  %11995 = load i32, ptr %9, align 4, !tbaa !9
  %11996 = icmp ugt i32 15, %11995
  br i1 %11996, label %11997, label %11998

11997:                                            ; preds = %11994
  br label %12003

11998:                                            ; preds = %11994
  %11999 = load i32, ptr %9, align 4, !tbaa !9
  %12000 = load i32, ptr %8, align 4, !tbaa !9
  %12001 = icmp ugt i32 %11999, %12000
  %12002 = zext i1 %12001 to i32
  br label %12003

12003:                                            ; preds = %11998, %11997
  %12004 = phi i32 [ 0, %11997 ], [ %12002, %11998 ]
  br label %12005

12005:                                            ; preds = %12003, %11992
  %12006 = phi i32 [ %11993, %11992 ], [ %12004, %12003 ]
  %12007 = icmp ne i32 %12006, 0
  br label %12008

12008:                                            ; preds = %12005, %11977
  %12009 = phi i1 [ true, %11977 ], [ %12007, %12005 ]
  %12010 = zext i1 %12009 to i32
  %12011 = icmp eq i32 0, %12010
  br i1 %12011, label %12012, label %12032

12012:                                            ; preds = %12008
  %12013 = load double, ptr %330, align 8, !tbaa !11
  %12014 = fcmp ogt double 0.000000e+00, %12013
  br i1 %12014, label %12015, label %12032

12015:                                            ; preds = %12012
  %12016 = load double, ptr %331, align 8, !tbaa !11
  %12017 = fcmp olt double 0.000000e+00, %12016
  br i1 %12017, label %12018, label %12032

12018:                                            ; preds = %12015
  %12019 = load double, ptr %330, align 8, !tbaa !11
  %12020 = fneg double %12019
  %12021 = load double, ptr %331, align 8, !tbaa !11
  %12022 = fcmp olt double %12020, %12021
  br i1 %12022, label %12023, label %12025

12023:                                            ; preds = %12018
  %12024 = load double, ptr %331, align 8, !tbaa !11
  br label %12028

12025:                                            ; preds = %12018
  %12026 = load double, ptr %330, align 8, !tbaa !11
  %12027 = fneg double %12026
  br label %12028

12028:                                            ; preds = %12025, %12023
  %12029 = phi double [ %12024, %12023 ], [ %12027, %12025 ]
  store double %12029, ptr %331, align 8, !tbaa !11
  %12030 = load double, ptr %331, align 8, !tbaa !11
  %12031 = fneg double %12030
  store double %12031, ptr %330, align 8, !tbaa !11
  br label %12032

12032:                                            ; preds = %12028, %12015, %12012, %12008
  br label %12033

12033:                                            ; preds = %12032, %11970
  call void @llvm.lifetime.start.p0(i64 8, ptr %335) #3
  %12034 = load double, ptr %330, align 8, !tbaa !11
  %12035 = fcmp ole double 0.000000e+00, %12034
  %12036 = zext i1 %12035 to i64
  %12037 = select i1 %12035, double 0.000000e+00, double -1.000000e+00
  store double %12037, ptr %335, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %336) #3
  %12038 = load double, ptr %331, align 8, !tbaa !11
  %12039 = fcmp ole double 0.000000e+00, %12038
  %12040 = zext i1 %12039 to i64
  %12041 = select i1 %12039, double 1.000000e+00, double 0.000000e+00
  store double %12041, ptr %336, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %337) #3
  %12042 = load float, ptr %329, align 4, !tbaa !18
  %12043 = fpext float %12042 to double
  %12044 = load double, ptr %330, align 8, !tbaa !11
  %12045 = fsub double %12043, %12044
  %12046 = load double, ptr %336, align 8, !tbaa !11
  %12047 = load double, ptr %335, align 8, !tbaa !11
  %12048 = fsub double %12046, %12047
  %12049 = fmul double %12045, %12048
  %12050 = load double, ptr %331, align 8, !tbaa !11
  %12051 = load double, ptr %330, align 8, !tbaa !11
  %12052 = fsub double %12050, %12051
  %12053 = fdiv double %12049, %12052
  %12054 = load double, ptr %335, align 8, !tbaa !11
  %12055 = fadd double %12053, %12054
  store double %12055, ptr %337, align 8, !tbaa !11
  %12056 = load double, ptr %335, align 8, !tbaa !11
  %12057 = load double, ptr %337, align 8, !tbaa !11
  %12058 = fcmp ole double 0.000000e+00, %12057
  br i1 %12058, label %12059, label %12062

12059:                                            ; preds = %12033
  %12060 = load double, ptr %337, align 8, !tbaa !11
  %12061 = fadd double %12060, 5.000000e-01
  br label %12065

12062:                                            ; preds = %12033
  %12063 = load double, ptr %337, align 8, !tbaa !11
  %12064 = fsub double %12063, 5.000000e-01
  br label %12065

12065:                                            ; preds = %12062, %12059
  %12066 = phi double [ %12061, %12059 ], [ %12064, %12062 ]
  %12067 = fcmp olt double %12056, %12066
  br i1 %12067, label %12068, label %12122

12068:                                            ; preds = %12065
  %12069 = load double, ptr %337, align 8, !tbaa !11
  %12070 = fcmp ole double 0.000000e+00, %12069
  br i1 %12070, label %12071, label %12074

12071:                                            ; preds = %12068
  %12072 = load double, ptr %337, align 8, !tbaa !11
  %12073 = fadd double %12072, 5.000000e-01
  br label %12077

12074:                                            ; preds = %12068
  %12075 = load double, ptr %337, align 8, !tbaa !11
  %12076 = fsub double %12075, 5.000000e-01
  br label %12077

12077:                                            ; preds = %12074, %12071
  %12078 = phi double [ %12073, %12071 ], [ %12076, %12074 ]
  %12079 = load double, ptr %336, align 8, !tbaa !11
  %12080 = fcmp ole double %12078, %12079
  br i1 %12080, label %12081, label %12092

12081:                                            ; preds = %12077
  %12082 = load double, ptr %337, align 8, !tbaa !11
  %12083 = fcmp ole double 0.000000e+00, %12082
  br i1 %12083, label %12084, label %12087

12084:                                            ; preds = %12081
  %12085 = load double, ptr %337, align 8, !tbaa !11
  %12086 = fadd double %12085, 5.000000e-01
  br label %12090

12087:                                            ; preds = %12081
  %12088 = load double, ptr %337, align 8, !tbaa !11
  %12089 = fsub double %12088, 5.000000e-01
  br label %12090

12090:                                            ; preds = %12087, %12084
  %12091 = phi double [ %12086, %12084 ], [ %12089, %12087 ]
  br label %12120

12092:                                            ; preds = %12077
  %12093 = load double, ptr %337, align 8, !tbaa !11
  %12094 = fcmp ole double 0.000000e+00, %12093
  br i1 %12094, label %12095, label %12098

12095:                                            ; preds = %12092
  %12096 = load double, ptr %337, align 8, !tbaa !11
  %12097 = fadd double %12096, 5.000000e-01
  br label %12101

12098:                                            ; preds = %12092
  %12099 = load double, ptr %337, align 8, !tbaa !11
  %12100 = fsub double %12099, 5.000000e-01
  br label %12101

12101:                                            ; preds = %12098, %12095
  %12102 = phi double [ %12097, %12095 ], [ %12100, %12098 ]
  %12103 = load double, ptr %336, align 8, !tbaa !11
  %12104 = fcmp olt double %12102, %12103
  br i1 %12104, label %12105, label %12116

12105:                                            ; preds = %12101
  %12106 = load double, ptr %337, align 8, !tbaa !11
  %12107 = fcmp ole double 0.000000e+00, %12106
  br i1 %12107, label %12108, label %12111

12108:                                            ; preds = %12105
  %12109 = load double, ptr %337, align 8, !tbaa !11
  %12110 = fadd double %12109, 5.000000e-01
  br label %12114

12111:                                            ; preds = %12105
  %12112 = load double, ptr %337, align 8, !tbaa !11
  %12113 = fsub double %12112, 5.000000e-01
  br label %12114

12114:                                            ; preds = %12111, %12108
  %12115 = phi double [ %12110, %12108 ], [ %12113, %12111 ]
  br label %12118

12116:                                            ; preds = %12101
  %12117 = load double, ptr %336, align 8, !tbaa !11
  br label %12118

12118:                                            ; preds = %12116, %12114
  %12119 = phi double [ %12115, %12114 ], [ %12117, %12116 ]
  br label %12120

12120:                                            ; preds = %12118, %12090
  %12121 = phi double [ %12091, %12090 ], [ %12119, %12118 ]
  br label %12150

12122:                                            ; preds = %12065
  %12123 = load double, ptr %335, align 8, !tbaa !11
  %12124 = load double, ptr %337, align 8, !tbaa !11
  %12125 = fcmp ole double 0.000000e+00, %12124
  br i1 %12125, label %12126, label %12129

12126:                                            ; preds = %12122
  %12127 = load double, ptr %337, align 8, !tbaa !11
  %12128 = fadd double %12127, 5.000000e-01
  br label %12132

12129:                                            ; preds = %12122
  %12130 = load double, ptr %337, align 8, !tbaa !11
  %12131 = fsub double %12130, 5.000000e-01
  br label %12132

12132:                                            ; preds = %12129, %12126
  %12133 = phi double [ %12128, %12126 ], [ %12131, %12129 ]
  %12134 = fcmp olt double %12123, %12133
  br i1 %12134, label %12135, label %12146

12135:                                            ; preds = %12132
  %12136 = load double, ptr %337, align 8, !tbaa !11
  %12137 = fcmp ole double 0.000000e+00, %12136
  br i1 %12137, label %12138, label %12141

12138:                                            ; preds = %12135
  %12139 = load double, ptr %337, align 8, !tbaa !11
  %12140 = fadd double %12139, 5.000000e-01
  br label %12144

12141:                                            ; preds = %12135
  %12142 = load double, ptr %337, align 8, !tbaa !11
  %12143 = fsub double %12142, 5.000000e-01
  br label %12144

12144:                                            ; preds = %12141, %12138
  %12145 = phi double [ %12140, %12138 ], [ %12143, %12141 ]
  br label %12148

12146:                                            ; preds = %12132
  %12147 = load double, ptr %335, align 8, !tbaa !11
  br label %12148

12148:                                            ; preds = %12146, %12144
  %12149 = phi double [ %12145, %12144 ], [ %12147, %12146 ]
  br label %12150

12150:                                            ; preds = %12148, %12120
  %12151 = phi double [ %12121, %12120 ], [ %12149, %12148 ]
  %12152 = fptoui double %12151 to i16
  %12153 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %12152, ptr %12153, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %337) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %336) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %335) #3
  br label %12296

12154:                                            ; preds = %11928, %11925
  %12155 = load i32, ptr %8, align 4, !tbaa !9
  %12156 = icmp ugt i32 6, %12155
  br i1 %12156, label %12185, label %12157

12157:                                            ; preds = %12154
  %12158 = load i32, ptr %8, align 4, !tbaa !9
  %12159 = icmp ugt i32 15, %12158
  br i1 %12159, label %12160, label %12171

12160:                                            ; preds = %12157
  %12161 = load i32, ptr %9, align 4, !tbaa !9
  %12162 = icmp ugt i32 15, %12161
  br i1 %12162, label %12163, label %12168

12163:                                            ; preds = %12160
  %12164 = load i32, ptr %9, align 4, !tbaa !9
  %12165 = load i32, ptr %8, align 4, !tbaa !9
  %12166 = icmp ugt i32 %12164, %12165
  %12167 = zext i1 %12166 to i32
  br label %12169

12168:                                            ; preds = %12160
  br label %12169

12169:                                            ; preds = %12168, %12163
  %12170 = phi i32 [ %12167, %12163 ], [ 0, %12168 ]
  br label %12182

12171:                                            ; preds = %12157
  %12172 = load i32, ptr %9, align 4, !tbaa !9
  %12173 = icmp ugt i32 15, %12172
  br i1 %12173, label %12174, label %12175

12174:                                            ; preds = %12171
  br label %12180

12175:                                            ; preds = %12171
  %12176 = load i32, ptr %9, align 4, !tbaa !9
  %12177 = load i32, ptr %8, align 4, !tbaa !9
  %12178 = icmp ugt i32 %12176, %12177
  %12179 = zext i1 %12178 to i32
  br label %12180

12180:                                            ; preds = %12175, %12174
  %12181 = phi i32 [ 0, %12174 ], [ %12179, %12175 ]
  br label %12182

12182:                                            ; preds = %12180, %12169
  %12183 = phi i32 [ %12170, %12169 ], [ %12181, %12180 ]
  %12184 = icmp ne i32 %12183, 0
  br label %12185

12185:                                            ; preds = %12182, %12154
  %12186 = phi i1 [ true, %12154 ], [ %12184, %12182 ]
  %12187 = zext i1 %12186 to i32
  %12188 = icmp eq i32 0, %12187
  br i1 %12188, label %12189, label %12280

12189:                                            ; preds = %12185
  %12190 = load float, ptr %329, align 4, !tbaa !18
  %12191 = fcmp ole float 0.000000e+00, %12190
  br i1 %12191, label %12192, label %12234

12192:                                            ; preds = %12189
  %12193 = load float, ptr %329, align 4, !tbaa !18
  %12194 = fpext float %12193 to double
  %12195 = fadd double %12194, 5.000000e-01
  %12196 = fcmp olt double -1.000000e+00, %12195
  br i1 %12196, label %12197, label %12220

12197:                                            ; preds = %12192
  %12198 = load float, ptr %329, align 4, !tbaa !18
  %12199 = fpext float %12198 to double
  %12200 = fadd double %12199, 5.000000e-01
  %12201 = fcmp ole double %12200, 1.000000e+00
  br i1 %12201, label %12202, label %12206

12202:                                            ; preds = %12197
  %12203 = load float, ptr %329, align 4, !tbaa !18
  %12204 = fpext float %12203 to double
  %12205 = fadd double %12204, 5.000000e-01
  br label %12218

12206:                                            ; preds = %12197
  %12207 = load float, ptr %329, align 4, !tbaa !18
  %12208 = fpext float %12207 to double
  %12209 = fadd double %12208, 5.000000e-01
  %12210 = fcmp olt double %12209, 1.000000e+00
  br i1 %12210, label %12211, label %12215

12211:                                            ; preds = %12206
  %12212 = load float, ptr %329, align 4, !tbaa !18
  %12213 = fpext float %12212 to double
  %12214 = fadd double %12213, 5.000000e-01
  br label %12216

12215:                                            ; preds = %12206
  br label %12216

12216:                                            ; preds = %12215, %12211
  %12217 = phi double [ %12214, %12211 ], [ 1.000000e+00, %12215 ]
  br label %12218

12218:                                            ; preds = %12216, %12202
  %12219 = phi double [ %12205, %12202 ], [ %12217, %12216 ]
  br label %12232

12220:                                            ; preds = %12192
  %12221 = load float, ptr %329, align 4, !tbaa !18
  %12222 = fpext float %12221 to double
  %12223 = fadd double %12222, 5.000000e-01
  %12224 = fcmp olt double -1.000000e+00, %12223
  br i1 %12224, label %12225, label %12229

12225:                                            ; preds = %12220
  %12226 = load float, ptr %329, align 4, !tbaa !18
  %12227 = fpext float %12226 to double
  %12228 = fadd double %12227, 5.000000e-01
  br label %12230

12229:                                            ; preds = %12220
  br label %12230

12230:                                            ; preds = %12229, %12225
  %12231 = phi double [ %12228, %12225 ], [ -1.000000e+00, %12229 ]
  br label %12232

12232:                                            ; preds = %12230, %12218
  %12233 = phi double [ %12219, %12218 ], [ %12231, %12230 ]
  br label %12276

12234:                                            ; preds = %12189
  %12235 = load float, ptr %329, align 4, !tbaa !18
  %12236 = fpext float %12235 to double
  %12237 = fsub double %12236, 5.000000e-01
  %12238 = fcmp olt double -1.000000e+00, %12237
  br i1 %12238, label %12239, label %12262

12239:                                            ; preds = %12234
  %12240 = load float, ptr %329, align 4, !tbaa !18
  %12241 = fpext float %12240 to double
  %12242 = fsub double %12241, 5.000000e-01
  %12243 = fcmp ole double %12242, 1.000000e+00
  br i1 %12243, label %12244, label %12248

12244:                                            ; preds = %12239
  %12245 = load float, ptr %329, align 4, !tbaa !18
  %12246 = fpext float %12245 to double
  %12247 = fsub double %12246, 5.000000e-01
  br label %12260

12248:                                            ; preds = %12239
  %12249 = load float, ptr %329, align 4, !tbaa !18
  %12250 = fpext float %12249 to double
  %12251 = fsub double %12250, 5.000000e-01
  %12252 = fcmp olt double %12251, 1.000000e+00
  br i1 %12252, label %12253, label %12257

12253:                                            ; preds = %12248
  %12254 = load float, ptr %329, align 4, !tbaa !18
  %12255 = fpext float %12254 to double
  %12256 = fsub double %12255, 5.000000e-01
  br label %12258

12257:                                            ; preds = %12248
  br label %12258

12258:                                            ; preds = %12257, %12253
  %12259 = phi double [ %12256, %12253 ], [ 1.000000e+00, %12257 ]
  br label %12260

12260:                                            ; preds = %12258, %12244
  %12261 = phi double [ %12247, %12244 ], [ %12259, %12258 ]
  br label %12274

12262:                                            ; preds = %12234
  %12263 = load float, ptr %329, align 4, !tbaa !18
  %12264 = fpext float %12263 to double
  %12265 = fsub double %12264, 5.000000e-01
  %12266 = fcmp olt double -1.000000e+00, %12265
  br i1 %12266, label %12267, label %12271

12267:                                            ; preds = %12262
  %12268 = load float, ptr %329, align 4, !tbaa !18
  %12269 = fpext float %12268 to double
  %12270 = fsub double %12269, 5.000000e-01
  br label %12272

12271:                                            ; preds = %12262
  br label %12272

12272:                                            ; preds = %12271, %12267
  %12273 = phi double [ %12270, %12267 ], [ -1.000000e+00, %12271 ]
  br label %12274

12274:                                            ; preds = %12272, %12260
  %12275 = phi double [ %12261, %12260 ], [ %12273, %12272 ]
  br label %12276

12276:                                            ; preds = %12274, %12232
  %12277 = phi double [ %12233, %12232 ], [ %12275, %12274 ]
  %12278 = fptoui double %12277 to i16
  %12279 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %12278, ptr %12279, align 2, !tbaa !15
  br label %12295

12280:                                            ; preds = %12185
  %12281 = load float, ptr %329, align 4, !tbaa !18
  %12282 = fcmp ole float 0.000000e+00, %12281
  br i1 %12282, label %12283, label %12287

12283:                                            ; preds = %12280
  %12284 = load float, ptr %329, align 4, !tbaa !18
  %12285 = fpext float %12284 to double
  %12286 = fadd double %12285, 5.000000e-01
  br label %12291

12287:                                            ; preds = %12280
  %12288 = load float, ptr %329, align 4, !tbaa !18
  %12289 = fpext float %12288 to double
  %12290 = fsub double %12289, 5.000000e-01
  br label %12291

12291:                                            ; preds = %12287, %12283
  %12292 = phi double [ %12286, %12283 ], [ %12290, %12287 ]
  %12293 = fptoui double %12292 to i16
  %12294 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %12293, ptr %12294, align 2, !tbaa !15
  br label %12295

12295:                                            ; preds = %12291, %12276
  br label %12296

12296:                                            ; preds = %12295, %12150
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %331) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %330) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %329) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %328) #3
  br label %12297

12297:                                            ; preds = %12296
  br label %12298

12298:                                            ; preds = %12297
  br label %12303

12299:                                            ; preds = %8680
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 473, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

12300:                                            ; preds = %8680
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 473, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

12301:                                            ; preds = %8680
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 473, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

12302:                                            ; preds = %8680
  store i32 1, ptr %13, align 4, !tbaa !9
  br label %12303

12303:                                            ; preds = %12302, %12298, %11892, %11507, %11147, %10788, %10441, %10094, %9734, %9375, %9028
  br label %12304

12304:                                            ; preds = %12303
  br label %12305

12305:                                            ; preds = %12304
  br label %48657

12306:                                            ; preds = %6
  br label %12307

12307:                                            ; preds = %12306
  %12308 = load ptr, ptr %7, align 8, !tbaa !5
  %12309 = icmp ne ptr null, %12308
  br i1 %12309, label %12310, label %12314

12310:                                            ; preds = %12307
  %12311 = load ptr, ptr %10, align 8, !tbaa !5
  %12312 = icmp ne ptr null, %12311
  br i1 %12312, label %12313, label %12314

12313:                                            ; preds = %12310
  br label %12315

12314:                                            ; preds = %12310, %12307
  call void @__assert_fail(ptr noundef @.str.41, ptr noundef @.str.24, i32 noundef 476, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

12315:                                            ; preds = %12313
  %12316 = load i32, ptr %9, align 4, !tbaa !9
  switch i32 %12316, label %15937 [
    i32 6, label %12317
    i32 8, label %12664
    i32 10, label %13011
    i32 12, label %13370
    i32 15, label %13730
    i32 16, label %14077
    i32 17, label %14424
    i32 18, label %14783
    i32 0, label %15143
    i32 1, label %15528
    i32 3, label %15934
    i32 2, label %15935
    i32 4, label %15936
  ]

12317:                                            ; preds = %12315
  br label %12318

12318:                                            ; preds = %12317
  call void @llvm.lifetime.start.p0(i64 8, ptr %338) #3
  store double 5.000000e-01, ptr %338, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %339) #3
  %12319 = load ptr, ptr %10, align 8, !tbaa !5
  %12320 = load i64, ptr %12319, align 8, !tbaa !13
  store i64 %12320, ptr %339, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %340) #3
  store double 0.000000e+00, ptr %340, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %341) #3
  store double 0.000000e+00, ptr %341, align 8, !tbaa !11
  %12321 = load ptr, ptr %11, align 8, !tbaa !5
  %12322 = icmp ne ptr null, %12321
  br i1 %12322, label %12323, label %12345

12323:                                            ; preds = %12318
  %12324 = load ptr, ptr %12, align 8, !tbaa !5
  %12325 = icmp ne ptr null, %12324
  br i1 %12325, label %12326, label %12337

12326:                                            ; preds = %12323
  %12327 = load ptr, ptr %11, align 8, !tbaa !5
  %12328 = load i64, ptr %12327, align 8, !tbaa !13
  %12329 = load i64, ptr %339, align 8, !tbaa !13
  %12330 = icmp sle i64 %12328, %12329
  br i1 %12330, label %12331, label %12337

12331:                                            ; preds = %12326
  %12332 = load i64, ptr %339, align 8, !tbaa !13
  %12333 = load ptr, ptr %12, align 8, !tbaa !5
  %12334 = load i64, ptr %12333, align 8, !tbaa !13
  %12335 = icmp sle i64 %12332, %12334
  br i1 %12335, label %12336, label %12337

12336:                                            ; preds = %12331
  br label %12338

12337:                                            ; preds = %12331, %12326, %12323
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.24, i32 noundef 476, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

12338:                                            ; preds = %12336
  %12339 = load ptr, ptr %11, align 8, !tbaa !5
  %12340 = load i64, ptr %12339, align 8, !tbaa !13
  %12341 = sitofp i64 %12340 to double
  store double %12341, ptr %340, align 8, !tbaa !11
  %12342 = load ptr, ptr %12, align 8, !tbaa !5
  %12343 = load i64, ptr %12342, align 8, !tbaa !13
  %12344 = sitofp i64 %12343 to double
  store double %12344, ptr %341, align 8, !tbaa !11
  br label %12345

12345:                                            ; preds = %12338, %12318
  %12346 = load i32, ptr %8, align 4, !tbaa !9
  %12347 = icmp ule i32 6, %12346
  br i1 %12347, label %12348, label %12584

12348:                                            ; preds = %12345
  %12349 = load double, ptr %340, align 8, !tbaa !11
  %12350 = load double, ptr %341, align 8, !tbaa !11
  %12351 = fcmp olt double %12349, %12350
  br i1 %12351, label %12352, label %12584

12352:                                            ; preds = %12348
  %12353 = load i32, ptr %8, align 4, !tbaa !9
  %12354 = icmp ule i32 15, %12353
  br i1 %12354, label %12355, label %12407

12355:                                            ; preds = %12352
  call void @llvm.lifetime.start.p0(i64 8, ptr %342) #3
  %12356 = load double, ptr %340, align 8, !tbaa !11
  %12357 = fcmp olt double 0.000000e+00, %12356
  br i1 %12357, label %12358, label %12360

12358:                                            ; preds = %12355
  %12359 = load double, ptr %340, align 8, !tbaa !11
  br label %12361

12360:                                            ; preds = %12355
  br label %12361

12361:                                            ; preds = %12360, %12358
  %12362 = phi double [ %12359, %12358 ], [ 0.000000e+00, %12360 ]
  store double %12362, ptr %342, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %343) #3
  %12363 = load double, ptr %341, align 8, !tbaa !11
  %12364 = fcmp olt double 0.000000e+00, %12363
  br i1 %12364, label %12365, label %12367

12365:                                            ; preds = %12361
  %12366 = load double, ptr %341, align 8, !tbaa !11
  br label %12368

12367:                                            ; preds = %12361
  br label %12368

12368:                                            ; preds = %12367, %12365
  %12369 = phi double [ %12366, %12365 ], [ 0.000000e+00, %12367 ]
  store double %12369, ptr %343, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %344) #3
  %12370 = load double, ptr %342, align 8, !tbaa !11
  %12371 = load double, ptr %343, align 8, !tbaa !11
  %12372 = fcmp olt double %12370, %12371
  br i1 %12372, label %12373, label %12381

12373:                                            ; preds = %12368
  %12374 = load double, ptr %341, align 8, !tbaa !11
  %12375 = load double, ptr %340, align 8, !tbaa !11
  %12376 = fsub double %12374, %12375
  %12377 = load double, ptr %343, align 8, !tbaa !11
  %12378 = load double, ptr %342, align 8, !tbaa !11
  %12379 = fsub double %12377, %12378
  %12380 = fdiv double %12376, %12379
  br label %12382

12381:                                            ; preds = %12368
  br label %12382

12382:                                            ; preds = %12381, %12373
  %12383 = phi double [ %12380, %12373 ], [ 1.000000e+00, %12381 ]
  store double %12383, ptr %344, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %345) #3
  %12384 = load double, ptr %344, align 8, !tbaa !11
  %12385 = load i64, ptr %339, align 8, !tbaa !13
  %12386 = icmp slt i64 0, %12385
  br i1 %12386, label %12387, label %12389

12387:                                            ; preds = %12382
  %12388 = load i64, ptr %339, align 8, !tbaa !13
  br label %12390

12389:                                            ; preds = %12382
  br label %12390

12390:                                            ; preds = %12389, %12387
  %12391 = phi i64 [ %12388, %12387 ], [ 0, %12389 ]
  %12392 = sitofp i64 %12391 to double
  %12393 = fmul double %12384, %12392
  store double %12393, ptr %345, align 8, !tbaa !11
  %12394 = load double, ptr %345, align 8, !tbaa !11
  %12395 = fcmp ole double 0.000000e+00, %12394
  br i1 %12395, label %12396, label %12399

12396:                                            ; preds = %12390
  %12397 = load double, ptr %345, align 8, !tbaa !11
  %12398 = fadd double %12397, 5.000000e-01
  br label %12402

12399:                                            ; preds = %12390
  %12400 = load double, ptr %345, align 8, !tbaa !11
  %12401 = fsub double %12400, 5.000000e-01
  br label %12402

12402:                                            ; preds = %12399, %12396
  %12403 = phi double [ %12398, %12396 ], [ %12401, %12399 ]
  %12404 = fptosi double %12403 to i64
  store i64 %12404, ptr %339, align 8, !tbaa !13
  %12405 = load double, ptr %342, align 8, !tbaa !11
  store double %12405, ptr %340, align 8, !tbaa !11
  %12406 = load double, ptr %343, align 8, !tbaa !11
  store double %12406, ptr %341, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %345) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %344) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %343) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %342) #3
  br label %12463

12407:                                            ; preds = %12352
  %12408 = load i32, ptr %8, align 4, !tbaa !9
  %12409 = icmp ugt i32 6, %12408
  br i1 %12409, label %12438, label %12410

12410:                                            ; preds = %12407
  %12411 = load i32, ptr %8, align 4, !tbaa !9
  %12412 = icmp ugt i32 15, %12411
  br i1 %12412, label %12413, label %12424

12413:                                            ; preds = %12410
  %12414 = load i32, ptr %9, align 4, !tbaa !9
  %12415 = icmp ugt i32 15, %12414
  br i1 %12415, label %12416, label %12421

12416:                                            ; preds = %12413
  %12417 = load i32, ptr %9, align 4, !tbaa !9
  %12418 = load i32, ptr %8, align 4, !tbaa !9
  %12419 = icmp ugt i32 %12417, %12418
  %12420 = zext i1 %12419 to i32
  br label %12422

12421:                                            ; preds = %12413
  br label %12422

12422:                                            ; preds = %12421, %12416
  %12423 = phi i32 [ %12420, %12416 ], [ 0, %12421 ]
  br label %12435

12424:                                            ; preds = %12410
  %12425 = load i32, ptr %9, align 4, !tbaa !9
  %12426 = icmp ugt i32 15, %12425
  br i1 %12426, label %12427, label %12428

12427:                                            ; preds = %12424
  br label %12433

12428:                                            ; preds = %12424
  %12429 = load i32, ptr %9, align 4, !tbaa !9
  %12430 = load i32, ptr %8, align 4, !tbaa !9
  %12431 = icmp ugt i32 %12429, %12430
  %12432 = zext i1 %12431 to i32
  br label %12433

12433:                                            ; preds = %12428, %12427
  %12434 = phi i32 [ 0, %12427 ], [ %12432, %12428 ]
  br label %12435

12435:                                            ; preds = %12433, %12422
  %12436 = phi i32 [ %12423, %12422 ], [ %12434, %12433 ]
  %12437 = icmp ne i32 %12436, 0
  br label %12438

12438:                                            ; preds = %12435, %12407
  %12439 = phi i1 [ true, %12407 ], [ %12437, %12435 ]
  %12440 = zext i1 %12439 to i32
  %12441 = icmp eq i32 0, %12440
  br i1 %12441, label %12442, label %12462

12442:                                            ; preds = %12438
  %12443 = load double, ptr %340, align 8, !tbaa !11
  %12444 = fcmp ogt double 0.000000e+00, %12443
  br i1 %12444, label %12445, label %12462

12445:                                            ; preds = %12442
  %12446 = load double, ptr %341, align 8, !tbaa !11
  %12447 = fcmp olt double 0.000000e+00, %12446
  br i1 %12447, label %12448, label %12462

12448:                                            ; preds = %12445
  %12449 = load double, ptr %340, align 8, !tbaa !11
  %12450 = fneg double %12449
  %12451 = load double, ptr %341, align 8, !tbaa !11
  %12452 = fcmp olt double %12450, %12451
  br i1 %12452, label %12453, label %12455

12453:                                            ; preds = %12448
  %12454 = load double, ptr %341, align 8, !tbaa !11
  br label %12458

12455:                                            ; preds = %12448
  %12456 = load double, ptr %340, align 8, !tbaa !11
  %12457 = fneg double %12456
  br label %12458

12458:                                            ; preds = %12455, %12453
  %12459 = phi double [ %12454, %12453 ], [ %12457, %12455 ]
  store double %12459, ptr %341, align 8, !tbaa !11
  %12460 = load double, ptr %341, align 8, !tbaa !11
  %12461 = fneg double %12460
  store double %12461, ptr %340, align 8, !tbaa !11
  br label %12462

12462:                                            ; preds = %12458, %12445, %12442, %12438
  br label %12463

12463:                                            ; preds = %12462, %12402
  call void @llvm.lifetime.start.p0(i64 8, ptr %346) #3
  %12464 = load double, ptr %340, align 8, !tbaa !11
  %12465 = fcmp ole double 0.000000e+00, %12464
  %12466 = zext i1 %12465 to i64
  %12467 = select i1 %12465, double 0.000000e+00, double -1.000000e+00
  store double %12467, ptr %346, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %347) #3
  %12468 = load double, ptr %341, align 8, !tbaa !11
  %12469 = fcmp ole double 0.000000e+00, %12468
  %12470 = zext i1 %12469 to i64
  %12471 = select i1 %12469, double 1.000000e+00, double 0.000000e+00
  store double %12471, ptr %347, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %348) #3
  %12472 = load i64, ptr %339, align 8, !tbaa !13
  %12473 = sitofp i64 %12472 to double
  %12474 = load double, ptr %340, align 8, !tbaa !11
  %12475 = fsub double %12473, %12474
  %12476 = load double, ptr %347, align 8, !tbaa !11
  %12477 = load double, ptr %346, align 8, !tbaa !11
  %12478 = fsub double %12476, %12477
  %12479 = fmul double %12475, %12478
  %12480 = load double, ptr %341, align 8, !tbaa !11
  %12481 = load double, ptr %340, align 8, !tbaa !11
  %12482 = fsub double %12480, %12481
  %12483 = fdiv double %12479, %12482
  %12484 = load double, ptr %346, align 8, !tbaa !11
  %12485 = fadd double %12483, %12484
  store double %12485, ptr %348, align 8, !tbaa !11
  %12486 = load double, ptr %346, align 8, !tbaa !11
  %12487 = load double, ptr %348, align 8, !tbaa !11
  %12488 = fcmp ole double 0.000000e+00, %12487
  br i1 %12488, label %12489, label %12492

12489:                                            ; preds = %12463
  %12490 = load double, ptr %348, align 8, !tbaa !11
  %12491 = fadd double %12490, 5.000000e-01
  br label %12495

12492:                                            ; preds = %12463
  %12493 = load double, ptr %348, align 8, !tbaa !11
  %12494 = fsub double %12493, 5.000000e-01
  br label %12495

12495:                                            ; preds = %12492, %12489
  %12496 = phi double [ %12491, %12489 ], [ %12494, %12492 ]
  %12497 = fcmp olt double %12486, %12496
  br i1 %12497, label %12498, label %12552

12498:                                            ; preds = %12495
  %12499 = load double, ptr %348, align 8, !tbaa !11
  %12500 = fcmp ole double 0.000000e+00, %12499
  br i1 %12500, label %12501, label %12504

12501:                                            ; preds = %12498
  %12502 = load double, ptr %348, align 8, !tbaa !11
  %12503 = fadd double %12502, 5.000000e-01
  br label %12507

12504:                                            ; preds = %12498
  %12505 = load double, ptr %348, align 8, !tbaa !11
  %12506 = fsub double %12505, 5.000000e-01
  br label %12507

12507:                                            ; preds = %12504, %12501
  %12508 = phi double [ %12503, %12501 ], [ %12506, %12504 ]
  %12509 = load double, ptr %347, align 8, !tbaa !11
  %12510 = fcmp ole double %12508, %12509
  br i1 %12510, label %12511, label %12522

12511:                                            ; preds = %12507
  %12512 = load double, ptr %348, align 8, !tbaa !11
  %12513 = fcmp ole double 0.000000e+00, %12512
  br i1 %12513, label %12514, label %12517

12514:                                            ; preds = %12511
  %12515 = load double, ptr %348, align 8, !tbaa !11
  %12516 = fadd double %12515, 5.000000e-01
  br label %12520

12517:                                            ; preds = %12511
  %12518 = load double, ptr %348, align 8, !tbaa !11
  %12519 = fsub double %12518, 5.000000e-01
  br label %12520

12520:                                            ; preds = %12517, %12514
  %12521 = phi double [ %12516, %12514 ], [ %12519, %12517 ]
  br label %12550

12522:                                            ; preds = %12507
  %12523 = load double, ptr %348, align 8, !tbaa !11
  %12524 = fcmp ole double 0.000000e+00, %12523
  br i1 %12524, label %12525, label %12528

12525:                                            ; preds = %12522
  %12526 = load double, ptr %348, align 8, !tbaa !11
  %12527 = fadd double %12526, 5.000000e-01
  br label %12531

12528:                                            ; preds = %12522
  %12529 = load double, ptr %348, align 8, !tbaa !11
  %12530 = fsub double %12529, 5.000000e-01
  br label %12531

12531:                                            ; preds = %12528, %12525
  %12532 = phi double [ %12527, %12525 ], [ %12530, %12528 ]
  %12533 = load double, ptr %347, align 8, !tbaa !11
  %12534 = fcmp olt double %12532, %12533
  br i1 %12534, label %12535, label %12546

12535:                                            ; preds = %12531
  %12536 = load double, ptr %348, align 8, !tbaa !11
  %12537 = fcmp ole double 0.000000e+00, %12536
  br i1 %12537, label %12538, label %12541

12538:                                            ; preds = %12535
  %12539 = load double, ptr %348, align 8, !tbaa !11
  %12540 = fadd double %12539, 5.000000e-01
  br label %12544

12541:                                            ; preds = %12535
  %12542 = load double, ptr %348, align 8, !tbaa !11
  %12543 = fsub double %12542, 5.000000e-01
  br label %12544

12544:                                            ; preds = %12541, %12538
  %12545 = phi double [ %12540, %12538 ], [ %12543, %12541 ]
  br label %12548

12546:                                            ; preds = %12531
  %12547 = load double, ptr %347, align 8, !tbaa !11
  br label %12548

12548:                                            ; preds = %12546, %12544
  %12549 = phi double [ %12545, %12544 ], [ %12547, %12546 ]
  br label %12550

12550:                                            ; preds = %12548, %12520
  %12551 = phi double [ %12521, %12520 ], [ %12549, %12548 ]
  br label %12580

12552:                                            ; preds = %12495
  %12553 = load double, ptr %346, align 8, !tbaa !11
  %12554 = load double, ptr %348, align 8, !tbaa !11
  %12555 = fcmp ole double 0.000000e+00, %12554
  br i1 %12555, label %12556, label %12559

12556:                                            ; preds = %12552
  %12557 = load double, ptr %348, align 8, !tbaa !11
  %12558 = fadd double %12557, 5.000000e-01
  br label %12562

12559:                                            ; preds = %12552
  %12560 = load double, ptr %348, align 8, !tbaa !11
  %12561 = fsub double %12560, 5.000000e-01
  br label %12562

12562:                                            ; preds = %12559, %12556
  %12563 = phi double [ %12558, %12556 ], [ %12561, %12559 ]
  %12564 = fcmp olt double %12553, %12563
  br i1 %12564, label %12565, label %12576

12565:                                            ; preds = %12562
  %12566 = load double, ptr %348, align 8, !tbaa !11
  %12567 = fcmp ole double 0.000000e+00, %12566
  br i1 %12567, label %12568, label %12571

12568:                                            ; preds = %12565
  %12569 = load double, ptr %348, align 8, !tbaa !11
  %12570 = fadd double %12569, 5.000000e-01
  br label %12574

12571:                                            ; preds = %12565
  %12572 = load double, ptr %348, align 8, !tbaa !11
  %12573 = fsub double %12572, 5.000000e-01
  br label %12574

12574:                                            ; preds = %12571, %12568
  %12575 = phi double [ %12570, %12568 ], [ %12573, %12571 ]
  br label %12578

12576:                                            ; preds = %12562
  %12577 = load double, ptr %346, align 8, !tbaa !11
  br label %12578

12578:                                            ; preds = %12576, %12574
  %12579 = phi double [ %12575, %12574 ], [ %12577, %12576 ]
  br label %12580

12580:                                            ; preds = %12578, %12550
  %12581 = phi double [ %12551, %12550 ], [ %12579, %12578 ]
  %12582 = fptoui double %12581 to i16
  %12583 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %12582, ptr %12583, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %348) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %347) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %346) #3
  br label %12661

12584:                                            ; preds = %12348, %12345
  %12585 = load i32, ptr %8, align 4, !tbaa !9
  %12586 = icmp ugt i32 6, %12585
  br i1 %12586, label %12615, label %12587

12587:                                            ; preds = %12584
  %12588 = load i32, ptr %8, align 4, !tbaa !9
  %12589 = icmp ugt i32 15, %12588
  br i1 %12589, label %12590, label %12601

12590:                                            ; preds = %12587
  %12591 = load i32, ptr %9, align 4, !tbaa !9
  %12592 = icmp ugt i32 15, %12591
  br i1 %12592, label %12593, label %12598

12593:                                            ; preds = %12590
  %12594 = load i32, ptr %9, align 4, !tbaa !9
  %12595 = load i32, ptr %8, align 4, !tbaa !9
  %12596 = icmp ugt i32 %12594, %12595
  %12597 = zext i1 %12596 to i32
  br label %12599

12598:                                            ; preds = %12590
  br label %12599

12599:                                            ; preds = %12598, %12593
  %12600 = phi i32 [ %12597, %12593 ], [ 0, %12598 ]
  br label %12612

12601:                                            ; preds = %12587
  %12602 = load i32, ptr %9, align 4, !tbaa !9
  %12603 = icmp ugt i32 15, %12602
  br i1 %12603, label %12604, label %12605

12604:                                            ; preds = %12601
  br label %12610

12605:                                            ; preds = %12601
  %12606 = load i32, ptr %9, align 4, !tbaa !9
  %12607 = load i32, ptr %8, align 4, !tbaa !9
  %12608 = icmp ugt i32 %12606, %12607
  %12609 = zext i1 %12608 to i32
  br label %12610

12610:                                            ; preds = %12605, %12604
  %12611 = phi i32 [ 0, %12604 ], [ %12609, %12605 ]
  br label %12612

12612:                                            ; preds = %12610, %12599
  %12613 = phi i32 [ %12600, %12599 ], [ %12611, %12610 ]
  %12614 = icmp ne i32 %12613, 0
  br label %12615

12615:                                            ; preds = %12612, %12584
  %12616 = phi i1 [ true, %12584 ], [ %12614, %12612 ]
  %12617 = zext i1 %12616 to i32
  %12618 = icmp eq i32 0, %12617
  br i1 %12618, label %12619, label %12656

12619:                                            ; preds = %12615
  %12620 = load i64, ptr %339, align 8, !tbaa !13
  %12621 = sitofp i64 %12620 to double
  %12622 = fcmp olt double -1.000000e+00, %12621
  br i1 %12622, label %12623, label %12642

12623:                                            ; preds = %12619
  %12624 = load i64, ptr %339, align 8, !tbaa !13
  %12625 = sitofp i64 %12624 to double
  %12626 = fcmp ole double %12625, 1.000000e+00
  br i1 %12626, label %12627, label %12630

12627:                                            ; preds = %12623
  %12628 = load i64, ptr %339, align 8, !tbaa !13
  %12629 = sitofp i64 %12628 to double
  br label %12640

12630:                                            ; preds = %12623
  %12631 = load i64, ptr %339, align 8, !tbaa !13
  %12632 = sitofp i64 %12631 to double
  %12633 = fcmp olt double %12632, 1.000000e+00
  br i1 %12633, label %12634, label %12637

12634:                                            ; preds = %12630
  %12635 = load i64, ptr %339, align 8, !tbaa !13
  %12636 = sitofp i64 %12635 to double
  br label %12638

12637:                                            ; preds = %12630
  br label %12638

12638:                                            ; preds = %12637, %12634
  %12639 = phi double [ %12636, %12634 ], [ 1.000000e+00, %12637 ]
  br label %12640

12640:                                            ; preds = %12638, %12627
  %12641 = phi double [ %12629, %12627 ], [ %12639, %12638 ]
  br label %12652

12642:                                            ; preds = %12619
  %12643 = load i64, ptr %339, align 8, !tbaa !13
  %12644 = sitofp i64 %12643 to double
  %12645 = fcmp olt double -1.000000e+00, %12644
  br i1 %12645, label %12646, label %12649

12646:                                            ; preds = %12642
  %12647 = load i64, ptr %339, align 8, !tbaa !13
  %12648 = sitofp i64 %12647 to double
  br label %12650

12649:                                            ; preds = %12642
  br label %12650

12650:                                            ; preds = %12649, %12646
  %12651 = phi double [ %12648, %12646 ], [ -1.000000e+00, %12649 ]
  br label %12652

12652:                                            ; preds = %12650, %12640
  %12653 = phi double [ %12641, %12640 ], [ %12651, %12650 ]
  %12654 = fptoui double %12653 to i16
  %12655 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %12654, ptr %12655, align 2, !tbaa !15
  br label %12660

12656:                                            ; preds = %12615
  %12657 = load i64, ptr %339, align 8, !tbaa !13
  %12658 = trunc i64 %12657 to i16
  %12659 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %12658, ptr %12659, align 2, !tbaa !15
  br label %12660

12660:                                            ; preds = %12656, %12652
  br label %12661

12661:                                            ; preds = %12660, %12580
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %341) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %340) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %339) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %338) #3
  br label %12662

12662:                                            ; preds = %12661
  br label %12663

12663:                                            ; preds = %12662
  br label %15938

12664:                                            ; preds = %12315
  br label %12665

12665:                                            ; preds = %12664
  call void @llvm.lifetime.start.p0(i64 8, ptr %349) #3
  store double 5.000000e-01, ptr %349, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %350) #3
  %12666 = load ptr, ptr %10, align 8, !tbaa !5
  %12667 = load i32, ptr %12666, align 4, !tbaa !9
  store i32 %12667, ptr %350, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %351) #3
  store double 0.000000e+00, ptr %351, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %352) #3
  store double 0.000000e+00, ptr %352, align 8, !tbaa !11
  %12668 = load ptr, ptr %11, align 8, !tbaa !5
  %12669 = icmp ne ptr null, %12668
  br i1 %12669, label %12670, label %12692

12670:                                            ; preds = %12665
  %12671 = load ptr, ptr %12, align 8, !tbaa !5
  %12672 = icmp ne ptr null, %12671
  br i1 %12672, label %12673, label %12684

12673:                                            ; preds = %12670
  %12674 = load ptr, ptr %11, align 8, !tbaa !5
  %12675 = load i32, ptr %12674, align 4, !tbaa !9
  %12676 = load i32, ptr %350, align 4, !tbaa !9
  %12677 = icmp sle i32 %12675, %12676
  br i1 %12677, label %12678, label %12684

12678:                                            ; preds = %12673
  %12679 = load i32, ptr %350, align 4, !tbaa !9
  %12680 = load ptr, ptr %12, align 8, !tbaa !5
  %12681 = load i32, ptr %12680, align 4, !tbaa !9
  %12682 = icmp sle i32 %12679, %12681
  br i1 %12682, label %12683, label %12684

12683:                                            ; preds = %12678
  br label %12685

12684:                                            ; preds = %12678, %12673, %12670
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.24, i32 noundef 476, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

12685:                                            ; preds = %12683
  %12686 = load ptr, ptr %11, align 8, !tbaa !5
  %12687 = load i32, ptr %12686, align 4, !tbaa !9
  %12688 = sitofp i32 %12687 to double
  store double %12688, ptr %351, align 8, !tbaa !11
  %12689 = load ptr, ptr %12, align 8, !tbaa !5
  %12690 = load i32, ptr %12689, align 4, !tbaa !9
  %12691 = sitofp i32 %12690 to double
  store double %12691, ptr %352, align 8, !tbaa !11
  br label %12692

12692:                                            ; preds = %12685, %12665
  %12693 = load i32, ptr %8, align 4, !tbaa !9
  %12694 = icmp ule i32 6, %12693
  br i1 %12694, label %12695, label %12931

12695:                                            ; preds = %12692
  %12696 = load double, ptr %351, align 8, !tbaa !11
  %12697 = load double, ptr %352, align 8, !tbaa !11
  %12698 = fcmp olt double %12696, %12697
  br i1 %12698, label %12699, label %12931

12699:                                            ; preds = %12695
  %12700 = load i32, ptr %8, align 4, !tbaa !9
  %12701 = icmp ule i32 15, %12700
  br i1 %12701, label %12702, label %12754

12702:                                            ; preds = %12699
  call void @llvm.lifetime.start.p0(i64 8, ptr %353) #3
  %12703 = load double, ptr %351, align 8, !tbaa !11
  %12704 = fcmp olt double 0.000000e+00, %12703
  br i1 %12704, label %12705, label %12707

12705:                                            ; preds = %12702
  %12706 = load double, ptr %351, align 8, !tbaa !11
  br label %12708

12707:                                            ; preds = %12702
  br label %12708

12708:                                            ; preds = %12707, %12705
  %12709 = phi double [ %12706, %12705 ], [ 0.000000e+00, %12707 ]
  store double %12709, ptr %353, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %354) #3
  %12710 = load double, ptr %352, align 8, !tbaa !11
  %12711 = fcmp olt double 0.000000e+00, %12710
  br i1 %12711, label %12712, label %12714

12712:                                            ; preds = %12708
  %12713 = load double, ptr %352, align 8, !tbaa !11
  br label %12715

12714:                                            ; preds = %12708
  br label %12715

12715:                                            ; preds = %12714, %12712
  %12716 = phi double [ %12713, %12712 ], [ 0.000000e+00, %12714 ]
  store double %12716, ptr %354, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %355) #3
  %12717 = load double, ptr %353, align 8, !tbaa !11
  %12718 = load double, ptr %354, align 8, !tbaa !11
  %12719 = fcmp olt double %12717, %12718
  br i1 %12719, label %12720, label %12728

12720:                                            ; preds = %12715
  %12721 = load double, ptr %352, align 8, !tbaa !11
  %12722 = load double, ptr %351, align 8, !tbaa !11
  %12723 = fsub double %12721, %12722
  %12724 = load double, ptr %354, align 8, !tbaa !11
  %12725 = load double, ptr %353, align 8, !tbaa !11
  %12726 = fsub double %12724, %12725
  %12727 = fdiv double %12723, %12726
  br label %12729

12728:                                            ; preds = %12715
  br label %12729

12729:                                            ; preds = %12728, %12720
  %12730 = phi double [ %12727, %12720 ], [ 1.000000e+00, %12728 ]
  store double %12730, ptr %355, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %356) #3
  %12731 = load double, ptr %355, align 8, !tbaa !11
  %12732 = load i32, ptr %350, align 4, !tbaa !9
  %12733 = icmp slt i32 0, %12732
  br i1 %12733, label %12734, label %12736

12734:                                            ; preds = %12729
  %12735 = load i32, ptr %350, align 4, !tbaa !9
  br label %12737

12736:                                            ; preds = %12729
  br label %12737

12737:                                            ; preds = %12736, %12734
  %12738 = phi i32 [ %12735, %12734 ], [ 0, %12736 ]
  %12739 = sitofp i32 %12738 to double
  %12740 = fmul double %12731, %12739
  store double %12740, ptr %356, align 8, !tbaa !11
  %12741 = load double, ptr %356, align 8, !tbaa !11
  %12742 = fcmp ole double 0.000000e+00, %12741
  br i1 %12742, label %12743, label %12746

12743:                                            ; preds = %12737
  %12744 = load double, ptr %356, align 8, !tbaa !11
  %12745 = fadd double %12744, 5.000000e-01
  br label %12749

12746:                                            ; preds = %12737
  %12747 = load double, ptr %356, align 8, !tbaa !11
  %12748 = fsub double %12747, 5.000000e-01
  br label %12749

12749:                                            ; preds = %12746, %12743
  %12750 = phi double [ %12745, %12743 ], [ %12748, %12746 ]
  %12751 = fptosi double %12750 to i32
  store i32 %12751, ptr %350, align 4, !tbaa !9
  %12752 = load double, ptr %353, align 8, !tbaa !11
  store double %12752, ptr %351, align 8, !tbaa !11
  %12753 = load double, ptr %354, align 8, !tbaa !11
  store double %12753, ptr %352, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %356) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %355) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %354) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %353) #3
  br label %12810

12754:                                            ; preds = %12699
  %12755 = load i32, ptr %8, align 4, !tbaa !9
  %12756 = icmp ugt i32 6, %12755
  br i1 %12756, label %12785, label %12757

12757:                                            ; preds = %12754
  %12758 = load i32, ptr %8, align 4, !tbaa !9
  %12759 = icmp ugt i32 15, %12758
  br i1 %12759, label %12760, label %12771

12760:                                            ; preds = %12757
  %12761 = load i32, ptr %9, align 4, !tbaa !9
  %12762 = icmp ugt i32 15, %12761
  br i1 %12762, label %12763, label %12768

12763:                                            ; preds = %12760
  %12764 = load i32, ptr %9, align 4, !tbaa !9
  %12765 = load i32, ptr %8, align 4, !tbaa !9
  %12766 = icmp ugt i32 %12764, %12765
  %12767 = zext i1 %12766 to i32
  br label %12769

12768:                                            ; preds = %12760
  br label %12769

12769:                                            ; preds = %12768, %12763
  %12770 = phi i32 [ %12767, %12763 ], [ 0, %12768 ]
  br label %12782

12771:                                            ; preds = %12757
  %12772 = load i32, ptr %9, align 4, !tbaa !9
  %12773 = icmp ugt i32 15, %12772
  br i1 %12773, label %12774, label %12775

12774:                                            ; preds = %12771
  br label %12780

12775:                                            ; preds = %12771
  %12776 = load i32, ptr %9, align 4, !tbaa !9
  %12777 = load i32, ptr %8, align 4, !tbaa !9
  %12778 = icmp ugt i32 %12776, %12777
  %12779 = zext i1 %12778 to i32
  br label %12780

12780:                                            ; preds = %12775, %12774
  %12781 = phi i32 [ 0, %12774 ], [ %12779, %12775 ]
  br label %12782

12782:                                            ; preds = %12780, %12769
  %12783 = phi i32 [ %12770, %12769 ], [ %12781, %12780 ]
  %12784 = icmp ne i32 %12783, 0
  br label %12785

12785:                                            ; preds = %12782, %12754
  %12786 = phi i1 [ true, %12754 ], [ %12784, %12782 ]
  %12787 = zext i1 %12786 to i32
  %12788 = icmp eq i32 0, %12787
  br i1 %12788, label %12789, label %12809

12789:                                            ; preds = %12785
  %12790 = load double, ptr %351, align 8, !tbaa !11
  %12791 = fcmp ogt double 0.000000e+00, %12790
  br i1 %12791, label %12792, label %12809

12792:                                            ; preds = %12789
  %12793 = load double, ptr %352, align 8, !tbaa !11
  %12794 = fcmp olt double 0.000000e+00, %12793
  br i1 %12794, label %12795, label %12809

12795:                                            ; preds = %12792
  %12796 = load double, ptr %351, align 8, !tbaa !11
  %12797 = fneg double %12796
  %12798 = load double, ptr %352, align 8, !tbaa !11
  %12799 = fcmp olt double %12797, %12798
  br i1 %12799, label %12800, label %12802

12800:                                            ; preds = %12795
  %12801 = load double, ptr %352, align 8, !tbaa !11
  br label %12805

12802:                                            ; preds = %12795
  %12803 = load double, ptr %351, align 8, !tbaa !11
  %12804 = fneg double %12803
  br label %12805

12805:                                            ; preds = %12802, %12800
  %12806 = phi double [ %12801, %12800 ], [ %12804, %12802 ]
  store double %12806, ptr %352, align 8, !tbaa !11
  %12807 = load double, ptr %352, align 8, !tbaa !11
  %12808 = fneg double %12807
  store double %12808, ptr %351, align 8, !tbaa !11
  br label %12809

12809:                                            ; preds = %12805, %12792, %12789, %12785
  br label %12810

12810:                                            ; preds = %12809, %12749
  call void @llvm.lifetime.start.p0(i64 8, ptr %357) #3
  %12811 = load double, ptr %351, align 8, !tbaa !11
  %12812 = fcmp ole double 0.000000e+00, %12811
  %12813 = zext i1 %12812 to i64
  %12814 = select i1 %12812, double 0.000000e+00, double -1.000000e+00
  store double %12814, ptr %357, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %358) #3
  %12815 = load double, ptr %352, align 8, !tbaa !11
  %12816 = fcmp ole double 0.000000e+00, %12815
  %12817 = zext i1 %12816 to i64
  %12818 = select i1 %12816, double 1.000000e+00, double 0.000000e+00
  store double %12818, ptr %358, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %359) #3
  %12819 = load i32, ptr %350, align 4, !tbaa !9
  %12820 = sitofp i32 %12819 to double
  %12821 = load double, ptr %351, align 8, !tbaa !11
  %12822 = fsub double %12820, %12821
  %12823 = load double, ptr %358, align 8, !tbaa !11
  %12824 = load double, ptr %357, align 8, !tbaa !11
  %12825 = fsub double %12823, %12824
  %12826 = fmul double %12822, %12825
  %12827 = load double, ptr %352, align 8, !tbaa !11
  %12828 = load double, ptr %351, align 8, !tbaa !11
  %12829 = fsub double %12827, %12828
  %12830 = fdiv double %12826, %12829
  %12831 = load double, ptr %357, align 8, !tbaa !11
  %12832 = fadd double %12830, %12831
  store double %12832, ptr %359, align 8, !tbaa !11
  %12833 = load double, ptr %357, align 8, !tbaa !11
  %12834 = load double, ptr %359, align 8, !tbaa !11
  %12835 = fcmp ole double 0.000000e+00, %12834
  br i1 %12835, label %12836, label %12839

12836:                                            ; preds = %12810
  %12837 = load double, ptr %359, align 8, !tbaa !11
  %12838 = fadd double %12837, 5.000000e-01
  br label %12842

12839:                                            ; preds = %12810
  %12840 = load double, ptr %359, align 8, !tbaa !11
  %12841 = fsub double %12840, 5.000000e-01
  br label %12842

12842:                                            ; preds = %12839, %12836
  %12843 = phi double [ %12838, %12836 ], [ %12841, %12839 ]
  %12844 = fcmp olt double %12833, %12843
  br i1 %12844, label %12845, label %12899

12845:                                            ; preds = %12842
  %12846 = load double, ptr %359, align 8, !tbaa !11
  %12847 = fcmp ole double 0.000000e+00, %12846
  br i1 %12847, label %12848, label %12851

12848:                                            ; preds = %12845
  %12849 = load double, ptr %359, align 8, !tbaa !11
  %12850 = fadd double %12849, 5.000000e-01
  br label %12854

12851:                                            ; preds = %12845
  %12852 = load double, ptr %359, align 8, !tbaa !11
  %12853 = fsub double %12852, 5.000000e-01
  br label %12854

12854:                                            ; preds = %12851, %12848
  %12855 = phi double [ %12850, %12848 ], [ %12853, %12851 ]
  %12856 = load double, ptr %358, align 8, !tbaa !11
  %12857 = fcmp ole double %12855, %12856
  br i1 %12857, label %12858, label %12869

12858:                                            ; preds = %12854
  %12859 = load double, ptr %359, align 8, !tbaa !11
  %12860 = fcmp ole double 0.000000e+00, %12859
  br i1 %12860, label %12861, label %12864

12861:                                            ; preds = %12858
  %12862 = load double, ptr %359, align 8, !tbaa !11
  %12863 = fadd double %12862, 5.000000e-01
  br label %12867

12864:                                            ; preds = %12858
  %12865 = load double, ptr %359, align 8, !tbaa !11
  %12866 = fsub double %12865, 5.000000e-01
  br label %12867

12867:                                            ; preds = %12864, %12861
  %12868 = phi double [ %12863, %12861 ], [ %12866, %12864 ]
  br label %12897

12869:                                            ; preds = %12854
  %12870 = load double, ptr %359, align 8, !tbaa !11
  %12871 = fcmp ole double 0.000000e+00, %12870
  br i1 %12871, label %12872, label %12875

12872:                                            ; preds = %12869
  %12873 = load double, ptr %359, align 8, !tbaa !11
  %12874 = fadd double %12873, 5.000000e-01
  br label %12878

12875:                                            ; preds = %12869
  %12876 = load double, ptr %359, align 8, !tbaa !11
  %12877 = fsub double %12876, 5.000000e-01
  br label %12878

12878:                                            ; preds = %12875, %12872
  %12879 = phi double [ %12874, %12872 ], [ %12877, %12875 ]
  %12880 = load double, ptr %358, align 8, !tbaa !11
  %12881 = fcmp olt double %12879, %12880
  br i1 %12881, label %12882, label %12893

12882:                                            ; preds = %12878
  %12883 = load double, ptr %359, align 8, !tbaa !11
  %12884 = fcmp ole double 0.000000e+00, %12883
  br i1 %12884, label %12885, label %12888

12885:                                            ; preds = %12882
  %12886 = load double, ptr %359, align 8, !tbaa !11
  %12887 = fadd double %12886, 5.000000e-01
  br label %12891

12888:                                            ; preds = %12882
  %12889 = load double, ptr %359, align 8, !tbaa !11
  %12890 = fsub double %12889, 5.000000e-01
  br label %12891

12891:                                            ; preds = %12888, %12885
  %12892 = phi double [ %12887, %12885 ], [ %12890, %12888 ]
  br label %12895

12893:                                            ; preds = %12878
  %12894 = load double, ptr %358, align 8, !tbaa !11
  br label %12895

12895:                                            ; preds = %12893, %12891
  %12896 = phi double [ %12892, %12891 ], [ %12894, %12893 ]
  br label %12897

12897:                                            ; preds = %12895, %12867
  %12898 = phi double [ %12868, %12867 ], [ %12896, %12895 ]
  br label %12927

12899:                                            ; preds = %12842
  %12900 = load double, ptr %357, align 8, !tbaa !11
  %12901 = load double, ptr %359, align 8, !tbaa !11
  %12902 = fcmp ole double 0.000000e+00, %12901
  br i1 %12902, label %12903, label %12906

12903:                                            ; preds = %12899
  %12904 = load double, ptr %359, align 8, !tbaa !11
  %12905 = fadd double %12904, 5.000000e-01
  br label %12909

12906:                                            ; preds = %12899
  %12907 = load double, ptr %359, align 8, !tbaa !11
  %12908 = fsub double %12907, 5.000000e-01
  br label %12909

12909:                                            ; preds = %12906, %12903
  %12910 = phi double [ %12905, %12903 ], [ %12908, %12906 ]
  %12911 = fcmp olt double %12900, %12910
  br i1 %12911, label %12912, label %12923

12912:                                            ; preds = %12909
  %12913 = load double, ptr %359, align 8, !tbaa !11
  %12914 = fcmp ole double 0.000000e+00, %12913
  br i1 %12914, label %12915, label %12918

12915:                                            ; preds = %12912
  %12916 = load double, ptr %359, align 8, !tbaa !11
  %12917 = fadd double %12916, 5.000000e-01
  br label %12921

12918:                                            ; preds = %12912
  %12919 = load double, ptr %359, align 8, !tbaa !11
  %12920 = fsub double %12919, 5.000000e-01
  br label %12921

12921:                                            ; preds = %12918, %12915
  %12922 = phi double [ %12917, %12915 ], [ %12920, %12918 ]
  br label %12925

12923:                                            ; preds = %12909
  %12924 = load double, ptr %357, align 8, !tbaa !11
  br label %12925

12925:                                            ; preds = %12923, %12921
  %12926 = phi double [ %12922, %12921 ], [ %12924, %12923 ]
  br label %12927

12927:                                            ; preds = %12925, %12897
  %12928 = phi double [ %12898, %12897 ], [ %12926, %12925 ]
  %12929 = fptoui double %12928 to i16
  %12930 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %12929, ptr %12930, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %359) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %358) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %357) #3
  br label %13008

12931:                                            ; preds = %12695, %12692
  %12932 = load i32, ptr %8, align 4, !tbaa !9
  %12933 = icmp ugt i32 6, %12932
  br i1 %12933, label %12962, label %12934

12934:                                            ; preds = %12931
  %12935 = load i32, ptr %8, align 4, !tbaa !9
  %12936 = icmp ugt i32 15, %12935
  br i1 %12936, label %12937, label %12948

12937:                                            ; preds = %12934
  %12938 = load i32, ptr %9, align 4, !tbaa !9
  %12939 = icmp ugt i32 15, %12938
  br i1 %12939, label %12940, label %12945

12940:                                            ; preds = %12937
  %12941 = load i32, ptr %9, align 4, !tbaa !9
  %12942 = load i32, ptr %8, align 4, !tbaa !9
  %12943 = icmp ugt i32 %12941, %12942
  %12944 = zext i1 %12943 to i32
  br label %12946

12945:                                            ; preds = %12937
  br label %12946

12946:                                            ; preds = %12945, %12940
  %12947 = phi i32 [ %12944, %12940 ], [ 0, %12945 ]
  br label %12959

12948:                                            ; preds = %12934
  %12949 = load i32, ptr %9, align 4, !tbaa !9
  %12950 = icmp ugt i32 15, %12949
  br i1 %12950, label %12951, label %12952

12951:                                            ; preds = %12948
  br label %12957

12952:                                            ; preds = %12948
  %12953 = load i32, ptr %9, align 4, !tbaa !9
  %12954 = load i32, ptr %8, align 4, !tbaa !9
  %12955 = icmp ugt i32 %12953, %12954
  %12956 = zext i1 %12955 to i32
  br label %12957

12957:                                            ; preds = %12952, %12951
  %12958 = phi i32 [ 0, %12951 ], [ %12956, %12952 ]
  br label %12959

12959:                                            ; preds = %12957, %12946
  %12960 = phi i32 [ %12947, %12946 ], [ %12958, %12957 ]
  %12961 = icmp ne i32 %12960, 0
  br label %12962

12962:                                            ; preds = %12959, %12931
  %12963 = phi i1 [ true, %12931 ], [ %12961, %12959 ]
  %12964 = zext i1 %12963 to i32
  %12965 = icmp eq i32 0, %12964
  br i1 %12965, label %12966, label %13003

12966:                                            ; preds = %12962
  %12967 = load i32, ptr %350, align 4, !tbaa !9
  %12968 = sitofp i32 %12967 to double
  %12969 = fcmp olt double -1.000000e+00, %12968
  br i1 %12969, label %12970, label %12989

12970:                                            ; preds = %12966
  %12971 = load i32, ptr %350, align 4, !tbaa !9
  %12972 = sitofp i32 %12971 to double
  %12973 = fcmp ole double %12972, 1.000000e+00
  br i1 %12973, label %12974, label %12977

12974:                                            ; preds = %12970
  %12975 = load i32, ptr %350, align 4, !tbaa !9
  %12976 = sitofp i32 %12975 to double
  br label %12987

12977:                                            ; preds = %12970
  %12978 = load i32, ptr %350, align 4, !tbaa !9
  %12979 = sitofp i32 %12978 to double
  %12980 = fcmp olt double %12979, 1.000000e+00
  br i1 %12980, label %12981, label %12984

12981:                                            ; preds = %12977
  %12982 = load i32, ptr %350, align 4, !tbaa !9
  %12983 = sitofp i32 %12982 to double
  br label %12985

12984:                                            ; preds = %12977
  br label %12985

12985:                                            ; preds = %12984, %12981
  %12986 = phi double [ %12983, %12981 ], [ 1.000000e+00, %12984 ]
  br label %12987

12987:                                            ; preds = %12985, %12974
  %12988 = phi double [ %12976, %12974 ], [ %12986, %12985 ]
  br label %12999

12989:                                            ; preds = %12966
  %12990 = load i32, ptr %350, align 4, !tbaa !9
  %12991 = sitofp i32 %12990 to double
  %12992 = fcmp olt double -1.000000e+00, %12991
  br i1 %12992, label %12993, label %12996

12993:                                            ; preds = %12989
  %12994 = load i32, ptr %350, align 4, !tbaa !9
  %12995 = sitofp i32 %12994 to double
  br label %12997

12996:                                            ; preds = %12989
  br label %12997

12997:                                            ; preds = %12996, %12993
  %12998 = phi double [ %12995, %12993 ], [ -1.000000e+00, %12996 ]
  br label %12999

12999:                                            ; preds = %12997, %12987
  %13000 = phi double [ %12988, %12987 ], [ %12998, %12997 ]
  %13001 = fptoui double %13000 to i16
  %13002 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %13001, ptr %13002, align 2, !tbaa !15
  br label %13007

13003:                                            ; preds = %12962
  %13004 = load i32, ptr %350, align 4, !tbaa !9
  %13005 = trunc i32 %13004 to i16
  %13006 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %13005, ptr %13006, align 2, !tbaa !15
  br label %13007

13007:                                            ; preds = %13003, %12999
  br label %13008

13008:                                            ; preds = %13007, %12927
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %352) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %351) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %350) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %349) #3
  br label %13009

13009:                                            ; preds = %13008
  br label %13010

13010:                                            ; preds = %13009
  br label %15938

13011:                                            ; preds = %12315
  br label %13012

13012:                                            ; preds = %13011
  call void @llvm.lifetime.start.p0(i64 8, ptr %360) #3
  store double 5.000000e-01, ptr %360, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %361) #3
  %13013 = load ptr, ptr %10, align 8, !tbaa !5
  %13014 = load i16, ptr %13013, align 2, !tbaa !15
  store i16 %13014, ptr %361, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %362) #3
  store double 0.000000e+00, ptr %362, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %363) #3
  store double 0.000000e+00, ptr %363, align 8, !tbaa !11
  %13015 = load ptr, ptr %11, align 8, !tbaa !5
  %13016 = icmp ne ptr null, %13015
  br i1 %13016, label %13017, label %13043

13017:                                            ; preds = %13012
  %13018 = load ptr, ptr %12, align 8, !tbaa !5
  %13019 = icmp ne ptr null, %13018
  br i1 %13019, label %13020, label %13035

13020:                                            ; preds = %13017
  %13021 = load ptr, ptr %11, align 8, !tbaa !5
  %13022 = load i16, ptr %13021, align 2, !tbaa !15
  %13023 = sext i16 %13022 to i32
  %13024 = load i16, ptr %361, align 2, !tbaa !15
  %13025 = sext i16 %13024 to i32
  %13026 = icmp sle i32 %13023, %13025
  br i1 %13026, label %13027, label %13035

13027:                                            ; preds = %13020
  %13028 = load i16, ptr %361, align 2, !tbaa !15
  %13029 = sext i16 %13028 to i32
  %13030 = load ptr, ptr %12, align 8, !tbaa !5
  %13031 = load i16, ptr %13030, align 2, !tbaa !15
  %13032 = sext i16 %13031 to i32
  %13033 = icmp sle i32 %13029, %13032
  br i1 %13033, label %13034, label %13035

13034:                                            ; preds = %13027
  br label %13036

13035:                                            ; preds = %13027, %13020, %13017
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.24, i32 noundef 476, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

13036:                                            ; preds = %13034
  %13037 = load ptr, ptr %11, align 8, !tbaa !5
  %13038 = load i16, ptr %13037, align 2, !tbaa !15
  %13039 = sitofp i16 %13038 to double
  store double %13039, ptr %362, align 8, !tbaa !11
  %13040 = load ptr, ptr %12, align 8, !tbaa !5
  %13041 = load i16, ptr %13040, align 2, !tbaa !15
  %13042 = sitofp i16 %13041 to double
  store double %13042, ptr %363, align 8, !tbaa !11
  br label %13043

13043:                                            ; preds = %13036, %13012
  %13044 = load i32, ptr %8, align 4, !tbaa !9
  %13045 = icmp ule i32 6, %13044
  br i1 %13045, label %13046, label %13284

13046:                                            ; preds = %13043
  %13047 = load double, ptr %362, align 8, !tbaa !11
  %13048 = load double, ptr %363, align 8, !tbaa !11
  %13049 = fcmp olt double %13047, %13048
  br i1 %13049, label %13050, label %13284

13050:                                            ; preds = %13046
  %13051 = load i32, ptr %8, align 4, !tbaa !9
  %13052 = icmp ule i32 15, %13051
  br i1 %13052, label %13053, label %13107

13053:                                            ; preds = %13050
  call void @llvm.lifetime.start.p0(i64 8, ptr %364) #3
  %13054 = load double, ptr %362, align 8, !tbaa !11
  %13055 = fcmp olt double 0.000000e+00, %13054
  br i1 %13055, label %13056, label %13058

13056:                                            ; preds = %13053
  %13057 = load double, ptr %362, align 8, !tbaa !11
  br label %13059

13058:                                            ; preds = %13053
  br label %13059

13059:                                            ; preds = %13058, %13056
  %13060 = phi double [ %13057, %13056 ], [ 0.000000e+00, %13058 ]
  store double %13060, ptr %364, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %365) #3
  %13061 = load double, ptr %363, align 8, !tbaa !11
  %13062 = fcmp olt double 0.000000e+00, %13061
  br i1 %13062, label %13063, label %13065

13063:                                            ; preds = %13059
  %13064 = load double, ptr %363, align 8, !tbaa !11
  br label %13066

13065:                                            ; preds = %13059
  br label %13066

13066:                                            ; preds = %13065, %13063
  %13067 = phi double [ %13064, %13063 ], [ 0.000000e+00, %13065 ]
  store double %13067, ptr %365, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %366) #3
  %13068 = load double, ptr %364, align 8, !tbaa !11
  %13069 = load double, ptr %365, align 8, !tbaa !11
  %13070 = fcmp olt double %13068, %13069
  br i1 %13070, label %13071, label %13079

13071:                                            ; preds = %13066
  %13072 = load double, ptr %363, align 8, !tbaa !11
  %13073 = load double, ptr %362, align 8, !tbaa !11
  %13074 = fsub double %13072, %13073
  %13075 = load double, ptr %365, align 8, !tbaa !11
  %13076 = load double, ptr %364, align 8, !tbaa !11
  %13077 = fsub double %13075, %13076
  %13078 = fdiv double %13074, %13077
  br label %13080

13079:                                            ; preds = %13066
  br label %13080

13080:                                            ; preds = %13079, %13071
  %13081 = phi double [ %13078, %13071 ], [ 1.000000e+00, %13079 ]
  store double %13081, ptr %366, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %367) #3
  %13082 = load double, ptr %366, align 8, !tbaa !11
  %13083 = load i16, ptr %361, align 2, !tbaa !15
  %13084 = sext i16 %13083 to i32
  %13085 = icmp slt i32 0, %13084
  br i1 %13085, label %13086, label %13089

13086:                                            ; preds = %13080
  %13087 = load i16, ptr %361, align 2, !tbaa !15
  %13088 = sext i16 %13087 to i32
  br label %13090

13089:                                            ; preds = %13080
  br label %13090

13090:                                            ; preds = %13089, %13086
  %13091 = phi i32 [ %13088, %13086 ], [ 0, %13089 ]
  %13092 = sitofp i32 %13091 to double
  %13093 = fmul double %13082, %13092
  store double %13093, ptr %367, align 8, !tbaa !11
  %13094 = load double, ptr %367, align 8, !tbaa !11
  %13095 = fcmp ole double 0.000000e+00, %13094
  br i1 %13095, label %13096, label %13099

13096:                                            ; preds = %13090
  %13097 = load double, ptr %367, align 8, !tbaa !11
  %13098 = fadd double %13097, 5.000000e-01
  br label %13102

13099:                                            ; preds = %13090
  %13100 = load double, ptr %367, align 8, !tbaa !11
  %13101 = fsub double %13100, 5.000000e-01
  br label %13102

13102:                                            ; preds = %13099, %13096
  %13103 = phi double [ %13098, %13096 ], [ %13101, %13099 ]
  %13104 = fptosi double %13103 to i16
  store i16 %13104, ptr %361, align 2, !tbaa !15
  %13105 = load double, ptr %364, align 8, !tbaa !11
  store double %13105, ptr %362, align 8, !tbaa !11
  %13106 = load double, ptr %365, align 8, !tbaa !11
  store double %13106, ptr %363, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %367) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %366) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %365) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %364) #3
  br label %13163

13107:                                            ; preds = %13050
  %13108 = load i32, ptr %8, align 4, !tbaa !9
  %13109 = icmp ugt i32 6, %13108
  br i1 %13109, label %13138, label %13110

13110:                                            ; preds = %13107
  %13111 = load i32, ptr %8, align 4, !tbaa !9
  %13112 = icmp ugt i32 15, %13111
  br i1 %13112, label %13113, label %13124

13113:                                            ; preds = %13110
  %13114 = load i32, ptr %9, align 4, !tbaa !9
  %13115 = icmp ugt i32 15, %13114
  br i1 %13115, label %13116, label %13121

13116:                                            ; preds = %13113
  %13117 = load i32, ptr %9, align 4, !tbaa !9
  %13118 = load i32, ptr %8, align 4, !tbaa !9
  %13119 = icmp ugt i32 %13117, %13118
  %13120 = zext i1 %13119 to i32
  br label %13122

13121:                                            ; preds = %13113
  br label %13122

13122:                                            ; preds = %13121, %13116
  %13123 = phi i32 [ %13120, %13116 ], [ 0, %13121 ]
  br label %13135

13124:                                            ; preds = %13110
  %13125 = load i32, ptr %9, align 4, !tbaa !9
  %13126 = icmp ugt i32 15, %13125
  br i1 %13126, label %13127, label %13128

13127:                                            ; preds = %13124
  br label %13133

13128:                                            ; preds = %13124
  %13129 = load i32, ptr %9, align 4, !tbaa !9
  %13130 = load i32, ptr %8, align 4, !tbaa !9
  %13131 = icmp ugt i32 %13129, %13130
  %13132 = zext i1 %13131 to i32
  br label %13133

13133:                                            ; preds = %13128, %13127
  %13134 = phi i32 [ 0, %13127 ], [ %13132, %13128 ]
  br label %13135

13135:                                            ; preds = %13133, %13122
  %13136 = phi i32 [ %13123, %13122 ], [ %13134, %13133 ]
  %13137 = icmp ne i32 %13136, 0
  br label %13138

13138:                                            ; preds = %13135, %13107
  %13139 = phi i1 [ true, %13107 ], [ %13137, %13135 ]
  %13140 = zext i1 %13139 to i32
  %13141 = icmp eq i32 0, %13140
  br i1 %13141, label %13142, label %13162

13142:                                            ; preds = %13138
  %13143 = load double, ptr %362, align 8, !tbaa !11
  %13144 = fcmp ogt double 0.000000e+00, %13143
  br i1 %13144, label %13145, label %13162

13145:                                            ; preds = %13142
  %13146 = load double, ptr %363, align 8, !tbaa !11
  %13147 = fcmp olt double 0.000000e+00, %13146
  br i1 %13147, label %13148, label %13162

13148:                                            ; preds = %13145
  %13149 = load double, ptr %362, align 8, !tbaa !11
  %13150 = fneg double %13149
  %13151 = load double, ptr %363, align 8, !tbaa !11
  %13152 = fcmp olt double %13150, %13151
  br i1 %13152, label %13153, label %13155

13153:                                            ; preds = %13148
  %13154 = load double, ptr %363, align 8, !tbaa !11
  br label %13158

13155:                                            ; preds = %13148
  %13156 = load double, ptr %362, align 8, !tbaa !11
  %13157 = fneg double %13156
  br label %13158

13158:                                            ; preds = %13155, %13153
  %13159 = phi double [ %13154, %13153 ], [ %13157, %13155 ]
  store double %13159, ptr %363, align 8, !tbaa !11
  %13160 = load double, ptr %363, align 8, !tbaa !11
  %13161 = fneg double %13160
  store double %13161, ptr %362, align 8, !tbaa !11
  br label %13162

13162:                                            ; preds = %13158, %13145, %13142, %13138
  br label %13163

13163:                                            ; preds = %13162, %13102
  call void @llvm.lifetime.start.p0(i64 8, ptr %368) #3
  %13164 = load double, ptr %362, align 8, !tbaa !11
  %13165 = fcmp ole double 0.000000e+00, %13164
  %13166 = zext i1 %13165 to i64
  %13167 = select i1 %13165, double 0.000000e+00, double -1.000000e+00
  store double %13167, ptr %368, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %369) #3
  %13168 = load double, ptr %363, align 8, !tbaa !11
  %13169 = fcmp ole double 0.000000e+00, %13168
  %13170 = zext i1 %13169 to i64
  %13171 = select i1 %13169, double 1.000000e+00, double 0.000000e+00
  store double %13171, ptr %369, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %370) #3
  %13172 = load i16, ptr %361, align 2, !tbaa !15
  %13173 = sitofp i16 %13172 to double
  %13174 = load double, ptr %362, align 8, !tbaa !11
  %13175 = fsub double %13173, %13174
  %13176 = load double, ptr %369, align 8, !tbaa !11
  %13177 = load double, ptr %368, align 8, !tbaa !11
  %13178 = fsub double %13176, %13177
  %13179 = fmul double %13175, %13178
  %13180 = load double, ptr %363, align 8, !tbaa !11
  %13181 = load double, ptr %362, align 8, !tbaa !11
  %13182 = fsub double %13180, %13181
  %13183 = fdiv double %13179, %13182
  %13184 = load double, ptr %368, align 8, !tbaa !11
  %13185 = fadd double %13183, %13184
  store double %13185, ptr %370, align 8, !tbaa !11
  %13186 = load double, ptr %368, align 8, !tbaa !11
  %13187 = load double, ptr %370, align 8, !tbaa !11
  %13188 = fcmp ole double 0.000000e+00, %13187
  br i1 %13188, label %13189, label %13192

13189:                                            ; preds = %13163
  %13190 = load double, ptr %370, align 8, !tbaa !11
  %13191 = fadd double %13190, 5.000000e-01
  br label %13195

13192:                                            ; preds = %13163
  %13193 = load double, ptr %370, align 8, !tbaa !11
  %13194 = fsub double %13193, 5.000000e-01
  br label %13195

13195:                                            ; preds = %13192, %13189
  %13196 = phi double [ %13191, %13189 ], [ %13194, %13192 ]
  %13197 = fcmp olt double %13186, %13196
  br i1 %13197, label %13198, label %13252

13198:                                            ; preds = %13195
  %13199 = load double, ptr %370, align 8, !tbaa !11
  %13200 = fcmp ole double 0.000000e+00, %13199
  br i1 %13200, label %13201, label %13204

13201:                                            ; preds = %13198
  %13202 = load double, ptr %370, align 8, !tbaa !11
  %13203 = fadd double %13202, 5.000000e-01
  br label %13207

13204:                                            ; preds = %13198
  %13205 = load double, ptr %370, align 8, !tbaa !11
  %13206 = fsub double %13205, 5.000000e-01
  br label %13207

13207:                                            ; preds = %13204, %13201
  %13208 = phi double [ %13203, %13201 ], [ %13206, %13204 ]
  %13209 = load double, ptr %369, align 8, !tbaa !11
  %13210 = fcmp ole double %13208, %13209
  br i1 %13210, label %13211, label %13222

13211:                                            ; preds = %13207
  %13212 = load double, ptr %370, align 8, !tbaa !11
  %13213 = fcmp ole double 0.000000e+00, %13212
  br i1 %13213, label %13214, label %13217

13214:                                            ; preds = %13211
  %13215 = load double, ptr %370, align 8, !tbaa !11
  %13216 = fadd double %13215, 5.000000e-01
  br label %13220

13217:                                            ; preds = %13211
  %13218 = load double, ptr %370, align 8, !tbaa !11
  %13219 = fsub double %13218, 5.000000e-01
  br label %13220

13220:                                            ; preds = %13217, %13214
  %13221 = phi double [ %13216, %13214 ], [ %13219, %13217 ]
  br label %13250

13222:                                            ; preds = %13207
  %13223 = load double, ptr %370, align 8, !tbaa !11
  %13224 = fcmp ole double 0.000000e+00, %13223
  br i1 %13224, label %13225, label %13228

13225:                                            ; preds = %13222
  %13226 = load double, ptr %370, align 8, !tbaa !11
  %13227 = fadd double %13226, 5.000000e-01
  br label %13231

13228:                                            ; preds = %13222
  %13229 = load double, ptr %370, align 8, !tbaa !11
  %13230 = fsub double %13229, 5.000000e-01
  br label %13231

13231:                                            ; preds = %13228, %13225
  %13232 = phi double [ %13227, %13225 ], [ %13230, %13228 ]
  %13233 = load double, ptr %369, align 8, !tbaa !11
  %13234 = fcmp olt double %13232, %13233
  br i1 %13234, label %13235, label %13246

13235:                                            ; preds = %13231
  %13236 = load double, ptr %370, align 8, !tbaa !11
  %13237 = fcmp ole double 0.000000e+00, %13236
  br i1 %13237, label %13238, label %13241

13238:                                            ; preds = %13235
  %13239 = load double, ptr %370, align 8, !tbaa !11
  %13240 = fadd double %13239, 5.000000e-01
  br label %13244

13241:                                            ; preds = %13235
  %13242 = load double, ptr %370, align 8, !tbaa !11
  %13243 = fsub double %13242, 5.000000e-01
  br label %13244

13244:                                            ; preds = %13241, %13238
  %13245 = phi double [ %13240, %13238 ], [ %13243, %13241 ]
  br label %13248

13246:                                            ; preds = %13231
  %13247 = load double, ptr %369, align 8, !tbaa !11
  br label %13248

13248:                                            ; preds = %13246, %13244
  %13249 = phi double [ %13245, %13244 ], [ %13247, %13246 ]
  br label %13250

13250:                                            ; preds = %13248, %13220
  %13251 = phi double [ %13221, %13220 ], [ %13249, %13248 ]
  br label %13280

13252:                                            ; preds = %13195
  %13253 = load double, ptr %368, align 8, !tbaa !11
  %13254 = load double, ptr %370, align 8, !tbaa !11
  %13255 = fcmp ole double 0.000000e+00, %13254
  br i1 %13255, label %13256, label %13259

13256:                                            ; preds = %13252
  %13257 = load double, ptr %370, align 8, !tbaa !11
  %13258 = fadd double %13257, 5.000000e-01
  br label %13262

13259:                                            ; preds = %13252
  %13260 = load double, ptr %370, align 8, !tbaa !11
  %13261 = fsub double %13260, 5.000000e-01
  br label %13262

13262:                                            ; preds = %13259, %13256
  %13263 = phi double [ %13258, %13256 ], [ %13261, %13259 ]
  %13264 = fcmp olt double %13253, %13263
  br i1 %13264, label %13265, label %13276

13265:                                            ; preds = %13262
  %13266 = load double, ptr %370, align 8, !tbaa !11
  %13267 = fcmp ole double 0.000000e+00, %13266
  br i1 %13267, label %13268, label %13271

13268:                                            ; preds = %13265
  %13269 = load double, ptr %370, align 8, !tbaa !11
  %13270 = fadd double %13269, 5.000000e-01
  br label %13274

13271:                                            ; preds = %13265
  %13272 = load double, ptr %370, align 8, !tbaa !11
  %13273 = fsub double %13272, 5.000000e-01
  br label %13274

13274:                                            ; preds = %13271, %13268
  %13275 = phi double [ %13270, %13268 ], [ %13273, %13271 ]
  br label %13278

13276:                                            ; preds = %13262
  %13277 = load double, ptr %368, align 8, !tbaa !11
  br label %13278

13278:                                            ; preds = %13276, %13274
  %13279 = phi double [ %13275, %13274 ], [ %13277, %13276 ]
  br label %13280

13280:                                            ; preds = %13278, %13250
  %13281 = phi double [ %13251, %13250 ], [ %13279, %13278 ]
  %13282 = fptoui double %13281 to i16
  %13283 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %13282, ptr %13283, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %370) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %369) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %368) #3
  br label %13367

13284:                                            ; preds = %13046, %13043
  %13285 = load i32, ptr %8, align 4, !tbaa !9
  %13286 = icmp ugt i32 6, %13285
  br i1 %13286, label %13315, label %13287

13287:                                            ; preds = %13284
  %13288 = load i32, ptr %8, align 4, !tbaa !9
  %13289 = icmp ugt i32 15, %13288
  br i1 %13289, label %13290, label %13301

13290:                                            ; preds = %13287
  %13291 = load i32, ptr %9, align 4, !tbaa !9
  %13292 = icmp ugt i32 15, %13291
  br i1 %13292, label %13293, label %13298

13293:                                            ; preds = %13290
  %13294 = load i32, ptr %9, align 4, !tbaa !9
  %13295 = load i32, ptr %8, align 4, !tbaa !9
  %13296 = icmp ugt i32 %13294, %13295
  %13297 = zext i1 %13296 to i32
  br label %13299

13298:                                            ; preds = %13290
  br label %13299

13299:                                            ; preds = %13298, %13293
  %13300 = phi i32 [ %13297, %13293 ], [ 0, %13298 ]
  br label %13312

13301:                                            ; preds = %13287
  %13302 = load i32, ptr %9, align 4, !tbaa !9
  %13303 = icmp ugt i32 15, %13302
  br i1 %13303, label %13304, label %13305

13304:                                            ; preds = %13301
  br label %13310

13305:                                            ; preds = %13301
  %13306 = load i32, ptr %9, align 4, !tbaa !9
  %13307 = load i32, ptr %8, align 4, !tbaa !9
  %13308 = icmp ugt i32 %13306, %13307
  %13309 = zext i1 %13308 to i32
  br label %13310

13310:                                            ; preds = %13305, %13304
  %13311 = phi i32 [ 0, %13304 ], [ %13309, %13305 ]
  br label %13312

13312:                                            ; preds = %13310, %13299
  %13313 = phi i32 [ %13300, %13299 ], [ %13311, %13310 ]
  %13314 = icmp ne i32 %13313, 0
  br label %13315

13315:                                            ; preds = %13312, %13284
  %13316 = phi i1 [ true, %13284 ], [ %13314, %13312 ]
  %13317 = zext i1 %13316 to i32
  %13318 = icmp eq i32 0, %13317
  br i1 %13318, label %13319, label %13363

13319:                                            ; preds = %13315
  %13320 = load i16, ptr %361, align 2, !tbaa !15
  %13321 = sext i16 %13320 to i32
  %13322 = sitofp i32 %13321 to double
  %13323 = fcmp olt double -1.000000e+00, %13322
  br i1 %13323, label %13324, label %13347

13324:                                            ; preds = %13319
  %13325 = load i16, ptr %361, align 2, !tbaa !15
  %13326 = sext i16 %13325 to i32
  %13327 = sitofp i32 %13326 to double
  %13328 = fcmp ole double %13327, 1.000000e+00
  br i1 %13328, label %13329, label %13333

13329:                                            ; preds = %13324
  %13330 = load i16, ptr %361, align 2, !tbaa !15
  %13331 = sext i16 %13330 to i32
  %13332 = sitofp i32 %13331 to double
  br label %13345

13333:                                            ; preds = %13324
  %13334 = load i16, ptr %361, align 2, !tbaa !15
  %13335 = sext i16 %13334 to i32
  %13336 = sitofp i32 %13335 to double
  %13337 = fcmp olt double %13336, 1.000000e+00
  br i1 %13337, label %13338, label %13342

13338:                                            ; preds = %13333
  %13339 = load i16, ptr %361, align 2, !tbaa !15
  %13340 = sext i16 %13339 to i32
  %13341 = sitofp i32 %13340 to double
  br label %13343

13342:                                            ; preds = %13333
  br label %13343

13343:                                            ; preds = %13342, %13338
  %13344 = phi double [ %13341, %13338 ], [ 1.000000e+00, %13342 ]
  br label %13345

13345:                                            ; preds = %13343, %13329
  %13346 = phi double [ %13332, %13329 ], [ %13344, %13343 ]
  br label %13359

13347:                                            ; preds = %13319
  %13348 = load i16, ptr %361, align 2, !tbaa !15
  %13349 = sext i16 %13348 to i32
  %13350 = sitofp i32 %13349 to double
  %13351 = fcmp olt double -1.000000e+00, %13350
  br i1 %13351, label %13352, label %13356

13352:                                            ; preds = %13347
  %13353 = load i16, ptr %361, align 2, !tbaa !15
  %13354 = sext i16 %13353 to i32
  %13355 = sitofp i32 %13354 to double
  br label %13357

13356:                                            ; preds = %13347
  br label %13357

13357:                                            ; preds = %13356, %13352
  %13358 = phi double [ %13355, %13352 ], [ -1.000000e+00, %13356 ]
  br label %13359

13359:                                            ; preds = %13357, %13345
  %13360 = phi double [ %13346, %13345 ], [ %13358, %13357 ]
  %13361 = fptoui double %13360 to i16
  %13362 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %13361, ptr %13362, align 2, !tbaa !15
  br label %13366

13363:                                            ; preds = %13315
  %13364 = load i16, ptr %361, align 2, !tbaa !15
  %13365 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %13364, ptr %13365, align 2, !tbaa !15
  br label %13366

13366:                                            ; preds = %13363, %13359
  br label %13367

13367:                                            ; preds = %13366, %13280
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %363) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %362) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %361) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %360) #3
  br label %13368

13368:                                            ; preds = %13367
  br label %13369

13369:                                            ; preds = %13368
  br label %15938

13370:                                            ; preds = %12315
  br label %13371

13371:                                            ; preds = %13370
  call void @llvm.lifetime.start.p0(i64 8, ptr %371) #3
  store double 5.000000e-01, ptr %371, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %372) #3
  %13372 = load ptr, ptr %10, align 8, !tbaa !5
  %13373 = load i8, ptr %13372, align 1, !tbaa !17
  store i8 %13373, ptr %372, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %373) #3
  store double 0.000000e+00, ptr %373, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %374) #3
  store double 0.000000e+00, ptr %374, align 8, !tbaa !11
  %13374 = load ptr, ptr %11, align 8, !tbaa !5
  %13375 = icmp ne ptr null, %13374
  br i1 %13375, label %13376, label %13402

13376:                                            ; preds = %13371
  %13377 = load ptr, ptr %12, align 8, !tbaa !5
  %13378 = icmp ne ptr null, %13377
  br i1 %13378, label %13379, label %13394

13379:                                            ; preds = %13376
  %13380 = load ptr, ptr %11, align 8, !tbaa !5
  %13381 = load i8, ptr %13380, align 1, !tbaa !17
  %13382 = sext i8 %13381 to i32
  %13383 = load i8, ptr %372, align 1, !tbaa !17
  %13384 = sext i8 %13383 to i32
  %13385 = icmp sle i32 %13382, %13384
  br i1 %13385, label %13386, label %13394

13386:                                            ; preds = %13379
  %13387 = load i8, ptr %372, align 1, !tbaa !17
  %13388 = sext i8 %13387 to i32
  %13389 = load ptr, ptr %12, align 8, !tbaa !5
  %13390 = load i8, ptr %13389, align 1, !tbaa !17
  %13391 = sext i8 %13390 to i32
  %13392 = icmp sle i32 %13388, %13391
  br i1 %13392, label %13393, label %13394

13393:                                            ; preds = %13386
  br label %13395

13394:                                            ; preds = %13386, %13379, %13376
  call void @__assert_fail(ptr noundef @.str.45, ptr noundef @.str.24, i32 noundef 476, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

13395:                                            ; preds = %13393
  %13396 = load ptr, ptr %11, align 8, !tbaa !5
  %13397 = load i8, ptr %13396, align 1, !tbaa !17
  %13398 = sitofp i8 %13397 to double
  store double %13398, ptr %373, align 8, !tbaa !11
  %13399 = load ptr, ptr %12, align 8, !tbaa !5
  %13400 = load i8, ptr %13399, align 1, !tbaa !17
  %13401 = sitofp i8 %13400 to double
  store double %13401, ptr %374, align 8, !tbaa !11
  br label %13402

13402:                                            ; preds = %13395, %13371
  %13403 = load i32, ptr %8, align 4, !tbaa !9
  %13404 = icmp ule i32 6, %13403
  br i1 %13404, label %13405, label %13643

13405:                                            ; preds = %13402
  %13406 = load double, ptr %373, align 8, !tbaa !11
  %13407 = load double, ptr %374, align 8, !tbaa !11
  %13408 = fcmp olt double %13406, %13407
  br i1 %13408, label %13409, label %13643

13409:                                            ; preds = %13405
  %13410 = load i32, ptr %8, align 4, !tbaa !9
  %13411 = icmp ule i32 15, %13410
  br i1 %13411, label %13412, label %13466

13412:                                            ; preds = %13409
  call void @llvm.lifetime.start.p0(i64 8, ptr %375) #3
  %13413 = load double, ptr %373, align 8, !tbaa !11
  %13414 = fcmp olt double 0.000000e+00, %13413
  br i1 %13414, label %13415, label %13417

13415:                                            ; preds = %13412
  %13416 = load double, ptr %373, align 8, !tbaa !11
  br label %13418

13417:                                            ; preds = %13412
  br label %13418

13418:                                            ; preds = %13417, %13415
  %13419 = phi double [ %13416, %13415 ], [ 0.000000e+00, %13417 ]
  store double %13419, ptr %375, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %376) #3
  %13420 = load double, ptr %374, align 8, !tbaa !11
  %13421 = fcmp olt double 0.000000e+00, %13420
  br i1 %13421, label %13422, label %13424

13422:                                            ; preds = %13418
  %13423 = load double, ptr %374, align 8, !tbaa !11
  br label %13425

13424:                                            ; preds = %13418
  br label %13425

13425:                                            ; preds = %13424, %13422
  %13426 = phi double [ %13423, %13422 ], [ 0.000000e+00, %13424 ]
  store double %13426, ptr %376, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %377) #3
  %13427 = load double, ptr %375, align 8, !tbaa !11
  %13428 = load double, ptr %376, align 8, !tbaa !11
  %13429 = fcmp olt double %13427, %13428
  br i1 %13429, label %13430, label %13438

13430:                                            ; preds = %13425
  %13431 = load double, ptr %374, align 8, !tbaa !11
  %13432 = load double, ptr %373, align 8, !tbaa !11
  %13433 = fsub double %13431, %13432
  %13434 = load double, ptr %376, align 8, !tbaa !11
  %13435 = load double, ptr %375, align 8, !tbaa !11
  %13436 = fsub double %13434, %13435
  %13437 = fdiv double %13433, %13436
  br label %13439

13438:                                            ; preds = %13425
  br label %13439

13439:                                            ; preds = %13438, %13430
  %13440 = phi double [ %13437, %13430 ], [ 1.000000e+00, %13438 ]
  store double %13440, ptr %377, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %378) #3
  %13441 = load double, ptr %377, align 8, !tbaa !11
  %13442 = load i8, ptr %372, align 1, !tbaa !17
  %13443 = sext i8 %13442 to i32
  %13444 = icmp slt i32 0, %13443
  br i1 %13444, label %13445, label %13448

13445:                                            ; preds = %13439
  %13446 = load i8, ptr %372, align 1, !tbaa !17
  %13447 = sext i8 %13446 to i32
  br label %13449

13448:                                            ; preds = %13439
  br label %13449

13449:                                            ; preds = %13448, %13445
  %13450 = phi i32 [ %13447, %13445 ], [ 0, %13448 ]
  %13451 = sitofp i32 %13450 to double
  %13452 = fmul double %13441, %13451
  store double %13452, ptr %378, align 8, !tbaa !11
  %13453 = load double, ptr %378, align 8, !tbaa !11
  %13454 = fcmp ole double 0.000000e+00, %13453
  br i1 %13454, label %13455, label %13458

13455:                                            ; preds = %13449
  %13456 = load double, ptr %378, align 8, !tbaa !11
  %13457 = fadd double %13456, 5.000000e-01
  br label %13461

13458:                                            ; preds = %13449
  %13459 = load double, ptr %378, align 8, !tbaa !11
  %13460 = fsub double %13459, 5.000000e-01
  br label %13461

13461:                                            ; preds = %13458, %13455
  %13462 = phi double [ %13457, %13455 ], [ %13460, %13458 ]
  %13463 = fptosi double %13462 to i8
  store i8 %13463, ptr %372, align 1, !tbaa !17
  %13464 = load double, ptr %375, align 8, !tbaa !11
  store double %13464, ptr %373, align 8, !tbaa !11
  %13465 = load double, ptr %376, align 8, !tbaa !11
  store double %13465, ptr %374, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %378) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %377) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %376) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %375) #3
  br label %13522

13466:                                            ; preds = %13409
  %13467 = load i32, ptr %8, align 4, !tbaa !9
  %13468 = icmp ugt i32 6, %13467
  br i1 %13468, label %13497, label %13469

13469:                                            ; preds = %13466
  %13470 = load i32, ptr %8, align 4, !tbaa !9
  %13471 = icmp ugt i32 15, %13470
  br i1 %13471, label %13472, label %13483

13472:                                            ; preds = %13469
  %13473 = load i32, ptr %9, align 4, !tbaa !9
  %13474 = icmp ugt i32 15, %13473
  br i1 %13474, label %13475, label %13480

13475:                                            ; preds = %13472
  %13476 = load i32, ptr %9, align 4, !tbaa !9
  %13477 = load i32, ptr %8, align 4, !tbaa !9
  %13478 = icmp ugt i32 %13476, %13477
  %13479 = zext i1 %13478 to i32
  br label %13481

13480:                                            ; preds = %13472
  br label %13481

13481:                                            ; preds = %13480, %13475
  %13482 = phi i32 [ %13479, %13475 ], [ 0, %13480 ]
  br label %13494

13483:                                            ; preds = %13469
  %13484 = load i32, ptr %9, align 4, !tbaa !9
  %13485 = icmp ugt i32 15, %13484
  br i1 %13485, label %13486, label %13487

13486:                                            ; preds = %13483
  br label %13492

13487:                                            ; preds = %13483
  %13488 = load i32, ptr %9, align 4, !tbaa !9
  %13489 = load i32, ptr %8, align 4, !tbaa !9
  %13490 = icmp ugt i32 %13488, %13489
  %13491 = zext i1 %13490 to i32
  br label %13492

13492:                                            ; preds = %13487, %13486
  %13493 = phi i32 [ 0, %13486 ], [ %13491, %13487 ]
  br label %13494

13494:                                            ; preds = %13492, %13481
  %13495 = phi i32 [ %13482, %13481 ], [ %13493, %13492 ]
  %13496 = icmp ne i32 %13495, 0
  br label %13497

13497:                                            ; preds = %13494, %13466
  %13498 = phi i1 [ true, %13466 ], [ %13496, %13494 ]
  %13499 = zext i1 %13498 to i32
  %13500 = icmp eq i32 0, %13499
  br i1 %13500, label %13501, label %13521

13501:                                            ; preds = %13497
  %13502 = load double, ptr %373, align 8, !tbaa !11
  %13503 = fcmp ogt double 0.000000e+00, %13502
  br i1 %13503, label %13504, label %13521

13504:                                            ; preds = %13501
  %13505 = load double, ptr %374, align 8, !tbaa !11
  %13506 = fcmp olt double 0.000000e+00, %13505
  br i1 %13506, label %13507, label %13521

13507:                                            ; preds = %13504
  %13508 = load double, ptr %373, align 8, !tbaa !11
  %13509 = fneg double %13508
  %13510 = load double, ptr %374, align 8, !tbaa !11
  %13511 = fcmp olt double %13509, %13510
  br i1 %13511, label %13512, label %13514

13512:                                            ; preds = %13507
  %13513 = load double, ptr %374, align 8, !tbaa !11
  br label %13517

13514:                                            ; preds = %13507
  %13515 = load double, ptr %373, align 8, !tbaa !11
  %13516 = fneg double %13515
  br label %13517

13517:                                            ; preds = %13514, %13512
  %13518 = phi double [ %13513, %13512 ], [ %13516, %13514 ]
  store double %13518, ptr %374, align 8, !tbaa !11
  %13519 = load double, ptr %374, align 8, !tbaa !11
  %13520 = fneg double %13519
  store double %13520, ptr %373, align 8, !tbaa !11
  br label %13521

13521:                                            ; preds = %13517, %13504, %13501, %13497
  br label %13522

13522:                                            ; preds = %13521, %13461
  call void @llvm.lifetime.start.p0(i64 8, ptr %379) #3
  %13523 = load double, ptr %373, align 8, !tbaa !11
  %13524 = fcmp ole double 0.000000e+00, %13523
  %13525 = zext i1 %13524 to i64
  %13526 = select i1 %13524, double 0.000000e+00, double -1.000000e+00
  store double %13526, ptr %379, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %380) #3
  %13527 = load double, ptr %374, align 8, !tbaa !11
  %13528 = fcmp ole double 0.000000e+00, %13527
  %13529 = zext i1 %13528 to i64
  %13530 = select i1 %13528, double 1.000000e+00, double 0.000000e+00
  store double %13530, ptr %380, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %381) #3
  %13531 = load i8, ptr %372, align 1, !tbaa !17
  %13532 = sitofp i8 %13531 to double
  %13533 = load double, ptr %373, align 8, !tbaa !11
  %13534 = fsub double %13532, %13533
  %13535 = load double, ptr %380, align 8, !tbaa !11
  %13536 = load double, ptr %379, align 8, !tbaa !11
  %13537 = fsub double %13535, %13536
  %13538 = fmul double %13534, %13537
  %13539 = load double, ptr %374, align 8, !tbaa !11
  %13540 = load double, ptr %373, align 8, !tbaa !11
  %13541 = fsub double %13539, %13540
  %13542 = fdiv double %13538, %13541
  %13543 = load double, ptr %379, align 8, !tbaa !11
  %13544 = fadd double %13542, %13543
  store double %13544, ptr %381, align 8, !tbaa !11
  %13545 = load double, ptr %379, align 8, !tbaa !11
  %13546 = load double, ptr %381, align 8, !tbaa !11
  %13547 = fcmp ole double 0.000000e+00, %13546
  br i1 %13547, label %13548, label %13551

13548:                                            ; preds = %13522
  %13549 = load double, ptr %381, align 8, !tbaa !11
  %13550 = fadd double %13549, 5.000000e-01
  br label %13554

13551:                                            ; preds = %13522
  %13552 = load double, ptr %381, align 8, !tbaa !11
  %13553 = fsub double %13552, 5.000000e-01
  br label %13554

13554:                                            ; preds = %13551, %13548
  %13555 = phi double [ %13550, %13548 ], [ %13553, %13551 ]
  %13556 = fcmp olt double %13545, %13555
  br i1 %13556, label %13557, label %13611

13557:                                            ; preds = %13554
  %13558 = load double, ptr %381, align 8, !tbaa !11
  %13559 = fcmp ole double 0.000000e+00, %13558
  br i1 %13559, label %13560, label %13563

13560:                                            ; preds = %13557
  %13561 = load double, ptr %381, align 8, !tbaa !11
  %13562 = fadd double %13561, 5.000000e-01
  br label %13566

13563:                                            ; preds = %13557
  %13564 = load double, ptr %381, align 8, !tbaa !11
  %13565 = fsub double %13564, 5.000000e-01
  br label %13566

13566:                                            ; preds = %13563, %13560
  %13567 = phi double [ %13562, %13560 ], [ %13565, %13563 ]
  %13568 = load double, ptr %380, align 8, !tbaa !11
  %13569 = fcmp ole double %13567, %13568
  br i1 %13569, label %13570, label %13581

13570:                                            ; preds = %13566
  %13571 = load double, ptr %381, align 8, !tbaa !11
  %13572 = fcmp ole double 0.000000e+00, %13571
  br i1 %13572, label %13573, label %13576

13573:                                            ; preds = %13570
  %13574 = load double, ptr %381, align 8, !tbaa !11
  %13575 = fadd double %13574, 5.000000e-01
  br label %13579

13576:                                            ; preds = %13570
  %13577 = load double, ptr %381, align 8, !tbaa !11
  %13578 = fsub double %13577, 5.000000e-01
  br label %13579

13579:                                            ; preds = %13576, %13573
  %13580 = phi double [ %13575, %13573 ], [ %13578, %13576 ]
  br label %13609

13581:                                            ; preds = %13566
  %13582 = load double, ptr %381, align 8, !tbaa !11
  %13583 = fcmp ole double 0.000000e+00, %13582
  br i1 %13583, label %13584, label %13587

13584:                                            ; preds = %13581
  %13585 = load double, ptr %381, align 8, !tbaa !11
  %13586 = fadd double %13585, 5.000000e-01
  br label %13590

13587:                                            ; preds = %13581
  %13588 = load double, ptr %381, align 8, !tbaa !11
  %13589 = fsub double %13588, 5.000000e-01
  br label %13590

13590:                                            ; preds = %13587, %13584
  %13591 = phi double [ %13586, %13584 ], [ %13589, %13587 ]
  %13592 = load double, ptr %380, align 8, !tbaa !11
  %13593 = fcmp olt double %13591, %13592
  br i1 %13593, label %13594, label %13605

13594:                                            ; preds = %13590
  %13595 = load double, ptr %381, align 8, !tbaa !11
  %13596 = fcmp ole double 0.000000e+00, %13595
  br i1 %13596, label %13597, label %13600

13597:                                            ; preds = %13594
  %13598 = load double, ptr %381, align 8, !tbaa !11
  %13599 = fadd double %13598, 5.000000e-01
  br label %13603

13600:                                            ; preds = %13594
  %13601 = load double, ptr %381, align 8, !tbaa !11
  %13602 = fsub double %13601, 5.000000e-01
  br label %13603

13603:                                            ; preds = %13600, %13597
  %13604 = phi double [ %13599, %13597 ], [ %13602, %13600 ]
  br label %13607

13605:                                            ; preds = %13590
  %13606 = load double, ptr %380, align 8, !tbaa !11
  br label %13607

13607:                                            ; preds = %13605, %13603
  %13608 = phi double [ %13604, %13603 ], [ %13606, %13605 ]
  br label %13609

13609:                                            ; preds = %13607, %13579
  %13610 = phi double [ %13580, %13579 ], [ %13608, %13607 ]
  br label %13639

13611:                                            ; preds = %13554
  %13612 = load double, ptr %379, align 8, !tbaa !11
  %13613 = load double, ptr %381, align 8, !tbaa !11
  %13614 = fcmp ole double 0.000000e+00, %13613
  br i1 %13614, label %13615, label %13618

13615:                                            ; preds = %13611
  %13616 = load double, ptr %381, align 8, !tbaa !11
  %13617 = fadd double %13616, 5.000000e-01
  br label %13621

13618:                                            ; preds = %13611
  %13619 = load double, ptr %381, align 8, !tbaa !11
  %13620 = fsub double %13619, 5.000000e-01
  br label %13621

13621:                                            ; preds = %13618, %13615
  %13622 = phi double [ %13617, %13615 ], [ %13620, %13618 ]
  %13623 = fcmp olt double %13612, %13622
  br i1 %13623, label %13624, label %13635

13624:                                            ; preds = %13621
  %13625 = load double, ptr %381, align 8, !tbaa !11
  %13626 = fcmp ole double 0.000000e+00, %13625
  br i1 %13626, label %13627, label %13630

13627:                                            ; preds = %13624
  %13628 = load double, ptr %381, align 8, !tbaa !11
  %13629 = fadd double %13628, 5.000000e-01
  br label %13633

13630:                                            ; preds = %13624
  %13631 = load double, ptr %381, align 8, !tbaa !11
  %13632 = fsub double %13631, 5.000000e-01
  br label %13633

13633:                                            ; preds = %13630, %13627
  %13634 = phi double [ %13629, %13627 ], [ %13632, %13630 ]
  br label %13637

13635:                                            ; preds = %13621
  %13636 = load double, ptr %379, align 8, !tbaa !11
  br label %13637

13637:                                            ; preds = %13635, %13633
  %13638 = phi double [ %13634, %13633 ], [ %13636, %13635 ]
  br label %13639

13639:                                            ; preds = %13637, %13609
  %13640 = phi double [ %13610, %13609 ], [ %13638, %13637 ]
  %13641 = fptoui double %13640 to i16
  %13642 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %13641, ptr %13642, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %381) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %380) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %379) #3
  br label %13727

13643:                                            ; preds = %13405, %13402
  %13644 = load i32, ptr %8, align 4, !tbaa !9
  %13645 = icmp ugt i32 6, %13644
  br i1 %13645, label %13674, label %13646

13646:                                            ; preds = %13643
  %13647 = load i32, ptr %8, align 4, !tbaa !9
  %13648 = icmp ugt i32 15, %13647
  br i1 %13648, label %13649, label %13660

13649:                                            ; preds = %13646
  %13650 = load i32, ptr %9, align 4, !tbaa !9
  %13651 = icmp ugt i32 15, %13650
  br i1 %13651, label %13652, label %13657

13652:                                            ; preds = %13649
  %13653 = load i32, ptr %9, align 4, !tbaa !9
  %13654 = load i32, ptr %8, align 4, !tbaa !9
  %13655 = icmp ugt i32 %13653, %13654
  %13656 = zext i1 %13655 to i32
  br label %13658

13657:                                            ; preds = %13649
  br label %13658

13658:                                            ; preds = %13657, %13652
  %13659 = phi i32 [ %13656, %13652 ], [ 0, %13657 ]
  br label %13671

13660:                                            ; preds = %13646
  %13661 = load i32, ptr %9, align 4, !tbaa !9
  %13662 = icmp ugt i32 15, %13661
  br i1 %13662, label %13663, label %13664

13663:                                            ; preds = %13660
  br label %13669

13664:                                            ; preds = %13660
  %13665 = load i32, ptr %9, align 4, !tbaa !9
  %13666 = load i32, ptr %8, align 4, !tbaa !9
  %13667 = icmp ugt i32 %13665, %13666
  %13668 = zext i1 %13667 to i32
  br label %13669

13669:                                            ; preds = %13664, %13663
  %13670 = phi i32 [ 0, %13663 ], [ %13668, %13664 ]
  br label %13671

13671:                                            ; preds = %13669, %13658
  %13672 = phi i32 [ %13659, %13658 ], [ %13670, %13669 ]
  %13673 = icmp ne i32 %13672, 0
  br label %13674

13674:                                            ; preds = %13671, %13643
  %13675 = phi i1 [ true, %13643 ], [ %13673, %13671 ]
  %13676 = zext i1 %13675 to i32
  %13677 = icmp eq i32 0, %13676
  br i1 %13677, label %13678, label %13722

13678:                                            ; preds = %13674
  %13679 = load i8, ptr %372, align 1, !tbaa !17
  %13680 = sext i8 %13679 to i32
  %13681 = sitofp i32 %13680 to double
  %13682 = fcmp olt double -1.000000e+00, %13681
  br i1 %13682, label %13683, label %13706

13683:                                            ; preds = %13678
  %13684 = load i8, ptr %372, align 1, !tbaa !17
  %13685 = sext i8 %13684 to i32
  %13686 = sitofp i32 %13685 to double
  %13687 = fcmp ole double %13686, 1.000000e+00
  br i1 %13687, label %13688, label %13692

13688:                                            ; preds = %13683
  %13689 = load i8, ptr %372, align 1, !tbaa !17
  %13690 = sext i8 %13689 to i32
  %13691 = sitofp i32 %13690 to double
  br label %13704

13692:                                            ; preds = %13683
  %13693 = load i8, ptr %372, align 1, !tbaa !17
  %13694 = sext i8 %13693 to i32
  %13695 = sitofp i32 %13694 to double
  %13696 = fcmp olt double %13695, 1.000000e+00
  br i1 %13696, label %13697, label %13701

13697:                                            ; preds = %13692
  %13698 = load i8, ptr %372, align 1, !tbaa !17
  %13699 = sext i8 %13698 to i32
  %13700 = sitofp i32 %13699 to double
  br label %13702

13701:                                            ; preds = %13692
  br label %13702

13702:                                            ; preds = %13701, %13697
  %13703 = phi double [ %13700, %13697 ], [ 1.000000e+00, %13701 ]
  br label %13704

13704:                                            ; preds = %13702, %13688
  %13705 = phi double [ %13691, %13688 ], [ %13703, %13702 ]
  br label %13718

13706:                                            ; preds = %13678
  %13707 = load i8, ptr %372, align 1, !tbaa !17
  %13708 = sext i8 %13707 to i32
  %13709 = sitofp i32 %13708 to double
  %13710 = fcmp olt double -1.000000e+00, %13709
  br i1 %13710, label %13711, label %13715

13711:                                            ; preds = %13706
  %13712 = load i8, ptr %372, align 1, !tbaa !17
  %13713 = sext i8 %13712 to i32
  %13714 = sitofp i32 %13713 to double
  br label %13716

13715:                                            ; preds = %13706
  br label %13716

13716:                                            ; preds = %13715, %13711
  %13717 = phi double [ %13714, %13711 ], [ -1.000000e+00, %13715 ]
  br label %13718

13718:                                            ; preds = %13716, %13704
  %13719 = phi double [ %13705, %13704 ], [ %13717, %13716 ]
  %13720 = fptoui double %13719 to i16
  %13721 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %13720, ptr %13721, align 2, !tbaa !15
  br label %13726

13722:                                            ; preds = %13674
  %13723 = load i8, ptr %372, align 1, !tbaa !17
  %13724 = sext i8 %13723 to i16
  %13725 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %13724, ptr %13725, align 2, !tbaa !15
  br label %13726

13726:                                            ; preds = %13722, %13718
  br label %13727

13727:                                            ; preds = %13726, %13639
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %374) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %373) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %372) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %371) #3
  br label %13728

13728:                                            ; preds = %13727
  br label %13729

13729:                                            ; preds = %13728
  br label %15938

13730:                                            ; preds = %12315
  br label %13731

13731:                                            ; preds = %13730
  call void @llvm.lifetime.start.p0(i64 8, ptr %382) #3
  store double 5.000000e-01, ptr %382, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %383) #3
  %13732 = load ptr, ptr %10, align 8, !tbaa !5
  %13733 = load i64, ptr %13732, align 8, !tbaa !13
  store i64 %13733, ptr %383, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %384) #3
  store double 0.000000e+00, ptr %384, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %385) #3
  store double 0.000000e+00, ptr %385, align 8, !tbaa !11
  %13734 = load ptr, ptr %11, align 8, !tbaa !5
  %13735 = icmp ne ptr null, %13734
  br i1 %13735, label %13736, label %13758

13736:                                            ; preds = %13731
  %13737 = load ptr, ptr %12, align 8, !tbaa !5
  %13738 = icmp ne ptr null, %13737
  br i1 %13738, label %13739, label %13750

13739:                                            ; preds = %13736
  %13740 = load ptr, ptr %11, align 8, !tbaa !5
  %13741 = load i64, ptr %13740, align 8, !tbaa !13
  %13742 = load i64, ptr %383, align 8, !tbaa !13
  %13743 = icmp ule i64 %13741, %13742
  br i1 %13743, label %13744, label %13750

13744:                                            ; preds = %13739
  %13745 = load i64, ptr %383, align 8, !tbaa !13
  %13746 = load ptr, ptr %12, align 8, !tbaa !5
  %13747 = load i64, ptr %13746, align 8, !tbaa !13
  %13748 = icmp ule i64 %13745, %13747
  br i1 %13748, label %13749, label %13750

13749:                                            ; preds = %13744
  br label %13751

13750:                                            ; preds = %13744, %13739, %13736
  call void @__assert_fail(ptr noundef @.str.46, ptr noundef @.str.24, i32 noundef 476, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

13751:                                            ; preds = %13749
  %13752 = load ptr, ptr %11, align 8, !tbaa !5
  %13753 = load i64, ptr %13752, align 8, !tbaa !13
  %13754 = uitofp i64 %13753 to double
  store double %13754, ptr %384, align 8, !tbaa !11
  %13755 = load ptr, ptr %12, align 8, !tbaa !5
  %13756 = load i64, ptr %13755, align 8, !tbaa !13
  %13757 = uitofp i64 %13756 to double
  store double %13757, ptr %385, align 8, !tbaa !11
  br label %13758

13758:                                            ; preds = %13751, %13731
  %13759 = load i32, ptr %8, align 4, !tbaa !9
  %13760 = icmp ule i32 6, %13759
  br i1 %13760, label %13761, label %13997

13761:                                            ; preds = %13758
  %13762 = load double, ptr %384, align 8, !tbaa !11
  %13763 = load double, ptr %385, align 8, !tbaa !11
  %13764 = fcmp olt double %13762, %13763
  br i1 %13764, label %13765, label %13997

13765:                                            ; preds = %13761
  %13766 = load i32, ptr %8, align 4, !tbaa !9
  %13767 = icmp ule i32 15, %13766
  br i1 %13767, label %13768, label %13820

13768:                                            ; preds = %13765
  call void @llvm.lifetime.start.p0(i64 8, ptr %386) #3
  %13769 = load double, ptr %384, align 8, !tbaa !11
  %13770 = fcmp olt double 0.000000e+00, %13769
  br i1 %13770, label %13771, label %13773

13771:                                            ; preds = %13768
  %13772 = load double, ptr %384, align 8, !tbaa !11
  br label %13774

13773:                                            ; preds = %13768
  br label %13774

13774:                                            ; preds = %13773, %13771
  %13775 = phi double [ %13772, %13771 ], [ 0.000000e+00, %13773 ]
  store double %13775, ptr %386, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %387) #3
  %13776 = load double, ptr %385, align 8, !tbaa !11
  %13777 = fcmp olt double 0.000000e+00, %13776
  br i1 %13777, label %13778, label %13780

13778:                                            ; preds = %13774
  %13779 = load double, ptr %385, align 8, !tbaa !11
  br label %13781

13780:                                            ; preds = %13774
  br label %13781

13781:                                            ; preds = %13780, %13778
  %13782 = phi double [ %13779, %13778 ], [ 0.000000e+00, %13780 ]
  store double %13782, ptr %387, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %388) #3
  %13783 = load double, ptr %386, align 8, !tbaa !11
  %13784 = load double, ptr %387, align 8, !tbaa !11
  %13785 = fcmp olt double %13783, %13784
  br i1 %13785, label %13786, label %13794

13786:                                            ; preds = %13781
  %13787 = load double, ptr %385, align 8, !tbaa !11
  %13788 = load double, ptr %384, align 8, !tbaa !11
  %13789 = fsub double %13787, %13788
  %13790 = load double, ptr %387, align 8, !tbaa !11
  %13791 = load double, ptr %386, align 8, !tbaa !11
  %13792 = fsub double %13790, %13791
  %13793 = fdiv double %13789, %13792
  br label %13795

13794:                                            ; preds = %13781
  br label %13795

13795:                                            ; preds = %13794, %13786
  %13796 = phi double [ %13793, %13786 ], [ 1.000000e+00, %13794 ]
  store double %13796, ptr %388, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %389) #3
  %13797 = load double, ptr %388, align 8, !tbaa !11
  %13798 = load i64, ptr %383, align 8, !tbaa !13
  %13799 = icmp ult i64 0, %13798
  br i1 %13799, label %13800, label %13802

13800:                                            ; preds = %13795
  %13801 = load i64, ptr %383, align 8, !tbaa !13
  br label %13803

13802:                                            ; preds = %13795
  br label %13803

13803:                                            ; preds = %13802, %13800
  %13804 = phi i64 [ %13801, %13800 ], [ 0, %13802 ]
  %13805 = uitofp i64 %13804 to double
  %13806 = fmul double %13797, %13805
  store double %13806, ptr %389, align 8, !tbaa !11
  %13807 = load double, ptr %389, align 8, !tbaa !11
  %13808 = fcmp ole double 0.000000e+00, %13807
  br i1 %13808, label %13809, label %13812

13809:                                            ; preds = %13803
  %13810 = load double, ptr %389, align 8, !tbaa !11
  %13811 = fadd double %13810, 5.000000e-01
  br label %13815

13812:                                            ; preds = %13803
  %13813 = load double, ptr %389, align 8, !tbaa !11
  %13814 = fsub double %13813, 5.000000e-01
  br label %13815

13815:                                            ; preds = %13812, %13809
  %13816 = phi double [ %13811, %13809 ], [ %13814, %13812 ]
  %13817 = fptoui double %13816 to i64
  store i64 %13817, ptr %383, align 8, !tbaa !13
  %13818 = load double, ptr %386, align 8, !tbaa !11
  store double %13818, ptr %384, align 8, !tbaa !11
  %13819 = load double, ptr %387, align 8, !tbaa !11
  store double %13819, ptr %385, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %389) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %388) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %387) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %386) #3
  br label %13876

13820:                                            ; preds = %13765
  %13821 = load i32, ptr %8, align 4, !tbaa !9
  %13822 = icmp ugt i32 6, %13821
  br i1 %13822, label %13851, label %13823

13823:                                            ; preds = %13820
  %13824 = load i32, ptr %8, align 4, !tbaa !9
  %13825 = icmp ugt i32 15, %13824
  br i1 %13825, label %13826, label %13837

13826:                                            ; preds = %13823
  %13827 = load i32, ptr %9, align 4, !tbaa !9
  %13828 = icmp ugt i32 15, %13827
  br i1 %13828, label %13829, label %13834

13829:                                            ; preds = %13826
  %13830 = load i32, ptr %9, align 4, !tbaa !9
  %13831 = load i32, ptr %8, align 4, !tbaa !9
  %13832 = icmp ugt i32 %13830, %13831
  %13833 = zext i1 %13832 to i32
  br label %13835

13834:                                            ; preds = %13826
  br label %13835

13835:                                            ; preds = %13834, %13829
  %13836 = phi i32 [ %13833, %13829 ], [ 0, %13834 ]
  br label %13848

13837:                                            ; preds = %13823
  %13838 = load i32, ptr %9, align 4, !tbaa !9
  %13839 = icmp ugt i32 15, %13838
  br i1 %13839, label %13840, label %13841

13840:                                            ; preds = %13837
  br label %13846

13841:                                            ; preds = %13837
  %13842 = load i32, ptr %9, align 4, !tbaa !9
  %13843 = load i32, ptr %8, align 4, !tbaa !9
  %13844 = icmp ugt i32 %13842, %13843
  %13845 = zext i1 %13844 to i32
  br label %13846

13846:                                            ; preds = %13841, %13840
  %13847 = phi i32 [ 0, %13840 ], [ %13845, %13841 ]
  br label %13848

13848:                                            ; preds = %13846, %13835
  %13849 = phi i32 [ %13836, %13835 ], [ %13847, %13846 ]
  %13850 = icmp ne i32 %13849, 0
  br label %13851

13851:                                            ; preds = %13848, %13820
  %13852 = phi i1 [ true, %13820 ], [ %13850, %13848 ]
  %13853 = zext i1 %13852 to i32
  %13854 = icmp eq i32 0, %13853
  br i1 %13854, label %13855, label %13875

13855:                                            ; preds = %13851
  %13856 = load double, ptr %384, align 8, !tbaa !11
  %13857 = fcmp ogt double 0.000000e+00, %13856
  br i1 %13857, label %13858, label %13875

13858:                                            ; preds = %13855
  %13859 = load double, ptr %385, align 8, !tbaa !11
  %13860 = fcmp olt double 0.000000e+00, %13859
  br i1 %13860, label %13861, label %13875

13861:                                            ; preds = %13858
  %13862 = load double, ptr %384, align 8, !tbaa !11
  %13863 = fneg double %13862
  %13864 = load double, ptr %385, align 8, !tbaa !11
  %13865 = fcmp olt double %13863, %13864
  br i1 %13865, label %13866, label %13868

13866:                                            ; preds = %13861
  %13867 = load double, ptr %385, align 8, !tbaa !11
  br label %13871

13868:                                            ; preds = %13861
  %13869 = load double, ptr %384, align 8, !tbaa !11
  %13870 = fneg double %13869
  br label %13871

13871:                                            ; preds = %13868, %13866
  %13872 = phi double [ %13867, %13866 ], [ %13870, %13868 ]
  store double %13872, ptr %385, align 8, !tbaa !11
  %13873 = load double, ptr %385, align 8, !tbaa !11
  %13874 = fneg double %13873
  store double %13874, ptr %384, align 8, !tbaa !11
  br label %13875

13875:                                            ; preds = %13871, %13858, %13855, %13851
  br label %13876

13876:                                            ; preds = %13875, %13815
  call void @llvm.lifetime.start.p0(i64 8, ptr %390) #3
  %13877 = load double, ptr %384, align 8, !tbaa !11
  %13878 = fcmp ole double 0.000000e+00, %13877
  %13879 = zext i1 %13878 to i64
  %13880 = select i1 %13878, double 0.000000e+00, double -1.000000e+00
  store double %13880, ptr %390, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %391) #3
  %13881 = load double, ptr %385, align 8, !tbaa !11
  %13882 = fcmp ole double 0.000000e+00, %13881
  %13883 = zext i1 %13882 to i64
  %13884 = select i1 %13882, double 1.000000e+00, double 0.000000e+00
  store double %13884, ptr %391, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %392) #3
  %13885 = load i64, ptr %383, align 8, !tbaa !13
  %13886 = uitofp i64 %13885 to double
  %13887 = load double, ptr %384, align 8, !tbaa !11
  %13888 = fsub double %13886, %13887
  %13889 = load double, ptr %391, align 8, !tbaa !11
  %13890 = load double, ptr %390, align 8, !tbaa !11
  %13891 = fsub double %13889, %13890
  %13892 = fmul double %13888, %13891
  %13893 = load double, ptr %385, align 8, !tbaa !11
  %13894 = load double, ptr %384, align 8, !tbaa !11
  %13895 = fsub double %13893, %13894
  %13896 = fdiv double %13892, %13895
  %13897 = load double, ptr %390, align 8, !tbaa !11
  %13898 = fadd double %13896, %13897
  store double %13898, ptr %392, align 8, !tbaa !11
  %13899 = load double, ptr %390, align 8, !tbaa !11
  %13900 = load double, ptr %392, align 8, !tbaa !11
  %13901 = fcmp ole double 0.000000e+00, %13900
  br i1 %13901, label %13902, label %13905

13902:                                            ; preds = %13876
  %13903 = load double, ptr %392, align 8, !tbaa !11
  %13904 = fadd double %13903, 5.000000e-01
  br label %13908

13905:                                            ; preds = %13876
  %13906 = load double, ptr %392, align 8, !tbaa !11
  %13907 = fsub double %13906, 5.000000e-01
  br label %13908

13908:                                            ; preds = %13905, %13902
  %13909 = phi double [ %13904, %13902 ], [ %13907, %13905 ]
  %13910 = fcmp olt double %13899, %13909
  br i1 %13910, label %13911, label %13965

13911:                                            ; preds = %13908
  %13912 = load double, ptr %392, align 8, !tbaa !11
  %13913 = fcmp ole double 0.000000e+00, %13912
  br i1 %13913, label %13914, label %13917

13914:                                            ; preds = %13911
  %13915 = load double, ptr %392, align 8, !tbaa !11
  %13916 = fadd double %13915, 5.000000e-01
  br label %13920

13917:                                            ; preds = %13911
  %13918 = load double, ptr %392, align 8, !tbaa !11
  %13919 = fsub double %13918, 5.000000e-01
  br label %13920

13920:                                            ; preds = %13917, %13914
  %13921 = phi double [ %13916, %13914 ], [ %13919, %13917 ]
  %13922 = load double, ptr %391, align 8, !tbaa !11
  %13923 = fcmp ole double %13921, %13922
  br i1 %13923, label %13924, label %13935

13924:                                            ; preds = %13920
  %13925 = load double, ptr %392, align 8, !tbaa !11
  %13926 = fcmp ole double 0.000000e+00, %13925
  br i1 %13926, label %13927, label %13930

13927:                                            ; preds = %13924
  %13928 = load double, ptr %392, align 8, !tbaa !11
  %13929 = fadd double %13928, 5.000000e-01
  br label %13933

13930:                                            ; preds = %13924
  %13931 = load double, ptr %392, align 8, !tbaa !11
  %13932 = fsub double %13931, 5.000000e-01
  br label %13933

13933:                                            ; preds = %13930, %13927
  %13934 = phi double [ %13929, %13927 ], [ %13932, %13930 ]
  br label %13963

13935:                                            ; preds = %13920
  %13936 = load double, ptr %392, align 8, !tbaa !11
  %13937 = fcmp ole double 0.000000e+00, %13936
  br i1 %13937, label %13938, label %13941

13938:                                            ; preds = %13935
  %13939 = load double, ptr %392, align 8, !tbaa !11
  %13940 = fadd double %13939, 5.000000e-01
  br label %13944

13941:                                            ; preds = %13935
  %13942 = load double, ptr %392, align 8, !tbaa !11
  %13943 = fsub double %13942, 5.000000e-01
  br label %13944

13944:                                            ; preds = %13941, %13938
  %13945 = phi double [ %13940, %13938 ], [ %13943, %13941 ]
  %13946 = load double, ptr %391, align 8, !tbaa !11
  %13947 = fcmp olt double %13945, %13946
  br i1 %13947, label %13948, label %13959

13948:                                            ; preds = %13944
  %13949 = load double, ptr %392, align 8, !tbaa !11
  %13950 = fcmp ole double 0.000000e+00, %13949
  br i1 %13950, label %13951, label %13954

13951:                                            ; preds = %13948
  %13952 = load double, ptr %392, align 8, !tbaa !11
  %13953 = fadd double %13952, 5.000000e-01
  br label %13957

13954:                                            ; preds = %13948
  %13955 = load double, ptr %392, align 8, !tbaa !11
  %13956 = fsub double %13955, 5.000000e-01
  br label %13957

13957:                                            ; preds = %13954, %13951
  %13958 = phi double [ %13953, %13951 ], [ %13956, %13954 ]
  br label %13961

13959:                                            ; preds = %13944
  %13960 = load double, ptr %391, align 8, !tbaa !11
  br label %13961

13961:                                            ; preds = %13959, %13957
  %13962 = phi double [ %13958, %13957 ], [ %13960, %13959 ]
  br label %13963

13963:                                            ; preds = %13961, %13933
  %13964 = phi double [ %13934, %13933 ], [ %13962, %13961 ]
  br label %13993

13965:                                            ; preds = %13908
  %13966 = load double, ptr %390, align 8, !tbaa !11
  %13967 = load double, ptr %392, align 8, !tbaa !11
  %13968 = fcmp ole double 0.000000e+00, %13967
  br i1 %13968, label %13969, label %13972

13969:                                            ; preds = %13965
  %13970 = load double, ptr %392, align 8, !tbaa !11
  %13971 = fadd double %13970, 5.000000e-01
  br label %13975

13972:                                            ; preds = %13965
  %13973 = load double, ptr %392, align 8, !tbaa !11
  %13974 = fsub double %13973, 5.000000e-01
  br label %13975

13975:                                            ; preds = %13972, %13969
  %13976 = phi double [ %13971, %13969 ], [ %13974, %13972 ]
  %13977 = fcmp olt double %13966, %13976
  br i1 %13977, label %13978, label %13989

13978:                                            ; preds = %13975
  %13979 = load double, ptr %392, align 8, !tbaa !11
  %13980 = fcmp ole double 0.000000e+00, %13979
  br i1 %13980, label %13981, label %13984

13981:                                            ; preds = %13978
  %13982 = load double, ptr %392, align 8, !tbaa !11
  %13983 = fadd double %13982, 5.000000e-01
  br label %13987

13984:                                            ; preds = %13978
  %13985 = load double, ptr %392, align 8, !tbaa !11
  %13986 = fsub double %13985, 5.000000e-01
  br label %13987

13987:                                            ; preds = %13984, %13981
  %13988 = phi double [ %13983, %13981 ], [ %13986, %13984 ]
  br label %13991

13989:                                            ; preds = %13975
  %13990 = load double, ptr %390, align 8, !tbaa !11
  br label %13991

13991:                                            ; preds = %13989, %13987
  %13992 = phi double [ %13988, %13987 ], [ %13990, %13989 ]
  br label %13993

13993:                                            ; preds = %13991, %13963
  %13994 = phi double [ %13964, %13963 ], [ %13992, %13991 ]
  %13995 = fptoui double %13994 to i16
  %13996 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %13995, ptr %13996, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %392) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %391) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %390) #3
  br label %14074

13997:                                            ; preds = %13761, %13758
  %13998 = load i32, ptr %8, align 4, !tbaa !9
  %13999 = icmp ugt i32 6, %13998
  br i1 %13999, label %14028, label %14000

14000:                                            ; preds = %13997
  %14001 = load i32, ptr %8, align 4, !tbaa !9
  %14002 = icmp ugt i32 15, %14001
  br i1 %14002, label %14003, label %14014

14003:                                            ; preds = %14000
  %14004 = load i32, ptr %9, align 4, !tbaa !9
  %14005 = icmp ugt i32 15, %14004
  br i1 %14005, label %14006, label %14011

14006:                                            ; preds = %14003
  %14007 = load i32, ptr %9, align 4, !tbaa !9
  %14008 = load i32, ptr %8, align 4, !tbaa !9
  %14009 = icmp ugt i32 %14007, %14008
  %14010 = zext i1 %14009 to i32
  br label %14012

14011:                                            ; preds = %14003
  br label %14012

14012:                                            ; preds = %14011, %14006
  %14013 = phi i32 [ %14010, %14006 ], [ 0, %14011 ]
  br label %14025

14014:                                            ; preds = %14000
  %14015 = load i32, ptr %9, align 4, !tbaa !9
  %14016 = icmp ugt i32 15, %14015
  br i1 %14016, label %14017, label %14018

14017:                                            ; preds = %14014
  br label %14023

14018:                                            ; preds = %14014
  %14019 = load i32, ptr %9, align 4, !tbaa !9
  %14020 = load i32, ptr %8, align 4, !tbaa !9
  %14021 = icmp ugt i32 %14019, %14020
  %14022 = zext i1 %14021 to i32
  br label %14023

14023:                                            ; preds = %14018, %14017
  %14024 = phi i32 [ 0, %14017 ], [ %14022, %14018 ]
  br label %14025

14025:                                            ; preds = %14023, %14012
  %14026 = phi i32 [ %14013, %14012 ], [ %14024, %14023 ]
  %14027 = icmp ne i32 %14026, 0
  br label %14028

14028:                                            ; preds = %14025, %13997
  %14029 = phi i1 [ true, %13997 ], [ %14027, %14025 ]
  %14030 = zext i1 %14029 to i32
  %14031 = icmp eq i32 0, %14030
  br i1 %14031, label %14032, label %14069

14032:                                            ; preds = %14028
  %14033 = load i64, ptr %383, align 8, !tbaa !13
  %14034 = uitofp i64 %14033 to double
  %14035 = fcmp olt double -1.000000e+00, %14034
  br i1 %14035, label %14036, label %14055

14036:                                            ; preds = %14032
  %14037 = load i64, ptr %383, align 8, !tbaa !13
  %14038 = uitofp i64 %14037 to double
  %14039 = fcmp ole double %14038, 1.000000e+00
  br i1 %14039, label %14040, label %14043

14040:                                            ; preds = %14036
  %14041 = load i64, ptr %383, align 8, !tbaa !13
  %14042 = uitofp i64 %14041 to double
  br label %14053

14043:                                            ; preds = %14036
  %14044 = load i64, ptr %383, align 8, !tbaa !13
  %14045 = uitofp i64 %14044 to double
  %14046 = fcmp olt double %14045, 1.000000e+00
  br i1 %14046, label %14047, label %14050

14047:                                            ; preds = %14043
  %14048 = load i64, ptr %383, align 8, !tbaa !13
  %14049 = uitofp i64 %14048 to double
  br label %14051

14050:                                            ; preds = %14043
  br label %14051

14051:                                            ; preds = %14050, %14047
  %14052 = phi double [ %14049, %14047 ], [ 1.000000e+00, %14050 ]
  br label %14053

14053:                                            ; preds = %14051, %14040
  %14054 = phi double [ %14042, %14040 ], [ %14052, %14051 ]
  br label %14065

14055:                                            ; preds = %14032
  %14056 = load i64, ptr %383, align 8, !tbaa !13
  %14057 = uitofp i64 %14056 to double
  %14058 = fcmp olt double -1.000000e+00, %14057
  br i1 %14058, label %14059, label %14062

14059:                                            ; preds = %14055
  %14060 = load i64, ptr %383, align 8, !tbaa !13
  %14061 = uitofp i64 %14060 to double
  br label %14063

14062:                                            ; preds = %14055
  br label %14063

14063:                                            ; preds = %14062, %14059
  %14064 = phi double [ %14061, %14059 ], [ -1.000000e+00, %14062 ]
  br label %14065

14065:                                            ; preds = %14063, %14053
  %14066 = phi double [ %14054, %14053 ], [ %14064, %14063 ]
  %14067 = fptoui double %14066 to i16
  %14068 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %14067, ptr %14068, align 2, !tbaa !15
  br label %14073

14069:                                            ; preds = %14028
  %14070 = load i64, ptr %383, align 8, !tbaa !13
  %14071 = trunc i64 %14070 to i16
  %14072 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %14071, ptr %14072, align 2, !tbaa !15
  br label %14073

14073:                                            ; preds = %14069, %14065
  br label %14074

14074:                                            ; preds = %14073, %13993
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %385) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %384) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %383) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %382) #3
  br label %14075

14075:                                            ; preds = %14074
  br label %14076

14076:                                            ; preds = %14075
  br label %15938

14077:                                            ; preds = %12315
  br label %14078

14078:                                            ; preds = %14077
  call void @llvm.lifetime.start.p0(i64 8, ptr %393) #3
  store double 5.000000e-01, ptr %393, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %394) #3
  %14079 = load ptr, ptr %10, align 8, !tbaa !5
  %14080 = load i32, ptr %14079, align 4, !tbaa !9
  store i32 %14080, ptr %394, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %395) #3
  store double 0.000000e+00, ptr %395, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %396) #3
  store double 0.000000e+00, ptr %396, align 8, !tbaa !11
  %14081 = load ptr, ptr %11, align 8, !tbaa !5
  %14082 = icmp ne ptr null, %14081
  br i1 %14082, label %14083, label %14105

14083:                                            ; preds = %14078
  %14084 = load ptr, ptr %12, align 8, !tbaa !5
  %14085 = icmp ne ptr null, %14084
  br i1 %14085, label %14086, label %14097

14086:                                            ; preds = %14083
  %14087 = load ptr, ptr %11, align 8, !tbaa !5
  %14088 = load i32, ptr %14087, align 4, !tbaa !9
  %14089 = load i32, ptr %394, align 4, !tbaa !9
  %14090 = icmp ule i32 %14088, %14089
  br i1 %14090, label %14091, label %14097

14091:                                            ; preds = %14086
  %14092 = load i32, ptr %394, align 4, !tbaa !9
  %14093 = load ptr, ptr %12, align 8, !tbaa !5
  %14094 = load i32, ptr %14093, align 4, !tbaa !9
  %14095 = icmp ule i32 %14092, %14094
  br i1 %14095, label %14096, label %14097

14096:                                            ; preds = %14091
  br label %14098

14097:                                            ; preds = %14091, %14086, %14083
  call void @__assert_fail(ptr noundef @.str.47, ptr noundef @.str.24, i32 noundef 476, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

14098:                                            ; preds = %14096
  %14099 = load ptr, ptr %11, align 8, !tbaa !5
  %14100 = load i32, ptr %14099, align 4, !tbaa !9
  %14101 = uitofp i32 %14100 to double
  store double %14101, ptr %395, align 8, !tbaa !11
  %14102 = load ptr, ptr %12, align 8, !tbaa !5
  %14103 = load i32, ptr %14102, align 4, !tbaa !9
  %14104 = uitofp i32 %14103 to double
  store double %14104, ptr %396, align 8, !tbaa !11
  br label %14105

14105:                                            ; preds = %14098, %14078
  %14106 = load i32, ptr %8, align 4, !tbaa !9
  %14107 = icmp ule i32 6, %14106
  br i1 %14107, label %14108, label %14344

14108:                                            ; preds = %14105
  %14109 = load double, ptr %395, align 8, !tbaa !11
  %14110 = load double, ptr %396, align 8, !tbaa !11
  %14111 = fcmp olt double %14109, %14110
  br i1 %14111, label %14112, label %14344

14112:                                            ; preds = %14108
  %14113 = load i32, ptr %8, align 4, !tbaa !9
  %14114 = icmp ule i32 15, %14113
  br i1 %14114, label %14115, label %14167

14115:                                            ; preds = %14112
  call void @llvm.lifetime.start.p0(i64 8, ptr %397) #3
  %14116 = load double, ptr %395, align 8, !tbaa !11
  %14117 = fcmp olt double 0.000000e+00, %14116
  br i1 %14117, label %14118, label %14120

14118:                                            ; preds = %14115
  %14119 = load double, ptr %395, align 8, !tbaa !11
  br label %14121

14120:                                            ; preds = %14115
  br label %14121

14121:                                            ; preds = %14120, %14118
  %14122 = phi double [ %14119, %14118 ], [ 0.000000e+00, %14120 ]
  store double %14122, ptr %397, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %398) #3
  %14123 = load double, ptr %396, align 8, !tbaa !11
  %14124 = fcmp olt double 0.000000e+00, %14123
  br i1 %14124, label %14125, label %14127

14125:                                            ; preds = %14121
  %14126 = load double, ptr %396, align 8, !tbaa !11
  br label %14128

14127:                                            ; preds = %14121
  br label %14128

14128:                                            ; preds = %14127, %14125
  %14129 = phi double [ %14126, %14125 ], [ 0.000000e+00, %14127 ]
  store double %14129, ptr %398, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %399) #3
  %14130 = load double, ptr %397, align 8, !tbaa !11
  %14131 = load double, ptr %398, align 8, !tbaa !11
  %14132 = fcmp olt double %14130, %14131
  br i1 %14132, label %14133, label %14141

14133:                                            ; preds = %14128
  %14134 = load double, ptr %396, align 8, !tbaa !11
  %14135 = load double, ptr %395, align 8, !tbaa !11
  %14136 = fsub double %14134, %14135
  %14137 = load double, ptr %398, align 8, !tbaa !11
  %14138 = load double, ptr %397, align 8, !tbaa !11
  %14139 = fsub double %14137, %14138
  %14140 = fdiv double %14136, %14139
  br label %14142

14141:                                            ; preds = %14128
  br label %14142

14142:                                            ; preds = %14141, %14133
  %14143 = phi double [ %14140, %14133 ], [ 1.000000e+00, %14141 ]
  store double %14143, ptr %399, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %400) #3
  %14144 = load double, ptr %399, align 8, !tbaa !11
  %14145 = load i32, ptr %394, align 4, !tbaa !9
  %14146 = icmp ult i32 0, %14145
  br i1 %14146, label %14147, label %14149

14147:                                            ; preds = %14142
  %14148 = load i32, ptr %394, align 4, !tbaa !9
  br label %14150

14149:                                            ; preds = %14142
  br label %14150

14150:                                            ; preds = %14149, %14147
  %14151 = phi i32 [ %14148, %14147 ], [ 0, %14149 ]
  %14152 = uitofp i32 %14151 to double
  %14153 = fmul double %14144, %14152
  store double %14153, ptr %400, align 8, !tbaa !11
  %14154 = load double, ptr %400, align 8, !tbaa !11
  %14155 = fcmp ole double 0.000000e+00, %14154
  br i1 %14155, label %14156, label %14159

14156:                                            ; preds = %14150
  %14157 = load double, ptr %400, align 8, !tbaa !11
  %14158 = fadd double %14157, 5.000000e-01
  br label %14162

14159:                                            ; preds = %14150
  %14160 = load double, ptr %400, align 8, !tbaa !11
  %14161 = fsub double %14160, 5.000000e-01
  br label %14162

14162:                                            ; preds = %14159, %14156
  %14163 = phi double [ %14158, %14156 ], [ %14161, %14159 ]
  %14164 = fptoui double %14163 to i32
  store i32 %14164, ptr %394, align 4, !tbaa !9
  %14165 = load double, ptr %397, align 8, !tbaa !11
  store double %14165, ptr %395, align 8, !tbaa !11
  %14166 = load double, ptr %398, align 8, !tbaa !11
  store double %14166, ptr %396, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %400) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %399) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %398) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %397) #3
  br label %14223

14167:                                            ; preds = %14112
  %14168 = load i32, ptr %8, align 4, !tbaa !9
  %14169 = icmp ugt i32 6, %14168
  br i1 %14169, label %14198, label %14170

14170:                                            ; preds = %14167
  %14171 = load i32, ptr %8, align 4, !tbaa !9
  %14172 = icmp ugt i32 15, %14171
  br i1 %14172, label %14173, label %14184

14173:                                            ; preds = %14170
  %14174 = load i32, ptr %9, align 4, !tbaa !9
  %14175 = icmp ugt i32 15, %14174
  br i1 %14175, label %14176, label %14181

14176:                                            ; preds = %14173
  %14177 = load i32, ptr %9, align 4, !tbaa !9
  %14178 = load i32, ptr %8, align 4, !tbaa !9
  %14179 = icmp ugt i32 %14177, %14178
  %14180 = zext i1 %14179 to i32
  br label %14182

14181:                                            ; preds = %14173
  br label %14182

14182:                                            ; preds = %14181, %14176
  %14183 = phi i32 [ %14180, %14176 ], [ 0, %14181 ]
  br label %14195

14184:                                            ; preds = %14170
  %14185 = load i32, ptr %9, align 4, !tbaa !9
  %14186 = icmp ugt i32 15, %14185
  br i1 %14186, label %14187, label %14188

14187:                                            ; preds = %14184
  br label %14193

14188:                                            ; preds = %14184
  %14189 = load i32, ptr %9, align 4, !tbaa !9
  %14190 = load i32, ptr %8, align 4, !tbaa !9
  %14191 = icmp ugt i32 %14189, %14190
  %14192 = zext i1 %14191 to i32
  br label %14193

14193:                                            ; preds = %14188, %14187
  %14194 = phi i32 [ 0, %14187 ], [ %14192, %14188 ]
  br label %14195

14195:                                            ; preds = %14193, %14182
  %14196 = phi i32 [ %14183, %14182 ], [ %14194, %14193 ]
  %14197 = icmp ne i32 %14196, 0
  br label %14198

14198:                                            ; preds = %14195, %14167
  %14199 = phi i1 [ true, %14167 ], [ %14197, %14195 ]
  %14200 = zext i1 %14199 to i32
  %14201 = icmp eq i32 0, %14200
  br i1 %14201, label %14202, label %14222

14202:                                            ; preds = %14198
  %14203 = load double, ptr %395, align 8, !tbaa !11
  %14204 = fcmp ogt double 0.000000e+00, %14203
  br i1 %14204, label %14205, label %14222

14205:                                            ; preds = %14202
  %14206 = load double, ptr %396, align 8, !tbaa !11
  %14207 = fcmp olt double 0.000000e+00, %14206
  br i1 %14207, label %14208, label %14222

14208:                                            ; preds = %14205
  %14209 = load double, ptr %395, align 8, !tbaa !11
  %14210 = fneg double %14209
  %14211 = load double, ptr %396, align 8, !tbaa !11
  %14212 = fcmp olt double %14210, %14211
  br i1 %14212, label %14213, label %14215

14213:                                            ; preds = %14208
  %14214 = load double, ptr %396, align 8, !tbaa !11
  br label %14218

14215:                                            ; preds = %14208
  %14216 = load double, ptr %395, align 8, !tbaa !11
  %14217 = fneg double %14216
  br label %14218

14218:                                            ; preds = %14215, %14213
  %14219 = phi double [ %14214, %14213 ], [ %14217, %14215 ]
  store double %14219, ptr %396, align 8, !tbaa !11
  %14220 = load double, ptr %396, align 8, !tbaa !11
  %14221 = fneg double %14220
  store double %14221, ptr %395, align 8, !tbaa !11
  br label %14222

14222:                                            ; preds = %14218, %14205, %14202, %14198
  br label %14223

14223:                                            ; preds = %14222, %14162
  call void @llvm.lifetime.start.p0(i64 8, ptr %401) #3
  %14224 = load double, ptr %395, align 8, !tbaa !11
  %14225 = fcmp ole double 0.000000e+00, %14224
  %14226 = zext i1 %14225 to i64
  %14227 = select i1 %14225, double 0.000000e+00, double -1.000000e+00
  store double %14227, ptr %401, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %402) #3
  %14228 = load double, ptr %396, align 8, !tbaa !11
  %14229 = fcmp ole double 0.000000e+00, %14228
  %14230 = zext i1 %14229 to i64
  %14231 = select i1 %14229, double 1.000000e+00, double 0.000000e+00
  store double %14231, ptr %402, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %403) #3
  %14232 = load i32, ptr %394, align 4, !tbaa !9
  %14233 = uitofp i32 %14232 to double
  %14234 = load double, ptr %395, align 8, !tbaa !11
  %14235 = fsub double %14233, %14234
  %14236 = load double, ptr %402, align 8, !tbaa !11
  %14237 = load double, ptr %401, align 8, !tbaa !11
  %14238 = fsub double %14236, %14237
  %14239 = fmul double %14235, %14238
  %14240 = load double, ptr %396, align 8, !tbaa !11
  %14241 = load double, ptr %395, align 8, !tbaa !11
  %14242 = fsub double %14240, %14241
  %14243 = fdiv double %14239, %14242
  %14244 = load double, ptr %401, align 8, !tbaa !11
  %14245 = fadd double %14243, %14244
  store double %14245, ptr %403, align 8, !tbaa !11
  %14246 = load double, ptr %401, align 8, !tbaa !11
  %14247 = load double, ptr %403, align 8, !tbaa !11
  %14248 = fcmp ole double 0.000000e+00, %14247
  br i1 %14248, label %14249, label %14252

14249:                                            ; preds = %14223
  %14250 = load double, ptr %403, align 8, !tbaa !11
  %14251 = fadd double %14250, 5.000000e-01
  br label %14255

14252:                                            ; preds = %14223
  %14253 = load double, ptr %403, align 8, !tbaa !11
  %14254 = fsub double %14253, 5.000000e-01
  br label %14255

14255:                                            ; preds = %14252, %14249
  %14256 = phi double [ %14251, %14249 ], [ %14254, %14252 ]
  %14257 = fcmp olt double %14246, %14256
  br i1 %14257, label %14258, label %14312

14258:                                            ; preds = %14255
  %14259 = load double, ptr %403, align 8, !tbaa !11
  %14260 = fcmp ole double 0.000000e+00, %14259
  br i1 %14260, label %14261, label %14264

14261:                                            ; preds = %14258
  %14262 = load double, ptr %403, align 8, !tbaa !11
  %14263 = fadd double %14262, 5.000000e-01
  br label %14267

14264:                                            ; preds = %14258
  %14265 = load double, ptr %403, align 8, !tbaa !11
  %14266 = fsub double %14265, 5.000000e-01
  br label %14267

14267:                                            ; preds = %14264, %14261
  %14268 = phi double [ %14263, %14261 ], [ %14266, %14264 ]
  %14269 = load double, ptr %402, align 8, !tbaa !11
  %14270 = fcmp ole double %14268, %14269
  br i1 %14270, label %14271, label %14282

14271:                                            ; preds = %14267
  %14272 = load double, ptr %403, align 8, !tbaa !11
  %14273 = fcmp ole double 0.000000e+00, %14272
  br i1 %14273, label %14274, label %14277

14274:                                            ; preds = %14271
  %14275 = load double, ptr %403, align 8, !tbaa !11
  %14276 = fadd double %14275, 5.000000e-01
  br label %14280

14277:                                            ; preds = %14271
  %14278 = load double, ptr %403, align 8, !tbaa !11
  %14279 = fsub double %14278, 5.000000e-01
  br label %14280

14280:                                            ; preds = %14277, %14274
  %14281 = phi double [ %14276, %14274 ], [ %14279, %14277 ]
  br label %14310

14282:                                            ; preds = %14267
  %14283 = load double, ptr %403, align 8, !tbaa !11
  %14284 = fcmp ole double 0.000000e+00, %14283
  br i1 %14284, label %14285, label %14288

14285:                                            ; preds = %14282
  %14286 = load double, ptr %403, align 8, !tbaa !11
  %14287 = fadd double %14286, 5.000000e-01
  br label %14291

14288:                                            ; preds = %14282
  %14289 = load double, ptr %403, align 8, !tbaa !11
  %14290 = fsub double %14289, 5.000000e-01
  br label %14291

14291:                                            ; preds = %14288, %14285
  %14292 = phi double [ %14287, %14285 ], [ %14290, %14288 ]
  %14293 = load double, ptr %402, align 8, !tbaa !11
  %14294 = fcmp olt double %14292, %14293
  br i1 %14294, label %14295, label %14306

14295:                                            ; preds = %14291
  %14296 = load double, ptr %403, align 8, !tbaa !11
  %14297 = fcmp ole double 0.000000e+00, %14296
  br i1 %14297, label %14298, label %14301

14298:                                            ; preds = %14295
  %14299 = load double, ptr %403, align 8, !tbaa !11
  %14300 = fadd double %14299, 5.000000e-01
  br label %14304

14301:                                            ; preds = %14295
  %14302 = load double, ptr %403, align 8, !tbaa !11
  %14303 = fsub double %14302, 5.000000e-01
  br label %14304

14304:                                            ; preds = %14301, %14298
  %14305 = phi double [ %14300, %14298 ], [ %14303, %14301 ]
  br label %14308

14306:                                            ; preds = %14291
  %14307 = load double, ptr %402, align 8, !tbaa !11
  br label %14308

14308:                                            ; preds = %14306, %14304
  %14309 = phi double [ %14305, %14304 ], [ %14307, %14306 ]
  br label %14310

14310:                                            ; preds = %14308, %14280
  %14311 = phi double [ %14281, %14280 ], [ %14309, %14308 ]
  br label %14340

14312:                                            ; preds = %14255
  %14313 = load double, ptr %401, align 8, !tbaa !11
  %14314 = load double, ptr %403, align 8, !tbaa !11
  %14315 = fcmp ole double 0.000000e+00, %14314
  br i1 %14315, label %14316, label %14319

14316:                                            ; preds = %14312
  %14317 = load double, ptr %403, align 8, !tbaa !11
  %14318 = fadd double %14317, 5.000000e-01
  br label %14322

14319:                                            ; preds = %14312
  %14320 = load double, ptr %403, align 8, !tbaa !11
  %14321 = fsub double %14320, 5.000000e-01
  br label %14322

14322:                                            ; preds = %14319, %14316
  %14323 = phi double [ %14318, %14316 ], [ %14321, %14319 ]
  %14324 = fcmp olt double %14313, %14323
  br i1 %14324, label %14325, label %14336

14325:                                            ; preds = %14322
  %14326 = load double, ptr %403, align 8, !tbaa !11
  %14327 = fcmp ole double 0.000000e+00, %14326
  br i1 %14327, label %14328, label %14331

14328:                                            ; preds = %14325
  %14329 = load double, ptr %403, align 8, !tbaa !11
  %14330 = fadd double %14329, 5.000000e-01
  br label %14334

14331:                                            ; preds = %14325
  %14332 = load double, ptr %403, align 8, !tbaa !11
  %14333 = fsub double %14332, 5.000000e-01
  br label %14334

14334:                                            ; preds = %14331, %14328
  %14335 = phi double [ %14330, %14328 ], [ %14333, %14331 ]
  br label %14338

14336:                                            ; preds = %14322
  %14337 = load double, ptr %401, align 8, !tbaa !11
  br label %14338

14338:                                            ; preds = %14336, %14334
  %14339 = phi double [ %14335, %14334 ], [ %14337, %14336 ]
  br label %14340

14340:                                            ; preds = %14338, %14310
  %14341 = phi double [ %14311, %14310 ], [ %14339, %14338 ]
  %14342 = fptoui double %14341 to i16
  %14343 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %14342, ptr %14343, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %403) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %402) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %401) #3
  br label %14421

14344:                                            ; preds = %14108, %14105
  %14345 = load i32, ptr %8, align 4, !tbaa !9
  %14346 = icmp ugt i32 6, %14345
  br i1 %14346, label %14375, label %14347

14347:                                            ; preds = %14344
  %14348 = load i32, ptr %8, align 4, !tbaa !9
  %14349 = icmp ugt i32 15, %14348
  br i1 %14349, label %14350, label %14361

14350:                                            ; preds = %14347
  %14351 = load i32, ptr %9, align 4, !tbaa !9
  %14352 = icmp ugt i32 15, %14351
  br i1 %14352, label %14353, label %14358

14353:                                            ; preds = %14350
  %14354 = load i32, ptr %9, align 4, !tbaa !9
  %14355 = load i32, ptr %8, align 4, !tbaa !9
  %14356 = icmp ugt i32 %14354, %14355
  %14357 = zext i1 %14356 to i32
  br label %14359

14358:                                            ; preds = %14350
  br label %14359

14359:                                            ; preds = %14358, %14353
  %14360 = phi i32 [ %14357, %14353 ], [ 0, %14358 ]
  br label %14372

14361:                                            ; preds = %14347
  %14362 = load i32, ptr %9, align 4, !tbaa !9
  %14363 = icmp ugt i32 15, %14362
  br i1 %14363, label %14364, label %14365

14364:                                            ; preds = %14361
  br label %14370

14365:                                            ; preds = %14361
  %14366 = load i32, ptr %9, align 4, !tbaa !9
  %14367 = load i32, ptr %8, align 4, !tbaa !9
  %14368 = icmp ugt i32 %14366, %14367
  %14369 = zext i1 %14368 to i32
  br label %14370

14370:                                            ; preds = %14365, %14364
  %14371 = phi i32 [ 0, %14364 ], [ %14369, %14365 ]
  br label %14372

14372:                                            ; preds = %14370, %14359
  %14373 = phi i32 [ %14360, %14359 ], [ %14371, %14370 ]
  %14374 = icmp ne i32 %14373, 0
  br label %14375

14375:                                            ; preds = %14372, %14344
  %14376 = phi i1 [ true, %14344 ], [ %14374, %14372 ]
  %14377 = zext i1 %14376 to i32
  %14378 = icmp eq i32 0, %14377
  br i1 %14378, label %14379, label %14416

14379:                                            ; preds = %14375
  %14380 = load i32, ptr %394, align 4, !tbaa !9
  %14381 = uitofp i32 %14380 to double
  %14382 = fcmp olt double -1.000000e+00, %14381
  br i1 %14382, label %14383, label %14402

14383:                                            ; preds = %14379
  %14384 = load i32, ptr %394, align 4, !tbaa !9
  %14385 = uitofp i32 %14384 to double
  %14386 = fcmp ole double %14385, 1.000000e+00
  br i1 %14386, label %14387, label %14390

14387:                                            ; preds = %14383
  %14388 = load i32, ptr %394, align 4, !tbaa !9
  %14389 = uitofp i32 %14388 to double
  br label %14400

14390:                                            ; preds = %14383
  %14391 = load i32, ptr %394, align 4, !tbaa !9
  %14392 = uitofp i32 %14391 to double
  %14393 = fcmp olt double %14392, 1.000000e+00
  br i1 %14393, label %14394, label %14397

14394:                                            ; preds = %14390
  %14395 = load i32, ptr %394, align 4, !tbaa !9
  %14396 = uitofp i32 %14395 to double
  br label %14398

14397:                                            ; preds = %14390
  br label %14398

14398:                                            ; preds = %14397, %14394
  %14399 = phi double [ %14396, %14394 ], [ 1.000000e+00, %14397 ]
  br label %14400

14400:                                            ; preds = %14398, %14387
  %14401 = phi double [ %14389, %14387 ], [ %14399, %14398 ]
  br label %14412

14402:                                            ; preds = %14379
  %14403 = load i32, ptr %394, align 4, !tbaa !9
  %14404 = uitofp i32 %14403 to double
  %14405 = fcmp olt double -1.000000e+00, %14404
  br i1 %14405, label %14406, label %14409

14406:                                            ; preds = %14402
  %14407 = load i32, ptr %394, align 4, !tbaa !9
  %14408 = uitofp i32 %14407 to double
  br label %14410

14409:                                            ; preds = %14402
  br label %14410

14410:                                            ; preds = %14409, %14406
  %14411 = phi double [ %14408, %14406 ], [ -1.000000e+00, %14409 ]
  br label %14412

14412:                                            ; preds = %14410, %14400
  %14413 = phi double [ %14401, %14400 ], [ %14411, %14410 ]
  %14414 = fptoui double %14413 to i16
  %14415 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %14414, ptr %14415, align 2, !tbaa !15
  br label %14420

14416:                                            ; preds = %14375
  %14417 = load i32, ptr %394, align 4, !tbaa !9
  %14418 = trunc i32 %14417 to i16
  %14419 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %14418, ptr %14419, align 2, !tbaa !15
  br label %14420

14420:                                            ; preds = %14416, %14412
  br label %14421

14421:                                            ; preds = %14420, %14340
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %396) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %395) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %394) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %393) #3
  br label %14422

14422:                                            ; preds = %14421
  br label %14423

14423:                                            ; preds = %14422
  br label %15938

14424:                                            ; preds = %12315
  br label %14425

14425:                                            ; preds = %14424
  call void @llvm.lifetime.start.p0(i64 8, ptr %404) #3
  store double 5.000000e-01, ptr %404, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %405) #3
  %14426 = load ptr, ptr %10, align 8, !tbaa !5
  %14427 = load i16, ptr %14426, align 2, !tbaa !15
  store i16 %14427, ptr %405, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %406) #3
  store double 0.000000e+00, ptr %406, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %407) #3
  store double 0.000000e+00, ptr %407, align 8, !tbaa !11
  %14428 = load ptr, ptr %11, align 8, !tbaa !5
  %14429 = icmp ne ptr null, %14428
  br i1 %14429, label %14430, label %14456

14430:                                            ; preds = %14425
  %14431 = load ptr, ptr %12, align 8, !tbaa !5
  %14432 = icmp ne ptr null, %14431
  br i1 %14432, label %14433, label %14448

14433:                                            ; preds = %14430
  %14434 = load ptr, ptr %11, align 8, !tbaa !5
  %14435 = load i16, ptr %14434, align 2, !tbaa !15
  %14436 = zext i16 %14435 to i32
  %14437 = load i16, ptr %405, align 2, !tbaa !15
  %14438 = zext i16 %14437 to i32
  %14439 = icmp sle i32 %14436, %14438
  br i1 %14439, label %14440, label %14448

14440:                                            ; preds = %14433
  %14441 = load i16, ptr %405, align 2, !tbaa !15
  %14442 = zext i16 %14441 to i32
  %14443 = load ptr, ptr %12, align 8, !tbaa !5
  %14444 = load i16, ptr %14443, align 2, !tbaa !15
  %14445 = zext i16 %14444 to i32
  %14446 = icmp sle i32 %14442, %14445
  br i1 %14446, label %14447, label %14448

14447:                                            ; preds = %14440
  br label %14449

14448:                                            ; preds = %14440, %14433, %14430
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.24, i32 noundef 476, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

14449:                                            ; preds = %14447
  %14450 = load ptr, ptr %11, align 8, !tbaa !5
  %14451 = load i16, ptr %14450, align 2, !tbaa !15
  %14452 = uitofp i16 %14451 to double
  store double %14452, ptr %406, align 8, !tbaa !11
  %14453 = load ptr, ptr %12, align 8, !tbaa !5
  %14454 = load i16, ptr %14453, align 2, !tbaa !15
  %14455 = uitofp i16 %14454 to double
  store double %14455, ptr %407, align 8, !tbaa !11
  br label %14456

14456:                                            ; preds = %14449, %14425
  %14457 = load i32, ptr %8, align 4, !tbaa !9
  %14458 = icmp ule i32 6, %14457
  br i1 %14458, label %14459, label %14697

14459:                                            ; preds = %14456
  %14460 = load double, ptr %406, align 8, !tbaa !11
  %14461 = load double, ptr %407, align 8, !tbaa !11
  %14462 = fcmp olt double %14460, %14461
  br i1 %14462, label %14463, label %14697

14463:                                            ; preds = %14459
  %14464 = load i32, ptr %8, align 4, !tbaa !9
  %14465 = icmp ule i32 15, %14464
  br i1 %14465, label %14466, label %14520

14466:                                            ; preds = %14463
  call void @llvm.lifetime.start.p0(i64 8, ptr %408) #3
  %14467 = load double, ptr %406, align 8, !tbaa !11
  %14468 = fcmp olt double 0.000000e+00, %14467
  br i1 %14468, label %14469, label %14471

14469:                                            ; preds = %14466
  %14470 = load double, ptr %406, align 8, !tbaa !11
  br label %14472

14471:                                            ; preds = %14466
  br label %14472

14472:                                            ; preds = %14471, %14469
  %14473 = phi double [ %14470, %14469 ], [ 0.000000e+00, %14471 ]
  store double %14473, ptr %408, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %409) #3
  %14474 = load double, ptr %407, align 8, !tbaa !11
  %14475 = fcmp olt double 0.000000e+00, %14474
  br i1 %14475, label %14476, label %14478

14476:                                            ; preds = %14472
  %14477 = load double, ptr %407, align 8, !tbaa !11
  br label %14479

14478:                                            ; preds = %14472
  br label %14479

14479:                                            ; preds = %14478, %14476
  %14480 = phi double [ %14477, %14476 ], [ 0.000000e+00, %14478 ]
  store double %14480, ptr %409, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %410) #3
  %14481 = load double, ptr %408, align 8, !tbaa !11
  %14482 = load double, ptr %409, align 8, !tbaa !11
  %14483 = fcmp olt double %14481, %14482
  br i1 %14483, label %14484, label %14492

14484:                                            ; preds = %14479
  %14485 = load double, ptr %407, align 8, !tbaa !11
  %14486 = load double, ptr %406, align 8, !tbaa !11
  %14487 = fsub double %14485, %14486
  %14488 = load double, ptr %409, align 8, !tbaa !11
  %14489 = load double, ptr %408, align 8, !tbaa !11
  %14490 = fsub double %14488, %14489
  %14491 = fdiv double %14487, %14490
  br label %14493

14492:                                            ; preds = %14479
  br label %14493

14493:                                            ; preds = %14492, %14484
  %14494 = phi double [ %14491, %14484 ], [ 1.000000e+00, %14492 ]
  store double %14494, ptr %410, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %411) #3
  %14495 = load double, ptr %410, align 8, !tbaa !11
  %14496 = load i16, ptr %405, align 2, !tbaa !15
  %14497 = zext i16 %14496 to i32
  %14498 = icmp slt i32 0, %14497
  br i1 %14498, label %14499, label %14502

14499:                                            ; preds = %14493
  %14500 = load i16, ptr %405, align 2, !tbaa !15
  %14501 = zext i16 %14500 to i32
  br label %14503

14502:                                            ; preds = %14493
  br label %14503

14503:                                            ; preds = %14502, %14499
  %14504 = phi i32 [ %14501, %14499 ], [ 0, %14502 ]
  %14505 = sitofp i32 %14504 to double
  %14506 = fmul double %14495, %14505
  store double %14506, ptr %411, align 8, !tbaa !11
  %14507 = load double, ptr %411, align 8, !tbaa !11
  %14508 = fcmp ole double 0.000000e+00, %14507
  br i1 %14508, label %14509, label %14512

14509:                                            ; preds = %14503
  %14510 = load double, ptr %411, align 8, !tbaa !11
  %14511 = fadd double %14510, 5.000000e-01
  br label %14515

14512:                                            ; preds = %14503
  %14513 = load double, ptr %411, align 8, !tbaa !11
  %14514 = fsub double %14513, 5.000000e-01
  br label %14515

14515:                                            ; preds = %14512, %14509
  %14516 = phi double [ %14511, %14509 ], [ %14514, %14512 ]
  %14517 = fptoui double %14516 to i16
  store i16 %14517, ptr %405, align 2, !tbaa !15
  %14518 = load double, ptr %408, align 8, !tbaa !11
  store double %14518, ptr %406, align 8, !tbaa !11
  %14519 = load double, ptr %409, align 8, !tbaa !11
  store double %14519, ptr %407, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %411) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %410) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %409) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %408) #3
  br label %14576

14520:                                            ; preds = %14463
  %14521 = load i32, ptr %8, align 4, !tbaa !9
  %14522 = icmp ugt i32 6, %14521
  br i1 %14522, label %14551, label %14523

14523:                                            ; preds = %14520
  %14524 = load i32, ptr %8, align 4, !tbaa !9
  %14525 = icmp ugt i32 15, %14524
  br i1 %14525, label %14526, label %14537

14526:                                            ; preds = %14523
  %14527 = load i32, ptr %9, align 4, !tbaa !9
  %14528 = icmp ugt i32 15, %14527
  br i1 %14528, label %14529, label %14534

14529:                                            ; preds = %14526
  %14530 = load i32, ptr %9, align 4, !tbaa !9
  %14531 = load i32, ptr %8, align 4, !tbaa !9
  %14532 = icmp ugt i32 %14530, %14531
  %14533 = zext i1 %14532 to i32
  br label %14535

14534:                                            ; preds = %14526
  br label %14535

14535:                                            ; preds = %14534, %14529
  %14536 = phi i32 [ %14533, %14529 ], [ 0, %14534 ]
  br label %14548

14537:                                            ; preds = %14523
  %14538 = load i32, ptr %9, align 4, !tbaa !9
  %14539 = icmp ugt i32 15, %14538
  br i1 %14539, label %14540, label %14541

14540:                                            ; preds = %14537
  br label %14546

14541:                                            ; preds = %14537
  %14542 = load i32, ptr %9, align 4, !tbaa !9
  %14543 = load i32, ptr %8, align 4, !tbaa !9
  %14544 = icmp ugt i32 %14542, %14543
  %14545 = zext i1 %14544 to i32
  br label %14546

14546:                                            ; preds = %14541, %14540
  %14547 = phi i32 [ 0, %14540 ], [ %14545, %14541 ]
  br label %14548

14548:                                            ; preds = %14546, %14535
  %14549 = phi i32 [ %14536, %14535 ], [ %14547, %14546 ]
  %14550 = icmp ne i32 %14549, 0
  br label %14551

14551:                                            ; preds = %14548, %14520
  %14552 = phi i1 [ true, %14520 ], [ %14550, %14548 ]
  %14553 = zext i1 %14552 to i32
  %14554 = icmp eq i32 0, %14553
  br i1 %14554, label %14555, label %14575

14555:                                            ; preds = %14551
  %14556 = load double, ptr %406, align 8, !tbaa !11
  %14557 = fcmp ogt double 0.000000e+00, %14556
  br i1 %14557, label %14558, label %14575

14558:                                            ; preds = %14555
  %14559 = load double, ptr %407, align 8, !tbaa !11
  %14560 = fcmp olt double 0.000000e+00, %14559
  br i1 %14560, label %14561, label %14575

14561:                                            ; preds = %14558
  %14562 = load double, ptr %406, align 8, !tbaa !11
  %14563 = fneg double %14562
  %14564 = load double, ptr %407, align 8, !tbaa !11
  %14565 = fcmp olt double %14563, %14564
  br i1 %14565, label %14566, label %14568

14566:                                            ; preds = %14561
  %14567 = load double, ptr %407, align 8, !tbaa !11
  br label %14571

14568:                                            ; preds = %14561
  %14569 = load double, ptr %406, align 8, !tbaa !11
  %14570 = fneg double %14569
  br label %14571

14571:                                            ; preds = %14568, %14566
  %14572 = phi double [ %14567, %14566 ], [ %14570, %14568 ]
  store double %14572, ptr %407, align 8, !tbaa !11
  %14573 = load double, ptr %407, align 8, !tbaa !11
  %14574 = fneg double %14573
  store double %14574, ptr %406, align 8, !tbaa !11
  br label %14575

14575:                                            ; preds = %14571, %14558, %14555, %14551
  br label %14576

14576:                                            ; preds = %14575, %14515
  call void @llvm.lifetime.start.p0(i64 8, ptr %412) #3
  %14577 = load double, ptr %406, align 8, !tbaa !11
  %14578 = fcmp ole double 0.000000e+00, %14577
  %14579 = zext i1 %14578 to i64
  %14580 = select i1 %14578, double 0.000000e+00, double -1.000000e+00
  store double %14580, ptr %412, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %413) #3
  %14581 = load double, ptr %407, align 8, !tbaa !11
  %14582 = fcmp ole double 0.000000e+00, %14581
  %14583 = zext i1 %14582 to i64
  %14584 = select i1 %14582, double 1.000000e+00, double 0.000000e+00
  store double %14584, ptr %413, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %414) #3
  %14585 = load i16, ptr %405, align 2, !tbaa !15
  %14586 = uitofp i16 %14585 to double
  %14587 = load double, ptr %406, align 8, !tbaa !11
  %14588 = fsub double %14586, %14587
  %14589 = load double, ptr %413, align 8, !tbaa !11
  %14590 = load double, ptr %412, align 8, !tbaa !11
  %14591 = fsub double %14589, %14590
  %14592 = fmul double %14588, %14591
  %14593 = load double, ptr %407, align 8, !tbaa !11
  %14594 = load double, ptr %406, align 8, !tbaa !11
  %14595 = fsub double %14593, %14594
  %14596 = fdiv double %14592, %14595
  %14597 = load double, ptr %412, align 8, !tbaa !11
  %14598 = fadd double %14596, %14597
  store double %14598, ptr %414, align 8, !tbaa !11
  %14599 = load double, ptr %412, align 8, !tbaa !11
  %14600 = load double, ptr %414, align 8, !tbaa !11
  %14601 = fcmp ole double 0.000000e+00, %14600
  br i1 %14601, label %14602, label %14605

14602:                                            ; preds = %14576
  %14603 = load double, ptr %414, align 8, !tbaa !11
  %14604 = fadd double %14603, 5.000000e-01
  br label %14608

14605:                                            ; preds = %14576
  %14606 = load double, ptr %414, align 8, !tbaa !11
  %14607 = fsub double %14606, 5.000000e-01
  br label %14608

14608:                                            ; preds = %14605, %14602
  %14609 = phi double [ %14604, %14602 ], [ %14607, %14605 ]
  %14610 = fcmp olt double %14599, %14609
  br i1 %14610, label %14611, label %14665

14611:                                            ; preds = %14608
  %14612 = load double, ptr %414, align 8, !tbaa !11
  %14613 = fcmp ole double 0.000000e+00, %14612
  br i1 %14613, label %14614, label %14617

14614:                                            ; preds = %14611
  %14615 = load double, ptr %414, align 8, !tbaa !11
  %14616 = fadd double %14615, 5.000000e-01
  br label %14620

14617:                                            ; preds = %14611
  %14618 = load double, ptr %414, align 8, !tbaa !11
  %14619 = fsub double %14618, 5.000000e-01
  br label %14620

14620:                                            ; preds = %14617, %14614
  %14621 = phi double [ %14616, %14614 ], [ %14619, %14617 ]
  %14622 = load double, ptr %413, align 8, !tbaa !11
  %14623 = fcmp ole double %14621, %14622
  br i1 %14623, label %14624, label %14635

14624:                                            ; preds = %14620
  %14625 = load double, ptr %414, align 8, !tbaa !11
  %14626 = fcmp ole double 0.000000e+00, %14625
  br i1 %14626, label %14627, label %14630

14627:                                            ; preds = %14624
  %14628 = load double, ptr %414, align 8, !tbaa !11
  %14629 = fadd double %14628, 5.000000e-01
  br label %14633

14630:                                            ; preds = %14624
  %14631 = load double, ptr %414, align 8, !tbaa !11
  %14632 = fsub double %14631, 5.000000e-01
  br label %14633

14633:                                            ; preds = %14630, %14627
  %14634 = phi double [ %14629, %14627 ], [ %14632, %14630 ]
  br label %14663

14635:                                            ; preds = %14620
  %14636 = load double, ptr %414, align 8, !tbaa !11
  %14637 = fcmp ole double 0.000000e+00, %14636
  br i1 %14637, label %14638, label %14641

14638:                                            ; preds = %14635
  %14639 = load double, ptr %414, align 8, !tbaa !11
  %14640 = fadd double %14639, 5.000000e-01
  br label %14644

14641:                                            ; preds = %14635
  %14642 = load double, ptr %414, align 8, !tbaa !11
  %14643 = fsub double %14642, 5.000000e-01
  br label %14644

14644:                                            ; preds = %14641, %14638
  %14645 = phi double [ %14640, %14638 ], [ %14643, %14641 ]
  %14646 = load double, ptr %413, align 8, !tbaa !11
  %14647 = fcmp olt double %14645, %14646
  br i1 %14647, label %14648, label %14659

14648:                                            ; preds = %14644
  %14649 = load double, ptr %414, align 8, !tbaa !11
  %14650 = fcmp ole double 0.000000e+00, %14649
  br i1 %14650, label %14651, label %14654

14651:                                            ; preds = %14648
  %14652 = load double, ptr %414, align 8, !tbaa !11
  %14653 = fadd double %14652, 5.000000e-01
  br label %14657

14654:                                            ; preds = %14648
  %14655 = load double, ptr %414, align 8, !tbaa !11
  %14656 = fsub double %14655, 5.000000e-01
  br label %14657

14657:                                            ; preds = %14654, %14651
  %14658 = phi double [ %14653, %14651 ], [ %14656, %14654 ]
  br label %14661

14659:                                            ; preds = %14644
  %14660 = load double, ptr %413, align 8, !tbaa !11
  br label %14661

14661:                                            ; preds = %14659, %14657
  %14662 = phi double [ %14658, %14657 ], [ %14660, %14659 ]
  br label %14663

14663:                                            ; preds = %14661, %14633
  %14664 = phi double [ %14634, %14633 ], [ %14662, %14661 ]
  br label %14693

14665:                                            ; preds = %14608
  %14666 = load double, ptr %412, align 8, !tbaa !11
  %14667 = load double, ptr %414, align 8, !tbaa !11
  %14668 = fcmp ole double 0.000000e+00, %14667
  br i1 %14668, label %14669, label %14672

14669:                                            ; preds = %14665
  %14670 = load double, ptr %414, align 8, !tbaa !11
  %14671 = fadd double %14670, 5.000000e-01
  br label %14675

14672:                                            ; preds = %14665
  %14673 = load double, ptr %414, align 8, !tbaa !11
  %14674 = fsub double %14673, 5.000000e-01
  br label %14675

14675:                                            ; preds = %14672, %14669
  %14676 = phi double [ %14671, %14669 ], [ %14674, %14672 ]
  %14677 = fcmp olt double %14666, %14676
  br i1 %14677, label %14678, label %14689

14678:                                            ; preds = %14675
  %14679 = load double, ptr %414, align 8, !tbaa !11
  %14680 = fcmp ole double 0.000000e+00, %14679
  br i1 %14680, label %14681, label %14684

14681:                                            ; preds = %14678
  %14682 = load double, ptr %414, align 8, !tbaa !11
  %14683 = fadd double %14682, 5.000000e-01
  br label %14687

14684:                                            ; preds = %14678
  %14685 = load double, ptr %414, align 8, !tbaa !11
  %14686 = fsub double %14685, 5.000000e-01
  br label %14687

14687:                                            ; preds = %14684, %14681
  %14688 = phi double [ %14683, %14681 ], [ %14686, %14684 ]
  br label %14691

14689:                                            ; preds = %14675
  %14690 = load double, ptr %412, align 8, !tbaa !11
  br label %14691

14691:                                            ; preds = %14689, %14687
  %14692 = phi double [ %14688, %14687 ], [ %14690, %14689 ]
  br label %14693

14693:                                            ; preds = %14691, %14663
  %14694 = phi double [ %14664, %14663 ], [ %14692, %14691 ]
  %14695 = fptoui double %14694 to i16
  %14696 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %14695, ptr %14696, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %414) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %413) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %412) #3
  br label %14780

14697:                                            ; preds = %14459, %14456
  %14698 = load i32, ptr %8, align 4, !tbaa !9
  %14699 = icmp ugt i32 6, %14698
  br i1 %14699, label %14728, label %14700

14700:                                            ; preds = %14697
  %14701 = load i32, ptr %8, align 4, !tbaa !9
  %14702 = icmp ugt i32 15, %14701
  br i1 %14702, label %14703, label %14714

14703:                                            ; preds = %14700
  %14704 = load i32, ptr %9, align 4, !tbaa !9
  %14705 = icmp ugt i32 15, %14704
  br i1 %14705, label %14706, label %14711

14706:                                            ; preds = %14703
  %14707 = load i32, ptr %9, align 4, !tbaa !9
  %14708 = load i32, ptr %8, align 4, !tbaa !9
  %14709 = icmp ugt i32 %14707, %14708
  %14710 = zext i1 %14709 to i32
  br label %14712

14711:                                            ; preds = %14703
  br label %14712

14712:                                            ; preds = %14711, %14706
  %14713 = phi i32 [ %14710, %14706 ], [ 0, %14711 ]
  br label %14725

14714:                                            ; preds = %14700
  %14715 = load i32, ptr %9, align 4, !tbaa !9
  %14716 = icmp ugt i32 15, %14715
  br i1 %14716, label %14717, label %14718

14717:                                            ; preds = %14714
  br label %14723

14718:                                            ; preds = %14714
  %14719 = load i32, ptr %9, align 4, !tbaa !9
  %14720 = load i32, ptr %8, align 4, !tbaa !9
  %14721 = icmp ugt i32 %14719, %14720
  %14722 = zext i1 %14721 to i32
  br label %14723

14723:                                            ; preds = %14718, %14717
  %14724 = phi i32 [ 0, %14717 ], [ %14722, %14718 ]
  br label %14725

14725:                                            ; preds = %14723, %14712
  %14726 = phi i32 [ %14713, %14712 ], [ %14724, %14723 ]
  %14727 = icmp ne i32 %14726, 0
  br label %14728

14728:                                            ; preds = %14725, %14697
  %14729 = phi i1 [ true, %14697 ], [ %14727, %14725 ]
  %14730 = zext i1 %14729 to i32
  %14731 = icmp eq i32 0, %14730
  br i1 %14731, label %14732, label %14776

14732:                                            ; preds = %14728
  %14733 = load i16, ptr %405, align 2, !tbaa !15
  %14734 = zext i16 %14733 to i32
  %14735 = sitofp i32 %14734 to double
  %14736 = fcmp olt double -1.000000e+00, %14735
  br i1 %14736, label %14737, label %14760

14737:                                            ; preds = %14732
  %14738 = load i16, ptr %405, align 2, !tbaa !15
  %14739 = zext i16 %14738 to i32
  %14740 = sitofp i32 %14739 to double
  %14741 = fcmp ole double %14740, 1.000000e+00
  br i1 %14741, label %14742, label %14746

14742:                                            ; preds = %14737
  %14743 = load i16, ptr %405, align 2, !tbaa !15
  %14744 = zext i16 %14743 to i32
  %14745 = sitofp i32 %14744 to double
  br label %14758

14746:                                            ; preds = %14737
  %14747 = load i16, ptr %405, align 2, !tbaa !15
  %14748 = zext i16 %14747 to i32
  %14749 = sitofp i32 %14748 to double
  %14750 = fcmp olt double %14749, 1.000000e+00
  br i1 %14750, label %14751, label %14755

14751:                                            ; preds = %14746
  %14752 = load i16, ptr %405, align 2, !tbaa !15
  %14753 = zext i16 %14752 to i32
  %14754 = sitofp i32 %14753 to double
  br label %14756

14755:                                            ; preds = %14746
  br label %14756

14756:                                            ; preds = %14755, %14751
  %14757 = phi double [ %14754, %14751 ], [ 1.000000e+00, %14755 ]
  br label %14758

14758:                                            ; preds = %14756, %14742
  %14759 = phi double [ %14745, %14742 ], [ %14757, %14756 ]
  br label %14772

14760:                                            ; preds = %14732
  %14761 = load i16, ptr %405, align 2, !tbaa !15
  %14762 = zext i16 %14761 to i32
  %14763 = sitofp i32 %14762 to double
  %14764 = fcmp olt double -1.000000e+00, %14763
  br i1 %14764, label %14765, label %14769

14765:                                            ; preds = %14760
  %14766 = load i16, ptr %405, align 2, !tbaa !15
  %14767 = zext i16 %14766 to i32
  %14768 = sitofp i32 %14767 to double
  br label %14770

14769:                                            ; preds = %14760
  br label %14770

14770:                                            ; preds = %14769, %14765
  %14771 = phi double [ %14768, %14765 ], [ -1.000000e+00, %14769 ]
  br label %14772

14772:                                            ; preds = %14770, %14758
  %14773 = phi double [ %14759, %14758 ], [ %14771, %14770 ]
  %14774 = fptoui double %14773 to i16
  %14775 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %14774, ptr %14775, align 2, !tbaa !15
  br label %14779

14776:                                            ; preds = %14728
  %14777 = load i16, ptr %405, align 2, !tbaa !15
  %14778 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %14777, ptr %14778, align 2, !tbaa !15
  br label %14779

14779:                                            ; preds = %14776, %14772
  br label %14780

14780:                                            ; preds = %14779, %14693
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %407) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %406) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %405) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %404) #3
  br label %14781

14781:                                            ; preds = %14780
  br label %14782

14782:                                            ; preds = %14781
  br label %15938

14783:                                            ; preds = %12315
  br label %14784

14784:                                            ; preds = %14783
  call void @llvm.lifetime.start.p0(i64 8, ptr %415) #3
  store double 5.000000e-01, ptr %415, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %416) #3
  %14785 = load ptr, ptr %10, align 8, !tbaa !5
  %14786 = load i8, ptr %14785, align 1, !tbaa !17
  store i8 %14786, ptr %416, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %417) #3
  store double 0.000000e+00, ptr %417, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %418) #3
  store double 0.000000e+00, ptr %418, align 8, !tbaa !11
  %14787 = load ptr, ptr %11, align 8, !tbaa !5
  %14788 = icmp ne ptr null, %14787
  br i1 %14788, label %14789, label %14815

14789:                                            ; preds = %14784
  %14790 = load ptr, ptr %12, align 8, !tbaa !5
  %14791 = icmp ne ptr null, %14790
  br i1 %14791, label %14792, label %14807

14792:                                            ; preds = %14789
  %14793 = load ptr, ptr %11, align 8, !tbaa !5
  %14794 = load i8, ptr %14793, align 1, !tbaa !17
  %14795 = zext i8 %14794 to i32
  %14796 = load i8, ptr %416, align 1, !tbaa !17
  %14797 = zext i8 %14796 to i32
  %14798 = icmp sle i32 %14795, %14797
  br i1 %14798, label %14799, label %14807

14799:                                            ; preds = %14792
  %14800 = load i8, ptr %416, align 1, !tbaa !17
  %14801 = zext i8 %14800 to i32
  %14802 = load ptr, ptr %12, align 8, !tbaa !5
  %14803 = load i8, ptr %14802, align 1, !tbaa !17
  %14804 = zext i8 %14803 to i32
  %14805 = icmp sle i32 %14801, %14804
  br i1 %14805, label %14806, label %14807

14806:                                            ; preds = %14799
  br label %14808

14807:                                            ; preds = %14799, %14792, %14789
  call void @__assert_fail(ptr noundef @.str.49, ptr noundef @.str.24, i32 noundef 476, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

14808:                                            ; preds = %14806
  %14809 = load ptr, ptr %11, align 8, !tbaa !5
  %14810 = load i8, ptr %14809, align 1, !tbaa !17
  %14811 = uitofp i8 %14810 to double
  store double %14811, ptr %417, align 8, !tbaa !11
  %14812 = load ptr, ptr %12, align 8, !tbaa !5
  %14813 = load i8, ptr %14812, align 1, !tbaa !17
  %14814 = uitofp i8 %14813 to double
  store double %14814, ptr %418, align 8, !tbaa !11
  br label %14815

14815:                                            ; preds = %14808, %14784
  %14816 = load i32, ptr %8, align 4, !tbaa !9
  %14817 = icmp ule i32 6, %14816
  br i1 %14817, label %14818, label %15056

14818:                                            ; preds = %14815
  %14819 = load double, ptr %417, align 8, !tbaa !11
  %14820 = load double, ptr %418, align 8, !tbaa !11
  %14821 = fcmp olt double %14819, %14820
  br i1 %14821, label %14822, label %15056

14822:                                            ; preds = %14818
  %14823 = load i32, ptr %8, align 4, !tbaa !9
  %14824 = icmp ule i32 15, %14823
  br i1 %14824, label %14825, label %14879

14825:                                            ; preds = %14822
  call void @llvm.lifetime.start.p0(i64 8, ptr %419) #3
  %14826 = load double, ptr %417, align 8, !tbaa !11
  %14827 = fcmp olt double 0.000000e+00, %14826
  br i1 %14827, label %14828, label %14830

14828:                                            ; preds = %14825
  %14829 = load double, ptr %417, align 8, !tbaa !11
  br label %14831

14830:                                            ; preds = %14825
  br label %14831

14831:                                            ; preds = %14830, %14828
  %14832 = phi double [ %14829, %14828 ], [ 0.000000e+00, %14830 ]
  store double %14832, ptr %419, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %420) #3
  %14833 = load double, ptr %418, align 8, !tbaa !11
  %14834 = fcmp olt double 0.000000e+00, %14833
  br i1 %14834, label %14835, label %14837

14835:                                            ; preds = %14831
  %14836 = load double, ptr %418, align 8, !tbaa !11
  br label %14838

14837:                                            ; preds = %14831
  br label %14838

14838:                                            ; preds = %14837, %14835
  %14839 = phi double [ %14836, %14835 ], [ 0.000000e+00, %14837 ]
  store double %14839, ptr %420, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %421) #3
  %14840 = load double, ptr %419, align 8, !tbaa !11
  %14841 = load double, ptr %420, align 8, !tbaa !11
  %14842 = fcmp olt double %14840, %14841
  br i1 %14842, label %14843, label %14851

14843:                                            ; preds = %14838
  %14844 = load double, ptr %418, align 8, !tbaa !11
  %14845 = load double, ptr %417, align 8, !tbaa !11
  %14846 = fsub double %14844, %14845
  %14847 = load double, ptr %420, align 8, !tbaa !11
  %14848 = load double, ptr %419, align 8, !tbaa !11
  %14849 = fsub double %14847, %14848
  %14850 = fdiv double %14846, %14849
  br label %14852

14851:                                            ; preds = %14838
  br label %14852

14852:                                            ; preds = %14851, %14843
  %14853 = phi double [ %14850, %14843 ], [ 1.000000e+00, %14851 ]
  store double %14853, ptr %421, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %422) #3
  %14854 = load double, ptr %421, align 8, !tbaa !11
  %14855 = load i8, ptr %416, align 1, !tbaa !17
  %14856 = zext i8 %14855 to i32
  %14857 = icmp slt i32 0, %14856
  br i1 %14857, label %14858, label %14861

14858:                                            ; preds = %14852
  %14859 = load i8, ptr %416, align 1, !tbaa !17
  %14860 = zext i8 %14859 to i32
  br label %14862

14861:                                            ; preds = %14852
  br label %14862

14862:                                            ; preds = %14861, %14858
  %14863 = phi i32 [ %14860, %14858 ], [ 0, %14861 ]
  %14864 = sitofp i32 %14863 to double
  %14865 = fmul double %14854, %14864
  store double %14865, ptr %422, align 8, !tbaa !11
  %14866 = load double, ptr %422, align 8, !tbaa !11
  %14867 = fcmp ole double 0.000000e+00, %14866
  br i1 %14867, label %14868, label %14871

14868:                                            ; preds = %14862
  %14869 = load double, ptr %422, align 8, !tbaa !11
  %14870 = fadd double %14869, 5.000000e-01
  br label %14874

14871:                                            ; preds = %14862
  %14872 = load double, ptr %422, align 8, !tbaa !11
  %14873 = fsub double %14872, 5.000000e-01
  br label %14874

14874:                                            ; preds = %14871, %14868
  %14875 = phi double [ %14870, %14868 ], [ %14873, %14871 ]
  %14876 = fptoui double %14875 to i8
  store i8 %14876, ptr %416, align 1, !tbaa !17
  %14877 = load double, ptr %419, align 8, !tbaa !11
  store double %14877, ptr %417, align 8, !tbaa !11
  %14878 = load double, ptr %420, align 8, !tbaa !11
  store double %14878, ptr %418, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %422) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %421) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %420) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %419) #3
  br label %14935

14879:                                            ; preds = %14822
  %14880 = load i32, ptr %8, align 4, !tbaa !9
  %14881 = icmp ugt i32 6, %14880
  br i1 %14881, label %14910, label %14882

14882:                                            ; preds = %14879
  %14883 = load i32, ptr %8, align 4, !tbaa !9
  %14884 = icmp ugt i32 15, %14883
  br i1 %14884, label %14885, label %14896

14885:                                            ; preds = %14882
  %14886 = load i32, ptr %9, align 4, !tbaa !9
  %14887 = icmp ugt i32 15, %14886
  br i1 %14887, label %14888, label %14893

14888:                                            ; preds = %14885
  %14889 = load i32, ptr %9, align 4, !tbaa !9
  %14890 = load i32, ptr %8, align 4, !tbaa !9
  %14891 = icmp ugt i32 %14889, %14890
  %14892 = zext i1 %14891 to i32
  br label %14894

14893:                                            ; preds = %14885
  br label %14894

14894:                                            ; preds = %14893, %14888
  %14895 = phi i32 [ %14892, %14888 ], [ 0, %14893 ]
  br label %14907

14896:                                            ; preds = %14882
  %14897 = load i32, ptr %9, align 4, !tbaa !9
  %14898 = icmp ugt i32 15, %14897
  br i1 %14898, label %14899, label %14900

14899:                                            ; preds = %14896
  br label %14905

14900:                                            ; preds = %14896
  %14901 = load i32, ptr %9, align 4, !tbaa !9
  %14902 = load i32, ptr %8, align 4, !tbaa !9
  %14903 = icmp ugt i32 %14901, %14902
  %14904 = zext i1 %14903 to i32
  br label %14905

14905:                                            ; preds = %14900, %14899
  %14906 = phi i32 [ 0, %14899 ], [ %14904, %14900 ]
  br label %14907

14907:                                            ; preds = %14905, %14894
  %14908 = phi i32 [ %14895, %14894 ], [ %14906, %14905 ]
  %14909 = icmp ne i32 %14908, 0
  br label %14910

14910:                                            ; preds = %14907, %14879
  %14911 = phi i1 [ true, %14879 ], [ %14909, %14907 ]
  %14912 = zext i1 %14911 to i32
  %14913 = icmp eq i32 0, %14912
  br i1 %14913, label %14914, label %14934

14914:                                            ; preds = %14910
  %14915 = load double, ptr %417, align 8, !tbaa !11
  %14916 = fcmp ogt double 0.000000e+00, %14915
  br i1 %14916, label %14917, label %14934

14917:                                            ; preds = %14914
  %14918 = load double, ptr %418, align 8, !tbaa !11
  %14919 = fcmp olt double 0.000000e+00, %14918
  br i1 %14919, label %14920, label %14934

14920:                                            ; preds = %14917
  %14921 = load double, ptr %417, align 8, !tbaa !11
  %14922 = fneg double %14921
  %14923 = load double, ptr %418, align 8, !tbaa !11
  %14924 = fcmp olt double %14922, %14923
  br i1 %14924, label %14925, label %14927

14925:                                            ; preds = %14920
  %14926 = load double, ptr %418, align 8, !tbaa !11
  br label %14930

14927:                                            ; preds = %14920
  %14928 = load double, ptr %417, align 8, !tbaa !11
  %14929 = fneg double %14928
  br label %14930

14930:                                            ; preds = %14927, %14925
  %14931 = phi double [ %14926, %14925 ], [ %14929, %14927 ]
  store double %14931, ptr %418, align 8, !tbaa !11
  %14932 = load double, ptr %418, align 8, !tbaa !11
  %14933 = fneg double %14932
  store double %14933, ptr %417, align 8, !tbaa !11
  br label %14934

14934:                                            ; preds = %14930, %14917, %14914, %14910
  br label %14935

14935:                                            ; preds = %14934, %14874
  call void @llvm.lifetime.start.p0(i64 8, ptr %423) #3
  %14936 = load double, ptr %417, align 8, !tbaa !11
  %14937 = fcmp ole double 0.000000e+00, %14936
  %14938 = zext i1 %14937 to i64
  %14939 = select i1 %14937, double 0.000000e+00, double -1.000000e+00
  store double %14939, ptr %423, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %424) #3
  %14940 = load double, ptr %418, align 8, !tbaa !11
  %14941 = fcmp ole double 0.000000e+00, %14940
  %14942 = zext i1 %14941 to i64
  %14943 = select i1 %14941, double 1.000000e+00, double 0.000000e+00
  store double %14943, ptr %424, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %425) #3
  %14944 = load i8, ptr %416, align 1, !tbaa !17
  %14945 = uitofp i8 %14944 to double
  %14946 = load double, ptr %417, align 8, !tbaa !11
  %14947 = fsub double %14945, %14946
  %14948 = load double, ptr %424, align 8, !tbaa !11
  %14949 = load double, ptr %423, align 8, !tbaa !11
  %14950 = fsub double %14948, %14949
  %14951 = fmul double %14947, %14950
  %14952 = load double, ptr %418, align 8, !tbaa !11
  %14953 = load double, ptr %417, align 8, !tbaa !11
  %14954 = fsub double %14952, %14953
  %14955 = fdiv double %14951, %14954
  %14956 = load double, ptr %423, align 8, !tbaa !11
  %14957 = fadd double %14955, %14956
  store double %14957, ptr %425, align 8, !tbaa !11
  %14958 = load double, ptr %423, align 8, !tbaa !11
  %14959 = load double, ptr %425, align 8, !tbaa !11
  %14960 = fcmp ole double 0.000000e+00, %14959
  br i1 %14960, label %14961, label %14964

14961:                                            ; preds = %14935
  %14962 = load double, ptr %425, align 8, !tbaa !11
  %14963 = fadd double %14962, 5.000000e-01
  br label %14967

14964:                                            ; preds = %14935
  %14965 = load double, ptr %425, align 8, !tbaa !11
  %14966 = fsub double %14965, 5.000000e-01
  br label %14967

14967:                                            ; preds = %14964, %14961
  %14968 = phi double [ %14963, %14961 ], [ %14966, %14964 ]
  %14969 = fcmp olt double %14958, %14968
  br i1 %14969, label %14970, label %15024

14970:                                            ; preds = %14967
  %14971 = load double, ptr %425, align 8, !tbaa !11
  %14972 = fcmp ole double 0.000000e+00, %14971
  br i1 %14972, label %14973, label %14976

14973:                                            ; preds = %14970
  %14974 = load double, ptr %425, align 8, !tbaa !11
  %14975 = fadd double %14974, 5.000000e-01
  br label %14979

14976:                                            ; preds = %14970
  %14977 = load double, ptr %425, align 8, !tbaa !11
  %14978 = fsub double %14977, 5.000000e-01
  br label %14979

14979:                                            ; preds = %14976, %14973
  %14980 = phi double [ %14975, %14973 ], [ %14978, %14976 ]
  %14981 = load double, ptr %424, align 8, !tbaa !11
  %14982 = fcmp ole double %14980, %14981
  br i1 %14982, label %14983, label %14994

14983:                                            ; preds = %14979
  %14984 = load double, ptr %425, align 8, !tbaa !11
  %14985 = fcmp ole double 0.000000e+00, %14984
  br i1 %14985, label %14986, label %14989

14986:                                            ; preds = %14983
  %14987 = load double, ptr %425, align 8, !tbaa !11
  %14988 = fadd double %14987, 5.000000e-01
  br label %14992

14989:                                            ; preds = %14983
  %14990 = load double, ptr %425, align 8, !tbaa !11
  %14991 = fsub double %14990, 5.000000e-01
  br label %14992

14992:                                            ; preds = %14989, %14986
  %14993 = phi double [ %14988, %14986 ], [ %14991, %14989 ]
  br label %15022

14994:                                            ; preds = %14979
  %14995 = load double, ptr %425, align 8, !tbaa !11
  %14996 = fcmp ole double 0.000000e+00, %14995
  br i1 %14996, label %14997, label %15000

14997:                                            ; preds = %14994
  %14998 = load double, ptr %425, align 8, !tbaa !11
  %14999 = fadd double %14998, 5.000000e-01
  br label %15003

15000:                                            ; preds = %14994
  %15001 = load double, ptr %425, align 8, !tbaa !11
  %15002 = fsub double %15001, 5.000000e-01
  br label %15003

15003:                                            ; preds = %15000, %14997
  %15004 = phi double [ %14999, %14997 ], [ %15002, %15000 ]
  %15005 = load double, ptr %424, align 8, !tbaa !11
  %15006 = fcmp olt double %15004, %15005
  br i1 %15006, label %15007, label %15018

15007:                                            ; preds = %15003
  %15008 = load double, ptr %425, align 8, !tbaa !11
  %15009 = fcmp ole double 0.000000e+00, %15008
  br i1 %15009, label %15010, label %15013

15010:                                            ; preds = %15007
  %15011 = load double, ptr %425, align 8, !tbaa !11
  %15012 = fadd double %15011, 5.000000e-01
  br label %15016

15013:                                            ; preds = %15007
  %15014 = load double, ptr %425, align 8, !tbaa !11
  %15015 = fsub double %15014, 5.000000e-01
  br label %15016

15016:                                            ; preds = %15013, %15010
  %15017 = phi double [ %15012, %15010 ], [ %15015, %15013 ]
  br label %15020

15018:                                            ; preds = %15003
  %15019 = load double, ptr %424, align 8, !tbaa !11
  br label %15020

15020:                                            ; preds = %15018, %15016
  %15021 = phi double [ %15017, %15016 ], [ %15019, %15018 ]
  br label %15022

15022:                                            ; preds = %15020, %14992
  %15023 = phi double [ %14993, %14992 ], [ %15021, %15020 ]
  br label %15052

15024:                                            ; preds = %14967
  %15025 = load double, ptr %423, align 8, !tbaa !11
  %15026 = load double, ptr %425, align 8, !tbaa !11
  %15027 = fcmp ole double 0.000000e+00, %15026
  br i1 %15027, label %15028, label %15031

15028:                                            ; preds = %15024
  %15029 = load double, ptr %425, align 8, !tbaa !11
  %15030 = fadd double %15029, 5.000000e-01
  br label %15034

15031:                                            ; preds = %15024
  %15032 = load double, ptr %425, align 8, !tbaa !11
  %15033 = fsub double %15032, 5.000000e-01
  br label %15034

15034:                                            ; preds = %15031, %15028
  %15035 = phi double [ %15030, %15028 ], [ %15033, %15031 ]
  %15036 = fcmp olt double %15025, %15035
  br i1 %15036, label %15037, label %15048

15037:                                            ; preds = %15034
  %15038 = load double, ptr %425, align 8, !tbaa !11
  %15039 = fcmp ole double 0.000000e+00, %15038
  br i1 %15039, label %15040, label %15043

15040:                                            ; preds = %15037
  %15041 = load double, ptr %425, align 8, !tbaa !11
  %15042 = fadd double %15041, 5.000000e-01
  br label %15046

15043:                                            ; preds = %15037
  %15044 = load double, ptr %425, align 8, !tbaa !11
  %15045 = fsub double %15044, 5.000000e-01
  br label %15046

15046:                                            ; preds = %15043, %15040
  %15047 = phi double [ %15042, %15040 ], [ %15045, %15043 ]
  br label %15050

15048:                                            ; preds = %15034
  %15049 = load double, ptr %423, align 8, !tbaa !11
  br label %15050

15050:                                            ; preds = %15048, %15046
  %15051 = phi double [ %15047, %15046 ], [ %15049, %15048 ]
  br label %15052

15052:                                            ; preds = %15050, %15022
  %15053 = phi double [ %15023, %15022 ], [ %15051, %15050 ]
  %15054 = fptoui double %15053 to i16
  %15055 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %15054, ptr %15055, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %425) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %424) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %423) #3
  br label %15140

15056:                                            ; preds = %14818, %14815
  %15057 = load i32, ptr %8, align 4, !tbaa !9
  %15058 = icmp ugt i32 6, %15057
  br i1 %15058, label %15087, label %15059

15059:                                            ; preds = %15056
  %15060 = load i32, ptr %8, align 4, !tbaa !9
  %15061 = icmp ugt i32 15, %15060
  br i1 %15061, label %15062, label %15073

15062:                                            ; preds = %15059
  %15063 = load i32, ptr %9, align 4, !tbaa !9
  %15064 = icmp ugt i32 15, %15063
  br i1 %15064, label %15065, label %15070

15065:                                            ; preds = %15062
  %15066 = load i32, ptr %9, align 4, !tbaa !9
  %15067 = load i32, ptr %8, align 4, !tbaa !9
  %15068 = icmp ugt i32 %15066, %15067
  %15069 = zext i1 %15068 to i32
  br label %15071

15070:                                            ; preds = %15062
  br label %15071

15071:                                            ; preds = %15070, %15065
  %15072 = phi i32 [ %15069, %15065 ], [ 0, %15070 ]
  br label %15084

15073:                                            ; preds = %15059
  %15074 = load i32, ptr %9, align 4, !tbaa !9
  %15075 = icmp ugt i32 15, %15074
  br i1 %15075, label %15076, label %15077

15076:                                            ; preds = %15073
  br label %15082

15077:                                            ; preds = %15073
  %15078 = load i32, ptr %9, align 4, !tbaa !9
  %15079 = load i32, ptr %8, align 4, !tbaa !9
  %15080 = icmp ugt i32 %15078, %15079
  %15081 = zext i1 %15080 to i32
  br label %15082

15082:                                            ; preds = %15077, %15076
  %15083 = phi i32 [ 0, %15076 ], [ %15081, %15077 ]
  br label %15084

15084:                                            ; preds = %15082, %15071
  %15085 = phi i32 [ %15072, %15071 ], [ %15083, %15082 ]
  %15086 = icmp ne i32 %15085, 0
  br label %15087

15087:                                            ; preds = %15084, %15056
  %15088 = phi i1 [ true, %15056 ], [ %15086, %15084 ]
  %15089 = zext i1 %15088 to i32
  %15090 = icmp eq i32 0, %15089
  br i1 %15090, label %15091, label %15135

15091:                                            ; preds = %15087
  %15092 = load i8, ptr %416, align 1, !tbaa !17
  %15093 = zext i8 %15092 to i32
  %15094 = sitofp i32 %15093 to double
  %15095 = fcmp olt double -1.000000e+00, %15094
  br i1 %15095, label %15096, label %15119

15096:                                            ; preds = %15091
  %15097 = load i8, ptr %416, align 1, !tbaa !17
  %15098 = zext i8 %15097 to i32
  %15099 = sitofp i32 %15098 to double
  %15100 = fcmp ole double %15099, 1.000000e+00
  br i1 %15100, label %15101, label %15105

15101:                                            ; preds = %15096
  %15102 = load i8, ptr %416, align 1, !tbaa !17
  %15103 = zext i8 %15102 to i32
  %15104 = sitofp i32 %15103 to double
  br label %15117

15105:                                            ; preds = %15096
  %15106 = load i8, ptr %416, align 1, !tbaa !17
  %15107 = zext i8 %15106 to i32
  %15108 = sitofp i32 %15107 to double
  %15109 = fcmp olt double %15108, 1.000000e+00
  br i1 %15109, label %15110, label %15114

15110:                                            ; preds = %15105
  %15111 = load i8, ptr %416, align 1, !tbaa !17
  %15112 = zext i8 %15111 to i32
  %15113 = sitofp i32 %15112 to double
  br label %15115

15114:                                            ; preds = %15105
  br label %15115

15115:                                            ; preds = %15114, %15110
  %15116 = phi double [ %15113, %15110 ], [ 1.000000e+00, %15114 ]
  br label %15117

15117:                                            ; preds = %15115, %15101
  %15118 = phi double [ %15104, %15101 ], [ %15116, %15115 ]
  br label %15131

15119:                                            ; preds = %15091
  %15120 = load i8, ptr %416, align 1, !tbaa !17
  %15121 = zext i8 %15120 to i32
  %15122 = sitofp i32 %15121 to double
  %15123 = fcmp olt double -1.000000e+00, %15122
  br i1 %15123, label %15124, label %15128

15124:                                            ; preds = %15119
  %15125 = load i8, ptr %416, align 1, !tbaa !17
  %15126 = zext i8 %15125 to i32
  %15127 = sitofp i32 %15126 to double
  br label %15129

15128:                                            ; preds = %15119
  br label %15129

15129:                                            ; preds = %15128, %15124
  %15130 = phi double [ %15127, %15124 ], [ -1.000000e+00, %15128 ]
  br label %15131

15131:                                            ; preds = %15129, %15117
  %15132 = phi double [ %15118, %15117 ], [ %15130, %15129 ]
  %15133 = fptoui double %15132 to i16
  %15134 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %15133, ptr %15134, align 2, !tbaa !15
  br label %15139

15135:                                            ; preds = %15087
  %15136 = load i8, ptr %416, align 1, !tbaa !17
  %15137 = zext i8 %15136 to i16
  %15138 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %15137, ptr %15138, align 2, !tbaa !15
  br label %15139

15139:                                            ; preds = %15135, %15131
  br label %15140

15140:                                            ; preds = %15139, %15052
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %418) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %417) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %416) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %415) #3
  br label %15141

15141:                                            ; preds = %15140
  br label %15142

15142:                                            ; preds = %15141
  br label %15938

15143:                                            ; preds = %12315
  br label %15144

15144:                                            ; preds = %15143
  call void @llvm.lifetime.start.p0(i64 8, ptr %426) #3
  store double 5.000000e-01, ptr %426, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %427) #3
  %15145 = load ptr, ptr %10, align 8, !tbaa !5
  %15146 = load double, ptr %15145, align 8, !tbaa !11
  store double %15146, ptr %427, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %428) #3
  store double 0.000000e+00, ptr %428, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %429) #3
  store double 0.000000e+00, ptr %429, align 8, !tbaa !11
  %15147 = load ptr, ptr %11, align 8, !tbaa !5
  %15148 = icmp ne ptr null, %15147
  br i1 %15148, label %15149, label %15173

15149:                                            ; preds = %15144
  %15150 = load double, ptr %427, align 8, !tbaa !11
  %15151 = load double, ptr %427, align 8, !tbaa !11
  %15152 = fcmp oeq double %15150, %15151
  br i1 %15152, label %15153, label %15173

15153:                                            ; preds = %15149
  %15154 = load ptr, ptr %12, align 8, !tbaa !5
  %15155 = icmp ne ptr null, %15154
  br i1 %15155, label %15156, label %15167

15156:                                            ; preds = %15153
  %15157 = load ptr, ptr %11, align 8, !tbaa !5
  %15158 = load double, ptr %15157, align 8, !tbaa !11
  %15159 = load double, ptr %427, align 8, !tbaa !11
  %15160 = fcmp ole double %15158, %15159
  br i1 %15160, label %15161, label %15167

15161:                                            ; preds = %15156
  %15162 = load double, ptr %427, align 8, !tbaa !11
  %15163 = load ptr, ptr %12, align 8, !tbaa !5
  %15164 = load double, ptr %15163, align 8, !tbaa !11
  %15165 = fcmp ole double %15162, %15164
  br i1 %15165, label %15166, label %15167

15166:                                            ; preds = %15161
  br label %15168

15167:                                            ; preds = %15161, %15156, %15153
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.24, i32 noundef 476, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

15168:                                            ; preds = %15166
  %15169 = load ptr, ptr %11, align 8, !tbaa !5
  %15170 = load double, ptr %15169, align 8, !tbaa !11
  store double %15170, ptr %428, align 8, !tbaa !11
  %15171 = load ptr, ptr %12, align 8, !tbaa !5
  %15172 = load double, ptr %15171, align 8, !tbaa !11
  store double %15172, ptr %429, align 8, !tbaa !11
  br label %15173

15173:                                            ; preds = %15168, %15149, %15144
  %15174 = load i32, ptr %8, align 4, !tbaa !9
  %15175 = icmp ule i32 6, %15174
  br i1 %15175, label %15176, label %15399

15176:                                            ; preds = %15173
  %15177 = load double, ptr %428, align 8, !tbaa !11
  %15178 = load double, ptr %429, align 8, !tbaa !11
  %15179 = fcmp olt double %15177, %15178
  br i1 %15179, label %15180, label %15399

15180:                                            ; preds = %15176
  %15181 = load i32, ptr %8, align 4, !tbaa !9
  %15182 = icmp ule i32 15, %15181
  br i1 %15182, label %15183, label %15223

15183:                                            ; preds = %15180
  call void @llvm.lifetime.start.p0(i64 8, ptr %430) #3
  %15184 = load double, ptr %428, align 8, !tbaa !11
  %15185 = fcmp olt double 0.000000e+00, %15184
  br i1 %15185, label %15186, label %15188

15186:                                            ; preds = %15183
  %15187 = load double, ptr %428, align 8, !tbaa !11
  br label %15189

15188:                                            ; preds = %15183
  br label %15189

15189:                                            ; preds = %15188, %15186
  %15190 = phi double [ %15187, %15186 ], [ 0.000000e+00, %15188 ]
  store double %15190, ptr %430, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %431) #3
  %15191 = load double, ptr %429, align 8, !tbaa !11
  %15192 = fcmp olt double 0.000000e+00, %15191
  br i1 %15192, label %15193, label %15195

15193:                                            ; preds = %15189
  %15194 = load double, ptr %429, align 8, !tbaa !11
  br label %15196

15195:                                            ; preds = %15189
  br label %15196

15196:                                            ; preds = %15195, %15193
  %15197 = phi double [ %15194, %15193 ], [ 0.000000e+00, %15195 ]
  store double %15197, ptr %431, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %432) #3
  %15198 = load double, ptr %430, align 8, !tbaa !11
  %15199 = load double, ptr %431, align 8, !tbaa !11
  %15200 = fcmp olt double %15198, %15199
  br i1 %15200, label %15201, label %15209

15201:                                            ; preds = %15196
  %15202 = load double, ptr %429, align 8, !tbaa !11
  %15203 = load double, ptr %428, align 8, !tbaa !11
  %15204 = fsub double %15202, %15203
  %15205 = load double, ptr %431, align 8, !tbaa !11
  %15206 = load double, ptr %430, align 8, !tbaa !11
  %15207 = fsub double %15205, %15206
  %15208 = fdiv double %15204, %15207
  br label %15210

15209:                                            ; preds = %15196
  br label %15210

15210:                                            ; preds = %15209, %15201
  %15211 = phi double [ %15208, %15201 ], [ 1.000000e+00, %15209 ]
  store double %15211, ptr %432, align 8, !tbaa !11
  %15212 = load double, ptr %432, align 8, !tbaa !11
  %15213 = load double, ptr %427, align 8, !tbaa !11
  %15214 = fcmp olt double 0.000000e+00, %15213
  br i1 %15214, label %15215, label %15217

15215:                                            ; preds = %15210
  %15216 = load double, ptr %427, align 8, !tbaa !11
  br label %15218

15217:                                            ; preds = %15210
  br label %15218

15218:                                            ; preds = %15217, %15215
  %15219 = phi double [ %15216, %15215 ], [ 0.000000e+00, %15217 ]
  %15220 = fmul double %15212, %15219
  store double %15220, ptr %427, align 8, !tbaa !11
  %15221 = load double, ptr %430, align 8, !tbaa !11
  store double %15221, ptr %428, align 8, !tbaa !11
  %15222 = load double, ptr %431, align 8, !tbaa !11
  store double %15222, ptr %429, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %432) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %431) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %430) #3
  br label %15279

15223:                                            ; preds = %15180
  %15224 = load i32, ptr %8, align 4, !tbaa !9
  %15225 = icmp ugt i32 6, %15224
  br i1 %15225, label %15254, label %15226

15226:                                            ; preds = %15223
  %15227 = load i32, ptr %8, align 4, !tbaa !9
  %15228 = icmp ugt i32 15, %15227
  br i1 %15228, label %15229, label %15240

15229:                                            ; preds = %15226
  %15230 = load i32, ptr %9, align 4, !tbaa !9
  %15231 = icmp ugt i32 15, %15230
  br i1 %15231, label %15232, label %15237

15232:                                            ; preds = %15229
  %15233 = load i32, ptr %9, align 4, !tbaa !9
  %15234 = load i32, ptr %8, align 4, !tbaa !9
  %15235 = icmp ugt i32 %15233, %15234
  %15236 = zext i1 %15235 to i32
  br label %15238

15237:                                            ; preds = %15229
  br label %15238

15238:                                            ; preds = %15237, %15232
  %15239 = phi i32 [ %15236, %15232 ], [ 0, %15237 ]
  br label %15251

15240:                                            ; preds = %15226
  %15241 = load i32, ptr %9, align 4, !tbaa !9
  %15242 = icmp ugt i32 15, %15241
  br i1 %15242, label %15243, label %15244

15243:                                            ; preds = %15240
  br label %15249

15244:                                            ; preds = %15240
  %15245 = load i32, ptr %9, align 4, !tbaa !9
  %15246 = load i32, ptr %8, align 4, !tbaa !9
  %15247 = icmp ugt i32 %15245, %15246
  %15248 = zext i1 %15247 to i32
  br label %15249

15249:                                            ; preds = %15244, %15243
  %15250 = phi i32 [ 0, %15243 ], [ %15248, %15244 ]
  br label %15251

15251:                                            ; preds = %15249, %15238
  %15252 = phi i32 [ %15239, %15238 ], [ %15250, %15249 ]
  %15253 = icmp ne i32 %15252, 0
  br label %15254

15254:                                            ; preds = %15251, %15223
  %15255 = phi i1 [ true, %15223 ], [ %15253, %15251 ]
  %15256 = zext i1 %15255 to i32
  %15257 = icmp eq i32 0, %15256
  br i1 %15257, label %15258, label %15278

15258:                                            ; preds = %15254
  %15259 = load double, ptr %428, align 8, !tbaa !11
  %15260 = fcmp ogt double 0.000000e+00, %15259
  br i1 %15260, label %15261, label %15278

15261:                                            ; preds = %15258
  %15262 = load double, ptr %429, align 8, !tbaa !11
  %15263 = fcmp olt double 0.000000e+00, %15262
  br i1 %15263, label %15264, label %15278

15264:                                            ; preds = %15261
  %15265 = load double, ptr %428, align 8, !tbaa !11
  %15266 = fneg double %15265
  %15267 = load double, ptr %429, align 8, !tbaa !11
  %15268 = fcmp olt double %15266, %15267
  br i1 %15268, label %15269, label %15271

15269:                                            ; preds = %15264
  %15270 = load double, ptr %429, align 8, !tbaa !11
  br label %15274

15271:                                            ; preds = %15264
  %15272 = load double, ptr %428, align 8, !tbaa !11
  %15273 = fneg double %15272
  br label %15274

15274:                                            ; preds = %15271, %15269
  %15275 = phi double [ %15270, %15269 ], [ %15273, %15271 ]
  store double %15275, ptr %429, align 8, !tbaa !11
  %15276 = load double, ptr %429, align 8, !tbaa !11
  %15277 = fneg double %15276
  store double %15277, ptr %428, align 8, !tbaa !11
  br label %15278

15278:                                            ; preds = %15274, %15261, %15258, %15254
  br label %15279

15279:                                            ; preds = %15278, %15218
  call void @llvm.lifetime.start.p0(i64 8, ptr %433) #3
  %15280 = load double, ptr %428, align 8, !tbaa !11
  %15281 = fcmp ole double 0.000000e+00, %15280
  %15282 = zext i1 %15281 to i64
  %15283 = select i1 %15281, double 0.000000e+00, double -1.000000e+00
  store double %15283, ptr %433, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %434) #3
  %15284 = load double, ptr %429, align 8, !tbaa !11
  %15285 = fcmp ole double 0.000000e+00, %15284
  %15286 = zext i1 %15285 to i64
  %15287 = select i1 %15285, double 1.000000e+00, double 0.000000e+00
  store double %15287, ptr %434, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %435) #3
  %15288 = load double, ptr %427, align 8, !tbaa !11
  %15289 = load double, ptr %428, align 8, !tbaa !11
  %15290 = fsub double %15288, %15289
  %15291 = load double, ptr %434, align 8, !tbaa !11
  %15292 = load double, ptr %433, align 8, !tbaa !11
  %15293 = fsub double %15291, %15292
  %15294 = fmul double %15290, %15293
  %15295 = load double, ptr %429, align 8, !tbaa !11
  %15296 = load double, ptr %428, align 8, !tbaa !11
  %15297 = fsub double %15295, %15296
  %15298 = fdiv double %15294, %15297
  %15299 = load double, ptr %433, align 8, !tbaa !11
  %15300 = fadd double %15298, %15299
  store double %15300, ptr %435, align 8, !tbaa !11
  %15301 = load double, ptr %433, align 8, !tbaa !11
  %15302 = load double, ptr %435, align 8, !tbaa !11
  %15303 = fcmp ole double 0.000000e+00, %15302
  br i1 %15303, label %15304, label %15307

15304:                                            ; preds = %15279
  %15305 = load double, ptr %435, align 8, !tbaa !11
  %15306 = fadd double %15305, 5.000000e-01
  br label %15310

15307:                                            ; preds = %15279
  %15308 = load double, ptr %435, align 8, !tbaa !11
  %15309 = fsub double %15308, 5.000000e-01
  br label %15310

15310:                                            ; preds = %15307, %15304
  %15311 = phi double [ %15306, %15304 ], [ %15309, %15307 ]
  %15312 = fcmp olt double %15301, %15311
  br i1 %15312, label %15313, label %15367

15313:                                            ; preds = %15310
  %15314 = load double, ptr %435, align 8, !tbaa !11
  %15315 = fcmp ole double 0.000000e+00, %15314
  br i1 %15315, label %15316, label %15319

15316:                                            ; preds = %15313
  %15317 = load double, ptr %435, align 8, !tbaa !11
  %15318 = fadd double %15317, 5.000000e-01
  br label %15322

15319:                                            ; preds = %15313
  %15320 = load double, ptr %435, align 8, !tbaa !11
  %15321 = fsub double %15320, 5.000000e-01
  br label %15322

15322:                                            ; preds = %15319, %15316
  %15323 = phi double [ %15318, %15316 ], [ %15321, %15319 ]
  %15324 = load double, ptr %434, align 8, !tbaa !11
  %15325 = fcmp ole double %15323, %15324
  br i1 %15325, label %15326, label %15337

15326:                                            ; preds = %15322
  %15327 = load double, ptr %435, align 8, !tbaa !11
  %15328 = fcmp ole double 0.000000e+00, %15327
  br i1 %15328, label %15329, label %15332

15329:                                            ; preds = %15326
  %15330 = load double, ptr %435, align 8, !tbaa !11
  %15331 = fadd double %15330, 5.000000e-01
  br label %15335

15332:                                            ; preds = %15326
  %15333 = load double, ptr %435, align 8, !tbaa !11
  %15334 = fsub double %15333, 5.000000e-01
  br label %15335

15335:                                            ; preds = %15332, %15329
  %15336 = phi double [ %15331, %15329 ], [ %15334, %15332 ]
  br label %15365

15337:                                            ; preds = %15322
  %15338 = load double, ptr %435, align 8, !tbaa !11
  %15339 = fcmp ole double 0.000000e+00, %15338
  br i1 %15339, label %15340, label %15343

15340:                                            ; preds = %15337
  %15341 = load double, ptr %435, align 8, !tbaa !11
  %15342 = fadd double %15341, 5.000000e-01
  br label %15346

15343:                                            ; preds = %15337
  %15344 = load double, ptr %435, align 8, !tbaa !11
  %15345 = fsub double %15344, 5.000000e-01
  br label %15346

15346:                                            ; preds = %15343, %15340
  %15347 = phi double [ %15342, %15340 ], [ %15345, %15343 ]
  %15348 = load double, ptr %434, align 8, !tbaa !11
  %15349 = fcmp olt double %15347, %15348
  br i1 %15349, label %15350, label %15361

15350:                                            ; preds = %15346
  %15351 = load double, ptr %435, align 8, !tbaa !11
  %15352 = fcmp ole double 0.000000e+00, %15351
  br i1 %15352, label %15353, label %15356

15353:                                            ; preds = %15350
  %15354 = load double, ptr %435, align 8, !tbaa !11
  %15355 = fadd double %15354, 5.000000e-01
  br label %15359

15356:                                            ; preds = %15350
  %15357 = load double, ptr %435, align 8, !tbaa !11
  %15358 = fsub double %15357, 5.000000e-01
  br label %15359

15359:                                            ; preds = %15356, %15353
  %15360 = phi double [ %15355, %15353 ], [ %15358, %15356 ]
  br label %15363

15361:                                            ; preds = %15346
  %15362 = load double, ptr %434, align 8, !tbaa !11
  br label %15363

15363:                                            ; preds = %15361, %15359
  %15364 = phi double [ %15360, %15359 ], [ %15362, %15361 ]
  br label %15365

15365:                                            ; preds = %15363, %15335
  %15366 = phi double [ %15336, %15335 ], [ %15364, %15363 ]
  br label %15395

15367:                                            ; preds = %15310
  %15368 = load double, ptr %433, align 8, !tbaa !11
  %15369 = load double, ptr %435, align 8, !tbaa !11
  %15370 = fcmp ole double 0.000000e+00, %15369
  br i1 %15370, label %15371, label %15374

15371:                                            ; preds = %15367
  %15372 = load double, ptr %435, align 8, !tbaa !11
  %15373 = fadd double %15372, 5.000000e-01
  br label %15377

15374:                                            ; preds = %15367
  %15375 = load double, ptr %435, align 8, !tbaa !11
  %15376 = fsub double %15375, 5.000000e-01
  br label %15377

15377:                                            ; preds = %15374, %15371
  %15378 = phi double [ %15373, %15371 ], [ %15376, %15374 ]
  %15379 = fcmp olt double %15368, %15378
  br i1 %15379, label %15380, label %15391

15380:                                            ; preds = %15377
  %15381 = load double, ptr %435, align 8, !tbaa !11
  %15382 = fcmp ole double 0.000000e+00, %15381
  br i1 %15382, label %15383, label %15386

15383:                                            ; preds = %15380
  %15384 = load double, ptr %435, align 8, !tbaa !11
  %15385 = fadd double %15384, 5.000000e-01
  br label %15389

15386:                                            ; preds = %15380
  %15387 = load double, ptr %435, align 8, !tbaa !11
  %15388 = fsub double %15387, 5.000000e-01
  br label %15389

15389:                                            ; preds = %15386, %15383
  %15390 = phi double [ %15385, %15383 ], [ %15388, %15386 ]
  br label %15393

15391:                                            ; preds = %15377
  %15392 = load double, ptr %433, align 8, !tbaa !11
  br label %15393

15393:                                            ; preds = %15391, %15389
  %15394 = phi double [ %15390, %15389 ], [ %15392, %15391 ]
  br label %15395

15395:                                            ; preds = %15393, %15365
  %15396 = phi double [ %15366, %15365 ], [ %15394, %15393 ]
  %15397 = fptoui double %15396 to i16
  %15398 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %15397, ptr %15398, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %435) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %434) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %433) #3
  br label %15525

15399:                                            ; preds = %15176, %15173
  %15400 = load i32, ptr %8, align 4, !tbaa !9
  %15401 = icmp ugt i32 6, %15400
  br i1 %15401, label %15430, label %15402

15402:                                            ; preds = %15399
  %15403 = load i32, ptr %8, align 4, !tbaa !9
  %15404 = icmp ugt i32 15, %15403
  br i1 %15404, label %15405, label %15416

15405:                                            ; preds = %15402
  %15406 = load i32, ptr %9, align 4, !tbaa !9
  %15407 = icmp ugt i32 15, %15406
  br i1 %15407, label %15408, label %15413

15408:                                            ; preds = %15405
  %15409 = load i32, ptr %9, align 4, !tbaa !9
  %15410 = load i32, ptr %8, align 4, !tbaa !9
  %15411 = icmp ugt i32 %15409, %15410
  %15412 = zext i1 %15411 to i32
  br label %15414

15413:                                            ; preds = %15405
  br label %15414

15414:                                            ; preds = %15413, %15408
  %15415 = phi i32 [ %15412, %15408 ], [ 0, %15413 ]
  br label %15427

15416:                                            ; preds = %15402
  %15417 = load i32, ptr %9, align 4, !tbaa !9
  %15418 = icmp ugt i32 15, %15417
  br i1 %15418, label %15419, label %15420

15419:                                            ; preds = %15416
  br label %15425

15420:                                            ; preds = %15416
  %15421 = load i32, ptr %9, align 4, !tbaa !9
  %15422 = load i32, ptr %8, align 4, !tbaa !9
  %15423 = icmp ugt i32 %15421, %15422
  %15424 = zext i1 %15423 to i32
  br label %15425

15425:                                            ; preds = %15420, %15419
  %15426 = phi i32 [ 0, %15419 ], [ %15424, %15420 ]
  br label %15427

15427:                                            ; preds = %15425, %15414
  %15428 = phi i32 [ %15415, %15414 ], [ %15426, %15425 ]
  %15429 = icmp ne i32 %15428, 0
  br label %15430

15430:                                            ; preds = %15427, %15399
  %15431 = phi i1 [ true, %15399 ], [ %15429, %15427 ]
  %15432 = zext i1 %15431 to i32
  %15433 = icmp eq i32 0, %15432
  br i1 %15433, label %15434, label %15511

15434:                                            ; preds = %15430
  %15435 = load double, ptr %427, align 8, !tbaa !11
  %15436 = fcmp ole double 0.000000e+00, %15435
  br i1 %15436, label %15437, label %15472

15437:                                            ; preds = %15434
  %15438 = load double, ptr %427, align 8, !tbaa !11
  %15439 = fadd double %15438, 5.000000e-01
  %15440 = fcmp olt double -1.000000e+00, %15439
  br i1 %15440, label %15441, label %15460

15441:                                            ; preds = %15437
  %15442 = load double, ptr %427, align 8, !tbaa !11
  %15443 = fadd double %15442, 5.000000e-01
  %15444 = fcmp ole double %15443, 1.000000e+00
  br i1 %15444, label %15445, label %15448

15445:                                            ; preds = %15441
  %15446 = load double, ptr %427, align 8, !tbaa !11
  %15447 = fadd double %15446, 5.000000e-01
  br label %15458

15448:                                            ; preds = %15441
  %15449 = load double, ptr %427, align 8, !tbaa !11
  %15450 = fadd double %15449, 5.000000e-01
  %15451 = fcmp olt double %15450, 1.000000e+00
  br i1 %15451, label %15452, label %15455

15452:                                            ; preds = %15448
  %15453 = load double, ptr %427, align 8, !tbaa !11
  %15454 = fadd double %15453, 5.000000e-01
  br label %15456

15455:                                            ; preds = %15448
  br label %15456

15456:                                            ; preds = %15455, %15452
  %15457 = phi double [ %15454, %15452 ], [ 1.000000e+00, %15455 ]
  br label %15458

15458:                                            ; preds = %15456, %15445
  %15459 = phi double [ %15447, %15445 ], [ %15457, %15456 ]
  br label %15470

15460:                                            ; preds = %15437
  %15461 = load double, ptr %427, align 8, !tbaa !11
  %15462 = fadd double %15461, 5.000000e-01
  %15463 = fcmp olt double -1.000000e+00, %15462
  br i1 %15463, label %15464, label %15467

15464:                                            ; preds = %15460
  %15465 = load double, ptr %427, align 8, !tbaa !11
  %15466 = fadd double %15465, 5.000000e-01
  br label %15468

15467:                                            ; preds = %15460
  br label %15468

15468:                                            ; preds = %15467, %15464
  %15469 = phi double [ %15466, %15464 ], [ -1.000000e+00, %15467 ]
  br label %15470

15470:                                            ; preds = %15468, %15458
  %15471 = phi double [ %15459, %15458 ], [ %15469, %15468 ]
  br label %15507

15472:                                            ; preds = %15434
  %15473 = load double, ptr %427, align 8, !tbaa !11
  %15474 = fsub double %15473, 5.000000e-01
  %15475 = fcmp olt double -1.000000e+00, %15474
  br i1 %15475, label %15476, label %15495

15476:                                            ; preds = %15472
  %15477 = load double, ptr %427, align 8, !tbaa !11
  %15478 = fsub double %15477, 5.000000e-01
  %15479 = fcmp ole double %15478, 1.000000e+00
  br i1 %15479, label %15480, label %15483

15480:                                            ; preds = %15476
  %15481 = load double, ptr %427, align 8, !tbaa !11
  %15482 = fsub double %15481, 5.000000e-01
  br label %15493

15483:                                            ; preds = %15476
  %15484 = load double, ptr %427, align 8, !tbaa !11
  %15485 = fsub double %15484, 5.000000e-01
  %15486 = fcmp olt double %15485, 1.000000e+00
  br i1 %15486, label %15487, label %15490

15487:                                            ; preds = %15483
  %15488 = load double, ptr %427, align 8, !tbaa !11
  %15489 = fsub double %15488, 5.000000e-01
  br label %15491

15490:                                            ; preds = %15483
  br label %15491

15491:                                            ; preds = %15490, %15487
  %15492 = phi double [ %15489, %15487 ], [ 1.000000e+00, %15490 ]
  br label %15493

15493:                                            ; preds = %15491, %15480
  %15494 = phi double [ %15482, %15480 ], [ %15492, %15491 ]
  br label %15505

15495:                                            ; preds = %15472
  %15496 = load double, ptr %427, align 8, !tbaa !11
  %15497 = fsub double %15496, 5.000000e-01
  %15498 = fcmp olt double -1.000000e+00, %15497
  br i1 %15498, label %15499, label %15502

15499:                                            ; preds = %15495
  %15500 = load double, ptr %427, align 8, !tbaa !11
  %15501 = fsub double %15500, 5.000000e-01
  br label %15503

15502:                                            ; preds = %15495
  br label %15503

15503:                                            ; preds = %15502, %15499
  %15504 = phi double [ %15501, %15499 ], [ -1.000000e+00, %15502 ]
  br label %15505

15505:                                            ; preds = %15503, %15493
  %15506 = phi double [ %15494, %15493 ], [ %15504, %15503 ]
  br label %15507

15507:                                            ; preds = %15505, %15470
  %15508 = phi double [ %15471, %15470 ], [ %15506, %15505 ]
  %15509 = fptoui double %15508 to i16
  %15510 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %15509, ptr %15510, align 2, !tbaa !15
  br label %15524

15511:                                            ; preds = %15430
  %15512 = load double, ptr %427, align 8, !tbaa !11
  %15513 = fcmp ole double 0.000000e+00, %15512
  br i1 %15513, label %15514, label %15517

15514:                                            ; preds = %15511
  %15515 = load double, ptr %427, align 8, !tbaa !11
  %15516 = fadd double %15515, 5.000000e-01
  br label %15520

15517:                                            ; preds = %15511
  %15518 = load double, ptr %427, align 8, !tbaa !11
  %15519 = fsub double %15518, 5.000000e-01
  br label %15520

15520:                                            ; preds = %15517, %15514
  %15521 = phi double [ %15516, %15514 ], [ %15519, %15517 ]
  %15522 = fptoui double %15521 to i16
  %15523 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %15522, ptr %15523, align 2, !tbaa !15
  br label %15524

15524:                                            ; preds = %15520, %15507
  br label %15525

15525:                                            ; preds = %15524, %15395
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %429) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %428) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %427) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %426) #3
  br label %15526

15526:                                            ; preds = %15525
  br label %15527

15527:                                            ; preds = %15526
  br label %15938

15528:                                            ; preds = %12315
  br label %15529

15529:                                            ; preds = %15528
  call void @llvm.lifetime.start.p0(i64 8, ptr %436) #3
  store double 5.000000e-01, ptr %436, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %437) #3
  %15530 = load ptr, ptr %10, align 8, !tbaa !5
  %15531 = load float, ptr %15530, align 4, !tbaa !18
  store float %15531, ptr %437, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %438) #3
  store double 0.000000e+00, ptr %438, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %439) #3
  store double 0.000000e+00, ptr %439, align 8, !tbaa !11
  %15532 = load ptr, ptr %11, align 8, !tbaa !5
  %15533 = icmp ne ptr null, %15532
  br i1 %15533, label %15534, label %15560

15534:                                            ; preds = %15529
  %15535 = load float, ptr %437, align 4, !tbaa !18
  %15536 = load float, ptr %437, align 4, !tbaa !18
  %15537 = fcmp oeq float %15535, %15536
  br i1 %15537, label %15538, label %15560

15538:                                            ; preds = %15534
  %15539 = load ptr, ptr %12, align 8, !tbaa !5
  %15540 = icmp ne ptr null, %15539
  br i1 %15540, label %15541, label %15552

15541:                                            ; preds = %15538
  %15542 = load ptr, ptr %11, align 8, !tbaa !5
  %15543 = load float, ptr %15542, align 4, !tbaa !18
  %15544 = load float, ptr %437, align 4, !tbaa !18
  %15545 = fcmp ole float %15543, %15544
  br i1 %15545, label %15546, label %15552

15546:                                            ; preds = %15541
  %15547 = load float, ptr %437, align 4, !tbaa !18
  %15548 = load ptr, ptr %12, align 8, !tbaa !5
  %15549 = load float, ptr %15548, align 4, !tbaa !18
  %15550 = fcmp ole float %15547, %15549
  br i1 %15550, label %15551, label %15552

15551:                                            ; preds = %15546
  br label %15553

15552:                                            ; preds = %15546, %15541, %15538
  call void @__assert_fail(ptr noundef @.str.51, ptr noundef @.str.24, i32 noundef 476, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

15553:                                            ; preds = %15551
  %15554 = load ptr, ptr %11, align 8, !tbaa !5
  %15555 = load float, ptr %15554, align 4, !tbaa !18
  %15556 = fpext float %15555 to double
  store double %15556, ptr %438, align 8, !tbaa !11
  %15557 = load ptr, ptr %12, align 8, !tbaa !5
  %15558 = load float, ptr %15557, align 4, !tbaa !18
  %15559 = fpext float %15558 to double
  store double %15559, ptr %439, align 8, !tbaa !11
  br label %15560

15560:                                            ; preds = %15553, %15534, %15529
  %15561 = load i32, ptr %8, align 4, !tbaa !9
  %15562 = icmp ule i32 6, %15561
  br i1 %15562, label %15563, label %15789

15563:                                            ; preds = %15560
  %15564 = load double, ptr %438, align 8, !tbaa !11
  %15565 = load double, ptr %439, align 8, !tbaa !11
  %15566 = fcmp olt double %15564, %15565
  br i1 %15566, label %15567, label %15789

15567:                                            ; preds = %15563
  %15568 = load i32, ptr %8, align 4, !tbaa !9
  %15569 = icmp ule i32 15, %15568
  br i1 %15569, label %15570, label %15612

15570:                                            ; preds = %15567
  call void @llvm.lifetime.start.p0(i64 8, ptr %440) #3
  %15571 = load double, ptr %438, align 8, !tbaa !11
  %15572 = fcmp olt double 0.000000e+00, %15571
  br i1 %15572, label %15573, label %15575

15573:                                            ; preds = %15570
  %15574 = load double, ptr %438, align 8, !tbaa !11
  br label %15576

15575:                                            ; preds = %15570
  br label %15576

15576:                                            ; preds = %15575, %15573
  %15577 = phi double [ %15574, %15573 ], [ 0.000000e+00, %15575 ]
  store double %15577, ptr %440, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %441) #3
  %15578 = load double, ptr %439, align 8, !tbaa !11
  %15579 = fcmp olt double 0.000000e+00, %15578
  br i1 %15579, label %15580, label %15582

15580:                                            ; preds = %15576
  %15581 = load double, ptr %439, align 8, !tbaa !11
  br label %15583

15582:                                            ; preds = %15576
  br label %15583

15583:                                            ; preds = %15582, %15580
  %15584 = phi double [ %15581, %15580 ], [ 0.000000e+00, %15582 ]
  store double %15584, ptr %441, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %442) #3
  %15585 = load double, ptr %440, align 8, !tbaa !11
  %15586 = load double, ptr %441, align 8, !tbaa !11
  %15587 = fcmp olt double %15585, %15586
  br i1 %15587, label %15588, label %15596

15588:                                            ; preds = %15583
  %15589 = load double, ptr %439, align 8, !tbaa !11
  %15590 = load double, ptr %438, align 8, !tbaa !11
  %15591 = fsub double %15589, %15590
  %15592 = load double, ptr %441, align 8, !tbaa !11
  %15593 = load double, ptr %440, align 8, !tbaa !11
  %15594 = fsub double %15592, %15593
  %15595 = fdiv double %15591, %15594
  br label %15597

15596:                                            ; preds = %15583
  br label %15597

15597:                                            ; preds = %15596, %15588
  %15598 = phi double [ %15595, %15588 ], [ 1.000000e+00, %15596 ]
  store double %15598, ptr %442, align 8, !tbaa !11
  %15599 = load double, ptr %442, align 8, !tbaa !11
  %15600 = load float, ptr %437, align 4, !tbaa !18
  %15601 = fcmp olt float 0.000000e+00, %15600
  br i1 %15601, label %15602, label %15604

15602:                                            ; preds = %15597
  %15603 = load float, ptr %437, align 4, !tbaa !18
  br label %15605

15604:                                            ; preds = %15597
  br label %15605

15605:                                            ; preds = %15604, %15602
  %15606 = phi float [ %15603, %15602 ], [ 0.000000e+00, %15604 ]
  %15607 = fpext float %15606 to double
  %15608 = fmul double %15599, %15607
  %15609 = fptrunc double %15608 to float
  store float %15609, ptr %437, align 4, !tbaa !18
  %15610 = load double, ptr %440, align 8, !tbaa !11
  store double %15610, ptr %438, align 8, !tbaa !11
  %15611 = load double, ptr %441, align 8, !tbaa !11
  store double %15611, ptr %439, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %442) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %441) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %440) #3
  br label %15668

15612:                                            ; preds = %15567
  %15613 = load i32, ptr %8, align 4, !tbaa !9
  %15614 = icmp ugt i32 6, %15613
  br i1 %15614, label %15643, label %15615

15615:                                            ; preds = %15612
  %15616 = load i32, ptr %8, align 4, !tbaa !9
  %15617 = icmp ugt i32 15, %15616
  br i1 %15617, label %15618, label %15629

15618:                                            ; preds = %15615
  %15619 = load i32, ptr %9, align 4, !tbaa !9
  %15620 = icmp ugt i32 15, %15619
  br i1 %15620, label %15621, label %15626

15621:                                            ; preds = %15618
  %15622 = load i32, ptr %9, align 4, !tbaa !9
  %15623 = load i32, ptr %8, align 4, !tbaa !9
  %15624 = icmp ugt i32 %15622, %15623
  %15625 = zext i1 %15624 to i32
  br label %15627

15626:                                            ; preds = %15618
  br label %15627

15627:                                            ; preds = %15626, %15621
  %15628 = phi i32 [ %15625, %15621 ], [ 0, %15626 ]
  br label %15640

15629:                                            ; preds = %15615
  %15630 = load i32, ptr %9, align 4, !tbaa !9
  %15631 = icmp ugt i32 15, %15630
  br i1 %15631, label %15632, label %15633

15632:                                            ; preds = %15629
  br label %15638

15633:                                            ; preds = %15629
  %15634 = load i32, ptr %9, align 4, !tbaa !9
  %15635 = load i32, ptr %8, align 4, !tbaa !9
  %15636 = icmp ugt i32 %15634, %15635
  %15637 = zext i1 %15636 to i32
  br label %15638

15638:                                            ; preds = %15633, %15632
  %15639 = phi i32 [ 0, %15632 ], [ %15637, %15633 ]
  br label %15640

15640:                                            ; preds = %15638, %15627
  %15641 = phi i32 [ %15628, %15627 ], [ %15639, %15638 ]
  %15642 = icmp ne i32 %15641, 0
  br label %15643

15643:                                            ; preds = %15640, %15612
  %15644 = phi i1 [ true, %15612 ], [ %15642, %15640 ]
  %15645 = zext i1 %15644 to i32
  %15646 = icmp eq i32 0, %15645
  br i1 %15646, label %15647, label %15667

15647:                                            ; preds = %15643
  %15648 = load double, ptr %438, align 8, !tbaa !11
  %15649 = fcmp ogt double 0.000000e+00, %15648
  br i1 %15649, label %15650, label %15667

15650:                                            ; preds = %15647
  %15651 = load double, ptr %439, align 8, !tbaa !11
  %15652 = fcmp olt double 0.000000e+00, %15651
  br i1 %15652, label %15653, label %15667

15653:                                            ; preds = %15650
  %15654 = load double, ptr %438, align 8, !tbaa !11
  %15655 = fneg double %15654
  %15656 = load double, ptr %439, align 8, !tbaa !11
  %15657 = fcmp olt double %15655, %15656
  br i1 %15657, label %15658, label %15660

15658:                                            ; preds = %15653
  %15659 = load double, ptr %439, align 8, !tbaa !11
  br label %15663

15660:                                            ; preds = %15653
  %15661 = load double, ptr %438, align 8, !tbaa !11
  %15662 = fneg double %15661
  br label %15663

15663:                                            ; preds = %15660, %15658
  %15664 = phi double [ %15659, %15658 ], [ %15662, %15660 ]
  store double %15664, ptr %439, align 8, !tbaa !11
  %15665 = load double, ptr %439, align 8, !tbaa !11
  %15666 = fneg double %15665
  store double %15666, ptr %438, align 8, !tbaa !11
  br label %15667

15667:                                            ; preds = %15663, %15650, %15647, %15643
  br label %15668

15668:                                            ; preds = %15667, %15605
  call void @llvm.lifetime.start.p0(i64 8, ptr %443) #3
  %15669 = load double, ptr %438, align 8, !tbaa !11
  %15670 = fcmp ole double 0.000000e+00, %15669
  %15671 = zext i1 %15670 to i64
  %15672 = select i1 %15670, double 0.000000e+00, double -1.000000e+00
  store double %15672, ptr %443, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %444) #3
  %15673 = load double, ptr %439, align 8, !tbaa !11
  %15674 = fcmp ole double 0.000000e+00, %15673
  %15675 = zext i1 %15674 to i64
  %15676 = select i1 %15674, double 1.000000e+00, double 0.000000e+00
  store double %15676, ptr %444, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %445) #3
  %15677 = load float, ptr %437, align 4, !tbaa !18
  %15678 = fpext float %15677 to double
  %15679 = load double, ptr %438, align 8, !tbaa !11
  %15680 = fsub double %15678, %15679
  %15681 = load double, ptr %444, align 8, !tbaa !11
  %15682 = load double, ptr %443, align 8, !tbaa !11
  %15683 = fsub double %15681, %15682
  %15684 = fmul double %15680, %15683
  %15685 = load double, ptr %439, align 8, !tbaa !11
  %15686 = load double, ptr %438, align 8, !tbaa !11
  %15687 = fsub double %15685, %15686
  %15688 = fdiv double %15684, %15687
  %15689 = load double, ptr %443, align 8, !tbaa !11
  %15690 = fadd double %15688, %15689
  store double %15690, ptr %445, align 8, !tbaa !11
  %15691 = load double, ptr %443, align 8, !tbaa !11
  %15692 = load double, ptr %445, align 8, !tbaa !11
  %15693 = fcmp ole double 0.000000e+00, %15692
  br i1 %15693, label %15694, label %15697

15694:                                            ; preds = %15668
  %15695 = load double, ptr %445, align 8, !tbaa !11
  %15696 = fadd double %15695, 5.000000e-01
  br label %15700

15697:                                            ; preds = %15668
  %15698 = load double, ptr %445, align 8, !tbaa !11
  %15699 = fsub double %15698, 5.000000e-01
  br label %15700

15700:                                            ; preds = %15697, %15694
  %15701 = phi double [ %15696, %15694 ], [ %15699, %15697 ]
  %15702 = fcmp olt double %15691, %15701
  br i1 %15702, label %15703, label %15757

15703:                                            ; preds = %15700
  %15704 = load double, ptr %445, align 8, !tbaa !11
  %15705 = fcmp ole double 0.000000e+00, %15704
  br i1 %15705, label %15706, label %15709

15706:                                            ; preds = %15703
  %15707 = load double, ptr %445, align 8, !tbaa !11
  %15708 = fadd double %15707, 5.000000e-01
  br label %15712

15709:                                            ; preds = %15703
  %15710 = load double, ptr %445, align 8, !tbaa !11
  %15711 = fsub double %15710, 5.000000e-01
  br label %15712

15712:                                            ; preds = %15709, %15706
  %15713 = phi double [ %15708, %15706 ], [ %15711, %15709 ]
  %15714 = load double, ptr %444, align 8, !tbaa !11
  %15715 = fcmp ole double %15713, %15714
  br i1 %15715, label %15716, label %15727

15716:                                            ; preds = %15712
  %15717 = load double, ptr %445, align 8, !tbaa !11
  %15718 = fcmp ole double 0.000000e+00, %15717
  br i1 %15718, label %15719, label %15722

15719:                                            ; preds = %15716
  %15720 = load double, ptr %445, align 8, !tbaa !11
  %15721 = fadd double %15720, 5.000000e-01
  br label %15725

15722:                                            ; preds = %15716
  %15723 = load double, ptr %445, align 8, !tbaa !11
  %15724 = fsub double %15723, 5.000000e-01
  br label %15725

15725:                                            ; preds = %15722, %15719
  %15726 = phi double [ %15721, %15719 ], [ %15724, %15722 ]
  br label %15755

15727:                                            ; preds = %15712
  %15728 = load double, ptr %445, align 8, !tbaa !11
  %15729 = fcmp ole double 0.000000e+00, %15728
  br i1 %15729, label %15730, label %15733

15730:                                            ; preds = %15727
  %15731 = load double, ptr %445, align 8, !tbaa !11
  %15732 = fadd double %15731, 5.000000e-01
  br label %15736

15733:                                            ; preds = %15727
  %15734 = load double, ptr %445, align 8, !tbaa !11
  %15735 = fsub double %15734, 5.000000e-01
  br label %15736

15736:                                            ; preds = %15733, %15730
  %15737 = phi double [ %15732, %15730 ], [ %15735, %15733 ]
  %15738 = load double, ptr %444, align 8, !tbaa !11
  %15739 = fcmp olt double %15737, %15738
  br i1 %15739, label %15740, label %15751

15740:                                            ; preds = %15736
  %15741 = load double, ptr %445, align 8, !tbaa !11
  %15742 = fcmp ole double 0.000000e+00, %15741
  br i1 %15742, label %15743, label %15746

15743:                                            ; preds = %15740
  %15744 = load double, ptr %445, align 8, !tbaa !11
  %15745 = fadd double %15744, 5.000000e-01
  br label %15749

15746:                                            ; preds = %15740
  %15747 = load double, ptr %445, align 8, !tbaa !11
  %15748 = fsub double %15747, 5.000000e-01
  br label %15749

15749:                                            ; preds = %15746, %15743
  %15750 = phi double [ %15745, %15743 ], [ %15748, %15746 ]
  br label %15753

15751:                                            ; preds = %15736
  %15752 = load double, ptr %444, align 8, !tbaa !11
  br label %15753

15753:                                            ; preds = %15751, %15749
  %15754 = phi double [ %15750, %15749 ], [ %15752, %15751 ]
  br label %15755

15755:                                            ; preds = %15753, %15725
  %15756 = phi double [ %15726, %15725 ], [ %15754, %15753 ]
  br label %15785

15757:                                            ; preds = %15700
  %15758 = load double, ptr %443, align 8, !tbaa !11
  %15759 = load double, ptr %445, align 8, !tbaa !11
  %15760 = fcmp ole double 0.000000e+00, %15759
  br i1 %15760, label %15761, label %15764

15761:                                            ; preds = %15757
  %15762 = load double, ptr %445, align 8, !tbaa !11
  %15763 = fadd double %15762, 5.000000e-01
  br label %15767

15764:                                            ; preds = %15757
  %15765 = load double, ptr %445, align 8, !tbaa !11
  %15766 = fsub double %15765, 5.000000e-01
  br label %15767

15767:                                            ; preds = %15764, %15761
  %15768 = phi double [ %15763, %15761 ], [ %15766, %15764 ]
  %15769 = fcmp olt double %15758, %15768
  br i1 %15769, label %15770, label %15781

15770:                                            ; preds = %15767
  %15771 = load double, ptr %445, align 8, !tbaa !11
  %15772 = fcmp ole double 0.000000e+00, %15771
  br i1 %15772, label %15773, label %15776

15773:                                            ; preds = %15770
  %15774 = load double, ptr %445, align 8, !tbaa !11
  %15775 = fadd double %15774, 5.000000e-01
  br label %15779

15776:                                            ; preds = %15770
  %15777 = load double, ptr %445, align 8, !tbaa !11
  %15778 = fsub double %15777, 5.000000e-01
  br label %15779

15779:                                            ; preds = %15776, %15773
  %15780 = phi double [ %15775, %15773 ], [ %15778, %15776 ]
  br label %15783

15781:                                            ; preds = %15767
  %15782 = load double, ptr %443, align 8, !tbaa !11
  br label %15783

15783:                                            ; preds = %15781, %15779
  %15784 = phi double [ %15780, %15779 ], [ %15782, %15781 ]
  br label %15785

15785:                                            ; preds = %15783, %15755
  %15786 = phi double [ %15756, %15755 ], [ %15784, %15783 ]
  %15787 = fptoui double %15786 to i16
  %15788 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %15787, ptr %15788, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %445) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %444) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %443) #3
  br label %15931

15789:                                            ; preds = %15563, %15560
  %15790 = load i32, ptr %8, align 4, !tbaa !9
  %15791 = icmp ugt i32 6, %15790
  br i1 %15791, label %15820, label %15792

15792:                                            ; preds = %15789
  %15793 = load i32, ptr %8, align 4, !tbaa !9
  %15794 = icmp ugt i32 15, %15793
  br i1 %15794, label %15795, label %15806

15795:                                            ; preds = %15792
  %15796 = load i32, ptr %9, align 4, !tbaa !9
  %15797 = icmp ugt i32 15, %15796
  br i1 %15797, label %15798, label %15803

15798:                                            ; preds = %15795
  %15799 = load i32, ptr %9, align 4, !tbaa !9
  %15800 = load i32, ptr %8, align 4, !tbaa !9
  %15801 = icmp ugt i32 %15799, %15800
  %15802 = zext i1 %15801 to i32
  br label %15804

15803:                                            ; preds = %15795
  br label %15804

15804:                                            ; preds = %15803, %15798
  %15805 = phi i32 [ %15802, %15798 ], [ 0, %15803 ]
  br label %15817

15806:                                            ; preds = %15792
  %15807 = load i32, ptr %9, align 4, !tbaa !9
  %15808 = icmp ugt i32 15, %15807
  br i1 %15808, label %15809, label %15810

15809:                                            ; preds = %15806
  br label %15815

15810:                                            ; preds = %15806
  %15811 = load i32, ptr %9, align 4, !tbaa !9
  %15812 = load i32, ptr %8, align 4, !tbaa !9
  %15813 = icmp ugt i32 %15811, %15812
  %15814 = zext i1 %15813 to i32
  br label %15815

15815:                                            ; preds = %15810, %15809
  %15816 = phi i32 [ 0, %15809 ], [ %15814, %15810 ]
  br label %15817

15817:                                            ; preds = %15815, %15804
  %15818 = phi i32 [ %15805, %15804 ], [ %15816, %15815 ]
  %15819 = icmp ne i32 %15818, 0
  br label %15820

15820:                                            ; preds = %15817, %15789
  %15821 = phi i1 [ true, %15789 ], [ %15819, %15817 ]
  %15822 = zext i1 %15821 to i32
  %15823 = icmp eq i32 0, %15822
  br i1 %15823, label %15824, label %15915

15824:                                            ; preds = %15820
  %15825 = load float, ptr %437, align 4, !tbaa !18
  %15826 = fcmp ole float 0.000000e+00, %15825
  br i1 %15826, label %15827, label %15869

15827:                                            ; preds = %15824
  %15828 = load float, ptr %437, align 4, !tbaa !18
  %15829 = fpext float %15828 to double
  %15830 = fadd double %15829, 5.000000e-01
  %15831 = fcmp olt double -1.000000e+00, %15830
  br i1 %15831, label %15832, label %15855

15832:                                            ; preds = %15827
  %15833 = load float, ptr %437, align 4, !tbaa !18
  %15834 = fpext float %15833 to double
  %15835 = fadd double %15834, 5.000000e-01
  %15836 = fcmp ole double %15835, 1.000000e+00
  br i1 %15836, label %15837, label %15841

15837:                                            ; preds = %15832
  %15838 = load float, ptr %437, align 4, !tbaa !18
  %15839 = fpext float %15838 to double
  %15840 = fadd double %15839, 5.000000e-01
  br label %15853

15841:                                            ; preds = %15832
  %15842 = load float, ptr %437, align 4, !tbaa !18
  %15843 = fpext float %15842 to double
  %15844 = fadd double %15843, 5.000000e-01
  %15845 = fcmp olt double %15844, 1.000000e+00
  br i1 %15845, label %15846, label %15850

15846:                                            ; preds = %15841
  %15847 = load float, ptr %437, align 4, !tbaa !18
  %15848 = fpext float %15847 to double
  %15849 = fadd double %15848, 5.000000e-01
  br label %15851

15850:                                            ; preds = %15841
  br label %15851

15851:                                            ; preds = %15850, %15846
  %15852 = phi double [ %15849, %15846 ], [ 1.000000e+00, %15850 ]
  br label %15853

15853:                                            ; preds = %15851, %15837
  %15854 = phi double [ %15840, %15837 ], [ %15852, %15851 ]
  br label %15867

15855:                                            ; preds = %15827
  %15856 = load float, ptr %437, align 4, !tbaa !18
  %15857 = fpext float %15856 to double
  %15858 = fadd double %15857, 5.000000e-01
  %15859 = fcmp olt double -1.000000e+00, %15858
  br i1 %15859, label %15860, label %15864

15860:                                            ; preds = %15855
  %15861 = load float, ptr %437, align 4, !tbaa !18
  %15862 = fpext float %15861 to double
  %15863 = fadd double %15862, 5.000000e-01
  br label %15865

15864:                                            ; preds = %15855
  br label %15865

15865:                                            ; preds = %15864, %15860
  %15866 = phi double [ %15863, %15860 ], [ -1.000000e+00, %15864 ]
  br label %15867

15867:                                            ; preds = %15865, %15853
  %15868 = phi double [ %15854, %15853 ], [ %15866, %15865 ]
  br label %15911

15869:                                            ; preds = %15824
  %15870 = load float, ptr %437, align 4, !tbaa !18
  %15871 = fpext float %15870 to double
  %15872 = fsub double %15871, 5.000000e-01
  %15873 = fcmp olt double -1.000000e+00, %15872
  br i1 %15873, label %15874, label %15897

15874:                                            ; preds = %15869
  %15875 = load float, ptr %437, align 4, !tbaa !18
  %15876 = fpext float %15875 to double
  %15877 = fsub double %15876, 5.000000e-01
  %15878 = fcmp ole double %15877, 1.000000e+00
  br i1 %15878, label %15879, label %15883

15879:                                            ; preds = %15874
  %15880 = load float, ptr %437, align 4, !tbaa !18
  %15881 = fpext float %15880 to double
  %15882 = fsub double %15881, 5.000000e-01
  br label %15895

15883:                                            ; preds = %15874
  %15884 = load float, ptr %437, align 4, !tbaa !18
  %15885 = fpext float %15884 to double
  %15886 = fsub double %15885, 5.000000e-01
  %15887 = fcmp olt double %15886, 1.000000e+00
  br i1 %15887, label %15888, label %15892

15888:                                            ; preds = %15883
  %15889 = load float, ptr %437, align 4, !tbaa !18
  %15890 = fpext float %15889 to double
  %15891 = fsub double %15890, 5.000000e-01
  br label %15893

15892:                                            ; preds = %15883
  br label %15893

15893:                                            ; preds = %15892, %15888
  %15894 = phi double [ %15891, %15888 ], [ 1.000000e+00, %15892 ]
  br label %15895

15895:                                            ; preds = %15893, %15879
  %15896 = phi double [ %15882, %15879 ], [ %15894, %15893 ]
  br label %15909

15897:                                            ; preds = %15869
  %15898 = load float, ptr %437, align 4, !tbaa !18
  %15899 = fpext float %15898 to double
  %15900 = fsub double %15899, 5.000000e-01
  %15901 = fcmp olt double -1.000000e+00, %15900
  br i1 %15901, label %15902, label %15906

15902:                                            ; preds = %15897
  %15903 = load float, ptr %437, align 4, !tbaa !18
  %15904 = fpext float %15903 to double
  %15905 = fsub double %15904, 5.000000e-01
  br label %15907

15906:                                            ; preds = %15897
  br label %15907

15907:                                            ; preds = %15906, %15902
  %15908 = phi double [ %15905, %15902 ], [ -1.000000e+00, %15906 ]
  br label %15909

15909:                                            ; preds = %15907, %15895
  %15910 = phi double [ %15896, %15895 ], [ %15908, %15907 ]
  br label %15911

15911:                                            ; preds = %15909, %15867
  %15912 = phi double [ %15868, %15867 ], [ %15910, %15909 ]
  %15913 = fptoui double %15912 to i16
  %15914 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %15913, ptr %15914, align 2, !tbaa !15
  br label %15930

15915:                                            ; preds = %15820
  %15916 = load float, ptr %437, align 4, !tbaa !18
  %15917 = fcmp ole float 0.000000e+00, %15916
  br i1 %15917, label %15918, label %15922

15918:                                            ; preds = %15915
  %15919 = load float, ptr %437, align 4, !tbaa !18
  %15920 = fpext float %15919 to double
  %15921 = fadd double %15920, 5.000000e-01
  br label %15926

15922:                                            ; preds = %15915
  %15923 = load float, ptr %437, align 4, !tbaa !18
  %15924 = fpext float %15923 to double
  %15925 = fsub double %15924, 5.000000e-01
  br label %15926

15926:                                            ; preds = %15922, %15918
  %15927 = phi double [ %15921, %15918 ], [ %15925, %15922 ]
  %15928 = fptoui double %15927 to i16
  %15929 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %15928, ptr %15929, align 2, !tbaa !15
  br label %15930

15930:                                            ; preds = %15926, %15911
  br label %15931

15931:                                            ; preds = %15930, %15785
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %439) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %438) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %437) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %436) #3
  br label %15932

15932:                                            ; preds = %15931
  br label %15933

15933:                                            ; preds = %15932
  br label %15938

15934:                                            ; preds = %12315
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 476, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

15935:                                            ; preds = %12315
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 476, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

15936:                                            ; preds = %12315
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 476, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

15937:                                            ; preds = %12315
  store i32 1, ptr %13, align 4, !tbaa !9
  br label %15938

15938:                                            ; preds = %15937, %15933, %15527, %15142, %14782, %14423, %14076, %13729, %13369, %13010, %12663
  br label %15939

15939:                                            ; preds = %15938
  br label %15940

15940:                                            ; preds = %15939
  br label %48657

15941:                                            ; preds = %6
  br label %15942

15942:                                            ; preds = %15941
  %15943 = load ptr, ptr %7, align 8, !tbaa !5
  %15944 = icmp ne ptr null, %15943
  br i1 %15944, label %15945, label %15949

15945:                                            ; preds = %15942
  %15946 = load ptr, ptr %10, align 8, !tbaa !5
  %15947 = icmp ne ptr null, %15946
  br i1 %15947, label %15948, label %15949

15948:                                            ; preds = %15945
  br label %15950

15949:                                            ; preds = %15945, %15942
  call void @__assert_fail(ptr noundef @.str.41, ptr noundef @.str.24, i32 noundef 479, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

15950:                                            ; preds = %15948
  %15951 = load i32, ptr %9, align 4, !tbaa !9
  switch i32 %15951, label %19572 [
    i32 6, label %15952
    i32 8, label %16299
    i32 10, label %16646
    i32 12, label %17006
    i32 15, label %17365
    i32 16, label %17712
    i32 17, label %18059
    i32 18, label %18419
    i32 0, label %18778
    i32 1, label %19163
    i32 3, label %19569
    i32 2, label %19570
    i32 4, label %19571
  ]

15952:                                            ; preds = %15950
  br label %15953

15953:                                            ; preds = %15952
  call void @llvm.lifetime.start.p0(i64 8, ptr %446) #3
  store double 5.000000e-01, ptr %446, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %447) #3
  %15954 = load ptr, ptr %10, align 8, !tbaa !5
  %15955 = load i64, ptr %15954, align 8, !tbaa !13
  store i64 %15955, ptr %447, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %448) #3
  store double 0.000000e+00, ptr %448, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %449) #3
  store double 0.000000e+00, ptr %449, align 8, !tbaa !11
  %15956 = load ptr, ptr %11, align 8, !tbaa !5
  %15957 = icmp ne ptr null, %15956
  br i1 %15957, label %15958, label %15980

15958:                                            ; preds = %15953
  %15959 = load ptr, ptr %12, align 8, !tbaa !5
  %15960 = icmp ne ptr null, %15959
  br i1 %15960, label %15961, label %15972

15961:                                            ; preds = %15958
  %15962 = load ptr, ptr %11, align 8, !tbaa !5
  %15963 = load i64, ptr %15962, align 8, !tbaa !13
  %15964 = load i64, ptr %447, align 8, !tbaa !13
  %15965 = icmp sle i64 %15963, %15964
  br i1 %15965, label %15966, label %15972

15966:                                            ; preds = %15961
  %15967 = load i64, ptr %447, align 8, !tbaa !13
  %15968 = load ptr, ptr %12, align 8, !tbaa !5
  %15969 = load i64, ptr %15968, align 8, !tbaa !13
  %15970 = icmp sle i64 %15967, %15969
  br i1 %15970, label %15971, label %15972

15971:                                            ; preds = %15966
  br label %15973

15972:                                            ; preds = %15966, %15961, %15958
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.24, i32 noundef 479, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

15973:                                            ; preds = %15971
  %15974 = load ptr, ptr %11, align 8, !tbaa !5
  %15975 = load i64, ptr %15974, align 8, !tbaa !13
  %15976 = sitofp i64 %15975 to double
  store double %15976, ptr %448, align 8, !tbaa !11
  %15977 = load ptr, ptr %12, align 8, !tbaa !5
  %15978 = load i64, ptr %15977, align 8, !tbaa !13
  %15979 = sitofp i64 %15978 to double
  store double %15979, ptr %449, align 8, !tbaa !11
  br label %15980

15980:                                            ; preds = %15973, %15953
  %15981 = load i32, ptr %8, align 4, !tbaa !9
  %15982 = icmp ule i32 6, %15981
  br i1 %15982, label %15983, label %16219

15983:                                            ; preds = %15980
  %15984 = load double, ptr %448, align 8, !tbaa !11
  %15985 = load double, ptr %449, align 8, !tbaa !11
  %15986 = fcmp olt double %15984, %15985
  br i1 %15986, label %15987, label %16219

15987:                                            ; preds = %15983
  %15988 = load i32, ptr %8, align 4, !tbaa !9
  %15989 = icmp ule i32 15, %15988
  br i1 %15989, label %15990, label %16042

15990:                                            ; preds = %15987
  call void @llvm.lifetime.start.p0(i64 8, ptr %450) #3
  %15991 = load double, ptr %448, align 8, !tbaa !11
  %15992 = fcmp olt double 0.000000e+00, %15991
  br i1 %15992, label %15993, label %15995

15993:                                            ; preds = %15990
  %15994 = load double, ptr %448, align 8, !tbaa !11
  br label %15996

15995:                                            ; preds = %15990
  br label %15996

15996:                                            ; preds = %15995, %15993
  %15997 = phi double [ %15994, %15993 ], [ 0.000000e+00, %15995 ]
  store double %15997, ptr %450, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %451) #3
  %15998 = load double, ptr %449, align 8, !tbaa !11
  %15999 = fcmp olt double 0.000000e+00, %15998
  br i1 %15999, label %16000, label %16002

16000:                                            ; preds = %15996
  %16001 = load double, ptr %449, align 8, !tbaa !11
  br label %16003

16002:                                            ; preds = %15996
  br label %16003

16003:                                            ; preds = %16002, %16000
  %16004 = phi double [ %16001, %16000 ], [ 0.000000e+00, %16002 ]
  store double %16004, ptr %451, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %452) #3
  %16005 = load double, ptr %450, align 8, !tbaa !11
  %16006 = load double, ptr %451, align 8, !tbaa !11
  %16007 = fcmp olt double %16005, %16006
  br i1 %16007, label %16008, label %16016

16008:                                            ; preds = %16003
  %16009 = load double, ptr %449, align 8, !tbaa !11
  %16010 = load double, ptr %448, align 8, !tbaa !11
  %16011 = fsub double %16009, %16010
  %16012 = load double, ptr %451, align 8, !tbaa !11
  %16013 = load double, ptr %450, align 8, !tbaa !11
  %16014 = fsub double %16012, %16013
  %16015 = fdiv double %16011, %16014
  br label %16017

16016:                                            ; preds = %16003
  br label %16017

16017:                                            ; preds = %16016, %16008
  %16018 = phi double [ %16015, %16008 ], [ 1.000000e+00, %16016 ]
  store double %16018, ptr %452, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %453) #3
  %16019 = load double, ptr %452, align 8, !tbaa !11
  %16020 = load i64, ptr %447, align 8, !tbaa !13
  %16021 = icmp slt i64 0, %16020
  br i1 %16021, label %16022, label %16024

16022:                                            ; preds = %16017
  %16023 = load i64, ptr %447, align 8, !tbaa !13
  br label %16025

16024:                                            ; preds = %16017
  br label %16025

16025:                                            ; preds = %16024, %16022
  %16026 = phi i64 [ %16023, %16022 ], [ 0, %16024 ]
  %16027 = sitofp i64 %16026 to double
  %16028 = fmul double %16019, %16027
  store double %16028, ptr %453, align 8, !tbaa !11
  %16029 = load double, ptr %453, align 8, !tbaa !11
  %16030 = fcmp ole double 0.000000e+00, %16029
  br i1 %16030, label %16031, label %16034

16031:                                            ; preds = %16025
  %16032 = load double, ptr %453, align 8, !tbaa !11
  %16033 = fadd double %16032, 5.000000e-01
  br label %16037

16034:                                            ; preds = %16025
  %16035 = load double, ptr %453, align 8, !tbaa !11
  %16036 = fsub double %16035, 5.000000e-01
  br label %16037

16037:                                            ; preds = %16034, %16031
  %16038 = phi double [ %16033, %16031 ], [ %16036, %16034 ]
  %16039 = fptosi double %16038 to i64
  store i64 %16039, ptr %447, align 8, !tbaa !13
  %16040 = load double, ptr %450, align 8, !tbaa !11
  store double %16040, ptr %448, align 8, !tbaa !11
  %16041 = load double, ptr %451, align 8, !tbaa !11
  store double %16041, ptr %449, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %453) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %452) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %451) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %450) #3
  br label %16098

16042:                                            ; preds = %15987
  %16043 = load i32, ptr %8, align 4, !tbaa !9
  %16044 = icmp ugt i32 6, %16043
  br i1 %16044, label %16073, label %16045

16045:                                            ; preds = %16042
  %16046 = load i32, ptr %8, align 4, !tbaa !9
  %16047 = icmp ugt i32 15, %16046
  br i1 %16047, label %16048, label %16059

16048:                                            ; preds = %16045
  %16049 = load i32, ptr %9, align 4, !tbaa !9
  %16050 = icmp ugt i32 15, %16049
  br i1 %16050, label %16051, label %16056

16051:                                            ; preds = %16048
  %16052 = load i32, ptr %9, align 4, !tbaa !9
  %16053 = load i32, ptr %8, align 4, !tbaa !9
  %16054 = icmp ugt i32 %16052, %16053
  %16055 = zext i1 %16054 to i32
  br label %16057

16056:                                            ; preds = %16048
  br label %16057

16057:                                            ; preds = %16056, %16051
  %16058 = phi i32 [ %16055, %16051 ], [ 0, %16056 ]
  br label %16070

16059:                                            ; preds = %16045
  %16060 = load i32, ptr %9, align 4, !tbaa !9
  %16061 = icmp ugt i32 15, %16060
  br i1 %16061, label %16062, label %16063

16062:                                            ; preds = %16059
  br label %16068

16063:                                            ; preds = %16059
  %16064 = load i32, ptr %9, align 4, !tbaa !9
  %16065 = load i32, ptr %8, align 4, !tbaa !9
  %16066 = icmp ugt i32 %16064, %16065
  %16067 = zext i1 %16066 to i32
  br label %16068

16068:                                            ; preds = %16063, %16062
  %16069 = phi i32 [ 0, %16062 ], [ %16067, %16063 ]
  br label %16070

16070:                                            ; preds = %16068, %16057
  %16071 = phi i32 [ %16058, %16057 ], [ %16069, %16068 ]
  %16072 = icmp ne i32 %16071, 0
  br label %16073

16073:                                            ; preds = %16070, %16042
  %16074 = phi i1 [ true, %16042 ], [ %16072, %16070 ]
  %16075 = zext i1 %16074 to i32
  %16076 = icmp eq i32 0, %16075
  br i1 %16076, label %16077, label %16097

16077:                                            ; preds = %16073
  %16078 = load double, ptr %448, align 8, !tbaa !11
  %16079 = fcmp ogt double 0.000000e+00, %16078
  br i1 %16079, label %16080, label %16097

16080:                                            ; preds = %16077
  %16081 = load double, ptr %449, align 8, !tbaa !11
  %16082 = fcmp olt double 0.000000e+00, %16081
  br i1 %16082, label %16083, label %16097

16083:                                            ; preds = %16080
  %16084 = load double, ptr %448, align 8, !tbaa !11
  %16085 = fneg double %16084
  %16086 = load double, ptr %449, align 8, !tbaa !11
  %16087 = fcmp olt double %16085, %16086
  br i1 %16087, label %16088, label %16090

16088:                                            ; preds = %16083
  %16089 = load double, ptr %449, align 8, !tbaa !11
  br label %16093

16090:                                            ; preds = %16083
  %16091 = load double, ptr %448, align 8, !tbaa !11
  %16092 = fneg double %16091
  br label %16093

16093:                                            ; preds = %16090, %16088
  %16094 = phi double [ %16089, %16088 ], [ %16092, %16090 ]
  store double %16094, ptr %449, align 8, !tbaa !11
  %16095 = load double, ptr %449, align 8, !tbaa !11
  %16096 = fneg double %16095
  store double %16096, ptr %448, align 8, !tbaa !11
  br label %16097

16097:                                            ; preds = %16093, %16080, %16077, %16073
  br label %16098

16098:                                            ; preds = %16097, %16037
  call void @llvm.lifetime.start.p0(i64 8, ptr %454) #3
  %16099 = load double, ptr %448, align 8, !tbaa !11
  %16100 = fcmp ole double 0.000000e+00, %16099
  %16101 = zext i1 %16100 to i64
  %16102 = select i1 %16100, double 0.000000e+00, double -1.000000e+00
  store double %16102, ptr %454, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %455) #3
  %16103 = load double, ptr %449, align 8, !tbaa !11
  %16104 = fcmp ole double 0.000000e+00, %16103
  %16105 = zext i1 %16104 to i64
  %16106 = select i1 %16104, double 1.000000e+00, double 0.000000e+00
  store double %16106, ptr %455, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %456) #3
  %16107 = load i64, ptr %447, align 8, !tbaa !13
  %16108 = sitofp i64 %16107 to double
  %16109 = load double, ptr %448, align 8, !tbaa !11
  %16110 = fsub double %16108, %16109
  %16111 = load double, ptr %455, align 8, !tbaa !11
  %16112 = load double, ptr %454, align 8, !tbaa !11
  %16113 = fsub double %16111, %16112
  %16114 = fmul double %16110, %16113
  %16115 = load double, ptr %449, align 8, !tbaa !11
  %16116 = load double, ptr %448, align 8, !tbaa !11
  %16117 = fsub double %16115, %16116
  %16118 = fdiv double %16114, %16117
  %16119 = load double, ptr %454, align 8, !tbaa !11
  %16120 = fadd double %16118, %16119
  store double %16120, ptr %456, align 8, !tbaa !11
  %16121 = load double, ptr %454, align 8, !tbaa !11
  %16122 = load double, ptr %456, align 8, !tbaa !11
  %16123 = fcmp ole double 0.000000e+00, %16122
  br i1 %16123, label %16124, label %16127

16124:                                            ; preds = %16098
  %16125 = load double, ptr %456, align 8, !tbaa !11
  %16126 = fadd double %16125, 5.000000e-01
  br label %16130

16127:                                            ; preds = %16098
  %16128 = load double, ptr %456, align 8, !tbaa !11
  %16129 = fsub double %16128, 5.000000e-01
  br label %16130

16130:                                            ; preds = %16127, %16124
  %16131 = phi double [ %16126, %16124 ], [ %16129, %16127 ]
  %16132 = fcmp olt double %16121, %16131
  br i1 %16132, label %16133, label %16187

16133:                                            ; preds = %16130
  %16134 = load double, ptr %456, align 8, !tbaa !11
  %16135 = fcmp ole double 0.000000e+00, %16134
  br i1 %16135, label %16136, label %16139

16136:                                            ; preds = %16133
  %16137 = load double, ptr %456, align 8, !tbaa !11
  %16138 = fadd double %16137, 5.000000e-01
  br label %16142

16139:                                            ; preds = %16133
  %16140 = load double, ptr %456, align 8, !tbaa !11
  %16141 = fsub double %16140, 5.000000e-01
  br label %16142

16142:                                            ; preds = %16139, %16136
  %16143 = phi double [ %16138, %16136 ], [ %16141, %16139 ]
  %16144 = load double, ptr %455, align 8, !tbaa !11
  %16145 = fcmp ole double %16143, %16144
  br i1 %16145, label %16146, label %16157

16146:                                            ; preds = %16142
  %16147 = load double, ptr %456, align 8, !tbaa !11
  %16148 = fcmp ole double 0.000000e+00, %16147
  br i1 %16148, label %16149, label %16152

16149:                                            ; preds = %16146
  %16150 = load double, ptr %456, align 8, !tbaa !11
  %16151 = fadd double %16150, 5.000000e-01
  br label %16155

16152:                                            ; preds = %16146
  %16153 = load double, ptr %456, align 8, !tbaa !11
  %16154 = fsub double %16153, 5.000000e-01
  br label %16155

16155:                                            ; preds = %16152, %16149
  %16156 = phi double [ %16151, %16149 ], [ %16154, %16152 ]
  br label %16185

16157:                                            ; preds = %16142
  %16158 = load double, ptr %456, align 8, !tbaa !11
  %16159 = fcmp ole double 0.000000e+00, %16158
  br i1 %16159, label %16160, label %16163

16160:                                            ; preds = %16157
  %16161 = load double, ptr %456, align 8, !tbaa !11
  %16162 = fadd double %16161, 5.000000e-01
  br label %16166

16163:                                            ; preds = %16157
  %16164 = load double, ptr %456, align 8, !tbaa !11
  %16165 = fsub double %16164, 5.000000e-01
  br label %16166

16166:                                            ; preds = %16163, %16160
  %16167 = phi double [ %16162, %16160 ], [ %16165, %16163 ]
  %16168 = load double, ptr %455, align 8, !tbaa !11
  %16169 = fcmp olt double %16167, %16168
  br i1 %16169, label %16170, label %16181

16170:                                            ; preds = %16166
  %16171 = load double, ptr %456, align 8, !tbaa !11
  %16172 = fcmp ole double 0.000000e+00, %16171
  br i1 %16172, label %16173, label %16176

16173:                                            ; preds = %16170
  %16174 = load double, ptr %456, align 8, !tbaa !11
  %16175 = fadd double %16174, 5.000000e-01
  br label %16179

16176:                                            ; preds = %16170
  %16177 = load double, ptr %456, align 8, !tbaa !11
  %16178 = fsub double %16177, 5.000000e-01
  br label %16179

16179:                                            ; preds = %16176, %16173
  %16180 = phi double [ %16175, %16173 ], [ %16178, %16176 ]
  br label %16183

16181:                                            ; preds = %16166
  %16182 = load double, ptr %455, align 8, !tbaa !11
  br label %16183

16183:                                            ; preds = %16181, %16179
  %16184 = phi double [ %16180, %16179 ], [ %16182, %16181 ]
  br label %16185

16185:                                            ; preds = %16183, %16155
  %16186 = phi double [ %16156, %16155 ], [ %16184, %16183 ]
  br label %16215

16187:                                            ; preds = %16130
  %16188 = load double, ptr %454, align 8, !tbaa !11
  %16189 = load double, ptr %456, align 8, !tbaa !11
  %16190 = fcmp ole double 0.000000e+00, %16189
  br i1 %16190, label %16191, label %16194

16191:                                            ; preds = %16187
  %16192 = load double, ptr %456, align 8, !tbaa !11
  %16193 = fadd double %16192, 5.000000e-01
  br label %16197

16194:                                            ; preds = %16187
  %16195 = load double, ptr %456, align 8, !tbaa !11
  %16196 = fsub double %16195, 5.000000e-01
  br label %16197

16197:                                            ; preds = %16194, %16191
  %16198 = phi double [ %16193, %16191 ], [ %16196, %16194 ]
  %16199 = fcmp olt double %16188, %16198
  br i1 %16199, label %16200, label %16211

16200:                                            ; preds = %16197
  %16201 = load double, ptr %456, align 8, !tbaa !11
  %16202 = fcmp ole double 0.000000e+00, %16201
  br i1 %16202, label %16203, label %16206

16203:                                            ; preds = %16200
  %16204 = load double, ptr %456, align 8, !tbaa !11
  %16205 = fadd double %16204, 5.000000e-01
  br label %16209

16206:                                            ; preds = %16200
  %16207 = load double, ptr %456, align 8, !tbaa !11
  %16208 = fsub double %16207, 5.000000e-01
  br label %16209

16209:                                            ; preds = %16206, %16203
  %16210 = phi double [ %16205, %16203 ], [ %16208, %16206 ]
  br label %16213

16211:                                            ; preds = %16197
  %16212 = load double, ptr %454, align 8, !tbaa !11
  br label %16213

16213:                                            ; preds = %16211, %16209
  %16214 = phi double [ %16210, %16209 ], [ %16212, %16211 ]
  br label %16215

16215:                                            ; preds = %16213, %16185
  %16216 = phi double [ %16186, %16185 ], [ %16214, %16213 ]
  %16217 = fptoui double %16216 to i8
  %16218 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %16217, ptr %16218, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %456) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %455) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %454) #3
  br label %16296

16219:                                            ; preds = %15983, %15980
  %16220 = load i32, ptr %8, align 4, !tbaa !9
  %16221 = icmp ugt i32 6, %16220
  br i1 %16221, label %16250, label %16222

16222:                                            ; preds = %16219
  %16223 = load i32, ptr %8, align 4, !tbaa !9
  %16224 = icmp ugt i32 15, %16223
  br i1 %16224, label %16225, label %16236

16225:                                            ; preds = %16222
  %16226 = load i32, ptr %9, align 4, !tbaa !9
  %16227 = icmp ugt i32 15, %16226
  br i1 %16227, label %16228, label %16233

16228:                                            ; preds = %16225
  %16229 = load i32, ptr %9, align 4, !tbaa !9
  %16230 = load i32, ptr %8, align 4, !tbaa !9
  %16231 = icmp ugt i32 %16229, %16230
  %16232 = zext i1 %16231 to i32
  br label %16234

16233:                                            ; preds = %16225
  br label %16234

16234:                                            ; preds = %16233, %16228
  %16235 = phi i32 [ %16232, %16228 ], [ 0, %16233 ]
  br label %16247

16236:                                            ; preds = %16222
  %16237 = load i32, ptr %9, align 4, !tbaa !9
  %16238 = icmp ugt i32 15, %16237
  br i1 %16238, label %16239, label %16240

16239:                                            ; preds = %16236
  br label %16245

16240:                                            ; preds = %16236
  %16241 = load i32, ptr %9, align 4, !tbaa !9
  %16242 = load i32, ptr %8, align 4, !tbaa !9
  %16243 = icmp ugt i32 %16241, %16242
  %16244 = zext i1 %16243 to i32
  br label %16245

16245:                                            ; preds = %16240, %16239
  %16246 = phi i32 [ 0, %16239 ], [ %16244, %16240 ]
  br label %16247

16247:                                            ; preds = %16245, %16234
  %16248 = phi i32 [ %16235, %16234 ], [ %16246, %16245 ]
  %16249 = icmp ne i32 %16248, 0
  br label %16250

16250:                                            ; preds = %16247, %16219
  %16251 = phi i1 [ true, %16219 ], [ %16249, %16247 ]
  %16252 = zext i1 %16251 to i32
  %16253 = icmp eq i32 0, %16252
  br i1 %16253, label %16254, label %16291

16254:                                            ; preds = %16250
  %16255 = load i64, ptr %447, align 8, !tbaa !13
  %16256 = sitofp i64 %16255 to double
  %16257 = fcmp olt double -1.000000e+00, %16256
  br i1 %16257, label %16258, label %16277

16258:                                            ; preds = %16254
  %16259 = load i64, ptr %447, align 8, !tbaa !13
  %16260 = sitofp i64 %16259 to double
  %16261 = fcmp ole double %16260, 1.000000e+00
  br i1 %16261, label %16262, label %16265

16262:                                            ; preds = %16258
  %16263 = load i64, ptr %447, align 8, !tbaa !13
  %16264 = sitofp i64 %16263 to double
  br label %16275

16265:                                            ; preds = %16258
  %16266 = load i64, ptr %447, align 8, !tbaa !13
  %16267 = sitofp i64 %16266 to double
  %16268 = fcmp olt double %16267, 1.000000e+00
  br i1 %16268, label %16269, label %16272

16269:                                            ; preds = %16265
  %16270 = load i64, ptr %447, align 8, !tbaa !13
  %16271 = sitofp i64 %16270 to double
  br label %16273

16272:                                            ; preds = %16265
  br label %16273

16273:                                            ; preds = %16272, %16269
  %16274 = phi double [ %16271, %16269 ], [ 1.000000e+00, %16272 ]
  br label %16275

16275:                                            ; preds = %16273, %16262
  %16276 = phi double [ %16264, %16262 ], [ %16274, %16273 ]
  br label %16287

16277:                                            ; preds = %16254
  %16278 = load i64, ptr %447, align 8, !tbaa !13
  %16279 = sitofp i64 %16278 to double
  %16280 = fcmp olt double -1.000000e+00, %16279
  br i1 %16280, label %16281, label %16284

16281:                                            ; preds = %16277
  %16282 = load i64, ptr %447, align 8, !tbaa !13
  %16283 = sitofp i64 %16282 to double
  br label %16285

16284:                                            ; preds = %16277
  br label %16285

16285:                                            ; preds = %16284, %16281
  %16286 = phi double [ %16283, %16281 ], [ -1.000000e+00, %16284 ]
  br label %16287

16287:                                            ; preds = %16285, %16275
  %16288 = phi double [ %16276, %16275 ], [ %16286, %16285 ]
  %16289 = fptoui double %16288 to i8
  %16290 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %16289, ptr %16290, align 1, !tbaa !17
  br label %16295

16291:                                            ; preds = %16250
  %16292 = load i64, ptr %447, align 8, !tbaa !13
  %16293 = trunc i64 %16292 to i8
  %16294 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %16293, ptr %16294, align 1, !tbaa !17
  br label %16295

16295:                                            ; preds = %16291, %16287
  br label %16296

16296:                                            ; preds = %16295, %16215
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %449) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %448) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %447) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %446) #3
  br label %16297

16297:                                            ; preds = %16296
  br label %16298

16298:                                            ; preds = %16297
  br label %19573

16299:                                            ; preds = %15950
  br label %16300

16300:                                            ; preds = %16299
  call void @llvm.lifetime.start.p0(i64 8, ptr %457) #3
  store double 5.000000e-01, ptr %457, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %458) #3
  %16301 = load ptr, ptr %10, align 8, !tbaa !5
  %16302 = load i32, ptr %16301, align 4, !tbaa !9
  store i32 %16302, ptr %458, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %459) #3
  store double 0.000000e+00, ptr %459, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %460) #3
  store double 0.000000e+00, ptr %460, align 8, !tbaa !11
  %16303 = load ptr, ptr %11, align 8, !tbaa !5
  %16304 = icmp ne ptr null, %16303
  br i1 %16304, label %16305, label %16327

16305:                                            ; preds = %16300
  %16306 = load ptr, ptr %12, align 8, !tbaa !5
  %16307 = icmp ne ptr null, %16306
  br i1 %16307, label %16308, label %16319

16308:                                            ; preds = %16305
  %16309 = load ptr, ptr %11, align 8, !tbaa !5
  %16310 = load i32, ptr %16309, align 4, !tbaa !9
  %16311 = load i32, ptr %458, align 4, !tbaa !9
  %16312 = icmp sle i32 %16310, %16311
  br i1 %16312, label %16313, label %16319

16313:                                            ; preds = %16308
  %16314 = load i32, ptr %458, align 4, !tbaa !9
  %16315 = load ptr, ptr %12, align 8, !tbaa !5
  %16316 = load i32, ptr %16315, align 4, !tbaa !9
  %16317 = icmp sle i32 %16314, %16316
  br i1 %16317, label %16318, label %16319

16318:                                            ; preds = %16313
  br label %16320

16319:                                            ; preds = %16313, %16308, %16305
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.24, i32 noundef 479, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

16320:                                            ; preds = %16318
  %16321 = load ptr, ptr %11, align 8, !tbaa !5
  %16322 = load i32, ptr %16321, align 4, !tbaa !9
  %16323 = sitofp i32 %16322 to double
  store double %16323, ptr %459, align 8, !tbaa !11
  %16324 = load ptr, ptr %12, align 8, !tbaa !5
  %16325 = load i32, ptr %16324, align 4, !tbaa !9
  %16326 = sitofp i32 %16325 to double
  store double %16326, ptr %460, align 8, !tbaa !11
  br label %16327

16327:                                            ; preds = %16320, %16300
  %16328 = load i32, ptr %8, align 4, !tbaa !9
  %16329 = icmp ule i32 6, %16328
  br i1 %16329, label %16330, label %16566

16330:                                            ; preds = %16327
  %16331 = load double, ptr %459, align 8, !tbaa !11
  %16332 = load double, ptr %460, align 8, !tbaa !11
  %16333 = fcmp olt double %16331, %16332
  br i1 %16333, label %16334, label %16566

16334:                                            ; preds = %16330
  %16335 = load i32, ptr %8, align 4, !tbaa !9
  %16336 = icmp ule i32 15, %16335
  br i1 %16336, label %16337, label %16389

16337:                                            ; preds = %16334
  call void @llvm.lifetime.start.p0(i64 8, ptr %461) #3
  %16338 = load double, ptr %459, align 8, !tbaa !11
  %16339 = fcmp olt double 0.000000e+00, %16338
  br i1 %16339, label %16340, label %16342

16340:                                            ; preds = %16337
  %16341 = load double, ptr %459, align 8, !tbaa !11
  br label %16343

16342:                                            ; preds = %16337
  br label %16343

16343:                                            ; preds = %16342, %16340
  %16344 = phi double [ %16341, %16340 ], [ 0.000000e+00, %16342 ]
  store double %16344, ptr %461, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %462) #3
  %16345 = load double, ptr %460, align 8, !tbaa !11
  %16346 = fcmp olt double 0.000000e+00, %16345
  br i1 %16346, label %16347, label %16349

16347:                                            ; preds = %16343
  %16348 = load double, ptr %460, align 8, !tbaa !11
  br label %16350

16349:                                            ; preds = %16343
  br label %16350

16350:                                            ; preds = %16349, %16347
  %16351 = phi double [ %16348, %16347 ], [ 0.000000e+00, %16349 ]
  store double %16351, ptr %462, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %463) #3
  %16352 = load double, ptr %461, align 8, !tbaa !11
  %16353 = load double, ptr %462, align 8, !tbaa !11
  %16354 = fcmp olt double %16352, %16353
  br i1 %16354, label %16355, label %16363

16355:                                            ; preds = %16350
  %16356 = load double, ptr %460, align 8, !tbaa !11
  %16357 = load double, ptr %459, align 8, !tbaa !11
  %16358 = fsub double %16356, %16357
  %16359 = load double, ptr %462, align 8, !tbaa !11
  %16360 = load double, ptr %461, align 8, !tbaa !11
  %16361 = fsub double %16359, %16360
  %16362 = fdiv double %16358, %16361
  br label %16364

16363:                                            ; preds = %16350
  br label %16364

16364:                                            ; preds = %16363, %16355
  %16365 = phi double [ %16362, %16355 ], [ 1.000000e+00, %16363 ]
  store double %16365, ptr %463, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %464) #3
  %16366 = load double, ptr %463, align 8, !tbaa !11
  %16367 = load i32, ptr %458, align 4, !tbaa !9
  %16368 = icmp slt i32 0, %16367
  br i1 %16368, label %16369, label %16371

16369:                                            ; preds = %16364
  %16370 = load i32, ptr %458, align 4, !tbaa !9
  br label %16372

16371:                                            ; preds = %16364
  br label %16372

16372:                                            ; preds = %16371, %16369
  %16373 = phi i32 [ %16370, %16369 ], [ 0, %16371 ]
  %16374 = sitofp i32 %16373 to double
  %16375 = fmul double %16366, %16374
  store double %16375, ptr %464, align 8, !tbaa !11
  %16376 = load double, ptr %464, align 8, !tbaa !11
  %16377 = fcmp ole double 0.000000e+00, %16376
  br i1 %16377, label %16378, label %16381

16378:                                            ; preds = %16372
  %16379 = load double, ptr %464, align 8, !tbaa !11
  %16380 = fadd double %16379, 5.000000e-01
  br label %16384

16381:                                            ; preds = %16372
  %16382 = load double, ptr %464, align 8, !tbaa !11
  %16383 = fsub double %16382, 5.000000e-01
  br label %16384

16384:                                            ; preds = %16381, %16378
  %16385 = phi double [ %16380, %16378 ], [ %16383, %16381 ]
  %16386 = fptosi double %16385 to i32
  store i32 %16386, ptr %458, align 4, !tbaa !9
  %16387 = load double, ptr %461, align 8, !tbaa !11
  store double %16387, ptr %459, align 8, !tbaa !11
  %16388 = load double, ptr %462, align 8, !tbaa !11
  store double %16388, ptr %460, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %464) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %463) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %462) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %461) #3
  br label %16445

16389:                                            ; preds = %16334
  %16390 = load i32, ptr %8, align 4, !tbaa !9
  %16391 = icmp ugt i32 6, %16390
  br i1 %16391, label %16420, label %16392

16392:                                            ; preds = %16389
  %16393 = load i32, ptr %8, align 4, !tbaa !9
  %16394 = icmp ugt i32 15, %16393
  br i1 %16394, label %16395, label %16406

16395:                                            ; preds = %16392
  %16396 = load i32, ptr %9, align 4, !tbaa !9
  %16397 = icmp ugt i32 15, %16396
  br i1 %16397, label %16398, label %16403

16398:                                            ; preds = %16395
  %16399 = load i32, ptr %9, align 4, !tbaa !9
  %16400 = load i32, ptr %8, align 4, !tbaa !9
  %16401 = icmp ugt i32 %16399, %16400
  %16402 = zext i1 %16401 to i32
  br label %16404

16403:                                            ; preds = %16395
  br label %16404

16404:                                            ; preds = %16403, %16398
  %16405 = phi i32 [ %16402, %16398 ], [ 0, %16403 ]
  br label %16417

16406:                                            ; preds = %16392
  %16407 = load i32, ptr %9, align 4, !tbaa !9
  %16408 = icmp ugt i32 15, %16407
  br i1 %16408, label %16409, label %16410

16409:                                            ; preds = %16406
  br label %16415

16410:                                            ; preds = %16406
  %16411 = load i32, ptr %9, align 4, !tbaa !9
  %16412 = load i32, ptr %8, align 4, !tbaa !9
  %16413 = icmp ugt i32 %16411, %16412
  %16414 = zext i1 %16413 to i32
  br label %16415

16415:                                            ; preds = %16410, %16409
  %16416 = phi i32 [ 0, %16409 ], [ %16414, %16410 ]
  br label %16417

16417:                                            ; preds = %16415, %16404
  %16418 = phi i32 [ %16405, %16404 ], [ %16416, %16415 ]
  %16419 = icmp ne i32 %16418, 0
  br label %16420

16420:                                            ; preds = %16417, %16389
  %16421 = phi i1 [ true, %16389 ], [ %16419, %16417 ]
  %16422 = zext i1 %16421 to i32
  %16423 = icmp eq i32 0, %16422
  br i1 %16423, label %16424, label %16444

16424:                                            ; preds = %16420
  %16425 = load double, ptr %459, align 8, !tbaa !11
  %16426 = fcmp ogt double 0.000000e+00, %16425
  br i1 %16426, label %16427, label %16444

16427:                                            ; preds = %16424
  %16428 = load double, ptr %460, align 8, !tbaa !11
  %16429 = fcmp olt double 0.000000e+00, %16428
  br i1 %16429, label %16430, label %16444

16430:                                            ; preds = %16427
  %16431 = load double, ptr %459, align 8, !tbaa !11
  %16432 = fneg double %16431
  %16433 = load double, ptr %460, align 8, !tbaa !11
  %16434 = fcmp olt double %16432, %16433
  br i1 %16434, label %16435, label %16437

16435:                                            ; preds = %16430
  %16436 = load double, ptr %460, align 8, !tbaa !11
  br label %16440

16437:                                            ; preds = %16430
  %16438 = load double, ptr %459, align 8, !tbaa !11
  %16439 = fneg double %16438
  br label %16440

16440:                                            ; preds = %16437, %16435
  %16441 = phi double [ %16436, %16435 ], [ %16439, %16437 ]
  store double %16441, ptr %460, align 8, !tbaa !11
  %16442 = load double, ptr %460, align 8, !tbaa !11
  %16443 = fneg double %16442
  store double %16443, ptr %459, align 8, !tbaa !11
  br label %16444

16444:                                            ; preds = %16440, %16427, %16424, %16420
  br label %16445

16445:                                            ; preds = %16444, %16384
  call void @llvm.lifetime.start.p0(i64 8, ptr %465) #3
  %16446 = load double, ptr %459, align 8, !tbaa !11
  %16447 = fcmp ole double 0.000000e+00, %16446
  %16448 = zext i1 %16447 to i64
  %16449 = select i1 %16447, double 0.000000e+00, double -1.000000e+00
  store double %16449, ptr %465, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %466) #3
  %16450 = load double, ptr %460, align 8, !tbaa !11
  %16451 = fcmp ole double 0.000000e+00, %16450
  %16452 = zext i1 %16451 to i64
  %16453 = select i1 %16451, double 1.000000e+00, double 0.000000e+00
  store double %16453, ptr %466, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %467) #3
  %16454 = load i32, ptr %458, align 4, !tbaa !9
  %16455 = sitofp i32 %16454 to double
  %16456 = load double, ptr %459, align 8, !tbaa !11
  %16457 = fsub double %16455, %16456
  %16458 = load double, ptr %466, align 8, !tbaa !11
  %16459 = load double, ptr %465, align 8, !tbaa !11
  %16460 = fsub double %16458, %16459
  %16461 = fmul double %16457, %16460
  %16462 = load double, ptr %460, align 8, !tbaa !11
  %16463 = load double, ptr %459, align 8, !tbaa !11
  %16464 = fsub double %16462, %16463
  %16465 = fdiv double %16461, %16464
  %16466 = load double, ptr %465, align 8, !tbaa !11
  %16467 = fadd double %16465, %16466
  store double %16467, ptr %467, align 8, !tbaa !11
  %16468 = load double, ptr %465, align 8, !tbaa !11
  %16469 = load double, ptr %467, align 8, !tbaa !11
  %16470 = fcmp ole double 0.000000e+00, %16469
  br i1 %16470, label %16471, label %16474

16471:                                            ; preds = %16445
  %16472 = load double, ptr %467, align 8, !tbaa !11
  %16473 = fadd double %16472, 5.000000e-01
  br label %16477

16474:                                            ; preds = %16445
  %16475 = load double, ptr %467, align 8, !tbaa !11
  %16476 = fsub double %16475, 5.000000e-01
  br label %16477

16477:                                            ; preds = %16474, %16471
  %16478 = phi double [ %16473, %16471 ], [ %16476, %16474 ]
  %16479 = fcmp olt double %16468, %16478
  br i1 %16479, label %16480, label %16534

16480:                                            ; preds = %16477
  %16481 = load double, ptr %467, align 8, !tbaa !11
  %16482 = fcmp ole double 0.000000e+00, %16481
  br i1 %16482, label %16483, label %16486

16483:                                            ; preds = %16480
  %16484 = load double, ptr %467, align 8, !tbaa !11
  %16485 = fadd double %16484, 5.000000e-01
  br label %16489

16486:                                            ; preds = %16480
  %16487 = load double, ptr %467, align 8, !tbaa !11
  %16488 = fsub double %16487, 5.000000e-01
  br label %16489

16489:                                            ; preds = %16486, %16483
  %16490 = phi double [ %16485, %16483 ], [ %16488, %16486 ]
  %16491 = load double, ptr %466, align 8, !tbaa !11
  %16492 = fcmp ole double %16490, %16491
  br i1 %16492, label %16493, label %16504

16493:                                            ; preds = %16489
  %16494 = load double, ptr %467, align 8, !tbaa !11
  %16495 = fcmp ole double 0.000000e+00, %16494
  br i1 %16495, label %16496, label %16499

16496:                                            ; preds = %16493
  %16497 = load double, ptr %467, align 8, !tbaa !11
  %16498 = fadd double %16497, 5.000000e-01
  br label %16502

16499:                                            ; preds = %16493
  %16500 = load double, ptr %467, align 8, !tbaa !11
  %16501 = fsub double %16500, 5.000000e-01
  br label %16502

16502:                                            ; preds = %16499, %16496
  %16503 = phi double [ %16498, %16496 ], [ %16501, %16499 ]
  br label %16532

16504:                                            ; preds = %16489
  %16505 = load double, ptr %467, align 8, !tbaa !11
  %16506 = fcmp ole double 0.000000e+00, %16505
  br i1 %16506, label %16507, label %16510

16507:                                            ; preds = %16504
  %16508 = load double, ptr %467, align 8, !tbaa !11
  %16509 = fadd double %16508, 5.000000e-01
  br label %16513

16510:                                            ; preds = %16504
  %16511 = load double, ptr %467, align 8, !tbaa !11
  %16512 = fsub double %16511, 5.000000e-01
  br label %16513

16513:                                            ; preds = %16510, %16507
  %16514 = phi double [ %16509, %16507 ], [ %16512, %16510 ]
  %16515 = load double, ptr %466, align 8, !tbaa !11
  %16516 = fcmp olt double %16514, %16515
  br i1 %16516, label %16517, label %16528

16517:                                            ; preds = %16513
  %16518 = load double, ptr %467, align 8, !tbaa !11
  %16519 = fcmp ole double 0.000000e+00, %16518
  br i1 %16519, label %16520, label %16523

16520:                                            ; preds = %16517
  %16521 = load double, ptr %467, align 8, !tbaa !11
  %16522 = fadd double %16521, 5.000000e-01
  br label %16526

16523:                                            ; preds = %16517
  %16524 = load double, ptr %467, align 8, !tbaa !11
  %16525 = fsub double %16524, 5.000000e-01
  br label %16526

16526:                                            ; preds = %16523, %16520
  %16527 = phi double [ %16522, %16520 ], [ %16525, %16523 ]
  br label %16530

16528:                                            ; preds = %16513
  %16529 = load double, ptr %466, align 8, !tbaa !11
  br label %16530

16530:                                            ; preds = %16528, %16526
  %16531 = phi double [ %16527, %16526 ], [ %16529, %16528 ]
  br label %16532

16532:                                            ; preds = %16530, %16502
  %16533 = phi double [ %16503, %16502 ], [ %16531, %16530 ]
  br label %16562

16534:                                            ; preds = %16477
  %16535 = load double, ptr %465, align 8, !tbaa !11
  %16536 = load double, ptr %467, align 8, !tbaa !11
  %16537 = fcmp ole double 0.000000e+00, %16536
  br i1 %16537, label %16538, label %16541

16538:                                            ; preds = %16534
  %16539 = load double, ptr %467, align 8, !tbaa !11
  %16540 = fadd double %16539, 5.000000e-01
  br label %16544

16541:                                            ; preds = %16534
  %16542 = load double, ptr %467, align 8, !tbaa !11
  %16543 = fsub double %16542, 5.000000e-01
  br label %16544

16544:                                            ; preds = %16541, %16538
  %16545 = phi double [ %16540, %16538 ], [ %16543, %16541 ]
  %16546 = fcmp olt double %16535, %16545
  br i1 %16546, label %16547, label %16558

16547:                                            ; preds = %16544
  %16548 = load double, ptr %467, align 8, !tbaa !11
  %16549 = fcmp ole double 0.000000e+00, %16548
  br i1 %16549, label %16550, label %16553

16550:                                            ; preds = %16547
  %16551 = load double, ptr %467, align 8, !tbaa !11
  %16552 = fadd double %16551, 5.000000e-01
  br label %16556

16553:                                            ; preds = %16547
  %16554 = load double, ptr %467, align 8, !tbaa !11
  %16555 = fsub double %16554, 5.000000e-01
  br label %16556

16556:                                            ; preds = %16553, %16550
  %16557 = phi double [ %16552, %16550 ], [ %16555, %16553 ]
  br label %16560

16558:                                            ; preds = %16544
  %16559 = load double, ptr %465, align 8, !tbaa !11
  br label %16560

16560:                                            ; preds = %16558, %16556
  %16561 = phi double [ %16557, %16556 ], [ %16559, %16558 ]
  br label %16562

16562:                                            ; preds = %16560, %16532
  %16563 = phi double [ %16533, %16532 ], [ %16561, %16560 ]
  %16564 = fptoui double %16563 to i8
  %16565 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %16564, ptr %16565, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %467) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %466) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %465) #3
  br label %16643

16566:                                            ; preds = %16330, %16327
  %16567 = load i32, ptr %8, align 4, !tbaa !9
  %16568 = icmp ugt i32 6, %16567
  br i1 %16568, label %16597, label %16569

16569:                                            ; preds = %16566
  %16570 = load i32, ptr %8, align 4, !tbaa !9
  %16571 = icmp ugt i32 15, %16570
  br i1 %16571, label %16572, label %16583

16572:                                            ; preds = %16569
  %16573 = load i32, ptr %9, align 4, !tbaa !9
  %16574 = icmp ugt i32 15, %16573
  br i1 %16574, label %16575, label %16580

16575:                                            ; preds = %16572
  %16576 = load i32, ptr %9, align 4, !tbaa !9
  %16577 = load i32, ptr %8, align 4, !tbaa !9
  %16578 = icmp ugt i32 %16576, %16577
  %16579 = zext i1 %16578 to i32
  br label %16581

16580:                                            ; preds = %16572
  br label %16581

16581:                                            ; preds = %16580, %16575
  %16582 = phi i32 [ %16579, %16575 ], [ 0, %16580 ]
  br label %16594

16583:                                            ; preds = %16569
  %16584 = load i32, ptr %9, align 4, !tbaa !9
  %16585 = icmp ugt i32 15, %16584
  br i1 %16585, label %16586, label %16587

16586:                                            ; preds = %16583
  br label %16592

16587:                                            ; preds = %16583
  %16588 = load i32, ptr %9, align 4, !tbaa !9
  %16589 = load i32, ptr %8, align 4, !tbaa !9
  %16590 = icmp ugt i32 %16588, %16589
  %16591 = zext i1 %16590 to i32
  br label %16592

16592:                                            ; preds = %16587, %16586
  %16593 = phi i32 [ 0, %16586 ], [ %16591, %16587 ]
  br label %16594

16594:                                            ; preds = %16592, %16581
  %16595 = phi i32 [ %16582, %16581 ], [ %16593, %16592 ]
  %16596 = icmp ne i32 %16595, 0
  br label %16597

16597:                                            ; preds = %16594, %16566
  %16598 = phi i1 [ true, %16566 ], [ %16596, %16594 ]
  %16599 = zext i1 %16598 to i32
  %16600 = icmp eq i32 0, %16599
  br i1 %16600, label %16601, label %16638

16601:                                            ; preds = %16597
  %16602 = load i32, ptr %458, align 4, !tbaa !9
  %16603 = sitofp i32 %16602 to double
  %16604 = fcmp olt double -1.000000e+00, %16603
  br i1 %16604, label %16605, label %16624

16605:                                            ; preds = %16601
  %16606 = load i32, ptr %458, align 4, !tbaa !9
  %16607 = sitofp i32 %16606 to double
  %16608 = fcmp ole double %16607, 1.000000e+00
  br i1 %16608, label %16609, label %16612

16609:                                            ; preds = %16605
  %16610 = load i32, ptr %458, align 4, !tbaa !9
  %16611 = sitofp i32 %16610 to double
  br label %16622

16612:                                            ; preds = %16605
  %16613 = load i32, ptr %458, align 4, !tbaa !9
  %16614 = sitofp i32 %16613 to double
  %16615 = fcmp olt double %16614, 1.000000e+00
  br i1 %16615, label %16616, label %16619

16616:                                            ; preds = %16612
  %16617 = load i32, ptr %458, align 4, !tbaa !9
  %16618 = sitofp i32 %16617 to double
  br label %16620

16619:                                            ; preds = %16612
  br label %16620

16620:                                            ; preds = %16619, %16616
  %16621 = phi double [ %16618, %16616 ], [ 1.000000e+00, %16619 ]
  br label %16622

16622:                                            ; preds = %16620, %16609
  %16623 = phi double [ %16611, %16609 ], [ %16621, %16620 ]
  br label %16634

16624:                                            ; preds = %16601
  %16625 = load i32, ptr %458, align 4, !tbaa !9
  %16626 = sitofp i32 %16625 to double
  %16627 = fcmp olt double -1.000000e+00, %16626
  br i1 %16627, label %16628, label %16631

16628:                                            ; preds = %16624
  %16629 = load i32, ptr %458, align 4, !tbaa !9
  %16630 = sitofp i32 %16629 to double
  br label %16632

16631:                                            ; preds = %16624
  br label %16632

16632:                                            ; preds = %16631, %16628
  %16633 = phi double [ %16630, %16628 ], [ -1.000000e+00, %16631 ]
  br label %16634

16634:                                            ; preds = %16632, %16622
  %16635 = phi double [ %16623, %16622 ], [ %16633, %16632 ]
  %16636 = fptoui double %16635 to i8
  %16637 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %16636, ptr %16637, align 1, !tbaa !17
  br label %16642

16638:                                            ; preds = %16597
  %16639 = load i32, ptr %458, align 4, !tbaa !9
  %16640 = trunc i32 %16639 to i8
  %16641 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %16640, ptr %16641, align 1, !tbaa !17
  br label %16642

16642:                                            ; preds = %16638, %16634
  br label %16643

16643:                                            ; preds = %16642, %16562
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %460) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %459) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %458) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %457) #3
  br label %16644

16644:                                            ; preds = %16643
  br label %16645

16645:                                            ; preds = %16644
  br label %19573

16646:                                            ; preds = %15950
  br label %16647

16647:                                            ; preds = %16646
  call void @llvm.lifetime.start.p0(i64 8, ptr %468) #3
  store double 5.000000e-01, ptr %468, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %469) #3
  %16648 = load ptr, ptr %10, align 8, !tbaa !5
  %16649 = load i16, ptr %16648, align 2, !tbaa !15
  store i16 %16649, ptr %469, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %470) #3
  store double 0.000000e+00, ptr %470, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %471) #3
  store double 0.000000e+00, ptr %471, align 8, !tbaa !11
  %16650 = load ptr, ptr %11, align 8, !tbaa !5
  %16651 = icmp ne ptr null, %16650
  br i1 %16651, label %16652, label %16678

16652:                                            ; preds = %16647
  %16653 = load ptr, ptr %12, align 8, !tbaa !5
  %16654 = icmp ne ptr null, %16653
  br i1 %16654, label %16655, label %16670

16655:                                            ; preds = %16652
  %16656 = load ptr, ptr %11, align 8, !tbaa !5
  %16657 = load i16, ptr %16656, align 2, !tbaa !15
  %16658 = sext i16 %16657 to i32
  %16659 = load i16, ptr %469, align 2, !tbaa !15
  %16660 = sext i16 %16659 to i32
  %16661 = icmp sle i32 %16658, %16660
  br i1 %16661, label %16662, label %16670

16662:                                            ; preds = %16655
  %16663 = load i16, ptr %469, align 2, !tbaa !15
  %16664 = sext i16 %16663 to i32
  %16665 = load ptr, ptr %12, align 8, !tbaa !5
  %16666 = load i16, ptr %16665, align 2, !tbaa !15
  %16667 = sext i16 %16666 to i32
  %16668 = icmp sle i32 %16664, %16667
  br i1 %16668, label %16669, label %16670

16669:                                            ; preds = %16662
  br label %16671

16670:                                            ; preds = %16662, %16655, %16652
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.24, i32 noundef 479, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

16671:                                            ; preds = %16669
  %16672 = load ptr, ptr %11, align 8, !tbaa !5
  %16673 = load i16, ptr %16672, align 2, !tbaa !15
  %16674 = sitofp i16 %16673 to double
  store double %16674, ptr %470, align 8, !tbaa !11
  %16675 = load ptr, ptr %12, align 8, !tbaa !5
  %16676 = load i16, ptr %16675, align 2, !tbaa !15
  %16677 = sitofp i16 %16676 to double
  store double %16677, ptr %471, align 8, !tbaa !11
  br label %16678

16678:                                            ; preds = %16671, %16647
  %16679 = load i32, ptr %8, align 4, !tbaa !9
  %16680 = icmp ule i32 6, %16679
  br i1 %16680, label %16681, label %16919

16681:                                            ; preds = %16678
  %16682 = load double, ptr %470, align 8, !tbaa !11
  %16683 = load double, ptr %471, align 8, !tbaa !11
  %16684 = fcmp olt double %16682, %16683
  br i1 %16684, label %16685, label %16919

16685:                                            ; preds = %16681
  %16686 = load i32, ptr %8, align 4, !tbaa !9
  %16687 = icmp ule i32 15, %16686
  br i1 %16687, label %16688, label %16742

16688:                                            ; preds = %16685
  call void @llvm.lifetime.start.p0(i64 8, ptr %472) #3
  %16689 = load double, ptr %470, align 8, !tbaa !11
  %16690 = fcmp olt double 0.000000e+00, %16689
  br i1 %16690, label %16691, label %16693

16691:                                            ; preds = %16688
  %16692 = load double, ptr %470, align 8, !tbaa !11
  br label %16694

16693:                                            ; preds = %16688
  br label %16694

16694:                                            ; preds = %16693, %16691
  %16695 = phi double [ %16692, %16691 ], [ 0.000000e+00, %16693 ]
  store double %16695, ptr %472, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %473) #3
  %16696 = load double, ptr %471, align 8, !tbaa !11
  %16697 = fcmp olt double 0.000000e+00, %16696
  br i1 %16697, label %16698, label %16700

16698:                                            ; preds = %16694
  %16699 = load double, ptr %471, align 8, !tbaa !11
  br label %16701

16700:                                            ; preds = %16694
  br label %16701

16701:                                            ; preds = %16700, %16698
  %16702 = phi double [ %16699, %16698 ], [ 0.000000e+00, %16700 ]
  store double %16702, ptr %473, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %474) #3
  %16703 = load double, ptr %472, align 8, !tbaa !11
  %16704 = load double, ptr %473, align 8, !tbaa !11
  %16705 = fcmp olt double %16703, %16704
  br i1 %16705, label %16706, label %16714

16706:                                            ; preds = %16701
  %16707 = load double, ptr %471, align 8, !tbaa !11
  %16708 = load double, ptr %470, align 8, !tbaa !11
  %16709 = fsub double %16707, %16708
  %16710 = load double, ptr %473, align 8, !tbaa !11
  %16711 = load double, ptr %472, align 8, !tbaa !11
  %16712 = fsub double %16710, %16711
  %16713 = fdiv double %16709, %16712
  br label %16715

16714:                                            ; preds = %16701
  br label %16715

16715:                                            ; preds = %16714, %16706
  %16716 = phi double [ %16713, %16706 ], [ 1.000000e+00, %16714 ]
  store double %16716, ptr %474, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %475) #3
  %16717 = load double, ptr %474, align 8, !tbaa !11
  %16718 = load i16, ptr %469, align 2, !tbaa !15
  %16719 = sext i16 %16718 to i32
  %16720 = icmp slt i32 0, %16719
  br i1 %16720, label %16721, label %16724

16721:                                            ; preds = %16715
  %16722 = load i16, ptr %469, align 2, !tbaa !15
  %16723 = sext i16 %16722 to i32
  br label %16725

16724:                                            ; preds = %16715
  br label %16725

16725:                                            ; preds = %16724, %16721
  %16726 = phi i32 [ %16723, %16721 ], [ 0, %16724 ]
  %16727 = sitofp i32 %16726 to double
  %16728 = fmul double %16717, %16727
  store double %16728, ptr %475, align 8, !tbaa !11
  %16729 = load double, ptr %475, align 8, !tbaa !11
  %16730 = fcmp ole double 0.000000e+00, %16729
  br i1 %16730, label %16731, label %16734

16731:                                            ; preds = %16725
  %16732 = load double, ptr %475, align 8, !tbaa !11
  %16733 = fadd double %16732, 5.000000e-01
  br label %16737

16734:                                            ; preds = %16725
  %16735 = load double, ptr %475, align 8, !tbaa !11
  %16736 = fsub double %16735, 5.000000e-01
  br label %16737

16737:                                            ; preds = %16734, %16731
  %16738 = phi double [ %16733, %16731 ], [ %16736, %16734 ]
  %16739 = fptosi double %16738 to i16
  store i16 %16739, ptr %469, align 2, !tbaa !15
  %16740 = load double, ptr %472, align 8, !tbaa !11
  store double %16740, ptr %470, align 8, !tbaa !11
  %16741 = load double, ptr %473, align 8, !tbaa !11
  store double %16741, ptr %471, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %475) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %474) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %473) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %472) #3
  br label %16798

16742:                                            ; preds = %16685
  %16743 = load i32, ptr %8, align 4, !tbaa !9
  %16744 = icmp ugt i32 6, %16743
  br i1 %16744, label %16773, label %16745

16745:                                            ; preds = %16742
  %16746 = load i32, ptr %8, align 4, !tbaa !9
  %16747 = icmp ugt i32 15, %16746
  br i1 %16747, label %16748, label %16759

16748:                                            ; preds = %16745
  %16749 = load i32, ptr %9, align 4, !tbaa !9
  %16750 = icmp ugt i32 15, %16749
  br i1 %16750, label %16751, label %16756

16751:                                            ; preds = %16748
  %16752 = load i32, ptr %9, align 4, !tbaa !9
  %16753 = load i32, ptr %8, align 4, !tbaa !9
  %16754 = icmp ugt i32 %16752, %16753
  %16755 = zext i1 %16754 to i32
  br label %16757

16756:                                            ; preds = %16748
  br label %16757

16757:                                            ; preds = %16756, %16751
  %16758 = phi i32 [ %16755, %16751 ], [ 0, %16756 ]
  br label %16770

16759:                                            ; preds = %16745
  %16760 = load i32, ptr %9, align 4, !tbaa !9
  %16761 = icmp ugt i32 15, %16760
  br i1 %16761, label %16762, label %16763

16762:                                            ; preds = %16759
  br label %16768

16763:                                            ; preds = %16759
  %16764 = load i32, ptr %9, align 4, !tbaa !9
  %16765 = load i32, ptr %8, align 4, !tbaa !9
  %16766 = icmp ugt i32 %16764, %16765
  %16767 = zext i1 %16766 to i32
  br label %16768

16768:                                            ; preds = %16763, %16762
  %16769 = phi i32 [ 0, %16762 ], [ %16767, %16763 ]
  br label %16770

16770:                                            ; preds = %16768, %16757
  %16771 = phi i32 [ %16758, %16757 ], [ %16769, %16768 ]
  %16772 = icmp ne i32 %16771, 0
  br label %16773

16773:                                            ; preds = %16770, %16742
  %16774 = phi i1 [ true, %16742 ], [ %16772, %16770 ]
  %16775 = zext i1 %16774 to i32
  %16776 = icmp eq i32 0, %16775
  br i1 %16776, label %16777, label %16797

16777:                                            ; preds = %16773
  %16778 = load double, ptr %470, align 8, !tbaa !11
  %16779 = fcmp ogt double 0.000000e+00, %16778
  br i1 %16779, label %16780, label %16797

16780:                                            ; preds = %16777
  %16781 = load double, ptr %471, align 8, !tbaa !11
  %16782 = fcmp olt double 0.000000e+00, %16781
  br i1 %16782, label %16783, label %16797

16783:                                            ; preds = %16780
  %16784 = load double, ptr %470, align 8, !tbaa !11
  %16785 = fneg double %16784
  %16786 = load double, ptr %471, align 8, !tbaa !11
  %16787 = fcmp olt double %16785, %16786
  br i1 %16787, label %16788, label %16790

16788:                                            ; preds = %16783
  %16789 = load double, ptr %471, align 8, !tbaa !11
  br label %16793

16790:                                            ; preds = %16783
  %16791 = load double, ptr %470, align 8, !tbaa !11
  %16792 = fneg double %16791
  br label %16793

16793:                                            ; preds = %16790, %16788
  %16794 = phi double [ %16789, %16788 ], [ %16792, %16790 ]
  store double %16794, ptr %471, align 8, !tbaa !11
  %16795 = load double, ptr %471, align 8, !tbaa !11
  %16796 = fneg double %16795
  store double %16796, ptr %470, align 8, !tbaa !11
  br label %16797

16797:                                            ; preds = %16793, %16780, %16777, %16773
  br label %16798

16798:                                            ; preds = %16797, %16737
  call void @llvm.lifetime.start.p0(i64 8, ptr %476) #3
  %16799 = load double, ptr %470, align 8, !tbaa !11
  %16800 = fcmp ole double 0.000000e+00, %16799
  %16801 = zext i1 %16800 to i64
  %16802 = select i1 %16800, double 0.000000e+00, double -1.000000e+00
  store double %16802, ptr %476, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %477) #3
  %16803 = load double, ptr %471, align 8, !tbaa !11
  %16804 = fcmp ole double 0.000000e+00, %16803
  %16805 = zext i1 %16804 to i64
  %16806 = select i1 %16804, double 1.000000e+00, double 0.000000e+00
  store double %16806, ptr %477, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %478) #3
  %16807 = load i16, ptr %469, align 2, !tbaa !15
  %16808 = sitofp i16 %16807 to double
  %16809 = load double, ptr %470, align 8, !tbaa !11
  %16810 = fsub double %16808, %16809
  %16811 = load double, ptr %477, align 8, !tbaa !11
  %16812 = load double, ptr %476, align 8, !tbaa !11
  %16813 = fsub double %16811, %16812
  %16814 = fmul double %16810, %16813
  %16815 = load double, ptr %471, align 8, !tbaa !11
  %16816 = load double, ptr %470, align 8, !tbaa !11
  %16817 = fsub double %16815, %16816
  %16818 = fdiv double %16814, %16817
  %16819 = load double, ptr %476, align 8, !tbaa !11
  %16820 = fadd double %16818, %16819
  store double %16820, ptr %478, align 8, !tbaa !11
  %16821 = load double, ptr %476, align 8, !tbaa !11
  %16822 = load double, ptr %478, align 8, !tbaa !11
  %16823 = fcmp ole double 0.000000e+00, %16822
  br i1 %16823, label %16824, label %16827

16824:                                            ; preds = %16798
  %16825 = load double, ptr %478, align 8, !tbaa !11
  %16826 = fadd double %16825, 5.000000e-01
  br label %16830

16827:                                            ; preds = %16798
  %16828 = load double, ptr %478, align 8, !tbaa !11
  %16829 = fsub double %16828, 5.000000e-01
  br label %16830

16830:                                            ; preds = %16827, %16824
  %16831 = phi double [ %16826, %16824 ], [ %16829, %16827 ]
  %16832 = fcmp olt double %16821, %16831
  br i1 %16832, label %16833, label %16887

16833:                                            ; preds = %16830
  %16834 = load double, ptr %478, align 8, !tbaa !11
  %16835 = fcmp ole double 0.000000e+00, %16834
  br i1 %16835, label %16836, label %16839

16836:                                            ; preds = %16833
  %16837 = load double, ptr %478, align 8, !tbaa !11
  %16838 = fadd double %16837, 5.000000e-01
  br label %16842

16839:                                            ; preds = %16833
  %16840 = load double, ptr %478, align 8, !tbaa !11
  %16841 = fsub double %16840, 5.000000e-01
  br label %16842

16842:                                            ; preds = %16839, %16836
  %16843 = phi double [ %16838, %16836 ], [ %16841, %16839 ]
  %16844 = load double, ptr %477, align 8, !tbaa !11
  %16845 = fcmp ole double %16843, %16844
  br i1 %16845, label %16846, label %16857

16846:                                            ; preds = %16842
  %16847 = load double, ptr %478, align 8, !tbaa !11
  %16848 = fcmp ole double 0.000000e+00, %16847
  br i1 %16848, label %16849, label %16852

16849:                                            ; preds = %16846
  %16850 = load double, ptr %478, align 8, !tbaa !11
  %16851 = fadd double %16850, 5.000000e-01
  br label %16855

16852:                                            ; preds = %16846
  %16853 = load double, ptr %478, align 8, !tbaa !11
  %16854 = fsub double %16853, 5.000000e-01
  br label %16855

16855:                                            ; preds = %16852, %16849
  %16856 = phi double [ %16851, %16849 ], [ %16854, %16852 ]
  br label %16885

16857:                                            ; preds = %16842
  %16858 = load double, ptr %478, align 8, !tbaa !11
  %16859 = fcmp ole double 0.000000e+00, %16858
  br i1 %16859, label %16860, label %16863

16860:                                            ; preds = %16857
  %16861 = load double, ptr %478, align 8, !tbaa !11
  %16862 = fadd double %16861, 5.000000e-01
  br label %16866

16863:                                            ; preds = %16857
  %16864 = load double, ptr %478, align 8, !tbaa !11
  %16865 = fsub double %16864, 5.000000e-01
  br label %16866

16866:                                            ; preds = %16863, %16860
  %16867 = phi double [ %16862, %16860 ], [ %16865, %16863 ]
  %16868 = load double, ptr %477, align 8, !tbaa !11
  %16869 = fcmp olt double %16867, %16868
  br i1 %16869, label %16870, label %16881

16870:                                            ; preds = %16866
  %16871 = load double, ptr %478, align 8, !tbaa !11
  %16872 = fcmp ole double 0.000000e+00, %16871
  br i1 %16872, label %16873, label %16876

16873:                                            ; preds = %16870
  %16874 = load double, ptr %478, align 8, !tbaa !11
  %16875 = fadd double %16874, 5.000000e-01
  br label %16879

16876:                                            ; preds = %16870
  %16877 = load double, ptr %478, align 8, !tbaa !11
  %16878 = fsub double %16877, 5.000000e-01
  br label %16879

16879:                                            ; preds = %16876, %16873
  %16880 = phi double [ %16875, %16873 ], [ %16878, %16876 ]
  br label %16883

16881:                                            ; preds = %16866
  %16882 = load double, ptr %477, align 8, !tbaa !11
  br label %16883

16883:                                            ; preds = %16881, %16879
  %16884 = phi double [ %16880, %16879 ], [ %16882, %16881 ]
  br label %16885

16885:                                            ; preds = %16883, %16855
  %16886 = phi double [ %16856, %16855 ], [ %16884, %16883 ]
  br label %16915

16887:                                            ; preds = %16830
  %16888 = load double, ptr %476, align 8, !tbaa !11
  %16889 = load double, ptr %478, align 8, !tbaa !11
  %16890 = fcmp ole double 0.000000e+00, %16889
  br i1 %16890, label %16891, label %16894

16891:                                            ; preds = %16887
  %16892 = load double, ptr %478, align 8, !tbaa !11
  %16893 = fadd double %16892, 5.000000e-01
  br label %16897

16894:                                            ; preds = %16887
  %16895 = load double, ptr %478, align 8, !tbaa !11
  %16896 = fsub double %16895, 5.000000e-01
  br label %16897

16897:                                            ; preds = %16894, %16891
  %16898 = phi double [ %16893, %16891 ], [ %16896, %16894 ]
  %16899 = fcmp olt double %16888, %16898
  br i1 %16899, label %16900, label %16911

16900:                                            ; preds = %16897
  %16901 = load double, ptr %478, align 8, !tbaa !11
  %16902 = fcmp ole double 0.000000e+00, %16901
  br i1 %16902, label %16903, label %16906

16903:                                            ; preds = %16900
  %16904 = load double, ptr %478, align 8, !tbaa !11
  %16905 = fadd double %16904, 5.000000e-01
  br label %16909

16906:                                            ; preds = %16900
  %16907 = load double, ptr %478, align 8, !tbaa !11
  %16908 = fsub double %16907, 5.000000e-01
  br label %16909

16909:                                            ; preds = %16906, %16903
  %16910 = phi double [ %16905, %16903 ], [ %16908, %16906 ]
  br label %16913

16911:                                            ; preds = %16897
  %16912 = load double, ptr %476, align 8, !tbaa !11
  br label %16913

16913:                                            ; preds = %16911, %16909
  %16914 = phi double [ %16910, %16909 ], [ %16912, %16911 ]
  br label %16915

16915:                                            ; preds = %16913, %16885
  %16916 = phi double [ %16886, %16885 ], [ %16914, %16913 ]
  %16917 = fptoui double %16916 to i8
  %16918 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %16917, ptr %16918, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %478) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %477) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %476) #3
  br label %17003

16919:                                            ; preds = %16681, %16678
  %16920 = load i32, ptr %8, align 4, !tbaa !9
  %16921 = icmp ugt i32 6, %16920
  br i1 %16921, label %16950, label %16922

16922:                                            ; preds = %16919
  %16923 = load i32, ptr %8, align 4, !tbaa !9
  %16924 = icmp ugt i32 15, %16923
  br i1 %16924, label %16925, label %16936

16925:                                            ; preds = %16922
  %16926 = load i32, ptr %9, align 4, !tbaa !9
  %16927 = icmp ugt i32 15, %16926
  br i1 %16927, label %16928, label %16933

16928:                                            ; preds = %16925
  %16929 = load i32, ptr %9, align 4, !tbaa !9
  %16930 = load i32, ptr %8, align 4, !tbaa !9
  %16931 = icmp ugt i32 %16929, %16930
  %16932 = zext i1 %16931 to i32
  br label %16934

16933:                                            ; preds = %16925
  br label %16934

16934:                                            ; preds = %16933, %16928
  %16935 = phi i32 [ %16932, %16928 ], [ 0, %16933 ]
  br label %16947

16936:                                            ; preds = %16922
  %16937 = load i32, ptr %9, align 4, !tbaa !9
  %16938 = icmp ugt i32 15, %16937
  br i1 %16938, label %16939, label %16940

16939:                                            ; preds = %16936
  br label %16945

16940:                                            ; preds = %16936
  %16941 = load i32, ptr %9, align 4, !tbaa !9
  %16942 = load i32, ptr %8, align 4, !tbaa !9
  %16943 = icmp ugt i32 %16941, %16942
  %16944 = zext i1 %16943 to i32
  br label %16945

16945:                                            ; preds = %16940, %16939
  %16946 = phi i32 [ 0, %16939 ], [ %16944, %16940 ]
  br label %16947

16947:                                            ; preds = %16945, %16934
  %16948 = phi i32 [ %16935, %16934 ], [ %16946, %16945 ]
  %16949 = icmp ne i32 %16948, 0
  br label %16950

16950:                                            ; preds = %16947, %16919
  %16951 = phi i1 [ true, %16919 ], [ %16949, %16947 ]
  %16952 = zext i1 %16951 to i32
  %16953 = icmp eq i32 0, %16952
  br i1 %16953, label %16954, label %16998

16954:                                            ; preds = %16950
  %16955 = load i16, ptr %469, align 2, !tbaa !15
  %16956 = sext i16 %16955 to i32
  %16957 = sitofp i32 %16956 to double
  %16958 = fcmp olt double -1.000000e+00, %16957
  br i1 %16958, label %16959, label %16982

16959:                                            ; preds = %16954
  %16960 = load i16, ptr %469, align 2, !tbaa !15
  %16961 = sext i16 %16960 to i32
  %16962 = sitofp i32 %16961 to double
  %16963 = fcmp ole double %16962, 1.000000e+00
  br i1 %16963, label %16964, label %16968

16964:                                            ; preds = %16959
  %16965 = load i16, ptr %469, align 2, !tbaa !15
  %16966 = sext i16 %16965 to i32
  %16967 = sitofp i32 %16966 to double
  br label %16980

16968:                                            ; preds = %16959
  %16969 = load i16, ptr %469, align 2, !tbaa !15
  %16970 = sext i16 %16969 to i32
  %16971 = sitofp i32 %16970 to double
  %16972 = fcmp olt double %16971, 1.000000e+00
  br i1 %16972, label %16973, label %16977

16973:                                            ; preds = %16968
  %16974 = load i16, ptr %469, align 2, !tbaa !15
  %16975 = sext i16 %16974 to i32
  %16976 = sitofp i32 %16975 to double
  br label %16978

16977:                                            ; preds = %16968
  br label %16978

16978:                                            ; preds = %16977, %16973
  %16979 = phi double [ %16976, %16973 ], [ 1.000000e+00, %16977 ]
  br label %16980

16980:                                            ; preds = %16978, %16964
  %16981 = phi double [ %16967, %16964 ], [ %16979, %16978 ]
  br label %16994

16982:                                            ; preds = %16954
  %16983 = load i16, ptr %469, align 2, !tbaa !15
  %16984 = sext i16 %16983 to i32
  %16985 = sitofp i32 %16984 to double
  %16986 = fcmp olt double -1.000000e+00, %16985
  br i1 %16986, label %16987, label %16991

16987:                                            ; preds = %16982
  %16988 = load i16, ptr %469, align 2, !tbaa !15
  %16989 = sext i16 %16988 to i32
  %16990 = sitofp i32 %16989 to double
  br label %16992

16991:                                            ; preds = %16982
  br label %16992

16992:                                            ; preds = %16991, %16987
  %16993 = phi double [ %16990, %16987 ], [ -1.000000e+00, %16991 ]
  br label %16994

16994:                                            ; preds = %16992, %16980
  %16995 = phi double [ %16981, %16980 ], [ %16993, %16992 ]
  %16996 = fptoui double %16995 to i8
  %16997 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %16996, ptr %16997, align 1, !tbaa !17
  br label %17002

16998:                                            ; preds = %16950
  %16999 = load i16, ptr %469, align 2, !tbaa !15
  %17000 = trunc i16 %16999 to i8
  %17001 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %17000, ptr %17001, align 1, !tbaa !17
  br label %17002

17002:                                            ; preds = %16998, %16994
  br label %17003

17003:                                            ; preds = %17002, %16915
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %471) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %470) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %469) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %468) #3
  br label %17004

17004:                                            ; preds = %17003
  br label %17005

17005:                                            ; preds = %17004
  br label %19573

17006:                                            ; preds = %15950
  br label %17007

17007:                                            ; preds = %17006
  call void @llvm.lifetime.start.p0(i64 8, ptr %479) #3
  store double 5.000000e-01, ptr %479, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %480) #3
  %17008 = load ptr, ptr %10, align 8, !tbaa !5
  %17009 = load i8, ptr %17008, align 1, !tbaa !17
  store i8 %17009, ptr %480, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %481) #3
  store double 0.000000e+00, ptr %481, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %482) #3
  store double 0.000000e+00, ptr %482, align 8, !tbaa !11
  %17010 = load ptr, ptr %11, align 8, !tbaa !5
  %17011 = icmp ne ptr null, %17010
  br i1 %17011, label %17012, label %17038

17012:                                            ; preds = %17007
  %17013 = load ptr, ptr %12, align 8, !tbaa !5
  %17014 = icmp ne ptr null, %17013
  br i1 %17014, label %17015, label %17030

17015:                                            ; preds = %17012
  %17016 = load ptr, ptr %11, align 8, !tbaa !5
  %17017 = load i8, ptr %17016, align 1, !tbaa !17
  %17018 = sext i8 %17017 to i32
  %17019 = load i8, ptr %480, align 1, !tbaa !17
  %17020 = sext i8 %17019 to i32
  %17021 = icmp sle i32 %17018, %17020
  br i1 %17021, label %17022, label %17030

17022:                                            ; preds = %17015
  %17023 = load i8, ptr %480, align 1, !tbaa !17
  %17024 = sext i8 %17023 to i32
  %17025 = load ptr, ptr %12, align 8, !tbaa !5
  %17026 = load i8, ptr %17025, align 1, !tbaa !17
  %17027 = sext i8 %17026 to i32
  %17028 = icmp sle i32 %17024, %17027
  br i1 %17028, label %17029, label %17030

17029:                                            ; preds = %17022
  br label %17031

17030:                                            ; preds = %17022, %17015, %17012
  call void @__assert_fail(ptr noundef @.str.45, ptr noundef @.str.24, i32 noundef 479, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

17031:                                            ; preds = %17029
  %17032 = load ptr, ptr %11, align 8, !tbaa !5
  %17033 = load i8, ptr %17032, align 1, !tbaa !17
  %17034 = sitofp i8 %17033 to double
  store double %17034, ptr %481, align 8, !tbaa !11
  %17035 = load ptr, ptr %12, align 8, !tbaa !5
  %17036 = load i8, ptr %17035, align 1, !tbaa !17
  %17037 = sitofp i8 %17036 to double
  store double %17037, ptr %482, align 8, !tbaa !11
  br label %17038

17038:                                            ; preds = %17031, %17007
  %17039 = load i32, ptr %8, align 4, !tbaa !9
  %17040 = icmp ule i32 6, %17039
  br i1 %17040, label %17041, label %17279

17041:                                            ; preds = %17038
  %17042 = load double, ptr %481, align 8, !tbaa !11
  %17043 = load double, ptr %482, align 8, !tbaa !11
  %17044 = fcmp olt double %17042, %17043
  br i1 %17044, label %17045, label %17279

17045:                                            ; preds = %17041
  %17046 = load i32, ptr %8, align 4, !tbaa !9
  %17047 = icmp ule i32 15, %17046
  br i1 %17047, label %17048, label %17102

17048:                                            ; preds = %17045
  call void @llvm.lifetime.start.p0(i64 8, ptr %483) #3
  %17049 = load double, ptr %481, align 8, !tbaa !11
  %17050 = fcmp olt double 0.000000e+00, %17049
  br i1 %17050, label %17051, label %17053

17051:                                            ; preds = %17048
  %17052 = load double, ptr %481, align 8, !tbaa !11
  br label %17054

17053:                                            ; preds = %17048
  br label %17054

17054:                                            ; preds = %17053, %17051
  %17055 = phi double [ %17052, %17051 ], [ 0.000000e+00, %17053 ]
  store double %17055, ptr %483, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %484) #3
  %17056 = load double, ptr %482, align 8, !tbaa !11
  %17057 = fcmp olt double 0.000000e+00, %17056
  br i1 %17057, label %17058, label %17060

17058:                                            ; preds = %17054
  %17059 = load double, ptr %482, align 8, !tbaa !11
  br label %17061

17060:                                            ; preds = %17054
  br label %17061

17061:                                            ; preds = %17060, %17058
  %17062 = phi double [ %17059, %17058 ], [ 0.000000e+00, %17060 ]
  store double %17062, ptr %484, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %485) #3
  %17063 = load double, ptr %483, align 8, !tbaa !11
  %17064 = load double, ptr %484, align 8, !tbaa !11
  %17065 = fcmp olt double %17063, %17064
  br i1 %17065, label %17066, label %17074

17066:                                            ; preds = %17061
  %17067 = load double, ptr %482, align 8, !tbaa !11
  %17068 = load double, ptr %481, align 8, !tbaa !11
  %17069 = fsub double %17067, %17068
  %17070 = load double, ptr %484, align 8, !tbaa !11
  %17071 = load double, ptr %483, align 8, !tbaa !11
  %17072 = fsub double %17070, %17071
  %17073 = fdiv double %17069, %17072
  br label %17075

17074:                                            ; preds = %17061
  br label %17075

17075:                                            ; preds = %17074, %17066
  %17076 = phi double [ %17073, %17066 ], [ 1.000000e+00, %17074 ]
  store double %17076, ptr %485, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %486) #3
  %17077 = load double, ptr %485, align 8, !tbaa !11
  %17078 = load i8, ptr %480, align 1, !tbaa !17
  %17079 = sext i8 %17078 to i32
  %17080 = icmp slt i32 0, %17079
  br i1 %17080, label %17081, label %17084

17081:                                            ; preds = %17075
  %17082 = load i8, ptr %480, align 1, !tbaa !17
  %17083 = sext i8 %17082 to i32
  br label %17085

17084:                                            ; preds = %17075
  br label %17085

17085:                                            ; preds = %17084, %17081
  %17086 = phi i32 [ %17083, %17081 ], [ 0, %17084 ]
  %17087 = sitofp i32 %17086 to double
  %17088 = fmul double %17077, %17087
  store double %17088, ptr %486, align 8, !tbaa !11
  %17089 = load double, ptr %486, align 8, !tbaa !11
  %17090 = fcmp ole double 0.000000e+00, %17089
  br i1 %17090, label %17091, label %17094

17091:                                            ; preds = %17085
  %17092 = load double, ptr %486, align 8, !tbaa !11
  %17093 = fadd double %17092, 5.000000e-01
  br label %17097

17094:                                            ; preds = %17085
  %17095 = load double, ptr %486, align 8, !tbaa !11
  %17096 = fsub double %17095, 5.000000e-01
  br label %17097

17097:                                            ; preds = %17094, %17091
  %17098 = phi double [ %17093, %17091 ], [ %17096, %17094 ]
  %17099 = fptosi double %17098 to i8
  store i8 %17099, ptr %480, align 1, !tbaa !17
  %17100 = load double, ptr %483, align 8, !tbaa !11
  store double %17100, ptr %481, align 8, !tbaa !11
  %17101 = load double, ptr %484, align 8, !tbaa !11
  store double %17101, ptr %482, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %486) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %485) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %484) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %483) #3
  br label %17158

17102:                                            ; preds = %17045
  %17103 = load i32, ptr %8, align 4, !tbaa !9
  %17104 = icmp ugt i32 6, %17103
  br i1 %17104, label %17133, label %17105

17105:                                            ; preds = %17102
  %17106 = load i32, ptr %8, align 4, !tbaa !9
  %17107 = icmp ugt i32 15, %17106
  br i1 %17107, label %17108, label %17119

17108:                                            ; preds = %17105
  %17109 = load i32, ptr %9, align 4, !tbaa !9
  %17110 = icmp ugt i32 15, %17109
  br i1 %17110, label %17111, label %17116

17111:                                            ; preds = %17108
  %17112 = load i32, ptr %9, align 4, !tbaa !9
  %17113 = load i32, ptr %8, align 4, !tbaa !9
  %17114 = icmp ugt i32 %17112, %17113
  %17115 = zext i1 %17114 to i32
  br label %17117

17116:                                            ; preds = %17108
  br label %17117

17117:                                            ; preds = %17116, %17111
  %17118 = phi i32 [ %17115, %17111 ], [ 0, %17116 ]
  br label %17130

17119:                                            ; preds = %17105
  %17120 = load i32, ptr %9, align 4, !tbaa !9
  %17121 = icmp ugt i32 15, %17120
  br i1 %17121, label %17122, label %17123

17122:                                            ; preds = %17119
  br label %17128

17123:                                            ; preds = %17119
  %17124 = load i32, ptr %9, align 4, !tbaa !9
  %17125 = load i32, ptr %8, align 4, !tbaa !9
  %17126 = icmp ugt i32 %17124, %17125
  %17127 = zext i1 %17126 to i32
  br label %17128

17128:                                            ; preds = %17123, %17122
  %17129 = phi i32 [ 0, %17122 ], [ %17127, %17123 ]
  br label %17130

17130:                                            ; preds = %17128, %17117
  %17131 = phi i32 [ %17118, %17117 ], [ %17129, %17128 ]
  %17132 = icmp ne i32 %17131, 0
  br label %17133

17133:                                            ; preds = %17130, %17102
  %17134 = phi i1 [ true, %17102 ], [ %17132, %17130 ]
  %17135 = zext i1 %17134 to i32
  %17136 = icmp eq i32 0, %17135
  br i1 %17136, label %17137, label %17157

17137:                                            ; preds = %17133
  %17138 = load double, ptr %481, align 8, !tbaa !11
  %17139 = fcmp ogt double 0.000000e+00, %17138
  br i1 %17139, label %17140, label %17157

17140:                                            ; preds = %17137
  %17141 = load double, ptr %482, align 8, !tbaa !11
  %17142 = fcmp olt double 0.000000e+00, %17141
  br i1 %17142, label %17143, label %17157

17143:                                            ; preds = %17140
  %17144 = load double, ptr %481, align 8, !tbaa !11
  %17145 = fneg double %17144
  %17146 = load double, ptr %482, align 8, !tbaa !11
  %17147 = fcmp olt double %17145, %17146
  br i1 %17147, label %17148, label %17150

17148:                                            ; preds = %17143
  %17149 = load double, ptr %482, align 8, !tbaa !11
  br label %17153

17150:                                            ; preds = %17143
  %17151 = load double, ptr %481, align 8, !tbaa !11
  %17152 = fneg double %17151
  br label %17153

17153:                                            ; preds = %17150, %17148
  %17154 = phi double [ %17149, %17148 ], [ %17152, %17150 ]
  store double %17154, ptr %482, align 8, !tbaa !11
  %17155 = load double, ptr %482, align 8, !tbaa !11
  %17156 = fneg double %17155
  store double %17156, ptr %481, align 8, !tbaa !11
  br label %17157

17157:                                            ; preds = %17153, %17140, %17137, %17133
  br label %17158

17158:                                            ; preds = %17157, %17097
  call void @llvm.lifetime.start.p0(i64 8, ptr %487) #3
  %17159 = load double, ptr %481, align 8, !tbaa !11
  %17160 = fcmp ole double 0.000000e+00, %17159
  %17161 = zext i1 %17160 to i64
  %17162 = select i1 %17160, double 0.000000e+00, double -1.000000e+00
  store double %17162, ptr %487, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %488) #3
  %17163 = load double, ptr %482, align 8, !tbaa !11
  %17164 = fcmp ole double 0.000000e+00, %17163
  %17165 = zext i1 %17164 to i64
  %17166 = select i1 %17164, double 1.000000e+00, double 0.000000e+00
  store double %17166, ptr %488, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %489) #3
  %17167 = load i8, ptr %480, align 1, !tbaa !17
  %17168 = sitofp i8 %17167 to double
  %17169 = load double, ptr %481, align 8, !tbaa !11
  %17170 = fsub double %17168, %17169
  %17171 = load double, ptr %488, align 8, !tbaa !11
  %17172 = load double, ptr %487, align 8, !tbaa !11
  %17173 = fsub double %17171, %17172
  %17174 = fmul double %17170, %17173
  %17175 = load double, ptr %482, align 8, !tbaa !11
  %17176 = load double, ptr %481, align 8, !tbaa !11
  %17177 = fsub double %17175, %17176
  %17178 = fdiv double %17174, %17177
  %17179 = load double, ptr %487, align 8, !tbaa !11
  %17180 = fadd double %17178, %17179
  store double %17180, ptr %489, align 8, !tbaa !11
  %17181 = load double, ptr %487, align 8, !tbaa !11
  %17182 = load double, ptr %489, align 8, !tbaa !11
  %17183 = fcmp ole double 0.000000e+00, %17182
  br i1 %17183, label %17184, label %17187

17184:                                            ; preds = %17158
  %17185 = load double, ptr %489, align 8, !tbaa !11
  %17186 = fadd double %17185, 5.000000e-01
  br label %17190

17187:                                            ; preds = %17158
  %17188 = load double, ptr %489, align 8, !tbaa !11
  %17189 = fsub double %17188, 5.000000e-01
  br label %17190

17190:                                            ; preds = %17187, %17184
  %17191 = phi double [ %17186, %17184 ], [ %17189, %17187 ]
  %17192 = fcmp olt double %17181, %17191
  br i1 %17192, label %17193, label %17247

17193:                                            ; preds = %17190
  %17194 = load double, ptr %489, align 8, !tbaa !11
  %17195 = fcmp ole double 0.000000e+00, %17194
  br i1 %17195, label %17196, label %17199

17196:                                            ; preds = %17193
  %17197 = load double, ptr %489, align 8, !tbaa !11
  %17198 = fadd double %17197, 5.000000e-01
  br label %17202

17199:                                            ; preds = %17193
  %17200 = load double, ptr %489, align 8, !tbaa !11
  %17201 = fsub double %17200, 5.000000e-01
  br label %17202

17202:                                            ; preds = %17199, %17196
  %17203 = phi double [ %17198, %17196 ], [ %17201, %17199 ]
  %17204 = load double, ptr %488, align 8, !tbaa !11
  %17205 = fcmp ole double %17203, %17204
  br i1 %17205, label %17206, label %17217

17206:                                            ; preds = %17202
  %17207 = load double, ptr %489, align 8, !tbaa !11
  %17208 = fcmp ole double 0.000000e+00, %17207
  br i1 %17208, label %17209, label %17212

17209:                                            ; preds = %17206
  %17210 = load double, ptr %489, align 8, !tbaa !11
  %17211 = fadd double %17210, 5.000000e-01
  br label %17215

17212:                                            ; preds = %17206
  %17213 = load double, ptr %489, align 8, !tbaa !11
  %17214 = fsub double %17213, 5.000000e-01
  br label %17215

17215:                                            ; preds = %17212, %17209
  %17216 = phi double [ %17211, %17209 ], [ %17214, %17212 ]
  br label %17245

17217:                                            ; preds = %17202
  %17218 = load double, ptr %489, align 8, !tbaa !11
  %17219 = fcmp ole double 0.000000e+00, %17218
  br i1 %17219, label %17220, label %17223

17220:                                            ; preds = %17217
  %17221 = load double, ptr %489, align 8, !tbaa !11
  %17222 = fadd double %17221, 5.000000e-01
  br label %17226

17223:                                            ; preds = %17217
  %17224 = load double, ptr %489, align 8, !tbaa !11
  %17225 = fsub double %17224, 5.000000e-01
  br label %17226

17226:                                            ; preds = %17223, %17220
  %17227 = phi double [ %17222, %17220 ], [ %17225, %17223 ]
  %17228 = load double, ptr %488, align 8, !tbaa !11
  %17229 = fcmp olt double %17227, %17228
  br i1 %17229, label %17230, label %17241

17230:                                            ; preds = %17226
  %17231 = load double, ptr %489, align 8, !tbaa !11
  %17232 = fcmp ole double 0.000000e+00, %17231
  br i1 %17232, label %17233, label %17236

17233:                                            ; preds = %17230
  %17234 = load double, ptr %489, align 8, !tbaa !11
  %17235 = fadd double %17234, 5.000000e-01
  br label %17239

17236:                                            ; preds = %17230
  %17237 = load double, ptr %489, align 8, !tbaa !11
  %17238 = fsub double %17237, 5.000000e-01
  br label %17239

17239:                                            ; preds = %17236, %17233
  %17240 = phi double [ %17235, %17233 ], [ %17238, %17236 ]
  br label %17243

17241:                                            ; preds = %17226
  %17242 = load double, ptr %488, align 8, !tbaa !11
  br label %17243

17243:                                            ; preds = %17241, %17239
  %17244 = phi double [ %17240, %17239 ], [ %17242, %17241 ]
  br label %17245

17245:                                            ; preds = %17243, %17215
  %17246 = phi double [ %17216, %17215 ], [ %17244, %17243 ]
  br label %17275

17247:                                            ; preds = %17190
  %17248 = load double, ptr %487, align 8, !tbaa !11
  %17249 = load double, ptr %489, align 8, !tbaa !11
  %17250 = fcmp ole double 0.000000e+00, %17249
  br i1 %17250, label %17251, label %17254

17251:                                            ; preds = %17247
  %17252 = load double, ptr %489, align 8, !tbaa !11
  %17253 = fadd double %17252, 5.000000e-01
  br label %17257

17254:                                            ; preds = %17247
  %17255 = load double, ptr %489, align 8, !tbaa !11
  %17256 = fsub double %17255, 5.000000e-01
  br label %17257

17257:                                            ; preds = %17254, %17251
  %17258 = phi double [ %17253, %17251 ], [ %17256, %17254 ]
  %17259 = fcmp olt double %17248, %17258
  br i1 %17259, label %17260, label %17271

17260:                                            ; preds = %17257
  %17261 = load double, ptr %489, align 8, !tbaa !11
  %17262 = fcmp ole double 0.000000e+00, %17261
  br i1 %17262, label %17263, label %17266

17263:                                            ; preds = %17260
  %17264 = load double, ptr %489, align 8, !tbaa !11
  %17265 = fadd double %17264, 5.000000e-01
  br label %17269

17266:                                            ; preds = %17260
  %17267 = load double, ptr %489, align 8, !tbaa !11
  %17268 = fsub double %17267, 5.000000e-01
  br label %17269

17269:                                            ; preds = %17266, %17263
  %17270 = phi double [ %17265, %17263 ], [ %17268, %17266 ]
  br label %17273

17271:                                            ; preds = %17257
  %17272 = load double, ptr %487, align 8, !tbaa !11
  br label %17273

17273:                                            ; preds = %17271, %17269
  %17274 = phi double [ %17270, %17269 ], [ %17272, %17271 ]
  br label %17275

17275:                                            ; preds = %17273, %17245
  %17276 = phi double [ %17246, %17245 ], [ %17274, %17273 ]
  %17277 = fptoui double %17276 to i8
  %17278 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %17277, ptr %17278, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %489) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %488) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %487) #3
  br label %17362

17279:                                            ; preds = %17041, %17038
  %17280 = load i32, ptr %8, align 4, !tbaa !9
  %17281 = icmp ugt i32 6, %17280
  br i1 %17281, label %17310, label %17282

17282:                                            ; preds = %17279
  %17283 = load i32, ptr %8, align 4, !tbaa !9
  %17284 = icmp ugt i32 15, %17283
  br i1 %17284, label %17285, label %17296

17285:                                            ; preds = %17282
  %17286 = load i32, ptr %9, align 4, !tbaa !9
  %17287 = icmp ugt i32 15, %17286
  br i1 %17287, label %17288, label %17293

17288:                                            ; preds = %17285
  %17289 = load i32, ptr %9, align 4, !tbaa !9
  %17290 = load i32, ptr %8, align 4, !tbaa !9
  %17291 = icmp ugt i32 %17289, %17290
  %17292 = zext i1 %17291 to i32
  br label %17294

17293:                                            ; preds = %17285
  br label %17294

17294:                                            ; preds = %17293, %17288
  %17295 = phi i32 [ %17292, %17288 ], [ 0, %17293 ]
  br label %17307

17296:                                            ; preds = %17282
  %17297 = load i32, ptr %9, align 4, !tbaa !9
  %17298 = icmp ugt i32 15, %17297
  br i1 %17298, label %17299, label %17300

17299:                                            ; preds = %17296
  br label %17305

17300:                                            ; preds = %17296
  %17301 = load i32, ptr %9, align 4, !tbaa !9
  %17302 = load i32, ptr %8, align 4, !tbaa !9
  %17303 = icmp ugt i32 %17301, %17302
  %17304 = zext i1 %17303 to i32
  br label %17305

17305:                                            ; preds = %17300, %17299
  %17306 = phi i32 [ 0, %17299 ], [ %17304, %17300 ]
  br label %17307

17307:                                            ; preds = %17305, %17294
  %17308 = phi i32 [ %17295, %17294 ], [ %17306, %17305 ]
  %17309 = icmp ne i32 %17308, 0
  br label %17310

17310:                                            ; preds = %17307, %17279
  %17311 = phi i1 [ true, %17279 ], [ %17309, %17307 ]
  %17312 = zext i1 %17311 to i32
  %17313 = icmp eq i32 0, %17312
  br i1 %17313, label %17314, label %17358

17314:                                            ; preds = %17310
  %17315 = load i8, ptr %480, align 1, !tbaa !17
  %17316 = sext i8 %17315 to i32
  %17317 = sitofp i32 %17316 to double
  %17318 = fcmp olt double -1.000000e+00, %17317
  br i1 %17318, label %17319, label %17342

17319:                                            ; preds = %17314
  %17320 = load i8, ptr %480, align 1, !tbaa !17
  %17321 = sext i8 %17320 to i32
  %17322 = sitofp i32 %17321 to double
  %17323 = fcmp ole double %17322, 1.000000e+00
  br i1 %17323, label %17324, label %17328

17324:                                            ; preds = %17319
  %17325 = load i8, ptr %480, align 1, !tbaa !17
  %17326 = sext i8 %17325 to i32
  %17327 = sitofp i32 %17326 to double
  br label %17340

17328:                                            ; preds = %17319
  %17329 = load i8, ptr %480, align 1, !tbaa !17
  %17330 = sext i8 %17329 to i32
  %17331 = sitofp i32 %17330 to double
  %17332 = fcmp olt double %17331, 1.000000e+00
  br i1 %17332, label %17333, label %17337

17333:                                            ; preds = %17328
  %17334 = load i8, ptr %480, align 1, !tbaa !17
  %17335 = sext i8 %17334 to i32
  %17336 = sitofp i32 %17335 to double
  br label %17338

17337:                                            ; preds = %17328
  br label %17338

17338:                                            ; preds = %17337, %17333
  %17339 = phi double [ %17336, %17333 ], [ 1.000000e+00, %17337 ]
  br label %17340

17340:                                            ; preds = %17338, %17324
  %17341 = phi double [ %17327, %17324 ], [ %17339, %17338 ]
  br label %17354

17342:                                            ; preds = %17314
  %17343 = load i8, ptr %480, align 1, !tbaa !17
  %17344 = sext i8 %17343 to i32
  %17345 = sitofp i32 %17344 to double
  %17346 = fcmp olt double -1.000000e+00, %17345
  br i1 %17346, label %17347, label %17351

17347:                                            ; preds = %17342
  %17348 = load i8, ptr %480, align 1, !tbaa !17
  %17349 = sext i8 %17348 to i32
  %17350 = sitofp i32 %17349 to double
  br label %17352

17351:                                            ; preds = %17342
  br label %17352

17352:                                            ; preds = %17351, %17347
  %17353 = phi double [ %17350, %17347 ], [ -1.000000e+00, %17351 ]
  br label %17354

17354:                                            ; preds = %17352, %17340
  %17355 = phi double [ %17341, %17340 ], [ %17353, %17352 ]
  %17356 = fptoui double %17355 to i8
  %17357 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %17356, ptr %17357, align 1, !tbaa !17
  br label %17361

17358:                                            ; preds = %17310
  %17359 = load i8, ptr %480, align 1, !tbaa !17
  %17360 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %17359, ptr %17360, align 1, !tbaa !17
  br label %17361

17361:                                            ; preds = %17358, %17354
  br label %17362

17362:                                            ; preds = %17361, %17275
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %482) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %481) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %480) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %479) #3
  br label %17363

17363:                                            ; preds = %17362
  br label %17364

17364:                                            ; preds = %17363
  br label %19573

17365:                                            ; preds = %15950
  br label %17366

17366:                                            ; preds = %17365
  call void @llvm.lifetime.start.p0(i64 8, ptr %490) #3
  store double 5.000000e-01, ptr %490, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %491) #3
  %17367 = load ptr, ptr %10, align 8, !tbaa !5
  %17368 = load i64, ptr %17367, align 8, !tbaa !13
  store i64 %17368, ptr %491, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %492) #3
  store double 0.000000e+00, ptr %492, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %493) #3
  store double 0.000000e+00, ptr %493, align 8, !tbaa !11
  %17369 = load ptr, ptr %11, align 8, !tbaa !5
  %17370 = icmp ne ptr null, %17369
  br i1 %17370, label %17371, label %17393

17371:                                            ; preds = %17366
  %17372 = load ptr, ptr %12, align 8, !tbaa !5
  %17373 = icmp ne ptr null, %17372
  br i1 %17373, label %17374, label %17385

17374:                                            ; preds = %17371
  %17375 = load ptr, ptr %11, align 8, !tbaa !5
  %17376 = load i64, ptr %17375, align 8, !tbaa !13
  %17377 = load i64, ptr %491, align 8, !tbaa !13
  %17378 = icmp ule i64 %17376, %17377
  br i1 %17378, label %17379, label %17385

17379:                                            ; preds = %17374
  %17380 = load i64, ptr %491, align 8, !tbaa !13
  %17381 = load ptr, ptr %12, align 8, !tbaa !5
  %17382 = load i64, ptr %17381, align 8, !tbaa !13
  %17383 = icmp ule i64 %17380, %17382
  br i1 %17383, label %17384, label %17385

17384:                                            ; preds = %17379
  br label %17386

17385:                                            ; preds = %17379, %17374, %17371
  call void @__assert_fail(ptr noundef @.str.46, ptr noundef @.str.24, i32 noundef 479, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

17386:                                            ; preds = %17384
  %17387 = load ptr, ptr %11, align 8, !tbaa !5
  %17388 = load i64, ptr %17387, align 8, !tbaa !13
  %17389 = uitofp i64 %17388 to double
  store double %17389, ptr %492, align 8, !tbaa !11
  %17390 = load ptr, ptr %12, align 8, !tbaa !5
  %17391 = load i64, ptr %17390, align 8, !tbaa !13
  %17392 = uitofp i64 %17391 to double
  store double %17392, ptr %493, align 8, !tbaa !11
  br label %17393

17393:                                            ; preds = %17386, %17366
  %17394 = load i32, ptr %8, align 4, !tbaa !9
  %17395 = icmp ule i32 6, %17394
  br i1 %17395, label %17396, label %17632

17396:                                            ; preds = %17393
  %17397 = load double, ptr %492, align 8, !tbaa !11
  %17398 = load double, ptr %493, align 8, !tbaa !11
  %17399 = fcmp olt double %17397, %17398
  br i1 %17399, label %17400, label %17632

17400:                                            ; preds = %17396
  %17401 = load i32, ptr %8, align 4, !tbaa !9
  %17402 = icmp ule i32 15, %17401
  br i1 %17402, label %17403, label %17455

17403:                                            ; preds = %17400
  call void @llvm.lifetime.start.p0(i64 8, ptr %494) #3
  %17404 = load double, ptr %492, align 8, !tbaa !11
  %17405 = fcmp olt double 0.000000e+00, %17404
  br i1 %17405, label %17406, label %17408

17406:                                            ; preds = %17403
  %17407 = load double, ptr %492, align 8, !tbaa !11
  br label %17409

17408:                                            ; preds = %17403
  br label %17409

17409:                                            ; preds = %17408, %17406
  %17410 = phi double [ %17407, %17406 ], [ 0.000000e+00, %17408 ]
  store double %17410, ptr %494, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %495) #3
  %17411 = load double, ptr %493, align 8, !tbaa !11
  %17412 = fcmp olt double 0.000000e+00, %17411
  br i1 %17412, label %17413, label %17415

17413:                                            ; preds = %17409
  %17414 = load double, ptr %493, align 8, !tbaa !11
  br label %17416

17415:                                            ; preds = %17409
  br label %17416

17416:                                            ; preds = %17415, %17413
  %17417 = phi double [ %17414, %17413 ], [ 0.000000e+00, %17415 ]
  store double %17417, ptr %495, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %496) #3
  %17418 = load double, ptr %494, align 8, !tbaa !11
  %17419 = load double, ptr %495, align 8, !tbaa !11
  %17420 = fcmp olt double %17418, %17419
  br i1 %17420, label %17421, label %17429

17421:                                            ; preds = %17416
  %17422 = load double, ptr %493, align 8, !tbaa !11
  %17423 = load double, ptr %492, align 8, !tbaa !11
  %17424 = fsub double %17422, %17423
  %17425 = load double, ptr %495, align 8, !tbaa !11
  %17426 = load double, ptr %494, align 8, !tbaa !11
  %17427 = fsub double %17425, %17426
  %17428 = fdiv double %17424, %17427
  br label %17430

17429:                                            ; preds = %17416
  br label %17430

17430:                                            ; preds = %17429, %17421
  %17431 = phi double [ %17428, %17421 ], [ 1.000000e+00, %17429 ]
  store double %17431, ptr %496, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %497) #3
  %17432 = load double, ptr %496, align 8, !tbaa !11
  %17433 = load i64, ptr %491, align 8, !tbaa !13
  %17434 = icmp ult i64 0, %17433
  br i1 %17434, label %17435, label %17437

17435:                                            ; preds = %17430
  %17436 = load i64, ptr %491, align 8, !tbaa !13
  br label %17438

17437:                                            ; preds = %17430
  br label %17438

17438:                                            ; preds = %17437, %17435
  %17439 = phi i64 [ %17436, %17435 ], [ 0, %17437 ]
  %17440 = uitofp i64 %17439 to double
  %17441 = fmul double %17432, %17440
  store double %17441, ptr %497, align 8, !tbaa !11
  %17442 = load double, ptr %497, align 8, !tbaa !11
  %17443 = fcmp ole double 0.000000e+00, %17442
  br i1 %17443, label %17444, label %17447

17444:                                            ; preds = %17438
  %17445 = load double, ptr %497, align 8, !tbaa !11
  %17446 = fadd double %17445, 5.000000e-01
  br label %17450

17447:                                            ; preds = %17438
  %17448 = load double, ptr %497, align 8, !tbaa !11
  %17449 = fsub double %17448, 5.000000e-01
  br label %17450

17450:                                            ; preds = %17447, %17444
  %17451 = phi double [ %17446, %17444 ], [ %17449, %17447 ]
  %17452 = fptoui double %17451 to i64
  store i64 %17452, ptr %491, align 8, !tbaa !13
  %17453 = load double, ptr %494, align 8, !tbaa !11
  store double %17453, ptr %492, align 8, !tbaa !11
  %17454 = load double, ptr %495, align 8, !tbaa !11
  store double %17454, ptr %493, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %497) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %496) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %495) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %494) #3
  br label %17511

17455:                                            ; preds = %17400
  %17456 = load i32, ptr %8, align 4, !tbaa !9
  %17457 = icmp ugt i32 6, %17456
  br i1 %17457, label %17486, label %17458

17458:                                            ; preds = %17455
  %17459 = load i32, ptr %8, align 4, !tbaa !9
  %17460 = icmp ugt i32 15, %17459
  br i1 %17460, label %17461, label %17472

17461:                                            ; preds = %17458
  %17462 = load i32, ptr %9, align 4, !tbaa !9
  %17463 = icmp ugt i32 15, %17462
  br i1 %17463, label %17464, label %17469

17464:                                            ; preds = %17461
  %17465 = load i32, ptr %9, align 4, !tbaa !9
  %17466 = load i32, ptr %8, align 4, !tbaa !9
  %17467 = icmp ugt i32 %17465, %17466
  %17468 = zext i1 %17467 to i32
  br label %17470

17469:                                            ; preds = %17461
  br label %17470

17470:                                            ; preds = %17469, %17464
  %17471 = phi i32 [ %17468, %17464 ], [ 0, %17469 ]
  br label %17483

17472:                                            ; preds = %17458
  %17473 = load i32, ptr %9, align 4, !tbaa !9
  %17474 = icmp ugt i32 15, %17473
  br i1 %17474, label %17475, label %17476

17475:                                            ; preds = %17472
  br label %17481

17476:                                            ; preds = %17472
  %17477 = load i32, ptr %9, align 4, !tbaa !9
  %17478 = load i32, ptr %8, align 4, !tbaa !9
  %17479 = icmp ugt i32 %17477, %17478
  %17480 = zext i1 %17479 to i32
  br label %17481

17481:                                            ; preds = %17476, %17475
  %17482 = phi i32 [ 0, %17475 ], [ %17480, %17476 ]
  br label %17483

17483:                                            ; preds = %17481, %17470
  %17484 = phi i32 [ %17471, %17470 ], [ %17482, %17481 ]
  %17485 = icmp ne i32 %17484, 0
  br label %17486

17486:                                            ; preds = %17483, %17455
  %17487 = phi i1 [ true, %17455 ], [ %17485, %17483 ]
  %17488 = zext i1 %17487 to i32
  %17489 = icmp eq i32 0, %17488
  br i1 %17489, label %17490, label %17510

17490:                                            ; preds = %17486
  %17491 = load double, ptr %492, align 8, !tbaa !11
  %17492 = fcmp ogt double 0.000000e+00, %17491
  br i1 %17492, label %17493, label %17510

17493:                                            ; preds = %17490
  %17494 = load double, ptr %493, align 8, !tbaa !11
  %17495 = fcmp olt double 0.000000e+00, %17494
  br i1 %17495, label %17496, label %17510

17496:                                            ; preds = %17493
  %17497 = load double, ptr %492, align 8, !tbaa !11
  %17498 = fneg double %17497
  %17499 = load double, ptr %493, align 8, !tbaa !11
  %17500 = fcmp olt double %17498, %17499
  br i1 %17500, label %17501, label %17503

17501:                                            ; preds = %17496
  %17502 = load double, ptr %493, align 8, !tbaa !11
  br label %17506

17503:                                            ; preds = %17496
  %17504 = load double, ptr %492, align 8, !tbaa !11
  %17505 = fneg double %17504
  br label %17506

17506:                                            ; preds = %17503, %17501
  %17507 = phi double [ %17502, %17501 ], [ %17505, %17503 ]
  store double %17507, ptr %493, align 8, !tbaa !11
  %17508 = load double, ptr %493, align 8, !tbaa !11
  %17509 = fneg double %17508
  store double %17509, ptr %492, align 8, !tbaa !11
  br label %17510

17510:                                            ; preds = %17506, %17493, %17490, %17486
  br label %17511

17511:                                            ; preds = %17510, %17450
  call void @llvm.lifetime.start.p0(i64 8, ptr %498) #3
  %17512 = load double, ptr %492, align 8, !tbaa !11
  %17513 = fcmp ole double 0.000000e+00, %17512
  %17514 = zext i1 %17513 to i64
  %17515 = select i1 %17513, double 0.000000e+00, double -1.000000e+00
  store double %17515, ptr %498, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %499) #3
  %17516 = load double, ptr %493, align 8, !tbaa !11
  %17517 = fcmp ole double 0.000000e+00, %17516
  %17518 = zext i1 %17517 to i64
  %17519 = select i1 %17517, double 1.000000e+00, double 0.000000e+00
  store double %17519, ptr %499, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %500) #3
  %17520 = load i64, ptr %491, align 8, !tbaa !13
  %17521 = uitofp i64 %17520 to double
  %17522 = load double, ptr %492, align 8, !tbaa !11
  %17523 = fsub double %17521, %17522
  %17524 = load double, ptr %499, align 8, !tbaa !11
  %17525 = load double, ptr %498, align 8, !tbaa !11
  %17526 = fsub double %17524, %17525
  %17527 = fmul double %17523, %17526
  %17528 = load double, ptr %493, align 8, !tbaa !11
  %17529 = load double, ptr %492, align 8, !tbaa !11
  %17530 = fsub double %17528, %17529
  %17531 = fdiv double %17527, %17530
  %17532 = load double, ptr %498, align 8, !tbaa !11
  %17533 = fadd double %17531, %17532
  store double %17533, ptr %500, align 8, !tbaa !11
  %17534 = load double, ptr %498, align 8, !tbaa !11
  %17535 = load double, ptr %500, align 8, !tbaa !11
  %17536 = fcmp ole double 0.000000e+00, %17535
  br i1 %17536, label %17537, label %17540

17537:                                            ; preds = %17511
  %17538 = load double, ptr %500, align 8, !tbaa !11
  %17539 = fadd double %17538, 5.000000e-01
  br label %17543

17540:                                            ; preds = %17511
  %17541 = load double, ptr %500, align 8, !tbaa !11
  %17542 = fsub double %17541, 5.000000e-01
  br label %17543

17543:                                            ; preds = %17540, %17537
  %17544 = phi double [ %17539, %17537 ], [ %17542, %17540 ]
  %17545 = fcmp olt double %17534, %17544
  br i1 %17545, label %17546, label %17600

17546:                                            ; preds = %17543
  %17547 = load double, ptr %500, align 8, !tbaa !11
  %17548 = fcmp ole double 0.000000e+00, %17547
  br i1 %17548, label %17549, label %17552

17549:                                            ; preds = %17546
  %17550 = load double, ptr %500, align 8, !tbaa !11
  %17551 = fadd double %17550, 5.000000e-01
  br label %17555

17552:                                            ; preds = %17546
  %17553 = load double, ptr %500, align 8, !tbaa !11
  %17554 = fsub double %17553, 5.000000e-01
  br label %17555

17555:                                            ; preds = %17552, %17549
  %17556 = phi double [ %17551, %17549 ], [ %17554, %17552 ]
  %17557 = load double, ptr %499, align 8, !tbaa !11
  %17558 = fcmp ole double %17556, %17557
  br i1 %17558, label %17559, label %17570

17559:                                            ; preds = %17555
  %17560 = load double, ptr %500, align 8, !tbaa !11
  %17561 = fcmp ole double 0.000000e+00, %17560
  br i1 %17561, label %17562, label %17565

17562:                                            ; preds = %17559
  %17563 = load double, ptr %500, align 8, !tbaa !11
  %17564 = fadd double %17563, 5.000000e-01
  br label %17568

17565:                                            ; preds = %17559
  %17566 = load double, ptr %500, align 8, !tbaa !11
  %17567 = fsub double %17566, 5.000000e-01
  br label %17568

17568:                                            ; preds = %17565, %17562
  %17569 = phi double [ %17564, %17562 ], [ %17567, %17565 ]
  br label %17598

17570:                                            ; preds = %17555
  %17571 = load double, ptr %500, align 8, !tbaa !11
  %17572 = fcmp ole double 0.000000e+00, %17571
  br i1 %17572, label %17573, label %17576

17573:                                            ; preds = %17570
  %17574 = load double, ptr %500, align 8, !tbaa !11
  %17575 = fadd double %17574, 5.000000e-01
  br label %17579

17576:                                            ; preds = %17570
  %17577 = load double, ptr %500, align 8, !tbaa !11
  %17578 = fsub double %17577, 5.000000e-01
  br label %17579

17579:                                            ; preds = %17576, %17573
  %17580 = phi double [ %17575, %17573 ], [ %17578, %17576 ]
  %17581 = load double, ptr %499, align 8, !tbaa !11
  %17582 = fcmp olt double %17580, %17581
  br i1 %17582, label %17583, label %17594

17583:                                            ; preds = %17579
  %17584 = load double, ptr %500, align 8, !tbaa !11
  %17585 = fcmp ole double 0.000000e+00, %17584
  br i1 %17585, label %17586, label %17589

17586:                                            ; preds = %17583
  %17587 = load double, ptr %500, align 8, !tbaa !11
  %17588 = fadd double %17587, 5.000000e-01
  br label %17592

17589:                                            ; preds = %17583
  %17590 = load double, ptr %500, align 8, !tbaa !11
  %17591 = fsub double %17590, 5.000000e-01
  br label %17592

17592:                                            ; preds = %17589, %17586
  %17593 = phi double [ %17588, %17586 ], [ %17591, %17589 ]
  br label %17596

17594:                                            ; preds = %17579
  %17595 = load double, ptr %499, align 8, !tbaa !11
  br label %17596

17596:                                            ; preds = %17594, %17592
  %17597 = phi double [ %17593, %17592 ], [ %17595, %17594 ]
  br label %17598

17598:                                            ; preds = %17596, %17568
  %17599 = phi double [ %17569, %17568 ], [ %17597, %17596 ]
  br label %17628

17600:                                            ; preds = %17543
  %17601 = load double, ptr %498, align 8, !tbaa !11
  %17602 = load double, ptr %500, align 8, !tbaa !11
  %17603 = fcmp ole double 0.000000e+00, %17602
  br i1 %17603, label %17604, label %17607

17604:                                            ; preds = %17600
  %17605 = load double, ptr %500, align 8, !tbaa !11
  %17606 = fadd double %17605, 5.000000e-01
  br label %17610

17607:                                            ; preds = %17600
  %17608 = load double, ptr %500, align 8, !tbaa !11
  %17609 = fsub double %17608, 5.000000e-01
  br label %17610

17610:                                            ; preds = %17607, %17604
  %17611 = phi double [ %17606, %17604 ], [ %17609, %17607 ]
  %17612 = fcmp olt double %17601, %17611
  br i1 %17612, label %17613, label %17624

17613:                                            ; preds = %17610
  %17614 = load double, ptr %500, align 8, !tbaa !11
  %17615 = fcmp ole double 0.000000e+00, %17614
  br i1 %17615, label %17616, label %17619

17616:                                            ; preds = %17613
  %17617 = load double, ptr %500, align 8, !tbaa !11
  %17618 = fadd double %17617, 5.000000e-01
  br label %17622

17619:                                            ; preds = %17613
  %17620 = load double, ptr %500, align 8, !tbaa !11
  %17621 = fsub double %17620, 5.000000e-01
  br label %17622

17622:                                            ; preds = %17619, %17616
  %17623 = phi double [ %17618, %17616 ], [ %17621, %17619 ]
  br label %17626

17624:                                            ; preds = %17610
  %17625 = load double, ptr %498, align 8, !tbaa !11
  br label %17626

17626:                                            ; preds = %17624, %17622
  %17627 = phi double [ %17623, %17622 ], [ %17625, %17624 ]
  br label %17628

17628:                                            ; preds = %17626, %17598
  %17629 = phi double [ %17599, %17598 ], [ %17627, %17626 ]
  %17630 = fptoui double %17629 to i8
  %17631 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %17630, ptr %17631, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %500) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %499) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %498) #3
  br label %17709

17632:                                            ; preds = %17396, %17393
  %17633 = load i32, ptr %8, align 4, !tbaa !9
  %17634 = icmp ugt i32 6, %17633
  br i1 %17634, label %17663, label %17635

17635:                                            ; preds = %17632
  %17636 = load i32, ptr %8, align 4, !tbaa !9
  %17637 = icmp ugt i32 15, %17636
  br i1 %17637, label %17638, label %17649

17638:                                            ; preds = %17635
  %17639 = load i32, ptr %9, align 4, !tbaa !9
  %17640 = icmp ugt i32 15, %17639
  br i1 %17640, label %17641, label %17646

17641:                                            ; preds = %17638
  %17642 = load i32, ptr %9, align 4, !tbaa !9
  %17643 = load i32, ptr %8, align 4, !tbaa !9
  %17644 = icmp ugt i32 %17642, %17643
  %17645 = zext i1 %17644 to i32
  br label %17647

17646:                                            ; preds = %17638
  br label %17647

17647:                                            ; preds = %17646, %17641
  %17648 = phi i32 [ %17645, %17641 ], [ 0, %17646 ]
  br label %17660

17649:                                            ; preds = %17635
  %17650 = load i32, ptr %9, align 4, !tbaa !9
  %17651 = icmp ugt i32 15, %17650
  br i1 %17651, label %17652, label %17653

17652:                                            ; preds = %17649
  br label %17658

17653:                                            ; preds = %17649
  %17654 = load i32, ptr %9, align 4, !tbaa !9
  %17655 = load i32, ptr %8, align 4, !tbaa !9
  %17656 = icmp ugt i32 %17654, %17655
  %17657 = zext i1 %17656 to i32
  br label %17658

17658:                                            ; preds = %17653, %17652
  %17659 = phi i32 [ 0, %17652 ], [ %17657, %17653 ]
  br label %17660

17660:                                            ; preds = %17658, %17647
  %17661 = phi i32 [ %17648, %17647 ], [ %17659, %17658 ]
  %17662 = icmp ne i32 %17661, 0
  br label %17663

17663:                                            ; preds = %17660, %17632
  %17664 = phi i1 [ true, %17632 ], [ %17662, %17660 ]
  %17665 = zext i1 %17664 to i32
  %17666 = icmp eq i32 0, %17665
  br i1 %17666, label %17667, label %17704

17667:                                            ; preds = %17663
  %17668 = load i64, ptr %491, align 8, !tbaa !13
  %17669 = uitofp i64 %17668 to double
  %17670 = fcmp olt double -1.000000e+00, %17669
  br i1 %17670, label %17671, label %17690

17671:                                            ; preds = %17667
  %17672 = load i64, ptr %491, align 8, !tbaa !13
  %17673 = uitofp i64 %17672 to double
  %17674 = fcmp ole double %17673, 1.000000e+00
  br i1 %17674, label %17675, label %17678

17675:                                            ; preds = %17671
  %17676 = load i64, ptr %491, align 8, !tbaa !13
  %17677 = uitofp i64 %17676 to double
  br label %17688

17678:                                            ; preds = %17671
  %17679 = load i64, ptr %491, align 8, !tbaa !13
  %17680 = uitofp i64 %17679 to double
  %17681 = fcmp olt double %17680, 1.000000e+00
  br i1 %17681, label %17682, label %17685

17682:                                            ; preds = %17678
  %17683 = load i64, ptr %491, align 8, !tbaa !13
  %17684 = uitofp i64 %17683 to double
  br label %17686

17685:                                            ; preds = %17678
  br label %17686

17686:                                            ; preds = %17685, %17682
  %17687 = phi double [ %17684, %17682 ], [ 1.000000e+00, %17685 ]
  br label %17688

17688:                                            ; preds = %17686, %17675
  %17689 = phi double [ %17677, %17675 ], [ %17687, %17686 ]
  br label %17700

17690:                                            ; preds = %17667
  %17691 = load i64, ptr %491, align 8, !tbaa !13
  %17692 = uitofp i64 %17691 to double
  %17693 = fcmp olt double -1.000000e+00, %17692
  br i1 %17693, label %17694, label %17697

17694:                                            ; preds = %17690
  %17695 = load i64, ptr %491, align 8, !tbaa !13
  %17696 = uitofp i64 %17695 to double
  br label %17698

17697:                                            ; preds = %17690
  br label %17698

17698:                                            ; preds = %17697, %17694
  %17699 = phi double [ %17696, %17694 ], [ -1.000000e+00, %17697 ]
  br label %17700

17700:                                            ; preds = %17698, %17688
  %17701 = phi double [ %17689, %17688 ], [ %17699, %17698 ]
  %17702 = fptoui double %17701 to i8
  %17703 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %17702, ptr %17703, align 1, !tbaa !17
  br label %17708

17704:                                            ; preds = %17663
  %17705 = load i64, ptr %491, align 8, !tbaa !13
  %17706 = trunc i64 %17705 to i8
  %17707 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %17706, ptr %17707, align 1, !tbaa !17
  br label %17708

17708:                                            ; preds = %17704, %17700
  br label %17709

17709:                                            ; preds = %17708, %17628
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %493) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %492) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %491) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %490) #3
  br label %17710

17710:                                            ; preds = %17709
  br label %17711

17711:                                            ; preds = %17710
  br label %19573

17712:                                            ; preds = %15950
  br label %17713

17713:                                            ; preds = %17712
  call void @llvm.lifetime.start.p0(i64 8, ptr %501) #3
  store double 5.000000e-01, ptr %501, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %502) #3
  %17714 = load ptr, ptr %10, align 8, !tbaa !5
  %17715 = load i32, ptr %17714, align 4, !tbaa !9
  store i32 %17715, ptr %502, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %503) #3
  store double 0.000000e+00, ptr %503, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %504) #3
  store double 0.000000e+00, ptr %504, align 8, !tbaa !11
  %17716 = load ptr, ptr %11, align 8, !tbaa !5
  %17717 = icmp ne ptr null, %17716
  br i1 %17717, label %17718, label %17740

17718:                                            ; preds = %17713
  %17719 = load ptr, ptr %12, align 8, !tbaa !5
  %17720 = icmp ne ptr null, %17719
  br i1 %17720, label %17721, label %17732

17721:                                            ; preds = %17718
  %17722 = load ptr, ptr %11, align 8, !tbaa !5
  %17723 = load i32, ptr %17722, align 4, !tbaa !9
  %17724 = load i32, ptr %502, align 4, !tbaa !9
  %17725 = icmp ule i32 %17723, %17724
  br i1 %17725, label %17726, label %17732

17726:                                            ; preds = %17721
  %17727 = load i32, ptr %502, align 4, !tbaa !9
  %17728 = load ptr, ptr %12, align 8, !tbaa !5
  %17729 = load i32, ptr %17728, align 4, !tbaa !9
  %17730 = icmp ule i32 %17727, %17729
  br i1 %17730, label %17731, label %17732

17731:                                            ; preds = %17726
  br label %17733

17732:                                            ; preds = %17726, %17721, %17718
  call void @__assert_fail(ptr noundef @.str.47, ptr noundef @.str.24, i32 noundef 479, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

17733:                                            ; preds = %17731
  %17734 = load ptr, ptr %11, align 8, !tbaa !5
  %17735 = load i32, ptr %17734, align 4, !tbaa !9
  %17736 = uitofp i32 %17735 to double
  store double %17736, ptr %503, align 8, !tbaa !11
  %17737 = load ptr, ptr %12, align 8, !tbaa !5
  %17738 = load i32, ptr %17737, align 4, !tbaa !9
  %17739 = uitofp i32 %17738 to double
  store double %17739, ptr %504, align 8, !tbaa !11
  br label %17740

17740:                                            ; preds = %17733, %17713
  %17741 = load i32, ptr %8, align 4, !tbaa !9
  %17742 = icmp ule i32 6, %17741
  br i1 %17742, label %17743, label %17979

17743:                                            ; preds = %17740
  %17744 = load double, ptr %503, align 8, !tbaa !11
  %17745 = load double, ptr %504, align 8, !tbaa !11
  %17746 = fcmp olt double %17744, %17745
  br i1 %17746, label %17747, label %17979

17747:                                            ; preds = %17743
  %17748 = load i32, ptr %8, align 4, !tbaa !9
  %17749 = icmp ule i32 15, %17748
  br i1 %17749, label %17750, label %17802

17750:                                            ; preds = %17747
  call void @llvm.lifetime.start.p0(i64 8, ptr %505) #3
  %17751 = load double, ptr %503, align 8, !tbaa !11
  %17752 = fcmp olt double 0.000000e+00, %17751
  br i1 %17752, label %17753, label %17755

17753:                                            ; preds = %17750
  %17754 = load double, ptr %503, align 8, !tbaa !11
  br label %17756

17755:                                            ; preds = %17750
  br label %17756

17756:                                            ; preds = %17755, %17753
  %17757 = phi double [ %17754, %17753 ], [ 0.000000e+00, %17755 ]
  store double %17757, ptr %505, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %506) #3
  %17758 = load double, ptr %504, align 8, !tbaa !11
  %17759 = fcmp olt double 0.000000e+00, %17758
  br i1 %17759, label %17760, label %17762

17760:                                            ; preds = %17756
  %17761 = load double, ptr %504, align 8, !tbaa !11
  br label %17763

17762:                                            ; preds = %17756
  br label %17763

17763:                                            ; preds = %17762, %17760
  %17764 = phi double [ %17761, %17760 ], [ 0.000000e+00, %17762 ]
  store double %17764, ptr %506, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %507) #3
  %17765 = load double, ptr %505, align 8, !tbaa !11
  %17766 = load double, ptr %506, align 8, !tbaa !11
  %17767 = fcmp olt double %17765, %17766
  br i1 %17767, label %17768, label %17776

17768:                                            ; preds = %17763
  %17769 = load double, ptr %504, align 8, !tbaa !11
  %17770 = load double, ptr %503, align 8, !tbaa !11
  %17771 = fsub double %17769, %17770
  %17772 = load double, ptr %506, align 8, !tbaa !11
  %17773 = load double, ptr %505, align 8, !tbaa !11
  %17774 = fsub double %17772, %17773
  %17775 = fdiv double %17771, %17774
  br label %17777

17776:                                            ; preds = %17763
  br label %17777

17777:                                            ; preds = %17776, %17768
  %17778 = phi double [ %17775, %17768 ], [ 1.000000e+00, %17776 ]
  store double %17778, ptr %507, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %508) #3
  %17779 = load double, ptr %507, align 8, !tbaa !11
  %17780 = load i32, ptr %502, align 4, !tbaa !9
  %17781 = icmp ult i32 0, %17780
  br i1 %17781, label %17782, label %17784

17782:                                            ; preds = %17777
  %17783 = load i32, ptr %502, align 4, !tbaa !9
  br label %17785

17784:                                            ; preds = %17777
  br label %17785

17785:                                            ; preds = %17784, %17782
  %17786 = phi i32 [ %17783, %17782 ], [ 0, %17784 ]
  %17787 = uitofp i32 %17786 to double
  %17788 = fmul double %17779, %17787
  store double %17788, ptr %508, align 8, !tbaa !11
  %17789 = load double, ptr %508, align 8, !tbaa !11
  %17790 = fcmp ole double 0.000000e+00, %17789
  br i1 %17790, label %17791, label %17794

17791:                                            ; preds = %17785
  %17792 = load double, ptr %508, align 8, !tbaa !11
  %17793 = fadd double %17792, 5.000000e-01
  br label %17797

17794:                                            ; preds = %17785
  %17795 = load double, ptr %508, align 8, !tbaa !11
  %17796 = fsub double %17795, 5.000000e-01
  br label %17797

17797:                                            ; preds = %17794, %17791
  %17798 = phi double [ %17793, %17791 ], [ %17796, %17794 ]
  %17799 = fptoui double %17798 to i32
  store i32 %17799, ptr %502, align 4, !tbaa !9
  %17800 = load double, ptr %505, align 8, !tbaa !11
  store double %17800, ptr %503, align 8, !tbaa !11
  %17801 = load double, ptr %506, align 8, !tbaa !11
  store double %17801, ptr %504, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %508) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %507) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %506) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %505) #3
  br label %17858

17802:                                            ; preds = %17747
  %17803 = load i32, ptr %8, align 4, !tbaa !9
  %17804 = icmp ugt i32 6, %17803
  br i1 %17804, label %17833, label %17805

17805:                                            ; preds = %17802
  %17806 = load i32, ptr %8, align 4, !tbaa !9
  %17807 = icmp ugt i32 15, %17806
  br i1 %17807, label %17808, label %17819

17808:                                            ; preds = %17805
  %17809 = load i32, ptr %9, align 4, !tbaa !9
  %17810 = icmp ugt i32 15, %17809
  br i1 %17810, label %17811, label %17816

17811:                                            ; preds = %17808
  %17812 = load i32, ptr %9, align 4, !tbaa !9
  %17813 = load i32, ptr %8, align 4, !tbaa !9
  %17814 = icmp ugt i32 %17812, %17813
  %17815 = zext i1 %17814 to i32
  br label %17817

17816:                                            ; preds = %17808
  br label %17817

17817:                                            ; preds = %17816, %17811
  %17818 = phi i32 [ %17815, %17811 ], [ 0, %17816 ]
  br label %17830

17819:                                            ; preds = %17805
  %17820 = load i32, ptr %9, align 4, !tbaa !9
  %17821 = icmp ugt i32 15, %17820
  br i1 %17821, label %17822, label %17823

17822:                                            ; preds = %17819
  br label %17828

17823:                                            ; preds = %17819
  %17824 = load i32, ptr %9, align 4, !tbaa !9
  %17825 = load i32, ptr %8, align 4, !tbaa !9
  %17826 = icmp ugt i32 %17824, %17825
  %17827 = zext i1 %17826 to i32
  br label %17828

17828:                                            ; preds = %17823, %17822
  %17829 = phi i32 [ 0, %17822 ], [ %17827, %17823 ]
  br label %17830

17830:                                            ; preds = %17828, %17817
  %17831 = phi i32 [ %17818, %17817 ], [ %17829, %17828 ]
  %17832 = icmp ne i32 %17831, 0
  br label %17833

17833:                                            ; preds = %17830, %17802
  %17834 = phi i1 [ true, %17802 ], [ %17832, %17830 ]
  %17835 = zext i1 %17834 to i32
  %17836 = icmp eq i32 0, %17835
  br i1 %17836, label %17837, label %17857

17837:                                            ; preds = %17833
  %17838 = load double, ptr %503, align 8, !tbaa !11
  %17839 = fcmp ogt double 0.000000e+00, %17838
  br i1 %17839, label %17840, label %17857

17840:                                            ; preds = %17837
  %17841 = load double, ptr %504, align 8, !tbaa !11
  %17842 = fcmp olt double 0.000000e+00, %17841
  br i1 %17842, label %17843, label %17857

17843:                                            ; preds = %17840
  %17844 = load double, ptr %503, align 8, !tbaa !11
  %17845 = fneg double %17844
  %17846 = load double, ptr %504, align 8, !tbaa !11
  %17847 = fcmp olt double %17845, %17846
  br i1 %17847, label %17848, label %17850

17848:                                            ; preds = %17843
  %17849 = load double, ptr %504, align 8, !tbaa !11
  br label %17853

17850:                                            ; preds = %17843
  %17851 = load double, ptr %503, align 8, !tbaa !11
  %17852 = fneg double %17851
  br label %17853

17853:                                            ; preds = %17850, %17848
  %17854 = phi double [ %17849, %17848 ], [ %17852, %17850 ]
  store double %17854, ptr %504, align 8, !tbaa !11
  %17855 = load double, ptr %504, align 8, !tbaa !11
  %17856 = fneg double %17855
  store double %17856, ptr %503, align 8, !tbaa !11
  br label %17857

17857:                                            ; preds = %17853, %17840, %17837, %17833
  br label %17858

17858:                                            ; preds = %17857, %17797
  call void @llvm.lifetime.start.p0(i64 8, ptr %509) #3
  %17859 = load double, ptr %503, align 8, !tbaa !11
  %17860 = fcmp ole double 0.000000e+00, %17859
  %17861 = zext i1 %17860 to i64
  %17862 = select i1 %17860, double 0.000000e+00, double -1.000000e+00
  store double %17862, ptr %509, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %510) #3
  %17863 = load double, ptr %504, align 8, !tbaa !11
  %17864 = fcmp ole double 0.000000e+00, %17863
  %17865 = zext i1 %17864 to i64
  %17866 = select i1 %17864, double 1.000000e+00, double 0.000000e+00
  store double %17866, ptr %510, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %511) #3
  %17867 = load i32, ptr %502, align 4, !tbaa !9
  %17868 = uitofp i32 %17867 to double
  %17869 = load double, ptr %503, align 8, !tbaa !11
  %17870 = fsub double %17868, %17869
  %17871 = load double, ptr %510, align 8, !tbaa !11
  %17872 = load double, ptr %509, align 8, !tbaa !11
  %17873 = fsub double %17871, %17872
  %17874 = fmul double %17870, %17873
  %17875 = load double, ptr %504, align 8, !tbaa !11
  %17876 = load double, ptr %503, align 8, !tbaa !11
  %17877 = fsub double %17875, %17876
  %17878 = fdiv double %17874, %17877
  %17879 = load double, ptr %509, align 8, !tbaa !11
  %17880 = fadd double %17878, %17879
  store double %17880, ptr %511, align 8, !tbaa !11
  %17881 = load double, ptr %509, align 8, !tbaa !11
  %17882 = load double, ptr %511, align 8, !tbaa !11
  %17883 = fcmp ole double 0.000000e+00, %17882
  br i1 %17883, label %17884, label %17887

17884:                                            ; preds = %17858
  %17885 = load double, ptr %511, align 8, !tbaa !11
  %17886 = fadd double %17885, 5.000000e-01
  br label %17890

17887:                                            ; preds = %17858
  %17888 = load double, ptr %511, align 8, !tbaa !11
  %17889 = fsub double %17888, 5.000000e-01
  br label %17890

17890:                                            ; preds = %17887, %17884
  %17891 = phi double [ %17886, %17884 ], [ %17889, %17887 ]
  %17892 = fcmp olt double %17881, %17891
  br i1 %17892, label %17893, label %17947

17893:                                            ; preds = %17890
  %17894 = load double, ptr %511, align 8, !tbaa !11
  %17895 = fcmp ole double 0.000000e+00, %17894
  br i1 %17895, label %17896, label %17899

17896:                                            ; preds = %17893
  %17897 = load double, ptr %511, align 8, !tbaa !11
  %17898 = fadd double %17897, 5.000000e-01
  br label %17902

17899:                                            ; preds = %17893
  %17900 = load double, ptr %511, align 8, !tbaa !11
  %17901 = fsub double %17900, 5.000000e-01
  br label %17902

17902:                                            ; preds = %17899, %17896
  %17903 = phi double [ %17898, %17896 ], [ %17901, %17899 ]
  %17904 = load double, ptr %510, align 8, !tbaa !11
  %17905 = fcmp ole double %17903, %17904
  br i1 %17905, label %17906, label %17917

17906:                                            ; preds = %17902
  %17907 = load double, ptr %511, align 8, !tbaa !11
  %17908 = fcmp ole double 0.000000e+00, %17907
  br i1 %17908, label %17909, label %17912

17909:                                            ; preds = %17906
  %17910 = load double, ptr %511, align 8, !tbaa !11
  %17911 = fadd double %17910, 5.000000e-01
  br label %17915

17912:                                            ; preds = %17906
  %17913 = load double, ptr %511, align 8, !tbaa !11
  %17914 = fsub double %17913, 5.000000e-01
  br label %17915

17915:                                            ; preds = %17912, %17909
  %17916 = phi double [ %17911, %17909 ], [ %17914, %17912 ]
  br label %17945

17917:                                            ; preds = %17902
  %17918 = load double, ptr %511, align 8, !tbaa !11
  %17919 = fcmp ole double 0.000000e+00, %17918
  br i1 %17919, label %17920, label %17923

17920:                                            ; preds = %17917
  %17921 = load double, ptr %511, align 8, !tbaa !11
  %17922 = fadd double %17921, 5.000000e-01
  br label %17926

17923:                                            ; preds = %17917
  %17924 = load double, ptr %511, align 8, !tbaa !11
  %17925 = fsub double %17924, 5.000000e-01
  br label %17926

17926:                                            ; preds = %17923, %17920
  %17927 = phi double [ %17922, %17920 ], [ %17925, %17923 ]
  %17928 = load double, ptr %510, align 8, !tbaa !11
  %17929 = fcmp olt double %17927, %17928
  br i1 %17929, label %17930, label %17941

17930:                                            ; preds = %17926
  %17931 = load double, ptr %511, align 8, !tbaa !11
  %17932 = fcmp ole double 0.000000e+00, %17931
  br i1 %17932, label %17933, label %17936

17933:                                            ; preds = %17930
  %17934 = load double, ptr %511, align 8, !tbaa !11
  %17935 = fadd double %17934, 5.000000e-01
  br label %17939

17936:                                            ; preds = %17930
  %17937 = load double, ptr %511, align 8, !tbaa !11
  %17938 = fsub double %17937, 5.000000e-01
  br label %17939

17939:                                            ; preds = %17936, %17933
  %17940 = phi double [ %17935, %17933 ], [ %17938, %17936 ]
  br label %17943

17941:                                            ; preds = %17926
  %17942 = load double, ptr %510, align 8, !tbaa !11
  br label %17943

17943:                                            ; preds = %17941, %17939
  %17944 = phi double [ %17940, %17939 ], [ %17942, %17941 ]
  br label %17945

17945:                                            ; preds = %17943, %17915
  %17946 = phi double [ %17916, %17915 ], [ %17944, %17943 ]
  br label %17975

17947:                                            ; preds = %17890
  %17948 = load double, ptr %509, align 8, !tbaa !11
  %17949 = load double, ptr %511, align 8, !tbaa !11
  %17950 = fcmp ole double 0.000000e+00, %17949
  br i1 %17950, label %17951, label %17954

17951:                                            ; preds = %17947
  %17952 = load double, ptr %511, align 8, !tbaa !11
  %17953 = fadd double %17952, 5.000000e-01
  br label %17957

17954:                                            ; preds = %17947
  %17955 = load double, ptr %511, align 8, !tbaa !11
  %17956 = fsub double %17955, 5.000000e-01
  br label %17957

17957:                                            ; preds = %17954, %17951
  %17958 = phi double [ %17953, %17951 ], [ %17956, %17954 ]
  %17959 = fcmp olt double %17948, %17958
  br i1 %17959, label %17960, label %17971

17960:                                            ; preds = %17957
  %17961 = load double, ptr %511, align 8, !tbaa !11
  %17962 = fcmp ole double 0.000000e+00, %17961
  br i1 %17962, label %17963, label %17966

17963:                                            ; preds = %17960
  %17964 = load double, ptr %511, align 8, !tbaa !11
  %17965 = fadd double %17964, 5.000000e-01
  br label %17969

17966:                                            ; preds = %17960
  %17967 = load double, ptr %511, align 8, !tbaa !11
  %17968 = fsub double %17967, 5.000000e-01
  br label %17969

17969:                                            ; preds = %17966, %17963
  %17970 = phi double [ %17965, %17963 ], [ %17968, %17966 ]
  br label %17973

17971:                                            ; preds = %17957
  %17972 = load double, ptr %509, align 8, !tbaa !11
  br label %17973

17973:                                            ; preds = %17971, %17969
  %17974 = phi double [ %17970, %17969 ], [ %17972, %17971 ]
  br label %17975

17975:                                            ; preds = %17973, %17945
  %17976 = phi double [ %17946, %17945 ], [ %17974, %17973 ]
  %17977 = fptoui double %17976 to i8
  %17978 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %17977, ptr %17978, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %511) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %510) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %509) #3
  br label %18056

17979:                                            ; preds = %17743, %17740
  %17980 = load i32, ptr %8, align 4, !tbaa !9
  %17981 = icmp ugt i32 6, %17980
  br i1 %17981, label %18010, label %17982

17982:                                            ; preds = %17979
  %17983 = load i32, ptr %8, align 4, !tbaa !9
  %17984 = icmp ugt i32 15, %17983
  br i1 %17984, label %17985, label %17996

17985:                                            ; preds = %17982
  %17986 = load i32, ptr %9, align 4, !tbaa !9
  %17987 = icmp ugt i32 15, %17986
  br i1 %17987, label %17988, label %17993

17988:                                            ; preds = %17985
  %17989 = load i32, ptr %9, align 4, !tbaa !9
  %17990 = load i32, ptr %8, align 4, !tbaa !9
  %17991 = icmp ugt i32 %17989, %17990
  %17992 = zext i1 %17991 to i32
  br label %17994

17993:                                            ; preds = %17985
  br label %17994

17994:                                            ; preds = %17993, %17988
  %17995 = phi i32 [ %17992, %17988 ], [ 0, %17993 ]
  br label %18007

17996:                                            ; preds = %17982
  %17997 = load i32, ptr %9, align 4, !tbaa !9
  %17998 = icmp ugt i32 15, %17997
  br i1 %17998, label %17999, label %18000

17999:                                            ; preds = %17996
  br label %18005

18000:                                            ; preds = %17996
  %18001 = load i32, ptr %9, align 4, !tbaa !9
  %18002 = load i32, ptr %8, align 4, !tbaa !9
  %18003 = icmp ugt i32 %18001, %18002
  %18004 = zext i1 %18003 to i32
  br label %18005

18005:                                            ; preds = %18000, %17999
  %18006 = phi i32 [ 0, %17999 ], [ %18004, %18000 ]
  br label %18007

18007:                                            ; preds = %18005, %17994
  %18008 = phi i32 [ %17995, %17994 ], [ %18006, %18005 ]
  %18009 = icmp ne i32 %18008, 0
  br label %18010

18010:                                            ; preds = %18007, %17979
  %18011 = phi i1 [ true, %17979 ], [ %18009, %18007 ]
  %18012 = zext i1 %18011 to i32
  %18013 = icmp eq i32 0, %18012
  br i1 %18013, label %18014, label %18051

18014:                                            ; preds = %18010
  %18015 = load i32, ptr %502, align 4, !tbaa !9
  %18016 = uitofp i32 %18015 to double
  %18017 = fcmp olt double -1.000000e+00, %18016
  br i1 %18017, label %18018, label %18037

18018:                                            ; preds = %18014
  %18019 = load i32, ptr %502, align 4, !tbaa !9
  %18020 = uitofp i32 %18019 to double
  %18021 = fcmp ole double %18020, 1.000000e+00
  br i1 %18021, label %18022, label %18025

18022:                                            ; preds = %18018
  %18023 = load i32, ptr %502, align 4, !tbaa !9
  %18024 = uitofp i32 %18023 to double
  br label %18035

18025:                                            ; preds = %18018
  %18026 = load i32, ptr %502, align 4, !tbaa !9
  %18027 = uitofp i32 %18026 to double
  %18028 = fcmp olt double %18027, 1.000000e+00
  br i1 %18028, label %18029, label %18032

18029:                                            ; preds = %18025
  %18030 = load i32, ptr %502, align 4, !tbaa !9
  %18031 = uitofp i32 %18030 to double
  br label %18033

18032:                                            ; preds = %18025
  br label %18033

18033:                                            ; preds = %18032, %18029
  %18034 = phi double [ %18031, %18029 ], [ 1.000000e+00, %18032 ]
  br label %18035

18035:                                            ; preds = %18033, %18022
  %18036 = phi double [ %18024, %18022 ], [ %18034, %18033 ]
  br label %18047

18037:                                            ; preds = %18014
  %18038 = load i32, ptr %502, align 4, !tbaa !9
  %18039 = uitofp i32 %18038 to double
  %18040 = fcmp olt double -1.000000e+00, %18039
  br i1 %18040, label %18041, label %18044

18041:                                            ; preds = %18037
  %18042 = load i32, ptr %502, align 4, !tbaa !9
  %18043 = uitofp i32 %18042 to double
  br label %18045

18044:                                            ; preds = %18037
  br label %18045

18045:                                            ; preds = %18044, %18041
  %18046 = phi double [ %18043, %18041 ], [ -1.000000e+00, %18044 ]
  br label %18047

18047:                                            ; preds = %18045, %18035
  %18048 = phi double [ %18036, %18035 ], [ %18046, %18045 ]
  %18049 = fptoui double %18048 to i8
  %18050 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %18049, ptr %18050, align 1, !tbaa !17
  br label %18055

18051:                                            ; preds = %18010
  %18052 = load i32, ptr %502, align 4, !tbaa !9
  %18053 = trunc i32 %18052 to i8
  %18054 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %18053, ptr %18054, align 1, !tbaa !17
  br label %18055

18055:                                            ; preds = %18051, %18047
  br label %18056

18056:                                            ; preds = %18055, %17975
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %504) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %503) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %502) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %501) #3
  br label %18057

18057:                                            ; preds = %18056
  br label %18058

18058:                                            ; preds = %18057
  br label %19573

18059:                                            ; preds = %15950
  br label %18060

18060:                                            ; preds = %18059
  call void @llvm.lifetime.start.p0(i64 8, ptr %512) #3
  store double 5.000000e-01, ptr %512, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %513) #3
  %18061 = load ptr, ptr %10, align 8, !tbaa !5
  %18062 = load i16, ptr %18061, align 2, !tbaa !15
  store i16 %18062, ptr %513, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %514) #3
  store double 0.000000e+00, ptr %514, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %515) #3
  store double 0.000000e+00, ptr %515, align 8, !tbaa !11
  %18063 = load ptr, ptr %11, align 8, !tbaa !5
  %18064 = icmp ne ptr null, %18063
  br i1 %18064, label %18065, label %18091

18065:                                            ; preds = %18060
  %18066 = load ptr, ptr %12, align 8, !tbaa !5
  %18067 = icmp ne ptr null, %18066
  br i1 %18067, label %18068, label %18083

18068:                                            ; preds = %18065
  %18069 = load ptr, ptr %11, align 8, !tbaa !5
  %18070 = load i16, ptr %18069, align 2, !tbaa !15
  %18071 = zext i16 %18070 to i32
  %18072 = load i16, ptr %513, align 2, !tbaa !15
  %18073 = zext i16 %18072 to i32
  %18074 = icmp sle i32 %18071, %18073
  br i1 %18074, label %18075, label %18083

18075:                                            ; preds = %18068
  %18076 = load i16, ptr %513, align 2, !tbaa !15
  %18077 = zext i16 %18076 to i32
  %18078 = load ptr, ptr %12, align 8, !tbaa !5
  %18079 = load i16, ptr %18078, align 2, !tbaa !15
  %18080 = zext i16 %18079 to i32
  %18081 = icmp sle i32 %18077, %18080
  br i1 %18081, label %18082, label %18083

18082:                                            ; preds = %18075
  br label %18084

18083:                                            ; preds = %18075, %18068, %18065
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.24, i32 noundef 479, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

18084:                                            ; preds = %18082
  %18085 = load ptr, ptr %11, align 8, !tbaa !5
  %18086 = load i16, ptr %18085, align 2, !tbaa !15
  %18087 = uitofp i16 %18086 to double
  store double %18087, ptr %514, align 8, !tbaa !11
  %18088 = load ptr, ptr %12, align 8, !tbaa !5
  %18089 = load i16, ptr %18088, align 2, !tbaa !15
  %18090 = uitofp i16 %18089 to double
  store double %18090, ptr %515, align 8, !tbaa !11
  br label %18091

18091:                                            ; preds = %18084, %18060
  %18092 = load i32, ptr %8, align 4, !tbaa !9
  %18093 = icmp ule i32 6, %18092
  br i1 %18093, label %18094, label %18332

18094:                                            ; preds = %18091
  %18095 = load double, ptr %514, align 8, !tbaa !11
  %18096 = load double, ptr %515, align 8, !tbaa !11
  %18097 = fcmp olt double %18095, %18096
  br i1 %18097, label %18098, label %18332

18098:                                            ; preds = %18094
  %18099 = load i32, ptr %8, align 4, !tbaa !9
  %18100 = icmp ule i32 15, %18099
  br i1 %18100, label %18101, label %18155

18101:                                            ; preds = %18098
  call void @llvm.lifetime.start.p0(i64 8, ptr %516) #3
  %18102 = load double, ptr %514, align 8, !tbaa !11
  %18103 = fcmp olt double 0.000000e+00, %18102
  br i1 %18103, label %18104, label %18106

18104:                                            ; preds = %18101
  %18105 = load double, ptr %514, align 8, !tbaa !11
  br label %18107

18106:                                            ; preds = %18101
  br label %18107

18107:                                            ; preds = %18106, %18104
  %18108 = phi double [ %18105, %18104 ], [ 0.000000e+00, %18106 ]
  store double %18108, ptr %516, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %517) #3
  %18109 = load double, ptr %515, align 8, !tbaa !11
  %18110 = fcmp olt double 0.000000e+00, %18109
  br i1 %18110, label %18111, label %18113

18111:                                            ; preds = %18107
  %18112 = load double, ptr %515, align 8, !tbaa !11
  br label %18114

18113:                                            ; preds = %18107
  br label %18114

18114:                                            ; preds = %18113, %18111
  %18115 = phi double [ %18112, %18111 ], [ 0.000000e+00, %18113 ]
  store double %18115, ptr %517, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %518) #3
  %18116 = load double, ptr %516, align 8, !tbaa !11
  %18117 = load double, ptr %517, align 8, !tbaa !11
  %18118 = fcmp olt double %18116, %18117
  br i1 %18118, label %18119, label %18127

18119:                                            ; preds = %18114
  %18120 = load double, ptr %515, align 8, !tbaa !11
  %18121 = load double, ptr %514, align 8, !tbaa !11
  %18122 = fsub double %18120, %18121
  %18123 = load double, ptr %517, align 8, !tbaa !11
  %18124 = load double, ptr %516, align 8, !tbaa !11
  %18125 = fsub double %18123, %18124
  %18126 = fdiv double %18122, %18125
  br label %18128

18127:                                            ; preds = %18114
  br label %18128

18128:                                            ; preds = %18127, %18119
  %18129 = phi double [ %18126, %18119 ], [ 1.000000e+00, %18127 ]
  store double %18129, ptr %518, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %519) #3
  %18130 = load double, ptr %518, align 8, !tbaa !11
  %18131 = load i16, ptr %513, align 2, !tbaa !15
  %18132 = zext i16 %18131 to i32
  %18133 = icmp slt i32 0, %18132
  br i1 %18133, label %18134, label %18137

18134:                                            ; preds = %18128
  %18135 = load i16, ptr %513, align 2, !tbaa !15
  %18136 = zext i16 %18135 to i32
  br label %18138

18137:                                            ; preds = %18128
  br label %18138

18138:                                            ; preds = %18137, %18134
  %18139 = phi i32 [ %18136, %18134 ], [ 0, %18137 ]
  %18140 = sitofp i32 %18139 to double
  %18141 = fmul double %18130, %18140
  store double %18141, ptr %519, align 8, !tbaa !11
  %18142 = load double, ptr %519, align 8, !tbaa !11
  %18143 = fcmp ole double 0.000000e+00, %18142
  br i1 %18143, label %18144, label %18147

18144:                                            ; preds = %18138
  %18145 = load double, ptr %519, align 8, !tbaa !11
  %18146 = fadd double %18145, 5.000000e-01
  br label %18150

18147:                                            ; preds = %18138
  %18148 = load double, ptr %519, align 8, !tbaa !11
  %18149 = fsub double %18148, 5.000000e-01
  br label %18150

18150:                                            ; preds = %18147, %18144
  %18151 = phi double [ %18146, %18144 ], [ %18149, %18147 ]
  %18152 = fptoui double %18151 to i16
  store i16 %18152, ptr %513, align 2, !tbaa !15
  %18153 = load double, ptr %516, align 8, !tbaa !11
  store double %18153, ptr %514, align 8, !tbaa !11
  %18154 = load double, ptr %517, align 8, !tbaa !11
  store double %18154, ptr %515, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %519) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %518) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %517) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %516) #3
  br label %18211

18155:                                            ; preds = %18098
  %18156 = load i32, ptr %8, align 4, !tbaa !9
  %18157 = icmp ugt i32 6, %18156
  br i1 %18157, label %18186, label %18158

18158:                                            ; preds = %18155
  %18159 = load i32, ptr %8, align 4, !tbaa !9
  %18160 = icmp ugt i32 15, %18159
  br i1 %18160, label %18161, label %18172

18161:                                            ; preds = %18158
  %18162 = load i32, ptr %9, align 4, !tbaa !9
  %18163 = icmp ugt i32 15, %18162
  br i1 %18163, label %18164, label %18169

18164:                                            ; preds = %18161
  %18165 = load i32, ptr %9, align 4, !tbaa !9
  %18166 = load i32, ptr %8, align 4, !tbaa !9
  %18167 = icmp ugt i32 %18165, %18166
  %18168 = zext i1 %18167 to i32
  br label %18170

18169:                                            ; preds = %18161
  br label %18170

18170:                                            ; preds = %18169, %18164
  %18171 = phi i32 [ %18168, %18164 ], [ 0, %18169 ]
  br label %18183

18172:                                            ; preds = %18158
  %18173 = load i32, ptr %9, align 4, !tbaa !9
  %18174 = icmp ugt i32 15, %18173
  br i1 %18174, label %18175, label %18176

18175:                                            ; preds = %18172
  br label %18181

18176:                                            ; preds = %18172
  %18177 = load i32, ptr %9, align 4, !tbaa !9
  %18178 = load i32, ptr %8, align 4, !tbaa !9
  %18179 = icmp ugt i32 %18177, %18178
  %18180 = zext i1 %18179 to i32
  br label %18181

18181:                                            ; preds = %18176, %18175
  %18182 = phi i32 [ 0, %18175 ], [ %18180, %18176 ]
  br label %18183

18183:                                            ; preds = %18181, %18170
  %18184 = phi i32 [ %18171, %18170 ], [ %18182, %18181 ]
  %18185 = icmp ne i32 %18184, 0
  br label %18186

18186:                                            ; preds = %18183, %18155
  %18187 = phi i1 [ true, %18155 ], [ %18185, %18183 ]
  %18188 = zext i1 %18187 to i32
  %18189 = icmp eq i32 0, %18188
  br i1 %18189, label %18190, label %18210

18190:                                            ; preds = %18186
  %18191 = load double, ptr %514, align 8, !tbaa !11
  %18192 = fcmp ogt double 0.000000e+00, %18191
  br i1 %18192, label %18193, label %18210

18193:                                            ; preds = %18190
  %18194 = load double, ptr %515, align 8, !tbaa !11
  %18195 = fcmp olt double 0.000000e+00, %18194
  br i1 %18195, label %18196, label %18210

18196:                                            ; preds = %18193
  %18197 = load double, ptr %514, align 8, !tbaa !11
  %18198 = fneg double %18197
  %18199 = load double, ptr %515, align 8, !tbaa !11
  %18200 = fcmp olt double %18198, %18199
  br i1 %18200, label %18201, label %18203

18201:                                            ; preds = %18196
  %18202 = load double, ptr %515, align 8, !tbaa !11
  br label %18206

18203:                                            ; preds = %18196
  %18204 = load double, ptr %514, align 8, !tbaa !11
  %18205 = fneg double %18204
  br label %18206

18206:                                            ; preds = %18203, %18201
  %18207 = phi double [ %18202, %18201 ], [ %18205, %18203 ]
  store double %18207, ptr %515, align 8, !tbaa !11
  %18208 = load double, ptr %515, align 8, !tbaa !11
  %18209 = fneg double %18208
  store double %18209, ptr %514, align 8, !tbaa !11
  br label %18210

18210:                                            ; preds = %18206, %18193, %18190, %18186
  br label %18211

18211:                                            ; preds = %18210, %18150
  call void @llvm.lifetime.start.p0(i64 8, ptr %520) #3
  %18212 = load double, ptr %514, align 8, !tbaa !11
  %18213 = fcmp ole double 0.000000e+00, %18212
  %18214 = zext i1 %18213 to i64
  %18215 = select i1 %18213, double 0.000000e+00, double -1.000000e+00
  store double %18215, ptr %520, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %521) #3
  %18216 = load double, ptr %515, align 8, !tbaa !11
  %18217 = fcmp ole double 0.000000e+00, %18216
  %18218 = zext i1 %18217 to i64
  %18219 = select i1 %18217, double 1.000000e+00, double 0.000000e+00
  store double %18219, ptr %521, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %522) #3
  %18220 = load i16, ptr %513, align 2, !tbaa !15
  %18221 = uitofp i16 %18220 to double
  %18222 = load double, ptr %514, align 8, !tbaa !11
  %18223 = fsub double %18221, %18222
  %18224 = load double, ptr %521, align 8, !tbaa !11
  %18225 = load double, ptr %520, align 8, !tbaa !11
  %18226 = fsub double %18224, %18225
  %18227 = fmul double %18223, %18226
  %18228 = load double, ptr %515, align 8, !tbaa !11
  %18229 = load double, ptr %514, align 8, !tbaa !11
  %18230 = fsub double %18228, %18229
  %18231 = fdiv double %18227, %18230
  %18232 = load double, ptr %520, align 8, !tbaa !11
  %18233 = fadd double %18231, %18232
  store double %18233, ptr %522, align 8, !tbaa !11
  %18234 = load double, ptr %520, align 8, !tbaa !11
  %18235 = load double, ptr %522, align 8, !tbaa !11
  %18236 = fcmp ole double 0.000000e+00, %18235
  br i1 %18236, label %18237, label %18240

18237:                                            ; preds = %18211
  %18238 = load double, ptr %522, align 8, !tbaa !11
  %18239 = fadd double %18238, 5.000000e-01
  br label %18243

18240:                                            ; preds = %18211
  %18241 = load double, ptr %522, align 8, !tbaa !11
  %18242 = fsub double %18241, 5.000000e-01
  br label %18243

18243:                                            ; preds = %18240, %18237
  %18244 = phi double [ %18239, %18237 ], [ %18242, %18240 ]
  %18245 = fcmp olt double %18234, %18244
  br i1 %18245, label %18246, label %18300

18246:                                            ; preds = %18243
  %18247 = load double, ptr %522, align 8, !tbaa !11
  %18248 = fcmp ole double 0.000000e+00, %18247
  br i1 %18248, label %18249, label %18252

18249:                                            ; preds = %18246
  %18250 = load double, ptr %522, align 8, !tbaa !11
  %18251 = fadd double %18250, 5.000000e-01
  br label %18255

18252:                                            ; preds = %18246
  %18253 = load double, ptr %522, align 8, !tbaa !11
  %18254 = fsub double %18253, 5.000000e-01
  br label %18255

18255:                                            ; preds = %18252, %18249
  %18256 = phi double [ %18251, %18249 ], [ %18254, %18252 ]
  %18257 = load double, ptr %521, align 8, !tbaa !11
  %18258 = fcmp ole double %18256, %18257
  br i1 %18258, label %18259, label %18270

18259:                                            ; preds = %18255
  %18260 = load double, ptr %522, align 8, !tbaa !11
  %18261 = fcmp ole double 0.000000e+00, %18260
  br i1 %18261, label %18262, label %18265

18262:                                            ; preds = %18259
  %18263 = load double, ptr %522, align 8, !tbaa !11
  %18264 = fadd double %18263, 5.000000e-01
  br label %18268

18265:                                            ; preds = %18259
  %18266 = load double, ptr %522, align 8, !tbaa !11
  %18267 = fsub double %18266, 5.000000e-01
  br label %18268

18268:                                            ; preds = %18265, %18262
  %18269 = phi double [ %18264, %18262 ], [ %18267, %18265 ]
  br label %18298

18270:                                            ; preds = %18255
  %18271 = load double, ptr %522, align 8, !tbaa !11
  %18272 = fcmp ole double 0.000000e+00, %18271
  br i1 %18272, label %18273, label %18276

18273:                                            ; preds = %18270
  %18274 = load double, ptr %522, align 8, !tbaa !11
  %18275 = fadd double %18274, 5.000000e-01
  br label %18279

18276:                                            ; preds = %18270
  %18277 = load double, ptr %522, align 8, !tbaa !11
  %18278 = fsub double %18277, 5.000000e-01
  br label %18279

18279:                                            ; preds = %18276, %18273
  %18280 = phi double [ %18275, %18273 ], [ %18278, %18276 ]
  %18281 = load double, ptr %521, align 8, !tbaa !11
  %18282 = fcmp olt double %18280, %18281
  br i1 %18282, label %18283, label %18294

18283:                                            ; preds = %18279
  %18284 = load double, ptr %522, align 8, !tbaa !11
  %18285 = fcmp ole double 0.000000e+00, %18284
  br i1 %18285, label %18286, label %18289

18286:                                            ; preds = %18283
  %18287 = load double, ptr %522, align 8, !tbaa !11
  %18288 = fadd double %18287, 5.000000e-01
  br label %18292

18289:                                            ; preds = %18283
  %18290 = load double, ptr %522, align 8, !tbaa !11
  %18291 = fsub double %18290, 5.000000e-01
  br label %18292

18292:                                            ; preds = %18289, %18286
  %18293 = phi double [ %18288, %18286 ], [ %18291, %18289 ]
  br label %18296

18294:                                            ; preds = %18279
  %18295 = load double, ptr %521, align 8, !tbaa !11
  br label %18296

18296:                                            ; preds = %18294, %18292
  %18297 = phi double [ %18293, %18292 ], [ %18295, %18294 ]
  br label %18298

18298:                                            ; preds = %18296, %18268
  %18299 = phi double [ %18269, %18268 ], [ %18297, %18296 ]
  br label %18328

18300:                                            ; preds = %18243
  %18301 = load double, ptr %520, align 8, !tbaa !11
  %18302 = load double, ptr %522, align 8, !tbaa !11
  %18303 = fcmp ole double 0.000000e+00, %18302
  br i1 %18303, label %18304, label %18307

18304:                                            ; preds = %18300
  %18305 = load double, ptr %522, align 8, !tbaa !11
  %18306 = fadd double %18305, 5.000000e-01
  br label %18310

18307:                                            ; preds = %18300
  %18308 = load double, ptr %522, align 8, !tbaa !11
  %18309 = fsub double %18308, 5.000000e-01
  br label %18310

18310:                                            ; preds = %18307, %18304
  %18311 = phi double [ %18306, %18304 ], [ %18309, %18307 ]
  %18312 = fcmp olt double %18301, %18311
  br i1 %18312, label %18313, label %18324

18313:                                            ; preds = %18310
  %18314 = load double, ptr %522, align 8, !tbaa !11
  %18315 = fcmp ole double 0.000000e+00, %18314
  br i1 %18315, label %18316, label %18319

18316:                                            ; preds = %18313
  %18317 = load double, ptr %522, align 8, !tbaa !11
  %18318 = fadd double %18317, 5.000000e-01
  br label %18322

18319:                                            ; preds = %18313
  %18320 = load double, ptr %522, align 8, !tbaa !11
  %18321 = fsub double %18320, 5.000000e-01
  br label %18322

18322:                                            ; preds = %18319, %18316
  %18323 = phi double [ %18318, %18316 ], [ %18321, %18319 ]
  br label %18326

18324:                                            ; preds = %18310
  %18325 = load double, ptr %520, align 8, !tbaa !11
  br label %18326

18326:                                            ; preds = %18324, %18322
  %18327 = phi double [ %18323, %18322 ], [ %18325, %18324 ]
  br label %18328

18328:                                            ; preds = %18326, %18298
  %18329 = phi double [ %18299, %18298 ], [ %18327, %18326 ]
  %18330 = fptoui double %18329 to i8
  %18331 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %18330, ptr %18331, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %522) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %521) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %520) #3
  br label %18416

18332:                                            ; preds = %18094, %18091
  %18333 = load i32, ptr %8, align 4, !tbaa !9
  %18334 = icmp ugt i32 6, %18333
  br i1 %18334, label %18363, label %18335

18335:                                            ; preds = %18332
  %18336 = load i32, ptr %8, align 4, !tbaa !9
  %18337 = icmp ugt i32 15, %18336
  br i1 %18337, label %18338, label %18349

18338:                                            ; preds = %18335
  %18339 = load i32, ptr %9, align 4, !tbaa !9
  %18340 = icmp ugt i32 15, %18339
  br i1 %18340, label %18341, label %18346

18341:                                            ; preds = %18338
  %18342 = load i32, ptr %9, align 4, !tbaa !9
  %18343 = load i32, ptr %8, align 4, !tbaa !9
  %18344 = icmp ugt i32 %18342, %18343
  %18345 = zext i1 %18344 to i32
  br label %18347

18346:                                            ; preds = %18338
  br label %18347

18347:                                            ; preds = %18346, %18341
  %18348 = phi i32 [ %18345, %18341 ], [ 0, %18346 ]
  br label %18360

18349:                                            ; preds = %18335
  %18350 = load i32, ptr %9, align 4, !tbaa !9
  %18351 = icmp ugt i32 15, %18350
  br i1 %18351, label %18352, label %18353

18352:                                            ; preds = %18349
  br label %18358

18353:                                            ; preds = %18349
  %18354 = load i32, ptr %9, align 4, !tbaa !9
  %18355 = load i32, ptr %8, align 4, !tbaa !9
  %18356 = icmp ugt i32 %18354, %18355
  %18357 = zext i1 %18356 to i32
  br label %18358

18358:                                            ; preds = %18353, %18352
  %18359 = phi i32 [ 0, %18352 ], [ %18357, %18353 ]
  br label %18360

18360:                                            ; preds = %18358, %18347
  %18361 = phi i32 [ %18348, %18347 ], [ %18359, %18358 ]
  %18362 = icmp ne i32 %18361, 0
  br label %18363

18363:                                            ; preds = %18360, %18332
  %18364 = phi i1 [ true, %18332 ], [ %18362, %18360 ]
  %18365 = zext i1 %18364 to i32
  %18366 = icmp eq i32 0, %18365
  br i1 %18366, label %18367, label %18411

18367:                                            ; preds = %18363
  %18368 = load i16, ptr %513, align 2, !tbaa !15
  %18369 = zext i16 %18368 to i32
  %18370 = sitofp i32 %18369 to double
  %18371 = fcmp olt double -1.000000e+00, %18370
  br i1 %18371, label %18372, label %18395

18372:                                            ; preds = %18367
  %18373 = load i16, ptr %513, align 2, !tbaa !15
  %18374 = zext i16 %18373 to i32
  %18375 = sitofp i32 %18374 to double
  %18376 = fcmp ole double %18375, 1.000000e+00
  br i1 %18376, label %18377, label %18381

18377:                                            ; preds = %18372
  %18378 = load i16, ptr %513, align 2, !tbaa !15
  %18379 = zext i16 %18378 to i32
  %18380 = sitofp i32 %18379 to double
  br label %18393

18381:                                            ; preds = %18372
  %18382 = load i16, ptr %513, align 2, !tbaa !15
  %18383 = zext i16 %18382 to i32
  %18384 = sitofp i32 %18383 to double
  %18385 = fcmp olt double %18384, 1.000000e+00
  br i1 %18385, label %18386, label %18390

18386:                                            ; preds = %18381
  %18387 = load i16, ptr %513, align 2, !tbaa !15
  %18388 = zext i16 %18387 to i32
  %18389 = sitofp i32 %18388 to double
  br label %18391

18390:                                            ; preds = %18381
  br label %18391

18391:                                            ; preds = %18390, %18386
  %18392 = phi double [ %18389, %18386 ], [ 1.000000e+00, %18390 ]
  br label %18393

18393:                                            ; preds = %18391, %18377
  %18394 = phi double [ %18380, %18377 ], [ %18392, %18391 ]
  br label %18407

18395:                                            ; preds = %18367
  %18396 = load i16, ptr %513, align 2, !tbaa !15
  %18397 = zext i16 %18396 to i32
  %18398 = sitofp i32 %18397 to double
  %18399 = fcmp olt double -1.000000e+00, %18398
  br i1 %18399, label %18400, label %18404

18400:                                            ; preds = %18395
  %18401 = load i16, ptr %513, align 2, !tbaa !15
  %18402 = zext i16 %18401 to i32
  %18403 = sitofp i32 %18402 to double
  br label %18405

18404:                                            ; preds = %18395
  br label %18405

18405:                                            ; preds = %18404, %18400
  %18406 = phi double [ %18403, %18400 ], [ -1.000000e+00, %18404 ]
  br label %18407

18407:                                            ; preds = %18405, %18393
  %18408 = phi double [ %18394, %18393 ], [ %18406, %18405 ]
  %18409 = fptoui double %18408 to i8
  %18410 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %18409, ptr %18410, align 1, !tbaa !17
  br label %18415

18411:                                            ; preds = %18363
  %18412 = load i16, ptr %513, align 2, !tbaa !15
  %18413 = trunc i16 %18412 to i8
  %18414 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %18413, ptr %18414, align 1, !tbaa !17
  br label %18415

18415:                                            ; preds = %18411, %18407
  br label %18416

18416:                                            ; preds = %18415, %18328
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %515) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %514) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %513) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %512) #3
  br label %18417

18417:                                            ; preds = %18416
  br label %18418

18418:                                            ; preds = %18417
  br label %19573

18419:                                            ; preds = %15950
  br label %18420

18420:                                            ; preds = %18419
  call void @llvm.lifetime.start.p0(i64 8, ptr %523) #3
  store double 5.000000e-01, ptr %523, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %524) #3
  %18421 = load ptr, ptr %10, align 8, !tbaa !5
  %18422 = load i8, ptr %18421, align 1, !tbaa !17
  store i8 %18422, ptr %524, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %525) #3
  store double 0.000000e+00, ptr %525, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %526) #3
  store double 0.000000e+00, ptr %526, align 8, !tbaa !11
  %18423 = load ptr, ptr %11, align 8, !tbaa !5
  %18424 = icmp ne ptr null, %18423
  br i1 %18424, label %18425, label %18451

18425:                                            ; preds = %18420
  %18426 = load ptr, ptr %12, align 8, !tbaa !5
  %18427 = icmp ne ptr null, %18426
  br i1 %18427, label %18428, label %18443

18428:                                            ; preds = %18425
  %18429 = load ptr, ptr %11, align 8, !tbaa !5
  %18430 = load i8, ptr %18429, align 1, !tbaa !17
  %18431 = zext i8 %18430 to i32
  %18432 = load i8, ptr %524, align 1, !tbaa !17
  %18433 = zext i8 %18432 to i32
  %18434 = icmp sle i32 %18431, %18433
  br i1 %18434, label %18435, label %18443

18435:                                            ; preds = %18428
  %18436 = load i8, ptr %524, align 1, !tbaa !17
  %18437 = zext i8 %18436 to i32
  %18438 = load ptr, ptr %12, align 8, !tbaa !5
  %18439 = load i8, ptr %18438, align 1, !tbaa !17
  %18440 = zext i8 %18439 to i32
  %18441 = icmp sle i32 %18437, %18440
  br i1 %18441, label %18442, label %18443

18442:                                            ; preds = %18435
  br label %18444

18443:                                            ; preds = %18435, %18428, %18425
  call void @__assert_fail(ptr noundef @.str.49, ptr noundef @.str.24, i32 noundef 479, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

18444:                                            ; preds = %18442
  %18445 = load ptr, ptr %11, align 8, !tbaa !5
  %18446 = load i8, ptr %18445, align 1, !tbaa !17
  %18447 = uitofp i8 %18446 to double
  store double %18447, ptr %525, align 8, !tbaa !11
  %18448 = load ptr, ptr %12, align 8, !tbaa !5
  %18449 = load i8, ptr %18448, align 1, !tbaa !17
  %18450 = uitofp i8 %18449 to double
  store double %18450, ptr %526, align 8, !tbaa !11
  br label %18451

18451:                                            ; preds = %18444, %18420
  %18452 = load i32, ptr %8, align 4, !tbaa !9
  %18453 = icmp ule i32 6, %18452
  br i1 %18453, label %18454, label %18692

18454:                                            ; preds = %18451
  %18455 = load double, ptr %525, align 8, !tbaa !11
  %18456 = load double, ptr %526, align 8, !tbaa !11
  %18457 = fcmp olt double %18455, %18456
  br i1 %18457, label %18458, label %18692

18458:                                            ; preds = %18454
  %18459 = load i32, ptr %8, align 4, !tbaa !9
  %18460 = icmp ule i32 15, %18459
  br i1 %18460, label %18461, label %18515

18461:                                            ; preds = %18458
  call void @llvm.lifetime.start.p0(i64 8, ptr %527) #3
  %18462 = load double, ptr %525, align 8, !tbaa !11
  %18463 = fcmp olt double 0.000000e+00, %18462
  br i1 %18463, label %18464, label %18466

18464:                                            ; preds = %18461
  %18465 = load double, ptr %525, align 8, !tbaa !11
  br label %18467

18466:                                            ; preds = %18461
  br label %18467

18467:                                            ; preds = %18466, %18464
  %18468 = phi double [ %18465, %18464 ], [ 0.000000e+00, %18466 ]
  store double %18468, ptr %527, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %528) #3
  %18469 = load double, ptr %526, align 8, !tbaa !11
  %18470 = fcmp olt double 0.000000e+00, %18469
  br i1 %18470, label %18471, label %18473

18471:                                            ; preds = %18467
  %18472 = load double, ptr %526, align 8, !tbaa !11
  br label %18474

18473:                                            ; preds = %18467
  br label %18474

18474:                                            ; preds = %18473, %18471
  %18475 = phi double [ %18472, %18471 ], [ 0.000000e+00, %18473 ]
  store double %18475, ptr %528, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %529) #3
  %18476 = load double, ptr %527, align 8, !tbaa !11
  %18477 = load double, ptr %528, align 8, !tbaa !11
  %18478 = fcmp olt double %18476, %18477
  br i1 %18478, label %18479, label %18487

18479:                                            ; preds = %18474
  %18480 = load double, ptr %526, align 8, !tbaa !11
  %18481 = load double, ptr %525, align 8, !tbaa !11
  %18482 = fsub double %18480, %18481
  %18483 = load double, ptr %528, align 8, !tbaa !11
  %18484 = load double, ptr %527, align 8, !tbaa !11
  %18485 = fsub double %18483, %18484
  %18486 = fdiv double %18482, %18485
  br label %18488

18487:                                            ; preds = %18474
  br label %18488

18488:                                            ; preds = %18487, %18479
  %18489 = phi double [ %18486, %18479 ], [ 1.000000e+00, %18487 ]
  store double %18489, ptr %529, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %530) #3
  %18490 = load double, ptr %529, align 8, !tbaa !11
  %18491 = load i8, ptr %524, align 1, !tbaa !17
  %18492 = zext i8 %18491 to i32
  %18493 = icmp slt i32 0, %18492
  br i1 %18493, label %18494, label %18497

18494:                                            ; preds = %18488
  %18495 = load i8, ptr %524, align 1, !tbaa !17
  %18496 = zext i8 %18495 to i32
  br label %18498

18497:                                            ; preds = %18488
  br label %18498

18498:                                            ; preds = %18497, %18494
  %18499 = phi i32 [ %18496, %18494 ], [ 0, %18497 ]
  %18500 = sitofp i32 %18499 to double
  %18501 = fmul double %18490, %18500
  store double %18501, ptr %530, align 8, !tbaa !11
  %18502 = load double, ptr %530, align 8, !tbaa !11
  %18503 = fcmp ole double 0.000000e+00, %18502
  br i1 %18503, label %18504, label %18507

18504:                                            ; preds = %18498
  %18505 = load double, ptr %530, align 8, !tbaa !11
  %18506 = fadd double %18505, 5.000000e-01
  br label %18510

18507:                                            ; preds = %18498
  %18508 = load double, ptr %530, align 8, !tbaa !11
  %18509 = fsub double %18508, 5.000000e-01
  br label %18510

18510:                                            ; preds = %18507, %18504
  %18511 = phi double [ %18506, %18504 ], [ %18509, %18507 ]
  %18512 = fptoui double %18511 to i8
  store i8 %18512, ptr %524, align 1, !tbaa !17
  %18513 = load double, ptr %527, align 8, !tbaa !11
  store double %18513, ptr %525, align 8, !tbaa !11
  %18514 = load double, ptr %528, align 8, !tbaa !11
  store double %18514, ptr %526, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %530) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %529) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %528) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %527) #3
  br label %18571

18515:                                            ; preds = %18458
  %18516 = load i32, ptr %8, align 4, !tbaa !9
  %18517 = icmp ugt i32 6, %18516
  br i1 %18517, label %18546, label %18518

18518:                                            ; preds = %18515
  %18519 = load i32, ptr %8, align 4, !tbaa !9
  %18520 = icmp ugt i32 15, %18519
  br i1 %18520, label %18521, label %18532

18521:                                            ; preds = %18518
  %18522 = load i32, ptr %9, align 4, !tbaa !9
  %18523 = icmp ugt i32 15, %18522
  br i1 %18523, label %18524, label %18529

18524:                                            ; preds = %18521
  %18525 = load i32, ptr %9, align 4, !tbaa !9
  %18526 = load i32, ptr %8, align 4, !tbaa !9
  %18527 = icmp ugt i32 %18525, %18526
  %18528 = zext i1 %18527 to i32
  br label %18530

18529:                                            ; preds = %18521
  br label %18530

18530:                                            ; preds = %18529, %18524
  %18531 = phi i32 [ %18528, %18524 ], [ 0, %18529 ]
  br label %18543

18532:                                            ; preds = %18518
  %18533 = load i32, ptr %9, align 4, !tbaa !9
  %18534 = icmp ugt i32 15, %18533
  br i1 %18534, label %18535, label %18536

18535:                                            ; preds = %18532
  br label %18541

18536:                                            ; preds = %18532
  %18537 = load i32, ptr %9, align 4, !tbaa !9
  %18538 = load i32, ptr %8, align 4, !tbaa !9
  %18539 = icmp ugt i32 %18537, %18538
  %18540 = zext i1 %18539 to i32
  br label %18541

18541:                                            ; preds = %18536, %18535
  %18542 = phi i32 [ 0, %18535 ], [ %18540, %18536 ]
  br label %18543

18543:                                            ; preds = %18541, %18530
  %18544 = phi i32 [ %18531, %18530 ], [ %18542, %18541 ]
  %18545 = icmp ne i32 %18544, 0
  br label %18546

18546:                                            ; preds = %18543, %18515
  %18547 = phi i1 [ true, %18515 ], [ %18545, %18543 ]
  %18548 = zext i1 %18547 to i32
  %18549 = icmp eq i32 0, %18548
  br i1 %18549, label %18550, label %18570

18550:                                            ; preds = %18546
  %18551 = load double, ptr %525, align 8, !tbaa !11
  %18552 = fcmp ogt double 0.000000e+00, %18551
  br i1 %18552, label %18553, label %18570

18553:                                            ; preds = %18550
  %18554 = load double, ptr %526, align 8, !tbaa !11
  %18555 = fcmp olt double 0.000000e+00, %18554
  br i1 %18555, label %18556, label %18570

18556:                                            ; preds = %18553
  %18557 = load double, ptr %525, align 8, !tbaa !11
  %18558 = fneg double %18557
  %18559 = load double, ptr %526, align 8, !tbaa !11
  %18560 = fcmp olt double %18558, %18559
  br i1 %18560, label %18561, label %18563

18561:                                            ; preds = %18556
  %18562 = load double, ptr %526, align 8, !tbaa !11
  br label %18566

18563:                                            ; preds = %18556
  %18564 = load double, ptr %525, align 8, !tbaa !11
  %18565 = fneg double %18564
  br label %18566

18566:                                            ; preds = %18563, %18561
  %18567 = phi double [ %18562, %18561 ], [ %18565, %18563 ]
  store double %18567, ptr %526, align 8, !tbaa !11
  %18568 = load double, ptr %526, align 8, !tbaa !11
  %18569 = fneg double %18568
  store double %18569, ptr %525, align 8, !tbaa !11
  br label %18570

18570:                                            ; preds = %18566, %18553, %18550, %18546
  br label %18571

18571:                                            ; preds = %18570, %18510
  call void @llvm.lifetime.start.p0(i64 8, ptr %531) #3
  %18572 = load double, ptr %525, align 8, !tbaa !11
  %18573 = fcmp ole double 0.000000e+00, %18572
  %18574 = zext i1 %18573 to i64
  %18575 = select i1 %18573, double 0.000000e+00, double -1.000000e+00
  store double %18575, ptr %531, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %532) #3
  %18576 = load double, ptr %526, align 8, !tbaa !11
  %18577 = fcmp ole double 0.000000e+00, %18576
  %18578 = zext i1 %18577 to i64
  %18579 = select i1 %18577, double 1.000000e+00, double 0.000000e+00
  store double %18579, ptr %532, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %533) #3
  %18580 = load i8, ptr %524, align 1, !tbaa !17
  %18581 = uitofp i8 %18580 to double
  %18582 = load double, ptr %525, align 8, !tbaa !11
  %18583 = fsub double %18581, %18582
  %18584 = load double, ptr %532, align 8, !tbaa !11
  %18585 = load double, ptr %531, align 8, !tbaa !11
  %18586 = fsub double %18584, %18585
  %18587 = fmul double %18583, %18586
  %18588 = load double, ptr %526, align 8, !tbaa !11
  %18589 = load double, ptr %525, align 8, !tbaa !11
  %18590 = fsub double %18588, %18589
  %18591 = fdiv double %18587, %18590
  %18592 = load double, ptr %531, align 8, !tbaa !11
  %18593 = fadd double %18591, %18592
  store double %18593, ptr %533, align 8, !tbaa !11
  %18594 = load double, ptr %531, align 8, !tbaa !11
  %18595 = load double, ptr %533, align 8, !tbaa !11
  %18596 = fcmp ole double 0.000000e+00, %18595
  br i1 %18596, label %18597, label %18600

18597:                                            ; preds = %18571
  %18598 = load double, ptr %533, align 8, !tbaa !11
  %18599 = fadd double %18598, 5.000000e-01
  br label %18603

18600:                                            ; preds = %18571
  %18601 = load double, ptr %533, align 8, !tbaa !11
  %18602 = fsub double %18601, 5.000000e-01
  br label %18603

18603:                                            ; preds = %18600, %18597
  %18604 = phi double [ %18599, %18597 ], [ %18602, %18600 ]
  %18605 = fcmp olt double %18594, %18604
  br i1 %18605, label %18606, label %18660

18606:                                            ; preds = %18603
  %18607 = load double, ptr %533, align 8, !tbaa !11
  %18608 = fcmp ole double 0.000000e+00, %18607
  br i1 %18608, label %18609, label %18612

18609:                                            ; preds = %18606
  %18610 = load double, ptr %533, align 8, !tbaa !11
  %18611 = fadd double %18610, 5.000000e-01
  br label %18615

18612:                                            ; preds = %18606
  %18613 = load double, ptr %533, align 8, !tbaa !11
  %18614 = fsub double %18613, 5.000000e-01
  br label %18615

18615:                                            ; preds = %18612, %18609
  %18616 = phi double [ %18611, %18609 ], [ %18614, %18612 ]
  %18617 = load double, ptr %532, align 8, !tbaa !11
  %18618 = fcmp ole double %18616, %18617
  br i1 %18618, label %18619, label %18630

18619:                                            ; preds = %18615
  %18620 = load double, ptr %533, align 8, !tbaa !11
  %18621 = fcmp ole double 0.000000e+00, %18620
  br i1 %18621, label %18622, label %18625

18622:                                            ; preds = %18619
  %18623 = load double, ptr %533, align 8, !tbaa !11
  %18624 = fadd double %18623, 5.000000e-01
  br label %18628

18625:                                            ; preds = %18619
  %18626 = load double, ptr %533, align 8, !tbaa !11
  %18627 = fsub double %18626, 5.000000e-01
  br label %18628

18628:                                            ; preds = %18625, %18622
  %18629 = phi double [ %18624, %18622 ], [ %18627, %18625 ]
  br label %18658

18630:                                            ; preds = %18615
  %18631 = load double, ptr %533, align 8, !tbaa !11
  %18632 = fcmp ole double 0.000000e+00, %18631
  br i1 %18632, label %18633, label %18636

18633:                                            ; preds = %18630
  %18634 = load double, ptr %533, align 8, !tbaa !11
  %18635 = fadd double %18634, 5.000000e-01
  br label %18639

18636:                                            ; preds = %18630
  %18637 = load double, ptr %533, align 8, !tbaa !11
  %18638 = fsub double %18637, 5.000000e-01
  br label %18639

18639:                                            ; preds = %18636, %18633
  %18640 = phi double [ %18635, %18633 ], [ %18638, %18636 ]
  %18641 = load double, ptr %532, align 8, !tbaa !11
  %18642 = fcmp olt double %18640, %18641
  br i1 %18642, label %18643, label %18654

18643:                                            ; preds = %18639
  %18644 = load double, ptr %533, align 8, !tbaa !11
  %18645 = fcmp ole double 0.000000e+00, %18644
  br i1 %18645, label %18646, label %18649

18646:                                            ; preds = %18643
  %18647 = load double, ptr %533, align 8, !tbaa !11
  %18648 = fadd double %18647, 5.000000e-01
  br label %18652

18649:                                            ; preds = %18643
  %18650 = load double, ptr %533, align 8, !tbaa !11
  %18651 = fsub double %18650, 5.000000e-01
  br label %18652

18652:                                            ; preds = %18649, %18646
  %18653 = phi double [ %18648, %18646 ], [ %18651, %18649 ]
  br label %18656

18654:                                            ; preds = %18639
  %18655 = load double, ptr %532, align 8, !tbaa !11
  br label %18656

18656:                                            ; preds = %18654, %18652
  %18657 = phi double [ %18653, %18652 ], [ %18655, %18654 ]
  br label %18658

18658:                                            ; preds = %18656, %18628
  %18659 = phi double [ %18629, %18628 ], [ %18657, %18656 ]
  br label %18688

18660:                                            ; preds = %18603
  %18661 = load double, ptr %531, align 8, !tbaa !11
  %18662 = load double, ptr %533, align 8, !tbaa !11
  %18663 = fcmp ole double 0.000000e+00, %18662
  br i1 %18663, label %18664, label %18667

18664:                                            ; preds = %18660
  %18665 = load double, ptr %533, align 8, !tbaa !11
  %18666 = fadd double %18665, 5.000000e-01
  br label %18670

18667:                                            ; preds = %18660
  %18668 = load double, ptr %533, align 8, !tbaa !11
  %18669 = fsub double %18668, 5.000000e-01
  br label %18670

18670:                                            ; preds = %18667, %18664
  %18671 = phi double [ %18666, %18664 ], [ %18669, %18667 ]
  %18672 = fcmp olt double %18661, %18671
  br i1 %18672, label %18673, label %18684

18673:                                            ; preds = %18670
  %18674 = load double, ptr %533, align 8, !tbaa !11
  %18675 = fcmp ole double 0.000000e+00, %18674
  br i1 %18675, label %18676, label %18679

18676:                                            ; preds = %18673
  %18677 = load double, ptr %533, align 8, !tbaa !11
  %18678 = fadd double %18677, 5.000000e-01
  br label %18682

18679:                                            ; preds = %18673
  %18680 = load double, ptr %533, align 8, !tbaa !11
  %18681 = fsub double %18680, 5.000000e-01
  br label %18682

18682:                                            ; preds = %18679, %18676
  %18683 = phi double [ %18678, %18676 ], [ %18681, %18679 ]
  br label %18686

18684:                                            ; preds = %18670
  %18685 = load double, ptr %531, align 8, !tbaa !11
  br label %18686

18686:                                            ; preds = %18684, %18682
  %18687 = phi double [ %18683, %18682 ], [ %18685, %18684 ]
  br label %18688

18688:                                            ; preds = %18686, %18658
  %18689 = phi double [ %18659, %18658 ], [ %18687, %18686 ]
  %18690 = fptoui double %18689 to i8
  %18691 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %18690, ptr %18691, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %533) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %532) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %531) #3
  br label %18775

18692:                                            ; preds = %18454, %18451
  %18693 = load i32, ptr %8, align 4, !tbaa !9
  %18694 = icmp ugt i32 6, %18693
  br i1 %18694, label %18723, label %18695

18695:                                            ; preds = %18692
  %18696 = load i32, ptr %8, align 4, !tbaa !9
  %18697 = icmp ugt i32 15, %18696
  br i1 %18697, label %18698, label %18709

18698:                                            ; preds = %18695
  %18699 = load i32, ptr %9, align 4, !tbaa !9
  %18700 = icmp ugt i32 15, %18699
  br i1 %18700, label %18701, label %18706

18701:                                            ; preds = %18698
  %18702 = load i32, ptr %9, align 4, !tbaa !9
  %18703 = load i32, ptr %8, align 4, !tbaa !9
  %18704 = icmp ugt i32 %18702, %18703
  %18705 = zext i1 %18704 to i32
  br label %18707

18706:                                            ; preds = %18698
  br label %18707

18707:                                            ; preds = %18706, %18701
  %18708 = phi i32 [ %18705, %18701 ], [ 0, %18706 ]
  br label %18720

18709:                                            ; preds = %18695
  %18710 = load i32, ptr %9, align 4, !tbaa !9
  %18711 = icmp ugt i32 15, %18710
  br i1 %18711, label %18712, label %18713

18712:                                            ; preds = %18709
  br label %18718

18713:                                            ; preds = %18709
  %18714 = load i32, ptr %9, align 4, !tbaa !9
  %18715 = load i32, ptr %8, align 4, !tbaa !9
  %18716 = icmp ugt i32 %18714, %18715
  %18717 = zext i1 %18716 to i32
  br label %18718

18718:                                            ; preds = %18713, %18712
  %18719 = phi i32 [ 0, %18712 ], [ %18717, %18713 ]
  br label %18720

18720:                                            ; preds = %18718, %18707
  %18721 = phi i32 [ %18708, %18707 ], [ %18719, %18718 ]
  %18722 = icmp ne i32 %18721, 0
  br label %18723

18723:                                            ; preds = %18720, %18692
  %18724 = phi i1 [ true, %18692 ], [ %18722, %18720 ]
  %18725 = zext i1 %18724 to i32
  %18726 = icmp eq i32 0, %18725
  br i1 %18726, label %18727, label %18771

18727:                                            ; preds = %18723
  %18728 = load i8, ptr %524, align 1, !tbaa !17
  %18729 = zext i8 %18728 to i32
  %18730 = sitofp i32 %18729 to double
  %18731 = fcmp olt double -1.000000e+00, %18730
  br i1 %18731, label %18732, label %18755

18732:                                            ; preds = %18727
  %18733 = load i8, ptr %524, align 1, !tbaa !17
  %18734 = zext i8 %18733 to i32
  %18735 = sitofp i32 %18734 to double
  %18736 = fcmp ole double %18735, 1.000000e+00
  br i1 %18736, label %18737, label %18741

18737:                                            ; preds = %18732
  %18738 = load i8, ptr %524, align 1, !tbaa !17
  %18739 = zext i8 %18738 to i32
  %18740 = sitofp i32 %18739 to double
  br label %18753

18741:                                            ; preds = %18732
  %18742 = load i8, ptr %524, align 1, !tbaa !17
  %18743 = zext i8 %18742 to i32
  %18744 = sitofp i32 %18743 to double
  %18745 = fcmp olt double %18744, 1.000000e+00
  br i1 %18745, label %18746, label %18750

18746:                                            ; preds = %18741
  %18747 = load i8, ptr %524, align 1, !tbaa !17
  %18748 = zext i8 %18747 to i32
  %18749 = sitofp i32 %18748 to double
  br label %18751

18750:                                            ; preds = %18741
  br label %18751

18751:                                            ; preds = %18750, %18746
  %18752 = phi double [ %18749, %18746 ], [ 1.000000e+00, %18750 ]
  br label %18753

18753:                                            ; preds = %18751, %18737
  %18754 = phi double [ %18740, %18737 ], [ %18752, %18751 ]
  br label %18767

18755:                                            ; preds = %18727
  %18756 = load i8, ptr %524, align 1, !tbaa !17
  %18757 = zext i8 %18756 to i32
  %18758 = sitofp i32 %18757 to double
  %18759 = fcmp olt double -1.000000e+00, %18758
  br i1 %18759, label %18760, label %18764

18760:                                            ; preds = %18755
  %18761 = load i8, ptr %524, align 1, !tbaa !17
  %18762 = zext i8 %18761 to i32
  %18763 = sitofp i32 %18762 to double
  br label %18765

18764:                                            ; preds = %18755
  br label %18765

18765:                                            ; preds = %18764, %18760
  %18766 = phi double [ %18763, %18760 ], [ -1.000000e+00, %18764 ]
  br label %18767

18767:                                            ; preds = %18765, %18753
  %18768 = phi double [ %18754, %18753 ], [ %18766, %18765 ]
  %18769 = fptoui double %18768 to i8
  %18770 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %18769, ptr %18770, align 1, !tbaa !17
  br label %18774

18771:                                            ; preds = %18723
  %18772 = load i8, ptr %524, align 1, !tbaa !17
  %18773 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %18772, ptr %18773, align 1, !tbaa !17
  br label %18774

18774:                                            ; preds = %18771, %18767
  br label %18775

18775:                                            ; preds = %18774, %18688
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %526) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %525) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %524) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %523) #3
  br label %18776

18776:                                            ; preds = %18775
  br label %18777

18777:                                            ; preds = %18776
  br label %19573

18778:                                            ; preds = %15950
  br label %18779

18779:                                            ; preds = %18778
  call void @llvm.lifetime.start.p0(i64 8, ptr %534) #3
  store double 5.000000e-01, ptr %534, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %535) #3
  %18780 = load ptr, ptr %10, align 8, !tbaa !5
  %18781 = load double, ptr %18780, align 8, !tbaa !11
  store double %18781, ptr %535, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %536) #3
  store double 0.000000e+00, ptr %536, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %537) #3
  store double 0.000000e+00, ptr %537, align 8, !tbaa !11
  %18782 = load ptr, ptr %11, align 8, !tbaa !5
  %18783 = icmp ne ptr null, %18782
  br i1 %18783, label %18784, label %18808

18784:                                            ; preds = %18779
  %18785 = load double, ptr %535, align 8, !tbaa !11
  %18786 = load double, ptr %535, align 8, !tbaa !11
  %18787 = fcmp oeq double %18785, %18786
  br i1 %18787, label %18788, label %18808

18788:                                            ; preds = %18784
  %18789 = load ptr, ptr %12, align 8, !tbaa !5
  %18790 = icmp ne ptr null, %18789
  br i1 %18790, label %18791, label %18802

18791:                                            ; preds = %18788
  %18792 = load ptr, ptr %11, align 8, !tbaa !5
  %18793 = load double, ptr %18792, align 8, !tbaa !11
  %18794 = load double, ptr %535, align 8, !tbaa !11
  %18795 = fcmp ole double %18793, %18794
  br i1 %18795, label %18796, label %18802

18796:                                            ; preds = %18791
  %18797 = load double, ptr %535, align 8, !tbaa !11
  %18798 = load ptr, ptr %12, align 8, !tbaa !5
  %18799 = load double, ptr %18798, align 8, !tbaa !11
  %18800 = fcmp ole double %18797, %18799
  br i1 %18800, label %18801, label %18802

18801:                                            ; preds = %18796
  br label %18803

18802:                                            ; preds = %18796, %18791, %18788
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.24, i32 noundef 479, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

18803:                                            ; preds = %18801
  %18804 = load ptr, ptr %11, align 8, !tbaa !5
  %18805 = load double, ptr %18804, align 8, !tbaa !11
  store double %18805, ptr %536, align 8, !tbaa !11
  %18806 = load ptr, ptr %12, align 8, !tbaa !5
  %18807 = load double, ptr %18806, align 8, !tbaa !11
  store double %18807, ptr %537, align 8, !tbaa !11
  br label %18808

18808:                                            ; preds = %18803, %18784, %18779
  %18809 = load i32, ptr %8, align 4, !tbaa !9
  %18810 = icmp ule i32 6, %18809
  br i1 %18810, label %18811, label %19034

18811:                                            ; preds = %18808
  %18812 = load double, ptr %536, align 8, !tbaa !11
  %18813 = load double, ptr %537, align 8, !tbaa !11
  %18814 = fcmp olt double %18812, %18813
  br i1 %18814, label %18815, label %19034

18815:                                            ; preds = %18811
  %18816 = load i32, ptr %8, align 4, !tbaa !9
  %18817 = icmp ule i32 15, %18816
  br i1 %18817, label %18818, label %18858

18818:                                            ; preds = %18815
  call void @llvm.lifetime.start.p0(i64 8, ptr %538) #3
  %18819 = load double, ptr %536, align 8, !tbaa !11
  %18820 = fcmp olt double 0.000000e+00, %18819
  br i1 %18820, label %18821, label %18823

18821:                                            ; preds = %18818
  %18822 = load double, ptr %536, align 8, !tbaa !11
  br label %18824

18823:                                            ; preds = %18818
  br label %18824

18824:                                            ; preds = %18823, %18821
  %18825 = phi double [ %18822, %18821 ], [ 0.000000e+00, %18823 ]
  store double %18825, ptr %538, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %539) #3
  %18826 = load double, ptr %537, align 8, !tbaa !11
  %18827 = fcmp olt double 0.000000e+00, %18826
  br i1 %18827, label %18828, label %18830

18828:                                            ; preds = %18824
  %18829 = load double, ptr %537, align 8, !tbaa !11
  br label %18831

18830:                                            ; preds = %18824
  br label %18831

18831:                                            ; preds = %18830, %18828
  %18832 = phi double [ %18829, %18828 ], [ 0.000000e+00, %18830 ]
  store double %18832, ptr %539, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %540) #3
  %18833 = load double, ptr %538, align 8, !tbaa !11
  %18834 = load double, ptr %539, align 8, !tbaa !11
  %18835 = fcmp olt double %18833, %18834
  br i1 %18835, label %18836, label %18844

18836:                                            ; preds = %18831
  %18837 = load double, ptr %537, align 8, !tbaa !11
  %18838 = load double, ptr %536, align 8, !tbaa !11
  %18839 = fsub double %18837, %18838
  %18840 = load double, ptr %539, align 8, !tbaa !11
  %18841 = load double, ptr %538, align 8, !tbaa !11
  %18842 = fsub double %18840, %18841
  %18843 = fdiv double %18839, %18842
  br label %18845

18844:                                            ; preds = %18831
  br label %18845

18845:                                            ; preds = %18844, %18836
  %18846 = phi double [ %18843, %18836 ], [ 1.000000e+00, %18844 ]
  store double %18846, ptr %540, align 8, !tbaa !11
  %18847 = load double, ptr %540, align 8, !tbaa !11
  %18848 = load double, ptr %535, align 8, !tbaa !11
  %18849 = fcmp olt double 0.000000e+00, %18848
  br i1 %18849, label %18850, label %18852

18850:                                            ; preds = %18845
  %18851 = load double, ptr %535, align 8, !tbaa !11
  br label %18853

18852:                                            ; preds = %18845
  br label %18853

18853:                                            ; preds = %18852, %18850
  %18854 = phi double [ %18851, %18850 ], [ 0.000000e+00, %18852 ]
  %18855 = fmul double %18847, %18854
  store double %18855, ptr %535, align 8, !tbaa !11
  %18856 = load double, ptr %538, align 8, !tbaa !11
  store double %18856, ptr %536, align 8, !tbaa !11
  %18857 = load double, ptr %539, align 8, !tbaa !11
  store double %18857, ptr %537, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %540) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %539) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %538) #3
  br label %18914

18858:                                            ; preds = %18815
  %18859 = load i32, ptr %8, align 4, !tbaa !9
  %18860 = icmp ugt i32 6, %18859
  br i1 %18860, label %18889, label %18861

18861:                                            ; preds = %18858
  %18862 = load i32, ptr %8, align 4, !tbaa !9
  %18863 = icmp ugt i32 15, %18862
  br i1 %18863, label %18864, label %18875

18864:                                            ; preds = %18861
  %18865 = load i32, ptr %9, align 4, !tbaa !9
  %18866 = icmp ugt i32 15, %18865
  br i1 %18866, label %18867, label %18872

18867:                                            ; preds = %18864
  %18868 = load i32, ptr %9, align 4, !tbaa !9
  %18869 = load i32, ptr %8, align 4, !tbaa !9
  %18870 = icmp ugt i32 %18868, %18869
  %18871 = zext i1 %18870 to i32
  br label %18873

18872:                                            ; preds = %18864
  br label %18873

18873:                                            ; preds = %18872, %18867
  %18874 = phi i32 [ %18871, %18867 ], [ 0, %18872 ]
  br label %18886

18875:                                            ; preds = %18861
  %18876 = load i32, ptr %9, align 4, !tbaa !9
  %18877 = icmp ugt i32 15, %18876
  br i1 %18877, label %18878, label %18879

18878:                                            ; preds = %18875
  br label %18884

18879:                                            ; preds = %18875
  %18880 = load i32, ptr %9, align 4, !tbaa !9
  %18881 = load i32, ptr %8, align 4, !tbaa !9
  %18882 = icmp ugt i32 %18880, %18881
  %18883 = zext i1 %18882 to i32
  br label %18884

18884:                                            ; preds = %18879, %18878
  %18885 = phi i32 [ 0, %18878 ], [ %18883, %18879 ]
  br label %18886

18886:                                            ; preds = %18884, %18873
  %18887 = phi i32 [ %18874, %18873 ], [ %18885, %18884 ]
  %18888 = icmp ne i32 %18887, 0
  br label %18889

18889:                                            ; preds = %18886, %18858
  %18890 = phi i1 [ true, %18858 ], [ %18888, %18886 ]
  %18891 = zext i1 %18890 to i32
  %18892 = icmp eq i32 0, %18891
  br i1 %18892, label %18893, label %18913

18893:                                            ; preds = %18889
  %18894 = load double, ptr %536, align 8, !tbaa !11
  %18895 = fcmp ogt double 0.000000e+00, %18894
  br i1 %18895, label %18896, label %18913

18896:                                            ; preds = %18893
  %18897 = load double, ptr %537, align 8, !tbaa !11
  %18898 = fcmp olt double 0.000000e+00, %18897
  br i1 %18898, label %18899, label %18913

18899:                                            ; preds = %18896
  %18900 = load double, ptr %536, align 8, !tbaa !11
  %18901 = fneg double %18900
  %18902 = load double, ptr %537, align 8, !tbaa !11
  %18903 = fcmp olt double %18901, %18902
  br i1 %18903, label %18904, label %18906

18904:                                            ; preds = %18899
  %18905 = load double, ptr %537, align 8, !tbaa !11
  br label %18909

18906:                                            ; preds = %18899
  %18907 = load double, ptr %536, align 8, !tbaa !11
  %18908 = fneg double %18907
  br label %18909

18909:                                            ; preds = %18906, %18904
  %18910 = phi double [ %18905, %18904 ], [ %18908, %18906 ]
  store double %18910, ptr %537, align 8, !tbaa !11
  %18911 = load double, ptr %537, align 8, !tbaa !11
  %18912 = fneg double %18911
  store double %18912, ptr %536, align 8, !tbaa !11
  br label %18913

18913:                                            ; preds = %18909, %18896, %18893, %18889
  br label %18914

18914:                                            ; preds = %18913, %18853
  call void @llvm.lifetime.start.p0(i64 8, ptr %541) #3
  %18915 = load double, ptr %536, align 8, !tbaa !11
  %18916 = fcmp ole double 0.000000e+00, %18915
  %18917 = zext i1 %18916 to i64
  %18918 = select i1 %18916, double 0.000000e+00, double -1.000000e+00
  store double %18918, ptr %541, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %542) #3
  %18919 = load double, ptr %537, align 8, !tbaa !11
  %18920 = fcmp ole double 0.000000e+00, %18919
  %18921 = zext i1 %18920 to i64
  %18922 = select i1 %18920, double 1.000000e+00, double 0.000000e+00
  store double %18922, ptr %542, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %543) #3
  %18923 = load double, ptr %535, align 8, !tbaa !11
  %18924 = load double, ptr %536, align 8, !tbaa !11
  %18925 = fsub double %18923, %18924
  %18926 = load double, ptr %542, align 8, !tbaa !11
  %18927 = load double, ptr %541, align 8, !tbaa !11
  %18928 = fsub double %18926, %18927
  %18929 = fmul double %18925, %18928
  %18930 = load double, ptr %537, align 8, !tbaa !11
  %18931 = load double, ptr %536, align 8, !tbaa !11
  %18932 = fsub double %18930, %18931
  %18933 = fdiv double %18929, %18932
  %18934 = load double, ptr %541, align 8, !tbaa !11
  %18935 = fadd double %18933, %18934
  store double %18935, ptr %543, align 8, !tbaa !11
  %18936 = load double, ptr %541, align 8, !tbaa !11
  %18937 = load double, ptr %543, align 8, !tbaa !11
  %18938 = fcmp ole double 0.000000e+00, %18937
  br i1 %18938, label %18939, label %18942

18939:                                            ; preds = %18914
  %18940 = load double, ptr %543, align 8, !tbaa !11
  %18941 = fadd double %18940, 5.000000e-01
  br label %18945

18942:                                            ; preds = %18914
  %18943 = load double, ptr %543, align 8, !tbaa !11
  %18944 = fsub double %18943, 5.000000e-01
  br label %18945

18945:                                            ; preds = %18942, %18939
  %18946 = phi double [ %18941, %18939 ], [ %18944, %18942 ]
  %18947 = fcmp olt double %18936, %18946
  br i1 %18947, label %18948, label %19002

18948:                                            ; preds = %18945
  %18949 = load double, ptr %543, align 8, !tbaa !11
  %18950 = fcmp ole double 0.000000e+00, %18949
  br i1 %18950, label %18951, label %18954

18951:                                            ; preds = %18948
  %18952 = load double, ptr %543, align 8, !tbaa !11
  %18953 = fadd double %18952, 5.000000e-01
  br label %18957

18954:                                            ; preds = %18948
  %18955 = load double, ptr %543, align 8, !tbaa !11
  %18956 = fsub double %18955, 5.000000e-01
  br label %18957

18957:                                            ; preds = %18954, %18951
  %18958 = phi double [ %18953, %18951 ], [ %18956, %18954 ]
  %18959 = load double, ptr %542, align 8, !tbaa !11
  %18960 = fcmp ole double %18958, %18959
  br i1 %18960, label %18961, label %18972

18961:                                            ; preds = %18957
  %18962 = load double, ptr %543, align 8, !tbaa !11
  %18963 = fcmp ole double 0.000000e+00, %18962
  br i1 %18963, label %18964, label %18967

18964:                                            ; preds = %18961
  %18965 = load double, ptr %543, align 8, !tbaa !11
  %18966 = fadd double %18965, 5.000000e-01
  br label %18970

18967:                                            ; preds = %18961
  %18968 = load double, ptr %543, align 8, !tbaa !11
  %18969 = fsub double %18968, 5.000000e-01
  br label %18970

18970:                                            ; preds = %18967, %18964
  %18971 = phi double [ %18966, %18964 ], [ %18969, %18967 ]
  br label %19000

18972:                                            ; preds = %18957
  %18973 = load double, ptr %543, align 8, !tbaa !11
  %18974 = fcmp ole double 0.000000e+00, %18973
  br i1 %18974, label %18975, label %18978

18975:                                            ; preds = %18972
  %18976 = load double, ptr %543, align 8, !tbaa !11
  %18977 = fadd double %18976, 5.000000e-01
  br label %18981

18978:                                            ; preds = %18972
  %18979 = load double, ptr %543, align 8, !tbaa !11
  %18980 = fsub double %18979, 5.000000e-01
  br label %18981

18981:                                            ; preds = %18978, %18975
  %18982 = phi double [ %18977, %18975 ], [ %18980, %18978 ]
  %18983 = load double, ptr %542, align 8, !tbaa !11
  %18984 = fcmp olt double %18982, %18983
  br i1 %18984, label %18985, label %18996

18985:                                            ; preds = %18981
  %18986 = load double, ptr %543, align 8, !tbaa !11
  %18987 = fcmp ole double 0.000000e+00, %18986
  br i1 %18987, label %18988, label %18991

18988:                                            ; preds = %18985
  %18989 = load double, ptr %543, align 8, !tbaa !11
  %18990 = fadd double %18989, 5.000000e-01
  br label %18994

18991:                                            ; preds = %18985
  %18992 = load double, ptr %543, align 8, !tbaa !11
  %18993 = fsub double %18992, 5.000000e-01
  br label %18994

18994:                                            ; preds = %18991, %18988
  %18995 = phi double [ %18990, %18988 ], [ %18993, %18991 ]
  br label %18998

18996:                                            ; preds = %18981
  %18997 = load double, ptr %542, align 8, !tbaa !11
  br label %18998

18998:                                            ; preds = %18996, %18994
  %18999 = phi double [ %18995, %18994 ], [ %18997, %18996 ]
  br label %19000

19000:                                            ; preds = %18998, %18970
  %19001 = phi double [ %18971, %18970 ], [ %18999, %18998 ]
  br label %19030

19002:                                            ; preds = %18945
  %19003 = load double, ptr %541, align 8, !tbaa !11
  %19004 = load double, ptr %543, align 8, !tbaa !11
  %19005 = fcmp ole double 0.000000e+00, %19004
  br i1 %19005, label %19006, label %19009

19006:                                            ; preds = %19002
  %19007 = load double, ptr %543, align 8, !tbaa !11
  %19008 = fadd double %19007, 5.000000e-01
  br label %19012

19009:                                            ; preds = %19002
  %19010 = load double, ptr %543, align 8, !tbaa !11
  %19011 = fsub double %19010, 5.000000e-01
  br label %19012

19012:                                            ; preds = %19009, %19006
  %19013 = phi double [ %19008, %19006 ], [ %19011, %19009 ]
  %19014 = fcmp olt double %19003, %19013
  br i1 %19014, label %19015, label %19026

19015:                                            ; preds = %19012
  %19016 = load double, ptr %543, align 8, !tbaa !11
  %19017 = fcmp ole double 0.000000e+00, %19016
  br i1 %19017, label %19018, label %19021

19018:                                            ; preds = %19015
  %19019 = load double, ptr %543, align 8, !tbaa !11
  %19020 = fadd double %19019, 5.000000e-01
  br label %19024

19021:                                            ; preds = %19015
  %19022 = load double, ptr %543, align 8, !tbaa !11
  %19023 = fsub double %19022, 5.000000e-01
  br label %19024

19024:                                            ; preds = %19021, %19018
  %19025 = phi double [ %19020, %19018 ], [ %19023, %19021 ]
  br label %19028

19026:                                            ; preds = %19012
  %19027 = load double, ptr %541, align 8, !tbaa !11
  br label %19028

19028:                                            ; preds = %19026, %19024
  %19029 = phi double [ %19025, %19024 ], [ %19027, %19026 ]
  br label %19030

19030:                                            ; preds = %19028, %19000
  %19031 = phi double [ %19001, %19000 ], [ %19029, %19028 ]
  %19032 = fptoui double %19031 to i8
  %19033 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %19032, ptr %19033, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %543) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %542) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %541) #3
  br label %19160

19034:                                            ; preds = %18811, %18808
  %19035 = load i32, ptr %8, align 4, !tbaa !9
  %19036 = icmp ugt i32 6, %19035
  br i1 %19036, label %19065, label %19037

19037:                                            ; preds = %19034
  %19038 = load i32, ptr %8, align 4, !tbaa !9
  %19039 = icmp ugt i32 15, %19038
  br i1 %19039, label %19040, label %19051

19040:                                            ; preds = %19037
  %19041 = load i32, ptr %9, align 4, !tbaa !9
  %19042 = icmp ugt i32 15, %19041
  br i1 %19042, label %19043, label %19048

19043:                                            ; preds = %19040
  %19044 = load i32, ptr %9, align 4, !tbaa !9
  %19045 = load i32, ptr %8, align 4, !tbaa !9
  %19046 = icmp ugt i32 %19044, %19045
  %19047 = zext i1 %19046 to i32
  br label %19049

19048:                                            ; preds = %19040
  br label %19049

19049:                                            ; preds = %19048, %19043
  %19050 = phi i32 [ %19047, %19043 ], [ 0, %19048 ]
  br label %19062

19051:                                            ; preds = %19037
  %19052 = load i32, ptr %9, align 4, !tbaa !9
  %19053 = icmp ugt i32 15, %19052
  br i1 %19053, label %19054, label %19055

19054:                                            ; preds = %19051
  br label %19060

19055:                                            ; preds = %19051
  %19056 = load i32, ptr %9, align 4, !tbaa !9
  %19057 = load i32, ptr %8, align 4, !tbaa !9
  %19058 = icmp ugt i32 %19056, %19057
  %19059 = zext i1 %19058 to i32
  br label %19060

19060:                                            ; preds = %19055, %19054
  %19061 = phi i32 [ 0, %19054 ], [ %19059, %19055 ]
  br label %19062

19062:                                            ; preds = %19060, %19049
  %19063 = phi i32 [ %19050, %19049 ], [ %19061, %19060 ]
  %19064 = icmp ne i32 %19063, 0
  br label %19065

19065:                                            ; preds = %19062, %19034
  %19066 = phi i1 [ true, %19034 ], [ %19064, %19062 ]
  %19067 = zext i1 %19066 to i32
  %19068 = icmp eq i32 0, %19067
  br i1 %19068, label %19069, label %19146

19069:                                            ; preds = %19065
  %19070 = load double, ptr %535, align 8, !tbaa !11
  %19071 = fcmp ole double 0.000000e+00, %19070
  br i1 %19071, label %19072, label %19107

19072:                                            ; preds = %19069
  %19073 = load double, ptr %535, align 8, !tbaa !11
  %19074 = fadd double %19073, 5.000000e-01
  %19075 = fcmp olt double -1.000000e+00, %19074
  br i1 %19075, label %19076, label %19095

19076:                                            ; preds = %19072
  %19077 = load double, ptr %535, align 8, !tbaa !11
  %19078 = fadd double %19077, 5.000000e-01
  %19079 = fcmp ole double %19078, 1.000000e+00
  br i1 %19079, label %19080, label %19083

19080:                                            ; preds = %19076
  %19081 = load double, ptr %535, align 8, !tbaa !11
  %19082 = fadd double %19081, 5.000000e-01
  br label %19093

19083:                                            ; preds = %19076
  %19084 = load double, ptr %535, align 8, !tbaa !11
  %19085 = fadd double %19084, 5.000000e-01
  %19086 = fcmp olt double %19085, 1.000000e+00
  br i1 %19086, label %19087, label %19090

19087:                                            ; preds = %19083
  %19088 = load double, ptr %535, align 8, !tbaa !11
  %19089 = fadd double %19088, 5.000000e-01
  br label %19091

19090:                                            ; preds = %19083
  br label %19091

19091:                                            ; preds = %19090, %19087
  %19092 = phi double [ %19089, %19087 ], [ 1.000000e+00, %19090 ]
  br label %19093

19093:                                            ; preds = %19091, %19080
  %19094 = phi double [ %19082, %19080 ], [ %19092, %19091 ]
  br label %19105

19095:                                            ; preds = %19072
  %19096 = load double, ptr %535, align 8, !tbaa !11
  %19097 = fadd double %19096, 5.000000e-01
  %19098 = fcmp olt double -1.000000e+00, %19097
  br i1 %19098, label %19099, label %19102

19099:                                            ; preds = %19095
  %19100 = load double, ptr %535, align 8, !tbaa !11
  %19101 = fadd double %19100, 5.000000e-01
  br label %19103

19102:                                            ; preds = %19095
  br label %19103

19103:                                            ; preds = %19102, %19099
  %19104 = phi double [ %19101, %19099 ], [ -1.000000e+00, %19102 ]
  br label %19105

19105:                                            ; preds = %19103, %19093
  %19106 = phi double [ %19094, %19093 ], [ %19104, %19103 ]
  br label %19142

19107:                                            ; preds = %19069
  %19108 = load double, ptr %535, align 8, !tbaa !11
  %19109 = fsub double %19108, 5.000000e-01
  %19110 = fcmp olt double -1.000000e+00, %19109
  br i1 %19110, label %19111, label %19130

19111:                                            ; preds = %19107
  %19112 = load double, ptr %535, align 8, !tbaa !11
  %19113 = fsub double %19112, 5.000000e-01
  %19114 = fcmp ole double %19113, 1.000000e+00
  br i1 %19114, label %19115, label %19118

19115:                                            ; preds = %19111
  %19116 = load double, ptr %535, align 8, !tbaa !11
  %19117 = fsub double %19116, 5.000000e-01
  br label %19128

19118:                                            ; preds = %19111
  %19119 = load double, ptr %535, align 8, !tbaa !11
  %19120 = fsub double %19119, 5.000000e-01
  %19121 = fcmp olt double %19120, 1.000000e+00
  br i1 %19121, label %19122, label %19125

19122:                                            ; preds = %19118
  %19123 = load double, ptr %535, align 8, !tbaa !11
  %19124 = fsub double %19123, 5.000000e-01
  br label %19126

19125:                                            ; preds = %19118
  br label %19126

19126:                                            ; preds = %19125, %19122
  %19127 = phi double [ %19124, %19122 ], [ 1.000000e+00, %19125 ]
  br label %19128

19128:                                            ; preds = %19126, %19115
  %19129 = phi double [ %19117, %19115 ], [ %19127, %19126 ]
  br label %19140

19130:                                            ; preds = %19107
  %19131 = load double, ptr %535, align 8, !tbaa !11
  %19132 = fsub double %19131, 5.000000e-01
  %19133 = fcmp olt double -1.000000e+00, %19132
  br i1 %19133, label %19134, label %19137

19134:                                            ; preds = %19130
  %19135 = load double, ptr %535, align 8, !tbaa !11
  %19136 = fsub double %19135, 5.000000e-01
  br label %19138

19137:                                            ; preds = %19130
  br label %19138

19138:                                            ; preds = %19137, %19134
  %19139 = phi double [ %19136, %19134 ], [ -1.000000e+00, %19137 ]
  br label %19140

19140:                                            ; preds = %19138, %19128
  %19141 = phi double [ %19129, %19128 ], [ %19139, %19138 ]
  br label %19142

19142:                                            ; preds = %19140, %19105
  %19143 = phi double [ %19106, %19105 ], [ %19141, %19140 ]
  %19144 = fptoui double %19143 to i8
  %19145 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %19144, ptr %19145, align 1, !tbaa !17
  br label %19159

19146:                                            ; preds = %19065
  %19147 = load double, ptr %535, align 8, !tbaa !11
  %19148 = fcmp ole double 0.000000e+00, %19147
  br i1 %19148, label %19149, label %19152

19149:                                            ; preds = %19146
  %19150 = load double, ptr %535, align 8, !tbaa !11
  %19151 = fadd double %19150, 5.000000e-01
  br label %19155

19152:                                            ; preds = %19146
  %19153 = load double, ptr %535, align 8, !tbaa !11
  %19154 = fsub double %19153, 5.000000e-01
  br label %19155

19155:                                            ; preds = %19152, %19149
  %19156 = phi double [ %19151, %19149 ], [ %19154, %19152 ]
  %19157 = fptoui double %19156 to i8
  %19158 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %19157, ptr %19158, align 1, !tbaa !17
  br label %19159

19159:                                            ; preds = %19155, %19142
  br label %19160

19160:                                            ; preds = %19159, %19030
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %537) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %536) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %535) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %534) #3
  br label %19161

19161:                                            ; preds = %19160
  br label %19162

19162:                                            ; preds = %19161
  br label %19573

19163:                                            ; preds = %15950
  br label %19164

19164:                                            ; preds = %19163
  call void @llvm.lifetime.start.p0(i64 8, ptr %544) #3
  store double 5.000000e-01, ptr %544, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %545) #3
  %19165 = load ptr, ptr %10, align 8, !tbaa !5
  %19166 = load float, ptr %19165, align 4, !tbaa !18
  store float %19166, ptr %545, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %546) #3
  store double 0.000000e+00, ptr %546, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %547) #3
  store double 0.000000e+00, ptr %547, align 8, !tbaa !11
  %19167 = load ptr, ptr %11, align 8, !tbaa !5
  %19168 = icmp ne ptr null, %19167
  br i1 %19168, label %19169, label %19195

19169:                                            ; preds = %19164
  %19170 = load float, ptr %545, align 4, !tbaa !18
  %19171 = load float, ptr %545, align 4, !tbaa !18
  %19172 = fcmp oeq float %19170, %19171
  br i1 %19172, label %19173, label %19195

19173:                                            ; preds = %19169
  %19174 = load ptr, ptr %12, align 8, !tbaa !5
  %19175 = icmp ne ptr null, %19174
  br i1 %19175, label %19176, label %19187

19176:                                            ; preds = %19173
  %19177 = load ptr, ptr %11, align 8, !tbaa !5
  %19178 = load float, ptr %19177, align 4, !tbaa !18
  %19179 = load float, ptr %545, align 4, !tbaa !18
  %19180 = fcmp ole float %19178, %19179
  br i1 %19180, label %19181, label %19187

19181:                                            ; preds = %19176
  %19182 = load float, ptr %545, align 4, !tbaa !18
  %19183 = load ptr, ptr %12, align 8, !tbaa !5
  %19184 = load float, ptr %19183, align 4, !tbaa !18
  %19185 = fcmp ole float %19182, %19184
  br i1 %19185, label %19186, label %19187

19186:                                            ; preds = %19181
  br label %19188

19187:                                            ; preds = %19181, %19176, %19173
  call void @__assert_fail(ptr noundef @.str.51, ptr noundef @.str.24, i32 noundef 479, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

19188:                                            ; preds = %19186
  %19189 = load ptr, ptr %11, align 8, !tbaa !5
  %19190 = load float, ptr %19189, align 4, !tbaa !18
  %19191 = fpext float %19190 to double
  store double %19191, ptr %546, align 8, !tbaa !11
  %19192 = load ptr, ptr %12, align 8, !tbaa !5
  %19193 = load float, ptr %19192, align 4, !tbaa !18
  %19194 = fpext float %19193 to double
  store double %19194, ptr %547, align 8, !tbaa !11
  br label %19195

19195:                                            ; preds = %19188, %19169, %19164
  %19196 = load i32, ptr %8, align 4, !tbaa !9
  %19197 = icmp ule i32 6, %19196
  br i1 %19197, label %19198, label %19424

19198:                                            ; preds = %19195
  %19199 = load double, ptr %546, align 8, !tbaa !11
  %19200 = load double, ptr %547, align 8, !tbaa !11
  %19201 = fcmp olt double %19199, %19200
  br i1 %19201, label %19202, label %19424

19202:                                            ; preds = %19198
  %19203 = load i32, ptr %8, align 4, !tbaa !9
  %19204 = icmp ule i32 15, %19203
  br i1 %19204, label %19205, label %19247

19205:                                            ; preds = %19202
  call void @llvm.lifetime.start.p0(i64 8, ptr %548) #3
  %19206 = load double, ptr %546, align 8, !tbaa !11
  %19207 = fcmp olt double 0.000000e+00, %19206
  br i1 %19207, label %19208, label %19210

19208:                                            ; preds = %19205
  %19209 = load double, ptr %546, align 8, !tbaa !11
  br label %19211

19210:                                            ; preds = %19205
  br label %19211

19211:                                            ; preds = %19210, %19208
  %19212 = phi double [ %19209, %19208 ], [ 0.000000e+00, %19210 ]
  store double %19212, ptr %548, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %549) #3
  %19213 = load double, ptr %547, align 8, !tbaa !11
  %19214 = fcmp olt double 0.000000e+00, %19213
  br i1 %19214, label %19215, label %19217

19215:                                            ; preds = %19211
  %19216 = load double, ptr %547, align 8, !tbaa !11
  br label %19218

19217:                                            ; preds = %19211
  br label %19218

19218:                                            ; preds = %19217, %19215
  %19219 = phi double [ %19216, %19215 ], [ 0.000000e+00, %19217 ]
  store double %19219, ptr %549, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %550) #3
  %19220 = load double, ptr %548, align 8, !tbaa !11
  %19221 = load double, ptr %549, align 8, !tbaa !11
  %19222 = fcmp olt double %19220, %19221
  br i1 %19222, label %19223, label %19231

19223:                                            ; preds = %19218
  %19224 = load double, ptr %547, align 8, !tbaa !11
  %19225 = load double, ptr %546, align 8, !tbaa !11
  %19226 = fsub double %19224, %19225
  %19227 = load double, ptr %549, align 8, !tbaa !11
  %19228 = load double, ptr %548, align 8, !tbaa !11
  %19229 = fsub double %19227, %19228
  %19230 = fdiv double %19226, %19229
  br label %19232

19231:                                            ; preds = %19218
  br label %19232

19232:                                            ; preds = %19231, %19223
  %19233 = phi double [ %19230, %19223 ], [ 1.000000e+00, %19231 ]
  store double %19233, ptr %550, align 8, !tbaa !11
  %19234 = load double, ptr %550, align 8, !tbaa !11
  %19235 = load float, ptr %545, align 4, !tbaa !18
  %19236 = fcmp olt float 0.000000e+00, %19235
  br i1 %19236, label %19237, label %19239

19237:                                            ; preds = %19232
  %19238 = load float, ptr %545, align 4, !tbaa !18
  br label %19240

19239:                                            ; preds = %19232
  br label %19240

19240:                                            ; preds = %19239, %19237
  %19241 = phi float [ %19238, %19237 ], [ 0.000000e+00, %19239 ]
  %19242 = fpext float %19241 to double
  %19243 = fmul double %19234, %19242
  %19244 = fptrunc double %19243 to float
  store float %19244, ptr %545, align 4, !tbaa !18
  %19245 = load double, ptr %548, align 8, !tbaa !11
  store double %19245, ptr %546, align 8, !tbaa !11
  %19246 = load double, ptr %549, align 8, !tbaa !11
  store double %19246, ptr %547, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %550) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %549) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %548) #3
  br label %19303

19247:                                            ; preds = %19202
  %19248 = load i32, ptr %8, align 4, !tbaa !9
  %19249 = icmp ugt i32 6, %19248
  br i1 %19249, label %19278, label %19250

19250:                                            ; preds = %19247
  %19251 = load i32, ptr %8, align 4, !tbaa !9
  %19252 = icmp ugt i32 15, %19251
  br i1 %19252, label %19253, label %19264

19253:                                            ; preds = %19250
  %19254 = load i32, ptr %9, align 4, !tbaa !9
  %19255 = icmp ugt i32 15, %19254
  br i1 %19255, label %19256, label %19261

19256:                                            ; preds = %19253
  %19257 = load i32, ptr %9, align 4, !tbaa !9
  %19258 = load i32, ptr %8, align 4, !tbaa !9
  %19259 = icmp ugt i32 %19257, %19258
  %19260 = zext i1 %19259 to i32
  br label %19262

19261:                                            ; preds = %19253
  br label %19262

19262:                                            ; preds = %19261, %19256
  %19263 = phi i32 [ %19260, %19256 ], [ 0, %19261 ]
  br label %19275

19264:                                            ; preds = %19250
  %19265 = load i32, ptr %9, align 4, !tbaa !9
  %19266 = icmp ugt i32 15, %19265
  br i1 %19266, label %19267, label %19268

19267:                                            ; preds = %19264
  br label %19273

19268:                                            ; preds = %19264
  %19269 = load i32, ptr %9, align 4, !tbaa !9
  %19270 = load i32, ptr %8, align 4, !tbaa !9
  %19271 = icmp ugt i32 %19269, %19270
  %19272 = zext i1 %19271 to i32
  br label %19273

19273:                                            ; preds = %19268, %19267
  %19274 = phi i32 [ 0, %19267 ], [ %19272, %19268 ]
  br label %19275

19275:                                            ; preds = %19273, %19262
  %19276 = phi i32 [ %19263, %19262 ], [ %19274, %19273 ]
  %19277 = icmp ne i32 %19276, 0
  br label %19278

19278:                                            ; preds = %19275, %19247
  %19279 = phi i1 [ true, %19247 ], [ %19277, %19275 ]
  %19280 = zext i1 %19279 to i32
  %19281 = icmp eq i32 0, %19280
  br i1 %19281, label %19282, label %19302

19282:                                            ; preds = %19278
  %19283 = load double, ptr %546, align 8, !tbaa !11
  %19284 = fcmp ogt double 0.000000e+00, %19283
  br i1 %19284, label %19285, label %19302

19285:                                            ; preds = %19282
  %19286 = load double, ptr %547, align 8, !tbaa !11
  %19287 = fcmp olt double 0.000000e+00, %19286
  br i1 %19287, label %19288, label %19302

19288:                                            ; preds = %19285
  %19289 = load double, ptr %546, align 8, !tbaa !11
  %19290 = fneg double %19289
  %19291 = load double, ptr %547, align 8, !tbaa !11
  %19292 = fcmp olt double %19290, %19291
  br i1 %19292, label %19293, label %19295

19293:                                            ; preds = %19288
  %19294 = load double, ptr %547, align 8, !tbaa !11
  br label %19298

19295:                                            ; preds = %19288
  %19296 = load double, ptr %546, align 8, !tbaa !11
  %19297 = fneg double %19296
  br label %19298

19298:                                            ; preds = %19295, %19293
  %19299 = phi double [ %19294, %19293 ], [ %19297, %19295 ]
  store double %19299, ptr %547, align 8, !tbaa !11
  %19300 = load double, ptr %547, align 8, !tbaa !11
  %19301 = fneg double %19300
  store double %19301, ptr %546, align 8, !tbaa !11
  br label %19302

19302:                                            ; preds = %19298, %19285, %19282, %19278
  br label %19303

19303:                                            ; preds = %19302, %19240
  call void @llvm.lifetime.start.p0(i64 8, ptr %551) #3
  %19304 = load double, ptr %546, align 8, !tbaa !11
  %19305 = fcmp ole double 0.000000e+00, %19304
  %19306 = zext i1 %19305 to i64
  %19307 = select i1 %19305, double 0.000000e+00, double -1.000000e+00
  store double %19307, ptr %551, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %552) #3
  %19308 = load double, ptr %547, align 8, !tbaa !11
  %19309 = fcmp ole double 0.000000e+00, %19308
  %19310 = zext i1 %19309 to i64
  %19311 = select i1 %19309, double 1.000000e+00, double 0.000000e+00
  store double %19311, ptr %552, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %553) #3
  %19312 = load float, ptr %545, align 4, !tbaa !18
  %19313 = fpext float %19312 to double
  %19314 = load double, ptr %546, align 8, !tbaa !11
  %19315 = fsub double %19313, %19314
  %19316 = load double, ptr %552, align 8, !tbaa !11
  %19317 = load double, ptr %551, align 8, !tbaa !11
  %19318 = fsub double %19316, %19317
  %19319 = fmul double %19315, %19318
  %19320 = load double, ptr %547, align 8, !tbaa !11
  %19321 = load double, ptr %546, align 8, !tbaa !11
  %19322 = fsub double %19320, %19321
  %19323 = fdiv double %19319, %19322
  %19324 = load double, ptr %551, align 8, !tbaa !11
  %19325 = fadd double %19323, %19324
  store double %19325, ptr %553, align 8, !tbaa !11
  %19326 = load double, ptr %551, align 8, !tbaa !11
  %19327 = load double, ptr %553, align 8, !tbaa !11
  %19328 = fcmp ole double 0.000000e+00, %19327
  br i1 %19328, label %19329, label %19332

19329:                                            ; preds = %19303
  %19330 = load double, ptr %553, align 8, !tbaa !11
  %19331 = fadd double %19330, 5.000000e-01
  br label %19335

19332:                                            ; preds = %19303
  %19333 = load double, ptr %553, align 8, !tbaa !11
  %19334 = fsub double %19333, 5.000000e-01
  br label %19335

19335:                                            ; preds = %19332, %19329
  %19336 = phi double [ %19331, %19329 ], [ %19334, %19332 ]
  %19337 = fcmp olt double %19326, %19336
  br i1 %19337, label %19338, label %19392

19338:                                            ; preds = %19335
  %19339 = load double, ptr %553, align 8, !tbaa !11
  %19340 = fcmp ole double 0.000000e+00, %19339
  br i1 %19340, label %19341, label %19344

19341:                                            ; preds = %19338
  %19342 = load double, ptr %553, align 8, !tbaa !11
  %19343 = fadd double %19342, 5.000000e-01
  br label %19347

19344:                                            ; preds = %19338
  %19345 = load double, ptr %553, align 8, !tbaa !11
  %19346 = fsub double %19345, 5.000000e-01
  br label %19347

19347:                                            ; preds = %19344, %19341
  %19348 = phi double [ %19343, %19341 ], [ %19346, %19344 ]
  %19349 = load double, ptr %552, align 8, !tbaa !11
  %19350 = fcmp ole double %19348, %19349
  br i1 %19350, label %19351, label %19362

19351:                                            ; preds = %19347
  %19352 = load double, ptr %553, align 8, !tbaa !11
  %19353 = fcmp ole double 0.000000e+00, %19352
  br i1 %19353, label %19354, label %19357

19354:                                            ; preds = %19351
  %19355 = load double, ptr %553, align 8, !tbaa !11
  %19356 = fadd double %19355, 5.000000e-01
  br label %19360

19357:                                            ; preds = %19351
  %19358 = load double, ptr %553, align 8, !tbaa !11
  %19359 = fsub double %19358, 5.000000e-01
  br label %19360

19360:                                            ; preds = %19357, %19354
  %19361 = phi double [ %19356, %19354 ], [ %19359, %19357 ]
  br label %19390

19362:                                            ; preds = %19347
  %19363 = load double, ptr %553, align 8, !tbaa !11
  %19364 = fcmp ole double 0.000000e+00, %19363
  br i1 %19364, label %19365, label %19368

19365:                                            ; preds = %19362
  %19366 = load double, ptr %553, align 8, !tbaa !11
  %19367 = fadd double %19366, 5.000000e-01
  br label %19371

19368:                                            ; preds = %19362
  %19369 = load double, ptr %553, align 8, !tbaa !11
  %19370 = fsub double %19369, 5.000000e-01
  br label %19371

19371:                                            ; preds = %19368, %19365
  %19372 = phi double [ %19367, %19365 ], [ %19370, %19368 ]
  %19373 = load double, ptr %552, align 8, !tbaa !11
  %19374 = fcmp olt double %19372, %19373
  br i1 %19374, label %19375, label %19386

19375:                                            ; preds = %19371
  %19376 = load double, ptr %553, align 8, !tbaa !11
  %19377 = fcmp ole double 0.000000e+00, %19376
  br i1 %19377, label %19378, label %19381

19378:                                            ; preds = %19375
  %19379 = load double, ptr %553, align 8, !tbaa !11
  %19380 = fadd double %19379, 5.000000e-01
  br label %19384

19381:                                            ; preds = %19375
  %19382 = load double, ptr %553, align 8, !tbaa !11
  %19383 = fsub double %19382, 5.000000e-01
  br label %19384

19384:                                            ; preds = %19381, %19378
  %19385 = phi double [ %19380, %19378 ], [ %19383, %19381 ]
  br label %19388

19386:                                            ; preds = %19371
  %19387 = load double, ptr %552, align 8, !tbaa !11
  br label %19388

19388:                                            ; preds = %19386, %19384
  %19389 = phi double [ %19385, %19384 ], [ %19387, %19386 ]
  br label %19390

19390:                                            ; preds = %19388, %19360
  %19391 = phi double [ %19361, %19360 ], [ %19389, %19388 ]
  br label %19420

19392:                                            ; preds = %19335
  %19393 = load double, ptr %551, align 8, !tbaa !11
  %19394 = load double, ptr %553, align 8, !tbaa !11
  %19395 = fcmp ole double 0.000000e+00, %19394
  br i1 %19395, label %19396, label %19399

19396:                                            ; preds = %19392
  %19397 = load double, ptr %553, align 8, !tbaa !11
  %19398 = fadd double %19397, 5.000000e-01
  br label %19402

19399:                                            ; preds = %19392
  %19400 = load double, ptr %553, align 8, !tbaa !11
  %19401 = fsub double %19400, 5.000000e-01
  br label %19402

19402:                                            ; preds = %19399, %19396
  %19403 = phi double [ %19398, %19396 ], [ %19401, %19399 ]
  %19404 = fcmp olt double %19393, %19403
  br i1 %19404, label %19405, label %19416

19405:                                            ; preds = %19402
  %19406 = load double, ptr %553, align 8, !tbaa !11
  %19407 = fcmp ole double 0.000000e+00, %19406
  br i1 %19407, label %19408, label %19411

19408:                                            ; preds = %19405
  %19409 = load double, ptr %553, align 8, !tbaa !11
  %19410 = fadd double %19409, 5.000000e-01
  br label %19414

19411:                                            ; preds = %19405
  %19412 = load double, ptr %553, align 8, !tbaa !11
  %19413 = fsub double %19412, 5.000000e-01
  br label %19414

19414:                                            ; preds = %19411, %19408
  %19415 = phi double [ %19410, %19408 ], [ %19413, %19411 ]
  br label %19418

19416:                                            ; preds = %19402
  %19417 = load double, ptr %551, align 8, !tbaa !11
  br label %19418

19418:                                            ; preds = %19416, %19414
  %19419 = phi double [ %19415, %19414 ], [ %19417, %19416 ]
  br label %19420

19420:                                            ; preds = %19418, %19390
  %19421 = phi double [ %19391, %19390 ], [ %19419, %19418 ]
  %19422 = fptoui double %19421 to i8
  %19423 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %19422, ptr %19423, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %553) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %552) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %551) #3
  br label %19566

19424:                                            ; preds = %19198, %19195
  %19425 = load i32, ptr %8, align 4, !tbaa !9
  %19426 = icmp ugt i32 6, %19425
  br i1 %19426, label %19455, label %19427

19427:                                            ; preds = %19424
  %19428 = load i32, ptr %8, align 4, !tbaa !9
  %19429 = icmp ugt i32 15, %19428
  br i1 %19429, label %19430, label %19441

19430:                                            ; preds = %19427
  %19431 = load i32, ptr %9, align 4, !tbaa !9
  %19432 = icmp ugt i32 15, %19431
  br i1 %19432, label %19433, label %19438

19433:                                            ; preds = %19430
  %19434 = load i32, ptr %9, align 4, !tbaa !9
  %19435 = load i32, ptr %8, align 4, !tbaa !9
  %19436 = icmp ugt i32 %19434, %19435
  %19437 = zext i1 %19436 to i32
  br label %19439

19438:                                            ; preds = %19430
  br label %19439

19439:                                            ; preds = %19438, %19433
  %19440 = phi i32 [ %19437, %19433 ], [ 0, %19438 ]
  br label %19452

19441:                                            ; preds = %19427
  %19442 = load i32, ptr %9, align 4, !tbaa !9
  %19443 = icmp ugt i32 15, %19442
  br i1 %19443, label %19444, label %19445

19444:                                            ; preds = %19441
  br label %19450

19445:                                            ; preds = %19441
  %19446 = load i32, ptr %9, align 4, !tbaa !9
  %19447 = load i32, ptr %8, align 4, !tbaa !9
  %19448 = icmp ugt i32 %19446, %19447
  %19449 = zext i1 %19448 to i32
  br label %19450

19450:                                            ; preds = %19445, %19444
  %19451 = phi i32 [ 0, %19444 ], [ %19449, %19445 ]
  br label %19452

19452:                                            ; preds = %19450, %19439
  %19453 = phi i32 [ %19440, %19439 ], [ %19451, %19450 ]
  %19454 = icmp ne i32 %19453, 0
  br label %19455

19455:                                            ; preds = %19452, %19424
  %19456 = phi i1 [ true, %19424 ], [ %19454, %19452 ]
  %19457 = zext i1 %19456 to i32
  %19458 = icmp eq i32 0, %19457
  br i1 %19458, label %19459, label %19550

19459:                                            ; preds = %19455
  %19460 = load float, ptr %545, align 4, !tbaa !18
  %19461 = fcmp ole float 0.000000e+00, %19460
  br i1 %19461, label %19462, label %19504

19462:                                            ; preds = %19459
  %19463 = load float, ptr %545, align 4, !tbaa !18
  %19464 = fpext float %19463 to double
  %19465 = fadd double %19464, 5.000000e-01
  %19466 = fcmp olt double -1.000000e+00, %19465
  br i1 %19466, label %19467, label %19490

19467:                                            ; preds = %19462
  %19468 = load float, ptr %545, align 4, !tbaa !18
  %19469 = fpext float %19468 to double
  %19470 = fadd double %19469, 5.000000e-01
  %19471 = fcmp ole double %19470, 1.000000e+00
  br i1 %19471, label %19472, label %19476

19472:                                            ; preds = %19467
  %19473 = load float, ptr %545, align 4, !tbaa !18
  %19474 = fpext float %19473 to double
  %19475 = fadd double %19474, 5.000000e-01
  br label %19488

19476:                                            ; preds = %19467
  %19477 = load float, ptr %545, align 4, !tbaa !18
  %19478 = fpext float %19477 to double
  %19479 = fadd double %19478, 5.000000e-01
  %19480 = fcmp olt double %19479, 1.000000e+00
  br i1 %19480, label %19481, label %19485

19481:                                            ; preds = %19476
  %19482 = load float, ptr %545, align 4, !tbaa !18
  %19483 = fpext float %19482 to double
  %19484 = fadd double %19483, 5.000000e-01
  br label %19486

19485:                                            ; preds = %19476
  br label %19486

19486:                                            ; preds = %19485, %19481
  %19487 = phi double [ %19484, %19481 ], [ 1.000000e+00, %19485 ]
  br label %19488

19488:                                            ; preds = %19486, %19472
  %19489 = phi double [ %19475, %19472 ], [ %19487, %19486 ]
  br label %19502

19490:                                            ; preds = %19462
  %19491 = load float, ptr %545, align 4, !tbaa !18
  %19492 = fpext float %19491 to double
  %19493 = fadd double %19492, 5.000000e-01
  %19494 = fcmp olt double -1.000000e+00, %19493
  br i1 %19494, label %19495, label %19499

19495:                                            ; preds = %19490
  %19496 = load float, ptr %545, align 4, !tbaa !18
  %19497 = fpext float %19496 to double
  %19498 = fadd double %19497, 5.000000e-01
  br label %19500

19499:                                            ; preds = %19490
  br label %19500

19500:                                            ; preds = %19499, %19495
  %19501 = phi double [ %19498, %19495 ], [ -1.000000e+00, %19499 ]
  br label %19502

19502:                                            ; preds = %19500, %19488
  %19503 = phi double [ %19489, %19488 ], [ %19501, %19500 ]
  br label %19546

19504:                                            ; preds = %19459
  %19505 = load float, ptr %545, align 4, !tbaa !18
  %19506 = fpext float %19505 to double
  %19507 = fsub double %19506, 5.000000e-01
  %19508 = fcmp olt double -1.000000e+00, %19507
  br i1 %19508, label %19509, label %19532

19509:                                            ; preds = %19504
  %19510 = load float, ptr %545, align 4, !tbaa !18
  %19511 = fpext float %19510 to double
  %19512 = fsub double %19511, 5.000000e-01
  %19513 = fcmp ole double %19512, 1.000000e+00
  br i1 %19513, label %19514, label %19518

19514:                                            ; preds = %19509
  %19515 = load float, ptr %545, align 4, !tbaa !18
  %19516 = fpext float %19515 to double
  %19517 = fsub double %19516, 5.000000e-01
  br label %19530

19518:                                            ; preds = %19509
  %19519 = load float, ptr %545, align 4, !tbaa !18
  %19520 = fpext float %19519 to double
  %19521 = fsub double %19520, 5.000000e-01
  %19522 = fcmp olt double %19521, 1.000000e+00
  br i1 %19522, label %19523, label %19527

19523:                                            ; preds = %19518
  %19524 = load float, ptr %545, align 4, !tbaa !18
  %19525 = fpext float %19524 to double
  %19526 = fsub double %19525, 5.000000e-01
  br label %19528

19527:                                            ; preds = %19518
  br label %19528

19528:                                            ; preds = %19527, %19523
  %19529 = phi double [ %19526, %19523 ], [ 1.000000e+00, %19527 ]
  br label %19530

19530:                                            ; preds = %19528, %19514
  %19531 = phi double [ %19517, %19514 ], [ %19529, %19528 ]
  br label %19544

19532:                                            ; preds = %19504
  %19533 = load float, ptr %545, align 4, !tbaa !18
  %19534 = fpext float %19533 to double
  %19535 = fsub double %19534, 5.000000e-01
  %19536 = fcmp olt double -1.000000e+00, %19535
  br i1 %19536, label %19537, label %19541

19537:                                            ; preds = %19532
  %19538 = load float, ptr %545, align 4, !tbaa !18
  %19539 = fpext float %19538 to double
  %19540 = fsub double %19539, 5.000000e-01
  br label %19542

19541:                                            ; preds = %19532
  br label %19542

19542:                                            ; preds = %19541, %19537
  %19543 = phi double [ %19540, %19537 ], [ -1.000000e+00, %19541 ]
  br label %19544

19544:                                            ; preds = %19542, %19530
  %19545 = phi double [ %19531, %19530 ], [ %19543, %19542 ]
  br label %19546

19546:                                            ; preds = %19544, %19502
  %19547 = phi double [ %19503, %19502 ], [ %19545, %19544 ]
  %19548 = fptoui double %19547 to i8
  %19549 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %19548, ptr %19549, align 1, !tbaa !17
  br label %19565

19550:                                            ; preds = %19455
  %19551 = load float, ptr %545, align 4, !tbaa !18
  %19552 = fcmp ole float 0.000000e+00, %19551
  br i1 %19552, label %19553, label %19557

19553:                                            ; preds = %19550
  %19554 = load float, ptr %545, align 4, !tbaa !18
  %19555 = fpext float %19554 to double
  %19556 = fadd double %19555, 5.000000e-01
  br label %19561

19557:                                            ; preds = %19550
  %19558 = load float, ptr %545, align 4, !tbaa !18
  %19559 = fpext float %19558 to double
  %19560 = fsub double %19559, 5.000000e-01
  br label %19561

19561:                                            ; preds = %19557, %19553
  %19562 = phi double [ %19556, %19553 ], [ %19560, %19557 ]
  %19563 = fptoui double %19562 to i8
  %19564 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %19563, ptr %19564, align 1, !tbaa !17
  br label %19565

19565:                                            ; preds = %19561, %19546
  br label %19566

19566:                                            ; preds = %19565, %19420
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %547) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %546) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %545) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %544) #3
  br label %19567

19567:                                            ; preds = %19566
  br label %19568

19568:                                            ; preds = %19567
  br label %19573

19569:                                            ; preds = %15950
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 479, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

19570:                                            ; preds = %15950
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 479, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

19571:                                            ; preds = %15950
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 479, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

19572:                                            ; preds = %15950
  store i32 1, ptr %13, align 4, !tbaa !9
  br label %19573

19573:                                            ; preds = %19572, %19568, %19162, %18777, %18418, %18058, %17711, %17364, %17005, %16645, %16298
  br label %19574

19574:                                            ; preds = %19573
  br label %19575

19575:                                            ; preds = %19574
  br label %48657

19576:                                            ; preds = %6
  br label %19577

19577:                                            ; preds = %19576
  %19578 = load ptr, ptr %7, align 8, !tbaa !5
  %19579 = icmp ne ptr null, %19578
  br i1 %19579, label %19580, label %19584

19580:                                            ; preds = %19577
  %19581 = load ptr, ptr %10, align 8, !tbaa !5
  %19582 = icmp ne ptr null, %19581
  br i1 %19582, label %19583, label %19584

19583:                                            ; preds = %19580
  br label %19585

19584:                                            ; preds = %19580, %19577
  call void @__assert_fail(ptr noundef @.str.41, ptr noundef @.str.24, i32 noundef 482, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

19585:                                            ; preds = %19583
  %19586 = load i32, ptr %9, align 4, !tbaa !9
  switch i32 %19586, label %23207 [
    i32 6, label %19587
    i32 8, label %19933
    i32 10, label %20280
    i32 12, label %20640
    i32 15, label %21000
    i32 16, label %21346
    i32 17, label %21693
    i32 18, label %22053
    i32 0, label %22413
    i32 1, label %22798
    i32 3, label %23204
    i32 2, label %23205
    i32 4, label %23206
  ]

19587:                                            ; preds = %19585
  br label %19588

19588:                                            ; preds = %19587
  call void @llvm.lifetime.start.p0(i64 8, ptr %554) #3
  store double 5.000000e-01, ptr %554, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %555) #3
  %19589 = load ptr, ptr %10, align 8, !tbaa !5
  %19590 = load i64, ptr %19589, align 8, !tbaa !13
  store i64 %19590, ptr %555, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %556) #3
  store double 0.000000e+00, ptr %556, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %557) #3
  store double 0.000000e+00, ptr %557, align 8, !tbaa !11
  %19591 = load ptr, ptr %11, align 8, !tbaa !5
  %19592 = icmp ne ptr null, %19591
  br i1 %19592, label %19593, label %19615

19593:                                            ; preds = %19588
  %19594 = load ptr, ptr %12, align 8, !tbaa !5
  %19595 = icmp ne ptr null, %19594
  br i1 %19595, label %19596, label %19607

19596:                                            ; preds = %19593
  %19597 = load ptr, ptr %11, align 8, !tbaa !5
  %19598 = load i64, ptr %19597, align 8, !tbaa !13
  %19599 = load i64, ptr %555, align 8, !tbaa !13
  %19600 = icmp sle i64 %19598, %19599
  br i1 %19600, label %19601, label %19607

19601:                                            ; preds = %19596
  %19602 = load i64, ptr %555, align 8, !tbaa !13
  %19603 = load ptr, ptr %12, align 8, !tbaa !5
  %19604 = load i64, ptr %19603, align 8, !tbaa !13
  %19605 = icmp sle i64 %19602, %19604
  br i1 %19605, label %19606, label %19607

19606:                                            ; preds = %19601
  br label %19608

19607:                                            ; preds = %19601, %19596, %19593
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.24, i32 noundef 482, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

19608:                                            ; preds = %19606
  %19609 = load ptr, ptr %11, align 8, !tbaa !5
  %19610 = load i64, ptr %19609, align 8, !tbaa !13
  %19611 = sitofp i64 %19610 to double
  store double %19611, ptr %556, align 8, !tbaa !11
  %19612 = load ptr, ptr %12, align 8, !tbaa !5
  %19613 = load i64, ptr %19612, align 8, !tbaa !13
  %19614 = sitofp i64 %19613 to double
  store double %19614, ptr %557, align 8, !tbaa !11
  br label %19615

19615:                                            ; preds = %19608, %19588
  %19616 = load i32, ptr %8, align 4, !tbaa !9
  %19617 = icmp ule i32 6, %19616
  br i1 %19617, label %19618, label %19854

19618:                                            ; preds = %19615
  %19619 = load double, ptr %556, align 8, !tbaa !11
  %19620 = load double, ptr %557, align 8, !tbaa !11
  %19621 = fcmp olt double %19619, %19620
  br i1 %19621, label %19622, label %19854

19622:                                            ; preds = %19618
  %19623 = load i32, ptr %8, align 4, !tbaa !9
  %19624 = icmp ule i32 15, %19623
  br i1 %19624, label %19625, label %19677

19625:                                            ; preds = %19622
  call void @llvm.lifetime.start.p0(i64 8, ptr %558) #3
  %19626 = load double, ptr %556, align 8, !tbaa !11
  %19627 = fcmp olt double 0.000000e+00, %19626
  br i1 %19627, label %19628, label %19630

19628:                                            ; preds = %19625
  %19629 = load double, ptr %556, align 8, !tbaa !11
  br label %19631

19630:                                            ; preds = %19625
  br label %19631

19631:                                            ; preds = %19630, %19628
  %19632 = phi double [ %19629, %19628 ], [ 0.000000e+00, %19630 ]
  store double %19632, ptr %558, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %559) #3
  %19633 = load double, ptr %557, align 8, !tbaa !11
  %19634 = fcmp olt double 0.000000e+00, %19633
  br i1 %19634, label %19635, label %19637

19635:                                            ; preds = %19631
  %19636 = load double, ptr %557, align 8, !tbaa !11
  br label %19638

19637:                                            ; preds = %19631
  br label %19638

19638:                                            ; preds = %19637, %19635
  %19639 = phi double [ %19636, %19635 ], [ 0.000000e+00, %19637 ]
  store double %19639, ptr %559, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %560) #3
  %19640 = load double, ptr %558, align 8, !tbaa !11
  %19641 = load double, ptr %559, align 8, !tbaa !11
  %19642 = fcmp olt double %19640, %19641
  br i1 %19642, label %19643, label %19651

19643:                                            ; preds = %19638
  %19644 = load double, ptr %557, align 8, !tbaa !11
  %19645 = load double, ptr %556, align 8, !tbaa !11
  %19646 = fsub double %19644, %19645
  %19647 = load double, ptr %559, align 8, !tbaa !11
  %19648 = load double, ptr %558, align 8, !tbaa !11
  %19649 = fsub double %19647, %19648
  %19650 = fdiv double %19646, %19649
  br label %19652

19651:                                            ; preds = %19638
  br label %19652

19652:                                            ; preds = %19651, %19643
  %19653 = phi double [ %19650, %19643 ], [ 1.000000e+00, %19651 ]
  store double %19653, ptr %560, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %561) #3
  %19654 = load double, ptr %560, align 8, !tbaa !11
  %19655 = load i64, ptr %555, align 8, !tbaa !13
  %19656 = icmp slt i64 0, %19655
  br i1 %19656, label %19657, label %19659

19657:                                            ; preds = %19652
  %19658 = load i64, ptr %555, align 8, !tbaa !13
  br label %19660

19659:                                            ; preds = %19652
  br label %19660

19660:                                            ; preds = %19659, %19657
  %19661 = phi i64 [ %19658, %19657 ], [ 0, %19659 ]
  %19662 = sitofp i64 %19661 to double
  %19663 = fmul double %19654, %19662
  store double %19663, ptr %561, align 8, !tbaa !11
  %19664 = load double, ptr %561, align 8, !tbaa !11
  %19665 = fcmp ole double 0.000000e+00, %19664
  br i1 %19665, label %19666, label %19669

19666:                                            ; preds = %19660
  %19667 = load double, ptr %561, align 8, !tbaa !11
  %19668 = fadd double %19667, 5.000000e-01
  br label %19672

19669:                                            ; preds = %19660
  %19670 = load double, ptr %561, align 8, !tbaa !11
  %19671 = fsub double %19670, 5.000000e-01
  br label %19672

19672:                                            ; preds = %19669, %19666
  %19673 = phi double [ %19668, %19666 ], [ %19671, %19669 ]
  %19674 = fptosi double %19673 to i64
  store i64 %19674, ptr %555, align 8, !tbaa !13
  %19675 = load double, ptr %558, align 8, !tbaa !11
  store double %19675, ptr %556, align 8, !tbaa !11
  %19676 = load double, ptr %559, align 8, !tbaa !11
  store double %19676, ptr %557, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %561) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %560) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %559) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %558) #3
  br label %19733

19677:                                            ; preds = %19622
  %19678 = load i32, ptr %8, align 4, !tbaa !9
  %19679 = icmp ugt i32 6, %19678
  br i1 %19679, label %19708, label %19680

19680:                                            ; preds = %19677
  %19681 = load i32, ptr %8, align 4, !tbaa !9
  %19682 = icmp ugt i32 15, %19681
  br i1 %19682, label %19683, label %19694

19683:                                            ; preds = %19680
  %19684 = load i32, ptr %9, align 4, !tbaa !9
  %19685 = icmp ugt i32 15, %19684
  br i1 %19685, label %19686, label %19691

19686:                                            ; preds = %19683
  %19687 = load i32, ptr %9, align 4, !tbaa !9
  %19688 = load i32, ptr %8, align 4, !tbaa !9
  %19689 = icmp ugt i32 %19687, %19688
  %19690 = zext i1 %19689 to i32
  br label %19692

19691:                                            ; preds = %19683
  br label %19692

19692:                                            ; preds = %19691, %19686
  %19693 = phi i32 [ %19690, %19686 ], [ 0, %19691 ]
  br label %19705

19694:                                            ; preds = %19680
  %19695 = load i32, ptr %9, align 4, !tbaa !9
  %19696 = icmp ugt i32 15, %19695
  br i1 %19696, label %19697, label %19698

19697:                                            ; preds = %19694
  br label %19703

19698:                                            ; preds = %19694
  %19699 = load i32, ptr %9, align 4, !tbaa !9
  %19700 = load i32, ptr %8, align 4, !tbaa !9
  %19701 = icmp ugt i32 %19699, %19700
  %19702 = zext i1 %19701 to i32
  br label %19703

19703:                                            ; preds = %19698, %19697
  %19704 = phi i32 [ 0, %19697 ], [ %19702, %19698 ]
  br label %19705

19705:                                            ; preds = %19703, %19692
  %19706 = phi i32 [ %19693, %19692 ], [ %19704, %19703 ]
  %19707 = icmp ne i32 %19706, 0
  br label %19708

19708:                                            ; preds = %19705, %19677
  %19709 = phi i1 [ true, %19677 ], [ %19707, %19705 ]
  %19710 = zext i1 %19709 to i32
  %19711 = icmp eq i32 0, %19710
  br i1 %19711, label %19712, label %19732

19712:                                            ; preds = %19708
  %19713 = load double, ptr %556, align 8, !tbaa !11
  %19714 = fcmp ogt double 0.000000e+00, %19713
  br i1 %19714, label %19715, label %19732

19715:                                            ; preds = %19712
  %19716 = load double, ptr %557, align 8, !tbaa !11
  %19717 = fcmp olt double 0.000000e+00, %19716
  br i1 %19717, label %19718, label %19732

19718:                                            ; preds = %19715
  %19719 = load double, ptr %556, align 8, !tbaa !11
  %19720 = fneg double %19719
  %19721 = load double, ptr %557, align 8, !tbaa !11
  %19722 = fcmp olt double %19720, %19721
  br i1 %19722, label %19723, label %19725

19723:                                            ; preds = %19718
  %19724 = load double, ptr %557, align 8, !tbaa !11
  br label %19728

19725:                                            ; preds = %19718
  %19726 = load double, ptr %556, align 8, !tbaa !11
  %19727 = fneg double %19726
  br label %19728

19728:                                            ; preds = %19725, %19723
  %19729 = phi double [ %19724, %19723 ], [ %19727, %19725 ]
  store double %19729, ptr %557, align 8, !tbaa !11
  %19730 = load double, ptr %557, align 8, !tbaa !11
  %19731 = fneg double %19730
  store double %19731, ptr %556, align 8, !tbaa !11
  br label %19732

19732:                                            ; preds = %19728, %19715, %19712, %19708
  br label %19733

19733:                                            ; preds = %19732, %19672
  call void @llvm.lifetime.start.p0(i64 8, ptr %562) #3
  %19734 = load double, ptr %556, align 8, !tbaa !11
  %19735 = fcmp ole double 0.000000e+00, %19734
  %19736 = zext i1 %19735 to i64
  %19737 = select i1 %19735, double 0.000000e+00, double 0xC3E0000000000000
  store double %19737, ptr %562, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %563) #3
  %19738 = load double, ptr %557, align 8, !tbaa !11
  %19739 = fcmp ole double 0.000000e+00, %19738
  %19740 = zext i1 %19739 to i64
  %19741 = select i1 %19739, double 0x43E0000000000000, double 0.000000e+00
  store double %19741, ptr %563, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %564) #3
  %19742 = load i64, ptr %555, align 8, !tbaa !13
  %19743 = sitofp i64 %19742 to double
  %19744 = load double, ptr %556, align 8, !tbaa !11
  %19745 = fsub double %19743, %19744
  %19746 = load double, ptr %563, align 8, !tbaa !11
  %19747 = load double, ptr %562, align 8, !tbaa !11
  %19748 = fsub double %19746, %19747
  %19749 = fmul double %19745, %19748
  %19750 = load double, ptr %557, align 8, !tbaa !11
  %19751 = load double, ptr %556, align 8, !tbaa !11
  %19752 = fsub double %19750, %19751
  %19753 = fdiv double %19749, %19752
  %19754 = load double, ptr %562, align 8, !tbaa !11
  %19755 = fadd double %19753, %19754
  store double %19755, ptr %564, align 8, !tbaa !11
  %19756 = load double, ptr %562, align 8, !tbaa !11
  %19757 = load double, ptr %564, align 8, !tbaa !11
  %19758 = fcmp ole double 0.000000e+00, %19757
  br i1 %19758, label %19759, label %19762

19759:                                            ; preds = %19733
  %19760 = load double, ptr %564, align 8, !tbaa !11
  %19761 = fadd double %19760, 5.000000e-01
  br label %19765

19762:                                            ; preds = %19733
  %19763 = load double, ptr %564, align 8, !tbaa !11
  %19764 = fsub double %19763, 5.000000e-01
  br label %19765

19765:                                            ; preds = %19762, %19759
  %19766 = phi double [ %19761, %19759 ], [ %19764, %19762 ]
  %19767 = fcmp olt double %19756, %19766
  br i1 %19767, label %19768, label %19822

19768:                                            ; preds = %19765
  %19769 = load double, ptr %564, align 8, !tbaa !11
  %19770 = fcmp ole double 0.000000e+00, %19769
  br i1 %19770, label %19771, label %19774

19771:                                            ; preds = %19768
  %19772 = load double, ptr %564, align 8, !tbaa !11
  %19773 = fadd double %19772, 5.000000e-01
  br label %19777

19774:                                            ; preds = %19768
  %19775 = load double, ptr %564, align 8, !tbaa !11
  %19776 = fsub double %19775, 5.000000e-01
  br label %19777

19777:                                            ; preds = %19774, %19771
  %19778 = phi double [ %19773, %19771 ], [ %19776, %19774 ]
  %19779 = load double, ptr %563, align 8, !tbaa !11
  %19780 = fcmp ole double %19778, %19779
  br i1 %19780, label %19781, label %19792

19781:                                            ; preds = %19777
  %19782 = load double, ptr %564, align 8, !tbaa !11
  %19783 = fcmp ole double 0.000000e+00, %19782
  br i1 %19783, label %19784, label %19787

19784:                                            ; preds = %19781
  %19785 = load double, ptr %564, align 8, !tbaa !11
  %19786 = fadd double %19785, 5.000000e-01
  br label %19790

19787:                                            ; preds = %19781
  %19788 = load double, ptr %564, align 8, !tbaa !11
  %19789 = fsub double %19788, 5.000000e-01
  br label %19790

19790:                                            ; preds = %19787, %19784
  %19791 = phi double [ %19786, %19784 ], [ %19789, %19787 ]
  br label %19820

19792:                                            ; preds = %19777
  %19793 = load double, ptr %564, align 8, !tbaa !11
  %19794 = fcmp ole double 0.000000e+00, %19793
  br i1 %19794, label %19795, label %19798

19795:                                            ; preds = %19792
  %19796 = load double, ptr %564, align 8, !tbaa !11
  %19797 = fadd double %19796, 5.000000e-01
  br label %19801

19798:                                            ; preds = %19792
  %19799 = load double, ptr %564, align 8, !tbaa !11
  %19800 = fsub double %19799, 5.000000e-01
  br label %19801

19801:                                            ; preds = %19798, %19795
  %19802 = phi double [ %19797, %19795 ], [ %19800, %19798 ]
  %19803 = load double, ptr %563, align 8, !tbaa !11
  %19804 = fcmp olt double %19802, %19803
  br i1 %19804, label %19805, label %19816

19805:                                            ; preds = %19801
  %19806 = load double, ptr %564, align 8, !tbaa !11
  %19807 = fcmp ole double 0.000000e+00, %19806
  br i1 %19807, label %19808, label %19811

19808:                                            ; preds = %19805
  %19809 = load double, ptr %564, align 8, !tbaa !11
  %19810 = fadd double %19809, 5.000000e-01
  br label %19814

19811:                                            ; preds = %19805
  %19812 = load double, ptr %564, align 8, !tbaa !11
  %19813 = fsub double %19812, 5.000000e-01
  br label %19814

19814:                                            ; preds = %19811, %19808
  %19815 = phi double [ %19810, %19808 ], [ %19813, %19811 ]
  br label %19818

19816:                                            ; preds = %19801
  %19817 = load double, ptr %563, align 8, !tbaa !11
  br label %19818

19818:                                            ; preds = %19816, %19814
  %19819 = phi double [ %19815, %19814 ], [ %19817, %19816 ]
  br label %19820

19820:                                            ; preds = %19818, %19790
  %19821 = phi double [ %19791, %19790 ], [ %19819, %19818 ]
  br label %19850

19822:                                            ; preds = %19765
  %19823 = load double, ptr %562, align 8, !tbaa !11
  %19824 = load double, ptr %564, align 8, !tbaa !11
  %19825 = fcmp ole double 0.000000e+00, %19824
  br i1 %19825, label %19826, label %19829

19826:                                            ; preds = %19822
  %19827 = load double, ptr %564, align 8, !tbaa !11
  %19828 = fadd double %19827, 5.000000e-01
  br label %19832

19829:                                            ; preds = %19822
  %19830 = load double, ptr %564, align 8, !tbaa !11
  %19831 = fsub double %19830, 5.000000e-01
  br label %19832

19832:                                            ; preds = %19829, %19826
  %19833 = phi double [ %19828, %19826 ], [ %19831, %19829 ]
  %19834 = fcmp olt double %19823, %19833
  br i1 %19834, label %19835, label %19846

19835:                                            ; preds = %19832
  %19836 = load double, ptr %564, align 8, !tbaa !11
  %19837 = fcmp ole double 0.000000e+00, %19836
  br i1 %19837, label %19838, label %19841

19838:                                            ; preds = %19835
  %19839 = load double, ptr %564, align 8, !tbaa !11
  %19840 = fadd double %19839, 5.000000e-01
  br label %19844

19841:                                            ; preds = %19835
  %19842 = load double, ptr %564, align 8, !tbaa !11
  %19843 = fsub double %19842, 5.000000e-01
  br label %19844

19844:                                            ; preds = %19841, %19838
  %19845 = phi double [ %19840, %19838 ], [ %19843, %19841 ]
  br label %19848

19846:                                            ; preds = %19832
  %19847 = load double, ptr %562, align 8, !tbaa !11
  br label %19848

19848:                                            ; preds = %19846, %19844
  %19849 = phi double [ %19845, %19844 ], [ %19847, %19846 ]
  br label %19850

19850:                                            ; preds = %19848, %19820
  %19851 = phi double [ %19821, %19820 ], [ %19849, %19848 ]
  %19852 = fptosi double %19851 to i64
  %19853 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %19852, ptr %19853, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %564) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %563) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %562) #3
  br label %19930

19854:                                            ; preds = %19618, %19615
  %19855 = load i32, ptr %8, align 4, !tbaa !9
  %19856 = icmp ugt i32 6, %19855
  br i1 %19856, label %19885, label %19857

19857:                                            ; preds = %19854
  %19858 = load i32, ptr %8, align 4, !tbaa !9
  %19859 = icmp ugt i32 15, %19858
  br i1 %19859, label %19860, label %19871

19860:                                            ; preds = %19857
  %19861 = load i32, ptr %9, align 4, !tbaa !9
  %19862 = icmp ugt i32 15, %19861
  br i1 %19862, label %19863, label %19868

19863:                                            ; preds = %19860
  %19864 = load i32, ptr %9, align 4, !tbaa !9
  %19865 = load i32, ptr %8, align 4, !tbaa !9
  %19866 = icmp ugt i32 %19864, %19865
  %19867 = zext i1 %19866 to i32
  br label %19869

19868:                                            ; preds = %19860
  br label %19869

19869:                                            ; preds = %19868, %19863
  %19870 = phi i32 [ %19867, %19863 ], [ 0, %19868 ]
  br label %19882

19871:                                            ; preds = %19857
  %19872 = load i32, ptr %9, align 4, !tbaa !9
  %19873 = icmp ugt i32 15, %19872
  br i1 %19873, label %19874, label %19875

19874:                                            ; preds = %19871
  br label %19880

19875:                                            ; preds = %19871
  %19876 = load i32, ptr %9, align 4, !tbaa !9
  %19877 = load i32, ptr %8, align 4, !tbaa !9
  %19878 = icmp ugt i32 %19876, %19877
  %19879 = zext i1 %19878 to i32
  br label %19880

19880:                                            ; preds = %19875, %19874
  %19881 = phi i32 [ 0, %19874 ], [ %19879, %19875 ]
  br label %19882

19882:                                            ; preds = %19880, %19869
  %19883 = phi i32 [ %19870, %19869 ], [ %19881, %19880 ]
  %19884 = icmp ne i32 %19883, 0
  br label %19885

19885:                                            ; preds = %19882, %19854
  %19886 = phi i1 [ true, %19854 ], [ %19884, %19882 ]
  %19887 = zext i1 %19886 to i32
  %19888 = icmp eq i32 0, %19887
  br i1 %19888, label %19889, label %19926

19889:                                            ; preds = %19885
  %19890 = load i64, ptr %555, align 8, !tbaa !13
  %19891 = sitofp i64 %19890 to double
  %19892 = fcmp olt double 0xC3E0000000000000, %19891
  br i1 %19892, label %19893, label %19912

19893:                                            ; preds = %19889
  %19894 = load i64, ptr %555, align 8, !tbaa !13
  %19895 = sitofp i64 %19894 to double
  %19896 = fcmp ole double %19895, 0x43E0000000000000
  br i1 %19896, label %19897, label %19900

19897:                                            ; preds = %19893
  %19898 = load i64, ptr %555, align 8, !tbaa !13
  %19899 = sitofp i64 %19898 to double
  br label %19910

19900:                                            ; preds = %19893
  %19901 = load i64, ptr %555, align 8, !tbaa !13
  %19902 = sitofp i64 %19901 to double
  %19903 = fcmp olt double %19902, 0x43E0000000000000
  br i1 %19903, label %19904, label %19907

19904:                                            ; preds = %19900
  %19905 = load i64, ptr %555, align 8, !tbaa !13
  %19906 = sitofp i64 %19905 to double
  br label %19908

19907:                                            ; preds = %19900
  br label %19908

19908:                                            ; preds = %19907, %19904
  %19909 = phi double [ %19906, %19904 ], [ 0x43E0000000000000, %19907 ]
  br label %19910

19910:                                            ; preds = %19908, %19897
  %19911 = phi double [ %19899, %19897 ], [ %19909, %19908 ]
  br label %19922

19912:                                            ; preds = %19889
  %19913 = load i64, ptr %555, align 8, !tbaa !13
  %19914 = sitofp i64 %19913 to double
  %19915 = fcmp olt double 0xC3E0000000000000, %19914
  br i1 %19915, label %19916, label %19919

19916:                                            ; preds = %19912
  %19917 = load i64, ptr %555, align 8, !tbaa !13
  %19918 = sitofp i64 %19917 to double
  br label %19920

19919:                                            ; preds = %19912
  br label %19920

19920:                                            ; preds = %19919, %19916
  %19921 = phi double [ %19918, %19916 ], [ 0xC3E0000000000000, %19919 ]
  br label %19922

19922:                                            ; preds = %19920, %19910
  %19923 = phi double [ %19911, %19910 ], [ %19921, %19920 ]
  %19924 = fptosi double %19923 to i64
  %19925 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %19924, ptr %19925, align 8, !tbaa !13
  br label %19929

19926:                                            ; preds = %19885
  %19927 = load i64, ptr %555, align 8, !tbaa !13
  %19928 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %19927, ptr %19928, align 8, !tbaa !13
  br label %19929

19929:                                            ; preds = %19926, %19922
  br label %19930

19930:                                            ; preds = %19929, %19850
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %557) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %556) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %555) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %554) #3
  br label %19931

19931:                                            ; preds = %19930
  br label %19932

19932:                                            ; preds = %19931
  br label %23208

19933:                                            ; preds = %19585
  br label %19934

19934:                                            ; preds = %19933
  call void @llvm.lifetime.start.p0(i64 8, ptr %565) #3
  store double 5.000000e-01, ptr %565, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %566) #3
  %19935 = load ptr, ptr %10, align 8, !tbaa !5
  %19936 = load i32, ptr %19935, align 4, !tbaa !9
  store i32 %19936, ptr %566, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %567) #3
  store double 0.000000e+00, ptr %567, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %568) #3
  store double 0.000000e+00, ptr %568, align 8, !tbaa !11
  %19937 = load ptr, ptr %11, align 8, !tbaa !5
  %19938 = icmp ne ptr null, %19937
  br i1 %19938, label %19939, label %19961

19939:                                            ; preds = %19934
  %19940 = load ptr, ptr %12, align 8, !tbaa !5
  %19941 = icmp ne ptr null, %19940
  br i1 %19941, label %19942, label %19953

19942:                                            ; preds = %19939
  %19943 = load ptr, ptr %11, align 8, !tbaa !5
  %19944 = load i32, ptr %19943, align 4, !tbaa !9
  %19945 = load i32, ptr %566, align 4, !tbaa !9
  %19946 = icmp sle i32 %19944, %19945
  br i1 %19946, label %19947, label %19953

19947:                                            ; preds = %19942
  %19948 = load i32, ptr %566, align 4, !tbaa !9
  %19949 = load ptr, ptr %12, align 8, !tbaa !5
  %19950 = load i32, ptr %19949, align 4, !tbaa !9
  %19951 = icmp sle i32 %19948, %19950
  br i1 %19951, label %19952, label %19953

19952:                                            ; preds = %19947
  br label %19954

19953:                                            ; preds = %19947, %19942, %19939
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.24, i32 noundef 482, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

19954:                                            ; preds = %19952
  %19955 = load ptr, ptr %11, align 8, !tbaa !5
  %19956 = load i32, ptr %19955, align 4, !tbaa !9
  %19957 = sitofp i32 %19956 to double
  store double %19957, ptr %567, align 8, !tbaa !11
  %19958 = load ptr, ptr %12, align 8, !tbaa !5
  %19959 = load i32, ptr %19958, align 4, !tbaa !9
  %19960 = sitofp i32 %19959 to double
  store double %19960, ptr %568, align 8, !tbaa !11
  br label %19961

19961:                                            ; preds = %19954, %19934
  %19962 = load i32, ptr %8, align 4, !tbaa !9
  %19963 = icmp ule i32 6, %19962
  br i1 %19963, label %19964, label %20200

19964:                                            ; preds = %19961
  %19965 = load double, ptr %567, align 8, !tbaa !11
  %19966 = load double, ptr %568, align 8, !tbaa !11
  %19967 = fcmp olt double %19965, %19966
  br i1 %19967, label %19968, label %20200

19968:                                            ; preds = %19964
  %19969 = load i32, ptr %8, align 4, !tbaa !9
  %19970 = icmp ule i32 15, %19969
  br i1 %19970, label %19971, label %20023

19971:                                            ; preds = %19968
  call void @llvm.lifetime.start.p0(i64 8, ptr %569) #3
  %19972 = load double, ptr %567, align 8, !tbaa !11
  %19973 = fcmp olt double 0.000000e+00, %19972
  br i1 %19973, label %19974, label %19976

19974:                                            ; preds = %19971
  %19975 = load double, ptr %567, align 8, !tbaa !11
  br label %19977

19976:                                            ; preds = %19971
  br label %19977

19977:                                            ; preds = %19976, %19974
  %19978 = phi double [ %19975, %19974 ], [ 0.000000e+00, %19976 ]
  store double %19978, ptr %569, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %570) #3
  %19979 = load double, ptr %568, align 8, !tbaa !11
  %19980 = fcmp olt double 0.000000e+00, %19979
  br i1 %19980, label %19981, label %19983

19981:                                            ; preds = %19977
  %19982 = load double, ptr %568, align 8, !tbaa !11
  br label %19984

19983:                                            ; preds = %19977
  br label %19984

19984:                                            ; preds = %19983, %19981
  %19985 = phi double [ %19982, %19981 ], [ 0.000000e+00, %19983 ]
  store double %19985, ptr %570, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %571) #3
  %19986 = load double, ptr %569, align 8, !tbaa !11
  %19987 = load double, ptr %570, align 8, !tbaa !11
  %19988 = fcmp olt double %19986, %19987
  br i1 %19988, label %19989, label %19997

19989:                                            ; preds = %19984
  %19990 = load double, ptr %568, align 8, !tbaa !11
  %19991 = load double, ptr %567, align 8, !tbaa !11
  %19992 = fsub double %19990, %19991
  %19993 = load double, ptr %570, align 8, !tbaa !11
  %19994 = load double, ptr %569, align 8, !tbaa !11
  %19995 = fsub double %19993, %19994
  %19996 = fdiv double %19992, %19995
  br label %19998

19997:                                            ; preds = %19984
  br label %19998

19998:                                            ; preds = %19997, %19989
  %19999 = phi double [ %19996, %19989 ], [ 1.000000e+00, %19997 ]
  store double %19999, ptr %571, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %572) #3
  %20000 = load double, ptr %571, align 8, !tbaa !11
  %20001 = load i32, ptr %566, align 4, !tbaa !9
  %20002 = icmp slt i32 0, %20001
  br i1 %20002, label %20003, label %20005

20003:                                            ; preds = %19998
  %20004 = load i32, ptr %566, align 4, !tbaa !9
  br label %20006

20005:                                            ; preds = %19998
  br label %20006

20006:                                            ; preds = %20005, %20003
  %20007 = phi i32 [ %20004, %20003 ], [ 0, %20005 ]
  %20008 = sitofp i32 %20007 to double
  %20009 = fmul double %20000, %20008
  store double %20009, ptr %572, align 8, !tbaa !11
  %20010 = load double, ptr %572, align 8, !tbaa !11
  %20011 = fcmp ole double 0.000000e+00, %20010
  br i1 %20011, label %20012, label %20015

20012:                                            ; preds = %20006
  %20013 = load double, ptr %572, align 8, !tbaa !11
  %20014 = fadd double %20013, 5.000000e-01
  br label %20018

20015:                                            ; preds = %20006
  %20016 = load double, ptr %572, align 8, !tbaa !11
  %20017 = fsub double %20016, 5.000000e-01
  br label %20018

20018:                                            ; preds = %20015, %20012
  %20019 = phi double [ %20014, %20012 ], [ %20017, %20015 ]
  %20020 = fptosi double %20019 to i32
  store i32 %20020, ptr %566, align 4, !tbaa !9
  %20021 = load double, ptr %569, align 8, !tbaa !11
  store double %20021, ptr %567, align 8, !tbaa !11
  %20022 = load double, ptr %570, align 8, !tbaa !11
  store double %20022, ptr %568, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %572) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %571) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %570) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %569) #3
  br label %20079

20023:                                            ; preds = %19968
  %20024 = load i32, ptr %8, align 4, !tbaa !9
  %20025 = icmp ugt i32 6, %20024
  br i1 %20025, label %20054, label %20026

20026:                                            ; preds = %20023
  %20027 = load i32, ptr %8, align 4, !tbaa !9
  %20028 = icmp ugt i32 15, %20027
  br i1 %20028, label %20029, label %20040

20029:                                            ; preds = %20026
  %20030 = load i32, ptr %9, align 4, !tbaa !9
  %20031 = icmp ugt i32 15, %20030
  br i1 %20031, label %20032, label %20037

20032:                                            ; preds = %20029
  %20033 = load i32, ptr %9, align 4, !tbaa !9
  %20034 = load i32, ptr %8, align 4, !tbaa !9
  %20035 = icmp ugt i32 %20033, %20034
  %20036 = zext i1 %20035 to i32
  br label %20038

20037:                                            ; preds = %20029
  br label %20038

20038:                                            ; preds = %20037, %20032
  %20039 = phi i32 [ %20036, %20032 ], [ 0, %20037 ]
  br label %20051

20040:                                            ; preds = %20026
  %20041 = load i32, ptr %9, align 4, !tbaa !9
  %20042 = icmp ugt i32 15, %20041
  br i1 %20042, label %20043, label %20044

20043:                                            ; preds = %20040
  br label %20049

20044:                                            ; preds = %20040
  %20045 = load i32, ptr %9, align 4, !tbaa !9
  %20046 = load i32, ptr %8, align 4, !tbaa !9
  %20047 = icmp ugt i32 %20045, %20046
  %20048 = zext i1 %20047 to i32
  br label %20049

20049:                                            ; preds = %20044, %20043
  %20050 = phi i32 [ 0, %20043 ], [ %20048, %20044 ]
  br label %20051

20051:                                            ; preds = %20049, %20038
  %20052 = phi i32 [ %20039, %20038 ], [ %20050, %20049 ]
  %20053 = icmp ne i32 %20052, 0
  br label %20054

20054:                                            ; preds = %20051, %20023
  %20055 = phi i1 [ true, %20023 ], [ %20053, %20051 ]
  %20056 = zext i1 %20055 to i32
  %20057 = icmp eq i32 0, %20056
  br i1 %20057, label %20058, label %20078

20058:                                            ; preds = %20054
  %20059 = load double, ptr %567, align 8, !tbaa !11
  %20060 = fcmp ogt double 0.000000e+00, %20059
  br i1 %20060, label %20061, label %20078

20061:                                            ; preds = %20058
  %20062 = load double, ptr %568, align 8, !tbaa !11
  %20063 = fcmp olt double 0.000000e+00, %20062
  br i1 %20063, label %20064, label %20078

20064:                                            ; preds = %20061
  %20065 = load double, ptr %567, align 8, !tbaa !11
  %20066 = fneg double %20065
  %20067 = load double, ptr %568, align 8, !tbaa !11
  %20068 = fcmp olt double %20066, %20067
  br i1 %20068, label %20069, label %20071

20069:                                            ; preds = %20064
  %20070 = load double, ptr %568, align 8, !tbaa !11
  br label %20074

20071:                                            ; preds = %20064
  %20072 = load double, ptr %567, align 8, !tbaa !11
  %20073 = fneg double %20072
  br label %20074

20074:                                            ; preds = %20071, %20069
  %20075 = phi double [ %20070, %20069 ], [ %20073, %20071 ]
  store double %20075, ptr %568, align 8, !tbaa !11
  %20076 = load double, ptr %568, align 8, !tbaa !11
  %20077 = fneg double %20076
  store double %20077, ptr %567, align 8, !tbaa !11
  br label %20078

20078:                                            ; preds = %20074, %20061, %20058, %20054
  br label %20079

20079:                                            ; preds = %20078, %20018
  call void @llvm.lifetime.start.p0(i64 8, ptr %573) #3
  %20080 = load double, ptr %567, align 8, !tbaa !11
  %20081 = fcmp ole double 0.000000e+00, %20080
  %20082 = zext i1 %20081 to i64
  %20083 = select i1 %20081, double 0.000000e+00, double 0xC3E0000000000000
  store double %20083, ptr %573, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %574) #3
  %20084 = load double, ptr %568, align 8, !tbaa !11
  %20085 = fcmp ole double 0.000000e+00, %20084
  %20086 = zext i1 %20085 to i64
  %20087 = select i1 %20085, double 0x43E0000000000000, double 0.000000e+00
  store double %20087, ptr %574, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %575) #3
  %20088 = load i32, ptr %566, align 4, !tbaa !9
  %20089 = sitofp i32 %20088 to double
  %20090 = load double, ptr %567, align 8, !tbaa !11
  %20091 = fsub double %20089, %20090
  %20092 = load double, ptr %574, align 8, !tbaa !11
  %20093 = load double, ptr %573, align 8, !tbaa !11
  %20094 = fsub double %20092, %20093
  %20095 = fmul double %20091, %20094
  %20096 = load double, ptr %568, align 8, !tbaa !11
  %20097 = load double, ptr %567, align 8, !tbaa !11
  %20098 = fsub double %20096, %20097
  %20099 = fdiv double %20095, %20098
  %20100 = load double, ptr %573, align 8, !tbaa !11
  %20101 = fadd double %20099, %20100
  store double %20101, ptr %575, align 8, !tbaa !11
  %20102 = load double, ptr %573, align 8, !tbaa !11
  %20103 = load double, ptr %575, align 8, !tbaa !11
  %20104 = fcmp ole double 0.000000e+00, %20103
  br i1 %20104, label %20105, label %20108

20105:                                            ; preds = %20079
  %20106 = load double, ptr %575, align 8, !tbaa !11
  %20107 = fadd double %20106, 5.000000e-01
  br label %20111

20108:                                            ; preds = %20079
  %20109 = load double, ptr %575, align 8, !tbaa !11
  %20110 = fsub double %20109, 5.000000e-01
  br label %20111

20111:                                            ; preds = %20108, %20105
  %20112 = phi double [ %20107, %20105 ], [ %20110, %20108 ]
  %20113 = fcmp olt double %20102, %20112
  br i1 %20113, label %20114, label %20168

20114:                                            ; preds = %20111
  %20115 = load double, ptr %575, align 8, !tbaa !11
  %20116 = fcmp ole double 0.000000e+00, %20115
  br i1 %20116, label %20117, label %20120

20117:                                            ; preds = %20114
  %20118 = load double, ptr %575, align 8, !tbaa !11
  %20119 = fadd double %20118, 5.000000e-01
  br label %20123

20120:                                            ; preds = %20114
  %20121 = load double, ptr %575, align 8, !tbaa !11
  %20122 = fsub double %20121, 5.000000e-01
  br label %20123

20123:                                            ; preds = %20120, %20117
  %20124 = phi double [ %20119, %20117 ], [ %20122, %20120 ]
  %20125 = load double, ptr %574, align 8, !tbaa !11
  %20126 = fcmp ole double %20124, %20125
  br i1 %20126, label %20127, label %20138

20127:                                            ; preds = %20123
  %20128 = load double, ptr %575, align 8, !tbaa !11
  %20129 = fcmp ole double 0.000000e+00, %20128
  br i1 %20129, label %20130, label %20133

20130:                                            ; preds = %20127
  %20131 = load double, ptr %575, align 8, !tbaa !11
  %20132 = fadd double %20131, 5.000000e-01
  br label %20136

20133:                                            ; preds = %20127
  %20134 = load double, ptr %575, align 8, !tbaa !11
  %20135 = fsub double %20134, 5.000000e-01
  br label %20136

20136:                                            ; preds = %20133, %20130
  %20137 = phi double [ %20132, %20130 ], [ %20135, %20133 ]
  br label %20166

20138:                                            ; preds = %20123
  %20139 = load double, ptr %575, align 8, !tbaa !11
  %20140 = fcmp ole double 0.000000e+00, %20139
  br i1 %20140, label %20141, label %20144

20141:                                            ; preds = %20138
  %20142 = load double, ptr %575, align 8, !tbaa !11
  %20143 = fadd double %20142, 5.000000e-01
  br label %20147

20144:                                            ; preds = %20138
  %20145 = load double, ptr %575, align 8, !tbaa !11
  %20146 = fsub double %20145, 5.000000e-01
  br label %20147

20147:                                            ; preds = %20144, %20141
  %20148 = phi double [ %20143, %20141 ], [ %20146, %20144 ]
  %20149 = load double, ptr %574, align 8, !tbaa !11
  %20150 = fcmp olt double %20148, %20149
  br i1 %20150, label %20151, label %20162

20151:                                            ; preds = %20147
  %20152 = load double, ptr %575, align 8, !tbaa !11
  %20153 = fcmp ole double 0.000000e+00, %20152
  br i1 %20153, label %20154, label %20157

20154:                                            ; preds = %20151
  %20155 = load double, ptr %575, align 8, !tbaa !11
  %20156 = fadd double %20155, 5.000000e-01
  br label %20160

20157:                                            ; preds = %20151
  %20158 = load double, ptr %575, align 8, !tbaa !11
  %20159 = fsub double %20158, 5.000000e-01
  br label %20160

20160:                                            ; preds = %20157, %20154
  %20161 = phi double [ %20156, %20154 ], [ %20159, %20157 ]
  br label %20164

20162:                                            ; preds = %20147
  %20163 = load double, ptr %574, align 8, !tbaa !11
  br label %20164

20164:                                            ; preds = %20162, %20160
  %20165 = phi double [ %20161, %20160 ], [ %20163, %20162 ]
  br label %20166

20166:                                            ; preds = %20164, %20136
  %20167 = phi double [ %20137, %20136 ], [ %20165, %20164 ]
  br label %20196

20168:                                            ; preds = %20111
  %20169 = load double, ptr %573, align 8, !tbaa !11
  %20170 = load double, ptr %575, align 8, !tbaa !11
  %20171 = fcmp ole double 0.000000e+00, %20170
  br i1 %20171, label %20172, label %20175

20172:                                            ; preds = %20168
  %20173 = load double, ptr %575, align 8, !tbaa !11
  %20174 = fadd double %20173, 5.000000e-01
  br label %20178

20175:                                            ; preds = %20168
  %20176 = load double, ptr %575, align 8, !tbaa !11
  %20177 = fsub double %20176, 5.000000e-01
  br label %20178

20178:                                            ; preds = %20175, %20172
  %20179 = phi double [ %20174, %20172 ], [ %20177, %20175 ]
  %20180 = fcmp olt double %20169, %20179
  br i1 %20180, label %20181, label %20192

20181:                                            ; preds = %20178
  %20182 = load double, ptr %575, align 8, !tbaa !11
  %20183 = fcmp ole double 0.000000e+00, %20182
  br i1 %20183, label %20184, label %20187

20184:                                            ; preds = %20181
  %20185 = load double, ptr %575, align 8, !tbaa !11
  %20186 = fadd double %20185, 5.000000e-01
  br label %20190

20187:                                            ; preds = %20181
  %20188 = load double, ptr %575, align 8, !tbaa !11
  %20189 = fsub double %20188, 5.000000e-01
  br label %20190

20190:                                            ; preds = %20187, %20184
  %20191 = phi double [ %20186, %20184 ], [ %20189, %20187 ]
  br label %20194

20192:                                            ; preds = %20178
  %20193 = load double, ptr %573, align 8, !tbaa !11
  br label %20194

20194:                                            ; preds = %20192, %20190
  %20195 = phi double [ %20191, %20190 ], [ %20193, %20192 ]
  br label %20196

20196:                                            ; preds = %20194, %20166
  %20197 = phi double [ %20167, %20166 ], [ %20195, %20194 ]
  %20198 = fptosi double %20197 to i64
  %20199 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %20198, ptr %20199, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %575) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %574) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %573) #3
  br label %20277

20200:                                            ; preds = %19964, %19961
  %20201 = load i32, ptr %8, align 4, !tbaa !9
  %20202 = icmp ugt i32 6, %20201
  br i1 %20202, label %20231, label %20203

20203:                                            ; preds = %20200
  %20204 = load i32, ptr %8, align 4, !tbaa !9
  %20205 = icmp ugt i32 15, %20204
  br i1 %20205, label %20206, label %20217

20206:                                            ; preds = %20203
  %20207 = load i32, ptr %9, align 4, !tbaa !9
  %20208 = icmp ugt i32 15, %20207
  br i1 %20208, label %20209, label %20214

20209:                                            ; preds = %20206
  %20210 = load i32, ptr %9, align 4, !tbaa !9
  %20211 = load i32, ptr %8, align 4, !tbaa !9
  %20212 = icmp ugt i32 %20210, %20211
  %20213 = zext i1 %20212 to i32
  br label %20215

20214:                                            ; preds = %20206
  br label %20215

20215:                                            ; preds = %20214, %20209
  %20216 = phi i32 [ %20213, %20209 ], [ 0, %20214 ]
  br label %20228

20217:                                            ; preds = %20203
  %20218 = load i32, ptr %9, align 4, !tbaa !9
  %20219 = icmp ugt i32 15, %20218
  br i1 %20219, label %20220, label %20221

20220:                                            ; preds = %20217
  br label %20226

20221:                                            ; preds = %20217
  %20222 = load i32, ptr %9, align 4, !tbaa !9
  %20223 = load i32, ptr %8, align 4, !tbaa !9
  %20224 = icmp ugt i32 %20222, %20223
  %20225 = zext i1 %20224 to i32
  br label %20226

20226:                                            ; preds = %20221, %20220
  %20227 = phi i32 [ 0, %20220 ], [ %20225, %20221 ]
  br label %20228

20228:                                            ; preds = %20226, %20215
  %20229 = phi i32 [ %20216, %20215 ], [ %20227, %20226 ]
  %20230 = icmp ne i32 %20229, 0
  br label %20231

20231:                                            ; preds = %20228, %20200
  %20232 = phi i1 [ true, %20200 ], [ %20230, %20228 ]
  %20233 = zext i1 %20232 to i32
  %20234 = icmp eq i32 0, %20233
  br i1 %20234, label %20235, label %20272

20235:                                            ; preds = %20231
  %20236 = load i32, ptr %566, align 4, !tbaa !9
  %20237 = sitofp i32 %20236 to double
  %20238 = fcmp olt double 0xC3E0000000000000, %20237
  br i1 %20238, label %20239, label %20258

20239:                                            ; preds = %20235
  %20240 = load i32, ptr %566, align 4, !tbaa !9
  %20241 = sitofp i32 %20240 to double
  %20242 = fcmp ole double %20241, 0x43E0000000000000
  br i1 %20242, label %20243, label %20246

20243:                                            ; preds = %20239
  %20244 = load i32, ptr %566, align 4, !tbaa !9
  %20245 = sitofp i32 %20244 to double
  br label %20256

20246:                                            ; preds = %20239
  %20247 = load i32, ptr %566, align 4, !tbaa !9
  %20248 = sitofp i32 %20247 to double
  %20249 = fcmp olt double %20248, 0x43E0000000000000
  br i1 %20249, label %20250, label %20253

20250:                                            ; preds = %20246
  %20251 = load i32, ptr %566, align 4, !tbaa !9
  %20252 = sitofp i32 %20251 to double
  br label %20254

20253:                                            ; preds = %20246
  br label %20254

20254:                                            ; preds = %20253, %20250
  %20255 = phi double [ %20252, %20250 ], [ 0x43E0000000000000, %20253 ]
  br label %20256

20256:                                            ; preds = %20254, %20243
  %20257 = phi double [ %20245, %20243 ], [ %20255, %20254 ]
  br label %20268

20258:                                            ; preds = %20235
  %20259 = load i32, ptr %566, align 4, !tbaa !9
  %20260 = sitofp i32 %20259 to double
  %20261 = fcmp olt double 0xC3E0000000000000, %20260
  br i1 %20261, label %20262, label %20265

20262:                                            ; preds = %20258
  %20263 = load i32, ptr %566, align 4, !tbaa !9
  %20264 = sitofp i32 %20263 to double
  br label %20266

20265:                                            ; preds = %20258
  br label %20266

20266:                                            ; preds = %20265, %20262
  %20267 = phi double [ %20264, %20262 ], [ 0xC3E0000000000000, %20265 ]
  br label %20268

20268:                                            ; preds = %20266, %20256
  %20269 = phi double [ %20257, %20256 ], [ %20267, %20266 ]
  %20270 = fptosi double %20269 to i64
  %20271 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %20270, ptr %20271, align 8, !tbaa !13
  br label %20276

20272:                                            ; preds = %20231
  %20273 = load i32, ptr %566, align 4, !tbaa !9
  %20274 = sext i32 %20273 to i64
  %20275 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %20274, ptr %20275, align 8, !tbaa !13
  br label %20276

20276:                                            ; preds = %20272, %20268
  br label %20277

20277:                                            ; preds = %20276, %20196
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %568) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %567) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %566) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %565) #3
  br label %20278

20278:                                            ; preds = %20277
  br label %20279

20279:                                            ; preds = %20278
  br label %23208

20280:                                            ; preds = %19585
  br label %20281

20281:                                            ; preds = %20280
  call void @llvm.lifetime.start.p0(i64 8, ptr %576) #3
  store double 5.000000e-01, ptr %576, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %577) #3
  %20282 = load ptr, ptr %10, align 8, !tbaa !5
  %20283 = load i16, ptr %20282, align 2, !tbaa !15
  store i16 %20283, ptr %577, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %578) #3
  store double 0.000000e+00, ptr %578, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %579) #3
  store double 0.000000e+00, ptr %579, align 8, !tbaa !11
  %20284 = load ptr, ptr %11, align 8, !tbaa !5
  %20285 = icmp ne ptr null, %20284
  br i1 %20285, label %20286, label %20312

20286:                                            ; preds = %20281
  %20287 = load ptr, ptr %12, align 8, !tbaa !5
  %20288 = icmp ne ptr null, %20287
  br i1 %20288, label %20289, label %20304

20289:                                            ; preds = %20286
  %20290 = load ptr, ptr %11, align 8, !tbaa !5
  %20291 = load i16, ptr %20290, align 2, !tbaa !15
  %20292 = sext i16 %20291 to i32
  %20293 = load i16, ptr %577, align 2, !tbaa !15
  %20294 = sext i16 %20293 to i32
  %20295 = icmp sle i32 %20292, %20294
  br i1 %20295, label %20296, label %20304

20296:                                            ; preds = %20289
  %20297 = load i16, ptr %577, align 2, !tbaa !15
  %20298 = sext i16 %20297 to i32
  %20299 = load ptr, ptr %12, align 8, !tbaa !5
  %20300 = load i16, ptr %20299, align 2, !tbaa !15
  %20301 = sext i16 %20300 to i32
  %20302 = icmp sle i32 %20298, %20301
  br i1 %20302, label %20303, label %20304

20303:                                            ; preds = %20296
  br label %20305

20304:                                            ; preds = %20296, %20289, %20286
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.24, i32 noundef 482, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

20305:                                            ; preds = %20303
  %20306 = load ptr, ptr %11, align 8, !tbaa !5
  %20307 = load i16, ptr %20306, align 2, !tbaa !15
  %20308 = sitofp i16 %20307 to double
  store double %20308, ptr %578, align 8, !tbaa !11
  %20309 = load ptr, ptr %12, align 8, !tbaa !5
  %20310 = load i16, ptr %20309, align 2, !tbaa !15
  %20311 = sitofp i16 %20310 to double
  store double %20311, ptr %579, align 8, !tbaa !11
  br label %20312

20312:                                            ; preds = %20305, %20281
  %20313 = load i32, ptr %8, align 4, !tbaa !9
  %20314 = icmp ule i32 6, %20313
  br i1 %20314, label %20315, label %20553

20315:                                            ; preds = %20312
  %20316 = load double, ptr %578, align 8, !tbaa !11
  %20317 = load double, ptr %579, align 8, !tbaa !11
  %20318 = fcmp olt double %20316, %20317
  br i1 %20318, label %20319, label %20553

20319:                                            ; preds = %20315
  %20320 = load i32, ptr %8, align 4, !tbaa !9
  %20321 = icmp ule i32 15, %20320
  br i1 %20321, label %20322, label %20376

20322:                                            ; preds = %20319
  call void @llvm.lifetime.start.p0(i64 8, ptr %580) #3
  %20323 = load double, ptr %578, align 8, !tbaa !11
  %20324 = fcmp olt double 0.000000e+00, %20323
  br i1 %20324, label %20325, label %20327

20325:                                            ; preds = %20322
  %20326 = load double, ptr %578, align 8, !tbaa !11
  br label %20328

20327:                                            ; preds = %20322
  br label %20328

20328:                                            ; preds = %20327, %20325
  %20329 = phi double [ %20326, %20325 ], [ 0.000000e+00, %20327 ]
  store double %20329, ptr %580, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %581) #3
  %20330 = load double, ptr %579, align 8, !tbaa !11
  %20331 = fcmp olt double 0.000000e+00, %20330
  br i1 %20331, label %20332, label %20334

20332:                                            ; preds = %20328
  %20333 = load double, ptr %579, align 8, !tbaa !11
  br label %20335

20334:                                            ; preds = %20328
  br label %20335

20335:                                            ; preds = %20334, %20332
  %20336 = phi double [ %20333, %20332 ], [ 0.000000e+00, %20334 ]
  store double %20336, ptr %581, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %582) #3
  %20337 = load double, ptr %580, align 8, !tbaa !11
  %20338 = load double, ptr %581, align 8, !tbaa !11
  %20339 = fcmp olt double %20337, %20338
  br i1 %20339, label %20340, label %20348

20340:                                            ; preds = %20335
  %20341 = load double, ptr %579, align 8, !tbaa !11
  %20342 = load double, ptr %578, align 8, !tbaa !11
  %20343 = fsub double %20341, %20342
  %20344 = load double, ptr %581, align 8, !tbaa !11
  %20345 = load double, ptr %580, align 8, !tbaa !11
  %20346 = fsub double %20344, %20345
  %20347 = fdiv double %20343, %20346
  br label %20349

20348:                                            ; preds = %20335
  br label %20349

20349:                                            ; preds = %20348, %20340
  %20350 = phi double [ %20347, %20340 ], [ 1.000000e+00, %20348 ]
  store double %20350, ptr %582, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %583) #3
  %20351 = load double, ptr %582, align 8, !tbaa !11
  %20352 = load i16, ptr %577, align 2, !tbaa !15
  %20353 = sext i16 %20352 to i32
  %20354 = icmp slt i32 0, %20353
  br i1 %20354, label %20355, label %20358

20355:                                            ; preds = %20349
  %20356 = load i16, ptr %577, align 2, !tbaa !15
  %20357 = sext i16 %20356 to i32
  br label %20359

20358:                                            ; preds = %20349
  br label %20359

20359:                                            ; preds = %20358, %20355
  %20360 = phi i32 [ %20357, %20355 ], [ 0, %20358 ]
  %20361 = sitofp i32 %20360 to double
  %20362 = fmul double %20351, %20361
  store double %20362, ptr %583, align 8, !tbaa !11
  %20363 = load double, ptr %583, align 8, !tbaa !11
  %20364 = fcmp ole double 0.000000e+00, %20363
  br i1 %20364, label %20365, label %20368

20365:                                            ; preds = %20359
  %20366 = load double, ptr %583, align 8, !tbaa !11
  %20367 = fadd double %20366, 5.000000e-01
  br label %20371

20368:                                            ; preds = %20359
  %20369 = load double, ptr %583, align 8, !tbaa !11
  %20370 = fsub double %20369, 5.000000e-01
  br label %20371

20371:                                            ; preds = %20368, %20365
  %20372 = phi double [ %20367, %20365 ], [ %20370, %20368 ]
  %20373 = fptosi double %20372 to i16
  store i16 %20373, ptr %577, align 2, !tbaa !15
  %20374 = load double, ptr %580, align 8, !tbaa !11
  store double %20374, ptr %578, align 8, !tbaa !11
  %20375 = load double, ptr %581, align 8, !tbaa !11
  store double %20375, ptr %579, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %583) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %582) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %581) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %580) #3
  br label %20432

20376:                                            ; preds = %20319
  %20377 = load i32, ptr %8, align 4, !tbaa !9
  %20378 = icmp ugt i32 6, %20377
  br i1 %20378, label %20407, label %20379

20379:                                            ; preds = %20376
  %20380 = load i32, ptr %8, align 4, !tbaa !9
  %20381 = icmp ugt i32 15, %20380
  br i1 %20381, label %20382, label %20393

20382:                                            ; preds = %20379
  %20383 = load i32, ptr %9, align 4, !tbaa !9
  %20384 = icmp ugt i32 15, %20383
  br i1 %20384, label %20385, label %20390

20385:                                            ; preds = %20382
  %20386 = load i32, ptr %9, align 4, !tbaa !9
  %20387 = load i32, ptr %8, align 4, !tbaa !9
  %20388 = icmp ugt i32 %20386, %20387
  %20389 = zext i1 %20388 to i32
  br label %20391

20390:                                            ; preds = %20382
  br label %20391

20391:                                            ; preds = %20390, %20385
  %20392 = phi i32 [ %20389, %20385 ], [ 0, %20390 ]
  br label %20404

20393:                                            ; preds = %20379
  %20394 = load i32, ptr %9, align 4, !tbaa !9
  %20395 = icmp ugt i32 15, %20394
  br i1 %20395, label %20396, label %20397

20396:                                            ; preds = %20393
  br label %20402

20397:                                            ; preds = %20393
  %20398 = load i32, ptr %9, align 4, !tbaa !9
  %20399 = load i32, ptr %8, align 4, !tbaa !9
  %20400 = icmp ugt i32 %20398, %20399
  %20401 = zext i1 %20400 to i32
  br label %20402

20402:                                            ; preds = %20397, %20396
  %20403 = phi i32 [ 0, %20396 ], [ %20401, %20397 ]
  br label %20404

20404:                                            ; preds = %20402, %20391
  %20405 = phi i32 [ %20392, %20391 ], [ %20403, %20402 ]
  %20406 = icmp ne i32 %20405, 0
  br label %20407

20407:                                            ; preds = %20404, %20376
  %20408 = phi i1 [ true, %20376 ], [ %20406, %20404 ]
  %20409 = zext i1 %20408 to i32
  %20410 = icmp eq i32 0, %20409
  br i1 %20410, label %20411, label %20431

20411:                                            ; preds = %20407
  %20412 = load double, ptr %578, align 8, !tbaa !11
  %20413 = fcmp ogt double 0.000000e+00, %20412
  br i1 %20413, label %20414, label %20431

20414:                                            ; preds = %20411
  %20415 = load double, ptr %579, align 8, !tbaa !11
  %20416 = fcmp olt double 0.000000e+00, %20415
  br i1 %20416, label %20417, label %20431

20417:                                            ; preds = %20414
  %20418 = load double, ptr %578, align 8, !tbaa !11
  %20419 = fneg double %20418
  %20420 = load double, ptr %579, align 8, !tbaa !11
  %20421 = fcmp olt double %20419, %20420
  br i1 %20421, label %20422, label %20424

20422:                                            ; preds = %20417
  %20423 = load double, ptr %579, align 8, !tbaa !11
  br label %20427

20424:                                            ; preds = %20417
  %20425 = load double, ptr %578, align 8, !tbaa !11
  %20426 = fneg double %20425
  br label %20427

20427:                                            ; preds = %20424, %20422
  %20428 = phi double [ %20423, %20422 ], [ %20426, %20424 ]
  store double %20428, ptr %579, align 8, !tbaa !11
  %20429 = load double, ptr %579, align 8, !tbaa !11
  %20430 = fneg double %20429
  store double %20430, ptr %578, align 8, !tbaa !11
  br label %20431

20431:                                            ; preds = %20427, %20414, %20411, %20407
  br label %20432

20432:                                            ; preds = %20431, %20371
  call void @llvm.lifetime.start.p0(i64 8, ptr %584) #3
  %20433 = load double, ptr %578, align 8, !tbaa !11
  %20434 = fcmp ole double 0.000000e+00, %20433
  %20435 = zext i1 %20434 to i64
  %20436 = select i1 %20434, double 0.000000e+00, double 0xC3E0000000000000
  store double %20436, ptr %584, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %585) #3
  %20437 = load double, ptr %579, align 8, !tbaa !11
  %20438 = fcmp ole double 0.000000e+00, %20437
  %20439 = zext i1 %20438 to i64
  %20440 = select i1 %20438, double 0x43E0000000000000, double 0.000000e+00
  store double %20440, ptr %585, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %586) #3
  %20441 = load i16, ptr %577, align 2, !tbaa !15
  %20442 = sitofp i16 %20441 to double
  %20443 = load double, ptr %578, align 8, !tbaa !11
  %20444 = fsub double %20442, %20443
  %20445 = load double, ptr %585, align 8, !tbaa !11
  %20446 = load double, ptr %584, align 8, !tbaa !11
  %20447 = fsub double %20445, %20446
  %20448 = fmul double %20444, %20447
  %20449 = load double, ptr %579, align 8, !tbaa !11
  %20450 = load double, ptr %578, align 8, !tbaa !11
  %20451 = fsub double %20449, %20450
  %20452 = fdiv double %20448, %20451
  %20453 = load double, ptr %584, align 8, !tbaa !11
  %20454 = fadd double %20452, %20453
  store double %20454, ptr %586, align 8, !tbaa !11
  %20455 = load double, ptr %584, align 8, !tbaa !11
  %20456 = load double, ptr %586, align 8, !tbaa !11
  %20457 = fcmp ole double 0.000000e+00, %20456
  br i1 %20457, label %20458, label %20461

20458:                                            ; preds = %20432
  %20459 = load double, ptr %586, align 8, !tbaa !11
  %20460 = fadd double %20459, 5.000000e-01
  br label %20464

20461:                                            ; preds = %20432
  %20462 = load double, ptr %586, align 8, !tbaa !11
  %20463 = fsub double %20462, 5.000000e-01
  br label %20464

20464:                                            ; preds = %20461, %20458
  %20465 = phi double [ %20460, %20458 ], [ %20463, %20461 ]
  %20466 = fcmp olt double %20455, %20465
  br i1 %20466, label %20467, label %20521

20467:                                            ; preds = %20464
  %20468 = load double, ptr %586, align 8, !tbaa !11
  %20469 = fcmp ole double 0.000000e+00, %20468
  br i1 %20469, label %20470, label %20473

20470:                                            ; preds = %20467
  %20471 = load double, ptr %586, align 8, !tbaa !11
  %20472 = fadd double %20471, 5.000000e-01
  br label %20476

20473:                                            ; preds = %20467
  %20474 = load double, ptr %586, align 8, !tbaa !11
  %20475 = fsub double %20474, 5.000000e-01
  br label %20476

20476:                                            ; preds = %20473, %20470
  %20477 = phi double [ %20472, %20470 ], [ %20475, %20473 ]
  %20478 = load double, ptr %585, align 8, !tbaa !11
  %20479 = fcmp ole double %20477, %20478
  br i1 %20479, label %20480, label %20491

20480:                                            ; preds = %20476
  %20481 = load double, ptr %586, align 8, !tbaa !11
  %20482 = fcmp ole double 0.000000e+00, %20481
  br i1 %20482, label %20483, label %20486

20483:                                            ; preds = %20480
  %20484 = load double, ptr %586, align 8, !tbaa !11
  %20485 = fadd double %20484, 5.000000e-01
  br label %20489

20486:                                            ; preds = %20480
  %20487 = load double, ptr %586, align 8, !tbaa !11
  %20488 = fsub double %20487, 5.000000e-01
  br label %20489

20489:                                            ; preds = %20486, %20483
  %20490 = phi double [ %20485, %20483 ], [ %20488, %20486 ]
  br label %20519

20491:                                            ; preds = %20476
  %20492 = load double, ptr %586, align 8, !tbaa !11
  %20493 = fcmp ole double 0.000000e+00, %20492
  br i1 %20493, label %20494, label %20497

20494:                                            ; preds = %20491
  %20495 = load double, ptr %586, align 8, !tbaa !11
  %20496 = fadd double %20495, 5.000000e-01
  br label %20500

20497:                                            ; preds = %20491
  %20498 = load double, ptr %586, align 8, !tbaa !11
  %20499 = fsub double %20498, 5.000000e-01
  br label %20500

20500:                                            ; preds = %20497, %20494
  %20501 = phi double [ %20496, %20494 ], [ %20499, %20497 ]
  %20502 = load double, ptr %585, align 8, !tbaa !11
  %20503 = fcmp olt double %20501, %20502
  br i1 %20503, label %20504, label %20515

20504:                                            ; preds = %20500
  %20505 = load double, ptr %586, align 8, !tbaa !11
  %20506 = fcmp ole double 0.000000e+00, %20505
  br i1 %20506, label %20507, label %20510

20507:                                            ; preds = %20504
  %20508 = load double, ptr %586, align 8, !tbaa !11
  %20509 = fadd double %20508, 5.000000e-01
  br label %20513

20510:                                            ; preds = %20504
  %20511 = load double, ptr %586, align 8, !tbaa !11
  %20512 = fsub double %20511, 5.000000e-01
  br label %20513

20513:                                            ; preds = %20510, %20507
  %20514 = phi double [ %20509, %20507 ], [ %20512, %20510 ]
  br label %20517

20515:                                            ; preds = %20500
  %20516 = load double, ptr %585, align 8, !tbaa !11
  br label %20517

20517:                                            ; preds = %20515, %20513
  %20518 = phi double [ %20514, %20513 ], [ %20516, %20515 ]
  br label %20519

20519:                                            ; preds = %20517, %20489
  %20520 = phi double [ %20490, %20489 ], [ %20518, %20517 ]
  br label %20549

20521:                                            ; preds = %20464
  %20522 = load double, ptr %584, align 8, !tbaa !11
  %20523 = load double, ptr %586, align 8, !tbaa !11
  %20524 = fcmp ole double 0.000000e+00, %20523
  br i1 %20524, label %20525, label %20528

20525:                                            ; preds = %20521
  %20526 = load double, ptr %586, align 8, !tbaa !11
  %20527 = fadd double %20526, 5.000000e-01
  br label %20531

20528:                                            ; preds = %20521
  %20529 = load double, ptr %586, align 8, !tbaa !11
  %20530 = fsub double %20529, 5.000000e-01
  br label %20531

20531:                                            ; preds = %20528, %20525
  %20532 = phi double [ %20527, %20525 ], [ %20530, %20528 ]
  %20533 = fcmp olt double %20522, %20532
  br i1 %20533, label %20534, label %20545

20534:                                            ; preds = %20531
  %20535 = load double, ptr %586, align 8, !tbaa !11
  %20536 = fcmp ole double 0.000000e+00, %20535
  br i1 %20536, label %20537, label %20540

20537:                                            ; preds = %20534
  %20538 = load double, ptr %586, align 8, !tbaa !11
  %20539 = fadd double %20538, 5.000000e-01
  br label %20543

20540:                                            ; preds = %20534
  %20541 = load double, ptr %586, align 8, !tbaa !11
  %20542 = fsub double %20541, 5.000000e-01
  br label %20543

20543:                                            ; preds = %20540, %20537
  %20544 = phi double [ %20539, %20537 ], [ %20542, %20540 ]
  br label %20547

20545:                                            ; preds = %20531
  %20546 = load double, ptr %584, align 8, !tbaa !11
  br label %20547

20547:                                            ; preds = %20545, %20543
  %20548 = phi double [ %20544, %20543 ], [ %20546, %20545 ]
  br label %20549

20549:                                            ; preds = %20547, %20519
  %20550 = phi double [ %20520, %20519 ], [ %20548, %20547 ]
  %20551 = fptosi double %20550 to i64
  %20552 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %20551, ptr %20552, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %586) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %585) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %584) #3
  br label %20637

20553:                                            ; preds = %20315, %20312
  %20554 = load i32, ptr %8, align 4, !tbaa !9
  %20555 = icmp ugt i32 6, %20554
  br i1 %20555, label %20584, label %20556

20556:                                            ; preds = %20553
  %20557 = load i32, ptr %8, align 4, !tbaa !9
  %20558 = icmp ugt i32 15, %20557
  br i1 %20558, label %20559, label %20570

20559:                                            ; preds = %20556
  %20560 = load i32, ptr %9, align 4, !tbaa !9
  %20561 = icmp ugt i32 15, %20560
  br i1 %20561, label %20562, label %20567

20562:                                            ; preds = %20559
  %20563 = load i32, ptr %9, align 4, !tbaa !9
  %20564 = load i32, ptr %8, align 4, !tbaa !9
  %20565 = icmp ugt i32 %20563, %20564
  %20566 = zext i1 %20565 to i32
  br label %20568

20567:                                            ; preds = %20559
  br label %20568

20568:                                            ; preds = %20567, %20562
  %20569 = phi i32 [ %20566, %20562 ], [ 0, %20567 ]
  br label %20581

20570:                                            ; preds = %20556
  %20571 = load i32, ptr %9, align 4, !tbaa !9
  %20572 = icmp ugt i32 15, %20571
  br i1 %20572, label %20573, label %20574

20573:                                            ; preds = %20570
  br label %20579

20574:                                            ; preds = %20570
  %20575 = load i32, ptr %9, align 4, !tbaa !9
  %20576 = load i32, ptr %8, align 4, !tbaa !9
  %20577 = icmp ugt i32 %20575, %20576
  %20578 = zext i1 %20577 to i32
  br label %20579

20579:                                            ; preds = %20574, %20573
  %20580 = phi i32 [ 0, %20573 ], [ %20578, %20574 ]
  br label %20581

20581:                                            ; preds = %20579, %20568
  %20582 = phi i32 [ %20569, %20568 ], [ %20580, %20579 ]
  %20583 = icmp ne i32 %20582, 0
  br label %20584

20584:                                            ; preds = %20581, %20553
  %20585 = phi i1 [ true, %20553 ], [ %20583, %20581 ]
  %20586 = zext i1 %20585 to i32
  %20587 = icmp eq i32 0, %20586
  br i1 %20587, label %20588, label %20632

20588:                                            ; preds = %20584
  %20589 = load i16, ptr %577, align 2, !tbaa !15
  %20590 = sext i16 %20589 to i32
  %20591 = sitofp i32 %20590 to double
  %20592 = fcmp olt double 0xC3E0000000000000, %20591
  br i1 %20592, label %20593, label %20616

20593:                                            ; preds = %20588
  %20594 = load i16, ptr %577, align 2, !tbaa !15
  %20595 = sext i16 %20594 to i32
  %20596 = sitofp i32 %20595 to double
  %20597 = fcmp ole double %20596, 0x43E0000000000000
  br i1 %20597, label %20598, label %20602

20598:                                            ; preds = %20593
  %20599 = load i16, ptr %577, align 2, !tbaa !15
  %20600 = sext i16 %20599 to i32
  %20601 = sitofp i32 %20600 to double
  br label %20614

20602:                                            ; preds = %20593
  %20603 = load i16, ptr %577, align 2, !tbaa !15
  %20604 = sext i16 %20603 to i32
  %20605 = sitofp i32 %20604 to double
  %20606 = fcmp olt double %20605, 0x43E0000000000000
  br i1 %20606, label %20607, label %20611

20607:                                            ; preds = %20602
  %20608 = load i16, ptr %577, align 2, !tbaa !15
  %20609 = sext i16 %20608 to i32
  %20610 = sitofp i32 %20609 to double
  br label %20612

20611:                                            ; preds = %20602
  br label %20612

20612:                                            ; preds = %20611, %20607
  %20613 = phi double [ %20610, %20607 ], [ 0x43E0000000000000, %20611 ]
  br label %20614

20614:                                            ; preds = %20612, %20598
  %20615 = phi double [ %20601, %20598 ], [ %20613, %20612 ]
  br label %20628

20616:                                            ; preds = %20588
  %20617 = load i16, ptr %577, align 2, !tbaa !15
  %20618 = sext i16 %20617 to i32
  %20619 = sitofp i32 %20618 to double
  %20620 = fcmp olt double 0xC3E0000000000000, %20619
  br i1 %20620, label %20621, label %20625

20621:                                            ; preds = %20616
  %20622 = load i16, ptr %577, align 2, !tbaa !15
  %20623 = sext i16 %20622 to i32
  %20624 = sitofp i32 %20623 to double
  br label %20626

20625:                                            ; preds = %20616
  br label %20626

20626:                                            ; preds = %20625, %20621
  %20627 = phi double [ %20624, %20621 ], [ 0xC3E0000000000000, %20625 ]
  br label %20628

20628:                                            ; preds = %20626, %20614
  %20629 = phi double [ %20615, %20614 ], [ %20627, %20626 ]
  %20630 = fptosi double %20629 to i64
  %20631 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %20630, ptr %20631, align 8, !tbaa !13
  br label %20636

20632:                                            ; preds = %20584
  %20633 = load i16, ptr %577, align 2, !tbaa !15
  %20634 = sext i16 %20633 to i64
  %20635 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %20634, ptr %20635, align 8, !tbaa !13
  br label %20636

20636:                                            ; preds = %20632, %20628
  br label %20637

20637:                                            ; preds = %20636, %20549
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %579) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %578) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %577) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %576) #3
  br label %20638

20638:                                            ; preds = %20637
  br label %20639

20639:                                            ; preds = %20638
  br label %23208

20640:                                            ; preds = %19585
  br label %20641

20641:                                            ; preds = %20640
  call void @llvm.lifetime.start.p0(i64 8, ptr %587) #3
  store double 5.000000e-01, ptr %587, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %588) #3
  %20642 = load ptr, ptr %10, align 8, !tbaa !5
  %20643 = load i8, ptr %20642, align 1, !tbaa !17
  store i8 %20643, ptr %588, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %589) #3
  store double 0.000000e+00, ptr %589, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %590) #3
  store double 0.000000e+00, ptr %590, align 8, !tbaa !11
  %20644 = load ptr, ptr %11, align 8, !tbaa !5
  %20645 = icmp ne ptr null, %20644
  br i1 %20645, label %20646, label %20672

20646:                                            ; preds = %20641
  %20647 = load ptr, ptr %12, align 8, !tbaa !5
  %20648 = icmp ne ptr null, %20647
  br i1 %20648, label %20649, label %20664

20649:                                            ; preds = %20646
  %20650 = load ptr, ptr %11, align 8, !tbaa !5
  %20651 = load i8, ptr %20650, align 1, !tbaa !17
  %20652 = sext i8 %20651 to i32
  %20653 = load i8, ptr %588, align 1, !tbaa !17
  %20654 = sext i8 %20653 to i32
  %20655 = icmp sle i32 %20652, %20654
  br i1 %20655, label %20656, label %20664

20656:                                            ; preds = %20649
  %20657 = load i8, ptr %588, align 1, !tbaa !17
  %20658 = sext i8 %20657 to i32
  %20659 = load ptr, ptr %12, align 8, !tbaa !5
  %20660 = load i8, ptr %20659, align 1, !tbaa !17
  %20661 = sext i8 %20660 to i32
  %20662 = icmp sle i32 %20658, %20661
  br i1 %20662, label %20663, label %20664

20663:                                            ; preds = %20656
  br label %20665

20664:                                            ; preds = %20656, %20649, %20646
  call void @__assert_fail(ptr noundef @.str.45, ptr noundef @.str.24, i32 noundef 482, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

20665:                                            ; preds = %20663
  %20666 = load ptr, ptr %11, align 8, !tbaa !5
  %20667 = load i8, ptr %20666, align 1, !tbaa !17
  %20668 = sitofp i8 %20667 to double
  store double %20668, ptr %589, align 8, !tbaa !11
  %20669 = load ptr, ptr %12, align 8, !tbaa !5
  %20670 = load i8, ptr %20669, align 1, !tbaa !17
  %20671 = sitofp i8 %20670 to double
  store double %20671, ptr %590, align 8, !tbaa !11
  br label %20672

20672:                                            ; preds = %20665, %20641
  %20673 = load i32, ptr %8, align 4, !tbaa !9
  %20674 = icmp ule i32 6, %20673
  br i1 %20674, label %20675, label %20913

20675:                                            ; preds = %20672
  %20676 = load double, ptr %589, align 8, !tbaa !11
  %20677 = load double, ptr %590, align 8, !tbaa !11
  %20678 = fcmp olt double %20676, %20677
  br i1 %20678, label %20679, label %20913

20679:                                            ; preds = %20675
  %20680 = load i32, ptr %8, align 4, !tbaa !9
  %20681 = icmp ule i32 15, %20680
  br i1 %20681, label %20682, label %20736

20682:                                            ; preds = %20679
  call void @llvm.lifetime.start.p0(i64 8, ptr %591) #3
  %20683 = load double, ptr %589, align 8, !tbaa !11
  %20684 = fcmp olt double 0.000000e+00, %20683
  br i1 %20684, label %20685, label %20687

20685:                                            ; preds = %20682
  %20686 = load double, ptr %589, align 8, !tbaa !11
  br label %20688

20687:                                            ; preds = %20682
  br label %20688

20688:                                            ; preds = %20687, %20685
  %20689 = phi double [ %20686, %20685 ], [ 0.000000e+00, %20687 ]
  store double %20689, ptr %591, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %592) #3
  %20690 = load double, ptr %590, align 8, !tbaa !11
  %20691 = fcmp olt double 0.000000e+00, %20690
  br i1 %20691, label %20692, label %20694

20692:                                            ; preds = %20688
  %20693 = load double, ptr %590, align 8, !tbaa !11
  br label %20695

20694:                                            ; preds = %20688
  br label %20695

20695:                                            ; preds = %20694, %20692
  %20696 = phi double [ %20693, %20692 ], [ 0.000000e+00, %20694 ]
  store double %20696, ptr %592, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %593) #3
  %20697 = load double, ptr %591, align 8, !tbaa !11
  %20698 = load double, ptr %592, align 8, !tbaa !11
  %20699 = fcmp olt double %20697, %20698
  br i1 %20699, label %20700, label %20708

20700:                                            ; preds = %20695
  %20701 = load double, ptr %590, align 8, !tbaa !11
  %20702 = load double, ptr %589, align 8, !tbaa !11
  %20703 = fsub double %20701, %20702
  %20704 = load double, ptr %592, align 8, !tbaa !11
  %20705 = load double, ptr %591, align 8, !tbaa !11
  %20706 = fsub double %20704, %20705
  %20707 = fdiv double %20703, %20706
  br label %20709

20708:                                            ; preds = %20695
  br label %20709

20709:                                            ; preds = %20708, %20700
  %20710 = phi double [ %20707, %20700 ], [ 1.000000e+00, %20708 ]
  store double %20710, ptr %593, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %594) #3
  %20711 = load double, ptr %593, align 8, !tbaa !11
  %20712 = load i8, ptr %588, align 1, !tbaa !17
  %20713 = sext i8 %20712 to i32
  %20714 = icmp slt i32 0, %20713
  br i1 %20714, label %20715, label %20718

20715:                                            ; preds = %20709
  %20716 = load i8, ptr %588, align 1, !tbaa !17
  %20717 = sext i8 %20716 to i32
  br label %20719

20718:                                            ; preds = %20709
  br label %20719

20719:                                            ; preds = %20718, %20715
  %20720 = phi i32 [ %20717, %20715 ], [ 0, %20718 ]
  %20721 = sitofp i32 %20720 to double
  %20722 = fmul double %20711, %20721
  store double %20722, ptr %594, align 8, !tbaa !11
  %20723 = load double, ptr %594, align 8, !tbaa !11
  %20724 = fcmp ole double 0.000000e+00, %20723
  br i1 %20724, label %20725, label %20728

20725:                                            ; preds = %20719
  %20726 = load double, ptr %594, align 8, !tbaa !11
  %20727 = fadd double %20726, 5.000000e-01
  br label %20731

20728:                                            ; preds = %20719
  %20729 = load double, ptr %594, align 8, !tbaa !11
  %20730 = fsub double %20729, 5.000000e-01
  br label %20731

20731:                                            ; preds = %20728, %20725
  %20732 = phi double [ %20727, %20725 ], [ %20730, %20728 ]
  %20733 = fptosi double %20732 to i8
  store i8 %20733, ptr %588, align 1, !tbaa !17
  %20734 = load double, ptr %591, align 8, !tbaa !11
  store double %20734, ptr %589, align 8, !tbaa !11
  %20735 = load double, ptr %592, align 8, !tbaa !11
  store double %20735, ptr %590, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %594) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %593) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %592) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %591) #3
  br label %20792

20736:                                            ; preds = %20679
  %20737 = load i32, ptr %8, align 4, !tbaa !9
  %20738 = icmp ugt i32 6, %20737
  br i1 %20738, label %20767, label %20739

20739:                                            ; preds = %20736
  %20740 = load i32, ptr %8, align 4, !tbaa !9
  %20741 = icmp ugt i32 15, %20740
  br i1 %20741, label %20742, label %20753

20742:                                            ; preds = %20739
  %20743 = load i32, ptr %9, align 4, !tbaa !9
  %20744 = icmp ugt i32 15, %20743
  br i1 %20744, label %20745, label %20750

20745:                                            ; preds = %20742
  %20746 = load i32, ptr %9, align 4, !tbaa !9
  %20747 = load i32, ptr %8, align 4, !tbaa !9
  %20748 = icmp ugt i32 %20746, %20747
  %20749 = zext i1 %20748 to i32
  br label %20751

20750:                                            ; preds = %20742
  br label %20751

20751:                                            ; preds = %20750, %20745
  %20752 = phi i32 [ %20749, %20745 ], [ 0, %20750 ]
  br label %20764

20753:                                            ; preds = %20739
  %20754 = load i32, ptr %9, align 4, !tbaa !9
  %20755 = icmp ugt i32 15, %20754
  br i1 %20755, label %20756, label %20757

20756:                                            ; preds = %20753
  br label %20762

20757:                                            ; preds = %20753
  %20758 = load i32, ptr %9, align 4, !tbaa !9
  %20759 = load i32, ptr %8, align 4, !tbaa !9
  %20760 = icmp ugt i32 %20758, %20759
  %20761 = zext i1 %20760 to i32
  br label %20762

20762:                                            ; preds = %20757, %20756
  %20763 = phi i32 [ 0, %20756 ], [ %20761, %20757 ]
  br label %20764

20764:                                            ; preds = %20762, %20751
  %20765 = phi i32 [ %20752, %20751 ], [ %20763, %20762 ]
  %20766 = icmp ne i32 %20765, 0
  br label %20767

20767:                                            ; preds = %20764, %20736
  %20768 = phi i1 [ true, %20736 ], [ %20766, %20764 ]
  %20769 = zext i1 %20768 to i32
  %20770 = icmp eq i32 0, %20769
  br i1 %20770, label %20771, label %20791

20771:                                            ; preds = %20767
  %20772 = load double, ptr %589, align 8, !tbaa !11
  %20773 = fcmp ogt double 0.000000e+00, %20772
  br i1 %20773, label %20774, label %20791

20774:                                            ; preds = %20771
  %20775 = load double, ptr %590, align 8, !tbaa !11
  %20776 = fcmp olt double 0.000000e+00, %20775
  br i1 %20776, label %20777, label %20791

20777:                                            ; preds = %20774
  %20778 = load double, ptr %589, align 8, !tbaa !11
  %20779 = fneg double %20778
  %20780 = load double, ptr %590, align 8, !tbaa !11
  %20781 = fcmp olt double %20779, %20780
  br i1 %20781, label %20782, label %20784

20782:                                            ; preds = %20777
  %20783 = load double, ptr %590, align 8, !tbaa !11
  br label %20787

20784:                                            ; preds = %20777
  %20785 = load double, ptr %589, align 8, !tbaa !11
  %20786 = fneg double %20785
  br label %20787

20787:                                            ; preds = %20784, %20782
  %20788 = phi double [ %20783, %20782 ], [ %20786, %20784 ]
  store double %20788, ptr %590, align 8, !tbaa !11
  %20789 = load double, ptr %590, align 8, !tbaa !11
  %20790 = fneg double %20789
  store double %20790, ptr %589, align 8, !tbaa !11
  br label %20791

20791:                                            ; preds = %20787, %20774, %20771, %20767
  br label %20792

20792:                                            ; preds = %20791, %20731
  call void @llvm.lifetime.start.p0(i64 8, ptr %595) #3
  %20793 = load double, ptr %589, align 8, !tbaa !11
  %20794 = fcmp ole double 0.000000e+00, %20793
  %20795 = zext i1 %20794 to i64
  %20796 = select i1 %20794, double 0.000000e+00, double 0xC3E0000000000000
  store double %20796, ptr %595, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %596) #3
  %20797 = load double, ptr %590, align 8, !tbaa !11
  %20798 = fcmp ole double 0.000000e+00, %20797
  %20799 = zext i1 %20798 to i64
  %20800 = select i1 %20798, double 0x43E0000000000000, double 0.000000e+00
  store double %20800, ptr %596, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %597) #3
  %20801 = load i8, ptr %588, align 1, !tbaa !17
  %20802 = sitofp i8 %20801 to double
  %20803 = load double, ptr %589, align 8, !tbaa !11
  %20804 = fsub double %20802, %20803
  %20805 = load double, ptr %596, align 8, !tbaa !11
  %20806 = load double, ptr %595, align 8, !tbaa !11
  %20807 = fsub double %20805, %20806
  %20808 = fmul double %20804, %20807
  %20809 = load double, ptr %590, align 8, !tbaa !11
  %20810 = load double, ptr %589, align 8, !tbaa !11
  %20811 = fsub double %20809, %20810
  %20812 = fdiv double %20808, %20811
  %20813 = load double, ptr %595, align 8, !tbaa !11
  %20814 = fadd double %20812, %20813
  store double %20814, ptr %597, align 8, !tbaa !11
  %20815 = load double, ptr %595, align 8, !tbaa !11
  %20816 = load double, ptr %597, align 8, !tbaa !11
  %20817 = fcmp ole double 0.000000e+00, %20816
  br i1 %20817, label %20818, label %20821

20818:                                            ; preds = %20792
  %20819 = load double, ptr %597, align 8, !tbaa !11
  %20820 = fadd double %20819, 5.000000e-01
  br label %20824

20821:                                            ; preds = %20792
  %20822 = load double, ptr %597, align 8, !tbaa !11
  %20823 = fsub double %20822, 5.000000e-01
  br label %20824

20824:                                            ; preds = %20821, %20818
  %20825 = phi double [ %20820, %20818 ], [ %20823, %20821 ]
  %20826 = fcmp olt double %20815, %20825
  br i1 %20826, label %20827, label %20881

20827:                                            ; preds = %20824
  %20828 = load double, ptr %597, align 8, !tbaa !11
  %20829 = fcmp ole double 0.000000e+00, %20828
  br i1 %20829, label %20830, label %20833

20830:                                            ; preds = %20827
  %20831 = load double, ptr %597, align 8, !tbaa !11
  %20832 = fadd double %20831, 5.000000e-01
  br label %20836

20833:                                            ; preds = %20827
  %20834 = load double, ptr %597, align 8, !tbaa !11
  %20835 = fsub double %20834, 5.000000e-01
  br label %20836

20836:                                            ; preds = %20833, %20830
  %20837 = phi double [ %20832, %20830 ], [ %20835, %20833 ]
  %20838 = load double, ptr %596, align 8, !tbaa !11
  %20839 = fcmp ole double %20837, %20838
  br i1 %20839, label %20840, label %20851

20840:                                            ; preds = %20836
  %20841 = load double, ptr %597, align 8, !tbaa !11
  %20842 = fcmp ole double 0.000000e+00, %20841
  br i1 %20842, label %20843, label %20846

20843:                                            ; preds = %20840
  %20844 = load double, ptr %597, align 8, !tbaa !11
  %20845 = fadd double %20844, 5.000000e-01
  br label %20849

20846:                                            ; preds = %20840
  %20847 = load double, ptr %597, align 8, !tbaa !11
  %20848 = fsub double %20847, 5.000000e-01
  br label %20849

20849:                                            ; preds = %20846, %20843
  %20850 = phi double [ %20845, %20843 ], [ %20848, %20846 ]
  br label %20879

20851:                                            ; preds = %20836
  %20852 = load double, ptr %597, align 8, !tbaa !11
  %20853 = fcmp ole double 0.000000e+00, %20852
  br i1 %20853, label %20854, label %20857

20854:                                            ; preds = %20851
  %20855 = load double, ptr %597, align 8, !tbaa !11
  %20856 = fadd double %20855, 5.000000e-01
  br label %20860

20857:                                            ; preds = %20851
  %20858 = load double, ptr %597, align 8, !tbaa !11
  %20859 = fsub double %20858, 5.000000e-01
  br label %20860

20860:                                            ; preds = %20857, %20854
  %20861 = phi double [ %20856, %20854 ], [ %20859, %20857 ]
  %20862 = load double, ptr %596, align 8, !tbaa !11
  %20863 = fcmp olt double %20861, %20862
  br i1 %20863, label %20864, label %20875

20864:                                            ; preds = %20860
  %20865 = load double, ptr %597, align 8, !tbaa !11
  %20866 = fcmp ole double 0.000000e+00, %20865
  br i1 %20866, label %20867, label %20870

20867:                                            ; preds = %20864
  %20868 = load double, ptr %597, align 8, !tbaa !11
  %20869 = fadd double %20868, 5.000000e-01
  br label %20873

20870:                                            ; preds = %20864
  %20871 = load double, ptr %597, align 8, !tbaa !11
  %20872 = fsub double %20871, 5.000000e-01
  br label %20873

20873:                                            ; preds = %20870, %20867
  %20874 = phi double [ %20869, %20867 ], [ %20872, %20870 ]
  br label %20877

20875:                                            ; preds = %20860
  %20876 = load double, ptr %596, align 8, !tbaa !11
  br label %20877

20877:                                            ; preds = %20875, %20873
  %20878 = phi double [ %20874, %20873 ], [ %20876, %20875 ]
  br label %20879

20879:                                            ; preds = %20877, %20849
  %20880 = phi double [ %20850, %20849 ], [ %20878, %20877 ]
  br label %20909

20881:                                            ; preds = %20824
  %20882 = load double, ptr %595, align 8, !tbaa !11
  %20883 = load double, ptr %597, align 8, !tbaa !11
  %20884 = fcmp ole double 0.000000e+00, %20883
  br i1 %20884, label %20885, label %20888

20885:                                            ; preds = %20881
  %20886 = load double, ptr %597, align 8, !tbaa !11
  %20887 = fadd double %20886, 5.000000e-01
  br label %20891

20888:                                            ; preds = %20881
  %20889 = load double, ptr %597, align 8, !tbaa !11
  %20890 = fsub double %20889, 5.000000e-01
  br label %20891

20891:                                            ; preds = %20888, %20885
  %20892 = phi double [ %20887, %20885 ], [ %20890, %20888 ]
  %20893 = fcmp olt double %20882, %20892
  br i1 %20893, label %20894, label %20905

20894:                                            ; preds = %20891
  %20895 = load double, ptr %597, align 8, !tbaa !11
  %20896 = fcmp ole double 0.000000e+00, %20895
  br i1 %20896, label %20897, label %20900

20897:                                            ; preds = %20894
  %20898 = load double, ptr %597, align 8, !tbaa !11
  %20899 = fadd double %20898, 5.000000e-01
  br label %20903

20900:                                            ; preds = %20894
  %20901 = load double, ptr %597, align 8, !tbaa !11
  %20902 = fsub double %20901, 5.000000e-01
  br label %20903

20903:                                            ; preds = %20900, %20897
  %20904 = phi double [ %20899, %20897 ], [ %20902, %20900 ]
  br label %20907

20905:                                            ; preds = %20891
  %20906 = load double, ptr %595, align 8, !tbaa !11
  br label %20907

20907:                                            ; preds = %20905, %20903
  %20908 = phi double [ %20904, %20903 ], [ %20906, %20905 ]
  br label %20909

20909:                                            ; preds = %20907, %20879
  %20910 = phi double [ %20880, %20879 ], [ %20908, %20907 ]
  %20911 = fptosi double %20910 to i64
  %20912 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %20911, ptr %20912, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %597) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %596) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %595) #3
  br label %20997

20913:                                            ; preds = %20675, %20672
  %20914 = load i32, ptr %8, align 4, !tbaa !9
  %20915 = icmp ugt i32 6, %20914
  br i1 %20915, label %20944, label %20916

20916:                                            ; preds = %20913
  %20917 = load i32, ptr %8, align 4, !tbaa !9
  %20918 = icmp ugt i32 15, %20917
  br i1 %20918, label %20919, label %20930

20919:                                            ; preds = %20916
  %20920 = load i32, ptr %9, align 4, !tbaa !9
  %20921 = icmp ugt i32 15, %20920
  br i1 %20921, label %20922, label %20927

20922:                                            ; preds = %20919
  %20923 = load i32, ptr %9, align 4, !tbaa !9
  %20924 = load i32, ptr %8, align 4, !tbaa !9
  %20925 = icmp ugt i32 %20923, %20924
  %20926 = zext i1 %20925 to i32
  br label %20928

20927:                                            ; preds = %20919
  br label %20928

20928:                                            ; preds = %20927, %20922
  %20929 = phi i32 [ %20926, %20922 ], [ 0, %20927 ]
  br label %20941

20930:                                            ; preds = %20916
  %20931 = load i32, ptr %9, align 4, !tbaa !9
  %20932 = icmp ugt i32 15, %20931
  br i1 %20932, label %20933, label %20934

20933:                                            ; preds = %20930
  br label %20939

20934:                                            ; preds = %20930
  %20935 = load i32, ptr %9, align 4, !tbaa !9
  %20936 = load i32, ptr %8, align 4, !tbaa !9
  %20937 = icmp ugt i32 %20935, %20936
  %20938 = zext i1 %20937 to i32
  br label %20939

20939:                                            ; preds = %20934, %20933
  %20940 = phi i32 [ 0, %20933 ], [ %20938, %20934 ]
  br label %20941

20941:                                            ; preds = %20939, %20928
  %20942 = phi i32 [ %20929, %20928 ], [ %20940, %20939 ]
  %20943 = icmp ne i32 %20942, 0
  br label %20944

20944:                                            ; preds = %20941, %20913
  %20945 = phi i1 [ true, %20913 ], [ %20943, %20941 ]
  %20946 = zext i1 %20945 to i32
  %20947 = icmp eq i32 0, %20946
  br i1 %20947, label %20948, label %20992

20948:                                            ; preds = %20944
  %20949 = load i8, ptr %588, align 1, !tbaa !17
  %20950 = sext i8 %20949 to i32
  %20951 = sitofp i32 %20950 to double
  %20952 = fcmp olt double 0xC3E0000000000000, %20951
  br i1 %20952, label %20953, label %20976

20953:                                            ; preds = %20948
  %20954 = load i8, ptr %588, align 1, !tbaa !17
  %20955 = sext i8 %20954 to i32
  %20956 = sitofp i32 %20955 to double
  %20957 = fcmp ole double %20956, 0x43E0000000000000
  br i1 %20957, label %20958, label %20962

20958:                                            ; preds = %20953
  %20959 = load i8, ptr %588, align 1, !tbaa !17
  %20960 = sext i8 %20959 to i32
  %20961 = sitofp i32 %20960 to double
  br label %20974

20962:                                            ; preds = %20953
  %20963 = load i8, ptr %588, align 1, !tbaa !17
  %20964 = sext i8 %20963 to i32
  %20965 = sitofp i32 %20964 to double
  %20966 = fcmp olt double %20965, 0x43E0000000000000
  br i1 %20966, label %20967, label %20971

20967:                                            ; preds = %20962
  %20968 = load i8, ptr %588, align 1, !tbaa !17
  %20969 = sext i8 %20968 to i32
  %20970 = sitofp i32 %20969 to double
  br label %20972

20971:                                            ; preds = %20962
  br label %20972

20972:                                            ; preds = %20971, %20967
  %20973 = phi double [ %20970, %20967 ], [ 0x43E0000000000000, %20971 ]
  br label %20974

20974:                                            ; preds = %20972, %20958
  %20975 = phi double [ %20961, %20958 ], [ %20973, %20972 ]
  br label %20988

20976:                                            ; preds = %20948
  %20977 = load i8, ptr %588, align 1, !tbaa !17
  %20978 = sext i8 %20977 to i32
  %20979 = sitofp i32 %20978 to double
  %20980 = fcmp olt double 0xC3E0000000000000, %20979
  br i1 %20980, label %20981, label %20985

20981:                                            ; preds = %20976
  %20982 = load i8, ptr %588, align 1, !tbaa !17
  %20983 = sext i8 %20982 to i32
  %20984 = sitofp i32 %20983 to double
  br label %20986

20985:                                            ; preds = %20976
  br label %20986

20986:                                            ; preds = %20985, %20981
  %20987 = phi double [ %20984, %20981 ], [ 0xC3E0000000000000, %20985 ]
  br label %20988

20988:                                            ; preds = %20986, %20974
  %20989 = phi double [ %20975, %20974 ], [ %20987, %20986 ]
  %20990 = fptosi double %20989 to i64
  %20991 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %20990, ptr %20991, align 8, !tbaa !13
  br label %20996

20992:                                            ; preds = %20944
  %20993 = load i8, ptr %588, align 1, !tbaa !17
  %20994 = sext i8 %20993 to i64
  %20995 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %20994, ptr %20995, align 8, !tbaa !13
  br label %20996

20996:                                            ; preds = %20992, %20988
  br label %20997

20997:                                            ; preds = %20996, %20909
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %590) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %589) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %588) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %587) #3
  br label %20998

20998:                                            ; preds = %20997
  br label %20999

20999:                                            ; preds = %20998
  br label %23208

21000:                                            ; preds = %19585
  br label %21001

21001:                                            ; preds = %21000
  call void @llvm.lifetime.start.p0(i64 8, ptr %598) #3
  store double 5.000000e-01, ptr %598, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %599) #3
  %21002 = load ptr, ptr %10, align 8, !tbaa !5
  %21003 = load i64, ptr %21002, align 8, !tbaa !13
  store i64 %21003, ptr %599, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %600) #3
  store double 0.000000e+00, ptr %600, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %601) #3
  store double 0.000000e+00, ptr %601, align 8, !tbaa !11
  %21004 = load ptr, ptr %11, align 8, !tbaa !5
  %21005 = icmp ne ptr null, %21004
  br i1 %21005, label %21006, label %21028

21006:                                            ; preds = %21001
  %21007 = load ptr, ptr %12, align 8, !tbaa !5
  %21008 = icmp ne ptr null, %21007
  br i1 %21008, label %21009, label %21020

21009:                                            ; preds = %21006
  %21010 = load ptr, ptr %11, align 8, !tbaa !5
  %21011 = load i64, ptr %21010, align 8, !tbaa !13
  %21012 = load i64, ptr %599, align 8, !tbaa !13
  %21013 = icmp ule i64 %21011, %21012
  br i1 %21013, label %21014, label %21020

21014:                                            ; preds = %21009
  %21015 = load i64, ptr %599, align 8, !tbaa !13
  %21016 = load ptr, ptr %12, align 8, !tbaa !5
  %21017 = load i64, ptr %21016, align 8, !tbaa !13
  %21018 = icmp ule i64 %21015, %21017
  br i1 %21018, label %21019, label %21020

21019:                                            ; preds = %21014
  br label %21021

21020:                                            ; preds = %21014, %21009, %21006
  call void @__assert_fail(ptr noundef @.str.46, ptr noundef @.str.24, i32 noundef 482, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

21021:                                            ; preds = %21019
  %21022 = load ptr, ptr %11, align 8, !tbaa !5
  %21023 = load i64, ptr %21022, align 8, !tbaa !13
  %21024 = uitofp i64 %21023 to double
  store double %21024, ptr %600, align 8, !tbaa !11
  %21025 = load ptr, ptr %12, align 8, !tbaa !5
  %21026 = load i64, ptr %21025, align 8, !tbaa !13
  %21027 = uitofp i64 %21026 to double
  store double %21027, ptr %601, align 8, !tbaa !11
  br label %21028

21028:                                            ; preds = %21021, %21001
  %21029 = load i32, ptr %8, align 4, !tbaa !9
  %21030 = icmp ule i32 6, %21029
  br i1 %21030, label %21031, label %21267

21031:                                            ; preds = %21028
  %21032 = load double, ptr %600, align 8, !tbaa !11
  %21033 = load double, ptr %601, align 8, !tbaa !11
  %21034 = fcmp olt double %21032, %21033
  br i1 %21034, label %21035, label %21267

21035:                                            ; preds = %21031
  %21036 = load i32, ptr %8, align 4, !tbaa !9
  %21037 = icmp ule i32 15, %21036
  br i1 %21037, label %21038, label %21090

21038:                                            ; preds = %21035
  call void @llvm.lifetime.start.p0(i64 8, ptr %602) #3
  %21039 = load double, ptr %600, align 8, !tbaa !11
  %21040 = fcmp olt double 0.000000e+00, %21039
  br i1 %21040, label %21041, label %21043

21041:                                            ; preds = %21038
  %21042 = load double, ptr %600, align 8, !tbaa !11
  br label %21044

21043:                                            ; preds = %21038
  br label %21044

21044:                                            ; preds = %21043, %21041
  %21045 = phi double [ %21042, %21041 ], [ 0.000000e+00, %21043 ]
  store double %21045, ptr %602, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %603) #3
  %21046 = load double, ptr %601, align 8, !tbaa !11
  %21047 = fcmp olt double 0.000000e+00, %21046
  br i1 %21047, label %21048, label %21050

21048:                                            ; preds = %21044
  %21049 = load double, ptr %601, align 8, !tbaa !11
  br label %21051

21050:                                            ; preds = %21044
  br label %21051

21051:                                            ; preds = %21050, %21048
  %21052 = phi double [ %21049, %21048 ], [ 0.000000e+00, %21050 ]
  store double %21052, ptr %603, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %604) #3
  %21053 = load double, ptr %602, align 8, !tbaa !11
  %21054 = load double, ptr %603, align 8, !tbaa !11
  %21055 = fcmp olt double %21053, %21054
  br i1 %21055, label %21056, label %21064

21056:                                            ; preds = %21051
  %21057 = load double, ptr %601, align 8, !tbaa !11
  %21058 = load double, ptr %600, align 8, !tbaa !11
  %21059 = fsub double %21057, %21058
  %21060 = load double, ptr %603, align 8, !tbaa !11
  %21061 = load double, ptr %602, align 8, !tbaa !11
  %21062 = fsub double %21060, %21061
  %21063 = fdiv double %21059, %21062
  br label %21065

21064:                                            ; preds = %21051
  br label %21065

21065:                                            ; preds = %21064, %21056
  %21066 = phi double [ %21063, %21056 ], [ 1.000000e+00, %21064 ]
  store double %21066, ptr %604, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %605) #3
  %21067 = load double, ptr %604, align 8, !tbaa !11
  %21068 = load i64, ptr %599, align 8, !tbaa !13
  %21069 = icmp ult i64 0, %21068
  br i1 %21069, label %21070, label %21072

21070:                                            ; preds = %21065
  %21071 = load i64, ptr %599, align 8, !tbaa !13
  br label %21073

21072:                                            ; preds = %21065
  br label %21073

21073:                                            ; preds = %21072, %21070
  %21074 = phi i64 [ %21071, %21070 ], [ 0, %21072 ]
  %21075 = uitofp i64 %21074 to double
  %21076 = fmul double %21067, %21075
  store double %21076, ptr %605, align 8, !tbaa !11
  %21077 = load double, ptr %605, align 8, !tbaa !11
  %21078 = fcmp ole double 0.000000e+00, %21077
  br i1 %21078, label %21079, label %21082

21079:                                            ; preds = %21073
  %21080 = load double, ptr %605, align 8, !tbaa !11
  %21081 = fadd double %21080, 5.000000e-01
  br label %21085

21082:                                            ; preds = %21073
  %21083 = load double, ptr %605, align 8, !tbaa !11
  %21084 = fsub double %21083, 5.000000e-01
  br label %21085

21085:                                            ; preds = %21082, %21079
  %21086 = phi double [ %21081, %21079 ], [ %21084, %21082 ]
  %21087 = fptoui double %21086 to i64
  store i64 %21087, ptr %599, align 8, !tbaa !13
  %21088 = load double, ptr %602, align 8, !tbaa !11
  store double %21088, ptr %600, align 8, !tbaa !11
  %21089 = load double, ptr %603, align 8, !tbaa !11
  store double %21089, ptr %601, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %605) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %604) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %603) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %602) #3
  br label %21146

21090:                                            ; preds = %21035
  %21091 = load i32, ptr %8, align 4, !tbaa !9
  %21092 = icmp ugt i32 6, %21091
  br i1 %21092, label %21121, label %21093

21093:                                            ; preds = %21090
  %21094 = load i32, ptr %8, align 4, !tbaa !9
  %21095 = icmp ugt i32 15, %21094
  br i1 %21095, label %21096, label %21107

21096:                                            ; preds = %21093
  %21097 = load i32, ptr %9, align 4, !tbaa !9
  %21098 = icmp ugt i32 15, %21097
  br i1 %21098, label %21099, label %21104

21099:                                            ; preds = %21096
  %21100 = load i32, ptr %9, align 4, !tbaa !9
  %21101 = load i32, ptr %8, align 4, !tbaa !9
  %21102 = icmp ugt i32 %21100, %21101
  %21103 = zext i1 %21102 to i32
  br label %21105

21104:                                            ; preds = %21096
  br label %21105

21105:                                            ; preds = %21104, %21099
  %21106 = phi i32 [ %21103, %21099 ], [ 0, %21104 ]
  br label %21118

21107:                                            ; preds = %21093
  %21108 = load i32, ptr %9, align 4, !tbaa !9
  %21109 = icmp ugt i32 15, %21108
  br i1 %21109, label %21110, label %21111

21110:                                            ; preds = %21107
  br label %21116

21111:                                            ; preds = %21107
  %21112 = load i32, ptr %9, align 4, !tbaa !9
  %21113 = load i32, ptr %8, align 4, !tbaa !9
  %21114 = icmp ugt i32 %21112, %21113
  %21115 = zext i1 %21114 to i32
  br label %21116

21116:                                            ; preds = %21111, %21110
  %21117 = phi i32 [ 0, %21110 ], [ %21115, %21111 ]
  br label %21118

21118:                                            ; preds = %21116, %21105
  %21119 = phi i32 [ %21106, %21105 ], [ %21117, %21116 ]
  %21120 = icmp ne i32 %21119, 0
  br label %21121

21121:                                            ; preds = %21118, %21090
  %21122 = phi i1 [ true, %21090 ], [ %21120, %21118 ]
  %21123 = zext i1 %21122 to i32
  %21124 = icmp eq i32 0, %21123
  br i1 %21124, label %21125, label %21145

21125:                                            ; preds = %21121
  %21126 = load double, ptr %600, align 8, !tbaa !11
  %21127 = fcmp ogt double 0.000000e+00, %21126
  br i1 %21127, label %21128, label %21145

21128:                                            ; preds = %21125
  %21129 = load double, ptr %601, align 8, !tbaa !11
  %21130 = fcmp olt double 0.000000e+00, %21129
  br i1 %21130, label %21131, label %21145

21131:                                            ; preds = %21128
  %21132 = load double, ptr %600, align 8, !tbaa !11
  %21133 = fneg double %21132
  %21134 = load double, ptr %601, align 8, !tbaa !11
  %21135 = fcmp olt double %21133, %21134
  br i1 %21135, label %21136, label %21138

21136:                                            ; preds = %21131
  %21137 = load double, ptr %601, align 8, !tbaa !11
  br label %21141

21138:                                            ; preds = %21131
  %21139 = load double, ptr %600, align 8, !tbaa !11
  %21140 = fneg double %21139
  br label %21141

21141:                                            ; preds = %21138, %21136
  %21142 = phi double [ %21137, %21136 ], [ %21140, %21138 ]
  store double %21142, ptr %601, align 8, !tbaa !11
  %21143 = load double, ptr %601, align 8, !tbaa !11
  %21144 = fneg double %21143
  store double %21144, ptr %600, align 8, !tbaa !11
  br label %21145

21145:                                            ; preds = %21141, %21128, %21125, %21121
  br label %21146

21146:                                            ; preds = %21145, %21085
  call void @llvm.lifetime.start.p0(i64 8, ptr %606) #3
  %21147 = load double, ptr %600, align 8, !tbaa !11
  %21148 = fcmp ole double 0.000000e+00, %21147
  %21149 = zext i1 %21148 to i64
  %21150 = select i1 %21148, double 0.000000e+00, double 0xC3E0000000000000
  store double %21150, ptr %606, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %607) #3
  %21151 = load double, ptr %601, align 8, !tbaa !11
  %21152 = fcmp ole double 0.000000e+00, %21151
  %21153 = zext i1 %21152 to i64
  %21154 = select i1 %21152, double 0x43E0000000000000, double 0.000000e+00
  store double %21154, ptr %607, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %608) #3
  %21155 = load i64, ptr %599, align 8, !tbaa !13
  %21156 = uitofp i64 %21155 to double
  %21157 = load double, ptr %600, align 8, !tbaa !11
  %21158 = fsub double %21156, %21157
  %21159 = load double, ptr %607, align 8, !tbaa !11
  %21160 = load double, ptr %606, align 8, !tbaa !11
  %21161 = fsub double %21159, %21160
  %21162 = fmul double %21158, %21161
  %21163 = load double, ptr %601, align 8, !tbaa !11
  %21164 = load double, ptr %600, align 8, !tbaa !11
  %21165 = fsub double %21163, %21164
  %21166 = fdiv double %21162, %21165
  %21167 = load double, ptr %606, align 8, !tbaa !11
  %21168 = fadd double %21166, %21167
  store double %21168, ptr %608, align 8, !tbaa !11
  %21169 = load double, ptr %606, align 8, !tbaa !11
  %21170 = load double, ptr %608, align 8, !tbaa !11
  %21171 = fcmp ole double 0.000000e+00, %21170
  br i1 %21171, label %21172, label %21175

21172:                                            ; preds = %21146
  %21173 = load double, ptr %608, align 8, !tbaa !11
  %21174 = fadd double %21173, 5.000000e-01
  br label %21178

21175:                                            ; preds = %21146
  %21176 = load double, ptr %608, align 8, !tbaa !11
  %21177 = fsub double %21176, 5.000000e-01
  br label %21178

21178:                                            ; preds = %21175, %21172
  %21179 = phi double [ %21174, %21172 ], [ %21177, %21175 ]
  %21180 = fcmp olt double %21169, %21179
  br i1 %21180, label %21181, label %21235

21181:                                            ; preds = %21178
  %21182 = load double, ptr %608, align 8, !tbaa !11
  %21183 = fcmp ole double 0.000000e+00, %21182
  br i1 %21183, label %21184, label %21187

21184:                                            ; preds = %21181
  %21185 = load double, ptr %608, align 8, !tbaa !11
  %21186 = fadd double %21185, 5.000000e-01
  br label %21190

21187:                                            ; preds = %21181
  %21188 = load double, ptr %608, align 8, !tbaa !11
  %21189 = fsub double %21188, 5.000000e-01
  br label %21190

21190:                                            ; preds = %21187, %21184
  %21191 = phi double [ %21186, %21184 ], [ %21189, %21187 ]
  %21192 = load double, ptr %607, align 8, !tbaa !11
  %21193 = fcmp ole double %21191, %21192
  br i1 %21193, label %21194, label %21205

21194:                                            ; preds = %21190
  %21195 = load double, ptr %608, align 8, !tbaa !11
  %21196 = fcmp ole double 0.000000e+00, %21195
  br i1 %21196, label %21197, label %21200

21197:                                            ; preds = %21194
  %21198 = load double, ptr %608, align 8, !tbaa !11
  %21199 = fadd double %21198, 5.000000e-01
  br label %21203

21200:                                            ; preds = %21194
  %21201 = load double, ptr %608, align 8, !tbaa !11
  %21202 = fsub double %21201, 5.000000e-01
  br label %21203

21203:                                            ; preds = %21200, %21197
  %21204 = phi double [ %21199, %21197 ], [ %21202, %21200 ]
  br label %21233

21205:                                            ; preds = %21190
  %21206 = load double, ptr %608, align 8, !tbaa !11
  %21207 = fcmp ole double 0.000000e+00, %21206
  br i1 %21207, label %21208, label %21211

21208:                                            ; preds = %21205
  %21209 = load double, ptr %608, align 8, !tbaa !11
  %21210 = fadd double %21209, 5.000000e-01
  br label %21214

21211:                                            ; preds = %21205
  %21212 = load double, ptr %608, align 8, !tbaa !11
  %21213 = fsub double %21212, 5.000000e-01
  br label %21214

21214:                                            ; preds = %21211, %21208
  %21215 = phi double [ %21210, %21208 ], [ %21213, %21211 ]
  %21216 = load double, ptr %607, align 8, !tbaa !11
  %21217 = fcmp olt double %21215, %21216
  br i1 %21217, label %21218, label %21229

21218:                                            ; preds = %21214
  %21219 = load double, ptr %608, align 8, !tbaa !11
  %21220 = fcmp ole double 0.000000e+00, %21219
  br i1 %21220, label %21221, label %21224

21221:                                            ; preds = %21218
  %21222 = load double, ptr %608, align 8, !tbaa !11
  %21223 = fadd double %21222, 5.000000e-01
  br label %21227

21224:                                            ; preds = %21218
  %21225 = load double, ptr %608, align 8, !tbaa !11
  %21226 = fsub double %21225, 5.000000e-01
  br label %21227

21227:                                            ; preds = %21224, %21221
  %21228 = phi double [ %21223, %21221 ], [ %21226, %21224 ]
  br label %21231

21229:                                            ; preds = %21214
  %21230 = load double, ptr %607, align 8, !tbaa !11
  br label %21231

21231:                                            ; preds = %21229, %21227
  %21232 = phi double [ %21228, %21227 ], [ %21230, %21229 ]
  br label %21233

21233:                                            ; preds = %21231, %21203
  %21234 = phi double [ %21204, %21203 ], [ %21232, %21231 ]
  br label %21263

21235:                                            ; preds = %21178
  %21236 = load double, ptr %606, align 8, !tbaa !11
  %21237 = load double, ptr %608, align 8, !tbaa !11
  %21238 = fcmp ole double 0.000000e+00, %21237
  br i1 %21238, label %21239, label %21242

21239:                                            ; preds = %21235
  %21240 = load double, ptr %608, align 8, !tbaa !11
  %21241 = fadd double %21240, 5.000000e-01
  br label %21245

21242:                                            ; preds = %21235
  %21243 = load double, ptr %608, align 8, !tbaa !11
  %21244 = fsub double %21243, 5.000000e-01
  br label %21245

21245:                                            ; preds = %21242, %21239
  %21246 = phi double [ %21241, %21239 ], [ %21244, %21242 ]
  %21247 = fcmp olt double %21236, %21246
  br i1 %21247, label %21248, label %21259

21248:                                            ; preds = %21245
  %21249 = load double, ptr %608, align 8, !tbaa !11
  %21250 = fcmp ole double 0.000000e+00, %21249
  br i1 %21250, label %21251, label %21254

21251:                                            ; preds = %21248
  %21252 = load double, ptr %608, align 8, !tbaa !11
  %21253 = fadd double %21252, 5.000000e-01
  br label %21257

21254:                                            ; preds = %21248
  %21255 = load double, ptr %608, align 8, !tbaa !11
  %21256 = fsub double %21255, 5.000000e-01
  br label %21257

21257:                                            ; preds = %21254, %21251
  %21258 = phi double [ %21253, %21251 ], [ %21256, %21254 ]
  br label %21261

21259:                                            ; preds = %21245
  %21260 = load double, ptr %606, align 8, !tbaa !11
  br label %21261

21261:                                            ; preds = %21259, %21257
  %21262 = phi double [ %21258, %21257 ], [ %21260, %21259 ]
  br label %21263

21263:                                            ; preds = %21261, %21233
  %21264 = phi double [ %21234, %21233 ], [ %21262, %21261 ]
  %21265 = fptosi double %21264 to i64
  %21266 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %21265, ptr %21266, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %608) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %607) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %606) #3
  br label %21343

21267:                                            ; preds = %21031, %21028
  %21268 = load i32, ptr %8, align 4, !tbaa !9
  %21269 = icmp ugt i32 6, %21268
  br i1 %21269, label %21298, label %21270

21270:                                            ; preds = %21267
  %21271 = load i32, ptr %8, align 4, !tbaa !9
  %21272 = icmp ugt i32 15, %21271
  br i1 %21272, label %21273, label %21284

21273:                                            ; preds = %21270
  %21274 = load i32, ptr %9, align 4, !tbaa !9
  %21275 = icmp ugt i32 15, %21274
  br i1 %21275, label %21276, label %21281

21276:                                            ; preds = %21273
  %21277 = load i32, ptr %9, align 4, !tbaa !9
  %21278 = load i32, ptr %8, align 4, !tbaa !9
  %21279 = icmp ugt i32 %21277, %21278
  %21280 = zext i1 %21279 to i32
  br label %21282

21281:                                            ; preds = %21273
  br label %21282

21282:                                            ; preds = %21281, %21276
  %21283 = phi i32 [ %21280, %21276 ], [ 0, %21281 ]
  br label %21295

21284:                                            ; preds = %21270
  %21285 = load i32, ptr %9, align 4, !tbaa !9
  %21286 = icmp ugt i32 15, %21285
  br i1 %21286, label %21287, label %21288

21287:                                            ; preds = %21284
  br label %21293

21288:                                            ; preds = %21284
  %21289 = load i32, ptr %9, align 4, !tbaa !9
  %21290 = load i32, ptr %8, align 4, !tbaa !9
  %21291 = icmp ugt i32 %21289, %21290
  %21292 = zext i1 %21291 to i32
  br label %21293

21293:                                            ; preds = %21288, %21287
  %21294 = phi i32 [ 0, %21287 ], [ %21292, %21288 ]
  br label %21295

21295:                                            ; preds = %21293, %21282
  %21296 = phi i32 [ %21283, %21282 ], [ %21294, %21293 ]
  %21297 = icmp ne i32 %21296, 0
  br label %21298

21298:                                            ; preds = %21295, %21267
  %21299 = phi i1 [ true, %21267 ], [ %21297, %21295 ]
  %21300 = zext i1 %21299 to i32
  %21301 = icmp eq i32 0, %21300
  br i1 %21301, label %21302, label %21339

21302:                                            ; preds = %21298
  %21303 = load i64, ptr %599, align 8, !tbaa !13
  %21304 = uitofp i64 %21303 to double
  %21305 = fcmp olt double 0xC3E0000000000000, %21304
  br i1 %21305, label %21306, label %21325

21306:                                            ; preds = %21302
  %21307 = load i64, ptr %599, align 8, !tbaa !13
  %21308 = uitofp i64 %21307 to double
  %21309 = fcmp ole double %21308, 0x43E0000000000000
  br i1 %21309, label %21310, label %21313

21310:                                            ; preds = %21306
  %21311 = load i64, ptr %599, align 8, !tbaa !13
  %21312 = uitofp i64 %21311 to double
  br label %21323

21313:                                            ; preds = %21306
  %21314 = load i64, ptr %599, align 8, !tbaa !13
  %21315 = uitofp i64 %21314 to double
  %21316 = fcmp olt double %21315, 0x43E0000000000000
  br i1 %21316, label %21317, label %21320

21317:                                            ; preds = %21313
  %21318 = load i64, ptr %599, align 8, !tbaa !13
  %21319 = uitofp i64 %21318 to double
  br label %21321

21320:                                            ; preds = %21313
  br label %21321

21321:                                            ; preds = %21320, %21317
  %21322 = phi double [ %21319, %21317 ], [ 0x43E0000000000000, %21320 ]
  br label %21323

21323:                                            ; preds = %21321, %21310
  %21324 = phi double [ %21312, %21310 ], [ %21322, %21321 ]
  br label %21335

21325:                                            ; preds = %21302
  %21326 = load i64, ptr %599, align 8, !tbaa !13
  %21327 = uitofp i64 %21326 to double
  %21328 = fcmp olt double 0xC3E0000000000000, %21327
  br i1 %21328, label %21329, label %21332

21329:                                            ; preds = %21325
  %21330 = load i64, ptr %599, align 8, !tbaa !13
  %21331 = uitofp i64 %21330 to double
  br label %21333

21332:                                            ; preds = %21325
  br label %21333

21333:                                            ; preds = %21332, %21329
  %21334 = phi double [ %21331, %21329 ], [ 0xC3E0000000000000, %21332 ]
  br label %21335

21335:                                            ; preds = %21333, %21323
  %21336 = phi double [ %21324, %21323 ], [ %21334, %21333 ]
  %21337 = fptosi double %21336 to i64
  %21338 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %21337, ptr %21338, align 8, !tbaa !13
  br label %21342

21339:                                            ; preds = %21298
  %21340 = load i64, ptr %599, align 8, !tbaa !13
  %21341 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %21340, ptr %21341, align 8, !tbaa !13
  br label %21342

21342:                                            ; preds = %21339, %21335
  br label %21343

21343:                                            ; preds = %21342, %21263
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %601) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %600) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %599) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %598) #3
  br label %21344

21344:                                            ; preds = %21343
  br label %21345

21345:                                            ; preds = %21344
  br label %23208

21346:                                            ; preds = %19585
  br label %21347

21347:                                            ; preds = %21346
  call void @llvm.lifetime.start.p0(i64 8, ptr %609) #3
  store double 5.000000e-01, ptr %609, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %610) #3
  %21348 = load ptr, ptr %10, align 8, !tbaa !5
  %21349 = load i32, ptr %21348, align 4, !tbaa !9
  store i32 %21349, ptr %610, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %611) #3
  store double 0.000000e+00, ptr %611, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %612) #3
  store double 0.000000e+00, ptr %612, align 8, !tbaa !11
  %21350 = load ptr, ptr %11, align 8, !tbaa !5
  %21351 = icmp ne ptr null, %21350
  br i1 %21351, label %21352, label %21374

21352:                                            ; preds = %21347
  %21353 = load ptr, ptr %12, align 8, !tbaa !5
  %21354 = icmp ne ptr null, %21353
  br i1 %21354, label %21355, label %21366

21355:                                            ; preds = %21352
  %21356 = load ptr, ptr %11, align 8, !tbaa !5
  %21357 = load i32, ptr %21356, align 4, !tbaa !9
  %21358 = load i32, ptr %610, align 4, !tbaa !9
  %21359 = icmp ule i32 %21357, %21358
  br i1 %21359, label %21360, label %21366

21360:                                            ; preds = %21355
  %21361 = load i32, ptr %610, align 4, !tbaa !9
  %21362 = load ptr, ptr %12, align 8, !tbaa !5
  %21363 = load i32, ptr %21362, align 4, !tbaa !9
  %21364 = icmp ule i32 %21361, %21363
  br i1 %21364, label %21365, label %21366

21365:                                            ; preds = %21360
  br label %21367

21366:                                            ; preds = %21360, %21355, %21352
  call void @__assert_fail(ptr noundef @.str.47, ptr noundef @.str.24, i32 noundef 482, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

21367:                                            ; preds = %21365
  %21368 = load ptr, ptr %11, align 8, !tbaa !5
  %21369 = load i32, ptr %21368, align 4, !tbaa !9
  %21370 = uitofp i32 %21369 to double
  store double %21370, ptr %611, align 8, !tbaa !11
  %21371 = load ptr, ptr %12, align 8, !tbaa !5
  %21372 = load i32, ptr %21371, align 4, !tbaa !9
  %21373 = uitofp i32 %21372 to double
  store double %21373, ptr %612, align 8, !tbaa !11
  br label %21374

21374:                                            ; preds = %21367, %21347
  %21375 = load i32, ptr %8, align 4, !tbaa !9
  %21376 = icmp ule i32 6, %21375
  br i1 %21376, label %21377, label %21613

21377:                                            ; preds = %21374
  %21378 = load double, ptr %611, align 8, !tbaa !11
  %21379 = load double, ptr %612, align 8, !tbaa !11
  %21380 = fcmp olt double %21378, %21379
  br i1 %21380, label %21381, label %21613

21381:                                            ; preds = %21377
  %21382 = load i32, ptr %8, align 4, !tbaa !9
  %21383 = icmp ule i32 15, %21382
  br i1 %21383, label %21384, label %21436

21384:                                            ; preds = %21381
  call void @llvm.lifetime.start.p0(i64 8, ptr %613) #3
  %21385 = load double, ptr %611, align 8, !tbaa !11
  %21386 = fcmp olt double 0.000000e+00, %21385
  br i1 %21386, label %21387, label %21389

21387:                                            ; preds = %21384
  %21388 = load double, ptr %611, align 8, !tbaa !11
  br label %21390

21389:                                            ; preds = %21384
  br label %21390

21390:                                            ; preds = %21389, %21387
  %21391 = phi double [ %21388, %21387 ], [ 0.000000e+00, %21389 ]
  store double %21391, ptr %613, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %614) #3
  %21392 = load double, ptr %612, align 8, !tbaa !11
  %21393 = fcmp olt double 0.000000e+00, %21392
  br i1 %21393, label %21394, label %21396

21394:                                            ; preds = %21390
  %21395 = load double, ptr %612, align 8, !tbaa !11
  br label %21397

21396:                                            ; preds = %21390
  br label %21397

21397:                                            ; preds = %21396, %21394
  %21398 = phi double [ %21395, %21394 ], [ 0.000000e+00, %21396 ]
  store double %21398, ptr %614, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %615) #3
  %21399 = load double, ptr %613, align 8, !tbaa !11
  %21400 = load double, ptr %614, align 8, !tbaa !11
  %21401 = fcmp olt double %21399, %21400
  br i1 %21401, label %21402, label %21410

21402:                                            ; preds = %21397
  %21403 = load double, ptr %612, align 8, !tbaa !11
  %21404 = load double, ptr %611, align 8, !tbaa !11
  %21405 = fsub double %21403, %21404
  %21406 = load double, ptr %614, align 8, !tbaa !11
  %21407 = load double, ptr %613, align 8, !tbaa !11
  %21408 = fsub double %21406, %21407
  %21409 = fdiv double %21405, %21408
  br label %21411

21410:                                            ; preds = %21397
  br label %21411

21411:                                            ; preds = %21410, %21402
  %21412 = phi double [ %21409, %21402 ], [ 1.000000e+00, %21410 ]
  store double %21412, ptr %615, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %616) #3
  %21413 = load double, ptr %615, align 8, !tbaa !11
  %21414 = load i32, ptr %610, align 4, !tbaa !9
  %21415 = icmp ult i32 0, %21414
  br i1 %21415, label %21416, label %21418

21416:                                            ; preds = %21411
  %21417 = load i32, ptr %610, align 4, !tbaa !9
  br label %21419

21418:                                            ; preds = %21411
  br label %21419

21419:                                            ; preds = %21418, %21416
  %21420 = phi i32 [ %21417, %21416 ], [ 0, %21418 ]
  %21421 = uitofp i32 %21420 to double
  %21422 = fmul double %21413, %21421
  store double %21422, ptr %616, align 8, !tbaa !11
  %21423 = load double, ptr %616, align 8, !tbaa !11
  %21424 = fcmp ole double 0.000000e+00, %21423
  br i1 %21424, label %21425, label %21428

21425:                                            ; preds = %21419
  %21426 = load double, ptr %616, align 8, !tbaa !11
  %21427 = fadd double %21426, 5.000000e-01
  br label %21431

21428:                                            ; preds = %21419
  %21429 = load double, ptr %616, align 8, !tbaa !11
  %21430 = fsub double %21429, 5.000000e-01
  br label %21431

21431:                                            ; preds = %21428, %21425
  %21432 = phi double [ %21427, %21425 ], [ %21430, %21428 ]
  %21433 = fptoui double %21432 to i32
  store i32 %21433, ptr %610, align 4, !tbaa !9
  %21434 = load double, ptr %613, align 8, !tbaa !11
  store double %21434, ptr %611, align 8, !tbaa !11
  %21435 = load double, ptr %614, align 8, !tbaa !11
  store double %21435, ptr %612, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %616) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %615) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %614) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %613) #3
  br label %21492

21436:                                            ; preds = %21381
  %21437 = load i32, ptr %8, align 4, !tbaa !9
  %21438 = icmp ugt i32 6, %21437
  br i1 %21438, label %21467, label %21439

21439:                                            ; preds = %21436
  %21440 = load i32, ptr %8, align 4, !tbaa !9
  %21441 = icmp ugt i32 15, %21440
  br i1 %21441, label %21442, label %21453

21442:                                            ; preds = %21439
  %21443 = load i32, ptr %9, align 4, !tbaa !9
  %21444 = icmp ugt i32 15, %21443
  br i1 %21444, label %21445, label %21450

21445:                                            ; preds = %21442
  %21446 = load i32, ptr %9, align 4, !tbaa !9
  %21447 = load i32, ptr %8, align 4, !tbaa !9
  %21448 = icmp ugt i32 %21446, %21447
  %21449 = zext i1 %21448 to i32
  br label %21451

21450:                                            ; preds = %21442
  br label %21451

21451:                                            ; preds = %21450, %21445
  %21452 = phi i32 [ %21449, %21445 ], [ 0, %21450 ]
  br label %21464

21453:                                            ; preds = %21439
  %21454 = load i32, ptr %9, align 4, !tbaa !9
  %21455 = icmp ugt i32 15, %21454
  br i1 %21455, label %21456, label %21457

21456:                                            ; preds = %21453
  br label %21462

21457:                                            ; preds = %21453
  %21458 = load i32, ptr %9, align 4, !tbaa !9
  %21459 = load i32, ptr %8, align 4, !tbaa !9
  %21460 = icmp ugt i32 %21458, %21459
  %21461 = zext i1 %21460 to i32
  br label %21462

21462:                                            ; preds = %21457, %21456
  %21463 = phi i32 [ 0, %21456 ], [ %21461, %21457 ]
  br label %21464

21464:                                            ; preds = %21462, %21451
  %21465 = phi i32 [ %21452, %21451 ], [ %21463, %21462 ]
  %21466 = icmp ne i32 %21465, 0
  br label %21467

21467:                                            ; preds = %21464, %21436
  %21468 = phi i1 [ true, %21436 ], [ %21466, %21464 ]
  %21469 = zext i1 %21468 to i32
  %21470 = icmp eq i32 0, %21469
  br i1 %21470, label %21471, label %21491

21471:                                            ; preds = %21467
  %21472 = load double, ptr %611, align 8, !tbaa !11
  %21473 = fcmp ogt double 0.000000e+00, %21472
  br i1 %21473, label %21474, label %21491

21474:                                            ; preds = %21471
  %21475 = load double, ptr %612, align 8, !tbaa !11
  %21476 = fcmp olt double 0.000000e+00, %21475
  br i1 %21476, label %21477, label %21491

21477:                                            ; preds = %21474
  %21478 = load double, ptr %611, align 8, !tbaa !11
  %21479 = fneg double %21478
  %21480 = load double, ptr %612, align 8, !tbaa !11
  %21481 = fcmp olt double %21479, %21480
  br i1 %21481, label %21482, label %21484

21482:                                            ; preds = %21477
  %21483 = load double, ptr %612, align 8, !tbaa !11
  br label %21487

21484:                                            ; preds = %21477
  %21485 = load double, ptr %611, align 8, !tbaa !11
  %21486 = fneg double %21485
  br label %21487

21487:                                            ; preds = %21484, %21482
  %21488 = phi double [ %21483, %21482 ], [ %21486, %21484 ]
  store double %21488, ptr %612, align 8, !tbaa !11
  %21489 = load double, ptr %612, align 8, !tbaa !11
  %21490 = fneg double %21489
  store double %21490, ptr %611, align 8, !tbaa !11
  br label %21491

21491:                                            ; preds = %21487, %21474, %21471, %21467
  br label %21492

21492:                                            ; preds = %21491, %21431
  call void @llvm.lifetime.start.p0(i64 8, ptr %617) #3
  %21493 = load double, ptr %611, align 8, !tbaa !11
  %21494 = fcmp ole double 0.000000e+00, %21493
  %21495 = zext i1 %21494 to i64
  %21496 = select i1 %21494, double 0.000000e+00, double 0xC3E0000000000000
  store double %21496, ptr %617, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %618) #3
  %21497 = load double, ptr %612, align 8, !tbaa !11
  %21498 = fcmp ole double 0.000000e+00, %21497
  %21499 = zext i1 %21498 to i64
  %21500 = select i1 %21498, double 0x43E0000000000000, double 0.000000e+00
  store double %21500, ptr %618, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %619) #3
  %21501 = load i32, ptr %610, align 4, !tbaa !9
  %21502 = uitofp i32 %21501 to double
  %21503 = load double, ptr %611, align 8, !tbaa !11
  %21504 = fsub double %21502, %21503
  %21505 = load double, ptr %618, align 8, !tbaa !11
  %21506 = load double, ptr %617, align 8, !tbaa !11
  %21507 = fsub double %21505, %21506
  %21508 = fmul double %21504, %21507
  %21509 = load double, ptr %612, align 8, !tbaa !11
  %21510 = load double, ptr %611, align 8, !tbaa !11
  %21511 = fsub double %21509, %21510
  %21512 = fdiv double %21508, %21511
  %21513 = load double, ptr %617, align 8, !tbaa !11
  %21514 = fadd double %21512, %21513
  store double %21514, ptr %619, align 8, !tbaa !11
  %21515 = load double, ptr %617, align 8, !tbaa !11
  %21516 = load double, ptr %619, align 8, !tbaa !11
  %21517 = fcmp ole double 0.000000e+00, %21516
  br i1 %21517, label %21518, label %21521

21518:                                            ; preds = %21492
  %21519 = load double, ptr %619, align 8, !tbaa !11
  %21520 = fadd double %21519, 5.000000e-01
  br label %21524

21521:                                            ; preds = %21492
  %21522 = load double, ptr %619, align 8, !tbaa !11
  %21523 = fsub double %21522, 5.000000e-01
  br label %21524

21524:                                            ; preds = %21521, %21518
  %21525 = phi double [ %21520, %21518 ], [ %21523, %21521 ]
  %21526 = fcmp olt double %21515, %21525
  br i1 %21526, label %21527, label %21581

21527:                                            ; preds = %21524
  %21528 = load double, ptr %619, align 8, !tbaa !11
  %21529 = fcmp ole double 0.000000e+00, %21528
  br i1 %21529, label %21530, label %21533

21530:                                            ; preds = %21527
  %21531 = load double, ptr %619, align 8, !tbaa !11
  %21532 = fadd double %21531, 5.000000e-01
  br label %21536

21533:                                            ; preds = %21527
  %21534 = load double, ptr %619, align 8, !tbaa !11
  %21535 = fsub double %21534, 5.000000e-01
  br label %21536

21536:                                            ; preds = %21533, %21530
  %21537 = phi double [ %21532, %21530 ], [ %21535, %21533 ]
  %21538 = load double, ptr %618, align 8, !tbaa !11
  %21539 = fcmp ole double %21537, %21538
  br i1 %21539, label %21540, label %21551

21540:                                            ; preds = %21536
  %21541 = load double, ptr %619, align 8, !tbaa !11
  %21542 = fcmp ole double 0.000000e+00, %21541
  br i1 %21542, label %21543, label %21546

21543:                                            ; preds = %21540
  %21544 = load double, ptr %619, align 8, !tbaa !11
  %21545 = fadd double %21544, 5.000000e-01
  br label %21549

21546:                                            ; preds = %21540
  %21547 = load double, ptr %619, align 8, !tbaa !11
  %21548 = fsub double %21547, 5.000000e-01
  br label %21549

21549:                                            ; preds = %21546, %21543
  %21550 = phi double [ %21545, %21543 ], [ %21548, %21546 ]
  br label %21579

21551:                                            ; preds = %21536
  %21552 = load double, ptr %619, align 8, !tbaa !11
  %21553 = fcmp ole double 0.000000e+00, %21552
  br i1 %21553, label %21554, label %21557

21554:                                            ; preds = %21551
  %21555 = load double, ptr %619, align 8, !tbaa !11
  %21556 = fadd double %21555, 5.000000e-01
  br label %21560

21557:                                            ; preds = %21551
  %21558 = load double, ptr %619, align 8, !tbaa !11
  %21559 = fsub double %21558, 5.000000e-01
  br label %21560

21560:                                            ; preds = %21557, %21554
  %21561 = phi double [ %21556, %21554 ], [ %21559, %21557 ]
  %21562 = load double, ptr %618, align 8, !tbaa !11
  %21563 = fcmp olt double %21561, %21562
  br i1 %21563, label %21564, label %21575

21564:                                            ; preds = %21560
  %21565 = load double, ptr %619, align 8, !tbaa !11
  %21566 = fcmp ole double 0.000000e+00, %21565
  br i1 %21566, label %21567, label %21570

21567:                                            ; preds = %21564
  %21568 = load double, ptr %619, align 8, !tbaa !11
  %21569 = fadd double %21568, 5.000000e-01
  br label %21573

21570:                                            ; preds = %21564
  %21571 = load double, ptr %619, align 8, !tbaa !11
  %21572 = fsub double %21571, 5.000000e-01
  br label %21573

21573:                                            ; preds = %21570, %21567
  %21574 = phi double [ %21569, %21567 ], [ %21572, %21570 ]
  br label %21577

21575:                                            ; preds = %21560
  %21576 = load double, ptr %618, align 8, !tbaa !11
  br label %21577

21577:                                            ; preds = %21575, %21573
  %21578 = phi double [ %21574, %21573 ], [ %21576, %21575 ]
  br label %21579

21579:                                            ; preds = %21577, %21549
  %21580 = phi double [ %21550, %21549 ], [ %21578, %21577 ]
  br label %21609

21581:                                            ; preds = %21524
  %21582 = load double, ptr %617, align 8, !tbaa !11
  %21583 = load double, ptr %619, align 8, !tbaa !11
  %21584 = fcmp ole double 0.000000e+00, %21583
  br i1 %21584, label %21585, label %21588

21585:                                            ; preds = %21581
  %21586 = load double, ptr %619, align 8, !tbaa !11
  %21587 = fadd double %21586, 5.000000e-01
  br label %21591

21588:                                            ; preds = %21581
  %21589 = load double, ptr %619, align 8, !tbaa !11
  %21590 = fsub double %21589, 5.000000e-01
  br label %21591

21591:                                            ; preds = %21588, %21585
  %21592 = phi double [ %21587, %21585 ], [ %21590, %21588 ]
  %21593 = fcmp olt double %21582, %21592
  br i1 %21593, label %21594, label %21605

21594:                                            ; preds = %21591
  %21595 = load double, ptr %619, align 8, !tbaa !11
  %21596 = fcmp ole double 0.000000e+00, %21595
  br i1 %21596, label %21597, label %21600

21597:                                            ; preds = %21594
  %21598 = load double, ptr %619, align 8, !tbaa !11
  %21599 = fadd double %21598, 5.000000e-01
  br label %21603

21600:                                            ; preds = %21594
  %21601 = load double, ptr %619, align 8, !tbaa !11
  %21602 = fsub double %21601, 5.000000e-01
  br label %21603

21603:                                            ; preds = %21600, %21597
  %21604 = phi double [ %21599, %21597 ], [ %21602, %21600 ]
  br label %21607

21605:                                            ; preds = %21591
  %21606 = load double, ptr %617, align 8, !tbaa !11
  br label %21607

21607:                                            ; preds = %21605, %21603
  %21608 = phi double [ %21604, %21603 ], [ %21606, %21605 ]
  br label %21609

21609:                                            ; preds = %21607, %21579
  %21610 = phi double [ %21580, %21579 ], [ %21608, %21607 ]
  %21611 = fptosi double %21610 to i64
  %21612 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %21611, ptr %21612, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %619) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %618) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %617) #3
  br label %21690

21613:                                            ; preds = %21377, %21374
  %21614 = load i32, ptr %8, align 4, !tbaa !9
  %21615 = icmp ugt i32 6, %21614
  br i1 %21615, label %21644, label %21616

21616:                                            ; preds = %21613
  %21617 = load i32, ptr %8, align 4, !tbaa !9
  %21618 = icmp ugt i32 15, %21617
  br i1 %21618, label %21619, label %21630

21619:                                            ; preds = %21616
  %21620 = load i32, ptr %9, align 4, !tbaa !9
  %21621 = icmp ugt i32 15, %21620
  br i1 %21621, label %21622, label %21627

21622:                                            ; preds = %21619
  %21623 = load i32, ptr %9, align 4, !tbaa !9
  %21624 = load i32, ptr %8, align 4, !tbaa !9
  %21625 = icmp ugt i32 %21623, %21624
  %21626 = zext i1 %21625 to i32
  br label %21628

21627:                                            ; preds = %21619
  br label %21628

21628:                                            ; preds = %21627, %21622
  %21629 = phi i32 [ %21626, %21622 ], [ 0, %21627 ]
  br label %21641

21630:                                            ; preds = %21616
  %21631 = load i32, ptr %9, align 4, !tbaa !9
  %21632 = icmp ugt i32 15, %21631
  br i1 %21632, label %21633, label %21634

21633:                                            ; preds = %21630
  br label %21639

21634:                                            ; preds = %21630
  %21635 = load i32, ptr %9, align 4, !tbaa !9
  %21636 = load i32, ptr %8, align 4, !tbaa !9
  %21637 = icmp ugt i32 %21635, %21636
  %21638 = zext i1 %21637 to i32
  br label %21639

21639:                                            ; preds = %21634, %21633
  %21640 = phi i32 [ 0, %21633 ], [ %21638, %21634 ]
  br label %21641

21641:                                            ; preds = %21639, %21628
  %21642 = phi i32 [ %21629, %21628 ], [ %21640, %21639 ]
  %21643 = icmp ne i32 %21642, 0
  br label %21644

21644:                                            ; preds = %21641, %21613
  %21645 = phi i1 [ true, %21613 ], [ %21643, %21641 ]
  %21646 = zext i1 %21645 to i32
  %21647 = icmp eq i32 0, %21646
  br i1 %21647, label %21648, label %21685

21648:                                            ; preds = %21644
  %21649 = load i32, ptr %610, align 4, !tbaa !9
  %21650 = uitofp i32 %21649 to double
  %21651 = fcmp olt double 0xC3E0000000000000, %21650
  br i1 %21651, label %21652, label %21671

21652:                                            ; preds = %21648
  %21653 = load i32, ptr %610, align 4, !tbaa !9
  %21654 = uitofp i32 %21653 to double
  %21655 = fcmp ole double %21654, 0x43E0000000000000
  br i1 %21655, label %21656, label %21659

21656:                                            ; preds = %21652
  %21657 = load i32, ptr %610, align 4, !tbaa !9
  %21658 = uitofp i32 %21657 to double
  br label %21669

21659:                                            ; preds = %21652
  %21660 = load i32, ptr %610, align 4, !tbaa !9
  %21661 = uitofp i32 %21660 to double
  %21662 = fcmp olt double %21661, 0x43E0000000000000
  br i1 %21662, label %21663, label %21666

21663:                                            ; preds = %21659
  %21664 = load i32, ptr %610, align 4, !tbaa !9
  %21665 = uitofp i32 %21664 to double
  br label %21667

21666:                                            ; preds = %21659
  br label %21667

21667:                                            ; preds = %21666, %21663
  %21668 = phi double [ %21665, %21663 ], [ 0x43E0000000000000, %21666 ]
  br label %21669

21669:                                            ; preds = %21667, %21656
  %21670 = phi double [ %21658, %21656 ], [ %21668, %21667 ]
  br label %21681

21671:                                            ; preds = %21648
  %21672 = load i32, ptr %610, align 4, !tbaa !9
  %21673 = uitofp i32 %21672 to double
  %21674 = fcmp olt double 0xC3E0000000000000, %21673
  br i1 %21674, label %21675, label %21678

21675:                                            ; preds = %21671
  %21676 = load i32, ptr %610, align 4, !tbaa !9
  %21677 = uitofp i32 %21676 to double
  br label %21679

21678:                                            ; preds = %21671
  br label %21679

21679:                                            ; preds = %21678, %21675
  %21680 = phi double [ %21677, %21675 ], [ 0xC3E0000000000000, %21678 ]
  br label %21681

21681:                                            ; preds = %21679, %21669
  %21682 = phi double [ %21670, %21669 ], [ %21680, %21679 ]
  %21683 = fptosi double %21682 to i64
  %21684 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %21683, ptr %21684, align 8, !tbaa !13
  br label %21689

21685:                                            ; preds = %21644
  %21686 = load i32, ptr %610, align 4, !tbaa !9
  %21687 = zext i32 %21686 to i64
  %21688 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %21687, ptr %21688, align 8, !tbaa !13
  br label %21689

21689:                                            ; preds = %21685, %21681
  br label %21690

21690:                                            ; preds = %21689, %21609
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %612) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %611) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %610) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %609) #3
  br label %21691

21691:                                            ; preds = %21690
  br label %21692

21692:                                            ; preds = %21691
  br label %23208

21693:                                            ; preds = %19585
  br label %21694

21694:                                            ; preds = %21693
  call void @llvm.lifetime.start.p0(i64 8, ptr %620) #3
  store double 5.000000e-01, ptr %620, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %621) #3
  %21695 = load ptr, ptr %10, align 8, !tbaa !5
  %21696 = load i16, ptr %21695, align 2, !tbaa !15
  store i16 %21696, ptr %621, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %622) #3
  store double 0.000000e+00, ptr %622, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %623) #3
  store double 0.000000e+00, ptr %623, align 8, !tbaa !11
  %21697 = load ptr, ptr %11, align 8, !tbaa !5
  %21698 = icmp ne ptr null, %21697
  br i1 %21698, label %21699, label %21725

21699:                                            ; preds = %21694
  %21700 = load ptr, ptr %12, align 8, !tbaa !5
  %21701 = icmp ne ptr null, %21700
  br i1 %21701, label %21702, label %21717

21702:                                            ; preds = %21699
  %21703 = load ptr, ptr %11, align 8, !tbaa !5
  %21704 = load i16, ptr %21703, align 2, !tbaa !15
  %21705 = zext i16 %21704 to i32
  %21706 = load i16, ptr %621, align 2, !tbaa !15
  %21707 = zext i16 %21706 to i32
  %21708 = icmp sle i32 %21705, %21707
  br i1 %21708, label %21709, label %21717

21709:                                            ; preds = %21702
  %21710 = load i16, ptr %621, align 2, !tbaa !15
  %21711 = zext i16 %21710 to i32
  %21712 = load ptr, ptr %12, align 8, !tbaa !5
  %21713 = load i16, ptr %21712, align 2, !tbaa !15
  %21714 = zext i16 %21713 to i32
  %21715 = icmp sle i32 %21711, %21714
  br i1 %21715, label %21716, label %21717

21716:                                            ; preds = %21709
  br label %21718

21717:                                            ; preds = %21709, %21702, %21699
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.24, i32 noundef 482, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

21718:                                            ; preds = %21716
  %21719 = load ptr, ptr %11, align 8, !tbaa !5
  %21720 = load i16, ptr %21719, align 2, !tbaa !15
  %21721 = uitofp i16 %21720 to double
  store double %21721, ptr %622, align 8, !tbaa !11
  %21722 = load ptr, ptr %12, align 8, !tbaa !5
  %21723 = load i16, ptr %21722, align 2, !tbaa !15
  %21724 = uitofp i16 %21723 to double
  store double %21724, ptr %623, align 8, !tbaa !11
  br label %21725

21725:                                            ; preds = %21718, %21694
  %21726 = load i32, ptr %8, align 4, !tbaa !9
  %21727 = icmp ule i32 6, %21726
  br i1 %21727, label %21728, label %21966

21728:                                            ; preds = %21725
  %21729 = load double, ptr %622, align 8, !tbaa !11
  %21730 = load double, ptr %623, align 8, !tbaa !11
  %21731 = fcmp olt double %21729, %21730
  br i1 %21731, label %21732, label %21966

21732:                                            ; preds = %21728
  %21733 = load i32, ptr %8, align 4, !tbaa !9
  %21734 = icmp ule i32 15, %21733
  br i1 %21734, label %21735, label %21789

21735:                                            ; preds = %21732
  call void @llvm.lifetime.start.p0(i64 8, ptr %624) #3
  %21736 = load double, ptr %622, align 8, !tbaa !11
  %21737 = fcmp olt double 0.000000e+00, %21736
  br i1 %21737, label %21738, label %21740

21738:                                            ; preds = %21735
  %21739 = load double, ptr %622, align 8, !tbaa !11
  br label %21741

21740:                                            ; preds = %21735
  br label %21741

21741:                                            ; preds = %21740, %21738
  %21742 = phi double [ %21739, %21738 ], [ 0.000000e+00, %21740 ]
  store double %21742, ptr %624, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %625) #3
  %21743 = load double, ptr %623, align 8, !tbaa !11
  %21744 = fcmp olt double 0.000000e+00, %21743
  br i1 %21744, label %21745, label %21747

21745:                                            ; preds = %21741
  %21746 = load double, ptr %623, align 8, !tbaa !11
  br label %21748

21747:                                            ; preds = %21741
  br label %21748

21748:                                            ; preds = %21747, %21745
  %21749 = phi double [ %21746, %21745 ], [ 0.000000e+00, %21747 ]
  store double %21749, ptr %625, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %626) #3
  %21750 = load double, ptr %624, align 8, !tbaa !11
  %21751 = load double, ptr %625, align 8, !tbaa !11
  %21752 = fcmp olt double %21750, %21751
  br i1 %21752, label %21753, label %21761

21753:                                            ; preds = %21748
  %21754 = load double, ptr %623, align 8, !tbaa !11
  %21755 = load double, ptr %622, align 8, !tbaa !11
  %21756 = fsub double %21754, %21755
  %21757 = load double, ptr %625, align 8, !tbaa !11
  %21758 = load double, ptr %624, align 8, !tbaa !11
  %21759 = fsub double %21757, %21758
  %21760 = fdiv double %21756, %21759
  br label %21762

21761:                                            ; preds = %21748
  br label %21762

21762:                                            ; preds = %21761, %21753
  %21763 = phi double [ %21760, %21753 ], [ 1.000000e+00, %21761 ]
  store double %21763, ptr %626, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %627) #3
  %21764 = load double, ptr %626, align 8, !tbaa !11
  %21765 = load i16, ptr %621, align 2, !tbaa !15
  %21766 = zext i16 %21765 to i32
  %21767 = icmp slt i32 0, %21766
  br i1 %21767, label %21768, label %21771

21768:                                            ; preds = %21762
  %21769 = load i16, ptr %621, align 2, !tbaa !15
  %21770 = zext i16 %21769 to i32
  br label %21772

21771:                                            ; preds = %21762
  br label %21772

21772:                                            ; preds = %21771, %21768
  %21773 = phi i32 [ %21770, %21768 ], [ 0, %21771 ]
  %21774 = sitofp i32 %21773 to double
  %21775 = fmul double %21764, %21774
  store double %21775, ptr %627, align 8, !tbaa !11
  %21776 = load double, ptr %627, align 8, !tbaa !11
  %21777 = fcmp ole double 0.000000e+00, %21776
  br i1 %21777, label %21778, label %21781

21778:                                            ; preds = %21772
  %21779 = load double, ptr %627, align 8, !tbaa !11
  %21780 = fadd double %21779, 5.000000e-01
  br label %21784

21781:                                            ; preds = %21772
  %21782 = load double, ptr %627, align 8, !tbaa !11
  %21783 = fsub double %21782, 5.000000e-01
  br label %21784

21784:                                            ; preds = %21781, %21778
  %21785 = phi double [ %21780, %21778 ], [ %21783, %21781 ]
  %21786 = fptoui double %21785 to i16
  store i16 %21786, ptr %621, align 2, !tbaa !15
  %21787 = load double, ptr %624, align 8, !tbaa !11
  store double %21787, ptr %622, align 8, !tbaa !11
  %21788 = load double, ptr %625, align 8, !tbaa !11
  store double %21788, ptr %623, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %627) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %626) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %625) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %624) #3
  br label %21845

21789:                                            ; preds = %21732
  %21790 = load i32, ptr %8, align 4, !tbaa !9
  %21791 = icmp ugt i32 6, %21790
  br i1 %21791, label %21820, label %21792

21792:                                            ; preds = %21789
  %21793 = load i32, ptr %8, align 4, !tbaa !9
  %21794 = icmp ugt i32 15, %21793
  br i1 %21794, label %21795, label %21806

21795:                                            ; preds = %21792
  %21796 = load i32, ptr %9, align 4, !tbaa !9
  %21797 = icmp ugt i32 15, %21796
  br i1 %21797, label %21798, label %21803

21798:                                            ; preds = %21795
  %21799 = load i32, ptr %9, align 4, !tbaa !9
  %21800 = load i32, ptr %8, align 4, !tbaa !9
  %21801 = icmp ugt i32 %21799, %21800
  %21802 = zext i1 %21801 to i32
  br label %21804

21803:                                            ; preds = %21795
  br label %21804

21804:                                            ; preds = %21803, %21798
  %21805 = phi i32 [ %21802, %21798 ], [ 0, %21803 ]
  br label %21817

21806:                                            ; preds = %21792
  %21807 = load i32, ptr %9, align 4, !tbaa !9
  %21808 = icmp ugt i32 15, %21807
  br i1 %21808, label %21809, label %21810

21809:                                            ; preds = %21806
  br label %21815

21810:                                            ; preds = %21806
  %21811 = load i32, ptr %9, align 4, !tbaa !9
  %21812 = load i32, ptr %8, align 4, !tbaa !9
  %21813 = icmp ugt i32 %21811, %21812
  %21814 = zext i1 %21813 to i32
  br label %21815

21815:                                            ; preds = %21810, %21809
  %21816 = phi i32 [ 0, %21809 ], [ %21814, %21810 ]
  br label %21817

21817:                                            ; preds = %21815, %21804
  %21818 = phi i32 [ %21805, %21804 ], [ %21816, %21815 ]
  %21819 = icmp ne i32 %21818, 0
  br label %21820

21820:                                            ; preds = %21817, %21789
  %21821 = phi i1 [ true, %21789 ], [ %21819, %21817 ]
  %21822 = zext i1 %21821 to i32
  %21823 = icmp eq i32 0, %21822
  br i1 %21823, label %21824, label %21844

21824:                                            ; preds = %21820
  %21825 = load double, ptr %622, align 8, !tbaa !11
  %21826 = fcmp ogt double 0.000000e+00, %21825
  br i1 %21826, label %21827, label %21844

21827:                                            ; preds = %21824
  %21828 = load double, ptr %623, align 8, !tbaa !11
  %21829 = fcmp olt double 0.000000e+00, %21828
  br i1 %21829, label %21830, label %21844

21830:                                            ; preds = %21827
  %21831 = load double, ptr %622, align 8, !tbaa !11
  %21832 = fneg double %21831
  %21833 = load double, ptr %623, align 8, !tbaa !11
  %21834 = fcmp olt double %21832, %21833
  br i1 %21834, label %21835, label %21837

21835:                                            ; preds = %21830
  %21836 = load double, ptr %623, align 8, !tbaa !11
  br label %21840

21837:                                            ; preds = %21830
  %21838 = load double, ptr %622, align 8, !tbaa !11
  %21839 = fneg double %21838
  br label %21840

21840:                                            ; preds = %21837, %21835
  %21841 = phi double [ %21836, %21835 ], [ %21839, %21837 ]
  store double %21841, ptr %623, align 8, !tbaa !11
  %21842 = load double, ptr %623, align 8, !tbaa !11
  %21843 = fneg double %21842
  store double %21843, ptr %622, align 8, !tbaa !11
  br label %21844

21844:                                            ; preds = %21840, %21827, %21824, %21820
  br label %21845

21845:                                            ; preds = %21844, %21784
  call void @llvm.lifetime.start.p0(i64 8, ptr %628) #3
  %21846 = load double, ptr %622, align 8, !tbaa !11
  %21847 = fcmp ole double 0.000000e+00, %21846
  %21848 = zext i1 %21847 to i64
  %21849 = select i1 %21847, double 0.000000e+00, double 0xC3E0000000000000
  store double %21849, ptr %628, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %629) #3
  %21850 = load double, ptr %623, align 8, !tbaa !11
  %21851 = fcmp ole double 0.000000e+00, %21850
  %21852 = zext i1 %21851 to i64
  %21853 = select i1 %21851, double 0x43E0000000000000, double 0.000000e+00
  store double %21853, ptr %629, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %630) #3
  %21854 = load i16, ptr %621, align 2, !tbaa !15
  %21855 = uitofp i16 %21854 to double
  %21856 = load double, ptr %622, align 8, !tbaa !11
  %21857 = fsub double %21855, %21856
  %21858 = load double, ptr %629, align 8, !tbaa !11
  %21859 = load double, ptr %628, align 8, !tbaa !11
  %21860 = fsub double %21858, %21859
  %21861 = fmul double %21857, %21860
  %21862 = load double, ptr %623, align 8, !tbaa !11
  %21863 = load double, ptr %622, align 8, !tbaa !11
  %21864 = fsub double %21862, %21863
  %21865 = fdiv double %21861, %21864
  %21866 = load double, ptr %628, align 8, !tbaa !11
  %21867 = fadd double %21865, %21866
  store double %21867, ptr %630, align 8, !tbaa !11
  %21868 = load double, ptr %628, align 8, !tbaa !11
  %21869 = load double, ptr %630, align 8, !tbaa !11
  %21870 = fcmp ole double 0.000000e+00, %21869
  br i1 %21870, label %21871, label %21874

21871:                                            ; preds = %21845
  %21872 = load double, ptr %630, align 8, !tbaa !11
  %21873 = fadd double %21872, 5.000000e-01
  br label %21877

21874:                                            ; preds = %21845
  %21875 = load double, ptr %630, align 8, !tbaa !11
  %21876 = fsub double %21875, 5.000000e-01
  br label %21877

21877:                                            ; preds = %21874, %21871
  %21878 = phi double [ %21873, %21871 ], [ %21876, %21874 ]
  %21879 = fcmp olt double %21868, %21878
  br i1 %21879, label %21880, label %21934

21880:                                            ; preds = %21877
  %21881 = load double, ptr %630, align 8, !tbaa !11
  %21882 = fcmp ole double 0.000000e+00, %21881
  br i1 %21882, label %21883, label %21886

21883:                                            ; preds = %21880
  %21884 = load double, ptr %630, align 8, !tbaa !11
  %21885 = fadd double %21884, 5.000000e-01
  br label %21889

21886:                                            ; preds = %21880
  %21887 = load double, ptr %630, align 8, !tbaa !11
  %21888 = fsub double %21887, 5.000000e-01
  br label %21889

21889:                                            ; preds = %21886, %21883
  %21890 = phi double [ %21885, %21883 ], [ %21888, %21886 ]
  %21891 = load double, ptr %629, align 8, !tbaa !11
  %21892 = fcmp ole double %21890, %21891
  br i1 %21892, label %21893, label %21904

21893:                                            ; preds = %21889
  %21894 = load double, ptr %630, align 8, !tbaa !11
  %21895 = fcmp ole double 0.000000e+00, %21894
  br i1 %21895, label %21896, label %21899

21896:                                            ; preds = %21893
  %21897 = load double, ptr %630, align 8, !tbaa !11
  %21898 = fadd double %21897, 5.000000e-01
  br label %21902

21899:                                            ; preds = %21893
  %21900 = load double, ptr %630, align 8, !tbaa !11
  %21901 = fsub double %21900, 5.000000e-01
  br label %21902

21902:                                            ; preds = %21899, %21896
  %21903 = phi double [ %21898, %21896 ], [ %21901, %21899 ]
  br label %21932

21904:                                            ; preds = %21889
  %21905 = load double, ptr %630, align 8, !tbaa !11
  %21906 = fcmp ole double 0.000000e+00, %21905
  br i1 %21906, label %21907, label %21910

21907:                                            ; preds = %21904
  %21908 = load double, ptr %630, align 8, !tbaa !11
  %21909 = fadd double %21908, 5.000000e-01
  br label %21913

21910:                                            ; preds = %21904
  %21911 = load double, ptr %630, align 8, !tbaa !11
  %21912 = fsub double %21911, 5.000000e-01
  br label %21913

21913:                                            ; preds = %21910, %21907
  %21914 = phi double [ %21909, %21907 ], [ %21912, %21910 ]
  %21915 = load double, ptr %629, align 8, !tbaa !11
  %21916 = fcmp olt double %21914, %21915
  br i1 %21916, label %21917, label %21928

21917:                                            ; preds = %21913
  %21918 = load double, ptr %630, align 8, !tbaa !11
  %21919 = fcmp ole double 0.000000e+00, %21918
  br i1 %21919, label %21920, label %21923

21920:                                            ; preds = %21917
  %21921 = load double, ptr %630, align 8, !tbaa !11
  %21922 = fadd double %21921, 5.000000e-01
  br label %21926

21923:                                            ; preds = %21917
  %21924 = load double, ptr %630, align 8, !tbaa !11
  %21925 = fsub double %21924, 5.000000e-01
  br label %21926

21926:                                            ; preds = %21923, %21920
  %21927 = phi double [ %21922, %21920 ], [ %21925, %21923 ]
  br label %21930

21928:                                            ; preds = %21913
  %21929 = load double, ptr %629, align 8, !tbaa !11
  br label %21930

21930:                                            ; preds = %21928, %21926
  %21931 = phi double [ %21927, %21926 ], [ %21929, %21928 ]
  br label %21932

21932:                                            ; preds = %21930, %21902
  %21933 = phi double [ %21903, %21902 ], [ %21931, %21930 ]
  br label %21962

21934:                                            ; preds = %21877
  %21935 = load double, ptr %628, align 8, !tbaa !11
  %21936 = load double, ptr %630, align 8, !tbaa !11
  %21937 = fcmp ole double 0.000000e+00, %21936
  br i1 %21937, label %21938, label %21941

21938:                                            ; preds = %21934
  %21939 = load double, ptr %630, align 8, !tbaa !11
  %21940 = fadd double %21939, 5.000000e-01
  br label %21944

21941:                                            ; preds = %21934
  %21942 = load double, ptr %630, align 8, !tbaa !11
  %21943 = fsub double %21942, 5.000000e-01
  br label %21944

21944:                                            ; preds = %21941, %21938
  %21945 = phi double [ %21940, %21938 ], [ %21943, %21941 ]
  %21946 = fcmp olt double %21935, %21945
  br i1 %21946, label %21947, label %21958

21947:                                            ; preds = %21944
  %21948 = load double, ptr %630, align 8, !tbaa !11
  %21949 = fcmp ole double 0.000000e+00, %21948
  br i1 %21949, label %21950, label %21953

21950:                                            ; preds = %21947
  %21951 = load double, ptr %630, align 8, !tbaa !11
  %21952 = fadd double %21951, 5.000000e-01
  br label %21956

21953:                                            ; preds = %21947
  %21954 = load double, ptr %630, align 8, !tbaa !11
  %21955 = fsub double %21954, 5.000000e-01
  br label %21956

21956:                                            ; preds = %21953, %21950
  %21957 = phi double [ %21952, %21950 ], [ %21955, %21953 ]
  br label %21960

21958:                                            ; preds = %21944
  %21959 = load double, ptr %628, align 8, !tbaa !11
  br label %21960

21960:                                            ; preds = %21958, %21956
  %21961 = phi double [ %21957, %21956 ], [ %21959, %21958 ]
  br label %21962

21962:                                            ; preds = %21960, %21932
  %21963 = phi double [ %21933, %21932 ], [ %21961, %21960 ]
  %21964 = fptosi double %21963 to i64
  %21965 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %21964, ptr %21965, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %630) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %629) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %628) #3
  br label %22050

21966:                                            ; preds = %21728, %21725
  %21967 = load i32, ptr %8, align 4, !tbaa !9
  %21968 = icmp ugt i32 6, %21967
  br i1 %21968, label %21997, label %21969

21969:                                            ; preds = %21966
  %21970 = load i32, ptr %8, align 4, !tbaa !9
  %21971 = icmp ugt i32 15, %21970
  br i1 %21971, label %21972, label %21983

21972:                                            ; preds = %21969
  %21973 = load i32, ptr %9, align 4, !tbaa !9
  %21974 = icmp ugt i32 15, %21973
  br i1 %21974, label %21975, label %21980

21975:                                            ; preds = %21972
  %21976 = load i32, ptr %9, align 4, !tbaa !9
  %21977 = load i32, ptr %8, align 4, !tbaa !9
  %21978 = icmp ugt i32 %21976, %21977
  %21979 = zext i1 %21978 to i32
  br label %21981

21980:                                            ; preds = %21972
  br label %21981

21981:                                            ; preds = %21980, %21975
  %21982 = phi i32 [ %21979, %21975 ], [ 0, %21980 ]
  br label %21994

21983:                                            ; preds = %21969
  %21984 = load i32, ptr %9, align 4, !tbaa !9
  %21985 = icmp ugt i32 15, %21984
  br i1 %21985, label %21986, label %21987

21986:                                            ; preds = %21983
  br label %21992

21987:                                            ; preds = %21983
  %21988 = load i32, ptr %9, align 4, !tbaa !9
  %21989 = load i32, ptr %8, align 4, !tbaa !9
  %21990 = icmp ugt i32 %21988, %21989
  %21991 = zext i1 %21990 to i32
  br label %21992

21992:                                            ; preds = %21987, %21986
  %21993 = phi i32 [ 0, %21986 ], [ %21991, %21987 ]
  br label %21994

21994:                                            ; preds = %21992, %21981
  %21995 = phi i32 [ %21982, %21981 ], [ %21993, %21992 ]
  %21996 = icmp ne i32 %21995, 0
  br label %21997

21997:                                            ; preds = %21994, %21966
  %21998 = phi i1 [ true, %21966 ], [ %21996, %21994 ]
  %21999 = zext i1 %21998 to i32
  %22000 = icmp eq i32 0, %21999
  br i1 %22000, label %22001, label %22045

22001:                                            ; preds = %21997
  %22002 = load i16, ptr %621, align 2, !tbaa !15
  %22003 = zext i16 %22002 to i32
  %22004 = sitofp i32 %22003 to double
  %22005 = fcmp olt double 0xC3E0000000000000, %22004
  br i1 %22005, label %22006, label %22029

22006:                                            ; preds = %22001
  %22007 = load i16, ptr %621, align 2, !tbaa !15
  %22008 = zext i16 %22007 to i32
  %22009 = sitofp i32 %22008 to double
  %22010 = fcmp ole double %22009, 0x43E0000000000000
  br i1 %22010, label %22011, label %22015

22011:                                            ; preds = %22006
  %22012 = load i16, ptr %621, align 2, !tbaa !15
  %22013 = zext i16 %22012 to i32
  %22014 = sitofp i32 %22013 to double
  br label %22027

22015:                                            ; preds = %22006
  %22016 = load i16, ptr %621, align 2, !tbaa !15
  %22017 = zext i16 %22016 to i32
  %22018 = sitofp i32 %22017 to double
  %22019 = fcmp olt double %22018, 0x43E0000000000000
  br i1 %22019, label %22020, label %22024

22020:                                            ; preds = %22015
  %22021 = load i16, ptr %621, align 2, !tbaa !15
  %22022 = zext i16 %22021 to i32
  %22023 = sitofp i32 %22022 to double
  br label %22025

22024:                                            ; preds = %22015
  br label %22025

22025:                                            ; preds = %22024, %22020
  %22026 = phi double [ %22023, %22020 ], [ 0x43E0000000000000, %22024 ]
  br label %22027

22027:                                            ; preds = %22025, %22011
  %22028 = phi double [ %22014, %22011 ], [ %22026, %22025 ]
  br label %22041

22029:                                            ; preds = %22001
  %22030 = load i16, ptr %621, align 2, !tbaa !15
  %22031 = zext i16 %22030 to i32
  %22032 = sitofp i32 %22031 to double
  %22033 = fcmp olt double 0xC3E0000000000000, %22032
  br i1 %22033, label %22034, label %22038

22034:                                            ; preds = %22029
  %22035 = load i16, ptr %621, align 2, !tbaa !15
  %22036 = zext i16 %22035 to i32
  %22037 = sitofp i32 %22036 to double
  br label %22039

22038:                                            ; preds = %22029
  br label %22039

22039:                                            ; preds = %22038, %22034
  %22040 = phi double [ %22037, %22034 ], [ 0xC3E0000000000000, %22038 ]
  br label %22041

22041:                                            ; preds = %22039, %22027
  %22042 = phi double [ %22028, %22027 ], [ %22040, %22039 ]
  %22043 = fptosi double %22042 to i64
  %22044 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %22043, ptr %22044, align 8, !tbaa !13
  br label %22049

22045:                                            ; preds = %21997
  %22046 = load i16, ptr %621, align 2, !tbaa !15
  %22047 = zext i16 %22046 to i64
  %22048 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %22047, ptr %22048, align 8, !tbaa !13
  br label %22049

22049:                                            ; preds = %22045, %22041
  br label %22050

22050:                                            ; preds = %22049, %21962
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %623) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %622) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %621) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %620) #3
  br label %22051

22051:                                            ; preds = %22050
  br label %22052

22052:                                            ; preds = %22051
  br label %23208

22053:                                            ; preds = %19585
  br label %22054

22054:                                            ; preds = %22053
  call void @llvm.lifetime.start.p0(i64 8, ptr %631) #3
  store double 5.000000e-01, ptr %631, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %632) #3
  %22055 = load ptr, ptr %10, align 8, !tbaa !5
  %22056 = load i8, ptr %22055, align 1, !tbaa !17
  store i8 %22056, ptr %632, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %633) #3
  store double 0.000000e+00, ptr %633, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %634) #3
  store double 0.000000e+00, ptr %634, align 8, !tbaa !11
  %22057 = load ptr, ptr %11, align 8, !tbaa !5
  %22058 = icmp ne ptr null, %22057
  br i1 %22058, label %22059, label %22085

22059:                                            ; preds = %22054
  %22060 = load ptr, ptr %12, align 8, !tbaa !5
  %22061 = icmp ne ptr null, %22060
  br i1 %22061, label %22062, label %22077

22062:                                            ; preds = %22059
  %22063 = load ptr, ptr %11, align 8, !tbaa !5
  %22064 = load i8, ptr %22063, align 1, !tbaa !17
  %22065 = zext i8 %22064 to i32
  %22066 = load i8, ptr %632, align 1, !tbaa !17
  %22067 = zext i8 %22066 to i32
  %22068 = icmp sle i32 %22065, %22067
  br i1 %22068, label %22069, label %22077

22069:                                            ; preds = %22062
  %22070 = load i8, ptr %632, align 1, !tbaa !17
  %22071 = zext i8 %22070 to i32
  %22072 = load ptr, ptr %12, align 8, !tbaa !5
  %22073 = load i8, ptr %22072, align 1, !tbaa !17
  %22074 = zext i8 %22073 to i32
  %22075 = icmp sle i32 %22071, %22074
  br i1 %22075, label %22076, label %22077

22076:                                            ; preds = %22069
  br label %22078

22077:                                            ; preds = %22069, %22062, %22059
  call void @__assert_fail(ptr noundef @.str.49, ptr noundef @.str.24, i32 noundef 482, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

22078:                                            ; preds = %22076
  %22079 = load ptr, ptr %11, align 8, !tbaa !5
  %22080 = load i8, ptr %22079, align 1, !tbaa !17
  %22081 = uitofp i8 %22080 to double
  store double %22081, ptr %633, align 8, !tbaa !11
  %22082 = load ptr, ptr %12, align 8, !tbaa !5
  %22083 = load i8, ptr %22082, align 1, !tbaa !17
  %22084 = uitofp i8 %22083 to double
  store double %22084, ptr %634, align 8, !tbaa !11
  br label %22085

22085:                                            ; preds = %22078, %22054
  %22086 = load i32, ptr %8, align 4, !tbaa !9
  %22087 = icmp ule i32 6, %22086
  br i1 %22087, label %22088, label %22326

22088:                                            ; preds = %22085
  %22089 = load double, ptr %633, align 8, !tbaa !11
  %22090 = load double, ptr %634, align 8, !tbaa !11
  %22091 = fcmp olt double %22089, %22090
  br i1 %22091, label %22092, label %22326

22092:                                            ; preds = %22088
  %22093 = load i32, ptr %8, align 4, !tbaa !9
  %22094 = icmp ule i32 15, %22093
  br i1 %22094, label %22095, label %22149

22095:                                            ; preds = %22092
  call void @llvm.lifetime.start.p0(i64 8, ptr %635) #3
  %22096 = load double, ptr %633, align 8, !tbaa !11
  %22097 = fcmp olt double 0.000000e+00, %22096
  br i1 %22097, label %22098, label %22100

22098:                                            ; preds = %22095
  %22099 = load double, ptr %633, align 8, !tbaa !11
  br label %22101

22100:                                            ; preds = %22095
  br label %22101

22101:                                            ; preds = %22100, %22098
  %22102 = phi double [ %22099, %22098 ], [ 0.000000e+00, %22100 ]
  store double %22102, ptr %635, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %636) #3
  %22103 = load double, ptr %634, align 8, !tbaa !11
  %22104 = fcmp olt double 0.000000e+00, %22103
  br i1 %22104, label %22105, label %22107

22105:                                            ; preds = %22101
  %22106 = load double, ptr %634, align 8, !tbaa !11
  br label %22108

22107:                                            ; preds = %22101
  br label %22108

22108:                                            ; preds = %22107, %22105
  %22109 = phi double [ %22106, %22105 ], [ 0.000000e+00, %22107 ]
  store double %22109, ptr %636, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %637) #3
  %22110 = load double, ptr %635, align 8, !tbaa !11
  %22111 = load double, ptr %636, align 8, !tbaa !11
  %22112 = fcmp olt double %22110, %22111
  br i1 %22112, label %22113, label %22121

22113:                                            ; preds = %22108
  %22114 = load double, ptr %634, align 8, !tbaa !11
  %22115 = load double, ptr %633, align 8, !tbaa !11
  %22116 = fsub double %22114, %22115
  %22117 = load double, ptr %636, align 8, !tbaa !11
  %22118 = load double, ptr %635, align 8, !tbaa !11
  %22119 = fsub double %22117, %22118
  %22120 = fdiv double %22116, %22119
  br label %22122

22121:                                            ; preds = %22108
  br label %22122

22122:                                            ; preds = %22121, %22113
  %22123 = phi double [ %22120, %22113 ], [ 1.000000e+00, %22121 ]
  store double %22123, ptr %637, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %638) #3
  %22124 = load double, ptr %637, align 8, !tbaa !11
  %22125 = load i8, ptr %632, align 1, !tbaa !17
  %22126 = zext i8 %22125 to i32
  %22127 = icmp slt i32 0, %22126
  br i1 %22127, label %22128, label %22131

22128:                                            ; preds = %22122
  %22129 = load i8, ptr %632, align 1, !tbaa !17
  %22130 = zext i8 %22129 to i32
  br label %22132

22131:                                            ; preds = %22122
  br label %22132

22132:                                            ; preds = %22131, %22128
  %22133 = phi i32 [ %22130, %22128 ], [ 0, %22131 ]
  %22134 = sitofp i32 %22133 to double
  %22135 = fmul double %22124, %22134
  store double %22135, ptr %638, align 8, !tbaa !11
  %22136 = load double, ptr %638, align 8, !tbaa !11
  %22137 = fcmp ole double 0.000000e+00, %22136
  br i1 %22137, label %22138, label %22141

22138:                                            ; preds = %22132
  %22139 = load double, ptr %638, align 8, !tbaa !11
  %22140 = fadd double %22139, 5.000000e-01
  br label %22144

22141:                                            ; preds = %22132
  %22142 = load double, ptr %638, align 8, !tbaa !11
  %22143 = fsub double %22142, 5.000000e-01
  br label %22144

22144:                                            ; preds = %22141, %22138
  %22145 = phi double [ %22140, %22138 ], [ %22143, %22141 ]
  %22146 = fptoui double %22145 to i8
  store i8 %22146, ptr %632, align 1, !tbaa !17
  %22147 = load double, ptr %635, align 8, !tbaa !11
  store double %22147, ptr %633, align 8, !tbaa !11
  %22148 = load double, ptr %636, align 8, !tbaa !11
  store double %22148, ptr %634, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %638) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %637) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %636) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %635) #3
  br label %22205

22149:                                            ; preds = %22092
  %22150 = load i32, ptr %8, align 4, !tbaa !9
  %22151 = icmp ugt i32 6, %22150
  br i1 %22151, label %22180, label %22152

22152:                                            ; preds = %22149
  %22153 = load i32, ptr %8, align 4, !tbaa !9
  %22154 = icmp ugt i32 15, %22153
  br i1 %22154, label %22155, label %22166

22155:                                            ; preds = %22152
  %22156 = load i32, ptr %9, align 4, !tbaa !9
  %22157 = icmp ugt i32 15, %22156
  br i1 %22157, label %22158, label %22163

22158:                                            ; preds = %22155
  %22159 = load i32, ptr %9, align 4, !tbaa !9
  %22160 = load i32, ptr %8, align 4, !tbaa !9
  %22161 = icmp ugt i32 %22159, %22160
  %22162 = zext i1 %22161 to i32
  br label %22164

22163:                                            ; preds = %22155
  br label %22164

22164:                                            ; preds = %22163, %22158
  %22165 = phi i32 [ %22162, %22158 ], [ 0, %22163 ]
  br label %22177

22166:                                            ; preds = %22152
  %22167 = load i32, ptr %9, align 4, !tbaa !9
  %22168 = icmp ugt i32 15, %22167
  br i1 %22168, label %22169, label %22170

22169:                                            ; preds = %22166
  br label %22175

22170:                                            ; preds = %22166
  %22171 = load i32, ptr %9, align 4, !tbaa !9
  %22172 = load i32, ptr %8, align 4, !tbaa !9
  %22173 = icmp ugt i32 %22171, %22172
  %22174 = zext i1 %22173 to i32
  br label %22175

22175:                                            ; preds = %22170, %22169
  %22176 = phi i32 [ 0, %22169 ], [ %22174, %22170 ]
  br label %22177

22177:                                            ; preds = %22175, %22164
  %22178 = phi i32 [ %22165, %22164 ], [ %22176, %22175 ]
  %22179 = icmp ne i32 %22178, 0
  br label %22180

22180:                                            ; preds = %22177, %22149
  %22181 = phi i1 [ true, %22149 ], [ %22179, %22177 ]
  %22182 = zext i1 %22181 to i32
  %22183 = icmp eq i32 0, %22182
  br i1 %22183, label %22184, label %22204

22184:                                            ; preds = %22180
  %22185 = load double, ptr %633, align 8, !tbaa !11
  %22186 = fcmp ogt double 0.000000e+00, %22185
  br i1 %22186, label %22187, label %22204

22187:                                            ; preds = %22184
  %22188 = load double, ptr %634, align 8, !tbaa !11
  %22189 = fcmp olt double 0.000000e+00, %22188
  br i1 %22189, label %22190, label %22204

22190:                                            ; preds = %22187
  %22191 = load double, ptr %633, align 8, !tbaa !11
  %22192 = fneg double %22191
  %22193 = load double, ptr %634, align 8, !tbaa !11
  %22194 = fcmp olt double %22192, %22193
  br i1 %22194, label %22195, label %22197

22195:                                            ; preds = %22190
  %22196 = load double, ptr %634, align 8, !tbaa !11
  br label %22200

22197:                                            ; preds = %22190
  %22198 = load double, ptr %633, align 8, !tbaa !11
  %22199 = fneg double %22198
  br label %22200

22200:                                            ; preds = %22197, %22195
  %22201 = phi double [ %22196, %22195 ], [ %22199, %22197 ]
  store double %22201, ptr %634, align 8, !tbaa !11
  %22202 = load double, ptr %634, align 8, !tbaa !11
  %22203 = fneg double %22202
  store double %22203, ptr %633, align 8, !tbaa !11
  br label %22204

22204:                                            ; preds = %22200, %22187, %22184, %22180
  br label %22205

22205:                                            ; preds = %22204, %22144
  call void @llvm.lifetime.start.p0(i64 8, ptr %639) #3
  %22206 = load double, ptr %633, align 8, !tbaa !11
  %22207 = fcmp ole double 0.000000e+00, %22206
  %22208 = zext i1 %22207 to i64
  %22209 = select i1 %22207, double 0.000000e+00, double 0xC3E0000000000000
  store double %22209, ptr %639, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %640) #3
  %22210 = load double, ptr %634, align 8, !tbaa !11
  %22211 = fcmp ole double 0.000000e+00, %22210
  %22212 = zext i1 %22211 to i64
  %22213 = select i1 %22211, double 0x43E0000000000000, double 0.000000e+00
  store double %22213, ptr %640, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %641) #3
  %22214 = load i8, ptr %632, align 1, !tbaa !17
  %22215 = uitofp i8 %22214 to double
  %22216 = load double, ptr %633, align 8, !tbaa !11
  %22217 = fsub double %22215, %22216
  %22218 = load double, ptr %640, align 8, !tbaa !11
  %22219 = load double, ptr %639, align 8, !tbaa !11
  %22220 = fsub double %22218, %22219
  %22221 = fmul double %22217, %22220
  %22222 = load double, ptr %634, align 8, !tbaa !11
  %22223 = load double, ptr %633, align 8, !tbaa !11
  %22224 = fsub double %22222, %22223
  %22225 = fdiv double %22221, %22224
  %22226 = load double, ptr %639, align 8, !tbaa !11
  %22227 = fadd double %22225, %22226
  store double %22227, ptr %641, align 8, !tbaa !11
  %22228 = load double, ptr %639, align 8, !tbaa !11
  %22229 = load double, ptr %641, align 8, !tbaa !11
  %22230 = fcmp ole double 0.000000e+00, %22229
  br i1 %22230, label %22231, label %22234

22231:                                            ; preds = %22205
  %22232 = load double, ptr %641, align 8, !tbaa !11
  %22233 = fadd double %22232, 5.000000e-01
  br label %22237

22234:                                            ; preds = %22205
  %22235 = load double, ptr %641, align 8, !tbaa !11
  %22236 = fsub double %22235, 5.000000e-01
  br label %22237

22237:                                            ; preds = %22234, %22231
  %22238 = phi double [ %22233, %22231 ], [ %22236, %22234 ]
  %22239 = fcmp olt double %22228, %22238
  br i1 %22239, label %22240, label %22294

22240:                                            ; preds = %22237
  %22241 = load double, ptr %641, align 8, !tbaa !11
  %22242 = fcmp ole double 0.000000e+00, %22241
  br i1 %22242, label %22243, label %22246

22243:                                            ; preds = %22240
  %22244 = load double, ptr %641, align 8, !tbaa !11
  %22245 = fadd double %22244, 5.000000e-01
  br label %22249

22246:                                            ; preds = %22240
  %22247 = load double, ptr %641, align 8, !tbaa !11
  %22248 = fsub double %22247, 5.000000e-01
  br label %22249

22249:                                            ; preds = %22246, %22243
  %22250 = phi double [ %22245, %22243 ], [ %22248, %22246 ]
  %22251 = load double, ptr %640, align 8, !tbaa !11
  %22252 = fcmp ole double %22250, %22251
  br i1 %22252, label %22253, label %22264

22253:                                            ; preds = %22249
  %22254 = load double, ptr %641, align 8, !tbaa !11
  %22255 = fcmp ole double 0.000000e+00, %22254
  br i1 %22255, label %22256, label %22259

22256:                                            ; preds = %22253
  %22257 = load double, ptr %641, align 8, !tbaa !11
  %22258 = fadd double %22257, 5.000000e-01
  br label %22262

22259:                                            ; preds = %22253
  %22260 = load double, ptr %641, align 8, !tbaa !11
  %22261 = fsub double %22260, 5.000000e-01
  br label %22262

22262:                                            ; preds = %22259, %22256
  %22263 = phi double [ %22258, %22256 ], [ %22261, %22259 ]
  br label %22292

22264:                                            ; preds = %22249
  %22265 = load double, ptr %641, align 8, !tbaa !11
  %22266 = fcmp ole double 0.000000e+00, %22265
  br i1 %22266, label %22267, label %22270

22267:                                            ; preds = %22264
  %22268 = load double, ptr %641, align 8, !tbaa !11
  %22269 = fadd double %22268, 5.000000e-01
  br label %22273

22270:                                            ; preds = %22264
  %22271 = load double, ptr %641, align 8, !tbaa !11
  %22272 = fsub double %22271, 5.000000e-01
  br label %22273

22273:                                            ; preds = %22270, %22267
  %22274 = phi double [ %22269, %22267 ], [ %22272, %22270 ]
  %22275 = load double, ptr %640, align 8, !tbaa !11
  %22276 = fcmp olt double %22274, %22275
  br i1 %22276, label %22277, label %22288

22277:                                            ; preds = %22273
  %22278 = load double, ptr %641, align 8, !tbaa !11
  %22279 = fcmp ole double 0.000000e+00, %22278
  br i1 %22279, label %22280, label %22283

22280:                                            ; preds = %22277
  %22281 = load double, ptr %641, align 8, !tbaa !11
  %22282 = fadd double %22281, 5.000000e-01
  br label %22286

22283:                                            ; preds = %22277
  %22284 = load double, ptr %641, align 8, !tbaa !11
  %22285 = fsub double %22284, 5.000000e-01
  br label %22286

22286:                                            ; preds = %22283, %22280
  %22287 = phi double [ %22282, %22280 ], [ %22285, %22283 ]
  br label %22290

22288:                                            ; preds = %22273
  %22289 = load double, ptr %640, align 8, !tbaa !11
  br label %22290

22290:                                            ; preds = %22288, %22286
  %22291 = phi double [ %22287, %22286 ], [ %22289, %22288 ]
  br label %22292

22292:                                            ; preds = %22290, %22262
  %22293 = phi double [ %22263, %22262 ], [ %22291, %22290 ]
  br label %22322

22294:                                            ; preds = %22237
  %22295 = load double, ptr %639, align 8, !tbaa !11
  %22296 = load double, ptr %641, align 8, !tbaa !11
  %22297 = fcmp ole double 0.000000e+00, %22296
  br i1 %22297, label %22298, label %22301

22298:                                            ; preds = %22294
  %22299 = load double, ptr %641, align 8, !tbaa !11
  %22300 = fadd double %22299, 5.000000e-01
  br label %22304

22301:                                            ; preds = %22294
  %22302 = load double, ptr %641, align 8, !tbaa !11
  %22303 = fsub double %22302, 5.000000e-01
  br label %22304

22304:                                            ; preds = %22301, %22298
  %22305 = phi double [ %22300, %22298 ], [ %22303, %22301 ]
  %22306 = fcmp olt double %22295, %22305
  br i1 %22306, label %22307, label %22318

22307:                                            ; preds = %22304
  %22308 = load double, ptr %641, align 8, !tbaa !11
  %22309 = fcmp ole double 0.000000e+00, %22308
  br i1 %22309, label %22310, label %22313

22310:                                            ; preds = %22307
  %22311 = load double, ptr %641, align 8, !tbaa !11
  %22312 = fadd double %22311, 5.000000e-01
  br label %22316

22313:                                            ; preds = %22307
  %22314 = load double, ptr %641, align 8, !tbaa !11
  %22315 = fsub double %22314, 5.000000e-01
  br label %22316

22316:                                            ; preds = %22313, %22310
  %22317 = phi double [ %22312, %22310 ], [ %22315, %22313 ]
  br label %22320

22318:                                            ; preds = %22304
  %22319 = load double, ptr %639, align 8, !tbaa !11
  br label %22320

22320:                                            ; preds = %22318, %22316
  %22321 = phi double [ %22317, %22316 ], [ %22319, %22318 ]
  br label %22322

22322:                                            ; preds = %22320, %22292
  %22323 = phi double [ %22293, %22292 ], [ %22321, %22320 ]
  %22324 = fptosi double %22323 to i64
  %22325 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %22324, ptr %22325, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %641) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %640) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %639) #3
  br label %22410

22326:                                            ; preds = %22088, %22085
  %22327 = load i32, ptr %8, align 4, !tbaa !9
  %22328 = icmp ugt i32 6, %22327
  br i1 %22328, label %22357, label %22329

22329:                                            ; preds = %22326
  %22330 = load i32, ptr %8, align 4, !tbaa !9
  %22331 = icmp ugt i32 15, %22330
  br i1 %22331, label %22332, label %22343

22332:                                            ; preds = %22329
  %22333 = load i32, ptr %9, align 4, !tbaa !9
  %22334 = icmp ugt i32 15, %22333
  br i1 %22334, label %22335, label %22340

22335:                                            ; preds = %22332
  %22336 = load i32, ptr %9, align 4, !tbaa !9
  %22337 = load i32, ptr %8, align 4, !tbaa !9
  %22338 = icmp ugt i32 %22336, %22337
  %22339 = zext i1 %22338 to i32
  br label %22341

22340:                                            ; preds = %22332
  br label %22341

22341:                                            ; preds = %22340, %22335
  %22342 = phi i32 [ %22339, %22335 ], [ 0, %22340 ]
  br label %22354

22343:                                            ; preds = %22329
  %22344 = load i32, ptr %9, align 4, !tbaa !9
  %22345 = icmp ugt i32 15, %22344
  br i1 %22345, label %22346, label %22347

22346:                                            ; preds = %22343
  br label %22352

22347:                                            ; preds = %22343
  %22348 = load i32, ptr %9, align 4, !tbaa !9
  %22349 = load i32, ptr %8, align 4, !tbaa !9
  %22350 = icmp ugt i32 %22348, %22349
  %22351 = zext i1 %22350 to i32
  br label %22352

22352:                                            ; preds = %22347, %22346
  %22353 = phi i32 [ 0, %22346 ], [ %22351, %22347 ]
  br label %22354

22354:                                            ; preds = %22352, %22341
  %22355 = phi i32 [ %22342, %22341 ], [ %22353, %22352 ]
  %22356 = icmp ne i32 %22355, 0
  br label %22357

22357:                                            ; preds = %22354, %22326
  %22358 = phi i1 [ true, %22326 ], [ %22356, %22354 ]
  %22359 = zext i1 %22358 to i32
  %22360 = icmp eq i32 0, %22359
  br i1 %22360, label %22361, label %22405

22361:                                            ; preds = %22357
  %22362 = load i8, ptr %632, align 1, !tbaa !17
  %22363 = zext i8 %22362 to i32
  %22364 = sitofp i32 %22363 to double
  %22365 = fcmp olt double 0xC3E0000000000000, %22364
  br i1 %22365, label %22366, label %22389

22366:                                            ; preds = %22361
  %22367 = load i8, ptr %632, align 1, !tbaa !17
  %22368 = zext i8 %22367 to i32
  %22369 = sitofp i32 %22368 to double
  %22370 = fcmp ole double %22369, 0x43E0000000000000
  br i1 %22370, label %22371, label %22375

22371:                                            ; preds = %22366
  %22372 = load i8, ptr %632, align 1, !tbaa !17
  %22373 = zext i8 %22372 to i32
  %22374 = sitofp i32 %22373 to double
  br label %22387

22375:                                            ; preds = %22366
  %22376 = load i8, ptr %632, align 1, !tbaa !17
  %22377 = zext i8 %22376 to i32
  %22378 = sitofp i32 %22377 to double
  %22379 = fcmp olt double %22378, 0x43E0000000000000
  br i1 %22379, label %22380, label %22384

22380:                                            ; preds = %22375
  %22381 = load i8, ptr %632, align 1, !tbaa !17
  %22382 = zext i8 %22381 to i32
  %22383 = sitofp i32 %22382 to double
  br label %22385

22384:                                            ; preds = %22375
  br label %22385

22385:                                            ; preds = %22384, %22380
  %22386 = phi double [ %22383, %22380 ], [ 0x43E0000000000000, %22384 ]
  br label %22387

22387:                                            ; preds = %22385, %22371
  %22388 = phi double [ %22374, %22371 ], [ %22386, %22385 ]
  br label %22401

22389:                                            ; preds = %22361
  %22390 = load i8, ptr %632, align 1, !tbaa !17
  %22391 = zext i8 %22390 to i32
  %22392 = sitofp i32 %22391 to double
  %22393 = fcmp olt double 0xC3E0000000000000, %22392
  br i1 %22393, label %22394, label %22398

22394:                                            ; preds = %22389
  %22395 = load i8, ptr %632, align 1, !tbaa !17
  %22396 = zext i8 %22395 to i32
  %22397 = sitofp i32 %22396 to double
  br label %22399

22398:                                            ; preds = %22389
  br label %22399

22399:                                            ; preds = %22398, %22394
  %22400 = phi double [ %22397, %22394 ], [ 0xC3E0000000000000, %22398 ]
  br label %22401

22401:                                            ; preds = %22399, %22387
  %22402 = phi double [ %22388, %22387 ], [ %22400, %22399 ]
  %22403 = fptosi double %22402 to i64
  %22404 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %22403, ptr %22404, align 8, !tbaa !13
  br label %22409

22405:                                            ; preds = %22357
  %22406 = load i8, ptr %632, align 1, !tbaa !17
  %22407 = zext i8 %22406 to i64
  %22408 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %22407, ptr %22408, align 8, !tbaa !13
  br label %22409

22409:                                            ; preds = %22405, %22401
  br label %22410

22410:                                            ; preds = %22409, %22322
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %634) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %633) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %632) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %631) #3
  br label %22411

22411:                                            ; preds = %22410
  br label %22412

22412:                                            ; preds = %22411
  br label %23208

22413:                                            ; preds = %19585
  br label %22414

22414:                                            ; preds = %22413
  call void @llvm.lifetime.start.p0(i64 8, ptr %642) #3
  store double 5.000000e-01, ptr %642, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %643) #3
  %22415 = load ptr, ptr %10, align 8, !tbaa !5
  %22416 = load double, ptr %22415, align 8, !tbaa !11
  store double %22416, ptr %643, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %644) #3
  store double 0.000000e+00, ptr %644, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %645) #3
  store double 0.000000e+00, ptr %645, align 8, !tbaa !11
  %22417 = load ptr, ptr %11, align 8, !tbaa !5
  %22418 = icmp ne ptr null, %22417
  br i1 %22418, label %22419, label %22443

22419:                                            ; preds = %22414
  %22420 = load double, ptr %643, align 8, !tbaa !11
  %22421 = load double, ptr %643, align 8, !tbaa !11
  %22422 = fcmp oeq double %22420, %22421
  br i1 %22422, label %22423, label %22443

22423:                                            ; preds = %22419
  %22424 = load ptr, ptr %12, align 8, !tbaa !5
  %22425 = icmp ne ptr null, %22424
  br i1 %22425, label %22426, label %22437

22426:                                            ; preds = %22423
  %22427 = load ptr, ptr %11, align 8, !tbaa !5
  %22428 = load double, ptr %22427, align 8, !tbaa !11
  %22429 = load double, ptr %643, align 8, !tbaa !11
  %22430 = fcmp ole double %22428, %22429
  br i1 %22430, label %22431, label %22437

22431:                                            ; preds = %22426
  %22432 = load double, ptr %643, align 8, !tbaa !11
  %22433 = load ptr, ptr %12, align 8, !tbaa !5
  %22434 = load double, ptr %22433, align 8, !tbaa !11
  %22435 = fcmp ole double %22432, %22434
  br i1 %22435, label %22436, label %22437

22436:                                            ; preds = %22431
  br label %22438

22437:                                            ; preds = %22431, %22426, %22423
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.24, i32 noundef 482, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

22438:                                            ; preds = %22436
  %22439 = load ptr, ptr %11, align 8, !tbaa !5
  %22440 = load double, ptr %22439, align 8, !tbaa !11
  store double %22440, ptr %644, align 8, !tbaa !11
  %22441 = load ptr, ptr %12, align 8, !tbaa !5
  %22442 = load double, ptr %22441, align 8, !tbaa !11
  store double %22442, ptr %645, align 8, !tbaa !11
  br label %22443

22443:                                            ; preds = %22438, %22419, %22414
  %22444 = load i32, ptr %8, align 4, !tbaa !9
  %22445 = icmp ule i32 6, %22444
  br i1 %22445, label %22446, label %22669

22446:                                            ; preds = %22443
  %22447 = load double, ptr %644, align 8, !tbaa !11
  %22448 = load double, ptr %645, align 8, !tbaa !11
  %22449 = fcmp olt double %22447, %22448
  br i1 %22449, label %22450, label %22669

22450:                                            ; preds = %22446
  %22451 = load i32, ptr %8, align 4, !tbaa !9
  %22452 = icmp ule i32 15, %22451
  br i1 %22452, label %22453, label %22493

22453:                                            ; preds = %22450
  call void @llvm.lifetime.start.p0(i64 8, ptr %646) #3
  %22454 = load double, ptr %644, align 8, !tbaa !11
  %22455 = fcmp olt double 0.000000e+00, %22454
  br i1 %22455, label %22456, label %22458

22456:                                            ; preds = %22453
  %22457 = load double, ptr %644, align 8, !tbaa !11
  br label %22459

22458:                                            ; preds = %22453
  br label %22459

22459:                                            ; preds = %22458, %22456
  %22460 = phi double [ %22457, %22456 ], [ 0.000000e+00, %22458 ]
  store double %22460, ptr %646, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %647) #3
  %22461 = load double, ptr %645, align 8, !tbaa !11
  %22462 = fcmp olt double 0.000000e+00, %22461
  br i1 %22462, label %22463, label %22465

22463:                                            ; preds = %22459
  %22464 = load double, ptr %645, align 8, !tbaa !11
  br label %22466

22465:                                            ; preds = %22459
  br label %22466

22466:                                            ; preds = %22465, %22463
  %22467 = phi double [ %22464, %22463 ], [ 0.000000e+00, %22465 ]
  store double %22467, ptr %647, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %648) #3
  %22468 = load double, ptr %646, align 8, !tbaa !11
  %22469 = load double, ptr %647, align 8, !tbaa !11
  %22470 = fcmp olt double %22468, %22469
  br i1 %22470, label %22471, label %22479

22471:                                            ; preds = %22466
  %22472 = load double, ptr %645, align 8, !tbaa !11
  %22473 = load double, ptr %644, align 8, !tbaa !11
  %22474 = fsub double %22472, %22473
  %22475 = load double, ptr %647, align 8, !tbaa !11
  %22476 = load double, ptr %646, align 8, !tbaa !11
  %22477 = fsub double %22475, %22476
  %22478 = fdiv double %22474, %22477
  br label %22480

22479:                                            ; preds = %22466
  br label %22480

22480:                                            ; preds = %22479, %22471
  %22481 = phi double [ %22478, %22471 ], [ 1.000000e+00, %22479 ]
  store double %22481, ptr %648, align 8, !tbaa !11
  %22482 = load double, ptr %648, align 8, !tbaa !11
  %22483 = load double, ptr %643, align 8, !tbaa !11
  %22484 = fcmp olt double 0.000000e+00, %22483
  br i1 %22484, label %22485, label %22487

22485:                                            ; preds = %22480
  %22486 = load double, ptr %643, align 8, !tbaa !11
  br label %22488

22487:                                            ; preds = %22480
  br label %22488

22488:                                            ; preds = %22487, %22485
  %22489 = phi double [ %22486, %22485 ], [ 0.000000e+00, %22487 ]
  %22490 = fmul double %22482, %22489
  store double %22490, ptr %643, align 8, !tbaa !11
  %22491 = load double, ptr %646, align 8, !tbaa !11
  store double %22491, ptr %644, align 8, !tbaa !11
  %22492 = load double, ptr %647, align 8, !tbaa !11
  store double %22492, ptr %645, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %648) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %647) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %646) #3
  br label %22549

22493:                                            ; preds = %22450
  %22494 = load i32, ptr %8, align 4, !tbaa !9
  %22495 = icmp ugt i32 6, %22494
  br i1 %22495, label %22524, label %22496

22496:                                            ; preds = %22493
  %22497 = load i32, ptr %8, align 4, !tbaa !9
  %22498 = icmp ugt i32 15, %22497
  br i1 %22498, label %22499, label %22510

22499:                                            ; preds = %22496
  %22500 = load i32, ptr %9, align 4, !tbaa !9
  %22501 = icmp ugt i32 15, %22500
  br i1 %22501, label %22502, label %22507

22502:                                            ; preds = %22499
  %22503 = load i32, ptr %9, align 4, !tbaa !9
  %22504 = load i32, ptr %8, align 4, !tbaa !9
  %22505 = icmp ugt i32 %22503, %22504
  %22506 = zext i1 %22505 to i32
  br label %22508

22507:                                            ; preds = %22499
  br label %22508

22508:                                            ; preds = %22507, %22502
  %22509 = phi i32 [ %22506, %22502 ], [ 0, %22507 ]
  br label %22521

22510:                                            ; preds = %22496
  %22511 = load i32, ptr %9, align 4, !tbaa !9
  %22512 = icmp ugt i32 15, %22511
  br i1 %22512, label %22513, label %22514

22513:                                            ; preds = %22510
  br label %22519

22514:                                            ; preds = %22510
  %22515 = load i32, ptr %9, align 4, !tbaa !9
  %22516 = load i32, ptr %8, align 4, !tbaa !9
  %22517 = icmp ugt i32 %22515, %22516
  %22518 = zext i1 %22517 to i32
  br label %22519

22519:                                            ; preds = %22514, %22513
  %22520 = phi i32 [ 0, %22513 ], [ %22518, %22514 ]
  br label %22521

22521:                                            ; preds = %22519, %22508
  %22522 = phi i32 [ %22509, %22508 ], [ %22520, %22519 ]
  %22523 = icmp ne i32 %22522, 0
  br label %22524

22524:                                            ; preds = %22521, %22493
  %22525 = phi i1 [ true, %22493 ], [ %22523, %22521 ]
  %22526 = zext i1 %22525 to i32
  %22527 = icmp eq i32 0, %22526
  br i1 %22527, label %22528, label %22548

22528:                                            ; preds = %22524
  %22529 = load double, ptr %644, align 8, !tbaa !11
  %22530 = fcmp ogt double 0.000000e+00, %22529
  br i1 %22530, label %22531, label %22548

22531:                                            ; preds = %22528
  %22532 = load double, ptr %645, align 8, !tbaa !11
  %22533 = fcmp olt double 0.000000e+00, %22532
  br i1 %22533, label %22534, label %22548

22534:                                            ; preds = %22531
  %22535 = load double, ptr %644, align 8, !tbaa !11
  %22536 = fneg double %22535
  %22537 = load double, ptr %645, align 8, !tbaa !11
  %22538 = fcmp olt double %22536, %22537
  br i1 %22538, label %22539, label %22541

22539:                                            ; preds = %22534
  %22540 = load double, ptr %645, align 8, !tbaa !11
  br label %22544

22541:                                            ; preds = %22534
  %22542 = load double, ptr %644, align 8, !tbaa !11
  %22543 = fneg double %22542
  br label %22544

22544:                                            ; preds = %22541, %22539
  %22545 = phi double [ %22540, %22539 ], [ %22543, %22541 ]
  store double %22545, ptr %645, align 8, !tbaa !11
  %22546 = load double, ptr %645, align 8, !tbaa !11
  %22547 = fneg double %22546
  store double %22547, ptr %644, align 8, !tbaa !11
  br label %22548

22548:                                            ; preds = %22544, %22531, %22528, %22524
  br label %22549

22549:                                            ; preds = %22548, %22488
  call void @llvm.lifetime.start.p0(i64 8, ptr %649) #3
  %22550 = load double, ptr %644, align 8, !tbaa !11
  %22551 = fcmp ole double 0.000000e+00, %22550
  %22552 = zext i1 %22551 to i64
  %22553 = select i1 %22551, double 0.000000e+00, double 0xC3E0000000000000
  store double %22553, ptr %649, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %650) #3
  %22554 = load double, ptr %645, align 8, !tbaa !11
  %22555 = fcmp ole double 0.000000e+00, %22554
  %22556 = zext i1 %22555 to i64
  %22557 = select i1 %22555, double 0x43E0000000000000, double 0.000000e+00
  store double %22557, ptr %650, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %651) #3
  %22558 = load double, ptr %643, align 8, !tbaa !11
  %22559 = load double, ptr %644, align 8, !tbaa !11
  %22560 = fsub double %22558, %22559
  %22561 = load double, ptr %650, align 8, !tbaa !11
  %22562 = load double, ptr %649, align 8, !tbaa !11
  %22563 = fsub double %22561, %22562
  %22564 = fmul double %22560, %22563
  %22565 = load double, ptr %645, align 8, !tbaa !11
  %22566 = load double, ptr %644, align 8, !tbaa !11
  %22567 = fsub double %22565, %22566
  %22568 = fdiv double %22564, %22567
  %22569 = load double, ptr %649, align 8, !tbaa !11
  %22570 = fadd double %22568, %22569
  store double %22570, ptr %651, align 8, !tbaa !11
  %22571 = load double, ptr %649, align 8, !tbaa !11
  %22572 = load double, ptr %651, align 8, !tbaa !11
  %22573 = fcmp ole double 0.000000e+00, %22572
  br i1 %22573, label %22574, label %22577

22574:                                            ; preds = %22549
  %22575 = load double, ptr %651, align 8, !tbaa !11
  %22576 = fadd double %22575, 5.000000e-01
  br label %22580

22577:                                            ; preds = %22549
  %22578 = load double, ptr %651, align 8, !tbaa !11
  %22579 = fsub double %22578, 5.000000e-01
  br label %22580

22580:                                            ; preds = %22577, %22574
  %22581 = phi double [ %22576, %22574 ], [ %22579, %22577 ]
  %22582 = fcmp olt double %22571, %22581
  br i1 %22582, label %22583, label %22637

22583:                                            ; preds = %22580
  %22584 = load double, ptr %651, align 8, !tbaa !11
  %22585 = fcmp ole double 0.000000e+00, %22584
  br i1 %22585, label %22586, label %22589

22586:                                            ; preds = %22583
  %22587 = load double, ptr %651, align 8, !tbaa !11
  %22588 = fadd double %22587, 5.000000e-01
  br label %22592

22589:                                            ; preds = %22583
  %22590 = load double, ptr %651, align 8, !tbaa !11
  %22591 = fsub double %22590, 5.000000e-01
  br label %22592

22592:                                            ; preds = %22589, %22586
  %22593 = phi double [ %22588, %22586 ], [ %22591, %22589 ]
  %22594 = load double, ptr %650, align 8, !tbaa !11
  %22595 = fcmp ole double %22593, %22594
  br i1 %22595, label %22596, label %22607

22596:                                            ; preds = %22592
  %22597 = load double, ptr %651, align 8, !tbaa !11
  %22598 = fcmp ole double 0.000000e+00, %22597
  br i1 %22598, label %22599, label %22602

22599:                                            ; preds = %22596
  %22600 = load double, ptr %651, align 8, !tbaa !11
  %22601 = fadd double %22600, 5.000000e-01
  br label %22605

22602:                                            ; preds = %22596
  %22603 = load double, ptr %651, align 8, !tbaa !11
  %22604 = fsub double %22603, 5.000000e-01
  br label %22605

22605:                                            ; preds = %22602, %22599
  %22606 = phi double [ %22601, %22599 ], [ %22604, %22602 ]
  br label %22635

22607:                                            ; preds = %22592
  %22608 = load double, ptr %651, align 8, !tbaa !11
  %22609 = fcmp ole double 0.000000e+00, %22608
  br i1 %22609, label %22610, label %22613

22610:                                            ; preds = %22607
  %22611 = load double, ptr %651, align 8, !tbaa !11
  %22612 = fadd double %22611, 5.000000e-01
  br label %22616

22613:                                            ; preds = %22607
  %22614 = load double, ptr %651, align 8, !tbaa !11
  %22615 = fsub double %22614, 5.000000e-01
  br label %22616

22616:                                            ; preds = %22613, %22610
  %22617 = phi double [ %22612, %22610 ], [ %22615, %22613 ]
  %22618 = load double, ptr %650, align 8, !tbaa !11
  %22619 = fcmp olt double %22617, %22618
  br i1 %22619, label %22620, label %22631

22620:                                            ; preds = %22616
  %22621 = load double, ptr %651, align 8, !tbaa !11
  %22622 = fcmp ole double 0.000000e+00, %22621
  br i1 %22622, label %22623, label %22626

22623:                                            ; preds = %22620
  %22624 = load double, ptr %651, align 8, !tbaa !11
  %22625 = fadd double %22624, 5.000000e-01
  br label %22629

22626:                                            ; preds = %22620
  %22627 = load double, ptr %651, align 8, !tbaa !11
  %22628 = fsub double %22627, 5.000000e-01
  br label %22629

22629:                                            ; preds = %22626, %22623
  %22630 = phi double [ %22625, %22623 ], [ %22628, %22626 ]
  br label %22633

22631:                                            ; preds = %22616
  %22632 = load double, ptr %650, align 8, !tbaa !11
  br label %22633

22633:                                            ; preds = %22631, %22629
  %22634 = phi double [ %22630, %22629 ], [ %22632, %22631 ]
  br label %22635

22635:                                            ; preds = %22633, %22605
  %22636 = phi double [ %22606, %22605 ], [ %22634, %22633 ]
  br label %22665

22637:                                            ; preds = %22580
  %22638 = load double, ptr %649, align 8, !tbaa !11
  %22639 = load double, ptr %651, align 8, !tbaa !11
  %22640 = fcmp ole double 0.000000e+00, %22639
  br i1 %22640, label %22641, label %22644

22641:                                            ; preds = %22637
  %22642 = load double, ptr %651, align 8, !tbaa !11
  %22643 = fadd double %22642, 5.000000e-01
  br label %22647

22644:                                            ; preds = %22637
  %22645 = load double, ptr %651, align 8, !tbaa !11
  %22646 = fsub double %22645, 5.000000e-01
  br label %22647

22647:                                            ; preds = %22644, %22641
  %22648 = phi double [ %22643, %22641 ], [ %22646, %22644 ]
  %22649 = fcmp olt double %22638, %22648
  br i1 %22649, label %22650, label %22661

22650:                                            ; preds = %22647
  %22651 = load double, ptr %651, align 8, !tbaa !11
  %22652 = fcmp ole double 0.000000e+00, %22651
  br i1 %22652, label %22653, label %22656

22653:                                            ; preds = %22650
  %22654 = load double, ptr %651, align 8, !tbaa !11
  %22655 = fadd double %22654, 5.000000e-01
  br label %22659

22656:                                            ; preds = %22650
  %22657 = load double, ptr %651, align 8, !tbaa !11
  %22658 = fsub double %22657, 5.000000e-01
  br label %22659

22659:                                            ; preds = %22656, %22653
  %22660 = phi double [ %22655, %22653 ], [ %22658, %22656 ]
  br label %22663

22661:                                            ; preds = %22647
  %22662 = load double, ptr %649, align 8, !tbaa !11
  br label %22663

22663:                                            ; preds = %22661, %22659
  %22664 = phi double [ %22660, %22659 ], [ %22662, %22661 ]
  br label %22665

22665:                                            ; preds = %22663, %22635
  %22666 = phi double [ %22636, %22635 ], [ %22664, %22663 ]
  %22667 = fptosi double %22666 to i64
  %22668 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %22667, ptr %22668, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %651) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %650) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %649) #3
  br label %22795

22669:                                            ; preds = %22446, %22443
  %22670 = load i32, ptr %8, align 4, !tbaa !9
  %22671 = icmp ugt i32 6, %22670
  br i1 %22671, label %22700, label %22672

22672:                                            ; preds = %22669
  %22673 = load i32, ptr %8, align 4, !tbaa !9
  %22674 = icmp ugt i32 15, %22673
  br i1 %22674, label %22675, label %22686

22675:                                            ; preds = %22672
  %22676 = load i32, ptr %9, align 4, !tbaa !9
  %22677 = icmp ugt i32 15, %22676
  br i1 %22677, label %22678, label %22683

22678:                                            ; preds = %22675
  %22679 = load i32, ptr %9, align 4, !tbaa !9
  %22680 = load i32, ptr %8, align 4, !tbaa !9
  %22681 = icmp ugt i32 %22679, %22680
  %22682 = zext i1 %22681 to i32
  br label %22684

22683:                                            ; preds = %22675
  br label %22684

22684:                                            ; preds = %22683, %22678
  %22685 = phi i32 [ %22682, %22678 ], [ 0, %22683 ]
  br label %22697

22686:                                            ; preds = %22672
  %22687 = load i32, ptr %9, align 4, !tbaa !9
  %22688 = icmp ugt i32 15, %22687
  br i1 %22688, label %22689, label %22690

22689:                                            ; preds = %22686
  br label %22695

22690:                                            ; preds = %22686
  %22691 = load i32, ptr %9, align 4, !tbaa !9
  %22692 = load i32, ptr %8, align 4, !tbaa !9
  %22693 = icmp ugt i32 %22691, %22692
  %22694 = zext i1 %22693 to i32
  br label %22695

22695:                                            ; preds = %22690, %22689
  %22696 = phi i32 [ 0, %22689 ], [ %22694, %22690 ]
  br label %22697

22697:                                            ; preds = %22695, %22684
  %22698 = phi i32 [ %22685, %22684 ], [ %22696, %22695 ]
  %22699 = icmp ne i32 %22698, 0
  br label %22700

22700:                                            ; preds = %22697, %22669
  %22701 = phi i1 [ true, %22669 ], [ %22699, %22697 ]
  %22702 = zext i1 %22701 to i32
  %22703 = icmp eq i32 0, %22702
  br i1 %22703, label %22704, label %22781

22704:                                            ; preds = %22700
  %22705 = load double, ptr %643, align 8, !tbaa !11
  %22706 = fcmp ole double 0.000000e+00, %22705
  br i1 %22706, label %22707, label %22742

22707:                                            ; preds = %22704
  %22708 = load double, ptr %643, align 8, !tbaa !11
  %22709 = fadd double %22708, 5.000000e-01
  %22710 = fcmp olt double 0xC3E0000000000000, %22709
  br i1 %22710, label %22711, label %22730

22711:                                            ; preds = %22707
  %22712 = load double, ptr %643, align 8, !tbaa !11
  %22713 = fadd double %22712, 5.000000e-01
  %22714 = fcmp ole double %22713, 0x43E0000000000000
  br i1 %22714, label %22715, label %22718

22715:                                            ; preds = %22711
  %22716 = load double, ptr %643, align 8, !tbaa !11
  %22717 = fadd double %22716, 5.000000e-01
  br label %22728

22718:                                            ; preds = %22711
  %22719 = load double, ptr %643, align 8, !tbaa !11
  %22720 = fadd double %22719, 5.000000e-01
  %22721 = fcmp olt double %22720, 0x43E0000000000000
  br i1 %22721, label %22722, label %22725

22722:                                            ; preds = %22718
  %22723 = load double, ptr %643, align 8, !tbaa !11
  %22724 = fadd double %22723, 5.000000e-01
  br label %22726

22725:                                            ; preds = %22718
  br label %22726

22726:                                            ; preds = %22725, %22722
  %22727 = phi double [ %22724, %22722 ], [ 0x43E0000000000000, %22725 ]
  br label %22728

22728:                                            ; preds = %22726, %22715
  %22729 = phi double [ %22717, %22715 ], [ %22727, %22726 ]
  br label %22740

22730:                                            ; preds = %22707
  %22731 = load double, ptr %643, align 8, !tbaa !11
  %22732 = fadd double %22731, 5.000000e-01
  %22733 = fcmp olt double 0xC3E0000000000000, %22732
  br i1 %22733, label %22734, label %22737

22734:                                            ; preds = %22730
  %22735 = load double, ptr %643, align 8, !tbaa !11
  %22736 = fadd double %22735, 5.000000e-01
  br label %22738

22737:                                            ; preds = %22730
  br label %22738

22738:                                            ; preds = %22737, %22734
  %22739 = phi double [ %22736, %22734 ], [ 0xC3E0000000000000, %22737 ]
  br label %22740

22740:                                            ; preds = %22738, %22728
  %22741 = phi double [ %22729, %22728 ], [ %22739, %22738 ]
  br label %22777

22742:                                            ; preds = %22704
  %22743 = load double, ptr %643, align 8, !tbaa !11
  %22744 = fsub double %22743, 5.000000e-01
  %22745 = fcmp olt double 0xC3E0000000000000, %22744
  br i1 %22745, label %22746, label %22765

22746:                                            ; preds = %22742
  %22747 = load double, ptr %643, align 8, !tbaa !11
  %22748 = fsub double %22747, 5.000000e-01
  %22749 = fcmp ole double %22748, 0x43E0000000000000
  br i1 %22749, label %22750, label %22753

22750:                                            ; preds = %22746
  %22751 = load double, ptr %643, align 8, !tbaa !11
  %22752 = fsub double %22751, 5.000000e-01
  br label %22763

22753:                                            ; preds = %22746
  %22754 = load double, ptr %643, align 8, !tbaa !11
  %22755 = fsub double %22754, 5.000000e-01
  %22756 = fcmp olt double %22755, 0x43E0000000000000
  br i1 %22756, label %22757, label %22760

22757:                                            ; preds = %22753
  %22758 = load double, ptr %643, align 8, !tbaa !11
  %22759 = fsub double %22758, 5.000000e-01
  br label %22761

22760:                                            ; preds = %22753
  br label %22761

22761:                                            ; preds = %22760, %22757
  %22762 = phi double [ %22759, %22757 ], [ 0x43E0000000000000, %22760 ]
  br label %22763

22763:                                            ; preds = %22761, %22750
  %22764 = phi double [ %22752, %22750 ], [ %22762, %22761 ]
  br label %22775

22765:                                            ; preds = %22742
  %22766 = load double, ptr %643, align 8, !tbaa !11
  %22767 = fsub double %22766, 5.000000e-01
  %22768 = fcmp olt double 0xC3E0000000000000, %22767
  br i1 %22768, label %22769, label %22772

22769:                                            ; preds = %22765
  %22770 = load double, ptr %643, align 8, !tbaa !11
  %22771 = fsub double %22770, 5.000000e-01
  br label %22773

22772:                                            ; preds = %22765
  br label %22773

22773:                                            ; preds = %22772, %22769
  %22774 = phi double [ %22771, %22769 ], [ 0xC3E0000000000000, %22772 ]
  br label %22775

22775:                                            ; preds = %22773, %22763
  %22776 = phi double [ %22764, %22763 ], [ %22774, %22773 ]
  br label %22777

22777:                                            ; preds = %22775, %22740
  %22778 = phi double [ %22741, %22740 ], [ %22776, %22775 ]
  %22779 = fptosi double %22778 to i64
  %22780 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %22779, ptr %22780, align 8, !tbaa !13
  br label %22794

22781:                                            ; preds = %22700
  %22782 = load double, ptr %643, align 8, !tbaa !11
  %22783 = fcmp ole double 0.000000e+00, %22782
  br i1 %22783, label %22784, label %22787

22784:                                            ; preds = %22781
  %22785 = load double, ptr %643, align 8, !tbaa !11
  %22786 = fadd double %22785, 5.000000e-01
  br label %22790

22787:                                            ; preds = %22781
  %22788 = load double, ptr %643, align 8, !tbaa !11
  %22789 = fsub double %22788, 5.000000e-01
  br label %22790

22790:                                            ; preds = %22787, %22784
  %22791 = phi double [ %22786, %22784 ], [ %22789, %22787 ]
  %22792 = fptosi double %22791 to i64
  %22793 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %22792, ptr %22793, align 8, !tbaa !13
  br label %22794

22794:                                            ; preds = %22790, %22777
  br label %22795

22795:                                            ; preds = %22794, %22665
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %645) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %644) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %643) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %642) #3
  br label %22796

22796:                                            ; preds = %22795
  br label %22797

22797:                                            ; preds = %22796
  br label %23208

22798:                                            ; preds = %19585
  br label %22799

22799:                                            ; preds = %22798
  call void @llvm.lifetime.start.p0(i64 8, ptr %652) #3
  store double 5.000000e-01, ptr %652, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %653) #3
  %22800 = load ptr, ptr %10, align 8, !tbaa !5
  %22801 = load float, ptr %22800, align 4, !tbaa !18
  store float %22801, ptr %653, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %654) #3
  store double 0.000000e+00, ptr %654, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %655) #3
  store double 0.000000e+00, ptr %655, align 8, !tbaa !11
  %22802 = load ptr, ptr %11, align 8, !tbaa !5
  %22803 = icmp ne ptr null, %22802
  br i1 %22803, label %22804, label %22830

22804:                                            ; preds = %22799
  %22805 = load float, ptr %653, align 4, !tbaa !18
  %22806 = load float, ptr %653, align 4, !tbaa !18
  %22807 = fcmp oeq float %22805, %22806
  br i1 %22807, label %22808, label %22830

22808:                                            ; preds = %22804
  %22809 = load ptr, ptr %12, align 8, !tbaa !5
  %22810 = icmp ne ptr null, %22809
  br i1 %22810, label %22811, label %22822

22811:                                            ; preds = %22808
  %22812 = load ptr, ptr %11, align 8, !tbaa !5
  %22813 = load float, ptr %22812, align 4, !tbaa !18
  %22814 = load float, ptr %653, align 4, !tbaa !18
  %22815 = fcmp ole float %22813, %22814
  br i1 %22815, label %22816, label %22822

22816:                                            ; preds = %22811
  %22817 = load float, ptr %653, align 4, !tbaa !18
  %22818 = load ptr, ptr %12, align 8, !tbaa !5
  %22819 = load float, ptr %22818, align 4, !tbaa !18
  %22820 = fcmp ole float %22817, %22819
  br i1 %22820, label %22821, label %22822

22821:                                            ; preds = %22816
  br label %22823

22822:                                            ; preds = %22816, %22811, %22808
  call void @__assert_fail(ptr noundef @.str.51, ptr noundef @.str.24, i32 noundef 482, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

22823:                                            ; preds = %22821
  %22824 = load ptr, ptr %11, align 8, !tbaa !5
  %22825 = load float, ptr %22824, align 4, !tbaa !18
  %22826 = fpext float %22825 to double
  store double %22826, ptr %654, align 8, !tbaa !11
  %22827 = load ptr, ptr %12, align 8, !tbaa !5
  %22828 = load float, ptr %22827, align 4, !tbaa !18
  %22829 = fpext float %22828 to double
  store double %22829, ptr %655, align 8, !tbaa !11
  br label %22830

22830:                                            ; preds = %22823, %22804, %22799
  %22831 = load i32, ptr %8, align 4, !tbaa !9
  %22832 = icmp ule i32 6, %22831
  br i1 %22832, label %22833, label %23059

22833:                                            ; preds = %22830
  %22834 = load double, ptr %654, align 8, !tbaa !11
  %22835 = load double, ptr %655, align 8, !tbaa !11
  %22836 = fcmp olt double %22834, %22835
  br i1 %22836, label %22837, label %23059

22837:                                            ; preds = %22833
  %22838 = load i32, ptr %8, align 4, !tbaa !9
  %22839 = icmp ule i32 15, %22838
  br i1 %22839, label %22840, label %22882

22840:                                            ; preds = %22837
  call void @llvm.lifetime.start.p0(i64 8, ptr %656) #3
  %22841 = load double, ptr %654, align 8, !tbaa !11
  %22842 = fcmp olt double 0.000000e+00, %22841
  br i1 %22842, label %22843, label %22845

22843:                                            ; preds = %22840
  %22844 = load double, ptr %654, align 8, !tbaa !11
  br label %22846

22845:                                            ; preds = %22840
  br label %22846

22846:                                            ; preds = %22845, %22843
  %22847 = phi double [ %22844, %22843 ], [ 0.000000e+00, %22845 ]
  store double %22847, ptr %656, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %657) #3
  %22848 = load double, ptr %655, align 8, !tbaa !11
  %22849 = fcmp olt double 0.000000e+00, %22848
  br i1 %22849, label %22850, label %22852

22850:                                            ; preds = %22846
  %22851 = load double, ptr %655, align 8, !tbaa !11
  br label %22853

22852:                                            ; preds = %22846
  br label %22853

22853:                                            ; preds = %22852, %22850
  %22854 = phi double [ %22851, %22850 ], [ 0.000000e+00, %22852 ]
  store double %22854, ptr %657, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %658) #3
  %22855 = load double, ptr %656, align 8, !tbaa !11
  %22856 = load double, ptr %657, align 8, !tbaa !11
  %22857 = fcmp olt double %22855, %22856
  br i1 %22857, label %22858, label %22866

22858:                                            ; preds = %22853
  %22859 = load double, ptr %655, align 8, !tbaa !11
  %22860 = load double, ptr %654, align 8, !tbaa !11
  %22861 = fsub double %22859, %22860
  %22862 = load double, ptr %657, align 8, !tbaa !11
  %22863 = load double, ptr %656, align 8, !tbaa !11
  %22864 = fsub double %22862, %22863
  %22865 = fdiv double %22861, %22864
  br label %22867

22866:                                            ; preds = %22853
  br label %22867

22867:                                            ; preds = %22866, %22858
  %22868 = phi double [ %22865, %22858 ], [ 1.000000e+00, %22866 ]
  store double %22868, ptr %658, align 8, !tbaa !11
  %22869 = load double, ptr %658, align 8, !tbaa !11
  %22870 = load float, ptr %653, align 4, !tbaa !18
  %22871 = fcmp olt float 0.000000e+00, %22870
  br i1 %22871, label %22872, label %22874

22872:                                            ; preds = %22867
  %22873 = load float, ptr %653, align 4, !tbaa !18
  br label %22875

22874:                                            ; preds = %22867
  br label %22875

22875:                                            ; preds = %22874, %22872
  %22876 = phi float [ %22873, %22872 ], [ 0.000000e+00, %22874 ]
  %22877 = fpext float %22876 to double
  %22878 = fmul double %22869, %22877
  %22879 = fptrunc double %22878 to float
  store float %22879, ptr %653, align 4, !tbaa !18
  %22880 = load double, ptr %656, align 8, !tbaa !11
  store double %22880, ptr %654, align 8, !tbaa !11
  %22881 = load double, ptr %657, align 8, !tbaa !11
  store double %22881, ptr %655, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %658) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %657) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %656) #3
  br label %22938

22882:                                            ; preds = %22837
  %22883 = load i32, ptr %8, align 4, !tbaa !9
  %22884 = icmp ugt i32 6, %22883
  br i1 %22884, label %22913, label %22885

22885:                                            ; preds = %22882
  %22886 = load i32, ptr %8, align 4, !tbaa !9
  %22887 = icmp ugt i32 15, %22886
  br i1 %22887, label %22888, label %22899

22888:                                            ; preds = %22885
  %22889 = load i32, ptr %9, align 4, !tbaa !9
  %22890 = icmp ugt i32 15, %22889
  br i1 %22890, label %22891, label %22896

22891:                                            ; preds = %22888
  %22892 = load i32, ptr %9, align 4, !tbaa !9
  %22893 = load i32, ptr %8, align 4, !tbaa !9
  %22894 = icmp ugt i32 %22892, %22893
  %22895 = zext i1 %22894 to i32
  br label %22897

22896:                                            ; preds = %22888
  br label %22897

22897:                                            ; preds = %22896, %22891
  %22898 = phi i32 [ %22895, %22891 ], [ 0, %22896 ]
  br label %22910

22899:                                            ; preds = %22885
  %22900 = load i32, ptr %9, align 4, !tbaa !9
  %22901 = icmp ugt i32 15, %22900
  br i1 %22901, label %22902, label %22903

22902:                                            ; preds = %22899
  br label %22908

22903:                                            ; preds = %22899
  %22904 = load i32, ptr %9, align 4, !tbaa !9
  %22905 = load i32, ptr %8, align 4, !tbaa !9
  %22906 = icmp ugt i32 %22904, %22905
  %22907 = zext i1 %22906 to i32
  br label %22908

22908:                                            ; preds = %22903, %22902
  %22909 = phi i32 [ 0, %22902 ], [ %22907, %22903 ]
  br label %22910

22910:                                            ; preds = %22908, %22897
  %22911 = phi i32 [ %22898, %22897 ], [ %22909, %22908 ]
  %22912 = icmp ne i32 %22911, 0
  br label %22913

22913:                                            ; preds = %22910, %22882
  %22914 = phi i1 [ true, %22882 ], [ %22912, %22910 ]
  %22915 = zext i1 %22914 to i32
  %22916 = icmp eq i32 0, %22915
  br i1 %22916, label %22917, label %22937

22917:                                            ; preds = %22913
  %22918 = load double, ptr %654, align 8, !tbaa !11
  %22919 = fcmp ogt double 0.000000e+00, %22918
  br i1 %22919, label %22920, label %22937

22920:                                            ; preds = %22917
  %22921 = load double, ptr %655, align 8, !tbaa !11
  %22922 = fcmp olt double 0.000000e+00, %22921
  br i1 %22922, label %22923, label %22937

22923:                                            ; preds = %22920
  %22924 = load double, ptr %654, align 8, !tbaa !11
  %22925 = fneg double %22924
  %22926 = load double, ptr %655, align 8, !tbaa !11
  %22927 = fcmp olt double %22925, %22926
  br i1 %22927, label %22928, label %22930

22928:                                            ; preds = %22923
  %22929 = load double, ptr %655, align 8, !tbaa !11
  br label %22933

22930:                                            ; preds = %22923
  %22931 = load double, ptr %654, align 8, !tbaa !11
  %22932 = fneg double %22931
  br label %22933

22933:                                            ; preds = %22930, %22928
  %22934 = phi double [ %22929, %22928 ], [ %22932, %22930 ]
  store double %22934, ptr %655, align 8, !tbaa !11
  %22935 = load double, ptr %655, align 8, !tbaa !11
  %22936 = fneg double %22935
  store double %22936, ptr %654, align 8, !tbaa !11
  br label %22937

22937:                                            ; preds = %22933, %22920, %22917, %22913
  br label %22938

22938:                                            ; preds = %22937, %22875
  call void @llvm.lifetime.start.p0(i64 8, ptr %659) #3
  %22939 = load double, ptr %654, align 8, !tbaa !11
  %22940 = fcmp ole double 0.000000e+00, %22939
  %22941 = zext i1 %22940 to i64
  %22942 = select i1 %22940, double 0.000000e+00, double 0xC3E0000000000000
  store double %22942, ptr %659, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %660) #3
  %22943 = load double, ptr %655, align 8, !tbaa !11
  %22944 = fcmp ole double 0.000000e+00, %22943
  %22945 = zext i1 %22944 to i64
  %22946 = select i1 %22944, double 0x43E0000000000000, double 0.000000e+00
  store double %22946, ptr %660, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %661) #3
  %22947 = load float, ptr %653, align 4, !tbaa !18
  %22948 = fpext float %22947 to double
  %22949 = load double, ptr %654, align 8, !tbaa !11
  %22950 = fsub double %22948, %22949
  %22951 = load double, ptr %660, align 8, !tbaa !11
  %22952 = load double, ptr %659, align 8, !tbaa !11
  %22953 = fsub double %22951, %22952
  %22954 = fmul double %22950, %22953
  %22955 = load double, ptr %655, align 8, !tbaa !11
  %22956 = load double, ptr %654, align 8, !tbaa !11
  %22957 = fsub double %22955, %22956
  %22958 = fdiv double %22954, %22957
  %22959 = load double, ptr %659, align 8, !tbaa !11
  %22960 = fadd double %22958, %22959
  store double %22960, ptr %661, align 8, !tbaa !11
  %22961 = load double, ptr %659, align 8, !tbaa !11
  %22962 = load double, ptr %661, align 8, !tbaa !11
  %22963 = fcmp ole double 0.000000e+00, %22962
  br i1 %22963, label %22964, label %22967

22964:                                            ; preds = %22938
  %22965 = load double, ptr %661, align 8, !tbaa !11
  %22966 = fadd double %22965, 5.000000e-01
  br label %22970

22967:                                            ; preds = %22938
  %22968 = load double, ptr %661, align 8, !tbaa !11
  %22969 = fsub double %22968, 5.000000e-01
  br label %22970

22970:                                            ; preds = %22967, %22964
  %22971 = phi double [ %22966, %22964 ], [ %22969, %22967 ]
  %22972 = fcmp olt double %22961, %22971
  br i1 %22972, label %22973, label %23027

22973:                                            ; preds = %22970
  %22974 = load double, ptr %661, align 8, !tbaa !11
  %22975 = fcmp ole double 0.000000e+00, %22974
  br i1 %22975, label %22976, label %22979

22976:                                            ; preds = %22973
  %22977 = load double, ptr %661, align 8, !tbaa !11
  %22978 = fadd double %22977, 5.000000e-01
  br label %22982

22979:                                            ; preds = %22973
  %22980 = load double, ptr %661, align 8, !tbaa !11
  %22981 = fsub double %22980, 5.000000e-01
  br label %22982

22982:                                            ; preds = %22979, %22976
  %22983 = phi double [ %22978, %22976 ], [ %22981, %22979 ]
  %22984 = load double, ptr %660, align 8, !tbaa !11
  %22985 = fcmp ole double %22983, %22984
  br i1 %22985, label %22986, label %22997

22986:                                            ; preds = %22982
  %22987 = load double, ptr %661, align 8, !tbaa !11
  %22988 = fcmp ole double 0.000000e+00, %22987
  br i1 %22988, label %22989, label %22992

22989:                                            ; preds = %22986
  %22990 = load double, ptr %661, align 8, !tbaa !11
  %22991 = fadd double %22990, 5.000000e-01
  br label %22995

22992:                                            ; preds = %22986
  %22993 = load double, ptr %661, align 8, !tbaa !11
  %22994 = fsub double %22993, 5.000000e-01
  br label %22995

22995:                                            ; preds = %22992, %22989
  %22996 = phi double [ %22991, %22989 ], [ %22994, %22992 ]
  br label %23025

22997:                                            ; preds = %22982
  %22998 = load double, ptr %661, align 8, !tbaa !11
  %22999 = fcmp ole double 0.000000e+00, %22998
  br i1 %22999, label %23000, label %23003

23000:                                            ; preds = %22997
  %23001 = load double, ptr %661, align 8, !tbaa !11
  %23002 = fadd double %23001, 5.000000e-01
  br label %23006

23003:                                            ; preds = %22997
  %23004 = load double, ptr %661, align 8, !tbaa !11
  %23005 = fsub double %23004, 5.000000e-01
  br label %23006

23006:                                            ; preds = %23003, %23000
  %23007 = phi double [ %23002, %23000 ], [ %23005, %23003 ]
  %23008 = load double, ptr %660, align 8, !tbaa !11
  %23009 = fcmp olt double %23007, %23008
  br i1 %23009, label %23010, label %23021

23010:                                            ; preds = %23006
  %23011 = load double, ptr %661, align 8, !tbaa !11
  %23012 = fcmp ole double 0.000000e+00, %23011
  br i1 %23012, label %23013, label %23016

23013:                                            ; preds = %23010
  %23014 = load double, ptr %661, align 8, !tbaa !11
  %23015 = fadd double %23014, 5.000000e-01
  br label %23019

23016:                                            ; preds = %23010
  %23017 = load double, ptr %661, align 8, !tbaa !11
  %23018 = fsub double %23017, 5.000000e-01
  br label %23019

23019:                                            ; preds = %23016, %23013
  %23020 = phi double [ %23015, %23013 ], [ %23018, %23016 ]
  br label %23023

23021:                                            ; preds = %23006
  %23022 = load double, ptr %660, align 8, !tbaa !11
  br label %23023

23023:                                            ; preds = %23021, %23019
  %23024 = phi double [ %23020, %23019 ], [ %23022, %23021 ]
  br label %23025

23025:                                            ; preds = %23023, %22995
  %23026 = phi double [ %22996, %22995 ], [ %23024, %23023 ]
  br label %23055

23027:                                            ; preds = %22970
  %23028 = load double, ptr %659, align 8, !tbaa !11
  %23029 = load double, ptr %661, align 8, !tbaa !11
  %23030 = fcmp ole double 0.000000e+00, %23029
  br i1 %23030, label %23031, label %23034

23031:                                            ; preds = %23027
  %23032 = load double, ptr %661, align 8, !tbaa !11
  %23033 = fadd double %23032, 5.000000e-01
  br label %23037

23034:                                            ; preds = %23027
  %23035 = load double, ptr %661, align 8, !tbaa !11
  %23036 = fsub double %23035, 5.000000e-01
  br label %23037

23037:                                            ; preds = %23034, %23031
  %23038 = phi double [ %23033, %23031 ], [ %23036, %23034 ]
  %23039 = fcmp olt double %23028, %23038
  br i1 %23039, label %23040, label %23051

23040:                                            ; preds = %23037
  %23041 = load double, ptr %661, align 8, !tbaa !11
  %23042 = fcmp ole double 0.000000e+00, %23041
  br i1 %23042, label %23043, label %23046

23043:                                            ; preds = %23040
  %23044 = load double, ptr %661, align 8, !tbaa !11
  %23045 = fadd double %23044, 5.000000e-01
  br label %23049

23046:                                            ; preds = %23040
  %23047 = load double, ptr %661, align 8, !tbaa !11
  %23048 = fsub double %23047, 5.000000e-01
  br label %23049

23049:                                            ; preds = %23046, %23043
  %23050 = phi double [ %23045, %23043 ], [ %23048, %23046 ]
  br label %23053

23051:                                            ; preds = %23037
  %23052 = load double, ptr %659, align 8, !tbaa !11
  br label %23053

23053:                                            ; preds = %23051, %23049
  %23054 = phi double [ %23050, %23049 ], [ %23052, %23051 ]
  br label %23055

23055:                                            ; preds = %23053, %23025
  %23056 = phi double [ %23026, %23025 ], [ %23054, %23053 ]
  %23057 = fptosi double %23056 to i64
  %23058 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %23057, ptr %23058, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %661) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %660) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %659) #3
  br label %23201

23059:                                            ; preds = %22833, %22830
  %23060 = load i32, ptr %8, align 4, !tbaa !9
  %23061 = icmp ugt i32 6, %23060
  br i1 %23061, label %23090, label %23062

23062:                                            ; preds = %23059
  %23063 = load i32, ptr %8, align 4, !tbaa !9
  %23064 = icmp ugt i32 15, %23063
  br i1 %23064, label %23065, label %23076

23065:                                            ; preds = %23062
  %23066 = load i32, ptr %9, align 4, !tbaa !9
  %23067 = icmp ugt i32 15, %23066
  br i1 %23067, label %23068, label %23073

23068:                                            ; preds = %23065
  %23069 = load i32, ptr %9, align 4, !tbaa !9
  %23070 = load i32, ptr %8, align 4, !tbaa !9
  %23071 = icmp ugt i32 %23069, %23070
  %23072 = zext i1 %23071 to i32
  br label %23074

23073:                                            ; preds = %23065
  br label %23074

23074:                                            ; preds = %23073, %23068
  %23075 = phi i32 [ %23072, %23068 ], [ 0, %23073 ]
  br label %23087

23076:                                            ; preds = %23062
  %23077 = load i32, ptr %9, align 4, !tbaa !9
  %23078 = icmp ugt i32 15, %23077
  br i1 %23078, label %23079, label %23080

23079:                                            ; preds = %23076
  br label %23085

23080:                                            ; preds = %23076
  %23081 = load i32, ptr %9, align 4, !tbaa !9
  %23082 = load i32, ptr %8, align 4, !tbaa !9
  %23083 = icmp ugt i32 %23081, %23082
  %23084 = zext i1 %23083 to i32
  br label %23085

23085:                                            ; preds = %23080, %23079
  %23086 = phi i32 [ 0, %23079 ], [ %23084, %23080 ]
  br label %23087

23087:                                            ; preds = %23085, %23074
  %23088 = phi i32 [ %23075, %23074 ], [ %23086, %23085 ]
  %23089 = icmp ne i32 %23088, 0
  br label %23090

23090:                                            ; preds = %23087, %23059
  %23091 = phi i1 [ true, %23059 ], [ %23089, %23087 ]
  %23092 = zext i1 %23091 to i32
  %23093 = icmp eq i32 0, %23092
  br i1 %23093, label %23094, label %23185

23094:                                            ; preds = %23090
  %23095 = load float, ptr %653, align 4, !tbaa !18
  %23096 = fcmp ole float 0.000000e+00, %23095
  br i1 %23096, label %23097, label %23139

23097:                                            ; preds = %23094
  %23098 = load float, ptr %653, align 4, !tbaa !18
  %23099 = fpext float %23098 to double
  %23100 = fadd double %23099, 5.000000e-01
  %23101 = fcmp olt double 0xC3E0000000000000, %23100
  br i1 %23101, label %23102, label %23125

23102:                                            ; preds = %23097
  %23103 = load float, ptr %653, align 4, !tbaa !18
  %23104 = fpext float %23103 to double
  %23105 = fadd double %23104, 5.000000e-01
  %23106 = fcmp ole double %23105, 0x43E0000000000000
  br i1 %23106, label %23107, label %23111

23107:                                            ; preds = %23102
  %23108 = load float, ptr %653, align 4, !tbaa !18
  %23109 = fpext float %23108 to double
  %23110 = fadd double %23109, 5.000000e-01
  br label %23123

23111:                                            ; preds = %23102
  %23112 = load float, ptr %653, align 4, !tbaa !18
  %23113 = fpext float %23112 to double
  %23114 = fadd double %23113, 5.000000e-01
  %23115 = fcmp olt double %23114, 0x43E0000000000000
  br i1 %23115, label %23116, label %23120

23116:                                            ; preds = %23111
  %23117 = load float, ptr %653, align 4, !tbaa !18
  %23118 = fpext float %23117 to double
  %23119 = fadd double %23118, 5.000000e-01
  br label %23121

23120:                                            ; preds = %23111
  br label %23121

23121:                                            ; preds = %23120, %23116
  %23122 = phi double [ %23119, %23116 ], [ 0x43E0000000000000, %23120 ]
  br label %23123

23123:                                            ; preds = %23121, %23107
  %23124 = phi double [ %23110, %23107 ], [ %23122, %23121 ]
  br label %23137

23125:                                            ; preds = %23097
  %23126 = load float, ptr %653, align 4, !tbaa !18
  %23127 = fpext float %23126 to double
  %23128 = fadd double %23127, 5.000000e-01
  %23129 = fcmp olt double 0xC3E0000000000000, %23128
  br i1 %23129, label %23130, label %23134

23130:                                            ; preds = %23125
  %23131 = load float, ptr %653, align 4, !tbaa !18
  %23132 = fpext float %23131 to double
  %23133 = fadd double %23132, 5.000000e-01
  br label %23135

23134:                                            ; preds = %23125
  br label %23135

23135:                                            ; preds = %23134, %23130
  %23136 = phi double [ %23133, %23130 ], [ 0xC3E0000000000000, %23134 ]
  br label %23137

23137:                                            ; preds = %23135, %23123
  %23138 = phi double [ %23124, %23123 ], [ %23136, %23135 ]
  br label %23181

23139:                                            ; preds = %23094
  %23140 = load float, ptr %653, align 4, !tbaa !18
  %23141 = fpext float %23140 to double
  %23142 = fsub double %23141, 5.000000e-01
  %23143 = fcmp olt double 0xC3E0000000000000, %23142
  br i1 %23143, label %23144, label %23167

23144:                                            ; preds = %23139
  %23145 = load float, ptr %653, align 4, !tbaa !18
  %23146 = fpext float %23145 to double
  %23147 = fsub double %23146, 5.000000e-01
  %23148 = fcmp ole double %23147, 0x43E0000000000000
  br i1 %23148, label %23149, label %23153

23149:                                            ; preds = %23144
  %23150 = load float, ptr %653, align 4, !tbaa !18
  %23151 = fpext float %23150 to double
  %23152 = fsub double %23151, 5.000000e-01
  br label %23165

23153:                                            ; preds = %23144
  %23154 = load float, ptr %653, align 4, !tbaa !18
  %23155 = fpext float %23154 to double
  %23156 = fsub double %23155, 5.000000e-01
  %23157 = fcmp olt double %23156, 0x43E0000000000000
  br i1 %23157, label %23158, label %23162

23158:                                            ; preds = %23153
  %23159 = load float, ptr %653, align 4, !tbaa !18
  %23160 = fpext float %23159 to double
  %23161 = fsub double %23160, 5.000000e-01
  br label %23163

23162:                                            ; preds = %23153
  br label %23163

23163:                                            ; preds = %23162, %23158
  %23164 = phi double [ %23161, %23158 ], [ 0x43E0000000000000, %23162 ]
  br label %23165

23165:                                            ; preds = %23163, %23149
  %23166 = phi double [ %23152, %23149 ], [ %23164, %23163 ]
  br label %23179

23167:                                            ; preds = %23139
  %23168 = load float, ptr %653, align 4, !tbaa !18
  %23169 = fpext float %23168 to double
  %23170 = fsub double %23169, 5.000000e-01
  %23171 = fcmp olt double 0xC3E0000000000000, %23170
  br i1 %23171, label %23172, label %23176

23172:                                            ; preds = %23167
  %23173 = load float, ptr %653, align 4, !tbaa !18
  %23174 = fpext float %23173 to double
  %23175 = fsub double %23174, 5.000000e-01
  br label %23177

23176:                                            ; preds = %23167
  br label %23177

23177:                                            ; preds = %23176, %23172
  %23178 = phi double [ %23175, %23172 ], [ 0xC3E0000000000000, %23176 ]
  br label %23179

23179:                                            ; preds = %23177, %23165
  %23180 = phi double [ %23166, %23165 ], [ %23178, %23177 ]
  br label %23181

23181:                                            ; preds = %23179, %23137
  %23182 = phi double [ %23138, %23137 ], [ %23180, %23179 ]
  %23183 = fptosi double %23182 to i64
  %23184 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %23183, ptr %23184, align 8, !tbaa !13
  br label %23200

23185:                                            ; preds = %23090
  %23186 = load float, ptr %653, align 4, !tbaa !18
  %23187 = fcmp ole float 0.000000e+00, %23186
  br i1 %23187, label %23188, label %23192

23188:                                            ; preds = %23185
  %23189 = load float, ptr %653, align 4, !tbaa !18
  %23190 = fpext float %23189 to double
  %23191 = fadd double %23190, 5.000000e-01
  br label %23196

23192:                                            ; preds = %23185
  %23193 = load float, ptr %653, align 4, !tbaa !18
  %23194 = fpext float %23193 to double
  %23195 = fsub double %23194, 5.000000e-01
  br label %23196

23196:                                            ; preds = %23192, %23188
  %23197 = phi double [ %23191, %23188 ], [ %23195, %23192 ]
  %23198 = fptosi double %23197 to i64
  %23199 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %23198, ptr %23199, align 8, !tbaa !13
  br label %23200

23200:                                            ; preds = %23196, %23181
  br label %23201

23201:                                            ; preds = %23200, %23055
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %655) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %654) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %653) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %652) #3
  br label %23202

23202:                                            ; preds = %23201
  br label %23203

23203:                                            ; preds = %23202
  br label %23208

23204:                                            ; preds = %19585
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 482, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

23205:                                            ; preds = %19585
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 482, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

23206:                                            ; preds = %19585
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 482, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

23207:                                            ; preds = %19585
  store i32 1, ptr %13, align 4, !tbaa !9
  br label %23208

23208:                                            ; preds = %23207, %23203, %22797, %22412, %22052, %21692, %21345, %20999, %20639, %20279, %19932
  br label %23209

23209:                                            ; preds = %23208
  br label %23210

23210:                                            ; preds = %23209
  br label %48657

23211:                                            ; preds = %6
  br label %23212

23212:                                            ; preds = %23211
  %23213 = load ptr, ptr %7, align 8, !tbaa !5
  %23214 = icmp ne ptr null, %23213
  br i1 %23214, label %23215, label %23219

23215:                                            ; preds = %23212
  %23216 = load ptr, ptr %10, align 8, !tbaa !5
  %23217 = icmp ne ptr null, %23216
  br i1 %23217, label %23218, label %23219

23218:                                            ; preds = %23215
  br label %23220

23219:                                            ; preds = %23215, %23212
  call void @__assert_fail(ptr noundef @.str.41, ptr noundef @.str.24, i32 noundef 485, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

23220:                                            ; preds = %23218
  %23221 = load i32, ptr %9, align 4, !tbaa !9
  switch i32 %23221, label %26842 [
    i32 6, label %23222
    i32 8, label %23569
    i32 10, label %23915
    i32 12, label %24275
    i32 15, label %24635
    i32 16, label %24982
    i32 17, label %25328
    i32 18, label %25688
    i32 0, label %26048
    i32 1, label %26433
    i32 3, label %26839
    i32 2, label %26840
    i32 4, label %26841
  ]

23222:                                            ; preds = %23220
  br label %23223

23223:                                            ; preds = %23222
  call void @llvm.lifetime.start.p0(i64 8, ptr %662) #3
  store double 5.000000e-01, ptr %662, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %663) #3
  %23224 = load ptr, ptr %10, align 8, !tbaa !5
  %23225 = load i64, ptr %23224, align 8, !tbaa !13
  store i64 %23225, ptr %663, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %664) #3
  store double 0.000000e+00, ptr %664, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %665) #3
  store double 0.000000e+00, ptr %665, align 8, !tbaa !11
  %23226 = load ptr, ptr %11, align 8, !tbaa !5
  %23227 = icmp ne ptr null, %23226
  br i1 %23227, label %23228, label %23250

23228:                                            ; preds = %23223
  %23229 = load ptr, ptr %12, align 8, !tbaa !5
  %23230 = icmp ne ptr null, %23229
  br i1 %23230, label %23231, label %23242

23231:                                            ; preds = %23228
  %23232 = load ptr, ptr %11, align 8, !tbaa !5
  %23233 = load i64, ptr %23232, align 8, !tbaa !13
  %23234 = load i64, ptr %663, align 8, !tbaa !13
  %23235 = icmp sle i64 %23233, %23234
  br i1 %23235, label %23236, label %23242

23236:                                            ; preds = %23231
  %23237 = load i64, ptr %663, align 8, !tbaa !13
  %23238 = load ptr, ptr %12, align 8, !tbaa !5
  %23239 = load i64, ptr %23238, align 8, !tbaa !13
  %23240 = icmp sle i64 %23237, %23239
  br i1 %23240, label %23241, label %23242

23241:                                            ; preds = %23236
  br label %23243

23242:                                            ; preds = %23236, %23231, %23228
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.24, i32 noundef 485, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

23243:                                            ; preds = %23241
  %23244 = load ptr, ptr %11, align 8, !tbaa !5
  %23245 = load i64, ptr %23244, align 8, !tbaa !13
  %23246 = sitofp i64 %23245 to double
  store double %23246, ptr %664, align 8, !tbaa !11
  %23247 = load ptr, ptr %12, align 8, !tbaa !5
  %23248 = load i64, ptr %23247, align 8, !tbaa !13
  %23249 = sitofp i64 %23248 to double
  store double %23249, ptr %665, align 8, !tbaa !11
  br label %23250

23250:                                            ; preds = %23243, %23223
  %23251 = load i32, ptr %8, align 4, !tbaa !9
  %23252 = icmp ule i32 6, %23251
  br i1 %23252, label %23253, label %23489

23253:                                            ; preds = %23250
  %23254 = load double, ptr %664, align 8, !tbaa !11
  %23255 = load double, ptr %665, align 8, !tbaa !11
  %23256 = fcmp olt double %23254, %23255
  br i1 %23256, label %23257, label %23489

23257:                                            ; preds = %23253
  %23258 = load i32, ptr %8, align 4, !tbaa !9
  %23259 = icmp ule i32 15, %23258
  br i1 %23259, label %23260, label %23312

23260:                                            ; preds = %23257
  call void @llvm.lifetime.start.p0(i64 8, ptr %666) #3
  %23261 = load double, ptr %664, align 8, !tbaa !11
  %23262 = fcmp olt double 0.000000e+00, %23261
  br i1 %23262, label %23263, label %23265

23263:                                            ; preds = %23260
  %23264 = load double, ptr %664, align 8, !tbaa !11
  br label %23266

23265:                                            ; preds = %23260
  br label %23266

23266:                                            ; preds = %23265, %23263
  %23267 = phi double [ %23264, %23263 ], [ 0.000000e+00, %23265 ]
  store double %23267, ptr %666, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %667) #3
  %23268 = load double, ptr %665, align 8, !tbaa !11
  %23269 = fcmp olt double 0.000000e+00, %23268
  br i1 %23269, label %23270, label %23272

23270:                                            ; preds = %23266
  %23271 = load double, ptr %665, align 8, !tbaa !11
  br label %23273

23272:                                            ; preds = %23266
  br label %23273

23273:                                            ; preds = %23272, %23270
  %23274 = phi double [ %23271, %23270 ], [ 0.000000e+00, %23272 ]
  store double %23274, ptr %667, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %668) #3
  %23275 = load double, ptr %666, align 8, !tbaa !11
  %23276 = load double, ptr %667, align 8, !tbaa !11
  %23277 = fcmp olt double %23275, %23276
  br i1 %23277, label %23278, label %23286

23278:                                            ; preds = %23273
  %23279 = load double, ptr %665, align 8, !tbaa !11
  %23280 = load double, ptr %664, align 8, !tbaa !11
  %23281 = fsub double %23279, %23280
  %23282 = load double, ptr %667, align 8, !tbaa !11
  %23283 = load double, ptr %666, align 8, !tbaa !11
  %23284 = fsub double %23282, %23283
  %23285 = fdiv double %23281, %23284
  br label %23287

23286:                                            ; preds = %23273
  br label %23287

23287:                                            ; preds = %23286, %23278
  %23288 = phi double [ %23285, %23278 ], [ 1.000000e+00, %23286 ]
  store double %23288, ptr %668, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %669) #3
  %23289 = load double, ptr %668, align 8, !tbaa !11
  %23290 = load i64, ptr %663, align 8, !tbaa !13
  %23291 = icmp slt i64 0, %23290
  br i1 %23291, label %23292, label %23294

23292:                                            ; preds = %23287
  %23293 = load i64, ptr %663, align 8, !tbaa !13
  br label %23295

23294:                                            ; preds = %23287
  br label %23295

23295:                                            ; preds = %23294, %23292
  %23296 = phi i64 [ %23293, %23292 ], [ 0, %23294 ]
  %23297 = sitofp i64 %23296 to double
  %23298 = fmul double %23289, %23297
  store double %23298, ptr %669, align 8, !tbaa !11
  %23299 = load double, ptr %669, align 8, !tbaa !11
  %23300 = fcmp ole double 0.000000e+00, %23299
  br i1 %23300, label %23301, label %23304

23301:                                            ; preds = %23295
  %23302 = load double, ptr %669, align 8, !tbaa !11
  %23303 = fadd double %23302, 5.000000e-01
  br label %23307

23304:                                            ; preds = %23295
  %23305 = load double, ptr %669, align 8, !tbaa !11
  %23306 = fsub double %23305, 5.000000e-01
  br label %23307

23307:                                            ; preds = %23304, %23301
  %23308 = phi double [ %23303, %23301 ], [ %23306, %23304 ]
  %23309 = fptosi double %23308 to i64
  store i64 %23309, ptr %663, align 8, !tbaa !13
  %23310 = load double, ptr %666, align 8, !tbaa !11
  store double %23310, ptr %664, align 8, !tbaa !11
  %23311 = load double, ptr %667, align 8, !tbaa !11
  store double %23311, ptr %665, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %669) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %668) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %667) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %666) #3
  br label %23368

23312:                                            ; preds = %23257
  %23313 = load i32, ptr %8, align 4, !tbaa !9
  %23314 = icmp ugt i32 6, %23313
  br i1 %23314, label %23343, label %23315

23315:                                            ; preds = %23312
  %23316 = load i32, ptr %8, align 4, !tbaa !9
  %23317 = icmp ugt i32 15, %23316
  br i1 %23317, label %23318, label %23329

23318:                                            ; preds = %23315
  %23319 = load i32, ptr %9, align 4, !tbaa !9
  %23320 = icmp ugt i32 15, %23319
  br i1 %23320, label %23321, label %23326

23321:                                            ; preds = %23318
  %23322 = load i32, ptr %9, align 4, !tbaa !9
  %23323 = load i32, ptr %8, align 4, !tbaa !9
  %23324 = icmp ugt i32 %23322, %23323
  %23325 = zext i1 %23324 to i32
  br label %23327

23326:                                            ; preds = %23318
  br label %23327

23327:                                            ; preds = %23326, %23321
  %23328 = phi i32 [ %23325, %23321 ], [ 0, %23326 ]
  br label %23340

23329:                                            ; preds = %23315
  %23330 = load i32, ptr %9, align 4, !tbaa !9
  %23331 = icmp ugt i32 15, %23330
  br i1 %23331, label %23332, label %23333

23332:                                            ; preds = %23329
  br label %23338

23333:                                            ; preds = %23329
  %23334 = load i32, ptr %9, align 4, !tbaa !9
  %23335 = load i32, ptr %8, align 4, !tbaa !9
  %23336 = icmp ugt i32 %23334, %23335
  %23337 = zext i1 %23336 to i32
  br label %23338

23338:                                            ; preds = %23333, %23332
  %23339 = phi i32 [ 0, %23332 ], [ %23337, %23333 ]
  br label %23340

23340:                                            ; preds = %23338, %23327
  %23341 = phi i32 [ %23328, %23327 ], [ %23339, %23338 ]
  %23342 = icmp ne i32 %23341, 0
  br label %23343

23343:                                            ; preds = %23340, %23312
  %23344 = phi i1 [ true, %23312 ], [ %23342, %23340 ]
  %23345 = zext i1 %23344 to i32
  %23346 = icmp eq i32 0, %23345
  br i1 %23346, label %23347, label %23367

23347:                                            ; preds = %23343
  %23348 = load double, ptr %664, align 8, !tbaa !11
  %23349 = fcmp ogt double 0.000000e+00, %23348
  br i1 %23349, label %23350, label %23367

23350:                                            ; preds = %23347
  %23351 = load double, ptr %665, align 8, !tbaa !11
  %23352 = fcmp olt double 0.000000e+00, %23351
  br i1 %23352, label %23353, label %23367

23353:                                            ; preds = %23350
  %23354 = load double, ptr %664, align 8, !tbaa !11
  %23355 = fneg double %23354
  %23356 = load double, ptr %665, align 8, !tbaa !11
  %23357 = fcmp olt double %23355, %23356
  br i1 %23357, label %23358, label %23360

23358:                                            ; preds = %23353
  %23359 = load double, ptr %665, align 8, !tbaa !11
  br label %23363

23360:                                            ; preds = %23353
  %23361 = load double, ptr %664, align 8, !tbaa !11
  %23362 = fneg double %23361
  br label %23363

23363:                                            ; preds = %23360, %23358
  %23364 = phi double [ %23359, %23358 ], [ %23362, %23360 ]
  store double %23364, ptr %665, align 8, !tbaa !11
  %23365 = load double, ptr %665, align 8, !tbaa !11
  %23366 = fneg double %23365
  store double %23366, ptr %664, align 8, !tbaa !11
  br label %23367

23367:                                            ; preds = %23363, %23350, %23347, %23343
  br label %23368

23368:                                            ; preds = %23367, %23307
  call void @llvm.lifetime.start.p0(i64 8, ptr %670) #3
  %23369 = load double, ptr %664, align 8, !tbaa !11
  %23370 = fcmp ole double 0.000000e+00, %23369
  %23371 = zext i1 %23370 to i64
  %23372 = select i1 %23370, double 0.000000e+00, double 0xC1E0000000000000
  store double %23372, ptr %670, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %671) #3
  %23373 = load double, ptr %665, align 8, !tbaa !11
  %23374 = fcmp ole double 0.000000e+00, %23373
  %23375 = zext i1 %23374 to i64
  %23376 = select i1 %23374, double 0x41DFFFFFFFC00000, double 0.000000e+00
  store double %23376, ptr %671, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %672) #3
  %23377 = load i64, ptr %663, align 8, !tbaa !13
  %23378 = sitofp i64 %23377 to double
  %23379 = load double, ptr %664, align 8, !tbaa !11
  %23380 = fsub double %23378, %23379
  %23381 = load double, ptr %671, align 8, !tbaa !11
  %23382 = load double, ptr %670, align 8, !tbaa !11
  %23383 = fsub double %23381, %23382
  %23384 = fmul double %23380, %23383
  %23385 = load double, ptr %665, align 8, !tbaa !11
  %23386 = load double, ptr %664, align 8, !tbaa !11
  %23387 = fsub double %23385, %23386
  %23388 = fdiv double %23384, %23387
  %23389 = load double, ptr %670, align 8, !tbaa !11
  %23390 = fadd double %23388, %23389
  store double %23390, ptr %672, align 8, !tbaa !11
  %23391 = load double, ptr %670, align 8, !tbaa !11
  %23392 = load double, ptr %672, align 8, !tbaa !11
  %23393 = fcmp ole double 0.000000e+00, %23392
  br i1 %23393, label %23394, label %23397

23394:                                            ; preds = %23368
  %23395 = load double, ptr %672, align 8, !tbaa !11
  %23396 = fadd double %23395, 5.000000e-01
  br label %23400

23397:                                            ; preds = %23368
  %23398 = load double, ptr %672, align 8, !tbaa !11
  %23399 = fsub double %23398, 5.000000e-01
  br label %23400

23400:                                            ; preds = %23397, %23394
  %23401 = phi double [ %23396, %23394 ], [ %23399, %23397 ]
  %23402 = fcmp olt double %23391, %23401
  br i1 %23402, label %23403, label %23457

23403:                                            ; preds = %23400
  %23404 = load double, ptr %672, align 8, !tbaa !11
  %23405 = fcmp ole double 0.000000e+00, %23404
  br i1 %23405, label %23406, label %23409

23406:                                            ; preds = %23403
  %23407 = load double, ptr %672, align 8, !tbaa !11
  %23408 = fadd double %23407, 5.000000e-01
  br label %23412

23409:                                            ; preds = %23403
  %23410 = load double, ptr %672, align 8, !tbaa !11
  %23411 = fsub double %23410, 5.000000e-01
  br label %23412

23412:                                            ; preds = %23409, %23406
  %23413 = phi double [ %23408, %23406 ], [ %23411, %23409 ]
  %23414 = load double, ptr %671, align 8, !tbaa !11
  %23415 = fcmp ole double %23413, %23414
  br i1 %23415, label %23416, label %23427

23416:                                            ; preds = %23412
  %23417 = load double, ptr %672, align 8, !tbaa !11
  %23418 = fcmp ole double 0.000000e+00, %23417
  br i1 %23418, label %23419, label %23422

23419:                                            ; preds = %23416
  %23420 = load double, ptr %672, align 8, !tbaa !11
  %23421 = fadd double %23420, 5.000000e-01
  br label %23425

23422:                                            ; preds = %23416
  %23423 = load double, ptr %672, align 8, !tbaa !11
  %23424 = fsub double %23423, 5.000000e-01
  br label %23425

23425:                                            ; preds = %23422, %23419
  %23426 = phi double [ %23421, %23419 ], [ %23424, %23422 ]
  br label %23455

23427:                                            ; preds = %23412
  %23428 = load double, ptr %672, align 8, !tbaa !11
  %23429 = fcmp ole double 0.000000e+00, %23428
  br i1 %23429, label %23430, label %23433

23430:                                            ; preds = %23427
  %23431 = load double, ptr %672, align 8, !tbaa !11
  %23432 = fadd double %23431, 5.000000e-01
  br label %23436

23433:                                            ; preds = %23427
  %23434 = load double, ptr %672, align 8, !tbaa !11
  %23435 = fsub double %23434, 5.000000e-01
  br label %23436

23436:                                            ; preds = %23433, %23430
  %23437 = phi double [ %23432, %23430 ], [ %23435, %23433 ]
  %23438 = load double, ptr %671, align 8, !tbaa !11
  %23439 = fcmp olt double %23437, %23438
  br i1 %23439, label %23440, label %23451

23440:                                            ; preds = %23436
  %23441 = load double, ptr %672, align 8, !tbaa !11
  %23442 = fcmp ole double 0.000000e+00, %23441
  br i1 %23442, label %23443, label %23446

23443:                                            ; preds = %23440
  %23444 = load double, ptr %672, align 8, !tbaa !11
  %23445 = fadd double %23444, 5.000000e-01
  br label %23449

23446:                                            ; preds = %23440
  %23447 = load double, ptr %672, align 8, !tbaa !11
  %23448 = fsub double %23447, 5.000000e-01
  br label %23449

23449:                                            ; preds = %23446, %23443
  %23450 = phi double [ %23445, %23443 ], [ %23448, %23446 ]
  br label %23453

23451:                                            ; preds = %23436
  %23452 = load double, ptr %671, align 8, !tbaa !11
  br label %23453

23453:                                            ; preds = %23451, %23449
  %23454 = phi double [ %23450, %23449 ], [ %23452, %23451 ]
  br label %23455

23455:                                            ; preds = %23453, %23425
  %23456 = phi double [ %23426, %23425 ], [ %23454, %23453 ]
  br label %23485

23457:                                            ; preds = %23400
  %23458 = load double, ptr %670, align 8, !tbaa !11
  %23459 = load double, ptr %672, align 8, !tbaa !11
  %23460 = fcmp ole double 0.000000e+00, %23459
  br i1 %23460, label %23461, label %23464

23461:                                            ; preds = %23457
  %23462 = load double, ptr %672, align 8, !tbaa !11
  %23463 = fadd double %23462, 5.000000e-01
  br label %23467

23464:                                            ; preds = %23457
  %23465 = load double, ptr %672, align 8, !tbaa !11
  %23466 = fsub double %23465, 5.000000e-01
  br label %23467

23467:                                            ; preds = %23464, %23461
  %23468 = phi double [ %23463, %23461 ], [ %23466, %23464 ]
  %23469 = fcmp olt double %23458, %23468
  br i1 %23469, label %23470, label %23481

23470:                                            ; preds = %23467
  %23471 = load double, ptr %672, align 8, !tbaa !11
  %23472 = fcmp ole double 0.000000e+00, %23471
  br i1 %23472, label %23473, label %23476

23473:                                            ; preds = %23470
  %23474 = load double, ptr %672, align 8, !tbaa !11
  %23475 = fadd double %23474, 5.000000e-01
  br label %23479

23476:                                            ; preds = %23470
  %23477 = load double, ptr %672, align 8, !tbaa !11
  %23478 = fsub double %23477, 5.000000e-01
  br label %23479

23479:                                            ; preds = %23476, %23473
  %23480 = phi double [ %23475, %23473 ], [ %23478, %23476 ]
  br label %23483

23481:                                            ; preds = %23467
  %23482 = load double, ptr %670, align 8, !tbaa !11
  br label %23483

23483:                                            ; preds = %23481, %23479
  %23484 = phi double [ %23480, %23479 ], [ %23482, %23481 ]
  br label %23485

23485:                                            ; preds = %23483, %23455
  %23486 = phi double [ %23456, %23455 ], [ %23484, %23483 ]
  %23487 = fptosi double %23486 to i32
  %23488 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %23487, ptr %23488, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %672) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %671) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %670) #3
  br label %23566

23489:                                            ; preds = %23253, %23250
  %23490 = load i32, ptr %8, align 4, !tbaa !9
  %23491 = icmp ugt i32 6, %23490
  br i1 %23491, label %23520, label %23492

23492:                                            ; preds = %23489
  %23493 = load i32, ptr %8, align 4, !tbaa !9
  %23494 = icmp ugt i32 15, %23493
  br i1 %23494, label %23495, label %23506

23495:                                            ; preds = %23492
  %23496 = load i32, ptr %9, align 4, !tbaa !9
  %23497 = icmp ugt i32 15, %23496
  br i1 %23497, label %23498, label %23503

23498:                                            ; preds = %23495
  %23499 = load i32, ptr %9, align 4, !tbaa !9
  %23500 = load i32, ptr %8, align 4, !tbaa !9
  %23501 = icmp ugt i32 %23499, %23500
  %23502 = zext i1 %23501 to i32
  br label %23504

23503:                                            ; preds = %23495
  br label %23504

23504:                                            ; preds = %23503, %23498
  %23505 = phi i32 [ %23502, %23498 ], [ 0, %23503 ]
  br label %23517

23506:                                            ; preds = %23492
  %23507 = load i32, ptr %9, align 4, !tbaa !9
  %23508 = icmp ugt i32 15, %23507
  br i1 %23508, label %23509, label %23510

23509:                                            ; preds = %23506
  br label %23515

23510:                                            ; preds = %23506
  %23511 = load i32, ptr %9, align 4, !tbaa !9
  %23512 = load i32, ptr %8, align 4, !tbaa !9
  %23513 = icmp ugt i32 %23511, %23512
  %23514 = zext i1 %23513 to i32
  br label %23515

23515:                                            ; preds = %23510, %23509
  %23516 = phi i32 [ 0, %23509 ], [ %23514, %23510 ]
  br label %23517

23517:                                            ; preds = %23515, %23504
  %23518 = phi i32 [ %23505, %23504 ], [ %23516, %23515 ]
  %23519 = icmp ne i32 %23518, 0
  br label %23520

23520:                                            ; preds = %23517, %23489
  %23521 = phi i1 [ true, %23489 ], [ %23519, %23517 ]
  %23522 = zext i1 %23521 to i32
  %23523 = icmp eq i32 0, %23522
  br i1 %23523, label %23524, label %23561

23524:                                            ; preds = %23520
  %23525 = load i64, ptr %663, align 8, !tbaa !13
  %23526 = sitofp i64 %23525 to double
  %23527 = fcmp olt double 0xC1E0000000000000, %23526
  br i1 %23527, label %23528, label %23547

23528:                                            ; preds = %23524
  %23529 = load i64, ptr %663, align 8, !tbaa !13
  %23530 = sitofp i64 %23529 to double
  %23531 = fcmp ole double %23530, 0x41DFFFFFFFC00000
  br i1 %23531, label %23532, label %23535

23532:                                            ; preds = %23528
  %23533 = load i64, ptr %663, align 8, !tbaa !13
  %23534 = sitofp i64 %23533 to double
  br label %23545

23535:                                            ; preds = %23528
  %23536 = load i64, ptr %663, align 8, !tbaa !13
  %23537 = sitofp i64 %23536 to double
  %23538 = fcmp olt double %23537, 0x41DFFFFFFFC00000
  br i1 %23538, label %23539, label %23542

23539:                                            ; preds = %23535
  %23540 = load i64, ptr %663, align 8, !tbaa !13
  %23541 = sitofp i64 %23540 to double
  br label %23543

23542:                                            ; preds = %23535
  br label %23543

23543:                                            ; preds = %23542, %23539
  %23544 = phi double [ %23541, %23539 ], [ 0x41DFFFFFFFC00000, %23542 ]
  br label %23545

23545:                                            ; preds = %23543, %23532
  %23546 = phi double [ %23534, %23532 ], [ %23544, %23543 ]
  br label %23557

23547:                                            ; preds = %23524
  %23548 = load i64, ptr %663, align 8, !tbaa !13
  %23549 = sitofp i64 %23548 to double
  %23550 = fcmp olt double 0xC1E0000000000000, %23549
  br i1 %23550, label %23551, label %23554

23551:                                            ; preds = %23547
  %23552 = load i64, ptr %663, align 8, !tbaa !13
  %23553 = sitofp i64 %23552 to double
  br label %23555

23554:                                            ; preds = %23547
  br label %23555

23555:                                            ; preds = %23554, %23551
  %23556 = phi double [ %23553, %23551 ], [ 0xC1E0000000000000, %23554 ]
  br label %23557

23557:                                            ; preds = %23555, %23545
  %23558 = phi double [ %23546, %23545 ], [ %23556, %23555 ]
  %23559 = fptosi double %23558 to i32
  %23560 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %23559, ptr %23560, align 4, !tbaa !9
  br label %23565

23561:                                            ; preds = %23520
  %23562 = load i64, ptr %663, align 8, !tbaa !13
  %23563 = trunc i64 %23562 to i32
  %23564 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %23563, ptr %23564, align 4, !tbaa !9
  br label %23565

23565:                                            ; preds = %23561, %23557
  br label %23566

23566:                                            ; preds = %23565, %23485
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %665) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %664) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %663) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %662) #3
  br label %23567

23567:                                            ; preds = %23566
  br label %23568

23568:                                            ; preds = %23567
  br label %26843

23569:                                            ; preds = %23220
  br label %23570

23570:                                            ; preds = %23569
  call void @llvm.lifetime.start.p0(i64 8, ptr %673) #3
  store double 5.000000e-01, ptr %673, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %674) #3
  %23571 = load ptr, ptr %10, align 8, !tbaa !5
  %23572 = load i32, ptr %23571, align 4, !tbaa !9
  store i32 %23572, ptr %674, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %675) #3
  store double 0.000000e+00, ptr %675, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %676) #3
  store double 0.000000e+00, ptr %676, align 8, !tbaa !11
  %23573 = load ptr, ptr %11, align 8, !tbaa !5
  %23574 = icmp ne ptr null, %23573
  br i1 %23574, label %23575, label %23597

23575:                                            ; preds = %23570
  %23576 = load ptr, ptr %12, align 8, !tbaa !5
  %23577 = icmp ne ptr null, %23576
  br i1 %23577, label %23578, label %23589

23578:                                            ; preds = %23575
  %23579 = load ptr, ptr %11, align 8, !tbaa !5
  %23580 = load i32, ptr %23579, align 4, !tbaa !9
  %23581 = load i32, ptr %674, align 4, !tbaa !9
  %23582 = icmp sle i32 %23580, %23581
  br i1 %23582, label %23583, label %23589

23583:                                            ; preds = %23578
  %23584 = load i32, ptr %674, align 4, !tbaa !9
  %23585 = load ptr, ptr %12, align 8, !tbaa !5
  %23586 = load i32, ptr %23585, align 4, !tbaa !9
  %23587 = icmp sle i32 %23584, %23586
  br i1 %23587, label %23588, label %23589

23588:                                            ; preds = %23583
  br label %23590

23589:                                            ; preds = %23583, %23578, %23575
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.24, i32 noundef 485, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

23590:                                            ; preds = %23588
  %23591 = load ptr, ptr %11, align 8, !tbaa !5
  %23592 = load i32, ptr %23591, align 4, !tbaa !9
  %23593 = sitofp i32 %23592 to double
  store double %23593, ptr %675, align 8, !tbaa !11
  %23594 = load ptr, ptr %12, align 8, !tbaa !5
  %23595 = load i32, ptr %23594, align 4, !tbaa !9
  %23596 = sitofp i32 %23595 to double
  store double %23596, ptr %676, align 8, !tbaa !11
  br label %23597

23597:                                            ; preds = %23590, %23570
  %23598 = load i32, ptr %8, align 4, !tbaa !9
  %23599 = icmp ule i32 6, %23598
  br i1 %23599, label %23600, label %23836

23600:                                            ; preds = %23597
  %23601 = load double, ptr %675, align 8, !tbaa !11
  %23602 = load double, ptr %676, align 8, !tbaa !11
  %23603 = fcmp olt double %23601, %23602
  br i1 %23603, label %23604, label %23836

23604:                                            ; preds = %23600
  %23605 = load i32, ptr %8, align 4, !tbaa !9
  %23606 = icmp ule i32 15, %23605
  br i1 %23606, label %23607, label %23659

23607:                                            ; preds = %23604
  call void @llvm.lifetime.start.p0(i64 8, ptr %677) #3
  %23608 = load double, ptr %675, align 8, !tbaa !11
  %23609 = fcmp olt double 0.000000e+00, %23608
  br i1 %23609, label %23610, label %23612

23610:                                            ; preds = %23607
  %23611 = load double, ptr %675, align 8, !tbaa !11
  br label %23613

23612:                                            ; preds = %23607
  br label %23613

23613:                                            ; preds = %23612, %23610
  %23614 = phi double [ %23611, %23610 ], [ 0.000000e+00, %23612 ]
  store double %23614, ptr %677, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %678) #3
  %23615 = load double, ptr %676, align 8, !tbaa !11
  %23616 = fcmp olt double 0.000000e+00, %23615
  br i1 %23616, label %23617, label %23619

23617:                                            ; preds = %23613
  %23618 = load double, ptr %676, align 8, !tbaa !11
  br label %23620

23619:                                            ; preds = %23613
  br label %23620

23620:                                            ; preds = %23619, %23617
  %23621 = phi double [ %23618, %23617 ], [ 0.000000e+00, %23619 ]
  store double %23621, ptr %678, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %679) #3
  %23622 = load double, ptr %677, align 8, !tbaa !11
  %23623 = load double, ptr %678, align 8, !tbaa !11
  %23624 = fcmp olt double %23622, %23623
  br i1 %23624, label %23625, label %23633

23625:                                            ; preds = %23620
  %23626 = load double, ptr %676, align 8, !tbaa !11
  %23627 = load double, ptr %675, align 8, !tbaa !11
  %23628 = fsub double %23626, %23627
  %23629 = load double, ptr %678, align 8, !tbaa !11
  %23630 = load double, ptr %677, align 8, !tbaa !11
  %23631 = fsub double %23629, %23630
  %23632 = fdiv double %23628, %23631
  br label %23634

23633:                                            ; preds = %23620
  br label %23634

23634:                                            ; preds = %23633, %23625
  %23635 = phi double [ %23632, %23625 ], [ 1.000000e+00, %23633 ]
  store double %23635, ptr %679, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %680) #3
  %23636 = load double, ptr %679, align 8, !tbaa !11
  %23637 = load i32, ptr %674, align 4, !tbaa !9
  %23638 = icmp slt i32 0, %23637
  br i1 %23638, label %23639, label %23641

23639:                                            ; preds = %23634
  %23640 = load i32, ptr %674, align 4, !tbaa !9
  br label %23642

23641:                                            ; preds = %23634
  br label %23642

23642:                                            ; preds = %23641, %23639
  %23643 = phi i32 [ %23640, %23639 ], [ 0, %23641 ]
  %23644 = sitofp i32 %23643 to double
  %23645 = fmul double %23636, %23644
  store double %23645, ptr %680, align 8, !tbaa !11
  %23646 = load double, ptr %680, align 8, !tbaa !11
  %23647 = fcmp ole double 0.000000e+00, %23646
  br i1 %23647, label %23648, label %23651

23648:                                            ; preds = %23642
  %23649 = load double, ptr %680, align 8, !tbaa !11
  %23650 = fadd double %23649, 5.000000e-01
  br label %23654

23651:                                            ; preds = %23642
  %23652 = load double, ptr %680, align 8, !tbaa !11
  %23653 = fsub double %23652, 5.000000e-01
  br label %23654

23654:                                            ; preds = %23651, %23648
  %23655 = phi double [ %23650, %23648 ], [ %23653, %23651 ]
  %23656 = fptosi double %23655 to i32
  store i32 %23656, ptr %674, align 4, !tbaa !9
  %23657 = load double, ptr %677, align 8, !tbaa !11
  store double %23657, ptr %675, align 8, !tbaa !11
  %23658 = load double, ptr %678, align 8, !tbaa !11
  store double %23658, ptr %676, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %680) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %679) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %678) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %677) #3
  br label %23715

23659:                                            ; preds = %23604
  %23660 = load i32, ptr %8, align 4, !tbaa !9
  %23661 = icmp ugt i32 6, %23660
  br i1 %23661, label %23690, label %23662

23662:                                            ; preds = %23659
  %23663 = load i32, ptr %8, align 4, !tbaa !9
  %23664 = icmp ugt i32 15, %23663
  br i1 %23664, label %23665, label %23676

23665:                                            ; preds = %23662
  %23666 = load i32, ptr %9, align 4, !tbaa !9
  %23667 = icmp ugt i32 15, %23666
  br i1 %23667, label %23668, label %23673

23668:                                            ; preds = %23665
  %23669 = load i32, ptr %9, align 4, !tbaa !9
  %23670 = load i32, ptr %8, align 4, !tbaa !9
  %23671 = icmp ugt i32 %23669, %23670
  %23672 = zext i1 %23671 to i32
  br label %23674

23673:                                            ; preds = %23665
  br label %23674

23674:                                            ; preds = %23673, %23668
  %23675 = phi i32 [ %23672, %23668 ], [ 0, %23673 ]
  br label %23687

23676:                                            ; preds = %23662
  %23677 = load i32, ptr %9, align 4, !tbaa !9
  %23678 = icmp ugt i32 15, %23677
  br i1 %23678, label %23679, label %23680

23679:                                            ; preds = %23676
  br label %23685

23680:                                            ; preds = %23676
  %23681 = load i32, ptr %9, align 4, !tbaa !9
  %23682 = load i32, ptr %8, align 4, !tbaa !9
  %23683 = icmp ugt i32 %23681, %23682
  %23684 = zext i1 %23683 to i32
  br label %23685

23685:                                            ; preds = %23680, %23679
  %23686 = phi i32 [ 0, %23679 ], [ %23684, %23680 ]
  br label %23687

23687:                                            ; preds = %23685, %23674
  %23688 = phi i32 [ %23675, %23674 ], [ %23686, %23685 ]
  %23689 = icmp ne i32 %23688, 0
  br label %23690

23690:                                            ; preds = %23687, %23659
  %23691 = phi i1 [ true, %23659 ], [ %23689, %23687 ]
  %23692 = zext i1 %23691 to i32
  %23693 = icmp eq i32 0, %23692
  br i1 %23693, label %23694, label %23714

23694:                                            ; preds = %23690
  %23695 = load double, ptr %675, align 8, !tbaa !11
  %23696 = fcmp ogt double 0.000000e+00, %23695
  br i1 %23696, label %23697, label %23714

23697:                                            ; preds = %23694
  %23698 = load double, ptr %676, align 8, !tbaa !11
  %23699 = fcmp olt double 0.000000e+00, %23698
  br i1 %23699, label %23700, label %23714

23700:                                            ; preds = %23697
  %23701 = load double, ptr %675, align 8, !tbaa !11
  %23702 = fneg double %23701
  %23703 = load double, ptr %676, align 8, !tbaa !11
  %23704 = fcmp olt double %23702, %23703
  br i1 %23704, label %23705, label %23707

23705:                                            ; preds = %23700
  %23706 = load double, ptr %676, align 8, !tbaa !11
  br label %23710

23707:                                            ; preds = %23700
  %23708 = load double, ptr %675, align 8, !tbaa !11
  %23709 = fneg double %23708
  br label %23710

23710:                                            ; preds = %23707, %23705
  %23711 = phi double [ %23706, %23705 ], [ %23709, %23707 ]
  store double %23711, ptr %676, align 8, !tbaa !11
  %23712 = load double, ptr %676, align 8, !tbaa !11
  %23713 = fneg double %23712
  store double %23713, ptr %675, align 8, !tbaa !11
  br label %23714

23714:                                            ; preds = %23710, %23697, %23694, %23690
  br label %23715

23715:                                            ; preds = %23714, %23654
  call void @llvm.lifetime.start.p0(i64 8, ptr %681) #3
  %23716 = load double, ptr %675, align 8, !tbaa !11
  %23717 = fcmp ole double 0.000000e+00, %23716
  %23718 = zext i1 %23717 to i64
  %23719 = select i1 %23717, double 0.000000e+00, double 0xC1E0000000000000
  store double %23719, ptr %681, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %682) #3
  %23720 = load double, ptr %676, align 8, !tbaa !11
  %23721 = fcmp ole double 0.000000e+00, %23720
  %23722 = zext i1 %23721 to i64
  %23723 = select i1 %23721, double 0x41DFFFFFFFC00000, double 0.000000e+00
  store double %23723, ptr %682, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %683) #3
  %23724 = load i32, ptr %674, align 4, !tbaa !9
  %23725 = sitofp i32 %23724 to double
  %23726 = load double, ptr %675, align 8, !tbaa !11
  %23727 = fsub double %23725, %23726
  %23728 = load double, ptr %682, align 8, !tbaa !11
  %23729 = load double, ptr %681, align 8, !tbaa !11
  %23730 = fsub double %23728, %23729
  %23731 = fmul double %23727, %23730
  %23732 = load double, ptr %676, align 8, !tbaa !11
  %23733 = load double, ptr %675, align 8, !tbaa !11
  %23734 = fsub double %23732, %23733
  %23735 = fdiv double %23731, %23734
  %23736 = load double, ptr %681, align 8, !tbaa !11
  %23737 = fadd double %23735, %23736
  store double %23737, ptr %683, align 8, !tbaa !11
  %23738 = load double, ptr %681, align 8, !tbaa !11
  %23739 = load double, ptr %683, align 8, !tbaa !11
  %23740 = fcmp ole double 0.000000e+00, %23739
  br i1 %23740, label %23741, label %23744

23741:                                            ; preds = %23715
  %23742 = load double, ptr %683, align 8, !tbaa !11
  %23743 = fadd double %23742, 5.000000e-01
  br label %23747

23744:                                            ; preds = %23715
  %23745 = load double, ptr %683, align 8, !tbaa !11
  %23746 = fsub double %23745, 5.000000e-01
  br label %23747

23747:                                            ; preds = %23744, %23741
  %23748 = phi double [ %23743, %23741 ], [ %23746, %23744 ]
  %23749 = fcmp olt double %23738, %23748
  br i1 %23749, label %23750, label %23804

23750:                                            ; preds = %23747
  %23751 = load double, ptr %683, align 8, !tbaa !11
  %23752 = fcmp ole double 0.000000e+00, %23751
  br i1 %23752, label %23753, label %23756

23753:                                            ; preds = %23750
  %23754 = load double, ptr %683, align 8, !tbaa !11
  %23755 = fadd double %23754, 5.000000e-01
  br label %23759

23756:                                            ; preds = %23750
  %23757 = load double, ptr %683, align 8, !tbaa !11
  %23758 = fsub double %23757, 5.000000e-01
  br label %23759

23759:                                            ; preds = %23756, %23753
  %23760 = phi double [ %23755, %23753 ], [ %23758, %23756 ]
  %23761 = load double, ptr %682, align 8, !tbaa !11
  %23762 = fcmp ole double %23760, %23761
  br i1 %23762, label %23763, label %23774

23763:                                            ; preds = %23759
  %23764 = load double, ptr %683, align 8, !tbaa !11
  %23765 = fcmp ole double 0.000000e+00, %23764
  br i1 %23765, label %23766, label %23769

23766:                                            ; preds = %23763
  %23767 = load double, ptr %683, align 8, !tbaa !11
  %23768 = fadd double %23767, 5.000000e-01
  br label %23772

23769:                                            ; preds = %23763
  %23770 = load double, ptr %683, align 8, !tbaa !11
  %23771 = fsub double %23770, 5.000000e-01
  br label %23772

23772:                                            ; preds = %23769, %23766
  %23773 = phi double [ %23768, %23766 ], [ %23771, %23769 ]
  br label %23802

23774:                                            ; preds = %23759
  %23775 = load double, ptr %683, align 8, !tbaa !11
  %23776 = fcmp ole double 0.000000e+00, %23775
  br i1 %23776, label %23777, label %23780

23777:                                            ; preds = %23774
  %23778 = load double, ptr %683, align 8, !tbaa !11
  %23779 = fadd double %23778, 5.000000e-01
  br label %23783

23780:                                            ; preds = %23774
  %23781 = load double, ptr %683, align 8, !tbaa !11
  %23782 = fsub double %23781, 5.000000e-01
  br label %23783

23783:                                            ; preds = %23780, %23777
  %23784 = phi double [ %23779, %23777 ], [ %23782, %23780 ]
  %23785 = load double, ptr %682, align 8, !tbaa !11
  %23786 = fcmp olt double %23784, %23785
  br i1 %23786, label %23787, label %23798

23787:                                            ; preds = %23783
  %23788 = load double, ptr %683, align 8, !tbaa !11
  %23789 = fcmp ole double 0.000000e+00, %23788
  br i1 %23789, label %23790, label %23793

23790:                                            ; preds = %23787
  %23791 = load double, ptr %683, align 8, !tbaa !11
  %23792 = fadd double %23791, 5.000000e-01
  br label %23796

23793:                                            ; preds = %23787
  %23794 = load double, ptr %683, align 8, !tbaa !11
  %23795 = fsub double %23794, 5.000000e-01
  br label %23796

23796:                                            ; preds = %23793, %23790
  %23797 = phi double [ %23792, %23790 ], [ %23795, %23793 ]
  br label %23800

23798:                                            ; preds = %23783
  %23799 = load double, ptr %682, align 8, !tbaa !11
  br label %23800

23800:                                            ; preds = %23798, %23796
  %23801 = phi double [ %23797, %23796 ], [ %23799, %23798 ]
  br label %23802

23802:                                            ; preds = %23800, %23772
  %23803 = phi double [ %23773, %23772 ], [ %23801, %23800 ]
  br label %23832

23804:                                            ; preds = %23747
  %23805 = load double, ptr %681, align 8, !tbaa !11
  %23806 = load double, ptr %683, align 8, !tbaa !11
  %23807 = fcmp ole double 0.000000e+00, %23806
  br i1 %23807, label %23808, label %23811

23808:                                            ; preds = %23804
  %23809 = load double, ptr %683, align 8, !tbaa !11
  %23810 = fadd double %23809, 5.000000e-01
  br label %23814

23811:                                            ; preds = %23804
  %23812 = load double, ptr %683, align 8, !tbaa !11
  %23813 = fsub double %23812, 5.000000e-01
  br label %23814

23814:                                            ; preds = %23811, %23808
  %23815 = phi double [ %23810, %23808 ], [ %23813, %23811 ]
  %23816 = fcmp olt double %23805, %23815
  br i1 %23816, label %23817, label %23828

23817:                                            ; preds = %23814
  %23818 = load double, ptr %683, align 8, !tbaa !11
  %23819 = fcmp ole double 0.000000e+00, %23818
  br i1 %23819, label %23820, label %23823

23820:                                            ; preds = %23817
  %23821 = load double, ptr %683, align 8, !tbaa !11
  %23822 = fadd double %23821, 5.000000e-01
  br label %23826

23823:                                            ; preds = %23817
  %23824 = load double, ptr %683, align 8, !tbaa !11
  %23825 = fsub double %23824, 5.000000e-01
  br label %23826

23826:                                            ; preds = %23823, %23820
  %23827 = phi double [ %23822, %23820 ], [ %23825, %23823 ]
  br label %23830

23828:                                            ; preds = %23814
  %23829 = load double, ptr %681, align 8, !tbaa !11
  br label %23830

23830:                                            ; preds = %23828, %23826
  %23831 = phi double [ %23827, %23826 ], [ %23829, %23828 ]
  br label %23832

23832:                                            ; preds = %23830, %23802
  %23833 = phi double [ %23803, %23802 ], [ %23831, %23830 ]
  %23834 = fptosi double %23833 to i32
  %23835 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %23834, ptr %23835, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %683) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %682) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %681) #3
  br label %23912

23836:                                            ; preds = %23600, %23597
  %23837 = load i32, ptr %8, align 4, !tbaa !9
  %23838 = icmp ugt i32 6, %23837
  br i1 %23838, label %23867, label %23839

23839:                                            ; preds = %23836
  %23840 = load i32, ptr %8, align 4, !tbaa !9
  %23841 = icmp ugt i32 15, %23840
  br i1 %23841, label %23842, label %23853

23842:                                            ; preds = %23839
  %23843 = load i32, ptr %9, align 4, !tbaa !9
  %23844 = icmp ugt i32 15, %23843
  br i1 %23844, label %23845, label %23850

23845:                                            ; preds = %23842
  %23846 = load i32, ptr %9, align 4, !tbaa !9
  %23847 = load i32, ptr %8, align 4, !tbaa !9
  %23848 = icmp ugt i32 %23846, %23847
  %23849 = zext i1 %23848 to i32
  br label %23851

23850:                                            ; preds = %23842
  br label %23851

23851:                                            ; preds = %23850, %23845
  %23852 = phi i32 [ %23849, %23845 ], [ 0, %23850 ]
  br label %23864

23853:                                            ; preds = %23839
  %23854 = load i32, ptr %9, align 4, !tbaa !9
  %23855 = icmp ugt i32 15, %23854
  br i1 %23855, label %23856, label %23857

23856:                                            ; preds = %23853
  br label %23862

23857:                                            ; preds = %23853
  %23858 = load i32, ptr %9, align 4, !tbaa !9
  %23859 = load i32, ptr %8, align 4, !tbaa !9
  %23860 = icmp ugt i32 %23858, %23859
  %23861 = zext i1 %23860 to i32
  br label %23862

23862:                                            ; preds = %23857, %23856
  %23863 = phi i32 [ 0, %23856 ], [ %23861, %23857 ]
  br label %23864

23864:                                            ; preds = %23862, %23851
  %23865 = phi i32 [ %23852, %23851 ], [ %23863, %23862 ]
  %23866 = icmp ne i32 %23865, 0
  br label %23867

23867:                                            ; preds = %23864, %23836
  %23868 = phi i1 [ true, %23836 ], [ %23866, %23864 ]
  %23869 = zext i1 %23868 to i32
  %23870 = icmp eq i32 0, %23869
  br i1 %23870, label %23871, label %23908

23871:                                            ; preds = %23867
  %23872 = load i32, ptr %674, align 4, !tbaa !9
  %23873 = sitofp i32 %23872 to double
  %23874 = fcmp olt double 0xC1E0000000000000, %23873
  br i1 %23874, label %23875, label %23894

23875:                                            ; preds = %23871
  %23876 = load i32, ptr %674, align 4, !tbaa !9
  %23877 = sitofp i32 %23876 to double
  %23878 = fcmp ole double %23877, 0x41DFFFFFFFC00000
  br i1 %23878, label %23879, label %23882

23879:                                            ; preds = %23875
  %23880 = load i32, ptr %674, align 4, !tbaa !9
  %23881 = sitofp i32 %23880 to double
  br label %23892

23882:                                            ; preds = %23875
  %23883 = load i32, ptr %674, align 4, !tbaa !9
  %23884 = sitofp i32 %23883 to double
  %23885 = fcmp olt double %23884, 0x41DFFFFFFFC00000
  br i1 %23885, label %23886, label %23889

23886:                                            ; preds = %23882
  %23887 = load i32, ptr %674, align 4, !tbaa !9
  %23888 = sitofp i32 %23887 to double
  br label %23890

23889:                                            ; preds = %23882
  br label %23890

23890:                                            ; preds = %23889, %23886
  %23891 = phi double [ %23888, %23886 ], [ 0x41DFFFFFFFC00000, %23889 ]
  br label %23892

23892:                                            ; preds = %23890, %23879
  %23893 = phi double [ %23881, %23879 ], [ %23891, %23890 ]
  br label %23904

23894:                                            ; preds = %23871
  %23895 = load i32, ptr %674, align 4, !tbaa !9
  %23896 = sitofp i32 %23895 to double
  %23897 = fcmp olt double 0xC1E0000000000000, %23896
  br i1 %23897, label %23898, label %23901

23898:                                            ; preds = %23894
  %23899 = load i32, ptr %674, align 4, !tbaa !9
  %23900 = sitofp i32 %23899 to double
  br label %23902

23901:                                            ; preds = %23894
  br label %23902

23902:                                            ; preds = %23901, %23898
  %23903 = phi double [ %23900, %23898 ], [ 0xC1E0000000000000, %23901 ]
  br label %23904

23904:                                            ; preds = %23902, %23892
  %23905 = phi double [ %23893, %23892 ], [ %23903, %23902 ]
  %23906 = fptosi double %23905 to i32
  %23907 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %23906, ptr %23907, align 4, !tbaa !9
  br label %23911

23908:                                            ; preds = %23867
  %23909 = load i32, ptr %674, align 4, !tbaa !9
  %23910 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %23909, ptr %23910, align 4, !tbaa !9
  br label %23911

23911:                                            ; preds = %23908, %23904
  br label %23912

23912:                                            ; preds = %23911, %23832
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %676) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %675) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %674) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %673) #3
  br label %23913

23913:                                            ; preds = %23912
  br label %23914

23914:                                            ; preds = %23913
  br label %26843

23915:                                            ; preds = %23220
  br label %23916

23916:                                            ; preds = %23915
  call void @llvm.lifetime.start.p0(i64 8, ptr %684) #3
  store double 5.000000e-01, ptr %684, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %685) #3
  %23917 = load ptr, ptr %10, align 8, !tbaa !5
  %23918 = load i16, ptr %23917, align 2, !tbaa !15
  store i16 %23918, ptr %685, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %686) #3
  store double 0.000000e+00, ptr %686, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %687) #3
  store double 0.000000e+00, ptr %687, align 8, !tbaa !11
  %23919 = load ptr, ptr %11, align 8, !tbaa !5
  %23920 = icmp ne ptr null, %23919
  br i1 %23920, label %23921, label %23947

23921:                                            ; preds = %23916
  %23922 = load ptr, ptr %12, align 8, !tbaa !5
  %23923 = icmp ne ptr null, %23922
  br i1 %23923, label %23924, label %23939

23924:                                            ; preds = %23921
  %23925 = load ptr, ptr %11, align 8, !tbaa !5
  %23926 = load i16, ptr %23925, align 2, !tbaa !15
  %23927 = sext i16 %23926 to i32
  %23928 = load i16, ptr %685, align 2, !tbaa !15
  %23929 = sext i16 %23928 to i32
  %23930 = icmp sle i32 %23927, %23929
  br i1 %23930, label %23931, label %23939

23931:                                            ; preds = %23924
  %23932 = load i16, ptr %685, align 2, !tbaa !15
  %23933 = sext i16 %23932 to i32
  %23934 = load ptr, ptr %12, align 8, !tbaa !5
  %23935 = load i16, ptr %23934, align 2, !tbaa !15
  %23936 = sext i16 %23935 to i32
  %23937 = icmp sle i32 %23933, %23936
  br i1 %23937, label %23938, label %23939

23938:                                            ; preds = %23931
  br label %23940

23939:                                            ; preds = %23931, %23924, %23921
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.24, i32 noundef 485, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

23940:                                            ; preds = %23938
  %23941 = load ptr, ptr %11, align 8, !tbaa !5
  %23942 = load i16, ptr %23941, align 2, !tbaa !15
  %23943 = sitofp i16 %23942 to double
  store double %23943, ptr %686, align 8, !tbaa !11
  %23944 = load ptr, ptr %12, align 8, !tbaa !5
  %23945 = load i16, ptr %23944, align 2, !tbaa !15
  %23946 = sitofp i16 %23945 to double
  store double %23946, ptr %687, align 8, !tbaa !11
  br label %23947

23947:                                            ; preds = %23940, %23916
  %23948 = load i32, ptr %8, align 4, !tbaa !9
  %23949 = icmp ule i32 6, %23948
  br i1 %23949, label %23950, label %24188

23950:                                            ; preds = %23947
  %23951 = load double, ptr %686, align 8, !tbaa !11
  %23952 = load double, ptr %687, align 8, !tbaa !11
  %23953 = fcmp olt double %23951, %23952
  br i1 %23953, label %23954, label %24188

23954:                                            ; preds = %23950
  %23955 = load i32, ptr %8, align 4, !tbaa !9
  %23956 = icmp ule i32 15, %23955
  br i1 %23956, label %23957, label %24011

23957:                                            ; preds = %23954
  call void @llvm.lifetime.start.p0(i64 8, ptr %688) #3
  %23958 = load double, ptr %686, align 8, !tbaa !11
  %23959 = fcmp olt double 0.000000e+00, %23958
  br i1 %23959, label %23960, label %23962

23960:                                            ; preds = %23957
  %23961 = load double, ptr %686, align 8, !tbaa !11
  br label %23963

23962:                                            ; preds = %23957
  br label %23963

23963:                                            ; preds = %23962, %23960
  %23964 = phi double [ %23961, %23960 ], [ 0.000000e+00, %23962 ]
  store double %23964, ptr %688, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %689) #3
  %23965 = load double, ptr %687, align 8, !tbaa !11
  %23966 = fcmp olt double 0.000000e+00, %23965
  br i1 %23966, label %23967, label %23969

23967:                                            ; preds = %23963
  %23968 = load double, ptr %687, align 8, !tbaa !11
  br label %23970

23969:                                            ; preds = %23963
  br label %23970

23970:                                            ; preds = %23969, %23967
  %23971 = phi double [ %23968, %23967 ], [ 0.000000e+00, %23969 ]
  store double %23971, ptr %689, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %690) #3
  %23972 = load double, ptr %688, align 8, !tbaa !11
  %23973 = load double, ptr %689, align 8, !tbaa !11
  %23974 = fcmp olt double %23972, %23973
  br i1 %23974, label %23975, label %23983

23975:                                            ; preds = %23970
  %23976 = load double, ptr %687, align 8, !tbaa !11
  %23977 = load double, ptr %686, align 8, !tbaa !11
  %23978 = fsub double %23976, %23977
  %23979 = load double, ptr %689, align 8, !tbaa !11
  %23980 = load double, ptr %688, align 8, !tbaa !11
  %23981 = fsub double %23979, %23980
  %23982 = fdiv double %23978, %23981
  br label %23984

23983:                                            ; preds = %23970
  br label %23984

23984:                                            ; preds = %23983, %23975
  %23985 = phi double [ %23982, %23975 ], [ 1.000000e+00, %23983 ]
  store double %23985, ptr %690, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %691) #3
  %23986 = load double, ptr %690, align 8, !tbaa !11
  %23987 = load i16, ptr %685, align 2, !tbaa !15
  %23988 = sext i16 %23987 to i32
  %23989 = icmp slt i32 0, %23988
  br i1 %23989, label %23990, label %23993

23990:                                            ; preds = %23984
  %23991 = load i16, ptr %685, align 2, !tbaa !15
  %23992 = sext i16 %23991 to i32
  br label %23994

23993:                                            ; preds = %23984
  br label %23994

23994:                                            ; preds = %23993, %23990
  %23995 = phi i32 [ %23992, %23990 ], [ 0, %23993 ]
  %23996 = sitofp i32 %23995 to double
  %23997 = fmul double %23986, %23996
  store double %23997, ptr %691, align 8, !tbaa !11
  %23998 = load double, ptr %691, align 8, !tbaa !11
  %23999 = fcmp ole double 0.000000e+00, %23998
  br i1 %23999, label %24000, label %24003

24000:                                            ; preds = %23994
  %24001 = load double, ptr %691, align 8, !tbaa !11
  %24002 = fadd double %24001, 5.000000e-01
  br label %24006

24003:                                            ; preds = %23994
  %24004 = load double, ptr %691, align 8, !tbaa !11
  %24005 = fsub double %24004, 5.000000e-01
  br label %24006

24006:                                            ; preds = %24003, %24000
  %24007 = phi double [ %24002, %24000 ], [ %24005, %24003 ]
  %24008 = fptosi double %24007 to i16
  store i16 %24008, ptr %685, align 2, !tbaa !15
  %24009 = load double, ptr %688, align 8, !tbaa !11
  store double %24009, ptr %686, align 8, !tbaa !11
  %24010 = load double, ptr %689, align 8, !tbaa !11
  store double %24010, ptr %687, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %691) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %690) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %689) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %688) #3
  br label %24067

24011:                                            ; preds = %23954
  %24012 = load i32, ptr %8, align 4, !tbaa !9
  %24013 = icmp ugt i32 6, %24012
  br i1 %24013, label %24042, label %24014

24014:                                            ; preds = %24011
  %24015 = load i32, ptr %8, align 4, !tbaa !9
  %24016 = icmp ugt i32 15, %24015
  br i1 %24016, label %24017, label %24028

24017:                                            ; preds = %24014
  %24018 = load i32, ptr %9, align 4, !tbaa !9
  %24019 = icmp ugt i32 15, %24018
  br i1 %24019, label %24020, label %24025

24020:                                            ; preds = %24017
  %24021 = load i32, ptr %9, align 4, !tbaa !9
  %24022 = load i32, ptr %8, align 4, !tbaa !9
  %24023 = icmp ugt i32 %24021, %24022
  %24024 = zext i1 %24023 to i32
  br label %24026

24025:                                            ; preds = %24017
  br label %24026

24026:                                            ; preds = %24025, %24020
  %24027 = phi i32 [ %24024, %24020 ], [ 0, %24025 ]
  br label %24039

24028:                                            ; preds = %24014
  %24029 = load i32, ptr %9, align 4, !tbaa !9
  %24030 = icmp ugt i32 15, %24029
  br i1 %24030, label %24031, label %24032

24031:                                            ; preds = %24028
  br label %24037

24032:                                            ; preds = %24028
  %24033 = load i32, ptr %9, align 4, !tbaa !9
  %24034 = load i32, ptr %8, align 4, !tbaa !9
  %24035 = icmp ugt i32 %24033, %24034
  %24036 = zext i1 %24035 to i32
  br label %24037

24037:                                            ; preds = %24032, %24031
  %24038 = phi i32 [ 0, %24031 ], [ %24036, %24032 ]
  br label %24039

24039:                                            ; preds = %24037, %24026
  %24040 = phi i32 [ %24027, %24026 ], [ %24038, %24037 ]
  %24041 = icmp ne i32 %24040, 0
  br label %24042

24042:                                            ; preds = %24039, %24011
  %24043 = phi i1 [ true, %24011 ], [ %24041, %24039 ]
  %24044 = zext i1 %24043 to i32
  %24045 = icmp eq i32 0, %24044
  br i1 %24045, label %24046, label %24066

24046:                                            ; preds = %24042
  %24047 = load double, ptr %686, align 8, !tbaa !11
  %24048 = fcmp ogt double 0.000000e+00, %24047
  br i1 %24048, label %24049, label %24066

24049:                                            ; preds = %24046
  %24050 = load double, ptr %687, align 8, !tbaa !11
  %24051 = fcmp olt double 0.000000e+00, %24050
  br i1 %24051, label %24052, label %24066

24052:                                            ; preds = %24049
  %24053 = load double, ptr %686, align 8, !tbaa !11
  %24054 = fneg double %24053
  %24055 = load double, ptr %687, align 8, !tbaa !11
  %24056 = fcmp olt double %24054, %24055
  br i1 %24056, label %24057, label %24059

24057:                                            ; preds = %24052
  %24058 = load double, ptr %687, align 8, !tbaa !11
  br label %24062

24059:                                            ; preds = %24052
  %24060 = load double, ptr %686, align 8, !tbaa !11
  %24061 = fneg double %24060
  br label %24062

24062:                                            ; preds = %24059, %24057
  %24063 = phi double [ %24058, %24057 ], [ %24061, %24059 ]
  store double %24063, ptr %687, align 8, !tbaa !11
  %24064 = load double, ptr %687, align 8, !tbaa !11
  %24065 = fneg double %24064
  store double %24065, ptr %686, align 8, !tbaa !11
  br label %24066

24066:                                            ; preds = %24062, %24049, %24046, %24042
  br label %24067

24067:                                            ; preds = %24066, %24006
  call void @llvm.lifetime.start.p0(i64 8, ptr %692) #3
  %24068 = load double, ptr %686, align 8, !tbaa !11
  %24069 = fcmp ole double 0.000000e+00, %24068
  %24070 = zext i1 %24069 to i64
  %24071 = select i1 %24069, double 0.000000e+00, double 0xC1E0000000000000
  store double %24071, ptr %692, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %693) #3
  %24072 = load double, ptr %687, align 8, !tbaa !11
  %24073 = fcmp ole double 0.000000e+00, %24072
  %24074 = zext i1 %24073 to i64
  %24075 = select i1 %24073, double 0x41DFFFFFFFC00000, double 0.000000e+00
  store double %24075, ptr %693, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %694) #3
  %24076 = load i16, ptr %685, align 2, !tbaa !15
  %24077 = sitofp i16 %24076 to double
  %24078 = load double, ptr %686, align 8, !tbaa !11
  %24079 = fsub double %24077, %24078
  %24080 = load double, ptr %693, align 8, !tbaa !11
  %24081 = load double, ptr %692, align 8, !tbaa !11
  %24082 = fsub double %24080, %24081
  %24083 = fmul double %24079, %24082
  %24084 = load double, ptr %687, align 8, !tbaa !11
  %24085 = load double, ptr %686, align 8, !tbaa !11
  %24086 = fsub double %24084, %24085
  %24087 = fdiv double %24083, %24086
  %24088 = load double, ptr %692, align 8, !tbaa !11
  %24089 = fadd double %24087, %24088
  store double %24089, ptr %694, align 8, !tbaa !11
  %24090 = load double, ptr %692, align 8, !tbaa !11
  %24091 = load double, ptr %694, align 8, !tbaa !11
  %24092 = fcmp ole double 0.000000e+00, %24091
  br i1 %24092, label %24093, label %24096

24093:                                            ; preds = %24067
  %24094 = load double, ptr %694, align 8, !tbaa !11
  %24095 = fadd double %24094, 5.000000e-01
  br label %24099

24096:                                            ; preds = %24067
  %24097 = load double, ptr %694, align 8, !tbaa !11
  %24098 = fsub double %24097, 5.000000e-01
  br label %24099

24099:                                            ; preds = %24096, %24093
  %24100 = phi double [ %24095, %24093 ], [ %24098, %24096 ]
  %24101 = fcmp olt double %24090, %24100
  br i1 %24101, label %24102, label %24156

24102:                                            ; preds = %24099
  %24103 = load double, ptr %694, align 8, !tbaa !11
  %24104 = fcmp ole double 0.000000e+00, %24103
  br i1 %24104, label %24105, label %24108

24105:                                            ; preds = %24102
  %24106 = load double, ptr %694, align 8, !tbaa !11
  %24107 = fadd double %24106, 5.000000e-01
  br label %24111

24108:                                            ; preds = %24102
  %24109 = load double, ptr %694, align 8, !tbaa !11
  %24110 = fsub double %24109, 5.000000e-01
  br label %24111

24111:                                            ; preds = %24108, %24105
  %24112 = phi double [ %24107, %24105 ], [ %24110, %24108 ]
  %24113 = load double, ptr %693, align 8, !tbaa !11
  %24114 = fcmp ole double %24112, %24113
  br i1 %24114, label %24115, label %24126

24115:                                            ; preds = %24111
  %24116 = load double, ptr %694, align 8, !tbaa !11
  %24117 = fcmp ole double 0.000000e+00, %24116
  br i1 %24117, label %24118, label %24121

24118:                                            ; preds = %24115
  %24119 = load double, ptr %694, align 8, !tbaa !11
  %24120 = fadd double %24119, 5.000000e-01
  br label %24124

24121:                                            ; preds = %24115
  %24122 = load double, ptr %694, align 8, !tbaa !11
  %24123 = fsub double %24122, 5.000000e-01
  br label %24124

24124:                                            ; preds = %24121, %24118
  %24125 = phi double [ %24120, %24118 ], [ %24123, %24121 ]
  br label %24154

24126:                                            ; preds = %24111
  %24127 = load double, ptr %694, align 8, !tbaa !11
  %24128 = fcmp ole double 0.000000e+00, %24127
  br i1 %24128, label %24129, label %24132

24129:                                            ; preds = %24126
  %24130 = load double, ptr %694, align 8, !tbaa !11
  %24131 = fadd double %24130, 5.000000e-01
  br label %24135

24132:                                            ; preds = %24126
  %24133 = load double, ptr %694, align 8, !tbaa !11
  %24134 = fsub double %24133, 5.000000e-01
  br label %24135

24135:                                            ; preds = %24132, %24129
  %24136 = phi double [ %24131, %24129 ], [ %24134, %24132 ]
  %24137 = load double, ptr %693, align 8, !tbaa !11
  %24138 = fcmp olt double %24136, %24137
  br i1 %24138, label %24139, label %24150

24139:                                            ; preds = %24135
  %24140 = load double, ptr %694, align 8, !tbaa !11
  %24141 = fcmp ole double 0.000000e+00, %24140
  br i1 %24141, label %24142, label %24145

24142:                                            ; preds = %24139
  %24143 = load double, ptr %694, align 8, !tbaa !11
  %24144 = fadd double %24143, 5.000000e-01
  br label %24148

24145:                                            ; preds = %24139
  %24146 = load double, ptr %694, align 8, !tbaa !11
  %24147 = fsub double %24146, 5.000000e-01
  br label %24148

24148:                                            ; preds = %24145, %24142
  %24149 = phi double [ %24144, %24142 ], [ %24147, %24145 ]
  br label %24152

24150:                                            ; preds = %24135
  %24151 = load double, ptr %693, align 8, !tbaa !11
  br label %24152

24152:                                            ; preds = %24150, %24148
  %24153 = phi double [ %24149, %24148 ], [ %24151, %24150 ]
  br label %24154

24154:                                            ; preds = %24152, %24124
  %24155 = phi double [ %24125, %24124 ], [ %24153, %24152 ]
  br label %24184

24156:                                            ; preds = %24099
  %24157 = load double, ptr %692, align 8, !tbaa !11
  %24158 = load double, ptr %694, align 8, !tbaa !11
  %24159 = fcmp ole double 0.000000e+00, %24158
  br i1 %24159, label %24160, label %24163

24160:                                            ; preds = %24156
  %24161 = load double, ptr %694, align 8, !tbaa !11
  %24162 = fadd double %24161, 5.000000e-01
  br label %24166

24163:                                            ; preds = %24156
  %24164 = load double, ptr %694, align 8, !tbaa !11
  %24165 = fsub double %24164, 5.000000e-01
  br label %24166

24166:                                            ; preds = %24163, %24160
  %24167 = phi double [ %24162, %24160 ], [ %24165, %24163 ]
  %24168 = fcmp olt double %24157, %24167
  br i1 %24168, label %24169, label %24180

24169:                                            ; preds = %24166
  %24170 = load double, ptr %694, align 8, !tbaa !11
  %24171 = fcmp ole double 0.000000e+00, %24170
  br i1 %24171, label %24172, label %24175

24172:                                            ; preds = %24169
  %24173 = load double, ptr %694, align 8, !tbaa !11
  %24174 = fadd double %24173, 5.000000e-01
  br label %24178

24175:                                            ; preds = %24169
  %24176 = load double, ptr %694, align 8, !tbaa !11
  %24177 = fsub double %24176, 5.000000e-01
  br label %24178

24178:                                            ; preds = %24175, %24172
  %24179 = phi double [ %24174, %24172 ], [ %24177, %24175 ]
  br label %24182

24180:                                            ; preds = %24166
  %24181 = load double, ptr %692, align 8, !tbaa !11
  br label %24182

24182:                                            ; preds = %24180, %24178
  %24183 = phi double [ %24179, %24178 ], [ %24181, %24180 ]
  br label %24184

24184:                                            ; preds = %24182, %24154
  %24185 = phi double [ %24155, %24154 ], [ %24183, %24182 ]
  %24186 = fptosi double %24185 to i32
  %24187 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %24186, ptr %24187, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %694) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %693) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %692) #3
  br label %24272

24188:                                            ; preds = %23950, %23947
  %24189 = load i32, ptr %8, align 4, !tbaa !9
  %24190 = icmp ugt i32 6, %24189
  br i1 %24190, label %24219, label %24191

24191:                                            ; preds = %24188
  %24192 = load i32, ptr %8, align 4, !tbaa !9
  %24193 = icmp ugt i32 15, %24192
  br i1 %24193, label %24194, label %24205

24194:                                            ; preds = %24191
  %24195 = load i32, ptr %9, align 4, !tbaa !9
  %24196 = icmp ugt i32 15, %24195
  br i1 %24196, label %24197, label %24202

24197:                                            ; preds = %24194
  %24198 = load i32, ptr %9, align 4, !tbaa !9
  %24199 = load i32, ptr %8, align 4, !tbaa !9
  %24200 = icmp ugt i32 %24198, %24199
  %24201 = zext i1 %24200 to i32
  br label %24203

24202:                                            ; preds = %24194
  br label %24203

24203:                                            ; preds = %24202, %24197
  %24204 = phi i32 [ %24201, %24197 ], [ 0, %24202 ]
  br label %24216

24205:                                            ; preds = %24191
  %24206 = load i32, ptr %9, align 4, !tbaa !9
  %24207 = icmp ugt i32 15, %24206
  br i1 %24207, label %24208, label %24209

24208:                                            ; preds = %24205
  br label %24214

24209:                                            ; preds = %24205
  %24210 = load i32, ptr %9, align 4, !tbaa !9
  %24211 = load i32, ptr %8, align 4, !tbaa !9
  %24212 = icmp ugt i32 %24210, %24211
  %24213 = zext i1 %24212 to i32
  br label %24214

24214:                                            ; preds = %24209, %24208
  %24215 = phi i32 [ 0, %24208 ], [ %24213, %24209 ]
  br label %24216

24216:                                            ; preds = %24214, %24203
  %24217 = phi i32 [ %24204, %24203 ], [ %24215, %24214 ]
  %24218 = icmp ne i32 %24217, 0
  br label %24219

24219:                                            ; preds = %24216, %24188
  %24220 = phi i1 [ true, %24188 ], [ %24218, %24216 ]
  %24221 = zext i1 %24220 to i32
  %24222 = icmp eq i32 0, %24221
  br i1 %24222, label %24223, label %24267

24223:                                            ; preds = %24219
  %24224 = load i16, ptr %685, align 2, !tbaa !15
  %24225 = sext i16 %24224 to i32
  %24226 = sitofp i32 %24225 to double
  %24227 = fcmp olt double 0xC1E0000000000000, %24226
  br i1 %24227, label %24228, label %24251

24228:                                            ; preds = %24223
  %24229 = load i16, ptr %685, align 2, !tbaa !15
  %24230 = sext i16 %24229 to i32
  %24231 = sitofp i32 %24230 to double
  %24232 = fcmp ole double %24231, 0x41DFFFFFFFC00000
  br i1 %24232, label %24233, label %24237

24233:                                            ; preds = %24228
  %24234 = load i16, ptr %685, align 2, !tbaa !15
  %24235 = sext i16 %24234 to i32
  %24236 = sitofp i32 %24235 to double
  br label %24249

24237:                                            ; preds = %24228
  %24238 = load i16, ptr %685, align 2, !tbaa !15
  %24239 = sext i16 %24238 to i32
  %24240 = sitofp i32 %24239 to double
  %24241 = fcmp olt double %24240, 0x41DFFFFFFFC00000
  br i1 %24241, label %24242, label %24246

24242:                                            ; preds = %24237
  %24243 = load i16, ptr %685, align 2, !tbaa !15
  %24244 = sext i16 %24243 to i32
  %24245 = sitofp i32 %24244 to double
  br label %24247

24246:                                            ; preds = %24237
  br label %24247

24247:                                            ; preds = %24246, %24242
  %24248 = phi double [ %24245, %24242 ], [ 0x41DFFFFFFFC00000, %24246 ]
  br label %24249

24249:                                            ; preds = %24247, %24233
  %24250 = phi double [ %24236, %24233 ], [ %24248, %24247 ]
  br label %24263

24251:                                            ; preds = %24223
  %24252 = load i16, ptr %685, align 2, !tbaa !15
  %24253 = sext i16 %24252 to i32
  %24254 = sitofp i32 %24253 to double
  %24255 = fcmp olt double 0xC1E0000000000000, %24254
  br i1 %24255, label %24256, label %24260

24256:                                            ; preds = %24251
  %24257 = load i16, ptr %685, align 2, !tbaa !15
  %24258 = sext i16 %24257 to i32
  %24259 = sitofp i32 %24258 to double
  br label %24261

24260:                                            ; preds = %24251
  br label %24261

24261:                                            ; preds = %24260, %24256
  %24262 = phi double [ %24259, %24256 ], [ 0xC1E0000000000000, %24260 ]
  br label %24263

24263:                                            ; preds = %24261, %24249
  %24264 = phi double [ %24250, %24249 ], [ %24262, %24261 ]
  %24265 = fptosi double %24264 to i32
  %24266 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %24265, ptr %24266, align 4, !tbaa !9
  br label %24271

24267:                                            ; preds = %24219
  %24268 = load i16, ptr %685, align 2, !tbaa !15
  %24269 = sext i16 %24268 to i32
  %24270 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %24269, ptr %24270, align 4, !tbaa !9
  br label %24271

24271:                                            ; preds = %24267, %24263
  br label %24272

24272:                                            ; preds = %24271, %24184
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %687) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %686) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %685) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %684) #3
  br label %24273

24273:                                            ; preds = %24272
  br label %24274

24274:                                            ; preds = %24273
  br label %26843

24275:                                            ; preds = %23220
  br label %24276

24276:                                            ; preds = %24275
  call void @llvm.lifetime.start.p0(i64 8, ptr %695) #3
  store double 5.000000e-01, ptr %695, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %696) #3
  %24277 = load ptr, ptr %10, align 8, !tbaa !5
  %24278 = load i8, ptr %24277, align 1, !tbaa !17
  store i8 %24278, ptr %696, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %697) #3
  store double 0.000000e+00, ptr %697, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %698) #3
  store double 0.000000e+00, ptr %698, align 8, !tbaa !11
  %24279 = load ptr, ptr %11, align 8, !tbaa !5
  %24280 = icmp ne ptr null, %24279
  br i1 %24280, label %24281, label %24307

24281:                                            ; preds = %24276
  %24282 = load ptr, ptr %12, align 8, !tbaa !5
  %24283 = icmp ne ptr null, %24282
  br i1 %24283, label %24284, label %24299

24284:                                            ; preds = %24281
  %24285 = load ptr, ptr %11, align 8, !tbaa !5
  %24286 = load i8, ptr %24285, align 1, !tbaa !17
  %24287 = sext i8 %24286 to i32
  %24288 = load i8, ptr %696, align 1, !tbaa !17
  %24289 = sext i8 %24288 to i32
  %24290 = icmp sle i32 %24287, %24289
  br i1 %24290, label %24291, label %24299

24291:                                            ; preds = %24284
  %24292 = load i8, ptr %696, align 1, !tbaa !17
  %24293 = sext i8 %24292 to i32
  %24294 = load ptr, ptr %12, align 8, !tbaa !5
  %24295 = load i8, ptr %24294, align 1, !tbaa !17
  %24296 = sext i8 %24295 to i32
  %24297 = icmp sle i32 %24293, %24296
  br i1 %24297, label %24298, label %24299

24298:                                            ; preds = %24291
  br label %24300

24299:                                            ; preds = %24291, %24284, %24281
  call void @__assert_fail(ptr noundef @.str.45, ptr noundef @.str.24, i32 noundef 485, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

24300:                                            ; preds = %24298
  %24301 = load ptr, ptr %11, align 8, !tbaa !5
  %24302 = load i8, ptr %24301, align 1, !tbaa !17
  %24303 = sitofp i8 %24302 to double
  store double %24303, ptr %697, align 8, !tbaa !11
  %24304 = load ptr, ptr %12, align 8, !tbaa !5
  %24305 = load i8, ptr %24304, align 1, !tbaa !17
  %24306 = sitofp i8 %24305 to double
  store double %24306, ptr %698, align 8, !tbaa !11
  br label %24307

24307:                                            ; preds = %24300, %24276
  %24308 = load i32, ptr %8, align 4, !tbaa !9
  %24309 = icmp ule i32 6, %24308
  br i1 %24309, label %24310, label %24548

24310:                                            ; preds = %24307
  %24311 = load double, ptr %697, align 8, !tbaa !11
  %24312 = load double, ptr %698, align 8, !tbaa !11
  %24313 = fcmp olt double %24311, %24312
  br i1 %24313, label %24314, label %24548

24314:                                            ; preds = %24310
  %24315 = load i32, ptr %8, align 4, !tbaa !9
  %24316 = icmp ule i32 15, %24315
  br i1 %24316, label %24317, label %24371

24317:                                            ; preds = %24314
  call void @llvm.lifetime.start.p0(i64 8, ptr %699) #3
  %24318 = load double, ptr %697, align 8, !tbaa !11
  %24319 = fcmp olt double 0.000000e+00, %24318
  br i1 %24319, label %24320, label %24322

24320:                                            ; preds = %24317
  %24321 = load double, ptr %697, align 8, !tbaa !11
  br label %24323

24322:                                            ; preds = %24317
  br label %24323

24323:                                            ; preds = %24322, %24320
  %24324 = phi double [ %24321, %24320 ], [ 0.000000e+00, %24322 ]
  store double %24324, ptr %699, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %700) #3
  %24325 = load double, ptr %698, align 8, !tbaa !11
  %24326 = fcmp olt double 0.000000e+00, %24325
  br i1 %24326, label %24327, label %24329

24327:                                            ; preds = %24323
  %24328 = load double, ptr %698, align 8, !tbaa !11
  br label %24330

24329:                                            ; preds = %24323
  br label %24330

24330:                                            ; preds = %24329, %24327
  %24331 = phi double [ %24328, %24327 ], [ 0.000000e+00, %24329 ]
  store double %24331, ptr %700, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %701) #3
  %24332 = load double, ptr %699, align 8, !tbaa !11
  %24333 = load double, ptr %700, align 8, !tbaa !11
  %24334 = fcmp olt double %24332, %24333
  br i1 %24334, label %24335, label %24343

24335:                                            ; preds = %24330
  %24336 = load double, ptr %698, align 8, !tbaa !11
  %24337 = load double, ptr %697, align 8, !tbaa !11
  %24338 = fsub double %24336, %24337
  %24339 = load double, ptr %700, align 8, !tbaa !11
  %24340 = load double, ptr %699, align 8, !tbaa !11
  %24341 = fsub double %24339, %24340
  %24342 = fdiv double %24338, %24341
  br label %24344

24343:                                            ; preds = %24330
  br label %24344

24344:                                            ; preds = %24343, %24335
  %24345 = phi double [ %24342, %24335 ], [ 1.000000e+00, %24343 ]
  store double %24345, ptr %701, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %702) #3
  %24346 = load double, ptr %701, align 8, !tbaa !11
  %24347 = load i8, ptr %696, align 1, !tbaa !17
  %24348 = sext i8 %24347 to i32
  %24349 = icmp slt i32 0, %24348
  br i1 %24349, label %24350, label %24353

24350:                                            ; preds = %24344
  %24351 = load i8, ptr %696, align 1, !tbaa !17
  %24352 = sext i8 %24351 to i32
  br label %24354

24353:                                            ; preds = %24344
  br label %24354

24354:                                            ; preds = %24353, %24350
  %24355 = phi i32 [ %24352, %24350 ], [ 0, %24353 ]
  %24356 = sitofp i32 %24355 to double
  %24357 = fmul double %24346, %24356
  store double %24357, ptr %702, align 8, !tbaa !11
  %24358 = load double, ptr %702, align 8, !tbaa !11
  %24359 = fcmp ole double 0.000000e+00, %24358
  br i1 %24359, label %24360, label %24363

24360:                                            ; preds = %24354
  %24361 = load double, ptr %702, align 8, !tbaa !11
  %24362 = fadd double %24361, 5.000000e-01
  br label %24366

24363:                                            ; preds = %24354
  %24364 = load double, ptr %702, align 8, !tbaa !11
  %24365 = fsub double %24364, 5.000000e-01
  br label %24366

24366:                                            ; preds = %24363, %24360
  %24367 = phi double [ %24362, %24360 ], [ %24365, %24363 ]
  %24368 = fptosi double %24367 to i8
  store i8 %24368, ptr %696, align 1, !tbaa !17
  %24369 = load double, ptr %699, align 8, !tbaa !11
  store double %24369, ptr %697, align 8, !tbaa !11
  %24370 = load double, ptr %700, align 8, !tbaa !11
  store double %24370, ptr %698, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %702) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %701) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %700) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %699) #3
  br label %24427

24371:                                            ; preds = %24314
  %24372 = load i32, ptr %8, align 4, !tbaa !9
  %24373 = icmp ugt i32 6, %24372
  br i1 %24373, label %24402, label %24374

24374:                                            ; preds = %24371
  %24375 = load i32, ptr %8, align 4, !tbaa !9
  %24376 = icmp ugt i32 15, %24375
  br i1 %24376, label %24377, label %24388

24377:                                            ; preds = %24374
  %24378 = load i32, ptr %9, align 4, !tbaa !9
  %24379 = icmp ugt i32 15, %24378
  br i1 %24379, label %24380, label %24385

24380:                                            ; preds = %24377
  %24381 = load i32, ptr %9, align 4, !tbaa !9
  %24382 = load i32, ptr %8, align 4, !tbaa !9
  %24383 = icmp ugt i32 %24381, %24382
  %24384 = zext i1 %24383 to i32
  br label %24386

24385:                                            ; preds = %24377
  br label %24386

24386:                                            ; preds = %24385, %24380
  %24387 = phi i32 [ %24384, %24380 ], [ 0, %24385 ]
  br label %24399

24388:                                            ; preds = %24374
  %24389 = load i32, ptr %9, align 4, !tbaa !9
  %24390 = icmp ugt i32 15, %24389
  br i1 %24390, label %24391, label %24392

24391:                                            ; preds = %24388
  br label %24397

24392:                                            ; preds = %24388
  %24393 = load i32, ptr %9, align 4, !tbaa !9
  %24394 = load i32, ptr %8, align 4, !tbaa !9
  %24395 = icmp ugt i32 %24393, %24394
  %24396 = zext i1 %24395 to i32
  br label %24397

24397:                                            ; preds = %24392, %24391
  %24398 = phi i32 [ 0, %24391 ], [ %24396, %24392 ]
  br label %24399

24399:                                            ; preds = %24397, %24386
  %24400 = phi i32 [ %24387, %24386 ], [ %24398, %24397 ]
  %24401 = icmp ne i32 %24400, 0
  br label %24402

24402:                                            ; preds = %24399, %24371
  %24403 = phi i1 [ true, %24371 ], [ %24401, %24399 ]
  %24404 = zext i1 %24403 to i32
  %24405 = icmp eq i32 0, %24404
  br i1 %24405, label %24406, label %24426

24406:                                            ; preds = %24402
  %24407 = load double, ptr %697, align 8, !tbaa !11
  %24408 = fcmp ogt double 0.000000e+00, %24407
  br i1 %24408, label %24409, label %24426

24409:                                            ; preds = %24406
  %24410 = load double, ptr %698, align 8, !tbaa !11
  %24411 = fcmp olt double 0.000000e+00, %24410
  br i1 %24411, label %24412, label %24426

24412:                                            ; preds = %24409
  %24413 = load double, ptr %697, align 8, !tbaa !11
  %24414 = fneg double %24413
  %24415 = load double, ptr %698, align 8, !tbaa !11
  %24416 = fcmp olt double %24414, %24415
  br i1 %24416, label %24417, label %24419

24417:                                            ; preds = %24412
  %24418 = load double, ptr %698, align 8, !tbaa !11
  br label %24422

24419:                                            ; preds = %24412
  %24420 = load double, ptr %697, align 8, !tbaa !11
  %24421 = fneg double %24420
  br label %24422

24422:                                            ; preds = %24419, %24417
  %24423 = phi double [ %24418, %24417 ], [ %24421, %24419 ]
  store double %24423, ptr %698, align 8, !tbaa !11
  %24424 = load double, ptr %698, align 8, !tbaa !11
  %24425 = fneg double %24424
  store double %24425, ptr %697, align 8, !tbaa !11
  br label %24426

24426:                                            ; preds = %24422, %24409, %24406, %24402
  br label %24427

24427:                                            ; preds = %24426, %24366
  call void @llvm.lifetime.start.p0(i64 8, ptr %703) #3
  %24428 = load double, ptr %697, align 8, !tbaa !11
  %24429 = fcmp ole double 0.000000e+00, %24428
  %24430 = zext i1 %24429 to i64
  %24431 = select i1 %24429, double 0.000000e+00, double 0xC1E0000000000000
  store double %24431, ptr %703, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %704) #3
  %24432 = load double, ptr %698, align 8, !tbaa !11
  %24433 = fcmp ole double 0.000000e+00, %24432
  %24434 = zext i1 %24433 to i64
  %24435 = select i1 %24433, double 0x41DFFFFFFFC00000, double 0.000000e+00
  store double %24435, ptr %704, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %705) #3
  %24436 = load i8, ptr %696, align 1, !tbaa !17
  %24437 = sitofp i8 %24436 to double
  %24438 = load double, ptr %697, align 8, !tbaa !11
  %24439 = fsub double %24437, %24438
  %24440 = load double, ptr %704, align 8, !tbaa !11
  %24441 = load double, ptr %703, align 8, !tbaa !11
  %24442 = fsub double %24440, %24441
  %24443 = fmul double %24439, %24442
  %24444 = load double, ptr %698, align 8, !tbaa !11
  %24445 = load double, ptr %697, align 8, !tbaa !11
  %24446 = fsub double %24444, %24445
  %24447 = fdiv double %24443, %24446
  %24448 = load double, ptr %703, align 8, !tbaa !11
  %24449 = fadd double %24447, %24448
  store double %24449, ptr %705, align 8, !tbaa !11
  %24450 = load double, ptr %703, align 8, !tbaa !11
  %24451 = load double, ptr %705, align 8, !tbaa !11
  %24452 = fcmp ole double 0.000000e+00, %24451
  br i1 %24452, label %24453, label %24456

24453:                                            ; preds = %24427
  %24454 = load double, ptr %705, align 8, !tbaa !11
  %24455 = fadd double %24454, 5.000000e-01
  br label %24459

24456:                                            ; preds = %24427
  %24457 = load double, ptr %705, align 8, !tbaa !11
  %24458 = fsub double %24457, 5.000000e-01
  br label %24459

24459:                                            ; preds = %24456, %24453
  %24460 = phi double [ %24455, %24453 ], [ %24458, %24456 ]
  %24461 = fcmp olt double %24450, %24460
  br i1 %24461, label %24462, label %24516

24462:                                            ; preds = %24459
  %24463 = load double, ptr %705, align 8, !tbaa !11
  %24464 = fcmp ole double 0.000000e+00, %24463
  br i1 %24464, label %24465, label %24468

24465:                                            ; preds = %24462
  %24466 = load double, ptr %705, align 8, !tbaa !11
  %24467 = fadd double %24466, 5.000000e-01
  br label %24471

24468:                                            ; preds = %24462
  %24469 = load double, ptr %705, align 8, !tbaa !11
  %24470 = fsub double %24469, 5.000000e-01
  br label %24471

24471:                                            ; preds = %24468, %24465
  %24472 = phi double [ %24467, %24465 ], [ %24470, %24468 ]
  %24473 = load double, ptr %704, align 8, !tbaa !11
  %24474 = fcmp ole double %24472, %24473
  br i1 %24474, label %24475, label %24486

24475:                                            ; preds = %24471
  %24476 = load double, ptr %705, align 8, !tbaa !11
  %24477 = fcmp ole double 0.000000e+00, %24476
  br i1 %24477, label %24478, label %24481

24478:                                            ; preds = %24475
  %24479 = load double, ptr %705, align 8, !tbaa !11
  %24480 = fadd double %24479, 5.000000e-01
  br label %24484

24481:                                            ; preds = %24475
  %24482 = load double, ptr %705, align 8, !tbaa !11
  %24483 = fsub double %24482, 5.000000e-01
  br label %24484

24484:                                            ; preds = %24481, %24478
  %24485 = phi double [ %24480, %24478 ], [ %24483, %24481 ]
  br label %24514

24486:                                            ; preds = %24471
  %24487 = load double, ptr %705, align 8, !tbaa !11
  %24488 = fcmp ole double 0.000000e+00, %24487
  br i1 %24488, label %24489, label %24492

24489:                                            ; preds = %24486
  %24490 = load double, ptr %705, align 8, !tbaa !11
  %24491 = fadd double %24490, 5.000000e-01
  br label %24495

24492:                                            ; preds = %24486
  %24493 = load double, ptr %705, align 8, !tbaa !11
  %24494 = fsub double %24493, 5.000000e-01
  br label %24495

24495:                                            ; preds = %24492, %24489
  %24496 = phi double [ %24491, %24489 ], [ %24494, %24492 ]
  %24497 = load double, ptr %704, align 8, !tbaa !11
  %24498 = fcmp olt double %24496, %24497
  br i1 %24498, label %24499, label %24510

24499:                                            ; preds = %24495
  %24500 = load double, ptr %705, align 8, !tbaa !11
  %24501 = fcmp ole double 0.000000e+00, %24500
  br i1 %24501, label %24502, label %24505

24502:                                            ; preds = %24499
  %24503 = load double, ptr %705, align 8, !tbaa !11
  %24504 = fadd double %24503, 5.000000e-01
  br label %24508

24505:                                            ; preds = %24499
  %24506 = load double, ptr %705, align 8, !tbaa !11
  %24507 = fsub double %24506, 5.000000e-01
  br label %24508

24508:                                            ; preds = %24505, %24502
  %24509 = phi double [ %24504, %24502 ], [ %24507, %24505 ]
  br label %24512

24510:                                            ; preds = %24495
  %24511 = load double, ptr %704, align 8, !tbaa !11
  br label %24512

24512:                                            ; preds = %24510, %24508
  %24513 = phi double [ %24509, %24508 ], [ %24511, %24510 ]
  br label %24514

24514:                                            ; preds = %24512, %24484
  %24515 = phi double [ %24485, %24484 ], [ %24513, %24512 ]
  br label %24544

24516:                                            ; preds = %24459
  %24517 = load double, ptr %703, align 8, !tbaa !11
  %24518 = load double, ptr %705, align 8, !tbaa !11
  %24519 = fcmp ole double 0.000000e+00, %24518
  br i1 %24519, label %24520, label %24523

24520:                                            ; preds = %24516
  %24521 = load double, ptr %705, align 8, !tbaa !11
  %24522 = fadd double %24521, 5.000000e-01
  br label %24526

24523:                                            ; preds = %24516
  %24524 = load double, ptr %705, align 8, !tbaa !11
  %24525 = fsub double %24524, 5.000000e-01
  br label %24526

24526:                                            ; preds = %24523, %24520
  %24527 = phi double [ %24522, %24520 ], [ %24525, %24523 ]
  %24528 = fcmp olt double %24517, %24527
  br i1 %24528, label %24529, label %24540

24529:                                            ; preds = %24526
  %24530 = load double, ptr %705, align 8, !tbaa !11
  %24531 = fcmp ole double 0.000000e+00, %24530
  br i1 %24531, label %24532, label %24535

24532:                                            ; preds = %24529
  %24533 = load double, ptr %705, align 8, !tbaa !11
  %24534 = fadd double %24533, 5.000000e-01
  br label %24538

24535:                                            ; preds = %24529
  %24536 = load double, ptr %705, align 8, !tbaa !11
  %24537 = fsub double %24536, 5.000000e-01
  br label %24538

24538:                                            ; preds = %24535, %24532
  %24539 = phi double [ %24534, %24532 ], [ %24537, %24535 ]
  br label %24542

24540:                                            ; preds = %24526
  %24541 = load double, ptr %703, align 8, !tbaa !11
  br label %24542

24542:                                            ; preds = %24540, %24538
  %24543 = phi double [ %24539, %24538 ], [ %24541, %24540 ]
  br label %24544

24544:                                            ; preds = %24542, %24514
  %24545 = phi double [ %24515, %24514 ], [ %24543, %24542 ]
  %24546 = fptosi double %24545 to i32
  %24547 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %24546, ptr %24547, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %705) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %704) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %703) #3
  br label %24632

24548:                                            ; preds = %24310, %24307
  %24549 = load i32, ptr %8, align 4, !tbaa !9
  %24550 = icmp ugt i32 6, %24549
  br i1 %24550, label %24579, label %24551

24551:                                            ; preds = %24548
  %24552 = load i32, ptr %8, align 4, !tbaa !9
  %24553 = icmp ugt i32 15, %24552
  br i1 %24553, label %24554, label %24565

24554:                                            ; preds = %24551
  %24555 = load i32, ptr %9, align 4, !tbaa !9
  %24556 = icmp ugt i32 15, %24555
  br i1 %24556, label %24557, label %24562

24557:                                            ; preds = %24554
  %24558 = load i32, ptr %9, align 4, !tbaa !9
  %24559 = load i32, ptr %8, align 4, !tbaa !9
  %24560 = icmp ugt i32 %24558, %24559
  %24561 = zext i1 %24560 to i32
  br label %24563

24562:                                            ; preds = %24554
  br label %24563

24563:                                            ; preds = %24562, %24557
  %24564 = phi i32 [ %24561, %24557 ], [ 0, %24562 ]
  br label %24576

24565:                                            ; preds = %24551
  %24566 = load i32, ptr %9, align 4, !tbaa !9
  %24567 = icmp ugt i32 15, %24566
  br i1 %24567, label %24568, label %24569

24568:                                            ; preds = %24565
  br label %24574

24569:                                            ; preds = %24565
  %24570 = load i32, ptr %9, align 4, !tbaa !9
  %24571 = load i32, ptr %8, align 4, !tbaa !9
  %24572 = icmp ugt i32 %24570, %24571
  %24573 = zext i1 %24572 to i32
  br label %24574

24574:                                            ; preds = %24569, %24568
  %24575 = phi i32 [ 0, %24568 ], [ %24573, %24569 ]
  br label %24576

24576:                                            ; preds = %24574, %24563
  %24577 = phi i32 [ %24564, %24563 ], [ %24575, %24574 ]
  %24578 = icmp ne i32 %24577, 0
  br label %24579

24579:                                            ; preds = %24576, %24548
  %24580 = phi i1 [ true, %24548 ], [ %24578, %24576 ]
  %24581 = zext i1 %24580 to i32
  %24582 = icmp eq i32 0, %24581
  br i1 %24582, label %24583, label %24627

24583:                                            ; preds = %24579
  %24584 = load i8, ptr %696, align 1, !tbaa !17
  %24585 = sext i8 %24584 to i32
  %24586 = sitofp i32 %24585 to double
  %24587 = fcmp olt double 0xC1E0000000000000, %24586
  br i1 %24587, label %24588, label %24611

24588:                                            ; preds = %24583
  %24589 = load i8, ptr %696, align 1, !tbaa !17
  %24590 = sext i8 %24589 to i32
  %24591 = sitofp i32 %24590 to double
  %24592 = fcmp ole double %24591, 0x41DFFFFFFFC00000
  br i1 %24592, label %24593, label %24597

24593:                                            ; preds = %24588
  %24594 = load i8, ptr %696, align 1, !tbaa !17
  %24595 = sext i8 %24594 to i32
  %24596 = sitofp i32 %24595 to double
  br label %24609

24597:                                            ; preds = %24588
  %24598 = load i8, ptr %696, align 1, !tbaa !17
  %24599 = sext i8 %24598 to i32
  %24600 = sitofp i32 %24599 to double
  %24601 = fcmp olt double %24600, 0x41DFFFFFFFC00000
  br i1 %24601, label %24602, label %24606

24602:                                            ; preds = %24597
  %24603 = load i8, ptr %696, align 1, !tbaa !17
  %24604 = sext i8 %24603 to i32
  %24605 = sitofp i32 %24604 to double
  br label %24607

24606:                                            ; preds = %24597
  br label %24607

24607:                                            ; preds = %24606, %24602
  %24608 = phi double [ %24605, %24602 ], [ 0x41DFFFFFFFC00000, %24606 ]
  br label %24609

24609:                                            ; preds = %24607, %24593
  %24610 = phi double [ %24596, %24593 ], [ %24608, %24607 ]
  br label %24623

24611:                                            ; preds = %24583
  %24612 = load i8, ptr %696, align 1, !tbaa !17
  %24613 = sext i8 %24612 to i32
  %24614 = sitofp i32 %24613 to double
  %24615 = fcmp olt double 0xC1E0000000000000, %24614
  br i1 %24615, label %24616, label %24620

24616:                                            ; preds = %24611
  %24617 = load i8, ptr %696, align 1, !tbaa !17
  %24618 = sext i8 %24617 to i32
  %24619 = sitofp i32 %24618 to double
  br label %24621

24620:                                            ; preds = %24611
  br label %24621

24621:                                            ; preds = %24620, %24616
  %24622 = phi double [ %24619, %24616 ], [ 0xC1E0000000000000, %24620 ]
  br label %24623

24623:                                            ; preds = %24621, %24609
  %24624 = phi double [ %24610, %24609 ], [ %24622, %24621 ]
  %24625 = fptosi double %24624 to i32
  %24626 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %24625, ptr %24626, align 4, !tbaa !9
  br label %24631

24627:                                            ; preds = %24579
  %24628 = load i8, ptr %696, align 1, !tbaa !17
  %24629 = sext i8 %24628 to i32
  %24630 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %24629, ptr %24630, align 4, !tbaa !9
  br label %24631

24631:                                            ; preds = %24627, %24623
  br label %24632

24632:                                            ; preds = %24631, %24544
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %698) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %697) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %696) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %695) #3
  br label %24633

24633:                                            ; preds = %24632
  br label %24634

24634:                                            ; preds = %24633
  br label %26843

24635:                                            ; preds = %23220
  br label %24636

24636:                                            ; preds = %24635
  call void @llvm.lifetime.start.p0(i64 8, ptr %706) #3
  store double 5.000000e-01, ptr %706, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %707) #3
  %24637 = load ptr, ptr %10, align 8, !tbaa !5
  %24638 = load i64, ptr %24637, align 8, !tbaa !13
  store i64 %24638, ptr %707, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %708) #3
  store double 0.000000e+00, ptr %708, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %709) #3
  store double 0.000000e+00, ptr %709, align 8, !tbaa !11
  %24639 = load ptr, ptr %11, align 8, !tbaa !5
  %24640 = icmp ne ptr null, %24639
  br i1 %24640, label %24641, label %24663

24641:                                            ; preds = %24636
  %24642 = load ptr, ptr %12, align 8, !tbaa !5
  %24643 = icmp ne ptr null, %24642
  br i1 %24643, label %24644, label %24655

24644:                                            ; preds = %24641
  %24645 = load ptr, ptr %11, align 8, !tbaa !5
  %24646 = load i64, ptr %24645, align 8, !tbaa !13
  %24647 = load i64, ptr %707, align 8, !tbaa !13
  %24648 = icmp ule i64 %24646, %24647
  br i1 %24648, label %24649, label %24655

24649:                                            ; preds = %24644
  %24650 = load i64, ptr %707, align 8, !tbaa !13
  %24651 = load ptr, ptr %12, align 8, !tbaa !5
  %24652 = load i64, ptr %24651, align 8, !tbaa !13
  %24653 = icmp ule i64 %24650, %24652
  br i1 %24653, label %24654, label %24655

24654:                                            ; preds = %24649
  br label %24656

24655:                                            ; preds = %24649, %24644, %24641
  call void @__assert_fail(ptr noundef @.str.46, ptr noundef @.str.24, i32 noundef 485, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

24656:                                            ; preds = %24654
  %24657 = load ptr, ptr %11, align 8, !tbaa !5
  %24658 = load i64, ptr %24657, align 8, !tbaa !13
  %24659 = uitofp i64 %24658 to double
  store double %24659, ptr %708, align 8, !tbaa !11
  %24660 = load ptr, ptr %12, align 8, !tbaa !5
  %24661 = load i64, ptr %24660, align 8, !tbaa !13
  %24662 = uitofp i64 %24661 to double
  store double %24662, ptr %709, align 8, !tbaa !11
  br label %24663

24663:                                            ; preds = %24656, %24636
  %24664 = load i32, ptr %8, align 4, !tbaa !9
  %24665 = icmp ule i32 6, %24664
  br i1 %24665, label %24666, label %24902

24666:                                            ; preds = %24663
  %24667 = load double, ptr %708, align 8, !tbaa !11
  %24668 = load double, ptr %709, align 8, !tbaa !11
  %24669 = fcmp olt double %24667, %24668
  br i1 %24669, label %24670, label %24902

24670:                                            ; preds = %24666
  %24671 = load i32, ptr %8, align 4, !tbaa !9
  %24672 = icmp ule i32 15, %24671
  br i1 %24672, label %24673, label %24725

24673:                                            ; preds = %24670
  call void @llvm.lifetime.start.p0(i64 8, ptr %710) #3
  %24674 = load double, ptr %708, align 8, !tbaa !11
  %24675 = fcmp olt double 0.000000e+00, %24674
  br i1 %24675, label %24676, label %24678

24676:                                            ; preds = %24673
  %24677 = load double, ptr %708, align 8, !tbaa !11
  br label %24679

24678:                                            ; preds = %24673
  br label %24679

24679:                                            ; preds = %24678, %24676
  %24680 = phi double [ %24677, %24676 ], [ 0.000000e+00, %24678 ]
  store double %24680, ptr %710, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %711) #3
  %24681 = load double, ptr %709, align 8, !tbaa !11
  %24682 = fcmp olt double 0.000000e+00, %24681
  br i1 %24682, label %24683, label %24685

24683:                                            ; preds = %24679
  %24684 = load double, ptr %709, align 8, !tbaa !11
  br label %24686

24685:                                            ; preds = %24679
  br label %24686

24686:                                            ; preds = %24685, %24683
  %24687 = phi double [ %24684, %24683 ], [ 0.000000e+00, %24685 ]
  store double %24687, ptr %711, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %712) #3
  %24688 = load double, ptr %710, align 8, !tbaa !11
  %24689 = load double, ptr %711, align 8, !tbaa !11
  %24690 = fcmp olt double %24688, %24689
  br i1 %24690, label %24691, label %24699

24691:                                            ; preds = %24686
  %24692 = load double, ptr %709, align 8, !tbaa !11
  %24693 = load double, ptr %708, align 8, !tbaa !11
  %24694 = fsub double %24692, %24693
  %24695 = load double, ptr %711, align 8, !tbaa !11
  %24696 = load double, ptr %710, align 8, !tbaa !11
  %24697 = fsub double %24695, %24696
  %24698 = fdiv double %24694, %24697
  br label %24700

24699:                                            ; preds = %24686
  br label %24700

24700:                                            ; preds = %24699, %24691
  %24701 = phi double [ %24698, %24691 ], [ 1.000000e+00, %24699 ]
  store double %24701, ptr %712, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %713) #3
  %24702 = load double, ptr %712, align 8, !tbaa !11
  %24703 = load i64, ptr %707, align 8, !tbaa !13
  %24704 = icmp ult i64 0, %24703
  br i1 %24704, label %24705, label %24707

24705:                                            ; preds = %24700
  %24706 = load i64, ptr %707, align 8, !tbaa !13
  br label %24708

24707:                                            ; preds = %24700
  br label %24708

24708:                                            ; preds = %24707, %24705
  %24709 = phi i64 [ %24706, %24705 ], [ 0, %24707 ]
  %24710 = uitofp i64 %24709 to double
  %24711 = fmul double %24702, %24710
  store double %24711, ptr %713, align 8, !tbaa !11
  %24712 = load double, ptr %713, align 8, !tbaa !11
  %24713 = fcmp ole double 0.000000e+00, %24712
  br i1 %24713, label %24714, label %24717

24714:                                            ; preds = %24708
  %24715 = load double, ptr %713, align 8, !tbaa !11
  %24716 = fadd double %24715, 5.000000e-01
  br label %24720

24717:                                            ; preds = %24708
  %24718 = load double, ptr %713, align 8, !tbaa !11
  %24719 = fsub double %24718, 5.000000e-01
  br label %24720

24720:                                            ; preds = %24717, %24714
  %24721 = phi double [ %24716, %24714 ], [ %24719, %24717 ]
  %24722 = fptoui double %24721 to i64
  store i64 %24722, ptr %707, align 8, !tbaa !13
  %24723 = load double, ptr %710, align 8, !tbaa !11
  store double %24723, ptr %708, align 8, !tbaa !11
  %24724 = load double, ptr %711, align 8, !tbaa !11
  store double %24724, ptr %709, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %713) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %712) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %711) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %710) #3
  br label %24781

24725:                                            ; preds = %24670
  %24726 = load i32, ptr %8, align 4, !tbaa !9
  %24727 = icmp ugt i32 6, %24726
  br i1 %24727, label %24756, label %24728

24728:                                            ; preds = %24725
  %24729 = load i32, ptr %8, align 4, !tbaa !9
  %24730 = icmp ugt i32 15, %24729
  br i1 %24730, label %24731, label %24742

24731:                                            ; preds = %24728
  %24732 = load i32, ptr %9, align 4, !tbaa !9
  %24733 = icmp ugt i32 15, %24732
  br i1 %24733, label %24734, label %24739

24734:                                            ; preds = %24731
  %24735 = load i32, ptr %9, align 4, !tbaa !9
  %24736 = load i32, ptr %8, align 4, !tbaa !9
  %24737 = icmp ugt i32 %24735, %24736
  %24738 = zext i1 %24737 to i32
  br label %24740

24739:                                            ; preds = %24731
  br label %24740

24740:                                            ; preds = %24739, %24734
  %24741 = phi i32 [ %24738, %24734 ], [ 0, %24739 ]
  br label %24753

24742:                                            ; preds = %24728
  %24743 = load i32, ptr %9, align 4, !tbaa !9
  %24744 = icmp ugt i32 15, %24743
  br i1 %24744, label %24745, label %24746

24745:                                            ; preds = %24742
  br label %24751

24746:                                            ; preds = %24742
  %24747 = load i32, ptr %9, align 4, !tbaa !9
  %24748 = load i32, ptr %8, align 4, !tbaa !9
  %24749 = icmp ugt i32 %24747, %24748
  %24750 = zext i1 %24749 to i32
  br label %24751

24751:                                            ; preds = %24746, %24745
  %24752 = phi i32 [ 0, %24745 ], [ %24750, %24746 ]
  br label %24753

24753:                                            ; preds = %24751, %24740
  %24754 = phi i32 [ %24741, %24740 ], [ %24752, %24751 ]
  %24755 = icmp ne i32 %24754, 0
  br label %24756

24756:                                            ; preds = %24753, %24725
  %24757 = phi i1 [ true, %24725 ], [ %24755, %24753 ]
  %24758 = zext i1 %24757 to i32
  %24759 = icmp eq i32 0, %24758
  br i1 %24759, label %24760, label %24780

24760:                                            ; preds = %24756
  %24761 = load double, ptr %708, align 8, !tbaa !11
  %24762 = fcmp ogt double 0.000000e+00, %24761
  br i1 %24762, label %24763, label %24780

24763:                                            ; preds = %24760
  %24764 = load double, ptr %709, align 8, !tbaa !11
  %24765 = fcmp olt double 0.000000e+00, %24764
  br i1 %24765, label %24766, label %24780

24766:                                            ; preds = %24763
  %24767 = load double, ptr %708, align 8, !tbaa !11
  %24768 = fneg double %24767
  %24769 = load double, ptr %709, align 8, !tbaa !11
  %24770 = fcmp olt double %24768, %24769
  br i1 %24770, label %24771, label %24773

24771:                                            ; preds = %24766
  %24772 = load double, ptr %709, align 8, !tbaa !11
  br label %24776

24773:                                            ; preds = %24766
  %24774 = load double, ptr %708, align 8, !tbaa !11
  %24775 = fneg double %24774
  br label %24776

24776:                                            ; preds = %24773, %24771
  %24777 = phi double [ %24772, %24771 ], [ %24775, %24773 ]
  store double %24777, ptr %709, align 8, !tbaa !11
  %24778 = load double, ptr %709, align 8, !tbaa !11
  %24779 = fneg double %24778
  store double %24779, ptr %708, align 8, !tbaa !11
  br label %24780

24780:                                            ; preds = %24776, %24763, %24760, %24756
  br label %24781

24781:                                            ; preds = %24780, %24720
  call void @llvm.lifetime.start.p0(i64 8, ptr %714) #3
  %24782 = load double, ptr %708, align 8, !tbaa !11
  %24783 = fcmp ole double 0.000000e+00, %24782
  %24784 = zext i1 %24783 to i64
  %24785 = select i1 %24783, double 0.000000e+00, double 0xC1E0000000000000
  store double %24785, ptr %714, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %715) #3
  %24786 = load double, ptr %709, align 8, !tbaa !11
  %24787 = fcmp ole double 0.000000e+00, %24786
  %24788 = zext i1 %24787 to i64
  %24789 = select i1 %24787, double 0x41DFFFFFFFC00000, double 0.000000e+00
  store double %24789, ptr %715, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %716) #3
  %24790 = load i64, ptr %707, align 8, !tbaa !13
  %24791 = uitofp i64 %24790 to double
  %24792 = load double, ptr %708, align 8, !tbaa !11
  %24793 = fsub double %24791, %24792
  %24794 = load double, ptr %715, align 8, !tbaa !11
  %24795 = load double, ptr %714, align 8, !tbaa !11
  %24796 = fsub double %24794, %24795
  %24797 = fmul double %24793, %24796
  %24798 = load double, ptr %709, align 8, !tbaa !11
  %24799 = load double, ptr %708, align 8, !tbaa !11
  %24800 = fsub double %24798, %24799
  %24801 = fdiv double %24797, %24800
  %24802 = load double, ptr %714, align 8, !tbaa !11
  %24803 = fadd double %24801, %24802
  store double %24803, ptr %716, align 8, !tbaa !11
  %24804 = load double, ptr %714, align 8, !tbaa !11
  %24805 = load double, ptr %716, align 8, !tbaa !11
  %24806 = fcmp ole double 0.000000e+00, %24805
  br i1 %24806, label %24807, label %24810

24807:                                            ; preds = %24781
  %24808 = load double, ptr %716, align 8, !tbaa !11
  %24809 = fadd double %24808, 5.000000e-01
  br label %24813

24810:                                            ; preds = %24781
  %24811 = load double, ptr %716, align 8, !tbaa !11
  %24812 = fsub double %24811, 5.000000e-01
  br label %24813

24813:                                            ; preds = %24810, %24807
  %24814 = phi double [ %24809, %24807 ], [ %24812, %24810 ]
  %24815 = fcmp olt double %24804, %24814
  br i1 %24815, label %24816, label %24870

24816:                                            ; preds = %24813
  %24817 = load double, ptr %716, align 8, !tbaa !11
  %24818 = fcmp ole double 0.000000e+00, %24817
  br i1 %24818, label %24819, label %24822

24819:                                            ; preds = %24816
  %24820 = load double, ptr %716, align 8, !tbaa !11
  %24821 = fadd double %24820, 5.000000e-01
  br label %24825

24822:                                            ; preds = %24816
  %24823 = load double, ptr %716, align 8, !tbaa !11
  %24824 = fsub double %24823, 5.000000e-01
  br label %24825

24825:                                            ; preds = %24822, %24819
  %24826 = phi double [ %24821, %24819 ], [ %24824, %24822 ]
  %24827 = load double, ptr %715, align 8, !tbaa !11
  %24828 = fcmp ole double %24826, %24827
  br i1 %24828, label %24829, label %24840

24829:                                            ; preds = %24825
  %24830 = load double, ptr %716, align 8, !tbaa !11
  %24831 = fcmp ole double 0.000000e+00, %24830
  br i1 %24831, label %24832, label %24835

24832:                                            ; preds = %24829
  %24833 = load double, ptr %716, align 8, !tbaa !11
  %24834 = fadd double %24833, 5.000000e-01
  br label %24838

24835:                                            ; preds = %24829
  %24836 = load double, ptr %716, align 8, !tbaa !11
  %24837 = fsub double %24836, 5.000000e-01
  br label %24838

24838:                                            ; preds = %24835, %24832
  %24839 = phi double [ %24834, %24832 ], [ %24837, %24835 ]
  br label %24868

24840:                                            ; preds = %24825
  %24841 = load double, ptr %716, align 8, !tbaa !11
  %24842 = fcmp ole double 0.000000e+00, %24841
  br i1 %24842, label %24843, label %24846

24843:                                            ; preds = %24840
  %24844 = load double, ptr %716, align 8, !tbaa !11
  %24845 = fadd double %24844, 5.000000e-01
  br label %24849

24846:                                            ; preds = %24840
  %24847 = load double, ptr %716, align 8, !tbaa !11
  %24848 = fsub double %24847, 5.000000e-01
  br label %24849

24849:                                            ; preds = %24846, %24843
  %24850 = phi double [ %24845, %24843 ], [ %24848, %24846 ]
  %24851 = load double, ptr %715, align 8, !tbaa !11
  %24852 = fcmp olt double %24850, %24851
  br i1 %24852, label %24853, label %24864

24853:                                            ; preds = %24849
  %24854 = load double, ptr %716, align 8, !tbaa !11
  %24855 = fcmp ole double 0.000000e+00, %24854
  br i1 %24855, label %24856, label %24859

24856:                                            ; preds = %24853
  %24857 = load double, ptr %716, align 8, !tbaa !11
  %24858 = fadd double %24857, 5.000000e-01
  br label %24862

24859:                                            ; preds = %24853
  %24860 = load double, ptr %716, align 8, !tbaa !11
  %24861 = fsub double %24860, 5.000000e-01
  br label %24862

24862:                                            ; preds = %24859, %24856
  %24863 = phi double [ %24858, %24856 ], [ %24861, %24859 ]
  br label %24866

24864:                                            ; preds = %24849
  %24865 = load double, ptr %715, align 8, !tbaa !11
  br label %24866

24866:                                            ; preds = %24864, %24862
  %24867 = phi double [ %24863, %24862 ], [ %24865, %24864 ]
  br label %24868

24868:                                            ; preds = %24866, %24838
  %24869 = phi double [ %24839, %24838 ], [ %24867, %24866 ]
  br label %24898

24870:                                            ; preds = %24813
  %24871 = load double, ptr %714, align 8, !tbaa !11
  %24872 = load double, ptr %716, align 8, !tbaa !11
  %24873 = fcmp ole double 0.000000e+00, %24872
  br i1 %24873, label %24874, label %24877

24874:                                            ; preds = %24870
  %24875 = load double, ptr %716, align 8, !tbaa !11
  %24876 = fadd double %24875, 5.000000e-01
  br label %24880

24877:                                            ; preds = %24870
  %24878 = load double, ptr %716, align 8, !tbaa !11
  %24879 = fsub double %24878, 5.000000e-01
  br label %24880

24880:                                            ; preds = %24877, %24874
  %24881 = phi double [ %24876, %24874 ], [ %24879, %24877 ]
  %24882 = fcmp olt double %24871, %24881
  br i1 %24882, label %24883, label %24894

24883:                                            ; preds = %24880
  %24884 = load double, ptr %716, align 8, !tbaa !11
  %24885 = fcmp ole double 0.000000e+00, %24884
  br i1 %24885, label %24886, label %24889

24886:                                            ; preds = %24883
  %24887 = load double, ptr %716, align 8, !tbaa !11
  %24888 = fadd double %24887, 5.000000e-01
  br label %24892

24889:                                            ; preds = %24883
  %24890 = load double, ptr %716, align 8, !tbaa !11
  %24891 = fsub double %24890, 5.000000e-01
  br label %24892

24892:                                            ; preds = %24889, %24886
  %24893 = phi double [ %24888, %24886 ], [ %24891, %24889 ]
  br label %24896

24894:                                            ; preds = %24880
  %24895 = load double, ptr %714, align 8, !tbaa !11
  br label %24896

24896:                                            ; preds = %24894, %24892
  %24897 = phi double [ %24893, %24892 ], [ %24895, %24894 ]
  br label %24898

24898:                                            ; preds = %24896, %24868
  %24899 = phi double [ %24869, %24868 ], [ %24897, %24896 ]
  %24900 = fptosi double %24899 to i32
  %24901 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %24900, ptr %24901, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %716) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %715) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %714) #3
  br label %24979

24902:                                            ; preds = %24666, %24663
  %24903 = load i32, ptr %8, align 4, !tbaa !9
  %24904 = icmp ugt i32 6, %24903
  br i1 %24904, label %24933, label %24905

24905:                                            ; preds = %24902
  %24906 = load i32, ptr %8, align 4, !tbaa !9
  %24907 = icmp ugt i32 15, %24906
  br i1 %24907, label %24908, label %24919

24908:                                            ; preds = %24905
  %24909 = load i32, ptr %9, align 4, !tbaa !9
  %24910 = icmp ugt i32 15, %24909
  br i1 %24910, label %24911, label %24916

24911:                                            ; preds = %24908
  %24912 = load i32, ptr %9, align 4, !tbaa !9
  %24913 = load i32, ptr %8, align 4, !tbaa !9
  %24914 = icmp ugt i32 %24912, %24913
  %24915 = zext i1 %24914 to i32
  br label %24917

24916:                                            ; preds = %24908
  br label %24917

24917:                                            ; preds = %24916, %24911
  %24918 = phi i32 [ %24915, %24911 ], [ 0, %24916 ]
  br label %24930

24919:                                            ; preds = %24905
  %24920 = load i32, ptr %9, align 4, !tbaa !9
  %24921 = icmp ugt i32 15, %24920
  br i1 %24921, label %24922, label %24923

24922:                                            ; preds = %24919
  br label %24928

24923:                                            ; preds = %24919
  %24924 = load i32, ptr %9, align 4, !tbaa !9
  %24925 = load i32, ptr %8, align 4, !tbaa !9
  %24926 = icmp ugt i32 %24924, %24925
  %24927 = zext i1 %24926 to i32
  br label %24928

24928:                                            ; preds = %24923, %24922
  %24929 = phi i32 [ 0, %24922 ], [ %24927, %24923 ]
  br label %24930

24930:                                            ; preds = %24928, %24917
  %24931 = phi i32 [ %24918, %24917 ], [ %24929, %24928 ]
  %24932 = icmp ne i32 %24931, 0
  br label %24933

24933:                                            ; preds = %24930, %24902
  %24934 = phi i1 [ true, %24902 ], [ %24932, %24930 ]
  %24935 = zext i1 %24934 to i32
  %24936 = icmp eq i32 0, %24935
  br i1 %24936, label %24937, label %24974

24937:                                            ; preds = %24933
  %24938 = load i64, ptr %707, align 8, !tbaa !13
  %24939 = uitofp i64 %24938 to double
  %24940 = fcmp olt double 0xC1E0000000000000, %24939
  br i1 %24940, label %24941, label %24960

24941:                                            ; preds = %24937
  %24942 = load i64, ptr %707, align 8, !tbaa !13
  %24943 = uitofp i64 %24942 to double
  %24944 = fcmp ole double %24943, 0x41DFFFFFFFC00000
  br i1 %24944, label %24945, label %24948

24945:                                            ; preds = %24941
  %24946 = load i64, ptr %707, align 8, !tbaa !13
  %24947 = uitofp i64 %24946 to double
  br label %24958

24948:                                            ; preds = %24941
  %24949 = load i64, ptr %707, align 8, !tbaa !13
  %24950 = uitofp i64 %24949 to double
  %24951 = fcmp olt double %24950, 0x41DFFFFFFFC00000
  br i1 %24951, label %24952, label %24955

24952:                                            ; preds = %24948
  %24953 = load i64, ptr %707, align 8, !tbaa !13
  %24954 = uitofp i64 %24953 to double
  br label %24956

24955:                                            ; preds = %24948
  br label %24956

24956:                                            ; preds = %24955, %24952
  %24957 = phi double [ %24954, %24952 ], [ 0x41DFFFFFFFC00000, %24955 ]
  br label %24958

24958:                                            ; preds = %24956, %24945
  %24959 = phi double [ %24947, %24945 ], [ %24957, %24956 ]
  br label %24970

24960:                                            ; preds = %24937
  %24961 = load i64, ptr %707, align 8, !tbaa !13
  %24962 = uitofp i64 %24961 to double
  %24963 = fcmp olt double 0xC1E0000000000000, %24962
  br i1 %24963, label %24964, label %24967

24964:                                            ; preds = %24960
  %24965 = load i64, ptr %707, align 8, !tbaa !13
  %24966 = uitofp i64 %24965 to double
  br label %24968

24967:                                            ; preds = %24960
  br label %24968

24968:                                            ; preds = %24967, %24964
  %24969 = phi double [ %24966, %24964 ], [ 0xC1E0000000000000, %24967 ]
  br label %24970

24970:                                            ; preds = %24968, %24958
  %24971 = phi double [ %24959, %24958 ], [ %24969, %24968 ]
  %24972 = fptosi double %24971 to i32
  %24973 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %24972, ptr %24973, align 4, !tbaa !9
  br label %24978

24974:                                            ; preds = %24933
  %24975 = load i64, ptr %707, align 8, !tbaa !13
  %24976 = trunc i64 %24975 to i32
  %24977 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %24976, ptr %24977, align 4, !tbaa !9
  br label %24978

24978:                                            ; preds = %24974, %24970
  br label %24979

24979:                                            ; preds = %24978, %24898
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %709) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %708) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %707) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %706) #3
  br label %24980

24980:                                            ; preds = %24979
  br label %24981

24981:                                            ; preds = %24980
  br label %26843

24982:                                            ; preds = %23220
  br label %24983

24983:                                            ; preds = %24982
  call void @llvm.lifetime.start.p0(i64 8, ptr %717) #3
  store double 5.000000e-01, ptr %717, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %718) #3
  %24984 = load ptr, ptr %10, align 8, !tbaa !5
  %24985 = load i32, ptr %24984, align 4, !tbaa !9
  store i32 %24985, ptr %718, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %719) #3
  store double 0.000000e+00, ptr %719, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %720) #3
  store double 0.000000e+00, ptr %720, align 8, !tbaa !11
  %24986 = load ptr, ptr %11, align 8, !tbaa !5
  %24987 = icmp ne ptr null, %24986
  br i1 %24987, label %24988, label %25010

24988:                                            ; preds = %24983
  %24989 = load ptr, ptr %12, align 8, !tbaa !5
  %24990 = icmp ne ptr null, %24989
  br i1 %24990, label %24991, label %25002

24991:                                            ; preds = %24988
  %24992 = load ptr, ptr %11, align 8, !tbaa !5
  %24993 = load i32, ptr %24992, align 4, !tbaa !9
  %24994 = load i32, ptr %718, align 4, !tbaa !9
  %24995 = icmp ule i32 %24993, %24994
  br i1 %24995, label %24996, label %25002

24996:                                            ; preds = %24991
  %24997 = load i32, ptr %718, align 4, !tbaa !9
  %24998 = load ptr, ptr %12, align 8, !tbaa !5
  %24999 = load i32, ptr %24998, align 4, !tbaa !9
  %25000 = icmp ule i32 %24997, %24999
  br i1 %25000, label %25001, label %25002

25001:                                            ; preds = %24996
  br label %25003

25002:                                            ; preds = %24996, %24991, %24988
  call void @__assert_fail(ptr noundef @.str.47, ptr noundef @.str.24, i32 noundef 485, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

25003:                                            ; preds = %25001
  %25004 = load ptr, ptr %11, align 8, !tbaa !5
  %25005 = load i32, ptr %25004, align 4, !tbaa !9
  %25006 = uitofp i32 %25005 to double
  store double %25006, ptr %719, align 8, !tbaa !11
  %25007 = load ptr, ptr %12, align 8, !tbaa !5
  %25008 = load i32, ptr %25007, align 4, !tbaa !9
  %25009 = uitofp i32 %25008 to double
  store double %25009, ptr %720, align 8, !tbaa !11
  br label %25010

25010:                                            ; preds = %25003, %24983
  %25011 = load i32, ptr %8, align 4, !tbaa !9
  %25012 = icmp ule i32 6, %25011
  br i1 %25012, label %25013, label %25249

25013:                                            ; preds = %25010
  %25014 = load double, ptr %719, align 8, !tbaa !11
  %25015 = load double, ptr %720, align 8, !tbaa !11
  %25016 = fcmp olt double %25014, %25015
  br i1 %25016, label %25017, label %25249

25017:                                            ; preds = %25013
  %25018 = load i32, ptr %8, align 4, !tbaa !9
  %25019 = icmp ule i32 15, %25018
  br i1 %25019, label %25020, label %25072

25020:                                            ; preds = %25017
  call void @llvm.lifetime.start.p0(i64 8, ptr %721) #3
  %25021 = load double, ptr %719, align 8, !tbaa !11
  %25022 = fcmp olt double 0.000000e+00, %25021
  br i1 %25022, label %25023, label %25025

25023:                                            ; preds = %25020
  %25024 = load double, ptr %719, align 8, !tbaa !11
  br label %25026

25025:                                            ; preds = %25020
  br label %25026

25026:                                            ; preds = %25025, %25023
  %25027 = phi double [ %25024, %25023 ], [ 0.000000e+00, %25025 ]
  store double %25027, ptr %721, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %722) #3
  %25028 = load double, ptr %720, align 8, !tbaa !11
  %25029 = fcmp olt double 0.000000e+00, %25028
  br i1 %25029, label %25030, label %25032

25030:                                            ; preds = %25026
  %25031 = load double, ptr %720, align 8, !tbaa !11
  br label %25033

25032:                                            ; preds = %25026
  br label %25033

25033:                                            ; preds = %25032, %25030
  %25034 = phi double [ %25031, %25030 ], [ 0.000000e+00, %25032 ]
  store double %25034, ptr %722, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %723) #3
  %25035 = load double, ptr %721, align 8, !tbaa !11
  %25036 = load double, ptr %722, align 8, !tbaa !11
  %25037 = fcmp olt double %25035, %25036
  br i1 %25037, label %25038, label %25046

25038:                                            ; preds = %25033
  %25039 = load double, ptr %720, align 8, !tbaa !11
  %25040 = load double, ptr %719, align 8, !tbaa !11
  %25041 = fsub double %25039, %25040
  %25042 = load double, ptr %722, align 8, !tbaa !11
  %25043 = load double, ptr %721, align 8, !tbaa !11
  %25044 = fsub double %25042, %25043
  %25045 = fdiv double %25041, %25044
  br label %25047

25046:                                            ; preds = %25033
  br label %25047

25047:                                            ; preds = %25046, %25038
  %25048 = phi double [ %25045, %25038 ], [ 1.000000e+00, %25046 ]
  store double %25048, ptr %723, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %724) #3
  %25049 = load double, ptr %723, align 8, !tbaa !11
  %25050 = load i32, ptr %718, align 4, !tbaa !9
  %25051 = icmp ult i32 0, %25050
  br i1 %25051, label %25052, label %25054

25052:                                            ; preds = %25047
  %25053 = load i32, ptr %718, align 4, !tbaa !9
  br label %25055

25054:                                            ; preds = %25047
  br label %25055

25055:                                            ; preds = %25054, %25052
  %25056 = phi i32 [ %25053, %25052 ], [ 0, %25054 ]
  %25057 = uitofp i32 %25056 to double
  %25058 = fmul double %25049, %25057
  store double %25058, ptr %724, align 8, !tbaa !11
  %25059 = load double, ptr %724, align 8, !tbaa !11
  %25060 = fcmp ole double 0.000000e+00, %25059
  br i1 %25060, label %25061, label %25064

25061:                                            ; preds = %25055
  %25062 = load double, ptr %724, align 8, !tbaa !11
  %25063 = fadd double %25062, 5.000000e-01
  br label %25067

25064:                                            ; preds = %25055
  %25065 = load double, ptr %724, align 8, !tbaa !11
  %25066 = fsub double %25065, 5.000000e-01
  br label %25067

25067:                                            ; preds = %25064, %25061
  %25068 = phi double [ %25063, %25061 ], [ %25066, %25064 ]
  %25069 = fptoui double %25068 to i32
  store i32 %25069, ptr %718, align 4, !tbaa !9
  %25070 = load double, ptr %721, align 8, !tbaa !11
  store double %25070, ptr %719, align 8, !tbaa !11
  %25071 = load double, ptr %722, align 8, !tbaa !11
  store double %25071, ptr %720, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %724) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %723) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %722) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %721) #3
  br label %25128

25072:                                            ; preds = %25017
  %25073 = load i32, ptr %8, align 4, !tbaa !9
  %25074 = icmp ugt i32 6, %25073
  br i1 %25074, label %25103, label %25075

25075:                                            ; preds = %25072
  %25076 = load i32, ptr %8, align 4, !tbaa !9
  %25077 = icmp ugt i32 15, %25076
  br i1 %25077, label %25078, label %25089

25078:                                            ; preds = %25075
  %25079 = load i32, ptr %9, align 4, !tbaa !9
  %25080 = icmp ugt i32 15, %25079
  br i1 %25080, label %25081, label %25086

25081:                                            ; preds = %25078
  %25082 = load i32, ptr %9, align 4, !tbaa !9
  %25083 = load i32, ptr %8, align 4, !tbaa !9
  %25084 = icmp ugt i32 %25082, %25083
  %25085 = zext i1 %25084 to i32
  br label %25087

25086:                                            ; preds = %25078
  br label %25087

25087:                                            ; preds = %25086, %25081
  %25088 = phi i32 [ %25085, %25081 ], [ 0, %25086 ]
  br label %25100

25089:                                            ; preds = %25075
  %25090 = load i32, ptr %9, align 4, !tbaa !9
  %25091 = icmp ugt i32 15, %25090
  br i1 %25091, label %25092, label %25093

25092:                                            ; preds = %25089
  br label %25098

25093:                                            ; preds = %25089
  %25094 = load i32, ptr %9, align 4, !tbaa !9
  %25095 = load i32, ptr %8, align 4, !tbaa !9
  %25096 = icmp ugt i32 %25094, %25095
  %25097 = zext i1 %25096 to i32
  br label %25098

25098:                                            ; preds = %25093, %25092
  %25099 = phi i32 [ 0, %25092 ], [ %25097, %25093 ]
  br label %25100

25100:                                            ; preds = %25098, %25087
  %25101 = phi i32 [ %25088, %25087 ], [ %25099, %25098 ]
  %25102 = icmp ne i32 %25101, 0
  br label %25103

25103:                                            ; preds = %25100, %25072
  %25104 = phi i1 [ true, %25072 ], [ %25102, %25100 ]
  %25105 = zext i1 %25104 to i32
  %25106 = icmp eq i32 0, %25105
  br i1 %25106, label %25107, label %25127

25107:                                            ; preds = %25103
  %25108 = load double, ptr %719, align 8, !tbaa !11
  %25109 = fcmp ogt double 0.000000e+00, %25108
  br i1 %25109, label %25110, label %25127

25110:                                            ; preds = %25107
  %25111 = load double, ptr %720, align 8, !tbaa !11
  %25112 = fcmp olt double 0.000000e+00, %25111
  br i1 %25112, label %25113, label %25127

25113:                                            ; preds = %25110
  %25114 = load double, ptr %719, align 8, !tbaa !11
  %25115 = fneg double %25114
  %25116 = load double, ptr %720, align 8, !tbaa !11
  %25117 = fcmp olt double %25115, %25116
  br i1 %25117, label %25118, label %25120

25118:                                            ; preds = %25113
  %25119 = load double, ptr %720, align 8, !tbaa !11
  br label %25123

25120:                                            ; preds = %25113
  %25121 = load double, ptr %719, align 8, !tbaa !11
  %25122 = fneg double %25121
  br label %25123

25123:                                            ; preds = %25120, %25118
  %25124 = phi double [ %25119, %25118 ], [ %25122, %25120 ]
  store double %25124, ptr %720, align 8, !tbaa !11
  %25125 = load double, ptr %720, align 8, !tbaa !11
  %25126 = fneg double %25125
  store double %25126, ptr %719, align 8, !tbaa !11
  br label %25127

25127:                                            ; preds = %25123, %25110, %25107, %25103
  br label %25128

25128:                                            ; preds = %25127, %25067
  call void @llvm.lifetime.start.p0(i64 8, ptr %725) #3
  %25129 = load double, ptr %719, align 8, !tbaa !11
  %25130 = fcmp ole double 0.000000e+00, %25129
  %25131 = zext i1 %25130 to i64
  %25132 = select i1 %25130, double 0.000000e+00, double 0xC1E0000000000000
  store double %25132, ptr %725, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %726) #3
  %25133 = load double, ptr %720, align 8, !tbaa !11
  %25134 = fcmp ole double 0.000000e+00, %25133
  %25135 = zext i1 %25134 to i64
  %25136 = select i1 %25134, double 0x41DFFFFFFFC00000, double 0.000000e+00
  store double %25136, ptr %726, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %727) #3
  %25137 = load i32, ptr %718, align 4, !tbaa !9
  %25138 = uitofp i32 %25137 to double
  %25139 = load double, ptr %719, align 8, !tbaa !11
  %25140 = fsub double %25138, %25139
  %25141 = load double, ptr %726, align 8, !tbaa !11
  %25142 = load double, ptr %725, align 8, !tbaa !11
  %25143 = fsub double %25141, %25142
  %25144 = fmul double %25140, %25143
  %25145 = load double, ptr %720, align 8, !tbaa !11
  %25146 = load double, ptr %719, align 8, !tbaa !11
  %25147 = fsub double %25145, %25146
  %25148 = fdiv double %25144, %25147
  %25149 = load double, ptr %725, align 8, !tbaa !11
  %25150 = fadd double %25148, %25149
  store double %25150, ptr %727, align 8, !tbaa !11
  %25151 = load double, ptr %725, align 8, !tbaa !11
  %25152 = load double, ptr %727, align 8, !tbaa !11
  %25153 = fcmp ole double 0.000000e+00, %25152
  br i1 %25153, label %25154, label %25157

25154:                                            ; preds = %25128
  %25155 = load double, ptr %727, align 8, !tbaa !11
  %25156 = fadd double %25155, 5.000000e-01
  br label %25160

25157:                                            ; preds = %25128
  %25158 = load double, ptr %727, align 8, !tbaa !11
  %25159 = fsub double %25158, 5.000000e-01
  br label %25160

25160:                                            ; preds = %25157, %25154
  %25161 = phi double [ %25156, %25154 ], [ %25159, %25157 ]
  %25162 = fcmp olt double %25151, %25161
  br i1 %25162, label %25163, label %25217

25163:                                            ; preds = %25160
  %25164 = load double, ptr %727, align 8, !tbaa !11
  %25165 = fcmp ole double 0.000000e+00, %25164
  br i1 %25165, label %25166, label %25169

25166:                                            ; preds = %25163
  %25167 = load double, ptr %727, align 8, !tbaa !11
  %25168 = fadd double %25167, 5.000000e-01
  br label %25172

25169:                                            ; preds = %25163
  %25170 = load double, ptr %727, align 8, !tbaa !11
  %25171 = fsub double %25170, 5.000000e-01
  br label %25172

25172:                                            ; preds = %25169, %25166
  %25173 = phi double [ %25168, %25166 ], [ %25171, %25169 ]
  %25174 = load double, ptr %726, align 8, !tbaa !11
  %25175 = fcmp ole double %25173, %25174
  br i1 %25175, label %25176, label %25187

25176:                                            ; preds = %25172
  %25177 = load double, ptr %727, align 8, !tbaa !11
  %25178 = fcmp ole double 0.000000e+00, %25177
  br i1 %25178, label %25179, label %25182

25179:                                            ; preds = %25176
  %25180 = load double, ptr %727, align 8, !tbaa !11
  %25181 = fadd double %25180, 5.000000e-01
  br label %25185

25182:                                            ; preds = %25176
  %25183 = load double, ptr %727, align 8, !tbaa !11
  %25184 = fsub double %25183, 5.000000e-01
  br label %25185

25185:                                            ; preds = %25182, %25179
  %25186 = phi double [ %25181, %25179 ], [ %25184, %25182 ]
  br label %25215

25187:                                            ; preds = %25172
  %25188 = load double, ptr %727, align 8, !tbaa !11
  %25189 = fcmp ole double 0.000000e+00, %25188
  br i1 %25189, label %25190, label %25193

25190:                                            ; preds = %25187
  %25191 = load double, ptr %727, align 8, !tbaa !11
  %25192 = fadd double %25191, 5.000000e-01
  br label %25196

25193:                                            ; preds = %25187
  %25194 = load double, ptr %727, align 8, !tbaa !11
  %25195 = fsub double %25194, 5.000000e-01
  br label %25196

25196:                                            ; preds = %25193, %25190
  %25197 = phi double [ %25192, %25190 ], [ %25195, %25193 ]
  %25198 = load double, ptr %726, align 8, !tbaa !11
  %25199 = fcmp olt double %25197, %25198
  br i1 %25199, label %25200, label %25211

25200:                                            ; preds = %25196
  %25201 = load double, ptr %727, align 8, !tbaa !11
  %25202 = fcmp ole double 0.000000e+00, %25201
  br i1 %25202, label %25203, label %25206

25203:                                            ; preds = %25200
  %25204 = load double, ptr %727, align 8, !tbaa !11
  %25205 = fadd double %25204, 5.000000e-01
  br label %25209

25206:                                            ; preds = %25200
  %25207 = load double, ptr %727, align 8, !tbaa !11
  %25208 = fsub double %25207, 5.000000e-01
  br label %25209

25209:                                            ; preds = %25206, %25203
  %25210 = phi double [ %25205, %25203 ], [ %25208, %25206 ]
  br label %25213

25211:                                            ; preds = %25196
  %25212 = load double, ptr %726, align 8, !tbaa !11
  br label %25213

25213:                                            ; preds = %25211, %25209
  %25214 = phi double [ %25210, %25209 ], [ %25212, %25211 ]
  br label %25215

25215:                                            ; preds = %25213, %25185
  %25216 = phi double [ %25186, %25185 ], [ %25214, %25213 ]
  br label %25245

25217:                                            ; preds = %25160
  %25218 = load double, ptr %725, align 8, !tbaa !11
  %25219 = load double, ptr %727, align 8, !tbaa !11
  %25220 = fcmp ole double 0.000000e+00, %25219
  br i1 %25220, label %25221, label %25224

25221:                                            ; preds = %25217
  %25222 = load double, ptr %727, align 8, !tbaa !11
  %25223 = fadd double %25222, 5.000000e-01
  br label %25227

25224:                                            ; preds = %25217
  %25225 = load double, ptr %727, align 8, !tbaa !11
  %25226 = fsub double %25225, 5.000000e-01
  br label %25227

25227:                                            ; preds = %25224, %25221
  %25228 = phi double [ %25223, %25221 ], [ %25226, %25224 ]
  %25229 = fcmp olt double %25218, %25228
  br i1 %25229, label %25230, label %25241

25230:                                            ; preds = %25227
  %25231 = load double, ptr %727, align 8, !tbaa !11
  %25232 = fcmp ole double 0.000000e+00, %25231
  br i1 %25232, label %25233, label %25236

25233:                                            ; preds = %25230
  %25234 = load double, ptr %727, align 8, !tbaa !11
  %25235 = fadd double %25234, 5.000000e-01
  br label %25239

25236:                                            ; preds = %25230
  %25237 = load double, ptr %727, align 8, !tbaa !11
  %25238 = fsub double %25237, 5.000000e-01
  br label %25239

25239:                                            ; preds = %25236, %25233
  %25240 = phi double [ %25235, %25233 ], [ %25238, %25236 ]
  br label %25243

25241:                                            ; preds = %25227
  %25242 = load double, ptr %725, align 8, !tbaa !11
  br label %25243

25243:                                            ; preds = %25241, %25239
  %25244 = phi double [ %25240, %25239 ], [ %25242, %25241 ]
  br label %25245

25245:                                            ; preds = %25243, %25215
  %25246 = phi double [ %25216, %25215 ], [ %25244, %25243 ]
  %25247 = fptosi double %25246 to i32
  %25248 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %25247, ptr %25248, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %727) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %726) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %725) #3
  br label %25325

25249:                                            ; preds = %25013, %25010
  %25250 = load i32, ptr %8, align 4, !tbaa !9
  %25251 = icmp ugt i32 6, %25250
  br i1 %25251, label %25280, label %25252

25252:                                            ; preds = %25249
  %25253 = load i32, ptr %8, align 4, !tbaa !9
  %25254 = icmp ugt i32 15, %25253
  br i1 %25254, label %25255, label %25266

25255:                                            ; preds = %25252
  %25256 = load i32, ptr %9, align 4, !tbaa !9
  %25257 = icmp ugt i32 15, %25256
  br i1 %25257, label %25258, label %25263

25258:                                            ; preds = %25255
  %25259 = load i32, ptr %9, align 4, !tbaa !9
  %25260 = load i32, ptr %8, align 4, !tbaa !9
  %25261 = icmp ugt i32 %25259, %25260
  %25262 = zext i1 %25261 to i32
  br label %25264

25263:                                            ; preds = %25255
  br label %25264

25264:                                            ; preds = %25263, %25258
  %25265 = phi i32 [ %25262, %25258 ], [ 0, %25263 ]
  br label %25277

25266:                                            ; preds = %25252
  %25267 = load i32, ptr %9, align 4, !tbaa !9
  %25268 = icmp ugt i32 15, %25267
  br i1 %25268, label %25269, label %25270

25269:                                            ; preds = %25266
  br label %25275

25270:                                            ; preds = %25266
  %25271 = load i32, ptr %9, align 4, !tbaa !9
  %25272 = load i32, ptr %8, align 4, !tbaa !9
  %25273 = icmp ugt i32 %25271, %25272
  %25274 = zext i1 %25273 to i32
  br label %25275

25275:                                            ; preds = %25270, %25269
  %25276 = phi i32 [ 0, %25269 ], [ %25274, %25270 ]
  br label %25277

25277:                                            ; preds = %25275, %25264
  %25278 = phi i32 [ %25265, %25264 ], [ %25276, %25275 ]
  %25279 = icmp ne i32 %25278, 0
  br label %25280

25280:                                            ; preds = %25277, %25249
  %25281 = phi i1 [ true, %25249 ], [ %25279, %25277 ]
  %25282 = zext i1 %25281 to i32
  %25283 = icmp eq i32 0, %25282
  br i1 %25283, label %25284, label %25321

25284:                                            ; preds = %25280
  %25285 = load i32, ptr %718, align 4, !tbaa !9
  %25286 = uitofp i32 %25285 to double
  %25287 = fcmp olt double 0xC1E0000000000000, %25286
  br i1 %25287, label %25288, label %25307

25288:                                            ; preds = %25284
  %25289 = load i32, ptr %718, align 4, !tbaa !9
  %25290 = uitofp i32 %25289 to double
  %25291 = fcmp ole double %25290, 0x41DFFFFFFFC00000
  br i1 %25291, label %25292, label %25295

25292:                                            ; preds = %25288
  %25293 = load i32, ptr %718, align 4, !tbaa !9
  %25294 = uitofp i32 %25293 to double
  br label %25305

25295:                                            ; preds = %25288
  %25296 = load i32, ptr %718, align 4, !tbaa !9
  %25297 = uitofp i32 %25296 to double
  %25298 = fcmp olt double %25297, 0x41DFFFFFFFC00000
  br i1 %25298, label %25299, label %25302

25299:                                            ; preds = %25295
  %25300 = load i32, ptr %718, align 4, !tbaa !9
  %25301 = uitofp i32 %25300 to double
  br label %25303

25302:                                            ; preds = %25295
  br label %25303

25303:                                            ; preds = %25302, %25299
  %25304 = phi double [ %25301, %25299 ], [ 0x41DFFFFFFFC00000, %25302 ]
  br label %25305

25305:                                            ; preds = %25303, %25292
  %25306 = phi double [ %25294, %25292 ], [ %25304, %25303 ]
  br label %25317

25307:                                            ; preds = %25284
  %25308 = load i32, ptr %718, align 4, !tbaa !9
  %25309 = uitofp i32 %25308 to double
  %25310 = fcmp olt double 0xC1E0000000000000, %25309
  br i1 %25310, label %25311, label %25314

25311:                                            ; preds = %25307
  %25312 = load i32, ptr %718, align 4, !tbaa !9
  %25313 = uitofp i32 %25312 to double
  br label %25315

25314:                                            ; preds = %25307
  br label %25315

25315:                                            ; preds = %25314, %25311
  %25316 = phi double [ %25313, %25311 ], [ 0xC1E0000000000000, %25314 ]
  br label %25317

25317:                                            ; preds = %25315, %25305
  %25318 = phi double [ %25306, %25305 ], [ %25316, %25315 ]
  %25319 = fptosi double %25318 to i32
  %25320 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %25319, ptr %25320, align 4, !tbaa !9
  br label %25324

25321:                                            ; preds = %25280
  %25322 = load i32, ptr %718, align 4, !tbaa !9
  %25323 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %25322, ptr %25323, align 4, !tbaa !9
  br label %25324

25324:                                            ; preds = %25321, %25317
  br label %25325

25325:                                            ; preds = %25324, %25245
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %720) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %719) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %718) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %717) #3
  br label %25326

25326:                                            ; preds = %25325
  br label %25327

25327:                                            ; preds = %25326
  br label %26843

25328:                                            ; preds = %23220
  br label %25329

25329:                                            ; preds = %25328
  call void @llvm.lifetime.start.p0(i64 8, ptr %728) #3
  store double 5.000000e-01, ptr %728, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %729) #3
  %25330 = load ptr, ptr %10, align 8, !tbaa !5
  %25331 = load i16, ptr %25330, align 2, !tbaa !15
  store i16 %25331, ptr %729, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %730) #3
  store double 0.000000e+00, ptr %730, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %731) #3
  store double 0.000000e+00, ptr %731, align 8, !tbaa !11
  %25332 = load ptr, ptr %11, align 8, !tbaa !5
  %25333 = icmp ne ptr null, %25332
  br i1 %25333, label %25334, label %25360

25334:                                            ; preds = %25329
  %25335 = load ptr, ptr %12, align 8, !tbaa !5
  %25336 = icmp ne ptr null, %25335
  br i1 %25336, label %25337, label %25352

25337:                                            ; preds = %25334
  %25338 = load ptr, ptr %11, align 8, !tbaa !5
  %25339 = load i16, ptr %25338, align 2, !tbaa !15
  %25340 = zext i16 %25339 to i32
  %25341 = load i16, ptr %729, align 2, !tbaa !15
  %25342 = zext i16 %25341 to i32
  %25343 = icmp sle i32 %25340, %25342
  br i1 %25343, label %25344, label %25352

25344:                                            ; preds = %25337
  %25345 = load i16, ptr %729, align 2, !tbaa !15
  %25346 = zext i16 %25345 to i32
  %25347 = load ptr, ptr %12, align 8, !tbaa !5
  %25348 = load i16, ptr %25347, align 2, !tbaa !15
  %25349 = zext i16 %25348 to i32
  %25350 = icmp sle i32 %25346, %25349
  br i1 %25350, label %25351, label %25352

25351:                                            ; preds = %25344
  br label %25353

25352:                                            ; preds = %25344, %25337, %25334
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.24, i32 noundef 485, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

25353:                                            ; preds = %25351
  %25354 = load ptr, ptr %11, align 8, !tbaa !5
  %25355 = load i16, ptr %25354, align 2, !tbaa !15
  %25356 = uitofp i16 %25355 to double
  store double %25356, ptr %730, align 8, !tbaa !11
  %25357 = load ptr, ptr %12, align 8, !tbaa !5
  %25358 = load i16, ptr %25357, align 2, !tbaa !15
  %25359 = uitofp i16 %25358 to double
  store double %25359, ptr %731, align 8, !tbaa !11
  br label %25360

25360:                                            ; preds = %25353, %25329
  %25361 = load i32, ptr %8, align 4, !tbaa !9
  %25362 = icmp ule i32 6, %25361
  br i1 %25362, label %25363, label %25601

25363:                                            ; preds = %25360
  %25364 = load double, ptr %730, align 8, !tbaa !11
  %25365 = load double, ptr %731, align 8, !tbaa !11
  %25366 = fcmp olt double %25364, %25365
  br i1 %25366, label %25367, label %25601

25367:                                            ; preds = %25363
  %25368 = load i32, ptr %8, align 4, !tbaa !9
  %25369 = icmp ule i32 15, %25368
  br i1 %25369, label %25370, label %25424

25370:                                            ; preds = %25367
  call void @llvm.lifetime.start.p0(i64 8, ptr %732) #3
  %25371 = load double, ptr %730, align 8, !tbaa !11
  %25372 = fcmp olt double 0.000000e+00, %25371
  br i1 %25372, label %25373, label %25375

25373:                                            ; preds = %25370
  %25374 = load double, ptr %730, align 8, !tbaa !11
  br label %25376

25375:                                            ; preds = %25370
  br label %25376

25376:                                            ; preds = %25375, %25373
  %25377 = phi double [ %25374, %25373 ], [ 0.000000e+00, %25375 ]
  store double %25377, ptr %732, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %733) #3
  %25378 = load double, ptr %731, align 8, !tbaa !11
  %25379 = fcmp olt double 0.000000e+00, %25378
  br i1 %25379, label %25380, label %25382

25380:                                            ; preds = %25376
  %25381 = load double, ptr %731, align 8, !tbaa !11
  br label %25383

25382:                                            ; preds = %25376
  br label %25383

25383:                                            ; preds = %25382, %25380
  %25384 = phi double [ %25381, %25380 ], [ 0.000000e+00, %25382 ]
  store double %25384, ptr %733, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %734) #3
  %25385 = load double, ptr %732, align 8, !tbaa !11
  %25386 = load double, ptr %733, align 8, !tbaa !11
  %25387 = fcmp olt double %25385, %25386
  br i1 %25387, label %25388, label %25396

25388:                                            ; preds = %25383
  %25389 = load double, ptr %731, align 8, !tbaa !11
  %25390 = load double, ptr %730, align 8, !tbaa !11
  %25391 = fsub double %25389, %25390
  %25392 = load double, ptr %733, align 8, !tbaa !11
  %25393 = load double, ptr %732, align 8, !tbaa !11
  %25394 = fsub double %25392, %25393
  %25395 = fdiv double %25391, %25394
  br label %25397

25396:                                            ; preds = %25383
  br label %25397

25397:                                            ; preds = %25396, %25388
  %25398 = phi double [ %25395, %25388 ], [ 1.000000e+00, %25396 ]
  store double %25398, ptr %734, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %735) #3
  %25399 = load double, ptr %734, align 8, !tbaa !11
  %25400 = load i16, ptr %729, align 2, !tbaa !15
  %25401 = zext i16 %25400 to i32
  %25402 = icmp slt i32 0, %25401
  br i1 %25402, label %25403, label %25406

25403:                                            ; preds = %25397
  %25404 = load i16, ptr %729, align 2, !tbaa !15
  %25405 = zext i16 %25404 to i32
  br label %25407

25406:                                            ; preds = %25397
  br label %25407

25407:                                            ; preds = %25406, %25403
  %25408 = phi i32 [ %25405, %25403 ], [ 0, %25406 ]
  %25409 = sitofp i32 %25408 to double
  %25410 = fmul double %25399, %25409
  store double %25410, ptr %735, align 8, !tbaa !11
  %25411 = load double, ptr %735, align 8, !tbaa !11
  %25412 = fcmp ole double 0.000000e+00, %25411
  br i1 %25412, label %25413, label %25416

25413:                                            ; preds = %25407
  %25414 = load double, ptr %735, align 8, !tbaa !11
  %25415 = fadd double %25414, 5.000000e-01
  br label %25419

25416:                                            ; preds = %25407
  %25417 = load double, ptr %735, align 8, !tbaa !11
  %25418 = fsub double %25417, 5.000000e-01
  br label %25419

25419:                                            ; preds = %25416, %25413
  %25420 = phi double [ %25415, %25413 ], [ %25418, %25416 ]
  %25421 = fptoui double %25420 to i16
  store i16 %25421, ptr %729, align 2, !tbaa !15
  %25422 = load double, ptr %732, align 8, !tbaa !11
  store double %25422, ptr %730, align 8, !tbaa !11
  %25423 = load double, ptr %733, align 8, !tbaa !11
  store double %25423, ptr %731, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %735) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %734) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %733) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %732) #3
  br label %25480

25424:                                            ; preds = %25367
  %25425 = load i32, ptr %8, align 4, !tbaa !9
  %25426 = icmp ugt i32 6, %25425
  br i1 %25426, label %25455, label %25427

25427:                                            ; preds = %25424
  %25428 = load i32, ptr %8, align 4, !tbaa !9
  %25429 = icmp ugt i32 15, %25428
  br i1 %25429, label %25430, label %25441

25430:                                            ; preds = %25427
  %25431 = load i32, ptr %9, align 4, !tbaa !9
  %25432 = icmp ugt i32 15, %25431
  br i1 %25432, label %25433, label %25438

25433:                                            ; preds = %25430
  %25434 = load i32, ptr %9, align 4, !tbaa !9
  %25435 = load i32, ptr %8, align 4, !tbaa !9
  %25436 = icmp ugt i32 %25434, %25435
  %25437 = zext i1 %25436 to i32
  br label %25439

25438:                                            ; preds = %25430
  br label %25439

25439:                                            ; preds = %25438, %25433
  %25440 = phi i32 [ %25437, %25433 ], [ 0, %25438 ]
  br label %25452

25441:                                            ; preds = %25427
  %25442 = load i32, ptr %9, align 4, !tbaa !9
  %25443 = icmp ugt i32 15, %25442
  br i1 %25443, label %25444, label %25445

25444:                                            ; preds = %25441
  br label %25450

25445:                                            ; preds = %25441
  %25446 = load i32, ptr %9, align 4, !tbaa !9
  %25447 = load i32, ptr %8, align 4, !tbaa !9
  %25448 = icmp ugt i32 %25446, %25447
  %25449 = zext i1 %25448 to i32
  br label %25450

25450:                                            ; preds = %25445, %25444
  %25451 = phi i32 [ 0, %25444 ], [ %25449, %25445 ]
  br label %25452

25452:                                            ; preds = %25450, %25439
  %25453 = phi i32 [ %25440, %25439 ], [ %25451, %25450 ]
  %25454 = icmp ne i32 %25453, 0
  br label %25455

25455:                                            ; preds = %25452, %25424
  %25456 = phi i1 [ true, %25424 ], [ %25454, %25452 ]
  %25457 = zext i1 %25456 to i32
  %25458 = icmp eq i32 0, %25457
  br i1 %25458, label %25459, label %25479

25459:                                            ; preds = %25455
  %25460 = load double, ptr %730, align 8, !tbaa !11
  %25461 = fcmp ogt double 0.000000e+00, %25460
  br i1 %25461, label %25462, label %25479

25462:                                            ; preds = %25459
  %25463 = load double, ptr %731, align 8, !tbaa !11
  %25464 = fcmp olt double 0.000000e+00, %25463
  br i1 %25464, label %25465, label %25479

25465:                                            ; preds = %25462
  %25466 = load double, ptr %730, align 8, !tbaa !11
  %25467 = fneg double %25466
  %25468 = load double, ptr %731, align 8, !tbaa !11
  %25469 = fcmp olt double %25467, %25468
  br i1 %25469, label %25470, label %25472

25470:                                            ; preds = %25465
  %25471 = load double, ptr %731, align 8, !tbaa !11
  br label %25475

25472:                                            ; preds = %25465
  %25473 = load double, ptr %730, align 8, !tbaa !11
  %25474 = fneg double %25473
  br label %25475

25475:                                            ; preds = %25472, %25470
  %25476 = phi double [ %25471, %25470 ], [ %25474, %25472 ]
  store double %25476, ptr %731, align 8, !tbaa !11
  %25477 = load double, ptr %731, align 8, !tbaa !11
  %25478 = fneg double %25477
  store double %25478, ptr %730, align 8, !tbaa !11
  br label %25479

25479:                                            ; preds = %25475, %25462, %25459, %25455
  br label %25480

25480:                                            ; preds = %25479, %25419
  call void @llvm.lifetime.start.p0(i64 8, ptr %736) #3
  %25481 = load double, ptr %730, align 8, !tbaa !11
  %25482 = fcmp ole double 0.000000e+00, %25481
  %25483 = zext i1 %25482 to i64
  %25484 = select i1 %25482, double 0.000000e+00, double 0xC1E0000000000000
  store double %25484, ptr %736, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %737) #3
  %25485 = load double, ptr %731, align 8, !tbaa !11
  %25486 = fcmp ole double 0.000000e+00, %25485
  %25487 = zext i1 %25486 to i64
  %25488 = select i1 %25486, double 0x41DFFFFFFFC00000, double 0.000000e+00
  store double %25488, ptr %737, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %738) #3
  %25489 = load i16, ptr %729, align 2, !tbaa !15
  %25490 = uitofp i16 %25489 to double
  %25491 = load double, ptr %730, align 8, !tbaa !11
  %25492 = fsub double %25490, %25491
  %25493 = load double, ptr %737, align 8, !tbaa !11
  %25494 = load double, ptr %736, align 8, !tbaa !11
  %25495 = fsub double %25493, %25494
  %25496 = fmul double %25492, %25495
  %25497 = load double, ptr %731, align 8, !tbaa !11
  %25498 = load double, ptr %730, align 8, !tbaa !11
  %25499 = fsub double %25497, %25498
  %25500 = fdiv double %25496, %25499
  %25501 = load double, ptr %736, align 8, !tbaa !11
  %25502 = fadd double %25500, %25501
  store double %25502, ptr %738, align 8, !tbaa !11
  %25503 = load double, ptr %736, align 8, !tbaa !11
  %25504 = load double, ptr %738, align 8, !tbaa !11
  %25505 = fcmp ole double 0.000000e+00, %25504
  br i1 %25505, label %25506, label %25509

25506:                                            ; preds = %25480
  %25507 = load double, ptr %738, align 8, !tbaa !11
  %25508 = fadd double %25507, 5.000000e-01
  br label %25512

25509:                                            ; preds = %25480
  %25510 = load double, ptr %738, align 8, !tbaa !11
  %25511 = fsub double %25510, 5.000000e-01
  br label %25512

25512:                                            ; preds = %25509, %25506
  %25513 = phi double [ %25508, %25506 ], [ %25511, %25509 ]
  %25514 = fcmp olt double %25503, %25513
  br i1 %25514, label %25515, label %25569

25515:                                            ; preds = %25512
  %25516 = load double, ptr %738, align 8, !tbaa !11
  %25517 = fcmp ole double 0.000000e+00, %25516
  br i1 %25517, label %25518, label %25521

25518:                                            ; preds = %25515
  %25519 = load double, ptr %738, align 8, !tbaa !11
  %25520 = fadd double %25519, 5.000000e-01
  br label %25524

25521:                                            ; preds = %25515
  %25522 = load double, ptr %738, align 8, !tbaa !11
  %25523 = fsub double %25522, 5.000000e-01
  br label %25524

25524:                                            ; preds = %25521, %25518
  %25525 = phi double [ %25520, %25518 ], [ %25523, %25521 ]
  %25526 = load double, ptr %737, align 8, !tbaa !11
  %25527 = fcmp ole double %25525, %25526
  br i1 %25527, label %25528, label %25539

25528:                                            ; preds = %25524
  %25529 = load double, ptr %738, align 8, !tbaa !11
  %25530 = fcmp ole double 0.000000e+00, %25529
  br i1 %25530, label %25531, label %25534

25531:                                            ; preds = %25528
  %25532 = load double, ptr %738, align 8, !tbaa !11
  %25533 = fadd double %25532, 5.000000e-01
  br label %25537

25534:                                            ; preds = %25528
  %25535 = load double, ptr %738, align 8, !tbaa !11
  %25536 = fsub double %25535, 5.000000e-01
  br label %25537

25537:                                            ; preds = %25534, %25531
  %25538 = phi double [ %25533, %25531 ], [ %25536, %25534 ]
  br label %25567

25539:                                            ; preds = %25524
  %25540 = load double, ptr %738, align 8, !tbaa !11
  %25541 = fcmp ole double 0.000000e+00, %25540
  br i1 %25541, label %25542, label %25545

25542:                                            ; preds = %25539
  %25543 = load double, ptr %738, align 8, !tbaa !11
  %25544 = fadd double %25543, 5.000000e-01
  br label %25548

25545:                                            ; preds = %25539
  %25546 = load double, ptr %738, align 8, !tbaa !11
  %25547 = fsub double %25546, 5.000000e-01
  br label %25548

25548:                                            ; preds = %25545, %25542
  %25549 = phi double [ %25544, %25542 ], [ %25547, %25545 ]
  %25550 = load double, ptr %737, align 8, !tbaa !11
  %25551 = fcmp olt double %25549, %25550
  br i1 %25551, label %25552, label %25563

25552:                                            ; preds = %25548
  %25553 = load double, ptr %738, align 8, !tbaa !11
  %25554 = fcmp ole double 0.000000e+00, %25553
  br i1 %25554, label %25555, label %25558

25555:                                            ; preds = %25552
  %25556 = load double, ptr %738, align 8, !tbaa !11
  %25557 = fadd double %25556, 5.000000e-01
  br label %25561

25558:                                            ; preds = %25552
  %25559 = load double, ptr %738, align 8, !tbaa !11
  %25560 = fsub double %25559, 5.000000e-01
  br label %25561

25561:                                            ; preds = %25558, %25555
  %25562 = phi double [ %25557, %25555 ], [ %25560, %25558 ]
  br label %25565

25563:                                            ; preds = %25548
  %25564 = load double, ptr %737, align 8, !tbaa !11
  br label %25565

25565:                                            ; preds = %25563, %25561
  %25566 = phi double [ %25562, %25561 ], [ %25564, %25563 ]
  br label %25567

25567:                                            ; preds = %25565, %25537
  %25568 = phi double [ %25538, %25537 ], [ %25566, %25565 ]
  br label %25597

25569:                                            ; preds = %25512
  %25570 = load double, ptr %736, align 8, !tbaa !11
  %25571 = load double, ptr %738, align 8, !tbaa !11
  %25572 = fcmp ole double 0.000000e+00, %25571
  br i1 %25572, label %25573, label %25576

25573:                                            ; preds = %25569
  %25574 = load double, ptr %738, align 8, !tbaa !11
  %25575 = fadd double %25574, 5.000000e-01
  br label %25579

25576:                                            ; preds = %25569
  %25577 = load double, ptr %738, align 8, !tbaa !11
  %25578 = fsub double %25577, 5.000000e-01
  br label %25579

25579:                                            ; preds = %25576, %25573
  %25580 = phi double [ %25575, %25573 ], [ %25578, %25576 ]
  %25581 = fcmp olt double %25570, %25580
  br i1 %25581, label %25582, label %25593

25582:                                            ; preds = %25579
  %25583 = load double, ptr %738, align 8, !tbaa !11
  %25584 = fcmp ole double 0.000000e+00, %25583
  br i1 %25584, label %25585, label %25588

25585:                                            ; preds = %25582
  %25586 = load double, ptr %738, align 8, !tbaa !11
  %25587 = fadd double %25586, 5.000000e-01
  br label %25591

25588:                                            ; preds = %25582
  %25589 = load double, ptr %738, align 8, !tbaa !11
  %25590 = fsub double %25589, 5.000000e-01
  br label %25591

25591:                                            ; preds = %25588, %25585
  %25592 = phi double [ %25587, %25585 ], [ %25590, %25588 ]
  br label %25595

25593:                                            ; preds = %25579
  %25594 = load double, ptr %736, align 8, !tbaa !11
  br label %25595

25595:                                            ; preds = %25593, %25591
  %25596 = phi double [ %25592, %25591 ], [ %25594, %25593 ]
  br label %25597

25597:                                            ; preds = %25595, %25567
  %25598 = phi double [ %25568, %25567 ], [ %25596, %25595 ]
  %25599 = fptosi double %25598 to i32
  %25600 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %25599, ptr %25600, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %738) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %737) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %736) #3
  br label %25685

25601:                                            ; preds = %25363, %25360
  %25602 = load i32, ptr %8, align 4, !tbaa !9
  %25603 = icmp ugt i32 6, %25602
  br i1 %25603, label %25632, label %25604

25604:                                            ; preds = %25601
  %25605 = load i32, ptr %8, align 4, !tbaa !9
  %25606 = icmp ugt i32 15, %25605
  br i1 %25606, label %25607, label %25618

25607:                                            ; preds = %25604
  %25608 = load i32, ptr %9, align 4, !tbaa !9
  %25609 = icmp ugt i32 15, %25608
  br i1 %25609, label %25610, label %25615

25610:                                            ; preds = %25607
  %25611 = load i32, ptr %9, align 4, !tbaa !9
  %25612 = load i32, ptr %8, align 4, !tbaa !9
  %25613 = icmp ugt i32 %25611, %25612
  %25614 = zext i1 %25613 to i32
  br label %25616

25615:                                            ; preds = %25607
  br label %25616

25616:                                            ; preds = %25615, %25610
  %25617 = phi i32 [ %25614, %25610 ], [ 0, %25615 ]
  br label %25629

25618:                                            ; preds = %25604
  %25619 = load i32, ptr %9, align 4, !tbaa !9
  %25620 = icmp ugt i32 15, %25619
  br i1 %25620, label %25621, label %25622

25621:                                            ; preds = %25618
  br label %25627

25622:                                            ; preds = %25618
  %25623 = load i32, ptr %9, align 4, !tbaa !9
  %25624 = load i32, ptr %8, align 4, !tbaa !9
  %25625 = icmp ugt i32 %25623, %25624
  %25626 = zext i1 %25625 to i32
  br label %25627

25627:                                            ; preds = %25622, %25621
  %25628 = phi i32 [ 0, %25621 ], [ %25626, %25622 ]
  br label %25629

25629:                                            ; preds = %25627, %25616
  %25630 = phi i32 [ %25617, %25616 ], [ %25628, %25627 ]
  %25631 = icmp ne i32 %25630, 0
  br label %25632

25632:                                            ; preds = %25629, %25601
  %25633 = phi i1 [ true, %25601 ], [ %25631, %25629 ]
  %25634 = zext i1 %25633 to i32
  %25635 = icmp eq i32 0, %25634
  br i1 %25635, label %25636, label %25680

25636:                                            ; preds = %25632
  %25637 = load i16, ptr %729, align 2, !tbaa !15
  %25638 = zext i16 %25637 to i32
  %25639 = sitofp i32 %25638 to double
  %25640 = fcmp olt double 0xC1E0000000000000, %25639
  br i1 %25640, label %25641, label %25664

25641:                                            ; preds = %25636
  %25642 = load i16, ptr %729, align 2, !tbaa !15
  %25643 = zext i16 %25642 to i32
  %25644 = sitofp i32 %25643 to double
  %25645 = fcmp ole double %25644, 0x41DFFFFFFFC00000
  br i1 %25645, label %25646, label %25650

25646:                                            ; preds = %25641
  %25647 = load i16, ptr %729, align 2, !tbaa !15
  %25648 = zext i16 %25647 to i32
  %25649 = sitofp i32 %25648 to double
  br label %25662

25650:                                            ; preds = %25641
  %25651 = load i16, ptr %729, align 2, !tbaa !15
  %25652 = zext i16 %25651 to i32
  %25653 = sitofp i32 %25652 to double
  %25654 = fcmp olt double %25653, 0x41DFFFFFFFC00000
  br i1 %25654, label %25655, label %25659

25655:                                            ; preds = %25650
  %25656 = load i16, ptr %729, align 2, !tbaa !15
  %25657 = zext i16 %25656 to i32
  %25658 = sitofp i32 %25657 to double
  br label %25660

25659:                                            ; preds = %25650
  br label %25660

25660:                                            ; preds = %25659, %25655
  %25661 = phi double [ %25658, %25655 ], [ 0x41DFFFFFFFC00000, %25659 ]
  br label %25662

25662:                                            ; preds = %25660, %25646
  %25663 = phi double [ %25649, %25646 ], [ %25661, %25660 ]
  br label %25676

25664:                                            ; preds = %25636
  %25665 = load i16, ptr %729, align 2, !tbaa !15
  %25666 = zext i16 %25665 to i32
  %25667 = sitofp i32 %25666 to double
  %25668 = fcmp olt double 0xC1E0000000000000, %25667
  br i1 %25668, label %25669, label %25673

25669:                                            ; preds = %25664
  %25670 = load i16, ptr %729, align 2, !tbaa !15
  %25671 = zext i16 %25670 to i32
  %25672 = sitofp i32 %25671 to double
  br label %25674

25673:                                            ; preds = %25664
  br label %25674

25674:                                            ; preds = %25673, %25669
  %25675 = phi double [ %25672, %25669 ], [ 0xC1E0000000000000, %25673 ]
  br label %25676

25676:                                            ; preds = %25674, %25662
  %25677 = phi double [ %25663, %25662 ], [ %25675, %25674 ]
  %25678 = fptosi double %25677 to i32
  %25679 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %25678, ptr %25679, align 4, !tbaa !9
  br label %25684

25680:                                            ; preds = %25632
  %25681 = load i16, ptr %729, align 2, !tbaa !15
  %25682 = zext i16 %25681 to i32
  %25683 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %25682, ptr %25683, align 4, !tbaa !9
  br label %25684

25684:                                            ; preds = %25680, %25676
  br label %25685

25685:                                            ; preds = %25684, %25597
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %731) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %730) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %729) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %728) #3
  br label %25686

25686:                                            ; preds = %25685
  br label %25687

25687:                                            ; preds = %25686
  br label %26843

25688:                                            ; preds = %23220
  br label %25689

25689:                                            ; preds = %25688
  call void @llvm.lifetime.start.p0(i64 8, ptr %739) #3
  store double 5.000000e-01, ptr %739, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %740) #3
  %25690 = load ptr, ptr %10, align 8, !tbaa !5
  %25691 = load i8, ptr %25690, align 1, !tbaa !17
  store i8 %25691, ptr %740, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %741) #3
  store double 0.000000e+00, ptr %741, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %742) #3
  store double 0.000000e+00, ptr %742, align 8, !tbaa !11
  %25692 = load ptr, ptr %11, align 8, !tbaa !5
  %25693 = icmp ne ptr null, %25692
  br i1 %25693, label %25694, label %25720

25694:                                            ; preds = %25689
  %25695 = load ptr, ptr %12, align 8, !tbaa !5
  %25696 = icmp ne ptr null, %25695
  br i1 %25696, label %25697, label %25712

25697:                                            ; preds = %25694
  %25698 = load ptr, ptr %11, align 8, !tbaa !5
  %25699 = load i8, ptr %25698, align 1, !tbaa !17
  %25700 = zext i8 %25699 to i32
  %25701 = load i8, ptr %740, align 1, !tbaa !17
  %25702 = zext i8 %25701 to i32
  %25703 = icmp sle i32 %25700, %25702
  br i1 %25703, label %25704, label %25712

25704:                                            ; preds = %25697
  %25705 = load i8, ptr %740, align 1, !tbaa !17
  %25706 = zext i8 %25705 to i32
  %25707 = load ptr, ptr %12, align 8, !tbaa !5
  %25708 = load i8, ptr %25707, align 1, !tbaa !17
  %25709 = zext i8 %25708 to i32
  %25710 = icmp sle i32 %25706, %25709
  br i1 %25710, label %25711, label %25712

25711:                                            ; preds = %25704
  br label %25713

25712:                                            ; preds = %25704, %25697, %25694
  call void @__assert_fail(ptr noundef @.str.49, ptr noundef @.str.24, i32 noundef 485, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

25713:                                            ; preds = %25711
  %25714 = load ptr, ptr %11, align 8, !tbaa !5
  %25715 = load i8, ptr %25714, align 1, !tbaa !17
  %25716 = uitofp i8 %25715 to double
  store double %25716, ptr %741, align 8, !tbaa !11
  %25717 = load ptr, ptr %12, align 8, !tbaa !5
  %25718 = load i8, ptr %25717, align 1, !tbaa !17
  %25719 = uitofp i8 %25718 to double
  store double %25719, ptr %742, align 8, !tbaa !11
  br label %25720

25720:                                            ; preds = %25713, %25689
  %25721 = load i32, ptr %8, align 4, !tbaa !9
  %25722 = icmp ule i32 6, %25721
  br i1 %25722, label %25723, label %25961

25723:                                            ; preds = %25720
  %25724 = load double, ptr %741, align 8, !tbaa !11
  %25725 = load double, ptr %742, align 8, !tbaa !11
  %25726 = fcmp olt double %25724, %25725
  br i1 %25726, label %25727, label %25961

25727:                                            ; preds = %25723
  %25728 = load i32, ptr %8, align 4, !tbaa !9
  %25729 = icmp ule i32 15, %25728
  br i1 %25729, label %25730, label %25784

25730:                                            ; preds = %25727
  call void @llvm.lifetime.start.p0(i64 8, ptr %743) #3
  %25731 = load double, ptr %741, align 8, !tbaa !11
  %25732 = fcmp olt double 0.000000e+00, %25731
  br i1 %25732, label %25733, label %25735

25733:                                            ; preds = %25730
  %25734 = load double, ptr %741, align 8, !tbaa !11
  br label %25736

25735:                                            ; preds = %25730
  br label %25736

25736:                                            ; preds = %25735, %25733
  %25737 = phi double [ %25734, %25733 ], [ 0.000000e+00, %25735 ]
  store double %25737, ptr %743, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %744) #3
  %25738 = load double, ptr %742, align 8, !tbaa !11
  %25739 = fcmp olt double 0.000000e+00, %25738
  br i1 %25739, label %25740, label %25742

25740:                                            ; preds = %25736
  %25741 = load double, ptr %742, align 8, !tbaa !11
  br label %25743

25742:                                            ; preds = %25736
  br label %25743

25743:                                            ; preds = %25742, %25740
  %25744 = phi double [ %25741, %25740 ], [ 0.000000e+00, %25742 ]
  store double %25744, ptr %744, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %745) #3
  %25745 = load double, ptr %743, align 8, !tbaa !11
  %25746 = load double, ptr %744, align 8, !tbaa !11
  %25747 = fcmp olt double %25745, %25746
  br i1 %25747, label %25748, label %25756

25748:                                            ; preds = %25743
  %25749 = load double, ptr %742, align 8, !tbaa !11
  %25750 = load double, ptr %741, align 8, !tbaa !11
  %25751 = fsub double %25749, %25750
  %25752 = load double, ptr %744, align 8, !tbaa !11
  %25753 = load double, ptr %743, align 8, !tbaa !11
  %25754 = fsub double %25752, %25753
  %25755 = fdiv double %25751, %25754
  br label %25757

25756:                                            ; preds = %25743
  br label %25757

25757:                                            ; preds = %25756, %25748
  %25758 = phi double [ %25755, %25748 ], [ 1.000000e+00, %25756 ]
  store double %25758, ptr %745, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %746) #3
  %25759 = load double, ptr %745, align 8, !tbaa !11
  %25760 = load i8, ptr %740, align 1, !tbaa !17
  %25761 = zext i8 %25760 to i32
  %25762 = icmp slt i32 0, %25761
  br i1 %25762, label %25763, label %25766

25763:                                            ; preds = %25757
  %25764 = load i8, ptr %740, align 1, !tbaa !17
  %25765 = zext i8 %25764 to i32
  br label %25767

25766:                                            ; preds = %25757
  br label %25767

25767:                                            ; preds = %25766, %25763
  %25768 = phi i32 [ %25765, %25763 ], [ 0, %25766 ]
  %25769 = sitofp i32 %25768 to double
  %25770 = fmul double %25759, %25769
  store double %25770, ptr %746, align 8, !tbaa !11
  %25771 = load double, ptr %746, align 8, !tbaa !11
  %25772 = fcmp ole double 0.000000e+00, %25771
  br i1 %25772, label %25773, label %25776

25773:                                            ; preds = %25767
  %25774 = load double, ptr %746, align 8, !tbaa !11
  %25775 = fadd double %25774, 5.000000e-01
  br label %25779

25776:                                            ; preds = %25767
  %25777 = load double, ptr %746, align 8, !tbaa !11
  %25778 = fsub double %25777, 5.000000e-01
  br label %25779

25779:                                            ; preds = %25776, %25773
  %25780 = phi double [ %25775, %25773 ], [ %25778, %25776 ]
  %25781 = fptoui double %25780 to i8
  store i8 %25781, ptr %740, align 1, !tbaa !17
  %25782 = load double, ptr %743, align 8, !tbaa !11
  store double %25782, ptr %741, align 8, !tbaa !11
  %25783 = load double, ptr %744, align 8, !tbaa !11
  store double %25783, ptr %742, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %746) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %745) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %744) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %743) #3
  br label %25840

25784:                                            ; preds = %25727
  %25785 = load i32, ptr %8, align 4, !tbaa !9
  %25786 = icmp ugt i32 6, %25785
  br i1 %25786, label %25815, label %25787

25787:                                            ; preds = %25784
  %25788 = load i32, ptr %8, align 4, !tbaa !9
  %25789 = icmp ugt i32 15, %25788
  br i1 %25789, label %25790, label %25801

25790:                                            ; preds = %25787
  %25791 = load i32, ptr %9, align 4, !tbaa !9
  %25792 = icmp ugt i32 15, %25791
  br i1 %25792, label %25793, label %25798

25793:                                            ; preds = %25790
  %25794 = load i32, ptr %9, align 4, !tbaa !9
  %25795 = load i32, ptr %8, align 4, !tbaa !9
  %25796 = icmp ugt i32 %25794, %25795
  %25797 = zext i1 %25796 to i32
  br label %25799

25798:                                            ; preds = %25790
  br label %25799

25799:                                            ; preds = %25798, %25793
  %25800 = phi i32 [ %25797, %25793 ], [ 0, %25798 ]
  br label %25812

25801:                                            ; preds = %25787
  %25802 = load i32, ptr %9, align 4, !tbaa !9
  %25803 = icmp ugt i32 15, %25802
  br i1 %25803, label %25804, label %25805

25804:                                            ; preds = %25801
  br label %25810

25805:                                            ; preds = %25801
  %25806 = load i32, ptr %9, align 4, !tbaa !9
  %25807 = load i32, ptr %8, align 4, !tbaa !9
  %25808 = icmp ugt i32 %25806, %25807
  %25809 = zext i1 %25808 to i32
  br label %25810

25810:                                            ; preds = %25805, %25804
  %25811 = phi i32 [ 0, %25804 ], [ %25809, %25805 ]
  br label %25812

25812:                                            ; preds = %25810, %25799
  %25813 = phi i32 [ %25800, %25799 ], [ %25811, %25810 ]
  %25814 = icmp ne i32 %25813, 0
  br label %25815

25815:                                            ; preds = %25812, %25784
  %25816 = phi i1 [ true, %25784 ], [ %25814, %25812 ]
  %25817 = zext i1 %25816 to i32
  %25818 = icmp eq i32 0, %25817
  br i1 %25818, label %25819, label %25839

25819:                                            ; preds = %25815
  %25820 = load double, ptr %741, align 8, !tbaa !11
  %25821 = fcmp ogt double 0.000000e+00, %25820
  br i1 %25821, label %25822, label %25839

25822:                                            ; preds = %25819
  %25823 = load double, ptr %742, align 8, !tbaa !11
  %25824 = fcmp olt double 0.000000e+00, %25823
  br i1 %25824, label %25825, label %25839

25825:                                            ; preds = %25822
  %25826 = load double, ptr %741, align 8, !tbaa !11
  %25827 = fneg double %25826
  %25828 = load double, ptr %742, align 8, !tbaa !11
  %25829 = fcmp olt double %25827, %25828
  br i1 %25829, label %25830, label %25832

25830:                                            ; preds = %25825
  %25831 = load double, ptr %742, align 8, !tbaa !11
  br label %25835

25832:                                            ; preds = %25825
  %25833 = load double, ptr %741, align 8, !tbaa !11
  %25834 = fneg double %25833
  br label %25835

25835:                                            ; preds = %25832, %25830
  %25836 = phi double [ %25831, %25830 ], [ %25834, %25832 ]
  store double %25836, ptr %742, align 8, !tbaa !11
  %25837 = load double, ptr %742, align 8, !tbaa !11
  %25838 = fneg double %25837
  store double %25838, ptr %741, align 8, !tbaa !11
  br label %25839

25839:                                            ; preds = %25835, %25822, %25819, %25815
  br label %25840

25840:                                            ; preds = %25839, %25779
  call void @llvm.lifetime.start.p0(i64 8, ptr %747) #3
  %25841 = load double, ptr %741, align 8, !tbaa !11
  %25842 = fcmp ole double 0.000000e+00, %25841
  %25843 = zext i1 %25842 to i64
  %25844 = select i1 %25842, double 0.000000e+00, double 0xC1E0000000000000
  store double %25844, ptr %747, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %748) #3
  %25845 = load double, ptr %742, align 8, !tbaa !11
  %25846 = fcmp ole double 0.000000e+00, %25845
  %25847 = zext i1 %25846 to i64
  %25848 = select i1 %25846, double 0x41DFFFFFFFC00000, double 0.000000e+00
  store double %25848, ptr %748, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %749) #3
  %25849 = load i8, ptr %740, align 1, !tbaa !17
  %25850 = uitofp i8 %25849 to double
  %25851 = load double, ptr %741, align 8, !tbaa !11
  %25852 = fsub double %25850, %25851
  %25853 = load double, ptr %748, align 8, !tbaa !11
  %25854 = load double, ptr %747, align 8, !tbaa !11
  %25855 = fsub double %25853, %25854
  %25856 = fmul double %25852, %25855
  %25857 = load double, ptr %742, align 8, !tbaa !11
  %25858 = load double, ptr %741, align 8, !tbaa !11
  %25859 = fsub double %25857, %25858
  %25860 = fdiv double %25856, %25859
  %25861 = load double, ptr %747, align 8, !tbaa !11
  %25862 = fadd double %25860, %25861
  store double %25862, ptr %749, align 8, !tbaa !11
  %25863 = load double, ptr %747, align 8, !tbaa !11
  %25864 = load double, ptr %749, align 8, !tbaa !11
  %25865 = fcmp ole double 0.000000e+00, %25864
  br i1 %25865, label %25866, label %25869

25866:                                            ; preds = %25840
  %25867 = load double, ptr %749, align 8, !tbaa !11
  %25868 = fadd double %25867, 5.000000e-01
  br label %25872

25869:                                            ; preds = %25840
  %25870 = load double, ptr %749, align 8, !tbaa !11
  %25871 = fsub double %25870, 5.000000e-01
  br label %25872

25872:                                            ; preds = %25869, %25866
  %25873 = phi double [ %25868, %25866 ], [ %25871, %25869 ]
  %25874 = fcmp olt double %25863, %25873
  br i1 %25874, label %25875, label %25929

25875:                                            ; preds = %25872
  %25876 = load double, ptr %749, align 8, !tbaa !11
  %25877 = fcmp ole double 0.000000e+00, %25876
  br i1 %25877, label %25878, label %25881

25878:                                            ; preds = %25875
  %25879 = load double, ptr %749, align 8, !tbaa !11
  %25880 = fadd double %25879, 5.000000e-01
  br label %25884

25881:                                            ; preds = %25875
  %25882 = load double, ptr %749, align 8, !tbaa !11
  %25883 = fsub double %25882, 5.000000e-01
  br label %25884

25884:                                            ; preds = %25881, %25878
  %25885 = phi double [ %25880, %25878 ], [ %25883, %25881 ]
  %25886 = load double, ptr %748, align 8, !tbaa !11
  %25887 = fcmp ole double %25885, %25886
  br i1 %25887, label %25888, label %25899

25888:                                            ; preds = %25884
  %25889 = load double, ptr %749, align 8, !tbaa !11
  %25890 = fcmp ole double 0.000000e+00, %25889
  br i1 %25890, label %25891, label %25894

25891:                                            ; preds = %25888
  %25892 = load double, ptr %749, align 8, !tbaa !11
  %25893 = fadd double %25892, 5.000000e-01
  br label %25897

25894:                                            ; preds = %25888
  %25895 = load double, ptr %749, align 8, !tbaa !11
  %25896 = fsub double %25895, 5.000000e-01
  br label %25897

25897:                                            ; preds = %25894, %25891
  %25898 = phi double [ %25893, %25891 ], [ %25896, %25894 ]
  br label %25927

25899:                                            ; preds = %25884
  %25900 = load double, ptr %749, align 8, !tbaa !11
  %25901 = fcmp ole double 0.000000e+00, %25900
  br i1 %25901, label %25902, label %25905

25902:                                            ; preds = %25899
  %25903 = load double, ptr %749, align 8, !tbaa !11
  %25904 = fadd double %25903, 5.000000e-01
  br label %25908

25905:                                            ; preds = %25899
  %25906 = load double, ptr %749, align 8, !tbaa !11
  %25907 = fsub double %25906, 5.000000e-01
  br label %25908

25908:                                            ; preds = %25905, %25902
  %25909 = phi double [ %25904, %25902 ], [ %25907, %25905 ]
  %25910 = load double, ptr %748, align 8, !tbaa !11
  %25911 = fcmp olt double %25909, %25910
  br i1 %25911, label %25912, label %25923

25912:                                            ; preds = %25908
  %25913 = load double, ptr %749, align 8, !tbaa !11
  %25914 = fcmp ole double 0.000000e+00, %25913
  br i1 %25914, label %25915, label %25918

25915:                                            ; preds = %25912
  %25916 = load double, ptr %749, align 8, !tbaa !11
  %25917 = fadd double %25916, 5.000000e-01
  br label %25921

25918:                                            ; preds = %25912
  %25919 = load double, ptr %749, align 8, !tbaa !11
  %25920 = fsub double %25919, 5.000000e-01
  br label %25921

25921:                                            ; preds = %25918, %25915
  %25922 = phi double [ %25917, %25915 ], [ %25920, %25918 ]
  br label %25925

25923:                                            ; preds = %25908
  %25924 = load double, ptr %748, align 8, !tbaa !11
  br label %25925

25925:                                            ; preds = %25923, %25921
  %25926 = phi double [ %25922, %25921 ], [ %25924, %25923 ]
  br label %25927

25927:                                            ; preds = %25925, %25897
  %25928 = phi double [ %25898, %25897 ], [ %25926, %25925 ]
  br label %25957

25929:                                            ; preds = %25872
  %25930 = load double, ptr %747, align 8, !tbaa !11
  %25931 = load double, ptr %749, align 8, !tbaa !11
  %25932 = fcmp ole double 0.000000e+00, %25931
  br i1 %25932, label %25933, label %25936

25933:                                            ; preds = %25929
  %25934 = load double, ptr %749, align 8, !tbaa !11
  %25935 = fadd double %25934, 5.000000e-01
  br label %25939

25936:                                            ; preds = %25929
  %25937 = load double, ptr %749, align 8, !tbaa !11
  %25938 = fsub double %25937, 5.000000e-01
  br label %25939

25939:                                            ; preds = %25936, %25933
  %25940 = phi double [ %25935, %25933 ], [ %25938, %25936 ]
  %25941 = fcmp olt double %25930, %25940
  br i1 %25941, label %25942, label %25953

25942:                                            ; preds = %25939
  %25943 = load double, ptr %749, align 8, !tbaa !11
  %25944 = fcmp ole double 0.000000e+00, %25943
  br i1 %25944, label %25945, label %25948

25945:                                            ; preds = %25942
  %25946 = load double, ptr %749, align 8, !tbaa !11
  %25947 = fadd double %25946, 5.000000e-01
  br label %25951

25948:                                            ; preds = %25942
  %25949 = load double, ptr %749, align 8, !tbaa !11
  %25950 = fsub double %25949, 5.000000e-01
  br label %25951

25951:                                            ; preds = %25948, %25945
  %25952 = phi double [ %25947, %25945 ], [ %25950, %25948 ]
  br label %25955

25953:                                            ; preds = %25939
  %25954 = load double, ptr %747, align 8, !tbaa !11
  br label %25955

25955:                                            ; preds = %25953, %25951
  %25956 = phi double [ %25952, %25951 ], [ %25954, %25953 ]
  br label %25957

25957:                                            ; preds = %25955, %25927
  %25958 = phi double [ %25928, %25927 ], [ %25956, %25955 ]
  %25959 = fptosi double %25958 to i32
  %25960 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %25959, ptr %25960, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %749) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %748) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %747) #3
  br label %26045

25961:                                            ; preds = %25723, %25720
  %25962 = load i32, ptr %8, align 4, !tbaa !9
  %25963 = icmp ugt i32 6, %25962
  br i1 %25963, label %25992, label %25964

25964:                                            ; preds = %25961
  %25965 = load i32, ptr %8, align 4, !tbaa !9
  %25966 = icmp ugt i32 15, %25965
  br i1 %25966, label %25967, label %25978

25967:                                            ; preds = %25964
  %25968 = load i32, ptr %9, align 4, !tbaa !9
  %25969 = icmp ugt i32 15, %25968
  br i1 %25969, label %25970, label %25975

25970:                                            ; preds = %25967
  %25971 = load i32, ptr %9, align 4, !tbaa !9
  %25972 = load i32, ptr %8, align 4, !tbaa !9
  %25973 = icmp ugt i32 %25971, %25972
  %25974 = zext i1 %25973 to i32
  br label %25976

25975:                                            ; preds = %25967
  br label %25976

25976:                                            ; preds = %25975, %25970
  %25977 = phi i32 [ %25974, %25970 ], [ 0, %25975 ]
  br label %25989

25978:                                            ; preds = %25964
  %25979 = load i32, ptr %9, align 4, !tbaa !9
  %25980 = icmp ugt i32 15, %25979
  br i1 %25980, label %25981, label %25982

25981:                                            ; preds = %25978
  br label %25987

25982:                                            ; preds = %25978
  %25983 = load i32, ptr %9, align 4, !tbaa !9
  %25984 = load i32, ptr %8, align 4, !tbaa !9
  %25985 = icmp ugt i32 %25983, %25984
  %25986 = zext i1 %25985 to i32
  br label %25987

25987:                                            ; preds = %25982, %25981
  %25988 = phi i32 [ 0, %25981 ], [ %25986, %25982 ]
  br label %25989

25989:                                            ; preds = %25987, %25976
  %25990 = phi i32 [ %25977, %25976 ], [ %25988, %25987 ]
  %25991 = icmp ne i32 %25990, 0
  br label %25992

25992:                                            ; preds = %25989, %25961
  %25993 = phi i1 [ true, %25961 ], [ %25991, %25989 ]
  %25994 = zext i1 %25993 to i32
  %25995 = icmp eq i32 0, %25994
  br i1 %25995, label %25996, label %26040

25996:                                            ; preds = %25992
  %25997 = load i8, ptr %740, align 1, !tbaa !17
  %25998 = zext i8 %25997 to i32
  %25999 = sitofp i32 %25998 to double
  %26000 = fcmp olt double 0xC1E0000000000000, %25999
  br i1 %26000, label %26001, label %26024

26001:                                            ; preds = %25996
  %26002 = load i8, ptr %740, align 1, !tbaa !17
  %26003 = zext i8 %26002 to i32
  %26004 = sitofp i32 %26003 to double
  %26005 = fcmp ole double %26004, 0x41DFFFFFFFC00000
  br i1 %26005, label %26006, label %26010

26006:                                            ; preds = %26001
  %26007 = load i8, ptr %740, align 1, !tbaa !17
  %26008 = zext i8 %26007 to i32
  %26009 = sitofp i32 %26008 to double
  br label %26022

26010:                                            ; preds = %26001
  %26011 = load i8, ptr %740, align 1, !tbaa !17
  %26012 = zext i8 %26011 to i32
  %26013 = sitofp i32 %26012 to double
  %26014 = fcmp olt double %26013, 0x41DFFFFFFFC00000
  br i1 %26014, label %26015, label %26019

26015:                                            ; preds = %26010
  %26016 = load i8, ptr %740, align 1, !tbaa !17
  %26017 = zext i8 %26016 to i32
  %26018 = sitofp i32 %26017 to double
  br label %26020

26019:                                            ; preds = %26010
  br label %26020

26020:                                            ; preds = %26019, %26015
  %26021 = phi double [ %26018, %26015 ], [ 0x41DFFFFFFFC00000, %26019 ]
  br label %26022

26022:                                            ; preds = %26020, %26006
  %26023 = phi double [ %26009, %26006 ], [ %26021, %26020 ]
  br label %26036

26024:                                            ; preds = %25996
  %26025 = load i8, ptr %740, align 1, !tbaa !17
  %26026 = zext i8 %26025 to i32
  %26027 = sitofp i32 %26026 to double
  %26028 = fcmp olt double 0xC1E0000000000000, %26027
  br i1 %26028, label %26029, label %26033

26029:                                            ; preds = %26024
  %26030 = load i8, ptr %740, align 1, !tbaa !17
  %26031 = zext i8 %26030 to i32
  %26032 = sitofp i32 %26031 to double
  br label %26034

26033:                                            ; preds = %26024
  br label %26034

26034:                                            ; preds = %26033, %26029
  %26035 = phi double [ %26032, %26029 ], [ 0xC1E0000000000000, %26033 ]
  br label %26036

26036:                                            ; preds = %26034, %26022
  %26037 = phi double [ %26023, %26022 ], [ %26035, %26034 ]
  %26038 = fptosi double %26037 to i32
  %26039 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %26038, ptr %26039, align 4, !tbaa !9
  br label %26044

26040:                                            ; preds = %25992
  %26041 = load i8, ptr %740, align 1, !tbaa !17
  %26042 = zext i8 %26041 to i32
  %26043 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %26042, ptr %26043, align 4, !tbaa !9
  br label %26044

26044:                                            ; preds = %26040, %26036
  br label %26045

26045:                                            ; preds = %26044, %25957
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %742) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %741) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %740) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %739) #3
  br label %26046

26046:                                            ; preds = %26045
  br label %26047

26047:                                            ; preds = %26046
  br label %26843

26048:                                            ; preds = %23220
  br label %26049

26049:                                            ; preds = %26048
  call void @llvm.lifetime.start.p0(i64 8, ptr %750) #3
  store double 5.000000e-01, ptr %750, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %751) #3
  %26050 = load ptr, ptr %10, align 8, !tbaa !5
  %26051 = load double, ptr %26050, align 8, !tbaa !11
  store double %26051, ptr %751, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %752) #3
  store double 0.000000e+00, ptr %752, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %753) #3
  store double 0.000000e+00, ptr %753, align 8, !tbaa !11
  %26052 = load ptr, ptr %11, align 8, !tbaa !5
  %26053 = icmp ne ptr null, %26052
  br i1 %26053, label %26054, label %26078

26054:                                            ; preds = %26049
  %26055 = load double, ptr %751, align 8, !tbaa !11
  %26056 = load double, ptr %751, align 8, !tbaa !11
  %26057 = fcmp oeq double %26055, %26056
  br i1 %26057, label %26058, label %26078

26058:                                            ; preds = %26054
  %26059 = load ptr, ptr %12, align 8, !tbaa !5
  %26060 = icmp ne ptr null, %26059
  br i1 %26060, label %26061, label %26072

26061:                                            ; preds = %26058
  %26062 = load ptr, ptr %11, align 8, !tbaa !5
  %26063 = load double, ptr %26062, align 8, !tbaa !11
  %26064 = load double, ptr %751, align 8, !tbaa !11
  %26065 = fcmp ole double %26063, %26064
  br i1 %26065, label %26066, label %26072

26066:                                            ; preds = %26061
  %26067 = load double, ptr %751, align 8, !tbaa !11
  %26068 = load ptr, ptr %12, align 8, !tbaa !5
  %26069 = load double, ptr %26068, align 8, !tbaa !11
  %26070 = fcmp ole double %26067, %26069
  br i1 %26070, label %26071, label %26072

26071:                                            ; preds = %26066
  br label %26073

26072:                                            ; preds = %26066, %26061, %26058
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.24, i32 noundef 485, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

26073:                                            ; preds = %26071
  %26074 = load ptr, ptr %11, align 8, !tbaa !5
  %26075 = load double, ptr %26074, align 8, !tbaa !11
  store double %26075, ptr %752, align 8, !tbaa !11
  %26076 = load ptr, ptr %12, align 8, !tbaa !5
  %26077 = load double, ptr %26076, align 8, !tbaa !11
  store double %26077, ptr %753, align 8, !tbaa !11
  br label %26078

26078:                                            ; preds = %26073, %26054, %26049
  %26079 = load i32, ptr %8, align 4, !tbaa !9
  %26080 = icmp ule i32 6, %26079
  br i1 %26080, label %26081, label %26304

26081:                                            ; preds = %26078
  %26082 = load double, ptr %752, align 8, !tbaa !11
  %26083 = load double, ptr %753, align 8, !tbaa !11
  %26084 = fcmp olt double %26082, %26083
  br i1 %26084, label %26085, label %26304

26085:                                            ; preds = %26081
  %26086 = load i32, ptr %8, align 4, !tbaa !9
  %26087 = icmp ule i32 15, %26086
  br i1 %26087, label %26088, label %26128

26088:                                            ; preds = %26085
  call void @llvm.lifetime.start.p0(i64 8, ptr %754) #3
  %26089 = load double, ptr %752, align 8, !tbaa !11
  %26090 = fcmp olt double 0.000000e+00, %26089
  br i1 %26090, label %26091, label %26093

26091:                                            ; preds = %26088
  %26092 = load double, ptr %752, align 8, !tbaa !11
  br label %26094

26093:                                            ; preds = %26088
  br label %26094

26094:                                            ; preds = %26093, %26091
  %26095 = phi double [ %26092, %26091 ], [ 0.000000e+00, %26093 ]
  store double %26095, ptr %754, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %755) #3
  %26096 = load double, ptr %753, align 8, !tbaa !11
  %26097 = fcmp olt double 0.000000e+00, %26096
  br i1 %26097, label %26098, label %26100

26098:                                            ; preds = %26094
  %26099 = load double, ptr %753, align 8, !tbaa !11
  br label %26101

26100:                                            ; preds = %26094
  br label %26101

26101:                                            ; preds = %26100, %26098
  %26102 = phi double [ %26099, %26098 ], [ 0.000000e+00, %26100 ]
  store double %26102, ptr %755, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %756) #3
  %26103 = load double, ptr %754, align 8, !tbaa !11
  %26104 = load double, ptr %755, align 8, !tbaa !11
  %26105 = fcmp olt double %26103, %26104
  br i1 %26105, label %26106, label %26114

26106:                                            ; preds = %26101
  %26107 = load double, ptr %753, align 8, !tbaa !11
  %26108 = load double, ptr %752, align 8, !tbaa !11
  %26109 = fsub double %26107, %26108
  %26110 = load double, ptr %755, align 8, !tbaa !11
  %26111 = load double, ptr %754, align 8, !tbaa !11
  %26112 = fsub double %26110, %26111
  %26113 = fdiv double %26109, %26112
  br label %26115

26114:                                            ; preds = %26101
  br label %26115

26115:                                            ; preds = %26114, %26106
  %26116 = phi double [ %26113, %26106 ], [ 1.000000e+00, %26114 ]
  store double %26116, ptr %756, align 8, !tbaa !11
  %26117 = load double, ptr %756, align 8, !tbaa !11
  %26118 = load double, ptr %751, align 8, !tbaa !11
  %26119 = fcmp olt double 0.000000e+00, %26118
  br i1 %26119, label %26120, label %26122

26120:                                            ; preds = %26115
  %26121 = load double, ptr %751, align 8, !tbaa !11
  br label %26123

26122:                                            ; preds = %26115
  br label %26123

26123:                                            ; preds = %26122, %26120
  %26124 = phi double [ %26121, %26120 ], [ 0.000000e+00, %26122 ]
  %26125 = fmul double %26117, %26124
  store double %26125, ptr %751, align 8, !tbaa !11
  %26126 = load double, ptr %754, align 8, !tbaa !11
  store double %26126, ptr %752, align 8, !tbaa !11
  %26127 = load double, ptr %755, align 8, !tbaa !11
  store double %26127, ptr %753, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %756) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %755) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %754) #3
  br label %26184

26128:                                            ; preds = %26085
  %26129 = load i32, ptr %8, align 4, !tbaa !9
  %26130 = icmp ugt i32 6, %26129
  br i1 %26130, label %26159, label %26131

26131:                                            ; preds = %26128
  %26132 = load i32, ptr %8, align 4, !tbaa !9
  %26133 = icmp ugt i32 15, %26132
  br i1 %26133, label %26134, label %26145

26134:                                            ; preds = %26131
  %26135 = load i32, ptr %9, align 4, !tbaa !9
  %26136 = icmp ugt i32 15, %26135
  br i1 %26136, label %26137, label %26142

26137:                                            ; preds = %26134
  %26138 = load i32, ptr %9, align 4, !tbaa !9
  %26139 = load i32, ptr %8, align 4, !tbaa !9
  %26140 = icmp ugt i32 %26138, %26139
  %26141 = zext i1 %26140 to i32
  br label %26143

26142:                                            ; preds = %26134
  br label %26143

26143:                                            ; preds = %26142, %26137
  %26144 = phi i32 [ %26141, %26137 ], [ 0, %26142 ]
  br label %26156

26145:                                            ; preds = %26131
  %26146 = load i32, ptr %9, align 4, !tbaa !9
  %26147 = icmp ugt i32 15, %26146
  br i1 %26147, label %26148, label %26149

26148:                                            ; preds = %26145
  br label %26154

26149:                                            ; preds = %26145
  %26150 = load i32, ptr %9, align 4, !tbaa !9
  %26151 = load i32, ptr %8, align 4, !tbaa !9
  %26152 = icmp ugt i32 %26150, %26151
  %26153 = zext i1 %26152 to i32
  br label %26154

26154:                                            ; preds = %26149, %26148
  %26155 = phi i32 [ 0, %26148 ], [ %26153, %26149 ]
  br label %26156

26156:                                            ; preds = %26154, %26143
  %26157 = phi i32 [ %26144, %26143 ], [ %26155, %26154 ]
  %26158 = icmp ne i32 %26157, 0
  br label %26159

26159:                                            ; preds = %26156, %26128
  %26160 = phi i1 [ true, %26128 ], [ %26158, %26156 ]
  %26161 = zext i1 %26160 to i32
  %26162 = icmp eq i32 0, %26161
  br i1 %26162, label %26163, label %26183

26163:                                            ; preds = %26159
  %26164 = load double, ptr %752, align 8, !tbaa !11
  %26165 = fcmp ogt double 0.000000e+00, %26164
  br i1 %26165, label %26166, label %26183

26166:                                            ; preds = %26163
  %26167 = load double, ptr %753, align 8, !tbaa !11
  %26168 = fcmp olt double 0.000000e+00, %26167
  br i1 %26168, label %26169, label %26183

26169:                                            ; preds = %26166
  %26170 = load double, ptr %752, align 8, !tbaa !11
  %26171 = fneg double %26170
  %26172 = load double, ptr %753, align 8, !tbaa !11
  %26173 = fcmp olt double %26171, %26172
  br i1 %26173, label %26174, label %26176

26174:                                            ; preds = %26169
  %26175 = load double, ptr %753, align 8, !tbaa !11
  br label %26179

26176:                                            ; preds = %26169
  %26177 = load double, ptr %752, align 8, !tbaa !11
  %26178 = fneg double %26177
  br label %26179

26179:                                            ; preds = %26176, %26174
  %26180 = phi double [ %26175, %26174 ], [ %26178, %26176 ]
  store double %26180, ptr %753, align 8, !tbaa !11
  %26181 = load double, ptr %753, align 8, !tbaa !11
  %26182 = fneg double %26181
  store double %26182, ptr %752, align 8, !tbaa !11
  br label %26183

26183:                                            ; preds = %26179, %26166, %26163, %26159
  br label %26184

26184:                                            ; preds = %26183, %26123
  call void @llvm.lifetime.start.p0(i64 8, ptr %757) #3
  %26185 = load double, ptr %752, align 8, !tbaa !11
  %26186 = fcmp ole double 0.000000e+00, %26185
  %26187 = zext i1 %26186 to i64
  %26188 = select i1 %26186, double 0.000000e+00, double 0xC1E0000000000000
  store double %26188, ptr %757, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %758) #3
  %26189 = load double, ptr %753, align 8, !tbaa !11
  %26190 = fcmp ole double 0.000000e+00, %26189
  %26191 = zext i1 %26190 to i64
  %26192 = select i1 %26190, double 0x41DFFFFFFFC00000, double 0.000000e+00
  store double %26192, ptr %758, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %759) #3
  %26193 = load double, ptr %751, align 8, !tbaa !11
  %26194 = load double, ptr %752, align 8, !tbaa !11
  %26195 = fsub double %26193, %26194
  %26196 = load double, ptr %758, align 8, !tbaa !11
  %26197 = load double, ptr %757, align 8, !tbaa !11
  %26198 = fsub double %26196, %26197
  %26199 = fmul double %26195, %26198
  %26200 = load double, ptr %753, align 8, !tbaa !11
  %26201 = load double, ptr %752, align 8, !tbaa !11
  %26202 = fsub double %26200, %26201
  %26203 = fdiv double %26199, %26202
  %26204 = load double, ptr %757, align 8, !tbaa !11
  %26205 = fadd double %26203, %26204
  store double %26205, ptr %759, align 8, !tbaa !11
  %26206 = load double, ptr %757, align 8, !tbaa !11
  %26207 = load double, ptr %759, align 8, !tbaa !11
  %26208 = fcmp ole double 0.000000e+00, %26207
  br i1 %26208, label %26209, label %26212

26209:                                            ; preds = %26184
  %26210 = load double, ptr %759, align 8, !tbaa !11
  %26211 = fadd double %26210, 5.000000e-01
  br label %26215

26212:                                            ; preds = %26184
  %26213 = load double, ptr %759, align 8, !tbaa !11
  %26214 = fsub double %26213, 5.000000e-01
  br label %26215

26215:                                            ; preds = %26212, %26209
  %26216 = phi double [ %26211, %26209 ], [ %26214, %26212 ]
  %26217 = fcmp olt double %26206, %26216
  br i1 %26217, label %26218, label %26272

26218:                                            ; preds = %26215
  %26219 = load double, ptr %759, align 8, !tbaa !11
  %26220 = fcmp ole double 0.000000e+00, %26219
  br i1 %26220, label %26221, label %26224

26221:                                            ; preds = %26218
  %26222 = load double, ptr %759, align 8, !tbaa !11
  %26223 = fadd double %26222, 5.000000e-01
  br label %26227

26224:                                            ; preds = %26218
  %26225 = load double, ptr %759, align 8, !tbaa !11
  %26226 = fsub double %26225, 5.000000e-01
  br label %26227

26227:                                            ; preds = %26224, %26221
  %26228 = phi double [ %26223, %26221 ], [ %26226, %26224 ]
  %26229 = load double, ptr %758, align 8, !tbaa !11
  %26230 = fcmp ole double %26228, %26229
  br i1 %26230, label %26231, label %26242

26231:                                            ; preds = %26227
  %26232 = load double, ptr %759, align 8, !tbaa !11
  %26233 = fcmp ole double 0.000000e+00, %26232
  br i1 %26233, label %26234, label %26237

26234:                                            ; preds = %26231
  %26235 = load double, ptr %759, align 8, !tbaa !11
  %26236 = fadd double %26235, 5.000000e-01
  br label %26240

26237:                                            ; preds = %26231
  %26238 = load double, ptr %759, align 8, !tbaa !11
  %26239 = fsub double %26238, 5.000000e-01
  br label %26240

26240:                                            ; preds = %26237, %26234
  %26241 = phi double [ %26236, %26234 ], [ %26239, %26237 ]
  br label %26270

26242:                                            ; preds = %26227
  %26243 = load double, ptr %759, align 8, !tbaa !11
  %26244 = fcmp ole double 0.000000e+00, %26243
  br i1 %26244, label %26245, label %26248

26245:                                            ; preds = %26242
  %26246 = load double, ptr %759, align 8, !tbaa !11
  %26247 = fadd double %26246, 5.000000e-01
  br label %26251

26248:                                            ; preds = %26242
  %26249 = load double, ptr %759, align 8, !tbaa !11
  %26250 = fsub double %26249, 5.000000e-01
  br label %26251

26251:                                            ; preds = %26248, %26245
  %26252 = phi double [ %26247, %26245 ], [ %26250, %26248 ]
  %26253 = load double, ptr %758, align 8, !tbaa !11
  %26254 = fcmp olt double %26252, %26253
  br i1 %26254, label %26255, label %26266

26255:                                            ; preds = %26251
  %26256 = load double, ptr %759, align 8, !tbaa !11
  %26257 = fcmp ole double 0.000000e+00, %26256
  br i1 %26257, label %26258, label %26261

26258:                                            ; preds = %26255
  %26259 = load double, ptr %759, align 8, !tbaa !11
  %26260 = fadd double %26259, 5.000000e-01
  br label %26264

26261:                                            ; preds = %26255
  %26262 = load double, ptr %759, align 8, !tbaa !11
  %26263 = fsub double %26262, 5.000000e-01
  br label %26264

26264:                                            ; preds = %26261, %26258
  %26265 = phi double [ %26260, %26258 ], [ %26263, %26261 ]
  br label %26268

26266:                                            ; preds = %26251
  %26267 = load double, ptr %758, align 8, !tbaa !11
  br label %26268

26268:                                            ; preds = %26266, %26264
  %26269 = phi double [ %26265, %26264 ], [ %26267, %26266 ]
  br label %26270

26270:                                            ; preds = %26268, %26240
  %26271 = phi double [ %26241, %26240 ], [ %26269, %26268 ]
  br label %26300

26272:                                            ; preds = %26215
  %26273 = load double, ptr %757, align 8, !tbaa !11
  %26274 = load double, ptr %759, align 8, !tbaa !11
  %26275 = fcmp ole double 0.000000e+00, %26274
  br i1 %26275, label %26276, label %26279

26276:                                            ; preds = %26272
  %26277 = load double, ptr %759, align 8, !tbaa !11
  %26278 = fadd double %26277, 5.000000e-01
  br label %26282

26279:                                            ; preds = %26272
  %26280 = load double, ptr %759, align 8, !tbaa !11
  %26281 = fsub double %26280, 5.000000e-01
  br label %26282

26282:                                            ; preds = %26279, %26276
  %26283 = phi double [ %26278, %26276 ], [ %26281, %26279 ]
  %26284 = fcmp olt double %26273, %26283
  br i1 %26284, label %26285, label %26296

26285:                                            ; preds = %26282
  %26286 = load double, ptr %759, align 8, !tbaa !11
  %26287 = fcmp ole double 0.000000e+00, %26286
  br i1 %26287, label %26288, label %26291

26288:                                            ; preds = %26285
  %26289 = load double, ptr %759, align 8, !tbaa !11
  %26290 = fadd double %26289, 5.000000e-01
  br label %26294

26291:                                            ; preds = %26285
  %26292 = load double, ptr %759, align 8, !tbaa !11
  %26293 = fsub double %26292, 5.000000e-01
  br label %26294

26294:                                            ; preds = %26291, %26288
  %26295 = phi double [ %26290, %26288 ], [ %26293, %26291 ]
  br label %26298

26296:                                            ; preds = %26282
  %26297 = load double, ptr %757, align 8, !tbaa !11
  br label %26298

26298:                                            ; preds = %26296, %26294
  %26299 = phi double [ %26295, %26294 ], [ %26297, %26296 ]
  br label %26300

26300:                                            ; preds = %26298, %26270
  %26301 = phi double [ %26271, %26270 ], [ %26299, %26298 ]
  %26302 = fptosi double %26301 to i32
  %26303 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %26302, ptr %26303, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %759) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %758) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %757) #3
  br label %26430

26304:                                            ; preds = %26081, %26078
  %26305 = load i32, ptr %8, align 4, !tbaa !9
  %26306 = icmp ugt i32 6, %26305
  br i1 %26306, label %26335, label %26307

26307:                                            ; preds = %26304
  %26308 = load i32, ptr %8, align 4, !tbaa !9
  %26309 = icmp ugt i32 15, %26308
  br i1 %26309, label %26310, label %26321

26310:                                            ; preds = %26307
  %26311 = load i32, ptr %9, align 4, !tbaa !9
  %26312 = icmp ugt i32 15, %26311
  br i1 %26312, label %26313, label %26318

26313:                                            ; preds = %26310
  %26314 = load i32, ptr %9, align 4, !tbaa !9
  %26315 = load i32, ptr %8, align 4, !tbaa !9
  %26316 = icmp ugt i32 %26314, %26315
  %26317 = zext i1 %26316 to i32
  br label %26319

26318:                                            ; preds = %26310
  br label %26319

26319:                                            ; preds = %26318, %26313
  %26320 = phi i32 [ %26317, %26313 ], [ 0, %26318 ]
  br label %26332

26321:                                            ; preds = %26307
  %26322 = load i32, ptr %9, align 4, !tbaa !9
  %26323 = icmp ugt i32 15, %26322
  br i1 %26323, label %26324, label %26325

26324:                                            ; preds = %26321
  br label %26330

26325:                                            ; preds = %26321
  %26326 = load i32, ptr %9, align 4, !tbaa !9
  %26327 = load i32, ptr %8, align 4, !tbaa !9
  %26328 = icmp ugt i32 %26326, %26327
  %26329 = zext i1 %26328 to i32
  br label %26330

26330:                                            ; preds = %26325, %26324
  %26331 = phi i32 [ 0, %26324 ], [ %26329, %26325 ]
  br label %26332

26332:                                            ; preds = %26330, %26319
  %26333 = phi i32 [ %26320, %26319 ], [ %26331, %26330 ]
  %26334 = icmp ne i32 %26333, 0
  br label %26335

26335:                                            ; preds = %26332, %26304
  %26336 = phi i1 [ true, %26304 ], [ %26334, %26332 ]
  %26337 = zext i1 %26336 to i32
  %26338 = icmp eq i32 0, %26337
  br i1 %26338, label %26339, label %26416

26339:                                            ; preds = %26335
  %26340 = load double, ptr %751, align 8, !tbaa !11
  %26341 = fcmp ole double 0.000000e+00, %26340
  br i1 %26341, label %26342, label %26377

26342:                                            ; preds = %26339
  %26343 = load double, ptr %751, align 8, !tbaa !11
  %26344 = fadd double %26343, 5.000000e-01
  %26345 = fcmp olt double 0xC1E0000000000000, %26344
  br i1 %26345, label %26346, label %26365

26346:                                            ; preds = %26342
  %26347 = load double, ptr %751, align 8, !tbaa !11
  %26348 = fadd double %26347, 5.000000e-01
  %26349 = fcmp ole double %26348, 0x41DFFFFFFFC00000
  br i1 %26349, label %26350, label %26353

26350:                                            ; preds = %26346
  %26351 = load double, ptr %751, align 8, !tbaa !11
  %26352 = fadd double %26351, 5.000000e-01
  br label %26363

26353:                                            ; preds = %26346
  %26354 = load double, ptr %751, align 8, !tbaa !11
  %26355 = fadd double %26354, 5.000000e-01
  %26356 = fcmp olt double %26355, 0x41DFFFFFFFC00000
  br i1 %26356, label %26357, label %26360

26357:                                            ; preds = %26353
  %26358 = load double, ptr %751, align 8, !tbaa !11
  %26359 = fadd double %26358, 5.000000e-01
  br label %26361

26360:                                            ; preds = %26353
  br label %26361

26361:                                            ; preds = %26360, %26357
  %26362 = phi double [ %26359, %26357 ], [ 0x41DFFFFFFFC00000, %26360 ]
  br label %26363

26363:                                            ; preds = %26361, %26350
  %26364 = phi double [ %26352, %26350 ], [ %26362, %26361 ]
  br label %26375

26365:                                            ; preds = %26342
  %26366 = load double, ptr %751, align 8, !tbaa !11
  %26367 = fadd double %26366, 5.000000e-01
  %26368 = fcmp olt double 0xC1E0000000000000, %26367
  br i1 %26368, label %26369, label %26372

26369:                                            ; preds = %26365
  %26370 = load double, ptr %751, align 8, !tbaa !11
  %26371 = fadd double %26370, 5.000000e-01
  br label %26373

26372:                                            ; preds = %26365
  br label %26373

26373:                                            ; preds = %26372, %26369
  %26374 = phi double [ %26371, %26369 ], [ 0xC1E0000000000000, %26372 ]
  br label %26375

26375:                                            ; preds = %26373, %26363
  %26376 = phi double [ %26364, %26363 ], [ %26374, %26373 ]
  br label %26412

26377:                                            ; preds = %26339
  %26378 = load double, ptr %751, align 8, !tbaa !11
  %26379 = fsub double %26378, 5.000000e-01
  %26380 = fcmp olt double 0xC1E0000000000000, %26379
  br i1 %26380, label %26381, label %26400

26381:                                            ; preds = %26377
  %26382 = load double, ptr %751, align 8, !tbaa !11
  %26383 = fsub double %26382, 5.000000e-01
  %26384 = fcmp ole double %26383, 0x41DFFFFFFFC00000
  br i1 %26384, label %26385, label %26388

26385:                                            ; preds = %26381
  %26386 = load double, ptr %751, align 8, !tbaa !11
  %26387 = fsub double %26386, 5.000000e-01
  br label %26398

26388:                                            ; preds = %26381
  %26389 = load double, ptr %751, align 8, !tbaa !11
  %26390 = fsub double %26389, 5.000000e-01
  %26391 = fcmp olt double %26390, 0x41DFFFFFFFC00000
  br i1 %26391, label %26392, label %26395

26392:                                            ; preds = %26388
  %26393 = load double, ptr %751, align 8, !tbaa !11
  %26394 = fsub double %26393, 5.000000e-01
  br label %26396

26395:                                            ; preds = %26388
  br label %26396

26396:                                            ; preds = %26395, %26392
  %26397 = phi double [ %26394, %26392 ], [ 0x41DFFFFFFFC00000, %26395 ]
  br label %26398

26398:                                            ; preds = %26396, %26385
  %26399 = phi double [ %26387, %26385 ], [ %26397, %26396 ]
  br label %26410

26400:                                            ; preds = %26377
  %26401 = load double, ptr %751, align 8, !tbaa !11
  %26402 = fsub double %26401, 5.000000e-01
  %26403 = fcmp olt double 0xC1E0000000000000, %26402
  br i1 %26403, label %26404, label %26407

26404:                                            ; preds = %26400
  %26405 = load double, ptr %751, align 8, !tbaa !11
  %26406 = fsub double %26405, 5.000000e-01
  br label %26408

26407:                                            ; preds = %26400
  br label %26408

26408:                                            ; preds = %26407, %26404
  %26409 = phi double [ %26406, %26404 ], [ 0xC1E0000000000000, %26407 ]
  br label %26410

26410:                                            ; preds = %26408, %26398
  %26411 = phi double [ %26399, %26398 ], [ %26409, %26408 ]
  br label %26412

26412:                                            ; preds = %26410, %26375
  %26413 = phi double [ %26376, %26375 ], [ %26411, %26410 ]
  %26414 = fptosi double %26413 to i32
  %26415 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %26414, ptr %26415, align 4, !tbaa !9
  br label %26429

26416:                                            ; preds = %26335
  %26417 = load double, ptr %751, align 8, !tbaa !11
  %26418 = fcmp ole double 0.000000e+00, %26417
  br i1 %26418, label %26419, label %26422

26419:                                            ; preds = %26416
  %26420 = load double, ptr %751, align 8, !tbaa !11
  %26421 = fadd double %26420, 5.000000e-01
  br label %26425

26422:                                            ; preds = %26416
  %26423 = load double, ptr %751, align 8, !tbaa !11
  %26424 = fsub double %26423, 5.000000e-01
  br label %26425

26425:                                            ; preds = %26422, %26419
  %26426 = phi double [ %26421, %26419 ], [ %26424, %26422 ]
  %26427 = fptosi double %26426 to i32
  %26428 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %26427, ptr %26428, align 4, !tbaa !9
  br label %26429

26429:                                            ; preds = %26425, %26412
  br label %26430

26430:                                            ; preds = %26429, %26300
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %753) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %752) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %751) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %750) #3
  br label %26431

26431:                                            ; preds = %26430
  br label %26432

26432:                                            ; preds = %26431
  br label %26843

26433:                                            ; preds = %23220
  br label %26434

26434:                                            ; preds = %26433
  call void @llvm.lifetime.start.p0(i64 8, ptr %760) #3
  store double 5.000000e-01, ptr %760, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %761) #3
  %26435 = load ptr, ptr %10, align 8, !tbaa !5
  %26436 = load float, ptr %26435, align 4, !tbaa !18
  store float %26436, ptr %761, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %762) #3
  store double 0.000000e+00, ptr %762, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %763) #3
  store double 0.000000e+00, ptr %763, align 8, !tbaa !11
  %26437 = load ptr, ptr %11, align 8, !tbaa !5
  %26438 = icmp ne ptr null, %26437
  br i1 %26438, label %26439, label %26465

26439:                                            ; preds = %26434
  %26440 = load float, ptr %761, align 4, !tbaa !18
  %26441 = load float, ptr %761, align 4, !tbaa !18
  %26442 = fcmp oeq float %26440, %26441
  br i1 %26442, label %26443, label %26465

26443:                                            ; preds = %26439
  %26444 = load ptr, ptr %12, align 8, !tbaa !5
  %26445 = icmp ne ptr null, %26444
  br i1 %26445, label %26446, label %26457

26446:                                            ; preds = %26443
  %26447 = load ptr, ptr %11, align 8, !tbaa !5
  %26448 = load float, ptr %26447, align 4, !tbaa !18
  %26449 = load float, ptr %761, align 4, !tbaa !18
  %26450 = fcmp ole float %26448, %26449
  br i1 %26450, label %26451, label %26457

26451:                                            ; preds = %26446
  %26452 = load float, ptr %761, align 4, !tbaa !18
  %26453 = load ptr, ptr %12, align 8, !tbaa !5
  %26454 = load float, ptr %26453, align 4, !tbaa !18
  %26455 = fcmp ole float %26452, %26454
  br i1 %26455, label %26456, label %26457

26456:                                            ; preds = %26451
  br label %26458

26457:                                            ; preds = %26451, %26446, %26443
  call void @__assert_fail(ptr noundef @.str.51, ptr noundef @.str.24, i32 noundef 485, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

26458:                                            ; preds = %26456
  %26459 = load ptr, ptr %11, align 8, !tbaa !5
  %26460 = load float, ptr %26459, align 4, !tbaa !18
  %26461 = fpext float %26460 to double
  store double %26461, ptr %762, align 8, !tbaa !11
  %26462 = load ptr, ptr %12, align 8, !tbaa !5
  %26463 = load float, ptr %26462, align 4, !tbaa !18
  %26464 = fpext float %26463 to double
  store double %26464, ptr %763, align 8, !tbaa !11
  br label %26465

26465:                                            ; preds = %26458, %26439, %26434
  %26466 = load i32, ptr %8, align 4, !tbaa !9
  %26467 = icmp ule i32 6, %26466
  br i1 %26467, label %26468, label %26694

26468:                                            ; preds = %26465
  %26469 = load double, ptr %762, align 8, !tbaa !11
  %26470 = load double, ptr %763, align 8, !tbaa !11
  %26471 = fcmp olt double %26469, %26470
  br i1 %26471, label %26472, label %26694

26472:                                            ; preds = %26468
  %26473 = load i32, ptr %8, align 4, !tbaa !9
  %26474 = icmp ule i32 15, %26473
  br i1 %26474, label %26475, label %26517

26475:                                            ; preds = %26472
  call void @llvm.lifetime.start.p0(i64 8, ptr %764) #3
  %26476 = load double, ptr %762, align 8, !tbaa !11
  %26477 = fcmp olt double 0.000000e+00, %26476
  br i1 %26477, label %26478, label %26480

26478:                                            ; preds = %26475
  %26479 = load double, ptr %762, align 8, !tbaa !11
  br label %26481

26480:                                            ; preds = %26475
  br label %26481

26481:                                            ; preds = %26480, %26478
  %26482 = phi double [ %26479, %26478 ], [ 0.000000e+00, %26480 ]
  store double %26482, ptr %764, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %765) #3
  %26483 = load double, ptr %763, align 8, !tbaa !11
  %26484 = fcmp olt double 0.000000e+00, %26483
  br i1 %26484, label %26485, label %26487

26485:                                            ; preds = %26481
  %26486 = load double, ptr %763, align 8, !tbaa !11
  br label %26488

26487:                                            ; preds = %26481
  br label %26488

26488:                                            ; preds = %26487, %26485
  %26489 = phi double [ %26486, %26485 ], [ 0.000000e+00, %26487 ]
  store double %26489, ptr %765, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %766) #3
  %26490 = load double, ptr %764, align 8, !tbaa !11
  %26491 = load double, ptr %765, align 8, !tbaa !11
  %26492 = fcmp olt double %26490, %26491
  br i1 %26492, label %26493, label %26501

26493:                                            ; preds = %26488
  %26494 = load double, ptr %763, align 8, !tbaa !11
  %26495 = load double, ptr %762, align 8, !tbaa !11
  %26496 = fsub double %26494, %26495
  %26497 = load double, ptr %765, align 8, !tbaa !11
  %26498 = load double, ptr %764, align 8, !tbaa !11
  %26499 = fsub double %26497, %26498
  %26500 = fdiv double %26496, %26499
  br label %26502

26501:                                            ; preds = %26488
  br label %26502

26502:                                            ; preds = %26501, %26493
  %26503 = phi double [ %26500, %26493 ], [ 1.000000e+00, %26501 ]
  store double %26503, ptr %766, align 8, !tbaa !11
  %26504 = load double, ptr %766, align 8, !tbaa !11
  %26505 = load float, ptr %761, align 4, !tbaa !18
  %26506 = fcmp olt float 0.000000e+00, %26505
  br i1 %26506, label %26507, label %26509

26507:                                            ; preds = %26502
  %26508 = load float, ptr %761, align 4, !tbaa !18
  br label %26510

26509:                                            ; preds = %26502
  br label %26510

26510:                                            ; preds = %26509, %26507
  %26511 = phi float [ %26508, %26507 ], [ 0.000000e+00, %26509 ]
  %26512 = fpext float %26511 to double
  %26513 = fmul double %26504, %26512
  %26514 = fptrunc double %26513 to float
  store float %26514, ptr %761, align 4, !tbaa !18
  %26515 = load double, ptr %764, align 8, !tbaa !11
  store double %26515, ptr %762, align 8, !tbaa !11
  %26516 = load double, ptr %765, align 8, !tbaa !11
  store double %26516, ptr %763, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %766) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %765) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %764) #3
  br label %26573

26517:                                            ; preds = %26472
  %26518 = load i32, ptr %8, align 4, !tbaa !9
  %26519 = icmp ugt i32 6, %26518
  br i1 %26519, label %26548, label %26520

26520:                                            ; preds = %26517
  %26521 = load i32, ptr %8, align 4, !tbaa !9
  %26522 = icmp ugt i32 15, %26521
  br i1 %26522, label %26523, label %26534

26523:                                            ; preds = %26520
  %26524 = load i32, ptr %9, align 4, !tbaa !9
  %26525 = icmp ugt i32 15, %26524
  br i1 %26525, label %26526, label %26531

26526:                                            ; preds = %26523
  %26527 = load i32, ptr %9, align 4, !tbaa !9
  %26528 = load i32, ptr %8, align 4, !tbaa !9
  %26529 = icmp ugt i32 %26527, %26528
  %26530 = zext i1 %26529 to i32
  br label %26532

26531:                                            ; preds = %26523
  br label %26532

26532:                                            ; preds = %26531, %26526
  %26533 = phi i32 [ %26530, %26526 ], [ 0, %26531 ]
  br label %26545

26534:                                            ; preds = %26520
  %26535 = load i32, ptr %9, align 4, !tbaa !9
  %26536 = icmp ugt i32 15, %26535
  br i1 %26536, label %26537, label %26538

26537:                                            ; preds = %26534
  br label %26543

26538:                                            ; preds = %26534
  %26539 = load i32, ptr %9, align 4, !tbaa !9
  %26540 = load i32, ptr %8, align 4, !tbaa !9
  %26541 = icmp ugt i32 %26539, %26540
  %26542 = zext i1 %26541 to i32
  br label %26543

26543:                                            ; preds = %26538, %26537
  %26544 = phi i32 [ 0, %26537 ], [ %26542, %26538 ]
  br label %26545

26545:                                            ; preds = %26543, %26532
  %26546 = phi i32 [ %26533, %26532 ], [ %26544, %26543 ]
  %26547 = icmp ne i32 %26546, 0
  br label %26548

26548:                                            ; preds = %26545, %26517
  %26549 = phi i1 [ true, %26517 ], [ %26547, %26545 ]
  %26550 = zext i1 %26549 to i32
  %26551 = icmp eq i32 0, %26550
  br i1 %26551, label %26552, label %26572

26552:                                            ; preds = %26548
  %26553 = load double, ptr %762, align 8, !tbaa !11
  %26554 = fcmp ogt double 0.000000e+00, %26553
  br i1 %26554, label %26555, label %26572

26555:                                            ; preds = %26552
  %26556 = load double, ptr %763, align 8, !tbaa !11
  %26557 = fcmp olt double 0.000000e+00, %26556
  br i1 %26557, label %26558, label %26572

26558:                                            ; preds = %26555
  %26559 = load double, ptr %762, align 8, !tbaa !11
  %26560 = fneg double %26559
  %26561 = load double, ptr %763, align 8, !tbaa !11
  %26562 = fcmp olt double %26560, %26561
  br i1 %26562, label %26563, label %26565

26563:                                            ; preds = %26558
  %26564 = load double, ptr %763, align 8, !tbaa !11
  br label %26568

26565:                                            ; preds = %26558
  %26566 = load double, ptr %762, align 8, !tbaa !11
  %26567 = fneg double %26566
  br label %26568

26568:                                            ; preds = %26565, %26563
  %26569 = phi double [ %26564, %26563 ], [ %26567, %26565 ]
  store double %26569, ptr %763, align 8, !tbaa !11
  %26570 = load double, ptr %763, align 8, !tbaa !11
  %26571 = fneg double %26570
  store double %26571, ptr %762, align 8, !tbaa !11
  br label %26572

26572:                                            ; preds = %26568, %26555, %26552, %26548
  br label %26573

26573:                                            ; preds = %26572, %26510
  call void @llvm.lifetime.start.p0(i64 8, ptr %767) #3
  %26574 = load double, ptr %762, align 8, !tbaa !11
  %26575 = fcmp ole double 0.000000e+00, %26574
  %26576 = zext i1 %26575 to i64
  %26577 = select i1 %26575, double 0.000000e+00, double 0xC1E0000000000000
  store double %26577, ptr %767, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %768) #3
  %26578 = load double, ptr %763, align 8, !tbaa !11
  %26579 = fcmp ole double 0.000000e+00, %26578
  %26580 = zext i1 %26579 to i64
  %26581 = select i1 %26579, double 0x41DFFFFFFFC00000, double 0.000000e+00
  store double %26581, ptr %768, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %769) #3
  %26582 = load float, ptr %761, align 4, !tbaa !18
  %26583 = fpext float %26582 to double
  %26584 = load double, ptr %762, align 8, !tbaa !11
  %26585 = fsub double %26583, %26584
  %26586 = load double, ptr %768, align 8, !tbaa !11
  %26587 = load double, ptr %767, align 8, !tbaa !11
  %26588 = fsub double %26586, %26587
  %26589 = fmul double %26585, %26588
  %26590 = load double, ptr %763, align 8, !tbaa !11
  %26591 = load double, ptr %762, align 8, !tbaa !11
  %26592 = fsub double %26590, %26591
  %26593 = fdiv double %26589, %26592
  %26594 = load double, ptr %767, align 8, !tbaa !11
  %26595 = fadd double %26593, %26594
  store double %26595, ptr %769, align 8, !tbaa !11
  %26596 = load double, ptr %767, align 8, !tbaa !11
  %26597 = load double, ptr %769, align 8, !tbaa !11
  %26598 = fcmp ole double 0.000000e+00, %26597
  br i1 %26598, label %26599, label %26602

26599:                                            ; preds = %26573
  %26600 = load double, ptr %769, align 8, !tbaa !11
  %26601 = fadd double %26600, 5.000000e-01
  br label %26605

26602:                                            ; preds = %26573
  %26603 = load double, ptr %769, align 8, !tbaa !11
  %26604 = fsub double %26603, 5.000000e-01
  br label %26605

26605:                                            ; preds = %26602, %26599
  %26606 = phi double [ %26601, %26599 ], [ %26604, %26602 ]
  %26607 = fcmp olt double %26596, %26606
  br i1 %26607, label %26608, label %26662

26608:                                            ; preds = %26605
  %26609 = load double, ptr %769, align 8, !tbaa !11
  %26610 = fcmp ole double 0.000000e+00, %26609
  br i1 %26610, label %26611, label %26614

26611:                                            ; preds = %26608
  %26612 = load double, ptr %769, align 8, !tbaa !11
  %26613 = fadd double %26612, 5.000000e-01
  br label %26617

26614:                                            ; preds = %26608
  %26615 = load double, ptr %769, align 8, !tbaa !11
  %26616 = fsub double %26615, 5.000000e-01
  br label %26617

26617:                                            ; preds = %26614, %26611
  %26618 = phi double [ %26613, %26611 ], [ %26616, %26614 ]
  %26619 = load double, ptr %768, align 8, !tbaa !11
  %26620 = fcmp ole double %26618, %26619
  br i1 %26620, label %26621, label %26632

26621:                                            ; preds = %26617
  %26622 = load double, ptr %769, align 8, !tbaa !11
  %26623 = fcmp ole double 0.000000e+00, %26622
  br i1 %26623, label %26624, label %26627

26624:                                            ; preds = %26621
  %26625 = load double, ptr %769, align 8, !tbaa !11
  %26626 = fadd double %26625, 5.000000e-01
  br label %26630

26627:                                            ; preds = %26621
  %26628 = load double, ptr %769, align 8, !tbaa !11
  %26629 = fsub double %26628, 5.000000e-01
  br label %26630

26630:                                            ; preds = %26627, %26624
  %26631 = phi double [ %26626, %26624 ], [ %26629, %26627 ]
  br label %26660

26632:                                            ; preds = %26617
  %26633 = load double, ptr %769, align 8, !tbaa !11
  %26634 = fcmp ole double 0.000000e+00, %26633
  br i1 %26634, label %26635, label %26638

26635:                                            ; preds = %26632
  %26636 = load double, ptr %769, align 8, !tbaa !11
  %26637 = fadd double %26636, 5.000000e-01
  br label %26641

26638:                                            ; preds = %26632
  %26639 = load double, ptr %769, align 8, !tbaa !11
  %26640 = fsub double %26639, 5.000000e-01
  br label %26641

26641:                                            ; preds = %26638, %26635
  %26642 = phi double [ %26637, %26635 ], [ %26640, %26638 ]
  %26643 = load double, ptr %768, align 8, !tbaa !11
  %26644 = fcmp olt double %26642, %26643
  br i1 %26644, label %26645, label %26656

26645:                                            ; preds = %26641
  %26646 = load double, ptr %769, align 8, !tbaa !11
  %26647 = fcmp ole double 0.000000e+00, %26646
  br i1 %26647, label %26648, label %26651

26648:                                            ; preds = %26645
  %26649 = load double, ptr %769, align 8, !tbaa !11
  %26650 = fadd double %26649, 5.000000e-01
  br label %26654

26651:                                            ; preds = %26645
  %26652 = load double, ptr %769, align 8, !tbaa !11
  %26653 = fsub double %26652, 5.000000e-01
  br label %26654

26654:                                            ; preds = %26651, %26648
  %26655 = phi double [ %26650, %26648 ], [ %26653, %26651 ]
  br label %26658

26656:                                            ; preds = %26641
  %26657 = load double, ptr %768, align 8, !tbaa !11
  br label %26658

26658:                                            ; preds = %26656, %26654
  %26659 = phi double [ %26655, %26654 ], [ %26657, %26656 ]
  br label %26660

26660:                                            ; preds = %26658, %26630
  %26661 = phi double [ %26631, %26630 ], [ %26659, %26658 ]
  br label %26690

26662:                                            ; preds = %26605
  %26663 = load double, ptr %767, align 8, !tbaa !11
  %26664 = load double, ptr %769, align 8, !tbaa !11
  %26665 = fcmp ole double 0.000000e+00, %26664
  br i1 %26665, label %26666, label %26669

26666:                                            ; preds = %26662
  %26667 = load double, ptr %769, align 8, !tbaa !11
  %26668 = fadd double %26667, 5.000000e-01
  br label %26672

26669:                                            ; preds = %26662
  %26670 = load double, ptr %769, align 8, !tbaa !11
  %26671 = fsub double %26670, 5.000000e-01
  br label %26672

26672:                                            ; preds = %26669, %26666
  %26673 = phi double [ %26668, %26666 ], [ %26671, %26669 ]
  %26674 = fcmp olt double %26663, %26673
  br i1 %26674, label %26675, label %26686

26675:                                            ; preds = %26672
  %26676 = load double, ptr %769, align 8, !tbaa !11
  %26677 = fcmp ole double 0.000000e+00, %26676
  br i1 %26677, label %26678, label %26681

26678:                                            ; preds = %26675
  %26679 = load double, ptr %769, align 8, !tbaa !11
  %26680 = fadd double %26679, 5.000000e-01
  br label %26684

26681:                                            ; preds = %26675
  %26682 = load double, ptr %769, align 8, !tbaa !11
  %26683 = fsub double %26682, 5.000000e-01
  br label %26684

26684:                                            ; preds = %26681, %26678
  %26685 = phi double [ %26680, %26678 ], [ %26683, %26681 ]
  br label %26688

26686:                                            ; preds = %26672
  %26687 = load double, ptr %767, align 8, !tbaa !11
  br label %26688

26688:                                            ; preds = %26686, %26684
  %26689 = phi double [ %26685, %26684 ], [ %26687, %26686 ]
  br label %26690

26690:                                            ; preds = %26688, %26660
  %26691 = phi double [ %26661, %26660 ], [ %26689, %26688 ]
  %26692 = fptosi double %26691 to i32
  %26693 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %26692, ptr %26693, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %769) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %768) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %767) #3
  br label %26836

26694:                                            ; preds = %26468, %26465
  %26695 = load i32, ptr %8, align 4, !tbaa !9
  %26696 = icmp ugt i32 6, %26695
  br i1 %26696, label %26725, label %26697

26697:                                            ; preds = %26694
  %26698 = load i32, ptr %8, align 4, !tbaa !9
  %26699 = icmp ugt i32 15, %26698
  br i1 %26699, label %26700, label %26711

26700:                                            ; preds = %26697
  %26701 = load i32, ptr %9, align 4, !tbaa !9
  %26702 = icmp ugt i32 15, %26701
  br i1 %26702, label %26703, label %26708

26703:                                            ; preds = %26700
  %26704 = load i32, ptr %9, align 4, !tbaa !9
  %26705 = load i32, ptr %8, align 4, !tbaa !9
  %26706 = icmp ugt i32 %26704, %26705
  %26707 = zext i1 %26706 to i32
  br label %26709

26708:                                            ; preds = %26700
  br label %26709

26709:                                            ; preds = %26708, %26703
  %26710 = phi i32 [ %26707, %26703 ], [ 0, %26708 ]
  br label %26722

26711:                                            ; preds = %26697
  %26712 = load i32, ptr %9, align 4, !tbaa !9
  %26713 = icmp ugt i32 15, %26712
  br i1 %26713, label %26714, label %26715

26714:                                            ; preds = %26711
  br label %26720

26715:                                            ; preds = %26711
  %26716 = load i32, ptr %9, align 4, !tbaa !9
  %26717 = load i32, ptr %8, align 4, !tbaa !9
  %26718 = icmp ugt i32 %26716, %26717
  %26719 = zext i1 %26718 to i32
  br label %26720

26720:                                            ; preds = %26715, %26714
  %26721 = phi i32 [ 0, %26714 ], [ %26719, %26715 ]
  br label %26722

26722:                                            ; preds = %26720, %26709
  %26723 = phi i32 [ %26710, %26709 ], [ %26721, %26720 ]
  %26724 = icmp ne i32 %26723, 0
  br label %26725

26725:                                            ; preds = %26722, %26694
  %26726 = phi i1 [ true, %26694 ], [ %26724, %26722 ]
  %26727 = zext i1 %26726 to i32
  %26728 = icmp eq i32 0, %26727
  br i1 %26728, label %26729, label %26820

26729:                                            ; preds = %26725
  %26730 = load float, ptr %761, align 4, !tbaa !18
  %26731 = fcmp ole float 0.000000e+00, %26730
  br i1 %26731, label %26732, label %26774

26732:                                            ; preds = %26729
  %26733 = load float, ptr %761, align 4, !tbaa !18
  %26734 = fpext float %26733 to double
  %26735 = fadd double %26734, 5.000000e-01
  %26736 = fcmp olt double 0xC1E0000000000000, %26735
  br i1 %26736, label %26737, label %26760

26737:                                            ; preds = %26732
  %26738 = load float, ptr %761, align 4, !tbaa !18
  %26739 = fpext float %26738 to double
  %26740 = fadd double %26739, 5.000000e-01
  %26741 = fcmp ole double %26740, 0x41DFFFFFFFC00000
  br i1 %26741, label %26742, label %26746

26742:                                            ; preds = %26737
  %26743 = load float, ptr %761, align 4, !tbaa !18
  %26744 = fpext float %26743 to double
  %26745 = fadd double %26744, 5.000000e-01
  br label %26758

26746:                                            ; preds = %26737
  %26747 = load float, ptr %761, align 4, !tbaa !18
  %26748 = fpext float %26747 to double
  %26749 = fadd double %26748, 5.000000e-01
  %26750 = fcmp olt double %26749, 0x41DFFFFFFFC00000
  br i1 %26750, label %26751, label %26755

26751:                                            ; preds = %26746
  %26752 = load float, ptr %761, align 4, !tbaa !18
  %26753 = fpext float %26752 to double
  %26754 = fadd double %26753, 5.000000e-01
  br label %26756

26755:                                            ; preds = %26746
  br label %26756

26756:                                            ; preds = %26755, %26751
  %26757 = phi double [ %26754, %26751 ], [ 0x41DFFFFFFFC00000, %26755 ]
  br label %26758

26758:                                            ; preds = %26756, %26742
  %26759 = phi double [ %26745, %26742 ], [ %26757, %26756 ]
  br label %26772

26760:                                            ; preds = %26732
  %26761 = load float, ptr %761, align 4, !tbaa !18
  %26762 = fpext float %26761 to double
  %26763 = fadd double %26762, 5.000000e-01
  %26764 = fcmp olt double 0xC1E0000000000000, %26763
  br i1 %26764, label %26765, label %26769

26765:                                            ; preds = %26760
  %26766 = load float, ptr %761, align 4, !tbaa !18
  %26767 = fpext float %26766 to double
  %26768 = fadd double %26767, 5.000000e-01
  br label %26770

26769:                                            ; preds = %26760
  br label %26770

26770:                                            ; preds = %26769, %26765
  %26771 = phi double [ %26768, %26765 ], [ 0xC1E0000000000000, %26769 ]
  br label %26772

26772:                                            ; preds = %26770, %26758
  %26773 = phi double [ %26759, %26758 ], [ %26771, %26770 ]
  br label %26816

26774:                                            ; preds = %26729
  %26775 = load float, ptr %761, align 4, !tbaa !18
  %26776 = fpext float %26775 to double
  %26777 = fsub double %26776, 5.000000e-01
  %26778 = fcmp olt double 0xC1E0000000000000, %26777
  br i1 %26778, label %26779, label %26802

26779:                                            ; preds = %26774
  %26780 = load float, ptr %761, align 4, !tbaa !18
  %26781 = fpext float %26780 to double
  %26782 = fsub double %26781, 5.000000e-01
  %26783 = fcmp ole double %26782, 0x41DFFFFFFFC00000
  br i1 %26783, label %26784, label %26788

26784:                                            ; preds = %26779
  %26785 = load float, ptr %761, align 4, !tbaa !18
  %26786 = fpext float %26785 to double
  %26787 = fsub double %26786, 5.000000e-01
  br label %26800

26788:                                            ; preds = %26779
  %26789 = load float, ptr %761, align 4, !tbaa !18
  %26790 = fpext float %26789 to double
  %26791 = fsub double %26790, 5.000000e-01
  %26792 = fcmp olt double %26791, 0x41DFFFFFFFC00000
  br i1 %26792, label %26793, label %26797

26793:                                            ; preds = %26788
  %26794 = load float, ptr %761, align 4, !tbaa !18
  %26795 = fpext float %26794 to double
  %26796 = fsub double %26795, 5.000000e-01
  br label %26798

26797:                                            ; preds = %26788
  br label %26798

26798:                                            ; preds = %26797, %26793
  %26799 = phi double [ %26796, %26793 ], [ 0x41DFFFFFFFC00000, %26797 ]
  br label %26800

26800:                                            ; preds = %26798, %26784
  %26801 = phi double [ %26787, %26784 ], [ %26799, %26798 ]
  br label %26814

26802:                                            ; preds = %26774
  %26803 = load float, ptr %761, align 4, !tbaa !18
  %26804 = fpext float %26803 to double
  %26805 = fsub double %26804, 5.000000e-01
  %26806 = fcmp olt double 0xC1E0000000000000, %26805
  br i1 %26806, label %26807, label %26811

26807:                                            ; preds = %26802
  %26808 = load float, ptr %761, align 4, !tbaa !18
  %26809 = fpext float %26808 to double
  %26810 = fsub double %26809, 5.000000e-01
  br label %26812

26811:                                            ; preds = %26802
  br label %26812

26812:                                            ; preds = %26811, %26807
  %26813 = phi double [ %26810, %26807 ], [ 0xC1E0000000000000, %26811 ]
  br label %26814

26814:                                            ; preds = %26812, %26800
  %26815 = phi double [ %26801, %26800 ], [ %26813, %26812 ]
  br label %26816

26816:                                            ; preds = %26814, %26772
  %26817 = phi double [ %26773, %26772 ], [ %26815, %26814 ]
  %26818 = fptosi double %26817 to i32
  %26819 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %26818, ptr %26819, align 4, !tbaa !9
  br label %26835

26820:                                            ; preds = %26725
  %26821 = load float, ptr %761, align 4, !tbaa !18
  %26822 = fcmp ole float 0.000000e+00, %26821
  br i1 %26822, label %26823, label %26827

26823:                                            ; preds = %26820
  %26824 = load float, ptr %761, align 4, !tbaa !18
  %26825 = fpext float %26824 to double
  %26826 = fadd double %26825, 5.000000e-01
  br label %26831

26827:                                            ; preds = %26820
  %26828 = load float, ptr %761, align 4, !tbaa !18
  %26829 = fpext float %26828 to double
  %26830 = fsub double %26829, 5.000000e-01
  br label %26831

26831:                                            ; preds = %26827, %26823
  %26832 = phi double [ %26826, %26823 ], [ %26830, %26827 ]
  %26833 = fptosi double %26832 to i32
  %26834 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %26833, ptr %26834, align 4, !tbaa !9
  br label %26835

26835:                                            ; preds = %26831, %26816
  br label %26836

26836:                                            ; preds = %26835, %26690
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %763) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %762) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %761) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %760) #3
  br label %26837

26837:                                            ; preds = %26836
  br label %26838

26838:                                            ; preds = %26837
  br label %26843

26839:                                            ; preds = %23220
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 485, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

26840:                                            ; preds = %23220
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 485, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

26841:                                            ; preds = %23220
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 485, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

26842:                                            ; preds = %23220
  store i32 1, ptr %13, align 4, !tbaa !9
  br label %26843

26843:                                            ; preds = %26842, %26838, %26432, %26047, %25687, %25327, %24981, %24634, %24274, %23914, %23568
  br label %26844

26844:                                            ; preds = %26843
  br label %26845

26845:                                            ; preds = %26844
  br label %48657

26846:                                            ; preds = %6
  br label %26847

26847:                                            ; preds = %26846
  %26848 = load ptr, ptr %7, align 8, !tbaa !5
  %26849 = icmp ne ptr null, %26848
  br i1 %26849, label %26850, label %26854

26850:                                            ; preds = %26847
  %26851 = load ptr, ptr %10, align 8, !tbaa !5
  %26852 = icmp ne ptr null, %26851
  br i1 %26852, label %26853, label %26854

26853:                                            ; preds = %26850
  br label %26855

26854:                                            ; preds = %26850, %26847
  call void @__assert_fail(ptr noundef @.str.41, ptr noundef @.str.24, i32 noundef 488, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

26855:                                            ; preds = %26853
  %26856 = load i32, ptr %9, align 4, !tbaa !9
  switch i32 %26856, label %30477 [
    i32 6, label %26857
    i32 8, label %27204
    i32 10, label %27551
    i32 12, label %27910
    i32 15, label %28270
    i32 16, label %28617
    i32 17, label %28964
    i32 18, label %29323
    i32 0, label %29683
    i32 1, label %30068
    i32 3, label %30474
    i32 2, label %30475
    i32 4, label %30476
  ]

26857:                                            ; preds = %26855
  br label %26858

26858:                                            ; preds = %26857
  call void @llvm.lifetime.start.p0(i64 8, ptr %770) #3
  store double 5.000000e-01, ptr %770, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %771) #3
  %26859 = load ptr, ptr %10, align 8, !tbaa !5
  %26860 = load i64, ptr %26859, align 8, !tbaa !13
  store i64 %26860, ptr %771, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %772) #3
  store double 0.000000e+00, ptr %772, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %773) #3
  store double 0.000000e+00, ptr %773, align 8, !tbaa !11
  %26861 = load ptr, ptr %11, align 8, !tbaa !5
  %26862 = icmp ne ptr null, %26861
  br i1 %26862, label %26863, label %26885

26863:                                            ; preds = %26858
  %26864 = load ptr, ptr %12, align 8, !tbaa !5
  %26865 = icmp ne ptr null, %26864
  br i1 %26865, label %26866, label %26877

26866:                                            ; preds = %26863
  %26867 = load ptr, ptr %11, align 8, !tbaa !5
  %26868 = load i64, ptr %26867, align 8, !tbaa !13
  %26869 = load i64, ptr %771, align 8, !tbaa !13
  %26870 = icmp sle i64 %26868, %26869
  br i1 %26870, label %26871, label %26877

26871:                                            ; preds = %26866
  %26872 = load i64, ptr %771, align 8, !tbaa !13
  %26873 = load ptr, ptr %12, align 8, !tbaa !5
  %26874 = load i64, ptr %26873, align 8, !tbaa !13
  %26875 = icmp sle i64 %26872, %26874
  br i1 %26875, label %26876, label %26877

26876:                                            ; preds = %26871
  br label %26878

26877:                                            ; preds = %26871, %26866, %26863
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.24, i32 noundef 488, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

26878:                                            ; preds = %26876
  %26879 = load ptr, ptr %11, align 8, !tbaa !5
  %26880 = load i64, ptr %26879, align 8, !tbaa !13
  %26881 = sitofp i64 %26880 to double
  store double %26881, ptr %772, align 8, !tbaa !11
  %26882 = load ptr, ptr %12, align 8, !tbaa !5
  %26883 = load i64, ptr %26882, align 8, !tbaa !13
  %26884 = sitofp i64 %26883 to double
  store double %26884, ptr %773, align 8, !tbaa !11
  br label %26885

26885:                                            ; preds = %26878, %26858
  %26886 = load i32, ptr %8, align 4, !tbaa !9
  %26887 = icmp ule i32 6, %26886
  br i1 %26887, label %26888, label %27124

26888:                                            ; preds = %26885
  %26889 = load double, ptr %772, align 8, !tbaa !11
  %26890 = load double, ptr %773, align 8, !tbaa !11
  %26891 = fcmp olt double %26889, %26890
  br i1 %26891, label %26892, label %27124

26892:                                            ; preds = %26888
  %26893 = load i32, ptr %8, align 4, !tbaa !9
  %26894 = icmp ule i32 15, %26893
  br i1 %26894, label %26895, label %26947

26895:                                            ; preds = %26892
  call void @llvm.lifetime.start.p0(i64 8, ptr %774) #3
  %26896 = load double, ptr %772, align 8, !tbaa !11
  %26897 = fcmp olt double 0.000000e+00, %26896
  br i1 %26897, label %26898, label %26900

26898:                                            ; preds = %26895
  %26899 = load double, ptr %772, align 8, !tbaa !11
  br label %26901

26900:                                            ; preds = %26895
  br label %26901

26901:                                            ; preds = %26900, %26898
  %26902 = phi double [ %26899, %26898 ], [ 0.000000e+00, %26900 ]
  store double %26902, ptr %774, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %775) #3
  %26903 = load double, ptr %773, align 8, !tbaa !11
  %26904 = fcmp olt double 0.000000e+00, %26903
  br i1 %26904, label %26905, label %26907

26905:                                            ; preds = %26901
  %26906 = load double, ptr %773, align 8, !tbaa !11
  br label %26908

26907:                                            ; preds = %26901
  br label %26908

26908:                                            ; preds = %26907, %26905
  %26909 = phi double [ %26906, %26905 ], [ 0.000000e+00, %26907 ]
  store double %26909, ptr %775, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %776) #3
  %26910 = load double, ptr %774, align 8, !tbaa !11
  %26911 = load double, ptr %775, align 8, !tbaa !11
  %26912 = fcmp olt double %26910, %26911
  br i1 %26912, label %26913, label %26921

26913:                                            ; preds = %26908
  %26914 = load double, ptr %773, align 8, !tbaa !11
  %26915 = load double, ptr %772, align 8, !tbaa !11
  %26916 = fsub double %26914, %26915
  %26917 = load double, ptr %775, align 8, !tbaa !11
  %26918 = load double, ptr %774, align 8, !tbaa !11
  %26919 = fsub double %26917, %26918
  %26920 = fdiv double %26916, %26919
  br label %26922

26921:                                            ; preds = %26908
  br label %26922

26922:                                            ; preds = %26921, %26913
  %26923 = phi double [ %26920, %26913 ], [ 1.000000e+00, %26921 ]
  store double %26923, ptr %776, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %777) #3
  %26924 = load double, ptr %776, align 8, !tbaa !11
  %26925 = load i64, ptr %771, align 8, !tbaa !13
  %26926 = icmp slt i64 0, %26925
  br i1 %26926, label %26927, label %26929

26927:                                            ; preds = %26922
  %26928 = load i64, ptr %771, align 8, !tbaa !13
  br label %26930

26929:                                            ; preds = %26922
  br label %26930

26930:                                            ; preds = %26929, %26927
  %26931 = phi i64 [ %26928, %26927 ], [ 0, %26929 ]
  %26932 = sitofp i64 %26931 to double
  %26933 = fmul double %26924, %26932
  store double %26933, ptr %777, align 8, !tbaa !11
  %26934 = load double, ptr %777, align 8, !tbaa !11
  %26935 = fcmp ole double 0.000000e+00, %26934
  br i1 %26935, label %26936, label %26939

26936:                                            ; preds = %26930
  %26937 = load double, ptr %777, align 8, !tbaa !11
  %26938 = fadd double %26937, 5.000000e-01
  br label %26942

26939:                                            ; preds = %26930
  %26940 = load double, ptr %777, align 8, !tbaa !11
  %26941 = fsub double %26940, 5.000000e-01
  br label %26942

26942:                                            ; preds = %26939, %26936
  %26943 = phi double [ %26938, %26936 ], [ %26941, %26939 ]
  %26944 = fptosi double %26943 to i64
  store i64 %26944, ptr %771, align 8, !tbaa !13
  %26945 = load double, ptr %774, align 8, !tbaa !11
  store double %26945, ptr %772, align 8, !tbaa !11
  %26946 = load double, ptr %775, align 8, !tbaa !11
  store double %26946, ptr %773, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %777) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %776) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %775) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %774) #3
  br label %27003

26947:                                            ; preds = %26892
  %26948 = load i32, ptr %8, align 4, !tbaa !9
  %26949 = icmp ugt i32 6, %26948
  br i1 %26949, label %26978, label %26950

26950:                                            ; preds = %26947
  %26951 = load i32, ptr %8, align 4, !tbaa !9
  %26952 = icmp ugt i32 15, %26951
  br i1 %26952, label %26953, label %26964

26953:                                            ; preds = %26950
  %26954 = load i32, ptr %9, align 4, !tbaa !9
  %26955 = icmp ugt i32 15, %26954
  br i1 %26955, label %26956, label %26961

26956:                                            ; preds = %26953
  %26957 = load i32, ptr %9, align 4, !tbaa !9
  %26958 = load i32, ptr %8, align 4, !tbaa !9
  %26959 = icmp ugt i32 %26957, %26958
  %26960 = zext i1 %26959 to i32
  br label %26962

26961:                                            ; preds = %26953
  br label %26962

26962:                                            ; preds = %26961, %26956
  %26963 = phi i32 [ %26960, %26956 ], [ 0, %26961 ]
  br label %26975

26964:                                            ; preds = %26950
  %26965 = load i32, ptr %9, align 4, !tbaa !9
  %26966 = icmp ugt i32 15, %26965
  br i1 %26966, label %26967, label %26968

26967:                                            ; preds = %26964
  br label %26973

26968:                                            ; preds = %26964
  %26969 = load i32, ptr %9, align 4, !tbaa !9
  %26970 = load i32, ptr %8, align 4, !tbaa !9
  %26971 = icmp ugt i32 %26969, %26970
  %26972 = zext i1 %26971 to i32
  br label %26973

26973:                                            ; preds = %26968, %26967
  %26974 = phi i32 [ 0, %26967 ], [ %26972, %26968 ]
  br label %26975

26975:                                            ; preds = %26973, %26962
  %26976 = phi i32 [ %26963, %26962 ], [ %26974, %26973 ]
  %26977 = icmp ne i32 %26976, 0
  br label %26978

26978:                                            ; preds = %26975, %26947
  %26979 = phi i1 [ true, %26947 ], [ %26977, %26975 ]
  %26980 = zext i1 %26979 to i32
  %26981 = icmp eq i32 0, %26980
  br i1 %26981, label %26982, label %27002

26982:                                            ; preds = %26978
  %26983 = load double, ptr %772, align 8, !tbaa !11
  %26984 = fcmp ogt double 0.000000e+00, %26983
  br i1 %26984, label %26985, label %27002

26985:                                            ; preds = %26982
  %26986 = load double, ptr %773, align 8, !tbaa !11
  %26987 = fcmp olt double 0.000000e+00, %26986
  br i1 %26987, label %26988, label %27002

26988:                                            ; preds = %26985
  %26989 = load double, ptr %772, align 8, !tbaa !11
  %26990 = fneg double %26989
  %26991 = load double, ptr %773, align 8, !tbaa !11
  %26992 = fcmp olt double %26990, %26991
  br i1 %26992, label %26993, label %26995

26993:                                            ; preds = %26988
  %26994 = load double, ptr %773, align 8, !tbaa !11
  br label %26998

26995:                                            ; preds = %26988
  %26996 = load double, ptr %772, align 8, !tbaa !11
  %26997 = fneg double %26996
  br label %26998

26998:                                            ; preds = %26995, %26993
  %26999 = phi double [ %26994, %26993 ], [ %26997, %26995 ]
  store double %26999, ptr %773, align 8, !tbaa !11
  %27000 = load double, ptr %773, align 8, !tbaa !11
  %27001 = fneg double %27000
  store double %27001, ptr %772, align 8, !tbaa !11
  br label %27002

27002:                                            ; preds = %26998, %26985, %26982, %26978
  br label %27003

27003:                                            ; preds = %27002, %26942
  call void @llvm.lifetime.start.p0(i64 8, ptr %778) #3
  %27004 = load double, ptr %772, align 8, !tbaa !11
  %27005 = fcmp ole double 0.000000e+00, %27004
  %27006 = zext i1 %27005 to i64
  %27007 = select i1 %27005, double 0.000000e+00, double -3.276800e+04
  store double %27007, ptr %778, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %779) #3
  %27008 = load double, ptr %773, align 8, !tbaa !11
  %27009 = fcmp ole double 0.000000e+00, %27008
  %27010 = zext i1 %27009 to i64
  %27011 = select i1 %27009, double 3.276700e+04, double 0.000000e+00
  store double %27011, ptr %779, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %780) #3
  %27012 = load i64, ptr %771, align 8, !tbaa !13
  %27013 = sitofp i64 %27012 to double
  %27014 = load double, ptr %772, align 8, !tbaa !11
  %27015 = fsub double %27013, %27014
  %27016 = load double, ptr %779, align 8, !tbaa !11
  %27017 = load double, ptr %778, align 8, !tbaa !11
  %27018 = fsub double %27016, %27017
  %27019 = fmul double %27015, %27018
  %27020 = load double, ptr %773, align 8, !tbaa !11
  %27021 = load double, ptr %772, align 8, !tbaa !11
  %27022 = fsub double %27020, %27021
  %27023 = fdiv double %27019, %27022
  %27024 = load double, ptr %778, align 8, !tbaa !11
  %27025 = fadd double %27023, %27024
  store double %27025, ptr %780, align 8, !tbaa !11
  %27026 = load double, ptr %778, align 8, !tbaa !11
  %27027 = load double, ptr %780, align 8, !tbaa !11
  %27028 = fcmp ole double 0.000000e+00, %27027
  br i1 %27028, label %27029, label %27032

27029:                                            ; preds = %27003
  %27030 = load double, ptr %780, align 8, !tbaa !11
  %27031 = fadd double %27030, 5.000000e-01
  br label %27035

27032:                                            ; preds = %27003
  %27033 = load double, ptr %780, align 8, !tbaa !11
  %27034 = fsub double %27033, 5.000000e-01
  br label %27035

27035:                                            ; preds = %27032, %27029
  %27036 = phi double [ %27031, %27029 ], [ %27034, %27032 ]
  %27037 = fcmp olt double %27026, %27036
  br i1 %27037, label %27038, label %27092

27038:                                            ; preds = %27035
  %27039 = load double, ptr %780, align 8, !tbaa !11
  %27040 = fcmp ole double 0.000000e+00, %27039
  br i1 %27040, label %27041, label %27044

27041:                                            ; preds = %27038
  %27042 = load double, ptr %780, align 8, !tbaa !11
  %27043 = fadd double %27042, 5.000000e-01
  br label %27047

27044:                                            ; preds = %27038
  %27045 = load double, ptr %780, align 8, !tbaa !11
  %27046 = fsub double %27045, 5.000000e-01
  br label %27047

27047:                                            ; preds = %27044, %27041
  %27048 = phi double [ %27043, %27041 ], [ %27046, %27044 ]
  %27049 = load double, ptr %779, align 8, !tbaa !11
  %27050 = fcmp ole double %27048, %27049
  br i1 %27050, label %27051, label %27062

27051:                                            ; preds = %27047
  %27052 = load double, ptr %780, align 8, !tbaa !11
  %27053 = fcmp ole double 0.000000e+00, %27052
  br i1 %27053, label %27054, label %27057

27054:                                            ; preds = %27051
  %27055 = load double, ptr %780, align 8, !tbaa !11
  %27056 = fadd double %27055, 5.000000e-01
  br label %27060

27057:                                            ; preds = %27051
  %27058 = load double, ptr %780, align 8, !tbaa !11
  %27059 = fsub double %27058, 5.000000e-01
  br label %27060

27060:                                            ; preds = %27057, %27054
  %27061 = phi double [ %27056, %27054 ], [ %27059, %27057 ]
  br label %27090

27062:                                            ; preds = %27047
  %27063 = load double, ptr %780, align 8, !tbaa !11
  %27064 = fcmp ole double 0.000000e+00, %27063
  br i1 %27064, label %27065, label %27068

27065:                                            ; preds = %27062
  %27066 = load double, ptr %780, align 8, !tbaa !11
  %27067 = fadd double %27066, 5.000000e-01
  br label %27071

27068:                                            ; preds = %27062
  %27069 = load double, ptr %780, align 8, !tbaa !11
  %27070 = fsub double %27069, 5.000000e-01
  br label %27071

27071:                                            ; preds = %27068, %27065
  %27072 = phi double [ %27067, %27065 ], [ %27070, %27068 ]
  %27073 = load double, ptr %779, align 8, !tbaa !11
  %27074 = fcmp olt double %27072, %27073
  br i1 %27074, label %27075, label %27086

27075:                                            ; preds = %27071
  %27076 = load double, ptr %780, align 8, !tbaa !11
  %27077 = fcmp ole double 0.000000e+00, %27076
  br i1 %27077, label %27078, label %27081

27078:                                            ; preds = %27075
  %27079 = load double, ptr %780, align 8, !tbaa !11
  %27080 = fadd double %27079, 5.000000e-01
  br label %27084

27081:                                            ; preds = %27075
  %27082 = load double, ptr %780, align 8, !tbaa !11
  %27083 = fsub double %27082, 5.000000e-01
  br label %27084

27084:                                            ; preds = %27081, %27078
  %27085 = phi double [ %27080, %27078 ], [ %27083, %27081 ]
  br label %27088

27086:                                            ; preds = %27071
  %27087 = load double, ptr %779, align 8, !tbaa !11
  br label %27088

27088:                                            ; preds = %27086, %27084
  %27089 = phi double [ %27085, %27084 ], [ %27087, %27086 ]
  br label %27090

27090:                                            ; preds = %27088, %27060
  %27091 = phi double [ %27061, %27060 ], [ %27089, %27088 ]
  br label %27120

27092:                                            ; preds = %27035
  %27093 = load double, ptr %778, align 8, !tbaa !11
  %27094 = load double, ptr %780, align 8, !tbaa !11
  %27095 = fcmp ole double 0.000000e+00, %27094
  br i1 %27095, label %27096, label %27099

27096:                                            ; preds = %27092
  %27097 = load double, ptr %780, align 8, !tbaa !11
  %27098 = fadd double %27097, 5.000000e-01
  br label %27102

27099:                                            ; preds = %27092
  %27100 = load double, ptr %780, align 8, !tbaa !11
  %27101 = fsub double %27100, 5.000000e-01
  br label %27102

27102:                                            ; preds = %27099, %27096
  %27103 = phi double [ %27098, %27096 ], [ %27101, %27099 ]
  %27104 = fcmp olt double %27093, %27103
  br i1 %27104, label %27105, label %27116

27105:                                            ; preds = %27102
  %27106 = load double, ptr %780, align 8, !tbaa !11
  %27107 = fcmp ole double 0.000000e+00, %27106
  br i1 %27107, label %27108, label %27111

27108:                                            ; preds = %27105
  %27109 = load double, ptr %780, align 8, !tbaa !11
  %27110 = fadd double %27109, 5.000000e-01
  br label %27114

27111:                                            ; preds = %27105
  %27112 = load double, ptr %780, align 8, !tbaa !11
  %27113 = fsub double %27112, 5.000000e-01
  br label %27114

27114:                                            ; preds = %27111, %27108
  %27115 = phi double [ %27110, %27108 ], [ %27113, %27111 ]
  br label %27118

27116:                                            ; preds = %27102
  %27117 = load double, ptr %778, align 8, !tbaa !11
  br label %27118

27118:                                            ; preds = %27116, %27114
  %27119 = phi double [ %27115, %27114 ], [ %27117, %27116 ]
  br label %27120

27120:                                            ; preds = %27118, %27090
  %27121 = phi double [ %27091, %27090 ], [ %27119, %27118 ]
  %27122 = fptosi double %27121 to i16
  %27123 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %27122, ptr %27123, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %780) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %779) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %778) #3
  br label %27201

27124:                                            ; preds = %26888, %26885
  %27125 = load i32, ptr %8, align 4, !tbaa !9
  %27126 = icmp ugt i32 6, %27125
  br i1 %27126, label %27155, label %27127

27127:                                            ; preds = %27124
  %27128 = load i32, ptr %8, align 4, !tbaa !9
  %27129 = icmp ugt i32 15, %27128
  br i1 %27129, label %27130, label %27141

27130:                                            ; preds = %27127
  %27131 = load i32, ptr %9, align 4, !tbaa !9
  %27132 = icmp ugt i32 15, %27131
  br i1 %27132, label %27133, label %27138

27133:                                            ; preds = %27130
  %27134 = load i32, ptr %9, align 4, !tbaa !9
  %27135 = load i32, ptr %8, align 4, !tbaa !9
  %27136 = icmp ugt i32 %27134, %27135
  %27137 = zext i1 %27136 to i32
  br label %27139

27138:                                            ; preds = %27130
  br label %27139

27139:                                            ; preds = %27138, %27133
  %27140 = phi i32 [ %27137, %27133 ], [ 0, %27138 ]
  br label %27152

27141:                                            ; preds = %27127
  %27142 = load i32, ptr %9, align 4, !tbaa !9
  %27143 = icmp ugt i32 15, %27142
  br i1 %27143, label %27144, label %27145

27144:                                            ; preds = %27141
  br label %27150

27145:                                            ; preds = %27141
  %27146 = load i32, ptr %9, align 4, !tbaa !9
  %27147 = load i32, ptr %8, align 4, !tbaa !9
  %27148 = icmp ugt i32 %27146, %27147
  %27149 = zext i1 %27148 to i32
  br label %27150

27150:                                            ; preds = %27145, %27144
  %27151 = phi i32 [ 0, %27144 ], [ %27149, %27145 ]
  br label %27152

27152:                                            ; preds = %27150, %27139
  %27153 = phi i32 [ %27140, %27139 ], [ %27151, %27150 ]
  %27154 = icmp ne i32 %27153, 0
  br label %27155

27155:                                            ; preds = %27152, %27124
  %27156 = phi i1 [ true, %27124 ], [ %27154, %27152 ]
  %27157 = zext i1 %27156 to i32
  %27158 = icmp eq i32 0, %27157
  br i1 %27158, label %27159, label %27196

27159:                                            ; preds = %27155
  %27160 = load i64, ptr %771, align 8, !tbaa !13
  %27161 = sitofp i64 %27160 to double
  %27162 = fcmp olt double -3.276800e+04, %27161
  br i1 %27162, label %27163, label %27182

27163:                                            ; preds = %27159
  %27164 = load i64, ptr %771, align 8, !tbaa !13
  %27165 = sitofp i64 %27164 to double
  %27166 = fcmp ole double %27165, 3.276700e+04
  br i1 %27166, label %27167, label %27170

27167:                                            ; preds = %27163
  %27168 = load i64, ptr %771, align 8, !tbaa !13
  %27169 = sitofp i64 %27168 to double
  br label %27180

27170:                                            ; preds = %27163
  %27171 = load i64, ptr %771, align 8, !tbaa !13
  %27172 = sitofp i64 %27171 to double
  %27173 = fcmp olt double %27172, 3.276700e+04
  br i1 %27173, label %27174, label %27177

27174:                                            ; preds = %27170
  %27175 = load i64, ptr %771, align 8, !tbaa !13
  %27176 = sitofp i64 %27175 to double
  br label %27178

27177:                                            ; preds = %27170
  br label %27178

27178:                                            ; preds = %27177, %27174
  %27179 = phi double [ %27176, %27174 ], [ 3.276700e+04, %27177 ]
  br label %27180

27180:                                            ; preds = %27178, %27167
  %27181 = phi double [ %27169, %27167 ], [ %27179, %27178 ]
  br label %27192

27182:                                            ; preds = %27159
  %27183 = load i64, ptr %771, align 8, !tbaa !13
  %27184 = sitofp i64 %27183 to double
  %27185 = fcmp olt double -3.276800e+04, %27184
  br i1 %27185, label %27186, label %27189

27186:                                            ; preds = %27182
  %27187 = load i64, ptr %771, align 8, !tbaa !13
  %27188 = sitofp i64 %27187 to double
  br label %27190

27189:                                            ; preds = %27182
  br label %27190

27190:                                            ; preds = %27189, %27186
  %27191 = phi double [ %27188, %27186 ], [ -3.276800e+04, %27189 ]
  br label %27192

27192:                                            ; preds = %27190, %27180
  %27193 = phi double [ %27181, %27180 ], [ %27191, %27190 ]
  %27194 = fptosi double %27193 to i16
  %27195 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %27194, ptr %27195, align 2, !tbaa !15
  br label %27200

27196:                                            ; preds = %27155
  %27197 = load i64, ptr %771, align 8, !tbaa !13
  %27198 = trunc i64 %27197 to i16
  %27199 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %27198, ptr %27199, align 2, !tbaa !15
  br label %27200

27200:                                            ; preds = %27196, %27192
  br label %27201

27201:                                            ; preds = %27200, %27120
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %773) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %772) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %771) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %770) #3
  br label %27202

27202:                                            ; preds = %27201
  br label %27203

27203:                                            ; preds = %27202
  br label %30478

27204:                                            ; preds = %26855
  br label %27205

27205:                                            ; preds = %27204
  call void @llvm.lifetime.start.p0(i64 8, ptr %781) #3
  store double 5.000000e-01, ptr %781, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %782) #3
  %27206 = load ptr, ptr %10, align 8, !tbaa !5
  %27207 = load i32, ptr %27206, align 4, !tbaa !9
  store i32 %27207, ptr %782, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %783) #3
  store double 0.000000e+00, ptr %783, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %784) #3
  store double 0.000000e+00, ptr %784, align 8, !tbaa !11
  %27208 = load ptr, ptr %11, align 8, !tbaa !5
  %27209 = icmp ne ptr null, %27208
  br i1 %27209, label %27210, label %27232

27210:                                            ; preds = %27205
  %27211 = load ptr, ptr %12, align 8, !tbaa !5
  %27212 = icmp ne ptr null, %27211
  br i1 %27212, label %27213, label %27224

27213:                                            ; preds = %27210
  %27214 = load ptr, ptr %11, align 8, !tbaa !5
  %27215 = load i32, ptr %27214, align 4, !tbaa !9
  %27216 = load i32, ptr %782, align 4, !tbaa !9
  %27217 = icmp sle i32 %27215, %27216
  br i1 %27217, label %27218, label %27224

27218:                                            ; preds = %27213
  %27219 = load i32, ptr %782, align 4, !tbaa !9
  %27220 = load ptr, ptr %12, align 8, !tbaa !5
  %27221 = load i32, ptr %27220, align 4, !tbaa !9
  %27222 = icmp sle i32 %27219, %27221
  br i1 %27222, label %27223, label %27224

27223:                                            ; preds = %27218
  br label %27225

27224:                                            ; preds = %27218, %27213, %27210
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.24, i32 noundef 488, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

27225:                                            ; preds = %27223
  %27226 = load ptr, ptr %11, align 8, !tbaa !5
  %27227 = load i32, ptr %27226, align 4, !tbaa !9
  %27228 = sitofp i32 %27227 to double
  store double %27228, ptr %783, align 8, !tbaa !11
  %27229 = load ptr, ptr %12, align 8, !tbaa !5
  %27230 = load i32, ptr %27229, align 4, !tbaa !9
  %27231 = sitofp i32 %27230 to double
  store double %27231, ptr %784, align 8, !tbaa !11
  br label %27232

27232:                                            ; preds = %27225, %27205
  %27233 = load i32, ptr %8, align 4, !tbaa !9
  %27234 = icmp ule i32 6, %27233
  br i1 %27234, label %27235, label %27471

27235:                                            ; preds = %27232
  %27236 = load double, ptr %783, align 8, !tbaa !11
  %27237 = load double, ptr %784, align 8, !tbaa !11
  %27238 = fcmp olt double %27236, %27237
  br i1 %27238, label %27239, label %27471

27239:                                            ; preds = %27235
  %27240 = load i32, ptr %8, align 4, !tbaa !9
  %27241 = icmp ule i32 15, %27240
  br i1 %27241, label %27242, label %27294

27242:                                            ; preds = %27239
  call void @llvm.lifetime.start.p0(i64 8, ptr %785) #3
  %27243 = load double, ptr %783, align 8, !tbaa !11
  %27244 = fcmp olt double 0.000000e+00, %27243
  br i1 %27244, label %27245, label %27247

27245:                                            ; preds = %27242
  %27246 = load double, ptr %783, align 8, !tbaa !11
  br label %27248

27247:                                            ; preds = %27242
  br label %27248

27248:                                            ; preds = %27247, %27245
  %27249 = phi double [ %27246, %27245 ], [ 0.000000e+00, %27247 ]
  store double %27249, ptr %785, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %786) #3
  %27250 = load double, ptr %784, align 8, !tbaa !11
  %27251 = fcmp olt double 0.000000e+00, %27250
  br i1 %27251, label %27252, label %27254

27252:                                            ; preds = %27248
  %27253 = load double, ptr %784, align 8, !tbaa !11
  br label %27255

27254:                                            ; preds = %27248
  br label %27255

27255:                                            ; preds = %27254, %27252
  %27256 = phi double [ %27253, %27252 ], [ 0.000000e+00, %27254 ]
  store double %27256, ptr %786, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %787) #3
  %27257 = load double, ptr %785, align 8, !tbaa !11
  %27258 = load double, ptr %786, align 8, !tbaa !11
  %27259 = fcmp olt double %27257, %27258
  br i1 %27259, label %27260, label %27268

27260:                                            ; preds = %27255
  %27261 = load double, ptr %784, align 8, !tbaa !11
  %27262 = load double, ptr %783, align 8, !tbaa !11
  %27263 = fsub double %27261, %27262
  %27264 = load double, ptr %786, align 8, !tbaa !11
  %27265 = load double, ptr %785, align 8, !tbaa !11
  %27266 = fsub double %27264, %27265
  %27267 = fdiv double %27263, %27266
  br label %27269

27268:                                            ; preds = %27255
  br label %27269

27269:                                            ; preds = %27268, %27260
  %27270 = phi double [ %27267, %27260 ], [ 1.000000e+00, %27268 ]
  store double %27270, ptr %787, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %788) #3
  %27271 = load double, ptr %787, align 8, !tbaa !11
  %27272 = load i32, ptr %782, align 4, !tbaa !9
  %27273 = icmp slt i32 0, %27272
  br i1 %27273, label %27274, label %27276

27274:                                            ; preds = %27269
  %27275 = load i32, ptr %782, align 4, !tbaa !9
  br label %27277

27276:                                            ; preds = %27269
  br label %27277

27277:                                            ; preds = %27276, %27274
  %27278 = phi i32 [ %27275, %27274 ], [ 0, %27276 ]
  %27279 = sitofp i32 %27278 to double
  %27280 = fmul double %27271, %27279
  store double %27280, ptr %788, align 8, !tbaa !11
  %27281 = load double, ptr %788, align 8, !tbaa !11
  %27282 = fcmp ole double 0.000000e+00, %27281
  br i1 %27282, label %27283, label %27286

27283:                                            ; preds = %27277
  %27284 = load double, ptr %788, align 8, !tbaa !11
  %27285 = fadd double %27284, 5.000000e-01
  br label %27289

27286:                                            ; preds = %27277
  %27287 = load double, ptr %788, align 8, !tbaa !11
  %27288 = fsub double %27287, 5.000000e-01
  br label %27289

27289:                                            ; preds = %27286, %27283
  %27290 = phi double [ %27285, %27283 ], [ %27288, %27286 ]
  %27291 = fptosi double %27290 to i32
  store i32 %27291, ptr %782, align 4, !tbaa !9
  %27292 = load double, ptr %785, align 8, !tbaa !11
  store double %27292, ptr %783, align 8, !tbaa !11
  %27293 = load double, ptr %786, align 8, !tbaa !11
  store double %27293, ptr %784, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %788) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %787) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %786) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %785) #3
  br label %27350

27294:                                            ; preds = %27239
  %27295 = load i32, ptr %8, align 4, !tbaa !9
  %27296 = icmp ugt i32 6, %27295
  br i1 %27296, label %27325, label %27297

27297:                                            ; preds = %27294
  %27298 = load i32, ptr %8, align 4, !tbaa !9
  %27299 = icmp ugt i32 15, %27298
  br i1 %27299, label %27300, label %27311

27300:                                            ; preds = %27297
  %27301 = load i32, ptr %9, align 4, !tbaa !9
  %27302 = icmp ugt i32 15, %27301
  br i1 %27302, label %27303, label %27308

27303:                                            ; preds = %27300
  %27304 = load i32, ptr %9, align 4, !tbaa !9
  %27305 = load i32, ptr %8, align 4, !tbaa !9
  %27306 = icmp ugt i32 %27304, %27305
  %27307 = zext i1 %27306 to i32
  br label %27309

27308:                                            ; preds = %27300
  br label %27309

27309:                                            ; preds = %27308, %27303
  %27310 = phi i32 [ %27307, %27303 ], [ 0, %27308 ]
  br label %27322

27311:                                            ; preds = %27297
  %27312 = load i32, ptr %9, align 4, !tbaa !9
  %27313 = icmp ugt i32 15, %27312
  br i1 %27313, label %27314, label %27315

27314:                                            ; preds = %27311
  br label %27320

27315:                                            ; preds = %27311
  %27316 = load i32, ptr %9, align 4, !tbaa !9
  %27317 = load i32, ptr %8, align 4, !tbaa !9
  %27318 = icmp ugt i32 %27316, %27317
  %27319 = zext i1 %27318 to i32
  br label %27320

27320:                                            ; preds = %27315, %27314
  %27321 = phi i32 [ 0, %27314 ], [ %27319, %27315 ]
  br label %27322

27322:                                            ; preds = %27320, %27309
  %27323 = phi i32 [ %27310, %27309 ], [ %27321, %27320 ]
  %27324 = icmp ne i32 %27323, 0
  br label %27325

27325:                                            ; preds = %27322, %27294
  %27326 = phi i1 [ true, %27294 ], [ %27324, %27322 ]
  %27327 = zext i1 %27326 to i32
  %27328 = icmp eq i32 0, %27327
  br i1 %27328, label %27329, label %27349

27329:                                            ; preds = %27325
  %27330 = load double, ptr %783, align 8, !tbaa !11
  %27331 = fcmp ogt double 0.000000e+00, %27330
  br i1 %27331, label %27332, label %27349

27332:                                            ; preds = %27329
  %27333 = load double, ptr %784, align 8, !tbaa !11
  %27334 = fcmp olt double 0.000000e+00, %27333
  br i1 %27334, label %27335, label %27349

27335:                                            ; preds = %27332
  %27336 = load double, ptr %783, align 8, !tbaa !11
  %27337 = fneg double %27336
  %27338 = load double, ptr %784, align 8, !tbaa !11
  %27339 = fcmp olt double %27337, %27338
  br i1 %27339, label %27340, label %27342

27340:                                            ; preds = %27335
  %27341 = load double, ptr %784, align 8, !tbaa !11
  br label %27345

27342:                                            ; preds = %27335
  %27343 = load double, ptr %783, align 8, !tbaa !11
  %27344 = fneg double %27343
  br label %27345

27345:                                            ; preds = %27342, %27340
  %27346 = phi double [ %27341, %27340 ], [ %27344, %27342 ]
  store double %27346, ptr %784, align 8, !tbaa !11
  %27347 = load double, ptr %784, align 8, !tbaa !11
  %27348 = fneg double %27347
  store double %27348, ptr %783, align 8, !tbaa !11
  br label %27349

27349:                                            ; preds = %27345, %27332, %27329, %27325
  br label %27350

27350:                                            ; preds = %27349, %27289
  call void @llvm.lifetime.start.p0(i64 8, ptr %789) #3
  %27351 = load double, ptr %783, align 8, !tbaa !11
  %27352 = fcmp ole double 0.000000e+00, %27351
  %27353 = zext i1 %27352 to i64
  %27354 = select i1 %27352, double 0.000000e+00, double -3.276800e+04
  store double %27354, ptr %789, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %790) #3
  %27355 = load double, ptr %784, align 8, !tbaa !11
  %27356 = fcmp ole double 0.000000e+00, %27355
  %27357 = zext i1 %27356 to i64
  %27358 = select i1 %27356, double 3.276700e+04, double 0.000000e+00
  store double %27358, ptr %790, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %791) #3
  %27359 = load i32, ptr %782, align 4, !tbaa !9
  %27360 = sitofp i32 %27359 to double
  %27361 = load double, ptr %783, align 8, !tbaa !11
  %27362 = fsub double %27360, %27361
  %27363 = load double, ptr %790, align 8, !tbaa !11
  %27364 = load double, ptr %789, align 8, !tbaa !11
  %27365 = fsub double %27363, %27364
  %27366 = fmul double %27362, %27365
  %27367 = load double, ptr %784, align 8, !tbaa !11
  %27368 = load double, ptr %783, align 8, !tbaa !11
  %27369 = fsub double %27367, %27368
  %27370 = fdiv double %27366, %27369
  %27371 = load double, ptr %789, align 8, !tbaa !11
  %27372 = fadd double %27370, %27371
  store double %27372, ptr %791, align 8, !tbaa !11
  %27373 = load double, ptr %789, align 8, !tbaa !11
  %27374 = load double, ptr %791, align 8, !tbaa !11
  %27375 = fcmp ole double 0.000000e+00, %27374
  br i1 %27375, label %27376, label %27379

27376:                                            ; preds = %27350
  %27377 = load double, ptr %791, align 8, !tbaa !11
  %27378 = fadd double %27377, 5.000000e-01
  br label %27382

27379:                                            ; preds = %27350
  %27380 = load double, ptr %791, align 8, !tbaa !11
  %27381 = fsub double %27380, 5.000000e-01
  br label %27382

27382:                                            ; preds = %27379, %27376
  %27383 = phi double [ %27378, %27376 ], [ %27381, %27379 ]
  %27384 = fcmp olt double %27373, %27383
  br i1 %27384, label %27385, label %27439

27385:                                            ; preds = %27382
  %27386 = load double, ptr %791, align 8, !tbaa !11
  %27387 = fcmp ole double 0.000000e+00, %27386
  br i1 %27387, label %27388, label %27391

27388:                                            ; preds = %27385
  %27389 = load double, ptr %791, align 8, !tbaa !11
  %27390 = fadd double %27389, 5.000000e-01
  br label %27394

27391:                                            ; preds = %27385
  %27392 = load double, ptr %791, align 8, !tbaa !11
  %27393 = fsub double %27392, 5.000000e-01
  br label %27394

27394:                                            ; preds = %27391, %27388
  %27395 = phi double [ %27390, %27388 ], [ %27393, %27391 ]
  %27396 = load double, ptr %790, align 8, !tbaa !11
  %27397 = fcmp ole double %27395, %27396
  br i1 %27397, label %27398, label %27409

27398:                                            ; preds = %27394
  %27399 = load double, ptr %791, align 8, !tbaa !11
  %27400 = fcmp ole double 0.000000e+00, %27399
  br i1 %27400, label %27401, label %27404

27401:                                            ; preds = %27398
  %27402 = load double, ptr %791, align 8, !tbaa !11
  %27403 = fadd double %27402, 5.000000e-01
  br label %27407

27404:                                            ; preds = %27398
  %27405 = load double, ptr %791, align 8, !tbaa !11
  %27406 = fsub double %27405, 5.000000e-01
  br label %27407

27407:                                            ; preds = %27404, %27401
  %27408 = phi double [ %27403, %27401 ], [ %27406, %27404 ]
  br label %27437

27409:                                            ; preds = %27394
  %27410 = load double, ptr %791, align 8, !tbaa !11
  %27411 = fcmp ole double 0.000000e+00, %27410
  br i1 %27411, label %27412, label %27415

27412:                                            ; preds = %27409
  %27413 = load double, ptr %791, align 8, !tbaa !11
  %27414 = fadd double %27413, 5.000000e-01
  br label %27418

27415:                                            ; preds = %27409
  %27416 = load double, ptr %791, align 8, !tbaa !11
  %27417 = fsub double %27416, 5.000000e-01
  br label %27418

27418:                                            ; preds = %27415, %27412
  %27419 = phi double [ %27414, %27412 ], [ %27417, %27415 ]
  %27420 = load double, ptr %790, align 8, !tbaa !11
  %27421 = fcmp olt double %27419, %27420
  br i1 %27421, label %27422, label %27433

27422:                                            ; preds = %27418
  %27423 = load double, ptr %791, align 8, !tbaa !11
  %27424 = fcmp ole double 0.000000e+00, %27423
  br i1 %27424, label %27425, label %27428

27425:                                            ; preds = %27422
  %27426 = load double, ptr %791, align 8, !tbaa !11
  %27427 = fadd double %27426, 5.000000e-01
  br label %27431

27428:                                            ; preds = %27422
  %27429 = load double, ptr %791, align 8, !tbaa !11
  %27430 = fsub double %27429, 5.000000e-01
  br label %27431

27431:                                            ; preds = %27428, %27425
  %27432 = phi double [ %27427, %27425 ], [ %27430, %27428 ]
  br label %27435

27433:                                            ; preds = %27418
  %27434 = load double, ptr %790, align 8, !tbaa !11
  br label %27435

27435:                                            ; preds = %27433, %27431
  %27436 = phi double [ %27432, %27431 ], [ %27434, %27433 ]
  br label %27437

27437:                                            ; preds = %27435, %27407
  %27438 = phi double [ %27408, %27407 ], [ %27436, %27435 ]
  br label %27467

27439:                                            ; preds = %27382
  %27440 = load double, ptr %789, align 8, !tbaa !11
  %27441 = load double, ptr %791, align 8, !tbaa !11
  %27442 = fcmp ole double 0.000000e+00, %27441
  br i1 %27442, label %27443, label %27446

27443:                                            ; preds = %27439
  %27444 = load double, ptr %791, align 8, !tbaa !11
  %27445 = fadd double %27444, 5.000000e-01
  br label %27449

27446:                                            ; preds = %27439
  %27447 = load double, ptr %791, align 8, !tbaa !11
  %27448 = fsub double %27447, 5.000000e-01
  br label %27449

27449:                                            ; preds = %27446, %27443
  %27450 = phi double [ %27445, %27443 ], [ %27448, %27446 ]
  %27451 = fcmp olt double %27440, %27450
  br i1 %27451, label %27452, label %27463

27452:                                            ; preds = %27449
  %27453 = load double, ptr %791, align 8, !tbaa !11
  %27454 = fcmp ole double 0.000000e+00, %27453
  br i1 %27454, label %27455, label %27458

27455:                                            ; preds = %27452
  %27456 = load double, ptr %791, align 8, !tbaa !11
  %27457 = fadd double %27456, 5.000000e-01
  br label %27461

27458:                                            ; preds = %27452
  %27459 = load double, ptr %791, align 8, !tbaa !11
  %27460 = fsub double %27459, 5.000000e-01
  br label %27461

27461:                                            ; preds = %27458, %27455
  %27462 = phi double [ %27457, %27455 ], [ %27460, %27458 ]
  br label %27465

27463:                                            ; preds = %27449
  %27464 = load double, ptr %789, align 8, !tbaa !11
  br label %27465

27465:                                            ; preds = %27463, %27461
  %27466 = phi double [ %27462, %27461 ], [ %27464, %27463 ]
  br label %27467

27467:                                            ; preds = %27465, %27437
  %27468 = phi double [ %27438, %27437 ], [ %27466, %27465 ]
  %27469 = fptosi double %27468 to i16
  %27470 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %27469, ptr %27470, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %791) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %790) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %789) #3
  br label %27548

27471:                                            ; preds = %27235, %27232
  %27472 = load i32, ptr %8, align 4, !tbaa !9
  %27473 = icmp ugt i32 6, %27472
  br i1 %27473, label %27502, label %27474

27474:                                            ; preds = %27471
  %27475 = load i32, ptr %8, align 4, !tbaa !9
  %27476 = icmp ugt i32 15, %27475
  br i1 %27476, label %27477, label %27488

27477:                                            ; preds = %27474
  %27478 = load i32, ptr %9, align 4, !tbaa !9
  %27479 = icmp ugt i32 15, %27478
  br i1 %27479, label %27480, label %27485

27480:                                            ; preds = %27477
  %27481 = load i32, ptr %9, align 4, !tbaa !9
  %27482 = load i32, ptr %8, align 4, !tbaa !9
  %27483 = icmp ugt i32 %27481, %27482
  %27484 = zext i1 %27483 to i32
  br label %27486

27485:                                            ; preds = %27477
  br label %27486

27486:                                            ; preds = %27485, %27480
  %27487 = phi i32 [ %27484, %27480 ], [ 0, %27485 ]
  br label %27499

27488:                                            ; preds = %27474
  %27489 = load i32, ptr %9, align 4, !tbaa !9
  %27490 = icmp ugt i32 15, %27489
  br i1 %27490, label %27491, label %27492

27491:                                            ; preds = %27488
  br label %27497

27492:                                            ; preds = %27488
  %27493 = load i32, ptr %9, align 4, !tbaa !9
  %27494 = load i32, ptr %8, align 4, !tbaa !9
  %27495 = icmp ugt i32 %27493, %27494
  %27496 = zext i1 %27495 to i32
  br label %27497

27497:                                            ; preds = %27492, %27491
  %27498 = phi i32 [ 0, %27491 ], [ %27496, %27492 ]
  br label %27499

27499:                                            ; preds = %27497, %27486
  %27500 = phi i32 [ %27487, %27486 ], [ %27498, %27497 ]
  %27501 = icmp ne i32 %27500, 0
  br label %27502

27502:                                            ; preds = %27499, %27471
  %27503 = phi i1 [ true, %27471 ], [ %27501, %27499 ]
  %27504 = zext i1 %27503 to i32
  %27505 = icmp eq i32 0, %27504
  br i1 %27505, label %27506, label %27543

27506:                                            ; preds = %27502
  %27507 = load i32, ptr %782, align 4, !tbaa !9
  %27508 = sitofp i32 %27507 to double
  %27509 = fcmp olt double -3.276800e+04, %27508
  br i1 %27509, label %27510, label %27529

27510:                                            ; preds = %27506
  %27511 = load i32, ptr %782, align 4, !tbaa !9
  %27512 = sitofp i32 %27511 to double
  %27513 = fcmp ole double %27512, 3.276700e+04
  br i1 %27513, label %27514, label %27517

27514:                                            ; preds = %27510
  %27515 = load i32, ptr %782, align 4, !tbaa !9
  %27516 = sitofp i32 %27515 to double
  br label %27527

27517:                                            ; preds = %27510
  %27518 = load i32, ptr %782, align 4, !tbaa !9
  %27519 = sitofp i32 %27518 to double
  %27520 = fcmp olt double %27519, 3.276700e+04
  br i1 %27520, label %27521, label %27524

27521:                                            ; preds = %27517
  %27522 = load i32, ptr %782, align 4, !tbaa !9
  %27523 = sitofp i32 %27522 to double
  br label %27525

27524:                                            ; preds = %27517
  br label %27525

27525:                                            ; preds = %27524, %27521
  %27526 = phi double [ %27523, %27521 ], [ 3.276700e+04, %27524 ]
  br label %27527

27527:                                            ; preds = %27525, %27514
  %27528 = phi double [ %27516, %27514 ], [ %27526, %27525 ]
  br label %27539

27529:                                            ; preds = %27506
  %27530 = load i32, ptr %782, align 4, !tbaa !9
  %27531 = sitofp i32 %27530 to double
  %27532 = fcmp olt double -3.276800e+04, %27531
  br i1 %27532, label %27533, label %27536

27533:                                            ; preds = %27529
  %27534 = load i32, ptr %782, align 4, !tbaa !9
  %27535 = sitofp i32 %27534 to double
  br label %27537

27536:                                            ; preds = %27529
  br label %27537

27537:                                            ; preds = %27536, %27533
  %27538 = phi double [ %27535, %27533 ], [ -3.276800e+04, %27536 ]
  br label %27539

27539:                                            ; preds = %27537, %27527
  %27540 = phi double [ %27528, %27527 ], [ %27538, %27537 ]
  %27541 = fptosi double %27540 to i16
  %27542 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %27541, ptr %27542, align 2, !tbaa !15
  br label %27547

27543:                                            ; preds = %27502
  %27544 = load i32, ptr %782, align 4, !tbaa !9
  %27545 = trunc i32 %27544 to i16
  %27546 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %27545, ptr %27546, align 2, !tbaa !15
  br label %27547

27547:                                            ; preds = %27543, %27539
  br label %27548

27548:                                            ; preds = %27547, %27467
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %784) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %783) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %782) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %781) #3
  br label %27549

27549:                                            ; preds = %27548
  br label %27550

27550:                                            ; preds = %27549
  br label %30478

27551:                                            ; preds = %26855
  br label %27552

27552:                                            ; preds = %27551
  call void @llvm.lifetime.start.p0(i64 8, ptr %792) #3
  store double 5.000000e-01, ptr %792, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %793) #3
  %27553 = load ptr, ptr %10, align 8, !tbaa !5
  %27554 = load i16, ptr %27553, align 2, !tbaa !15
  store i16 %27554, ptr %793, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %794) #3
  store double 0.000000e+00, ptr %794, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %795) #3
  store double 0.000000e+00, ptr %795, align 8, !tbaa !11
  %27555 = load ptr, ptr %11, align 8, !tbaa !5
  %27556 = icmp ne ptr null, %27555
  br i1 %27556, label %27557, label %27583

27557:                                            ; preds = %27552
  %27558 = load ptr, ptr %12, align 8, !tbaa !5
  %27559 = icmp ne ptr null, %27558
  br i1 %27559, label %27560, label %27575

27560:                                            ; preds = %27557
  %27561 = load ptr, ptr %11, align 8, !tbaa !5
  %27562 = load i16, ptr %27561, align 2, !tbaa !15
  %27563 = sext i16 %27562 to i32
  %27564 = load i16, ptr %793, align 2, !tbaa !15
  %27565 = sext i16 %27564 to i32
  %27566 = icmp sle i32 %27563, %27565
  br i1 %27566, label %27567, label %27575

27567:                                            ; preds = %27560
  %27568 = load i16, ptr %793, align 2, !tbaa !15
  %27569 = sext i16 %27568 to i32
  %27570 = load ptr, ptr %12, align 8, !tbaa !5
  %27571 = load i16, ptr %27570, align 2, !tbaa !15
  %27572 = sext i16 %27571 to i32
  %27573 = icmp sle i32 %27569, %27572
  br i1 %27573, label %27574, label %27575

27574:                                            ; preds = %27567
  br label %27576

27575:                                            ; preds = %27567, %27560, %27557
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.24, i32 noundef 488, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

27576:                                            ; preds = %27574
  %27577 = load ptr, ptr %11, align 8, !tbaa !5
  %27578 = load i16, ptr %27577, align 2, !tbaa !15
  %27579 = sitofp i16 %27578 to double
  store double %27579, ptr %794, align 8, !tbaa !11
  %27580 = load ptr, ptr %12, align 8, !tbaa !5
  %27581 = load i16, ptr %27580, align 2, !tbaa !15
  %27582 = sitofp i16 %27581 to double
  store double %27582, ptr %795, align 8, !tbaa !11
  br label %27583

27583:                                            ; preds = %27576, %27552
  %27584 = load i32, ptr %8, align 4, !tbaa !9
  %27585 = icmp ule i32 6, %27584
  br i1 %27585, label %27586, label %27824

27586:                                            ; preds = %27583
  %27587 = load double, ptr %794, align 8, !tbaa !11
  %27588 = load double, ptr %795, align 8, !tbaa !11
  %27589 = fcmp olt double %27587, %27588
  br i1 %27589, label %27590, label %27824

27590:                                            ; preds = %27586
  %27591 = load i32, ptr %8, align 4, !tbaa !9
  %27592 = icmp ule i32 15, %27591
  br i1 %27592, label %27593, label %27647

27593:                                            ; preds = %27590
  call void @llvm.lifetime.start.p0(i64 8, ptr %796) #3
  %27594 = load double, ptr %794, align 8, !tbaa !11
  %27595 = fcmp olt double 0.000000e+00, %27594
  br i1 %27595, label %27596, label %27598

27596:                                            ; preds = %27593
  %27597 = load double, ptr %794, align 8, !tbaa !11
  br label %27599

27598:                                            ; preds = %27593
  br label %27599

27599:                                            ; preds = %27598, %27596
  %27600 = phi double [ %27597, %27596 ], [ 0.000000e+00, %27598 ]
  store double %27600, ptr %796, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %797) #3
  %27601 = load double, ptr %795, align 8, !tbaa !11
  %27602 = fcmp olt double 0.000000e+00, %27601
  br i1 %27602, label %27603, label %27605

27603:                                            ; preds = %27599
  %27604 = load double, ptr %795, align 8, !tbaa !11
  br label %27606

27605:                                            ; preds = %27599
  br label %27606

27606:                                            ; preds = %27605, %27603
  %27607 = phi double [ %27604, %27603 ], [ 0.000000e+00, %27605 ]
  store double %27607, ptr %797, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %798) #3
  %27608 = load double, ptr %796, align 8, !tbaa !11
  %27609 = load double, ptr %797, align 8, !tbaa !11
  %27610 = fcmp olt double %27608, %27609
  br i1 %27610, label %27611, label %27619

27611:                                            ; preds = %27606
  %27612 = load double, ptr %795, align 8, !tbaa !11
  %27613 = load double, ptr %794, align 8, !tbaa !11
  %27614 = fsub double %27612, %27613
  %27615 = load double, ptr %797, align 8, !tbaa !11
  %27616 = load double, ptr %796, align 8, !tbaa !11
  %27617 = fsub double %27615, %27616
  %27618 = fdiv double %27614, %27617
  br label %27620

27619:                                            ; preds = %27606
  br label %27620

27620:                                            ; preds = %27619, %27611
  %27621 = phi double [ %27618, %27611 ], [ 1.000000e+00, %27619 ]
  store double %27621, ptr %798, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %799) #3
  %27622 = load double, ptr %798, align 8, !tbaa !11
  %27623 = load i16, ptr %793, align 2, !tbaa !15
  %27624 = sext i16 %27623 to i32
  %27625 = icmp slt i32 0, %27624
  br i1 %27625, label %27626, label %27629

27626:                                            ; preds = %27620
  %27627 = load i16, ptr %793, align 2, !tbaa !15
  %27628 = sext i16 %27627 to i32
  br label %27630

27629:                                            ; preds = %27620
  br label %27630

27630:                                            ; preds = %27629, %27626
  %27631 = phi i32 [ %27628, %27626 ], [ 0, %27629 ]
  %27632 = sitofp i32 %27631 to double
  %27633 = fmul double %27622, %27632
  store double %27633, ptr %799, align 8, !tbaa !11
  %27634 = load double, ptr %799, align 8, !tbaa !11
  %27635 = fcmp ole double 0.000000e+00, %27634
  br i1 %27635, label %27636, label %27639

27636:                                            ; preds = %27630
  %27637 = load double, ptr %799, align 8, !tbaa !11
  %27638 = fadd double %27637, 5.000000e-01
  br label %27642

27639:                                            ; preds = %27630
  %27640 = load double, ptr %799, align 8, !tbaa !11
  %27641 = fsub double %27640, 5.000000e-01
  br label %27642

27642:                                            ; preds = %27639, %27636
  %27643 = phi double [ %27638, %27636 ], [ %27641, %27639 ]
  %27644 = fptosi double %27643 to i16
  store i16 %27644, ptr %793, align 2, !tbaa !15
  %27645 = load double, ptr %796, align 8, !tbaa !11
  store double %27645, ptr %794, align 8, !tbaa !11
  %27646 = load double, ptr %797, align 8, !tbaa !11
  store double %27646, ptr %795, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %799) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %798) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %797) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %796) #3
  br label %27703

27647:                                            ; preds = %27590
  %27648 = load i32, ptr %8, align 4, !tbaa !9
  %27649 = icmp ugt i32 6, %27648
  br i1 %27649, label %27678, label %27650

27650:                                            ; preds = %27647
  %27651 = load i32, ptr %8, align 4, !tbaa !9
  %27652 = icmp ugt i32 15, %27651
  br i1 %27652, label %27653, label %27664

27653:                                            ; preds = %27650
  %27654 = load i32, ptr %9, align 4, !tbaa !9
  %27655 = icmp ugt i32 15, %27654
  br i1 %27655, label %27656, label %27661

27656:                                            ; preds = %27653
  %27657 = load i32, ptr %9, align 4, !tbaa !9
  %27658 = load i32, ptr %8, align 4, !tbaa !9
  %27659 = icmp ugt i32 %27657, %27658
  %27660 = zext i1 %27659 to i32
  br label %27662

27661:                                            ; preds = %27653
  br label %27662

27662:                                            ; preds = %27661, %27656
  %27663 = phi i32 [ %27660, %27656 ], [ 0, %27661 ]
  br label %27675

27664:                                            ; preds = %27650
  %27665 = load i32, ptr %9, align 4, !tbaa !9
  %27666 = icmp ugt i32 15, %27665
  br i1 %27666, label %27667, label %27668

27667:                                            ; preds = %27664
  br label %27673

27668:                                            ; preds = %27664
  %27669 = load i32, ptr %9, align 4, !tbaa !9
  %27670 = load i32, ptr %8, align 4, !tbaa !9
  %27671 = icmp ugt i32 %27669, %27670
  %27672 = zext i1 %27671 to i32
  br label %27673

27673:                                            ; preds = %27668, %27667
  %27674 = phi i32 [ 0, %27667 ], [ %27672, %27668 ]
  br label %27675

27675:                                            ; preds = %27673, %27662
  %27676 = phi i32 [ %27663, %27662 ], [ %27674, %27673 ]
  %27677 = icmp ne i32 %27676, 0
  br label %27678

27678:                                            ; preds = %27675, %27647
  %27679 = phi i1 [ true, %27647 ], [ %27677, %27675 ]
  %27680 = zext i1 %27679 to i32
  %27681 = icmp eq i32 0, %27680
  br i1 %27681, label %27682, label %27702

27682:                                            ; preds = %27678
  %27683 = load double, ptr %794, align 8, !tbaa !11
  %27684 = fcmp ogt double 0.000000e+00, %27683
  br i1 %27684, label %27685, label %27702

27685:                                            ; preds = %27682
  %27686 = load double, ptr %795, align 8, !tbaa !11
  %27687 = fcmp olt double 0.000000e+00, %27686
  br i1 %27687, label %27688, label %27702

27688:                                            ; preds = %27685
  %27689 = load double, ptr %794, align 8, !tbaa !11
  %27690 = fneg double %27689
  %27691 = load double, ptr %795, align 8, !tbaa !11
  %27692 = fcmp olt double %27690, %27691
  br i1 %27692, label %27693, label %27695

27693:                                            ; preds = %27688
  %27694 = load double, ptr %795, align 8, !tbaa !11
  br label %27698

27695:                                            ; preds = %27688
  %27696 = load double, ptr %794, align 8, !tbaa !11
  %27697 = fneg double %27696
  br label %27698

27698:                                            ; preds = %27695, %27693
  %27699 = phi double [ %27694, %27693 ], [ %27697, %27695 ]
  store double %27699, ptr %795, align 8, !tbaa !11
  %27700 = load double, ptr %795, align 8, !tbaa !11
  %27701 = fneg double %27700
  store double %27701, ptr %794, align 8, !tbaa !11
  br label %27702

27702:                                            ; preds = %27698, %27685, %27682, %27678
  br label %27703

27703:                                            ; preds = %27702, %27642
  call void @llvm.lifetime.start.p0(i64 8, ptr %800) #3
  %27704 = load double, ptr %794, align 8, !tbaa !11
  %27705 = fcmp ole double 0.000000e+00, %27704
  %27706 = zext i1 %27705 to i64
  %27707 = select i1 %27705, double 0.000000e+00, double -3.276800e+04
  store double %27707, ptr %800, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %801) #3
  %27708 = load double, ptr %795, align 8, !tbaa !11
  %27709 = fcmp ole double 0.000000e+00, %27708
  %27710 = zext i1 %27709 to i64
  %27711 = select i1 %27709, double 3.276700e+04, double 0.000000e+00
  store double %27711, ptr %801, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %802) #3
  %27712 = load i16, ptr %793, align 2, !tbaa !15
  %27713 = sitofp i16 %27712 to double
  %27714 = load double, ptr %794, align 8, !tbaa !11
  %27715 = fsub double %27713, %27714
  %27716 = load double, ptr %801, align 8, !tbaa !11
  %27717 = load double, ptr %800, align 8, !tbaa !11
  %27718 = fsub double %27716, %27717
  %27719 = fmul double %27715, %27718
  %27720 = load double, ptr %795, align 8, !tbaa !11
  %27721 = load double, ptr %794, align 8, !tbaa !11
  %27722 = fsub double %27720, %27721
  %27723 = fdiv double %27719, %27722
  %27724 = load double, ptr %800, align 8, !tbaa !11
  %27725 = fadd double %27723, %27724
  store double %27725, ptr %802, align 8, !tbaa !11
  %27726 = load double, ptr %800, align 8, !tbaa !11
  %27727 = load double, ptr %802, align 8, !tbaa !11
  %27728 = fcmp ole double 0.000000e+00, %27727
  br i1 %27728, label %27729, label %27732

27729:                                            ; preds = %27703
  %27730 = load double, ptr %802, align 8, !tbaa !11
  %27731 = fadd double %27730, 5.000000e-01
  br label %27735

27732:                                            ; preds = %27703
  %27733 = load double, ptr %802, align 8, !tbaa !11
  %27734 = fsub double %27733, 5.000000e-01
  br label %27735

27735:                                            ; preds = %27732, %27729
  %27736 = phi double [ %27731, %27729 ], [ %27734, %27732 ]
  %27737 = fcmp olt double %27726, %27736
  br i1 %27737, label %27738, label %27792

27738:                                            ; preds = %27735
  %27739 = load double, ptr %802, align 8, !tbaa !11
  %27740 = fcmp ole double 0.000000e+00, %27739
  br i1 %27740, label %27741, label %27744

27741:                                            ; preds = %27738
  %27742 = load double, ptr %802, align 8, !tbaa !11
  %27743 = fadd double %27742, 5.000000e-01
  br label %27747

27744:                                            ; preds = %27738
  %27745 = load double, ptr %802, align 8, !tbaa !11
  %27746 = fsub double %27745, 5.000000e-01
  br label %27747

27747:                                            ; preds = %27744, %27741
  %27748 = phi double [ %27743, %27741 ], [ %27746, %27744 ]
  %27749 = load double, ptr %801, align 8, !tbaa !11
  %27750 = fcmp ole double %27748, %27749
  br i1 %27750, label %27751, label %27762

27751:                                            ; preds = %27747
  %27752 = load double, ptr %802, align 8, !tbaa !11
  %27753 = fcmp ole double 0.000000e+00, %27752
  br i1 %27753, label %27754, label %27757

27754:                                            ; preds = %27751
  %27755 = load double, ptr %802, align 8, !tbaa !11
  %27756 = fadd double %27755, 5.000000e-01
  br label %27760

27757:                                            ; preds = %27751
  %27758 = load double, ptr %802, align 8, !tbaa !11
  %27759 = fsub double %27758, 5.000000e-01
  br label %27760

27760:                                            ; preds = %27757, %27754
  %27761 = phi double [ %27756, %27754 ], [ %27759, %27757 ]
  br label %27790

27762:                                            ; preds = %27747
  %27763 = load double, ptr %802, align 8, !tbaa !11
  %27764 = fcmp ole double 0.000000e+00, %27763
  br i1 %27764, label %27765, label %27768

27765:                                            ; preds = %27762
  %27766 = load double, ptr %802, align 8, !tbaa !11
  %27767 = fadd double %27766, 5.000000e-01
  br label %27771

27768:                                            ; preds = %27762
  %27769 = load double, ptr %802, align 8, !tbaa !11
  %27770 = fsub double %27769, 5.000000e-01
  br label %27771

27771:                                            ; preds = %27768, %27765
  %27772 = phi double [ %27767, %27765 ], [ %27770, %27768 ]
  %27773 = load double, ptr %801, align 8, !tbaa !11
  %27774 = fcmp olt double %27772, %27773
  br i1 %27774, label %27775, label %27786

27775:                                            ; preds = %27771
  %27776 = load double, ptr %802, align 8, !tbaa !11
  %27777 = fcmp ole double 0.000000e+00, %27776
  br i1 %27777, label %27778, label %27781

27778:                                            ; preds = %27775
  %27779 = load double, ptr %802, align 8, !tbaa !11
  %27780 = fadd double %27779, 5.000000e-01
  br label %27784

27781:                                            ; preds = %27775
  %27782 = load double, ptr %802, align 8, !tbaa !11
  %27783 = fsub double %27782, 5.000000e-01
  br label %27784

27784:                                            ; preds = %27781, %27778
  %27785 = phi double [ %27780, %27778 ], [ %27783, %27781 ]
  br label %27788

27786:                                            ; preds = %27771
  %27787 = load double, ptr %801, align 8, !tbaa !11
  br label %27788

27788:                                            ; preds = %27786, %27784
  %27789 = phi double [ %27785, %27784 ], [ %27787, %27786 ]
  br label %27790

27790:                                            ; preds = %27788, %27760
  %27791 = phi double [ %27761, %27760 ], [ %27789, %27788 ]
  br label %27820

27792:                                            ; preds = %27735
  %27793 = load double, ptr %800, align 8, !tbaa !11
  %27794 = load double, ptr %802, align 8, !tbaa !11
  %27795 = fcmp ole double 0.000000e+00, %27794
  br i1 %27795, label %27796, label %27799

27796:                                            ; preds = %27792
  %27797 = load double, ptr %802, align 8, !tbaa !11
  %27798 = fadd double %27797, 5.000000e-01
  br label %27802

27799:                                            ; preds = %27792
  %27800 = load double, ptr %802, align 8, !tbaa !11
  %27801 = fsub double %27800, 5.000000e-01
  br label %27802

27802:                                            ; preds = %27799, %27796
  %27803 = phi double [ %27798, %27796 ], [ %27801, %27799 ]
  %27804 = fcmp olt double %27793, %27803
  br i1 %27804, label %27805, label %27816

27805:                                            ; preds = %27802
  %27806 = load double, ptr %802, align 8, !tbaa !11
  %27807 = fcmp ole double 0.000000e+00, %27806
  br i1 %27807, label %27808, label %27811

27808:                                            ; preds = %27805
  %27809 = load double, ptr %802, align 8, !tbaa !11
  %27810 = fadd double %27809, 5.000000e-01
  br label %27814

27811:                                            ; preds = %27805
  %27812 = load double, ptr %802, align 8, !tbaa !11
  %27813 = fsub double %27812, 5.000000e-01
  br label %27814

27814:                                            ; preds = %27811, %27808
  %27815 = phi double [ %27810, %27808 ], [ %27813, %27811 ]
  br label %27818

27816:                                            ; preds = %27802
  %27817 = load double, ptr %800, align 8, !tbaa !11
  br label %27818

27818:                                            ; preds = %27816, %27814
  %27819 = phi double [ %27815, %27814 ], [ %27817, %27816 ]
  br label %27820

27820:                                            ; preds = %27818, %27790
  %27821 = phi double [ %27791, %27790 ], [ %27819, %27818 ]
  %27822 = fptosi double %27821 to i16
  %27823 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %27822, ptr %27823, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %802) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %801) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %800) #3
  br label %27907

27824:                                            ; preds = %27586, %27583
  %27825 = load i32, ptr %8, align 4, !tbaa !9
  %27826 = icmp ugt i32 6, %27825
  br i1 %27826, label %27855, label %27827

27827:                                            ; preds = %27824
  %27828 = load i32, ptr %8, align 4, !tbaa !9
  %27829 = icmp ugt i32 15, %27828
  br i1 %27829, label %27830, label %27841

27830:                                            ; preds = %27827
  %27831 = load i32, ptr %9, align 4, !tbaa !9
  %27832 = icmp ugt i32 15, %27831
  br i1 %27832, label %27833, label %27838

27833:                                            ; preds = %27830
  %27834 = load i32, ptr %9, align 4, !tbaa !9
  %27835 = load i32, ptr %8, align 4, !tbaa !9
  %27836 = icmp ugt i32 %27834, %27835
  %27837 = zext i1 %27836 to i32
  br label %27839

27838:                                            ; preds = %27830
  br label %27839

27839:                                            ; preds = %27838, %27833
  %27840 = phi i32 [ %27837, %27833 ], [ 0, %27838 ]
  br label %27852

27841:                                            ; preds = %27827
  %27842 = load i32, ptr %9, align 4, !tbaa !9
  %27843 = icmp ugt i32 15, %27842
  br i1 %27843, label %27844, label %27845

27844:                                            ; preds = %27841
  br label %27850

27845:                                            ; preds = %27841
  %27846 = load i32, ptr %9, align 4, !tbaa !9
  %27847 = load i32, ptr %8, align 4, !tbaa !9
  %27848 = icmp ugt i32 %27846, %27847
  %27849 = zext i1 %27848 to i32
  br label %27850

27850:                                            ; preds = %27845, %27844
  %27851 = phi i32 [ 0, %27844 ], [ %27849, %27845 ]
  br label %27852

27852:                                            ; preds = %27850, %27839
  %27853 = phi i32 [ %27840, %27839 ], [ %27851, %27850 ]
  %27854 = icmp ne i32 %27853, 0
  br label %27855

27855:                                            ; preds = %27852, %27824
  %27856 = phi i1 [ true, %27824 ], [ %27854, %27852 ]
  %27857 = zext i1 %27856 to i32
  %27858 = icmp eq i32 0, %27857
  br i1 %27858, label %27859, label %27903

27859:                                            ; preds = %27855
  %27860 = load i16, ptr %793, align 2, !tbaa !15
  %27861 = sext i16 %27860 to i32
  %27862 = sitofp i32 %27861 to double
  %27863 = fcmp olt double -3.276800e+04, %27862
  br i1 %27863, label %27864, label %27887

27864:                                            ; preds = %27859
  %27865 = load i16, ptr %793, align 2, !tbaa !15
  %27866 = sext i16 %27865 to i32
  %27867 = sitofp i32 %27866 to double
  %27868 = fcmp ole double %27867, 3.276700e+04
  br i1 %27868, label %27869, label %27873

27869:                                            ; preds = %27864
  %27870 = load i16, ptr %793, align 2, !tbaa !15
  %27871 = sext i16 %27870 to i32
  %27872 = sitofp i32 %27871 to double
  br label %27885

27873:                                            ; preds = %27864
  %27874 = load i16, ptr %793, align 2, !tbaa !15
  %27875 = sext i16 %27874 to i32
  %27876 = sitofp i32 %27875 to double
  %27877 = fcmp olt double %27876, 3.276700e+04
  br i1 %27877, label %27878, label %27882

27878:                                            ; preds = %27873
  %27879 = load i16, ptr %793, align 2, !tbaa !15
  %27880 = sext i16 %27879 to i32
  %27881 = sitofp i32 %27880 to double
  br label %27883

27882:                                            ; preds = %27873
  br label %27883

27883:                                            ; preds = %27882, %27878
  %27884 = phi double [ %27881, %27878 ], [ 3.276700e+04, %27882 ]
  br label %27885

27885:                                            ; preds = %27883, %27869
  %27886 = phi double [ %27872, %27869 ], [ %27884, %27883 ]
  br label %27899

27887:                                            ; preds = %27859
  %27888 = load i16, ptr %793, align 2, !tbaa !15
  %27889 = sext i16 %27888 to i32
  %27890 = sitofp i32 %27889 to double
  %27891 = fcmp olt double -3.276800e+04, %27890
  br i1 %27891, label %27892, label %27896

27892:                                            ; preds = %27887
  %27893 = load i16, ptr %793, align 2, !tbaa !15
  %27894 = sext i16 %27893 to i32
  %27895 = sitofp i32 %27894 to double
  br label %27897

27896:                                            ; preds = %27887
  br label %27897

27897:                                            ; preds = %27896, %27892
  %27898 = phi double [ %27895, %27892 ], [ -3.276800e+04, %27896 ]
  br label %27899

27899:                                            ; preds = %27897, %27885
  %27900 = phi double [ %27886, %27885 ], [ %27898, %27897 ]
  %27901 = fptosi double %27900 to i16
  %27902 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %27901, ptr %27902, align 2, !tbaa !15
  br label %27906

27903:                                            ; preds = %27855
  %27904 = load i16, ptr %793, align 2, !tbaa !15
  %27905 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %27904, ptr %27905, align 2, !tbaa !15
  br label %27906

27906:                                            ; preds = %27903, %27899
  br label %27907

27907:                                            ; preds = %27906, %27820
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %795) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %794) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %793) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %792) #3
  br label %27908

27908:                                            ; preds = %27907
  br label %27909

27909:                                            ; preds = %27908
  br label %30478

27910:                                            ; preds = %26855
  br label %27911

27911:                                            ; preds = %27910
  call void @llvm.lifetime.start.p0(i64 8, ptr %803) #3
  store double 5.000000e-01, ptr %803, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %804) #3
  %27912 = load ptr, ptr %10, align 8, !tbaa !5
  %27913 = load i8, ptr %27912, align 1, !tbaa !17
  store i8 %27913, ptr %804, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %805) #3
  store double 0.000000e+00, ptr %805, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %806) #3
  store double 0.000000e+00, ptr %806, align 8, !tbaa !11
  %27914 = load ptr, ptr %11, align 8, !tbaa !5
  %27915 = icmp ne ptr null, %27914
  br i1 %27915, label %27916, label %27942

27916:                                            ; preds = %27911
  %27917 = load ptr, ptr %12, align 8, !tbaa !5
  %27918 = icmp ne ptr null, %27917
  br i1 %27918, label %27919, label %27934

27919:                                            ; preds = %27916
  %27920 = load ptr, ptr %11, align 8, !tbaa !5
  %27921 = load i8, ptr %27920, align 1, !tbaa !17
  %27922 = sext i8 %27921 to i32
  %27923 = load i8, ptr %804, align 1, !tbaa !17
  %27924 = sext i8 %27923 to i32
  %27925 = icmp sle i32 %27922, %27924
  br i1 %27925, label %27926, label %27934

27926:                                            ; preds = %27919
  %27927 = load i8, ptr %804, align 1, !tbaa !17
  %27928 = sext i8 %27927 to i32
  %27929 = load ptr, ptr %12, align 8, !tbaa !5
  %27930 = load i8, ptr %27929, align 1, !tbaa !17
  %27931 = sext i8 %27930 to i32
  %27932 = icmp sle i32 %27928, %27931
  br i1 %27932, label %27933, label %27934

27933:                                            ; preds = %27926
  br label %27935

27934:                                            ; preds = %27926, %27919, %27916
  call void @__assert_fail(ptr noundef @.str.45, ptr noundef @.str.24, i32 noundef 488, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

27935:                                            ; preds = %27933
  %27936 = load ptr, ptr %11, align 8, !tbaa !5
  %27937 = load i8, ptr %27936, align 1, !tbaa !17
  %27938 = sitofp i8 %27937 to double
  store double %27938, ptr %805, align 8, !tbaa !11
  %27939 = load ptr, ptr %12, align 8, !tbaa !5
  %27940 = load i8, ptr %27939, align 1, !tbaa !17
  %27941 = sitofp i8 %27940 to double
  store double %27941, ptr %806, align 8, !tbaa !11
  br label %27942

27942:                                            ; preds = %27935, %27911
  %27943 = load i32, ptr %8, align 4, !tbaa !9
  %27944 = icmp ule i32 6, %27943
  br i1 %27944, label %27945, label %28183

27945:                                            ; preds = %27942
  %27946 = load double, ptr %805, align 8, !tbaa !11
  %27947 = load double, ptr %806, align 8, !tbaa !11
  %27948 = fcmp olt double %27946, %27947
  br i1 %27948, label %27949, label %28183

27949:                                            ; preds = %27945
  %27950 = load i32, ptr %8, align 4, !tbaa !9
  %27951 = icmp ule i32 15, %27950
  br i1 %27951, label %27952, label %28006

27952:                                            ; preds = %27949
  call void @llvm.lifetime.start.p0(i64 8, ptr %807) #3
  %27953 = load double, ptr %805, align 8, !tbaa !11
  %27954 = fcmp olt double 0.000000e+00, %27953
  br i1 %27954, label %27955, label %27957

27955:                                            ; preds = %27952
  %27956 = load double, ptr %805, align 8, !tbaa !11
  br label %27958

27957:                                            ; preds = %27952
  br label %27958

27958:                                            ; preds = %27957, %27955
  %27959 = phi double [ %27956, %27955 ], [ 0.000000e+00, %27957 ]
  store double %27959, ptr %807, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %808) #3
  %27960 = load double, ptr %806, align 8, !tbaa !11
  %27961 = fcmp olt double 0.000000e+00, %27960
  br i1 %27961, label %27962, label %27964

27962:                                            ; preds = %27958
  %27963 = load double, ptr %806, align 8, !tbaa !11
  br label %27965

27964:                                            ; preds = %27958
  br label %27965

27965:                                            ; preds = %27964, %27962
  %27966 = phi double [ %27963, %27962 ], [ 0.000000e+00, %27964 ]
  store double %27966, ptr %808, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %809) #3
  %27967 = load double, ptr %807, align 8, !tbaa !11
  %27968 = load double, ptr %808, align 8, !tbaa !11
  %27969 = fcmp olt double %27967, %27968
  br i1 %27969, label %27970, label %27978

27970:                                            ; preds = %27965
  %27971 = load double, ptr %806, align 8, !tbaa !11
  %27972 = load double, ptr %805, align 8, !tbaa !11
  %27973 = fsub double %27971, %27972
  %27974 = load double, ptr %808, align 8, !tbaa !11
  %27975 = load double, ptr %807, align 8, !tbaa !11
  %27976 = fsub double %27974, %27975
  %27977 = fdiv double %27973, %27976
  br label %27979

27978:                                            ; preds = %27965
  br label %27979

27979:                                            ; preds = %27978, %27970
  %27980 = phi double [ %27977, %27970 ], [ 1.000000e+00, %27978 ]
  store double %27980, ptr %809, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %810) #3
  %27981 = load double, ptr %809, align 8, !tbaa !11
  %27982 = load i8, ptr %804, align 1, !tbaa !17
  %27983 = sext i8 %27982 to i32
  %27984 = icmp slt i32 0, %27983
  br i1 %27984, label %27985, label %27988

27985:                                            ; preds = %27979
  %27986 = load i8, ptr %804, align 1, !tbaa !17
  %27987 = sext i8 %27986 to i32
  br label %27989

27988:                                            ; preds = %27979
  br label %27989

27989:                                            ; preds = %27988, %27985
  %27990 = phi i32 [ %27987, %27985 ], [ 0, %27988 ]
  %27991 = sitofp i32 %27990 to double
  %27992 = fmul double %27981, %27991
  store double %27992, ptr %810, align 8, !tbaa !11
  %27993 = load double, ptr %810, align 8, !tbaa !11
  %27994 = fcmp ole double 0.000000e+00, %27993
  br i1 %27994, label %27995, label %27998

27995:                                            ; preds = %27989
  %27996 = load double, ptr %810, align 8, !tbaa !11
  %27997 = fadd double %27996, 5.000000e-01
  br label %28001

27998:                                            ; preds = %27989
  %27999 = load double, ptr %810, align 8, !tbaa !11
  %28000 = fsub double %27999, 5.000000e-01
  br label %28001

28001:                                            ; preds = %27998, %27995
  %28002 = phi double [ %27997, %27995 ], [ %28000, %27998 ]
  %28003 = fptosi double %28002 to i8
  store i8 %28003, ptr %804, align 1, !tbaa !17
  %28004 = load double, ptr %807, align 8, !tbaa !11
  store double %28004, ptr %805, align 8, !tbaa !11
  %28005 = load double, ptr %808, align 8, !tbaa !11
  store double %28005, ptr %806, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %810) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %809) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %808) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %807) #3
  br label %28062

28006:                                            ; preds = %27949
  %28007 = load i32, ptr %8, align 4, !tbaa !9
  %28008 = icmp ugt i32 6, %28007
  br i1 %28008, label %28037, label %28009

28009:                                            ; preds = %28006
  %28010 = load i32, ptr %8, align 4, !tbaa !9
  %28011 = icmp ugt i32 15, %28010
  br i1 %28011, label %28012, label %28023

28012:                                            ; preds = %28009
  %28013 = load i32, ptr %9, align 4, !tbaa !9
  %28014 = icmp ugt i32 15, %28013
  br i1 %28014, label %28015, label %28020

28015:                                            ; preds = %28012
  %28016 = load i32, ptr %9, align 4, !tbaa !9
  %28017 = load i32, ptr %8, align 4, !tbaa !9
  %28018 = icmp ugt i32 %28016, %28017
  %28019 = zext i1 %28018 to i32
  br label %28021

28020:                                            ; preds = %28012
  br label %28021

28021:                                            ; preds = %28020, %28015
  %28022 = phi i32 [ %28019, %28015 ], [ 0, %28020 ]
  br label %28034

28023:                                            ; preds = %28009
  %28024 = load i32, ptr %9, align 4, !tbaa !9
  %28025 = icmp ugt i32 15, %28024
  br i1 %28025, label %28026, label %28027

28026:                                            ; preds = %28023
  br label %28032

28027:                                            ; preds = %28023
  %28028 = load i32, ptr %9, align 4, !tbaa !9
  %28029 = load i32, ptr %8, align 4, !tbaa !9
  %28030 = icmp ugt i32 %28028, %28029
  %28031 = zext i1 %28030 to i32
  br label %28032

28032:                                            ; preds = %28027, %28026
  %28033 = phi i32 [ 0, %28026 ], [ %28031, %28027 ]
  br label %28034

28034:                                            ; preds = %28032, %28021
  %28035 = phi i32 [ %28022, %28021 ], [ %28033, %28032 ]
  %28036 = icmp ne i32 %28035, 0
  br label %28037

28037:                                            ; preds = %28034, %28006
  %28038 = phi i1 [ true, %28006 ], [ %28036, %28034 ]
  %28039 = zext i1 %28038 to i32
  %28040 = icmp eq i32 0, %28039
  br i1 %28040, label %28041, label %28061

28041:                                            ; preds = %28037
  %28042 = load double, ptr %805, align 8, !tbaa !11
  %28043 = fcmp ogt double 0.000000e+00, %28042
  br i1 %28043, label %28044, label %28061

28044:                                            ; preds = %28041
  %28045 = load double, ptr %806, align 8, !tbaa !11
  %28046 = fcmp olt double 0.000000e+00, %28045
  br i1 %28046, label %28047, label %28061

28047:                                            ; preds = %28044
  %28048 = load double, ptr %805, align 8, !tbaa !11
  %28049 = fneg double %28048
  %28050 = load double, ptr %806, align 8, !tbaa !11
  %28051 = fcmp olt double %28049, %28050
  br i1 %28051, label %28052, label %28054

28052:                                            ; preds = %28047
  %28053 = load double, ptr %806, align 8, !tbaa !11
  br label %28057

28054:                                            ; preds = %28047
  %28055 = load double, ptr %805, align 8, !tbaa !11
  %28056 = fneg double %28055
  br label %28057

28057:                                            ; preds = %28054, %28052
  %28058 = phi double [ %28053, %28052 ], [ %28056, %28054 ]
  store double %28058, ptr %806, align 8, !tbaa !11
  %28059 = load double, ptr %806, align 8, !tbaa !11
  %28060 = fneg double %28059
  store double %28060, ptr %805, align 8, !tbaa !11
  br label %28061

28061:                                            ; preds = %28057, %28044, %28041, %28037
  br label %28062

28062:                                            ; preds = %28061, %28001
  call void @llvm.lifetime.start.p0(i64 8, ptr %811) #3
  %28063 = load double, ptr %805, align 8, !tbaa !11
  %28064 = fcmp ole double 0.000000e+00, %28063
  %28065 = zext i1 %28064 to i64
  %28066 = select i1 %28064, double 0.000000e+00, double -3.276800e+04
  store double %28066, ptr %811, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %812) #3
  %28067 = load double, ptr %806, align 8, !tbaa !11
  %28068 = fcmp ole double 0.000000e+00, %28067
  %28069 = zext i1 %28068 to i64
  %28070 = select i1 %28068, double 3.276700e+04, double 0.000000e+00
  store double %28070, ptr %812, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %813) #3
  %28071 = load i8, ptr %804, align 1, !tbaa !17
  %28072 = sitofp i8 %28071 to double
  %28073 = load double, ptr %805, align 8, !tbaa !11
  %28074 = fsub double %28072, %28073
  %28075 = load double, ptr %812, align 8, !tbaa !11
  %28076 = load double, ptr %811, align 8, !tbaa !11
  %28077 = fsub double %28075, %28076
  %28078 = fmul double %28074, %28077
  %28079 = load double, ptr %806, align 8, !tbaa !11
  %28080 = load double, ptr %805, align 8, !tbaa !11
  %28081 = fsub double %28079, %28080
  %28082 = fdiv double %28078, %28081
  %28083 = load double, ptr %811, align 8, !tbaa !11
  %28084 = fadd double %28082, %28083
  store double %28084, ptr %813, align 8, !tbaa !11
  %28085 = load double, ptr %811, align 8, !tbaa !11
  %28086 = load double, ptr %813, align 8, !tbaa !11
  %28087 = fcmp ole double 0.000000e+00, %28086
  br i1 %28087, label %28088, label %28091

28088:                                            ; preds = %28062
  %28089 = load double, ptr %813, align 8, !tbaa !11
  %28090 = fadd double %28089, 5.000000e-01
  br label %28094

28091:                                            ; preds = %28062
  %28092 = load double, ptr %813, align 8, !tbaa !11
  %28093 = fsub double %28092, 5.000000e-01
  br label %28094

28094:                                            ; preds = %28091, %28088
  %28095 = phi double [ %28090, %28088 ], [ %28093, %28091 ]
  %28096 = fcmp olt double %28085, %28095
  br i1 %28096, label %28097, label %28151

28097:                                            ; preds = %28094
  %28098 = load double, ptr %813, align 8, !tbaa !11
  %28099 = fcmp ole double 0.000000e+00, %28098
  br i1 %28099, label %28100, label %28103

28100:                                            ; preds = %28097
  %28101 = load double, ptr %813, align 8, !tbaa !11
  %28102 = fadd double %28101, 5.000000e-01
  br label %28106

28103:                                            ; preds = %28097
  %28104 = load double, ptr %813, align 8, !tbaa !11
  %28105 = fsub double %28104, 5.000000e-01
  br label %28106

28106:                                            ; preds = %28103, %28100
  %28107 = phi double [ %28102, %28100 ], [ %28105, %28103 ]
  %28108 = load double, ptr %812, align 8, !tbaa !11
  %28109 = fcmp ole double %28107, %28108
  br i1 %28109, label %28110, label %28121

28110:                                            ; preds = %28106
  %28111 = load double, ptr %813, align 8, !tbaa !11
  %28112 = fcmp ole double 0.000000e+00, %28111
  br i1 %28112, label %28113, label %28116

28113:                                            ; preds = %28110
  %28114 = load double, ptr %813, align 8, !tbaa !11
  %28115 = fadd double %28114, 5.000000e-01
  br label %28119

28116:                                            ; preds = %28110
  %28117 = load double, ptr %813, align 8, !tbaa !11
  %28118 = fsub double %28117, 5.000000e-01
  br label %28119

28119:                                            ; preds = %28116, %28113
  %28120 = phi double [ %28115, %28113 ], [ %28118, %28116 ]
  br label %28149

28121:                                            ; preds = %28106
  %28122 = load double, ptr %813, align 8, !tbaa !11
  %28123 = fcmp ole double 0.000000e+00, %28122
  br i1 %28123, label %28124, label %28127

28124:                                            ; preds = %28121
  %28125 = load double, ptr %813, align 8, !tbaa !11
  %28126 = fadd double %28125, 5.000000e-01
  br label %28130

28127:                                            ; preds = %28121
  %28128 = load double, ptr %813, align 8, !tbaa !11
  %28129 = fsub double %28128, 5.000000e-01
  br label %28130

28130:                                            ; preds = %28127, %28124
  %28131 = phi double [ %28126, %28124 ], [ %28129, %28127 ]
  %28132 = load double, ptr %812, align 8, !tbaa !11
  %28133 = fcmp olt double %28131, %28132
  br i1 %28133, label %28134, label %28145

28134:                                            ; preds = %28130
  %28135 = load double, ptr %813, align 8, !tbaa !11
  %28136 = fcmp ole double 0.000000e+00, %28135
  br i1 %28136, label %28137, label %28140

28137:                                            ; preds = %28134
  %28138 = load double, ptr %813, align 8, !tbaa !11
  %28139 = fadd double %28138, 5.000000e-01
  br label %28143

28140:                                            ; preds = %28134
  %28141 = load double, ptr %813, align 8, !tbaa !11
  %28142 = fsub double %28141, 5.000000e-01
  br label %28143

28143:                                            ; preds = %28140, %28137
  %28144 = phi double [ %28139, %28137 ], [ %28142, %28140 ]
  br label %28147

28145:                                            ; preds = %28130
  %28146 = load double, ptr %812, align 8, !tbaa !11
  br label %28147

28147:                                            ; preds = %28145, %28143
  %28148 = phi double [ %28144, %28143 ], [ %28146, %28145 ]
  br label %28149

28149:                                            ; preds = %28147, %28119
  %28150 = phi double [ %28120, %28119 ], [ %28148, %28147 ]
  br label %28179

28151:                                            ; preds = %28094
  %28152 = load double, ptr %811, align 8, !tbaa !11
  %28153 = load double, ptr %813, align 8, !tbaa !11
  %28154 = fcmp ole double 0.000000e+00, %28153
  br i1 %28154, label %28155, label %28158

28155:                                            ; preds = %28151
  %28156 = load double, ptr %813, align 8, !tbaa !11
  %28157 = fadd double %28156, 5.000000e-01
  br label %28161

28158:                                            ; preds = %28151
  %28159 = load double, ptr %813, align 8, !tbaa !11
  %28160 = fsub double %28159, 5.000000e-01
  br label %28161

28161:                                            ; preds = %28158, %28155
  %28162 = phi double [ %28157, %28155 ], [ %28160, %28158 ]
  %28163 = fcmp olt double %28152, %28162
  br i1 %28163, label %28164, label %28175

28164:                                            ; preds = %28161
  %28165 = load double, ptr %813, align 8, !tbaa !11
  %28166 = fcmp ole double 0.000000e+00, %28165
  br i1 %28166, label %28167, label %28170

28167:                                            ; preds = %28164
  %28168 = load double, ptr %813, align 8, !tbaa !11
  %28169 = fadd double %28168, 5.000000e-01
  br label %28173

28170:                                            ; preds = %28164
  %28171 = load double, ptr %813, align 8, !tbaa !11
  %28172 = fsub double %28171, 5.000000e-01
  br label %28173

28173:                                            ; preds = %28170, %28167
  %28174 = phi double [ %28169, %28167 ], [ %28172, %28170 ]
  br label %28177

28175:                                            ; preds = %28161
  %28176 = load double, ptr %811, align 8, !tbaa !11
  br label %28177

28177:                                            ; preds = %28175, %28173
  %28178 = phi double [ %28174, %28173 ], [ %28176, %28175 ]
  br label %28179

28179:                                            ; preds = %28177, %28149
  %28180 = phi double [ %28150, %28149 ], [ %28178, %28177 ]
  %28181 = fptosi double %28180 to i16
  %28182 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %28181, ptr %28182, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %813) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %812) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %811) #3
  br label %28267

28183:                                            ; preds = %27945, %27942
  %28184 = load i32, ptr %8, align 4, !tbaa !9
  %28185 = icmp ugt i32 6, %28184
  br i1 %28185, label %28214, label %28186

28186:                                            ; preds = %28183
  %28187 = load i32, ptr %8, align 4, !tbaa !9
  %28188 = icmp ugt i32 15, %28187
  br i1 %28188, label %28189, label %28200

28189:                                            ; preds = %28186
  %28190 = load i32, ptr %9, align 4, !tbaa !9
  %28191 = icmp ugt i32 15, %28190
  br i1 %28191, label %28192, label %28197

28192:                                            ; preds = %28189
  %28193 = load i32, ptr %9, align 4, !tbaa !9
  %28194 = load i32, ptr %8, align 4, !tbaa !9
  %28195 = icmp ugt i32 %28193, %28194
  %28196 = zext i1 %28195 to i32
  br label %28198

28197:                                            ; preds = %28189
  br label %28198

28198:                                            ; preds = %28197, %28192
  %28199 = phi i32 [ %28196, %28192 ], [ 0, %28197 ]
  br label %28211

28200:                                            ; preds = %28186
  %28201 = load i32, ptr %9, align 4, !tbaa !9
  %28202 = icmp ugt i32 15, %28201
  br i1 %28202, label %28203, label %28204

28203:                                            ; preds = %28200
  br label %28209

28204:                                            ; preds = %28200
  %28205 = load i32, ptr %9, align 4, !tbaa !9
  %28206 = load i32, ptr %8, align 4, !tbaa !9
  %28207 = icmp ugt i32 %28205, %28206
  %28208 = zext i1 %28207 to i32
  br label %28209

28209:                                            ; preds = %28204, %28203
  %28210 = phi i32 [ 0, %28203 ], [ %28208, %28204 ]
  br label %28211

28211:                                            ; preds = %28209, %28198
  %28212 = phi i32 [ %28199, %28198 ], [ %28210, %28209 ]
  %28213 = icmp ne i32 %28212, 0
  br label %28214

28214:                                            ; preds = %28211, %28183
  %28215 = phi i1 [ true, %28183 ], [ %28213, %28211 ]
  %28216 = zext i1 %28215 to i32
  %28217 = icmp eq i32 0, %28216
  br i1 %28217, label %28218, label %28262

28218:                                            ; preds = %28214
  %28219 = load i8, ptr %804, align 1, !tbaa !17
  %28220 = sext i8 %28219 to i32
  %28221 = sitofp i32 %28220 to double
  %28222 = fcmp olt double -3.276800e+04, %28221
  br i1 %28222, label %28223, label %28246

28223:                                            ; preds = %28218
  %28224 = load i8, ptr %804, align 1, !tbaa !17
  %28225 = sext i8 %28224 to i32
  %28226 = sitofp i32 %28225 to double
  %28227 = fcmp ole double %28226, 3.276700e+04
  br i1 %28227, label %28228, label %28232

28228:                                            ; preds = %28223
  %28229 = load i8, ptr %804, align 1, !tbaa !17
  %28230 = sext i8 %28229 to i32
  %28231 = sitofp i32 %28230 to double
  br label %28244

28232:                                            ; preds = %28223
  %28233 = load i8, ptr %804, align 1, !tbaa !17
  %28234 = sext i8 %28233 to i32
  %28235 = sitofp i32 %28234 to double
  %28236 = fcmp olt double %28235, 3.276700e+04
  br i1 %28236, label %28237, label %28241

28237:                                            ; preds = %28232
  %28238 = load i8, ptr %804, align 1, !tbaa !17
  %28239 = sext i8 %28238 to i32
  %28240 = sitofp i32 %28239 to double
  br label %28242

28241:                                            ; preds = %28232
  br label %28242

28242:                                            ; preds = %28241, %28237
  %28243 = phi double [ %28240, %28237 ], [ 3.276700e+04, %28241 ]
  br label %28244

28244:                                            ; preds = %28242, %28228
  %28245 = phi double [ %28231, %28228 ], [ %28243, %28242 ]
  br label %28258

28246:                                            ; preds = %28218
  %28247 = load i8, ptr %804, align 1, !tbaa !17
  %28248 = sext i8 %28247 to i32
  %28249 = sitofp i32 %28248 to double
  %28250 = fcmp olt double -3.276800e+04, %28249
  br i1 %28250, label %28251, label %28255

28251:                                            ; preds = %28246
  %28252 = load i8, ptr %804, align 1, !tbaa !17
  %28253 = sext i8 %28252 to i32
  %28254 = sitofp i32 %28253 to double
  br label %28256

28255:                                            ; preds = %28246
  br label %28256

28256:                                            ; preds = %28255, %28251
  %28257 = phi double [ %28254, %28251 ], [ -3.276800e+04, %28255 ]
  br label %28258

28258:                                            ; preds = %28256, %28244
  %28259 = phi double [ %28245, %28244 ], [ %28257, %28256 ]
  %28260 = fptosi double %28259 to i16
  %28261 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %28260, ptr %28261, align 2, !tbaa !15
  br label %28266

28262:                                            ; preds = %28214
  %28263 = load i8, ptr %804, align 1, !tbaa !17
  %28264 = sext i8 %28263 to i16
  %28265 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %28264, ptr %28265, align 2, !tbaa !15
  br label %28266

28266:                                            ; preds = %28262, %28258
  br label %28267

28267:                                            ; preds = %28266, %28179
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %806) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %805) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %804) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %803) #3
  br label %28268

28268:                                            ; preds = %28267
  br label %28269

28269:                                            ; preds = %28268
  br label %30478

28270:                                            ; preds = %26855
  br label %28271

28271:                                            ; preds = %28270
  call void @llvm.lifetime.start.p0(i64 8, ptr %814) #3
  store double 5.000000e-01, ptr %814, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %815) #3
  %28272 = load ptr, ptr %10, align 8, !tbaa !5
  %28273 = load i64, ptr %28272, align 8, !tbaa !13
  store i64 %28273, ptr %815, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %816) #3
  store double 0.000000e+00, ptr %816, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %817) #3
  store double 0.000000e+00, ptr %817, align 8, !tbaa !11
  %28274 = load ptr, ptr %11, align 8, !tbaa !5
  %28275 = icmp ne ptr null, %28274
  br i1 %28275, label %28276, label %28298

28276:                                            ; preds = %28271
  %28277 = load ptr, ptr %12, align 8, !tbaa !5
  %28278 = icmp ne ptr null, %28277
  br i1 %28278, label %28279, label %28290

28279:                                            ; preds = %28276
  %28280 = load ptr, ptr %11, align 8, !tbaa !5
  %28281 = load i64, ptr %28280, align 8, !tbaa !13
  %28282 = load i64, ptr %815, align 8, !tbaa !13
  %28283 = icmp ule i64 %28281, %28282
  br i1 %28283, label %28284, label %28290

28284:                                            ; preds = %28279
  %28285 = load i64, ptr %815, align 8, !tbaa !13
  %28286 = load ptr, ptr %12, align 8, !tbaa !5
  %28287 = load i64, ptr %28286, align 8, !tbaa !13
  %28288 = icmp ule i64 %28285, %28287
  br i1 %28288, label %28289, label %28290

28289:                                            ; preds = %28284
  br label %28291

28290:                                            ; preds = %28284, %28279, %28276
  call void @__assert_fail(ptr noundef @.str.46, ptr noundef @.str.24, i32 noundef 488, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

28291:                                            ; preds = %28289
  %28292 = load ptr, ptr %11, align 8, !tbaa !5
  %28293 = load i64, ptr %28292, align 8, !tbaa !13
  %28294 = uitofp i64 %28293 to double
  store double %28294, ptr %816, align 8, !tbaa !11
  %28295 = load ptr, ptr %12, align 8, !tbaa !5
  %28296 = load i64, ptr %28295, align 8, !tbaa !13
  %28297 = uitofp i64 %28296 to double
  store double %28297, ptr %817, align 8, !tbaa !11
  br label %28298

28298:                                            ; preds = %28291, %28271
  %28299 = load i32, ptr %8, align 4, !tbaa !9
  %28300 = icmp ule i32 6, %28299
  br i1 %28300, label %28301, label %28537

28301:                                            ; preds = %28298
  %28302 = load double, ptr %816, align 8, !tbaa !11
  %28303 = load double, ptr %817, align 8, !tbaa !11
  %28304 = fcmp olt double %28302, %28303
  br i1 %28304, label %28305, label %28537

28305:                                            ; preds = %28301
  %28306 = load i32, ptr %8, align 4, !tbaa !9
  %28307 = icmp ule i32 15, %28306
  br i1 %28307, label %28308, label %28360

28308:                                            ; preds = %28305
  call void @llvm.lifetime.start.p0(i64 8, ptr %818) #3
  %28309 = load double, ptr %816, align 8, !tbaa !11
  %28310 = fcmp olt double 0.000000e+00, %28309
  br i1 %28310, label %28311, label %28313

28311:                                            ; preds = %28308
  %28312 = load double, ptr %816, align 8, !tbaa !11
  br label %28314

28313:                                            ; preds = %28308
  br label %28314

28314:                                            ; preds = %28313, %28311
  %28315 = phi double [ %28312, %28311 ], [ 0.000000e+00, %28313 ]
  store double %28315, ptr %818, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %819) #3
  %28316 = load double, ptr %817, align 8, !tbaa !11
  %28317 = fcmp olt double 0.000000e+00, %28316
  br i1 %28317, label %28318, label %28320

28318:                                            ; preds = %28314
  %28319 = load double, ptr %817, align 8, !tbaa !11
  br label %28321

28320:                                            ; preds = %28314
  br label %28321

28321:                                            ; preds = %28320, %28318
  %28322 = phi double [ %28319, %28318 ], [ 0.000000e+00, %28320 ]
  store double %28322, ptr %819, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %820) #3
  %28323 = load double, ptr %818, align 8, !tbaa !11
  %28324 = load double, ptr %819, align 8, !tbaa !11
  %28325 = fcmp olt double %28323, %28324
  br i1 %28325, label %28326, label %28334

28326:                                            ; preds = %28321
  %28327 = load double, ptr %817, align 8, !tbaa !11
  %28328 = load double, ptr %816, align 8, !tbaa !11
  %28329 = fsub double %28327, %28328
  %28330 = load double, ptr %819, align 8, !tbaa !11
  %28331 = load double, ptr %818, align 8, !tbaa !11
  %28332 = fsub double %28330, %28331
  %28333 = fdiv double %28329, %28332
  br label %28335

28334:                                            ; preds = %28321
  br label %28335

28335:                                            ; preds = %28334, %28326
  %28336 = phi double [ %28333, %28326 ], [ 1.000000e+00, %28334 ]
  store double %28336, ptr %820, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %821) #3
  %28337 = load double, ptr %820, align 8, !tbaa !11
  %28338 = load i64, ptr %815, align 8, !tbaa !13
  %28339 = icmp ult i64 0, %28338
  br i1 %28339, label %28340, label %28342

28340:                                            ; preds = %28335
  %28341 = load i64, ptr %815, align 8, !tbaa !13
  br label %28343

28342:                                            ; preds = %28335
  br label %28343

28343:                                            ; preds = %28342, %28340
  %28344 = phi i64 [ %28341, %28340 ], [ 0, %28342 ]
  %28345 = uitofp i64 %28344 to double
  %28346 = fmul double %28337, %28345
  store double %28346, ptr %821, align 8, !tbaa !11
  %28347 = load double, ptr %821, align 8, !tbaa !11
  %28348 = fcmp ole double 0.000000e+00, %28347
  br i1 %28348, label %28349, label %28352

28349:                                            ; preds = %28343
  %28350 = load double, ptr %821, align 8, !tbaa !11
  %28351 = fadd double %28350, 5.000000e-01
  br label %28355

28352:                                            ; preds = %28343
  %28353 = load double, ptr %821, align 8, !tbaa !11
  %28354 = fsub double %28353, 5.000000e-01
  br label %28355

28355:                                            ; preds = %28352, %28349
  %28356 = phi double [ %28351, %28349 ], [ %28354, %28352 ]
  %28357 = fptoui double %28356 to i64
  store i64 %28357, ptr %815, align 8, !tbaa !13
  %28358 = load double, ptr %818, align 8, !tbaa !11
  store double %28358, ptr %816, align 8, !tbaa !11
  %28359 = load double, ptr %819, align 8, !tbaa !11
  store double %28359, ptr %817, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %821) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %820) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %819) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %818) #3
  br label %28416

28360:                                            ; preds = %28305
  %28361 = load i32, ptr %8, align 4, !tbaa !9
  %28362 = icmp ugt i32 6, %28361
  br i1 %28362, label %28391, label %28363

28363:                                            ; preds = %28360
  %28364 = load i32, ptr %8, align 4, !tbaa !9
  %28365 = icmp ugt i32 15, %28364
  br i1 %28365, label %28366, label %28377

28366:                                            ; preds = %28363
  %28367 = load i32, ptr %9, align 4, !tbaa !9
  %28368 = icmp ugt i32 15, %28367
  br i1 %28368, label %28369, label %28374

28369:                                            ; preds = %28366
  %28370 = load i32, ptr %9, align 4, !tbaa !9
  %28371 = load i32, ptr %8, align 4, !tbaa !9
  %28372 = icmp ugt i32 %28370, %28371
  %28373 = zext i1 %28372 to i32
  br label %28375

28374:                                            ; preds = %28366
  br label %28375

28375:                                            ; preds = %28374, %28369
  %28376 = phi i32 [ %28373, %28369 ], [ 0, %28374 ]
  br label %28388

28377:                                            ; preds = %28363
  %28378 = load i32, ptr %9, align 4, !tbaa !9
  %28379 = icmp ugt i32 15, %28378
  br i1 %28379, label %28380, label %28381

28380:                                            ; preds = %28377
  br label %28386

28381:                                            ; preds = %28377
  %28382 = load i32, ptr %9, align 4, !tbaa !9
  %28383 = load i32, ptr %8, align 4, !tbaa !9
  %28384 = icmp ugt i32 %28382, %28383
  %28385 = zext i1 %28384 to i32
  br label %28386

28386:                                            ; preds = %28381, %28380
  %28387 = phi i32 [ 0, %28380 ], [ %28385, %28381 ]
  br label %28388

28388:                                            ; preds = %28386, %28375
  %28389 = phi i32 [ %28376, %28375 ], [ %28387, %28386 ]
  %28390 = icmp ne i32 %28389, 0
  br label %28391

28391:                                            ; preds = %28388, %28360
  %28392 = phi i1 [ true, %28360 ], [ %28390, %28388 ]
  %28393 = zext i1 %28392 to i32
  %28394 = icmp eq i32 0, %28393
  br i1 %28394, label %28395, label %28415

28395:                                            ; preds = %28391
  %28396 = load double, ptr %816, align 8, !tbaa !11
  %28397 = fcmp ogt double 0.000000e+00, %28396
  br i1 %28397, label %28398, label %28415

28398:                                            ; preds = %28395
  %28399 = load double, ptr %817, align 8, !tbaa !11
  %28400 = fcmp olt double 0.000000e+00, %28399
  br i1 %28400, label %28401, label %28415

28401:                                            ; preds = %28398
  %28402 = load double, ptr %816, align 8, !tbaa !11
  %28403 = fneg double %28402
  %28404 = load double, ptr %817, align 8, !tbaa !11
  %28405 = fcmp olt double %28403, %28404
  br i1 %28405, label %28406, label %28408

28406:                                            ; preds = %28401
  %28407 = load double, ptr %817, align 8, !tbaa !11
  br label %28411

28408:                                            ; preds = %28401
  %28409 = load double, ptr %816, align 8, !tbaa !11
  %28410 = fneg double %28409
  br label %28411

28411:                                            ; preds = %28408, %28406
  %28412 = phi double [ %28407, %28406 ], [ %28410, %28408 ]
  store double %28412, ptr %817, align 8, !tbaa !11
  %28413 = load double, ptr %817, align 8, !tbaa !11
  %28414 = fneg double %28413
  store double %28414, ptr %816, align 8, !tbaa !11
  br label %28415

28415:                                            ; preds = %28411, %28398, %28395, %28391
  br label %28416

28416:                                            ; preds = %28415, %28355
  call void @llvm.lifetime.start.p0(i64 8, ptr %822) #3
  %28417 = load double, ptr %816, align 8, !tbaa !11
  %28418 = fcmp ole double 0.000000e+00, %28417
  %28419 = zext i1 %28418 to i64
  %28420 = select i1 %28418, double 0.000000e+00, double -3.276800e+04
  store double %28420, ptr %822, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %823) #3
  %28421 = load double, ptr %817, align 8, !tbaa !11
  %28422 = fcmp ole double 0.000000e+00, %28421
  %28423 = zext i1 %28422 to i64
  %28424 = select i1 %28422, double 3.276700e+04, double 0.000000e+00
  store double %28424, ptr %823, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %824) #3
  %28425 = load i64, ptr %815, align 8, !tbaa !13
  %28426 = uitofp i64 %28425 to double
  %28427 = load double, ptr %816, align 8, !tbaa !11
  %28428 = fsub double %28426, %28427
  %28429 = load double, ptr %823, align 8, !tbaa !11
  %28430 = load double, ptr %822, align 8, !tbaa !11
  %28431 = fsub double %28429, %28430
  %28432 = fmul double %28428, %28431
  %28433 = load double, ptr %817, align 8, !tbaa !11
  %28434 = load double, ptr %816, align 8, !tbaa !11
  %28435 = fsub double %28433, %28434
  %28436 = fdiv double %28432, %28435
  %28437 = load double, ptr %822, align 8, !tbaa !11
  %28438 = fadd double %28436, %28437
  store double %28438, ptr %824, align 8, !tbaa !11
  %28439 = load double, ptr %822, align 8, !tbaa !11
  %28440 = load double, ptr %824, align 8, !tbaa !11
  %28441 = fcmp ole double 0.000000e+00, %28440
  br i1 %28441, label %28442, label %28445

28442:                                            ; preds = %28416
  %28443 = load double, ptr %824, align 8, !tbaa !11
  %28444 = fadd double %28443, 5.000000e-01
  br label %28448

28445:                                            ; preds = %28416
  %28446 = load double, ptr %824, align 8, !tbaa !11
  %28447 = fsub double %28446, 5.000000e-01
  br label %28448

28448:                                            ; preds = %28445, %28442
  %28449 = phi double [ %28444, %28442 ], [ %28447, %28445 ]
  %28450 = fcmp olt double %28439, %28449
  br i1 %28450, label %28451, label %28505

28451:                                            ; preds = %28448
  %28452 = load double, ptr %824, align 8, !tbaa !11
  %28453 = fcmp ole double 0.000000e+00, %28452
  br i1 %28453, label %28454, label %28457

28454:                                            ; preds = %28451
  %28455 = load double, ptr %824, align 8, !tbaa !11
  %28456 = fadd double %28455, 5.000000e-01
  br label %28460

28457:                                            ; preds = %28451
  %28458 = load double, ptr %824, align 8, !tbaa !11
  %28459 = fsub double %28458, 5.000000e-01
  br label %28460

28460:                                            ; preds = %28457, %28454
  %28461 = phi double [ %28456, %28454 ], [ %28459, %28457 ]
  %28462 = load double, ptr %823, align 8, !tbaa !11
  %28463 = fcmp ole double %28461, %28462
  br i1 %28463, label %28464, label %28475

28464:                                            ; preds = %28460
  %28465 = load double, ptr %824, align 8, !tbaa !11
  %28466 = fcmp ole double 0.000000e+00, %28465
  br i1 %28466, label %28467, label %28470

28467:                                            ; preds = %28464
  %28468 = load double, ptr %824, align 8, !tbaa !11
  %28469 = fadd double %28468, 5.000000e-01
  br label %28473

28470:                                            ; preds = %28464
  %28471 = load double, ptr %824, align 8, !tbaa !11
  %28472 = fsub double %28471, 5.000000e-01
  br label %28473

28473:                                            ; preds = %28470, %28467
  %28474 = phi double [ %28469, %28467 ], [ %28472, %28470 ]
  br label %28503

28475:                                            ; preds = %28460
  %28476 = load double, ptr %824, align 8, !tbaa !11
  %28477 = fcmp ole double 0.000000e+00, %28476
  br i1 %28477, label %28478, label %28481

28478:                                            ; preds = %28475
  %28479 = load double, ptr %824, align 8, !tbaa !11
  %28480 = fadd double %28479, 5.000000e-01
  br label %28484

28481:                                            ; preds = %28475
  %28482 = load double, ptr %824, align 8, !tbaa !11
  %28483 = fsub double %28482, 5.000000e-01
  br label %28484

28484:                                            ; preds = %28481, %28478
  %28485 = phi double [ %28480, %28478 ], [ %28483, %28481 ]
  %28486 = load double, ptr %823, align 8, !tbaa !11
  %28487 = fcmp olt double %28485, %28486
  br i1 %28487, label %28488, label %28499

28488:                                            ; preds = %28484
  %28489 = load double, ptr %824, align 8, !tbaa !11
  %28490 = fcmp ole double 0.000000e+00, %28489
  br i1 %28490, label %28491, label %28494

28491:                                            ; preds = %28488
  %28492 = load double, ptr %824, align 8, !tbaa !11
  %28493 = fadd double %28492, 5.000000e-01
  br label %28497

28494:                                            ; preds = %28488
  %28495 = load double, ptr %824, align 8, !tbaa !11
  %28496 = fsub double %28495, 5.000000e-01
  br label %28497

28497:                                            ; preds = %28494, %28491
  %28498 = phi double [ %28493, %28491 ], [ %28496, %28494 ]
  br label %28501

28499:                                            ; preds = %28484
  %28500 = load double, ptr %823, align 8, !tbaa !11
  br label %28501

28501:                                            ; preds = %28499, %28497
  %28502 = phi double [ %28498, %28497 ], [ %28500, %28499 ]
  br label %28503

28503:                                            ; preds = %28501, %28473
  %28504 = phi double [ %28474, %28473 ], [ %28502, %28501 ]
  br label %28533

28505:                                            ; preds = %28448
  %28506 = load double, ptr %822, align 8, !tbaa !11
  %28507 = load double, ptr %824, align 8, !tbaa !11
  %28508 = fcmp ole double 0.000000e+00, %28507
  br i1 %28508, label %28509, label %28512

28509:                                            ; preds = %28505
  %28510 = load double, ptr %824, align 8, !tbaa !11
  %28511 = fadd double %28510, 5.000000e-01
  br label %28515

28512:                                            ; preds = %28505
  %28513 = load double, ptr %824, align 8, !tbaa !11
  %28514 = fsub double %28513, 5.000000e-01
  br label %28515

28515:                                            ; preds = %28512, %28509
  %28516 = phi double [ %28511, %28509 ], [ %28514, %28512 ]
  %28517 = fcmp olt double %28506, %28516
  br i1 %28517, label %28518, label %28529

28518:                                            ; preds = %28515
  %28519 = load double, ptr %824, align 8, !tbaa !11
  %28520 = fcmp ole double 0.000000e+00, %28519
  br i1 %28520, label %28521, label %28524

28521:                                            ; preds = %28518
  %28522 = load double, ptr %824, align 8, !tbaa !11
  %28523 = fadd double %28522, 5.000000e-01
  br label %28527

28524:                                            ; preds = %28518
  %28525 = load double, ptr %824, align 8, !tbaa !11
  %28526 = fsub double %28525, 5.000000e-01
  br label %28527

28527:                                            ; preds = %28524, %28521
  %28528 = phi double [ %28523, %28521 ], [ %28526, %28524 ]
  br label %28531

28529:                                            ; preds = %28515
  %28530 = load double, ptr %822, align 8, !tbaa !11
  br label %28531

28531:                                            ; preds = %28529, %28527
  %28532 = phi double [ %28528, %28527 ], [ %28530, %28529 ]
  br label %28533

28533:                                            ; preds = %28531, %28503
  %28534 = phi double [ %28504, %28503 ], [ %28532, %28531 ]
  %28535 = fptosi double %28534 to i16
  %28536 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %28535, ptr %28536, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %824) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %823) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %822) #3
  br label %28614

28537:                                            ; preds = %28301, %28298
  %28538 = load i32, ptr %8, align 4, !tbaa !9
  %28539 = icmp ugt i32 6, %28538
  br i1 %28539, label %28568, label %28540

28540:                                            ; preds = %28537
  %28541 = load i32, ptr %8, align 4, !tbaa !9
  %28542 = icmp ugt i32 15, %28541
  br i1 %28542, label %28543, label %28554

28543:                                            ; preds = %28540
  %28544 = load i32, ptr %9, align 4, !tbaa !9
  %28545 = icmp ugt i32 15, %28544
  br i1 %28545, label %28546, label %28551

28546:                                            ; preds = %28543
  %28547 = load i32, ptr %9, align 4, !tbaa !9
  %28548 = load i32, ptr %8, align 4, !tbaa !9
  %28549 = icmp ugt i32 %28547, %28548
  %28550 = zext i1 %28549 to i32
  br label %28552

28551:                                            ; preds = %28543
  br label %28552

28552:                                            ; preds = %28551, %28546
  %28553 = phi i32 [ %28550, %28546 ], [ 0, %28551 ]
  br label %28565

28554:                                            ; preds = %28540
  %28555 = load i32, ptr %9, align 4, !tbaa !9
  %28556 = icmp ugt i32 15, %28555
  br i1 %28556, label %28557, label %28558

28557:                                            ; preds = %28554
  br label %28563

28558:                                            ; preds = %28554
  %28559 = load i32, ptr %9, align 4, !tbaa !9
  %28560 = load i32, ptr %8, align 4, !tbaa !9
  %28561 = icmp ugt i32 %28559, %28560
  %28562 = zext i1 %28561 to i32
  br label %28563

28563:                                            ; preds = %28558, %28557
  %28564 = phi i32 [ 0, %28557 ], [ %28562, %28558 ]
  br label %28565

28565:                                            ; preds = %28563, %28552
  %28566 = phi i32 [ %28553, %28552 ], [ %28564, %28563 ]
  %28567 = icmp ne i32 %28566, 0
  br label %28568

28568:                                            ; preds = %28565, %28537
  %28569 = phi i1 [ true, %28537 ], [ %28567, %28565 ]
  %28570 = zext i1 %28569 to i32
  %28571 = icmp eq i32 0, %28570
  br i1 %28571, label %28572, label %28609

28572:                                            ; preds = %28568
  %28573 = load i64, ptr %815, align 8, !tbaa !13
  %28574 = uitofp i64 %28573 to double
  %28575 = fcmp olt double -3.276800e+04, %28574
  br i1 %28575, label %28576, label %28595

28576:                                            ; preds = %28572
  %28577 = load i64, ptr %815, align 8, !tbaa !13
  %28578 = uitofp i64 %28577 to double
  %28579 = fcmp ole double %28578, 3.276700e+04
  br i1 %28579, label %28580, label %28583

28580:                                            ; preds = %28576
  %28581 = load i64, ptr %815, align 8, !tbaa !13
  %28582 = uitofp i64 %28581 to double
  br label %28593

28583:                                            ; preds = %28576
  %28584 = load i64, ptr %815, align 8, !tbaa !13
  %28585 = uitofp i64 %28584 to double
  %28586 = fcmp olt double %28585, 3.276700e+04
  br i1 %28586, label %28587, label %28590

28587:                                            ; preds = %28583
  %28588 = load i64, ptr %815, align 8, !tbaa !13
  %28589 = uitofp i64 %28588 to double
  br label %28591

28590:                                            ; preds = %28583
  br label %28591

28591:                                            ; preds = %28590, %28587
  %28592 = phi double [ %28589, %28587 ], [ 3.276700e+04, %28590 ]
  br label %28593

28593:                                            ; preds = %28591, %28580
  %28594 = phi double [ %28582, %28580 ], [ %28592, %28591 ]
  br label %28605

28595:                                            ; preds = %28572
  %28596 = load i64, ptr %815, align 8, !tbaa !13
  %28597 = uitofp i64 %28596 to double
  %28598 = fcmp olt double -3.276800e+04, %28597
  br i1 %28598, label %28599, label %28602

28599:                                            ; preds = %28595
  %28600 = load i64, ptr %815, align 8, !tbaa !13
  %28601 = uitofp i64 %28600 to double
  br label %28603

28602:                                            ; preds = %28595
  br label %28603

28603:                                            ; preds = %28602, %28599
  %28604 = phi double [ %28601, %28599 ], [ -3.276800e+04, %28602 ]
  br label %28605

28605:                                            ; preds = %28603, %28593
  %28606 = phi double [ %28594, %28593 ], [ %28604, %28603 ]
  %28607 = fptosi double %28606 to i16
  %28608 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %28607, ptr %28608, align 2, !tbaa !15
  br label %28613

28609:                                            ; preds = %28568
  %28610 = load i64, ptr %815, align 8, !tbaa !13
  %28611 = trunc i64 %28610 to i16
  %28612 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %28611, ptr %28612, align 2, !tbaa !15
  br label %28613

28613:                                            ; preds = %28609, %28605
  br label %28614

28614:                                            ; preds = %28613, %28533
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %817) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %816) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %815) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %814) #3
  br label %28615

28615:                                            ; preds = %28614
  br label %28616

28616:                                            ; preds = %28615
  br label %30478

28617:                                            ; preds = %26855
  br label %28618

28618:                                            ; preds = %28617
  call void @llvm.lifetime.start.p0(i64 8, ptr %825) #3
  store double 5.000000e-01, ptr %825, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %826) #3
  %28619 = load ptr, ptr %10, align 8, !tbaa !5
  %28620 = load i32, ptr %28619, align 4, !tbaa !9
  store i32 %28620, ptr %826, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %827) #3
  store double 0.000000e+00, ptr %827, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %828) #3
  store double 0.000000e+00, ptr %828, align 8, !tbaa !11
  %28621 = load ptr, ptr %11, align 8, !tbaa !5
  %28622 = icmp ne ptr null, %28621
  br i1 %28622, label %28623, label %28645

28623:                                            ; preds = %28618
  %28624 = load ptr, ptr %12, align 8, !tbaa !5
  %28625 = icmp ne ptr null, %28624
  br i1 %28625, label %28626, label %28637

28626:                                            ; preds = %28623
  %28627 = load ptr, ptr %11, align 8, !tbaa !5
  %28628 = load i32, ptr %28627, align 4, !tbaa !9
  %28629 = load i32, ptr %826, align 4, !tbaa !9
  %28630 = icmp ule i32 %28628, %28629
  br i1 %28630, label %28631, label %28637

28631:                                            ; preds = %28626
  %28632 = load i32, ptr %826, align 4, !tbaa !9
  %28633 = load ptr, ptr %12, align 8, !tbaa !5
  %28634 = load i32, ptr %28633, align 4, !tbaa !9
  %28635 = icmp ule i32 %28632, %28634
  br i1 %28635, label %28636, label %28637

28636:                                            ; preds = %28631
  br label %28638

28637:                                            ; preds = %28631, %28626, %28623
  call void @__assert_fail(ptr noundef @.str.47, ptr noundef @.str.24, i32 noundef 488, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

28638:                                            ; preds = %28636
  %28639 = load ptr, ptr %11, align 8, !tbaa !5
  %28640 = load i32, ptr %28639, align 4, !tbaa !9
  %28641 = uitofp i32 %28640 to double
  store double %28641, ptr %827, align 8, !tbaa !11
  %28642 = load ptr, ptr %12, align 8, !tbaa !5
  %28643 = load i32, ptr %28642, align 4, !tbaa !9
  %28644 = uitofp i32 %28643 to double
  store double %28644, ptr %828, align 8, !tbaa !11
  br label %28645

28645:                                            ; preds = %28638, %28618
  %28646 = load i32, ptr %8, align 4, !tbaa !9
  %28647 = icmp ule i32 6, %28646
  br i1 %28647, label %28648, label %28884

28648:                                            ; preds = %28645
  %28649 = load double, ptr %827, align 8, !tbaa !11
  %28650 = load double, ptr %828, align 8, !tbaa !11
  %28651 = fcmp olt double %28649, %28650
  br i1 %28651, label %28652, label %28884

28652:                                            ; preds = %28648
  %28653 = load i32, ptr %8, align 4, !tbaa !9
  %28654 = icmp ule i32 15, %28653
  br i1 %28654, label %28655, label %28707

28655:                                            ; preds = %28652
  call void @llvm.lifetime.start.p0(i64 8, ptr %829) #3
  %28656 = load double, ptr %827, align 8, !tbaa !11
  %28657 = fcmp olt double 0.000000e+00, %28656
  br i1 %28657, label %28658, label %28660

28658:                                            ; preds = %28655
  %28659 = load double, ptr %827, align 8, !tbaa !11
  br label %28661

28660:                                            ; preds = %28655
  br label %28661

28661:                                            ; preds = %28660, %28658
  %28662 = phi double [ %28659, %28658 ], [ 0.000000e+00, %28660 ]
  store double %28662, ptr %829, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %830) #3
  %28663 = load double, ptr %828, align 8, !tbaa !11
  %28664 = fcmp olt double 0.000000e+00, %28663
  br i1 %28664, label %28665, label %28667

28665:                                            ; preds = %28661
  %28666 = load double, ptr %828, align 8, !tbaa !11
  br label %28668

28667:                                            ; preds = %28661
  br label %28668

28668:                                            ; preds = %28667, %28665
  %28669 = phi double [ %28666, %28665 ], [ 0.000000e+00, %28667 ]
  store double %28669, ptr %830, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %831) #3
  %28670 = load double, ptr %829, align 8, !tbaa !11
  %28671 = load double, ptr %830, align 8, !tbaa !11
  %28672 = fcmp olt double %28670, %28671
  br i1 %28672, label %28673, label %28681

28673:                                            ; preds = %28668
  %28674 = load double, ptr %828, align 8, !tbaa !11
  %28675 = load double, ptr %827, align 8, !tbaa !11
  %28676 = fsub double %28674, %28675
  %28677 = load double, ptr %830, align 8, !tbaa !11
  %28678 = load double, ptr %829, align 8, !tbaa !11
  %28679 = fsub double %28677, %28678
  %28680 = fdiv double %28676, %28679
  br label %28682

28681:                                            ; preds = %28668
  br label %28682

28682:                                            ; preds = %28681, %28673
  %28683 = phi double [ %28680, %28673 ], [ 1.000000e+00, %28681 ]
  store double %28683, ptr %831, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %832) #3
  %28684 = load double, ptr %831, align 8, !tbaa !11
  %28685 = load i32, ptr %826, align 4, !tbaa !9
  %28686 = icmp ult i32 0, %28685
  br i1 %28686, label %28687, label %28689

28687:                                            ; preds = %28682
  %28688 = load i32, ptr %826, align 4, !tbaa !9
  br label %28690

28689:                                            ; preds = %28682
  br label %28690

28690:                                            ; preds = %28689, %28687
  %28691 = phi i32 [ %28688, %28687 ], [ 0, %28689 ]
  %28692 = uitofp i32 %28691 to double
  %28693 = fmul double %28684, %28692
  store double %28693, ptr %832, align 8, !tbaa !11
  %28694 = load double, ptr %832, align 8, !tbaa !11
  %28695 = fcmp ole double 0.000000e+00, %28694
  br i1 %28695, label %28696, label %28699

28696:                                            ; preds = %28690
  %28697 = load double, ptr %832, align 8, !tbaa !11
  %28698 = fadd double %28697, 5.000000e-01
  br label %28702

28699:                                            ; preds = %28690
  %28700 = load double, ptr %832, align 8, !tbaa !11
  %28701 = fsub double %28700, 5.000000e-01
  br label %28702

28702:                                            ; preds = %28699, %28696
  %28703 = phi double [ %28698, %28696 ], [ %28701, %28699 ]
  %28704 = fptoui double %28703 to i32
  store i32 %28704, ptr %826, align 4, !tbaa !9
  %28705 = load double, ptr %829, align 8, !tbaa !11
  store double %28705, ptr %827, align 8, !tbaa !11
  %28706 = load double, ptr %830, align 8, !tbaa !11
  store double %28706, ptr %828, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %832) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %831) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %830) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %829) #3
  br label %28763

28707:                                            ; preds = %28652
  %28708 = load i32, ptr %8, align 4, !tbaa !9
  %28709 = icmp ugt i32 6, %28708
  br i1 %28709, label %28738, label %28710

28710:                                            ; preds = %28707
  %28711 = load i32, ptr %8, align 4, !tbaa !9
  %28712 = icmp ugt i32 15, %28711
  br i1 %28712, label %28713, label %28724

28713:                                            ; preds = %28710
  %28714 = load i32, ptr %9, align 4, !tbaa !9
  %28715 = icmp ugt i32 15, %28714
  br i1 %28715, label %28716, label %28721

28716:                                            ; preds = %28713
  %28717 = load i32, ptr %9, align 4, !tbaa !9
  %28718 = load i32, ptr %8, align 4, !tbaa !9
  %28719 = icmp ugt i32 %28717, %28718
  %28720 = zext i1 %28719 to i32
  br label %28722

28721:                                            ; preds = %28713
  br label %28722

28722:                                            ; preds = %28721, %28716
  %28723 = phi i32 [ %28720, %28716 ], [ 0, %28721 ]
  br label %28735

28724:                                            ; preds = %28710
  %28725 = load i32, ptr %9, align 4, !tbaa !9
  %28726 = icmp ugt i32 15, %28725
  br i1 %28726, label %28727, label %28728

28727:                                            ; preds = %28724
  br label %28733

28728:                                            ; preds = %28724
  %28729 = load i32, ptr %9, align 4, !tbaa !9
  %28730 = load i32, ptr %8, align 4, !tbaa !9
  %28731 = icmp ugt i32 %28729, %28730
  %28732 = zext i1 %28731 to i32
  br label %28733

28733:                                            ; preds = %28728, %28727
  %28734 = phi i32 [ 0, %28727 ], [ %28732, %28728 ]
  br label %28735

28735:                                            ; preds = %28733, %28722
  %28736 = phi i32 [ %28723, %28722 ], [ %28734, %28733 ]
  %28737 = icmp ne i32 %28736, 0
  br label %28738

28738:                                            ; preds = %28735, %28707
  %28739 = phi i1 [ true, %28707 ], [ %28737, %28735 ]
  %28740 = zext i1 %28739 to i32
  %28741 = icmp eq i32 0, %28740
  br i1 %28741, label %28742, label %28762

28742:                                            ; preds = %28738
  %28743 = load double, ptr %827, align 8, !tbaa !11
  %28744 = fcmp ogt double 0.000000e+00, %28743
  br i1 %28744, label %28745, label %28762

28745:                                            ; preds = %28742
  %28746 = load double, ptr %828, align 8, !tbaa !11
  %28747 = fcmp olt double 0.000000e+00, %28746
  br i1 %28747, label %28748, label %28762

28748:                                            ; preds = %28745
  %28749 = load double, ptr %827, align 8, !tbaa !11
  %28750 = fneg double %28749
  %28751 = load double, ptr %828, align 8, !tbaa !11
  %28752 = fcmp olt double %28750, %28751
  br i1 %28752, label %28753, label %28755

28753:                                            ; preds = %28748
  %28754 = load double, ptr %828, align 8, !tbaa !11
  br label %28758

28755:                                            ; preds = %28748
  %28756 = load double, ptr %827, align 8, !tbaa !11
  %28757 = fneg double %28756
  br label %28758

28758:                                            ; preds = %28755, %28753
  %28759 = phi double [ %28754, %28753 ], [ %28757, %28755 ]
  store double %28759, ptr %828, align 8, !tbaa !11
  %28760 = load double, ptr %828, align 8, !tbaa !11
  %28761 = fneg double %28760
  store double %28761, ptr %827, align 8, !tbaa !11
  br label %28762

28762:                                            ; preds = %28758, %28745, %28742, %28738
  br label %28763

28763:                                            ; preds = %28762, %28702
  call void @llvm.lifetime.start.p0(i64 8, ptr %833) #3
  %28764 = load double, ptr %827, align 8, !tbaa !11
  %28765 = fcmp ole double 0.000000e+00, %28764
  %28766 = zext i1 %28765 to i64
  %28767 = select i1 %28765, double 0.000000e+00, double -3.276800e+04
  store double %28767, ptr %833, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %834) #3
  %28768 = load double, ptr %828, align 8, !tbaa !11
  %28769 = fcmp ole double 0.000000e+00, %28768
  %28770 = zext i1 %28769 to i64
  %28771 = select i1 %28769, double 3.276700e+04, double 0.000000e+00
  store double %28771, ptr %834, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %835) #3
  %28772 = load i32, ptr %826, align 4, !tbaa !9
  %28773 = uitofp i32 %28772 to double
  %28774 = load double, ptr %827, align 8, !tbaa !11
  %28775 = fsub double %28773, %28774
  %28776 = load double, ptr %834, align 8, !tbaa !11
  %28777 = load double, ptr %833, align 8, !tbaa !11
  %28778 = fsub double %28776, %28777
  %28779 = fmul double %28775, %28778
  %28780 = load double, ptr %828, align 8, !tbaa !11
  %28781 = load double, ptr %827, align 8, !tbaa !11
  %28782 = fsub double %28780, %28781
  %28783 = fdiv double %28779, %28782
  %28784 = load double, ptr %833, align 8, !tbaa !11
  %28785 = fadd double %28783, %28784
  store double %28785, ptr %835, align 8, !tbaa !11
  %28786 = load double, ptr %833, align 8, !tbaa !11
  %28787 = load double, ptr %835, align 8, !tbaa !11
  %28788 = fcmp ole double 0.000000e+00, %28787
  br i1 %28788, label %28789, label %28792

28789:                                            ; preds = %28763
  %28790 = load double, ptr %835, align 8, !tbaa !11
  %28791 = fadd double %28790, 5.000000e-01
  br label %28795

28792:                                            ; preds = %28763
  %28793 = load double, ptr %835, align 8, !tbaa !11
  %28794 = fsub double %28793, 5.000000e-01
  br label %28795

28795:                                            ; preds = %28792, %28789
  %28796 = phi double [ %28791, %28789 ], [ %28794, %28792 ]
  %28797 = fcmp olt double %28786, %28796
  br i1 %28797, label %28798, label %28852

28798:                                            ; preds = %28795
  %28799 = load double, ptr %835, align 8, !tbaa !11
  %28800 = fcmp ole double 0.000000e+00, %28799
  br i1 %28800, label %28801, label %28804

28801:                                            ; preds = %28798
  %28802 = load double, ptr %835, align 8, !tbaa !11
  %28803 = fadd double %28802, 5.000000e-01
  br label %28807

28804:                                            ; preds = %28798
  %28805 = load double, ptr %835, align 8, !tbaa !11
  %28806 = fsub double %28805, 5.000000e-01
  br label %28807

28807:                                            ; preds = %28804, %28801
  %28808 = phi double [ %28803, %28801 ], [ %28806, %28804 ]
  %28809 = load double, ptr %834, align 8, !tbaa !11
  %28810 = fcmp ole double %28808, %28809
  br i1 %28810, label %28811, label %28822

28811:                                            ; preds = %28807
  %28812 = load double, ptr %835, align 8, !tbaa !11
  %28813 = fcmp ole double 0.000000e+00, %28812
  br i1 %28813, label %28814, label %28817

28814:                                            ; preds = %28811
  %28815 = load double, ptr %835, align 8, !tbaa !11
  %28816 = fadd double %28815, 5.000000e-01
  br label %28820

28817:                                            ; preds = %28811
  %28818 = load double, ptr %835, align 8, !tbaa !11
  %28819 = fsub double %28818, 5.000000e-01
  br label %28820

28820:                                            ; preds = %28817, %28814
  %28821 = phi double [ %28816, %28814 ], [ %28819, %28817 ]
  br label %28850

28822:                                            ; preds = %28807
  %28823 = load double, ptr %835, align 8, !tbaa !11
  %28824 = fcmp ole double 0.000000e+00, %28823
  br i1 %28824, label %28825, label %28828

28825:                                            ; preds = %28822
  %28826 = load double, ptr %835, align 8, !tbaa !11
  %28827 = fadd double %28826, 5.000000e-01
  br label %28831

28828:                                            ; preds = %28822
  %28829 = load double, ptr %835, align 8, !tbaa !11
  %28830 = fsub double %28829, 5.000000e-01
  br label %28831

28831:                                            ; preds = %28828, %28825
  %28832 = phi double [ %28827, %28825 ], [ %28830, %28828 ]
  %28833 = load double, ptr %834, align 8, !tbaa !11
  %28834 = fcmp olt double %28832, %28833
  br i1 %28834, label %28835, label %28846

28835:                                            ; preds = %28831
  %28836 = load double, ptr %835, align 8, !tbaa !11
  %28837 = fcmp ole double 0.000000e+00, %28836
  br i1 %28837, label %28838, label %28841

28838:                                            ; preds = %28835
  %28839 = load double, ptr %835, align 8, !tbaa !11
  %28840 = fadd double %28839, 5.000000e-01
  br label %28844

28841:                                            ; preds = %28835
  %28842 = load double, ptr %835, align 8, !tbaa !11
  %28843 = fsub double %28842, 5.000000e-01
  br label %28844

28844:                                            ; preds = %28841, %28838
  %28845 = phi double [ %28840, %28838 ], [ %28843, %28841 ]
  br label %28848

28846:                                            ; preds = %28831
  %28847 = load double, ptr %834, align 8, !tbaa !11
  br label %28848

28848:                                            ; preds = %28846, %28844
  %28849 = phi double [ %28845, %28844 ], [ %28847, %28846 ]
  br label %28850

28850:                                            ; preds = %28848, %28820
  %28851 = phi double [ %28821, %28820 ], [ %28849, %28848 ]
  br label %28880

28852:                                            ; preds = %28795
  %28853 = load double, ptr %833, align 8, !tbaa !11
  %28854 = load double, ptr %835, align 8, !tbaa !11
  %28855 = fcmp ole double 0.000000e+00, %28854
  br i1 %28855, label %28856, label %28859

28856:                                            ; preds = %28852
  %28857 = load double, ptr %835, align 8, !tbaa !11
  %28858 = fadd double %28857, 5.000000e-01
  br label %28862

28859:                                            ; preds = %28852
  %28860 = load double, ptr %835, align 8, !tbaa !11
  %28861 = fsub double %28860, 5.000000e-01
  br label %28862

28862:                                            ; preds = %28859, %28856
  %28863 = phi double [ %28858, %28856 ], [ %28861, %28859 ]
  %28864 = fcmp olt double %28853, %28863
  br i1 %28864, label %28865, label %28876

28865:                                            ; preds = %28862
  %28866 = load double, ptr %835, align 8, !tbaa !11
  %28867 = fcmp ole double 0.000000e+00, %28866
  br i1 %28867, label %28868, label %28871

28868:                                            ; preds = %28865
  %28869 = load double, ptr %835, align 8, !tbaa !11
  %28870 = fadd double %28869, 5.000000e-01
  br label %28874

28871:                                            ; preds = %28865
  %28872 = load double, ptr %835, align 8, !tbaa !11
  %28873 = fsub double %28872, 5.000000e-01
  br label %28874

28874:                                            ; preds = %28871, %28868
  %28875 = phi double [ %28870, %28868 ], [ %28873, %28871 ]
  br label %28878

28876:                                            ; preds = %28862
  %28877 = load double, ptr %833, align 8, !tbaa !11
  br label %28878

28878:                                            ; preds = %28876, %28874
  %28879 = phi double [ %28875, %28874 ], [ %28877, %28876 ]
  br label %28880

28880:                                            ; preds = %28878, %28850
  %28881 = phi double [ %28851, %28850 ], [ %28879, %28878 ]
  %28882 = fptosi double %28881 to i16
  %28883 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %28882, ptr %28883, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %835) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %834) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %833) #3
  br label %28961

28884:                                            ; preds = %28648, %28645
  %28885 = load i32, ptr %8, align 4, !tbaa !9
  %28886 = icmp ugt i32 6, %28885
  br i1 %28886, label %28915, label %28887

28887:                                            ; preds = %28884
  %28888 = load i32, ptr %8, align 4, !tbaa !9
  %28889 = icmp ugt i32 15, %28888
  br i1 %28889, label %28890, label %28901

28890:                                            ; preds = %28887
  %28891 = load i32, ptr %9, align 4, !tbaa !9
  %28892 = icmp ugt i32 15, %28891
  br i1 %28892, label %28893, label %28898

28893:                                            ; preds = %28890
  %28894 = load i32, ptr %9, align 4, !tbaa !9
  %28895 = load i32, ptr %8, align 4, !tbaa !9
  %28896 = icmp ugt i32 %28894, %28895
  %28897 = zext i1 %28896 to i32
  br label %28899

28898:                                            ; preds = %28890
  br label %28899

28899:                                            ; preds = %28898, %28893
  %28900 = phi i32 [ %28897, %28893 ], [ 0, %28898 ]
  br label %28912

28901:                                            ; preds = %28887
  %28902 = load i32, ptr %9, align 4, !tbaa !9
  %28903 = icmp ugt i32 15, %28902
  br i1 %28903, label %28904, label %28905

28904:                                            ; preds = %28901
  br label %28910

28905:                                            ; preds = %28901
  %28906 = load i32, ptr %9, align 4, !tbaa !9
  %28907 = load i32, ptr %8, align 4, !tbaa !9
  %28908 = icmp ugt i32 %28906, %28907
  %28909 = zext i1 %28908 to i32
  br label %28910

28910:                                            ; preds = %28905, %28904
  %28911 = phi i32 [ 0, %28904 ], [ %28909, %28905 ]
  br label %28912

28912:                                            ; preds = %28910, %28899
  %28913 = phi i32 [ %28900, %28899 ], [ %28911, %28910 ]
  %28914 = icmp ne i32 %28913, 0
  br label %28915

28915:                                            ; preds = %28912, %28884
  %28916 = phi i1 [ true, %28884 ], [ %28914, %28912 ]
  %28917 = zext i1 %28916 to i32
  %28918 = icmp eq i32 0, %28917
  br i1 %28918, label %28919, label %28956

28919:                                            ; preds = %28915
  %28920 = load i32, ptr %826, align 4, !tbaa !9
  %28921 = uitofp i32 %28920 to double
  %28922 = fcmp olt double -3.276800e+04, %28921
  br i1 %28922, label %28923, label %28942

28923:                                            ; preds = %28919
  %28924 = load i32, ptr %826, align 4, !tbaa !9
  %28925 = uitofp i32 %28924 to double
  %28926 = fcmp ole double %28925, 3.276700e+04
  br i1 %28926, label %28927, label %28930

28927:                                            ; preds = %28923
  %28928 = load i32, ptr %826, align 4, !tbaa !9
  %28929 = uitofp i32 %28928 to double
  br label %28940

28930:                                            ; preds = %28923
  %28931 = load i32, ptr %826, align 4, !tbaa !9
  %28932 = uitofp i32 %28931 to double
  %28933 = fcmp olt double %28932, 3.276700e+04
  br i1 %28933, label %28934, label %28937

28934:                                            ; preds = %28930
  %28935 = load i32, ptr %826, align 4, !tbaa !9
  %28936 = uitofp i32 %28935 to double
  br label %28938

28937:                                            ; preds = %28930
  br label %28938

28938:                                            ; preds = %28937, %28934
  %28939 = phi double [ %28936, %28934 ], [ 3.276700e+04, %28937 ]
  br label %28940

28940:                                            ; preds = %28938, %28927
  %28941 = phi double [ %28929, %28927 ], [ %28939, %28938 ]
  br label %28952

28942:                                            ; preds = %28919
  %28943 = load i32, ptr %826, align 4, !tbaa !9
  %28944 = uitofp i32 %28943 to double
  %28945 = fcmp olt double -3.276800e+04, %28944
  br i1 %28945, label %28946, label %28949

28946:                                            ; preds = %28942
  %28947 = load i32, ptr %826, align 4, !tbaa !9
  %28948 = uitofp i32 %28947 to double
  br label %28950

28949:                                            ; preds = %28942
  br label %28950

28950:                                            ; preds = %28949, %28946
  %28951 = phi double [ %28948, %28946 ], [ -3.276800e+04, %28949 ]
  br label %28952

28952:                                            ; preds = %28950, %28940
  %28953 = phi double [ %28941, %28940 ], [ %28951, %28950 ]
  %28954 = fptosi double %28953 to i16
  %28955 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %28954, ptr %28955, align 2, !tbaa !15
  br label %28960

28956:                                            ; preds = %28915
  %28957 = load i32, ptr %826, align 4, !tbaa !9
  %28958 = trunc i32 %28957 to i16
  %28959 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %28958, ptr %28959, align 2, !tbaa !15
  br label %28960

28960:                                            ; preds = %28956, %28952
  br label %28961

28961:                                            ; preds = %28960, %28880
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %828) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %827) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %826) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %825) #3
  br label %28962

28962:                                            ; preds = %28961
  br label %28963

28963:                                            ; preds = %28962
  br label %30478

28964:                                            ; preds = %26855
  br label %28965

28965:                                            ; preds = %28964
  call void @llvm.lifetime.start.p0(i64 8, ptr %836) #3
  store double 5.000000e-01, ptr %836, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %837) #3
  %28966 = load ptr, ptr %10, align 8, !tbaa !5
  %28967 = load i16, ptr %28966, align 2, !tbaa !15
  store i16 %28967, ptr %837, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %838) #3
  store double 0.000000e+00, ptr %838, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %839) #3
  store double 0.000000e+00, ptr %839, align 8, !tbaa !11
  %28968 = load ptr, ptr %11, align 8, !tbaa !5
  %28969 = icmp ne ptr null, %28968
  br i1 %28969, label %28970, label %28996

28970:                                            ; preds = %28965
  %28971 = load ptr, ptr %12, align 8, !tbaa !5
  %28972 = icmp ne ptr null, %28971
  br i1 %28972, label %28973, label %28988

28973:                                            ; preds = %28970
  %28974 = load ptr, ptr %11, align 8, !tbaa !5
  %28975 = load i16, ptr %28974, align 2, !tbaa !15
  %28976 = zext i16 %28975 to i32
  %28977 = load i16, ptr %837, align 2, !tbaa !15
  %28978 = zext i16 %28977 to i32
  %28979 = icmp sle i32 %28976, %28978
  br i1 %28979, label %28980, label %28988

28980:                                            ; preds = %28973
  %28981 = load i16, ptr %837, align 2, !tbaa !15
  %28982 = zext i16 %28981 to i32
  %28983 = load ptr, ptr %12, align 8, !tbaa !5
  %28984 = load i16, ptr %28983, align 2, !tbaa !15
  %28985 = zext i16 %28984 to i32
  %28986 = icmp sle i32 %28982, %28985
  br i1 %28986, label %28987, label %28988

28987:                                            ; preds = %28980
  br label %28989

28988:                                            ; preds = %28980, %28973, %28970
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.24, i32 noundef 488, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

28989:                                            ; preds = %28987
  %28990 = load ptr, ptr %11, align 8, !tbaa !5
  %28991 = load i16, ptr %28990, align 2, !tbaa !15
  %28992 = uitofp i16 %28991 to double
  store double %28992, ptr %838, align 8, !tbaa !11
  %28993 = load ptr, ptr %12, align 8, !tbaa !5
  %28994 = load i16, ptr %28993, align 2, !tbaa !15
  %28995 = uitofp i16 %28994 to double
  store double %28995, ptr %839, align 8, !tbaa !11
  br label %28996

28996:                                            ; preds = %28989, %28965
  %28997 = load i32, ptr %8, align 4, !tbaa !9
  %28998 = icmp ule i32 6, %28997
  br i1 %28998, label %28999, label %29237

28999:                                            ; preds = %28996
  %29000 = load double, ptr %838, align 8, !tbaa !11
  %29001 = load double, ptr %839, align 8, !tbaa !11
  %29002 = fcmp olt double %29000, %29001
  br i1 %29002, label %29003, label %29237

29003:                                            ; preds = %28999
  %29004 = load i32, ptr %8, align 4, !tbaa !9
  %29005 = icmp ule i32 15, %29004
  br i1 %29005, label %29006, label %29060

29006:                                            ; preds = %29003
  call void @llvm.lifetime.start.p0(i64 8, ptr %840) #3
  %29007 = load double, ptr %838, align 8, !tbaa !11
  %29008 = fcmp olt double 0.000000e+00, %29007
  br i1 %29008, label %29009, label %29011

29009:                                            ; preds = %29006
  %29010 = load double, ptr %838, align 8, !tbaa !11
  br label %29012

29011:                                            ; preds = %29006
  br label %29012

29012:                                            ; preds = %29011, %29009
  %29013 = phi double [ %29010, %29009 ], [ 0.000000e+00, %29011 ]
  store double %29013, ptr %840, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %841) #3
  %29014 = load double, ptr %839, align 8, !tbaa !11
  %29015 = fcmp olt double 0.000000e+00, %29014
  br i1 %29015, label %29016, label %29018

29016:                                            ; preds = %29012
  %29017 = load double, ptr %839, align 8, !tbaa !11
  br label %29019

29018:                                            ; preds = %29012
  br label %29019

29019:                                            ; preds = %29018, %29016
  %29020 = phi double [ %29017, %29016 ], [ 0.000000e+00, %29018 ]
  store double %29020, ptr %841, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %842) #3
  %29021 = load double, ptr %840, align 8, !tbaa !11
  %29022 = load double, ptr %841, align 8, !tbaa !11
  %29023 = fcmp olt double %29021, %29022
  br i1 %29023, label %29024, label %29032

29024:                                            ; preds = %29019
  %29025 = load double, ptr %839, align 8, !tbaa !11
  %29026 = load double, ptr %838, align 8, !tbaa !11
  %29027 = fsub double %29025, %29026
  %29028 = load double, ptr %841, align 8, !tbaa !11
  %29029 = load double, ptr %840, align 8, !tbaa !11
  %29030 = fsub double %29028, %29029
  %29031 = fdiv double %29027, %29030
  br label %29033

29032:                                            ; preds = %29019
  br label %29033

29033:                                            ; preds = %29032, %29024
  %29034 = phi double [ %29031, %29024 ], [ 1.000000e+00, %29032 ]
  store double %29034, ptr %842, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %843) #3
  %29035 = load double, ptr %842, align 8, !tbaa !11
  %29036 = load i16, ptr %837, align 2, !tbaa !15
  %29037 = zext i16 %29036 to i32
  %29038 = icmp slt i32 0, %29037
  br i1 %29038, label %29039, label %29042

29039:                                            ; preds = %29033
  %29040 = load i16, ptr %837, align 2, !tbaa !15
  %29041 = zext i16 %29040 to i32
  br label %29043

29042:                                            ; preds = %29033
  br label %29043

29043:                                            ; preds = %29042, %29039
  %29044 = phi i32 [ %29041, %29039 ], [ 0, %29042 ]
  %29045 = sitofp i32 %29044 to double
  %29046 = fmul double %29035, %29045
  store double %29046, ptr %843, align 8, !tbaa !11
  %29047 = load double, ptr %843, align 8, !tbaa !11
  %29048 = fcmp ole double 0.000000e+00, %29047
  br i1 %29048, label %29049, label %29052

29049:                                            ; preds = %29043
  %29050 = load double, ptr %843, align 8, !tbaa !11
  %29051 = fadd double %29050, 5.000000e-01
  br label %29055

29052:                                            ; preds = %29043
  %29053 = load double, ptr %843, align 8, !tbaa !11
  %29054 = fsub double %29053, 5.000000e-01
  br label %29055

29055:                                            ; preds = %29052, %29049
  %29056 = phi double [ %29051, %29049 ], [ %29054, %29052 ]
  %29057 = fptoui double %29056 to i16
  store i16 %29057, ptr %837, align 2, !tbaa !15
  %29058 = load double, ptr %840, align 8, !tbaa !11
  store double %29058, ptr %838, align 8, !tbaa !11
  %29059 = load double, ptr %841, align 8, !tbaa !11
  store double %29059, ptr %839, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %843) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %842) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %841) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %840) #3
  br label %29116

29060:                                            ; preds = %29003
  %29061 = load i32, ptr %8, align 4, !tbaa !9
  %29062 = icmp ugt i32 6, %29061
  br i1 %29062, label %29091, label %29063

29063:                                            ; preds = %29060
  %29064 = load i32, ptr %8, align 4, !tbaa !9
  %29065 = icmp ugt i32 15, %29064
  br i1 %29065, label %29066, label %29077

29066:                                            ; preds = %29063
  %29067 = load i32, ptr %9, align 4, !tbaa !9
  %29068 = icmp ugt i32 15, %29067
  br i1 %29068, label %29069, label %29074

29069:                                            ; preds = %29066
  %29070 = load i32, ptr %9, align 4, !tbaa !9
  %29071 = load i32, ptr %8, align 4, !tbaa !9
  %29072 = icmp ugt i32 %29070, %29071
  %29073 = zext i1 %29072 to i32
  br label %29075

29074:                                            ; preds = %29066
  br label %29075

29075:                                            ; preds = %29074, %29069
  %29076 = phi i32 [ %29073, %29069 ], [ 0, %29074 ]
  br label %29088

29077:                                            ; preds = %29063
  %29078 = load i32, ptr %9, align 4, !tbaa !9
  %29079 = icmp ugt i32 15, %29078
  br i1 %29079, label %29080, label %29081

29080:                                            ; preds = %29077
  br label %29086

29081:                                            ; preds = %29077
  %29082 = load i32, ptr %9, align 4, !tbaa !9
  %29083 = load i32, ptr %8, align 4, !tbaa !9
  %29084 = icmp ugt i32 %29082, %29083
  %29085 = zext i1 %29084 to i32
  br label %29086

29086:                                            ; preds = %29081, %29080
  %29087 = phi i32 [ 0, %29080 ], [ %29085, %29081 ]
  br label %29088

29088:                                            ; preds = %29086, %29075
  %29089 = phi i32 [ %29076, %29075 ], [ %29087, %29086 ]
  %29090 = icmp ne i32 %29089, 0
  br label %29091

29091:                                            ; preds = %29088, %29060
  %29092 = phi i1 [ true, %29060 ], [ %29090, %29088 ]
  %29093 = zext i1 %29092 to i32
  %29094 = icmp eq i32 0, %29093
  br i1 %29094, label %29095, label %29115

29095:                                            ; preds = %29091
  %29096 = load double, ptr %838, align 8, !tbaa !11
  %29097 = fcmp ogt double 0.000000e+00, %29096
  br i1 %29097, label %29098, label %29115

29098:                                            ; preds = %29095
  %29099 = load double, ptr %839, align 8, !tbaa !11
  %29100 = fcmp olt double 0.000000e+00, %29099
  br i1 %29100, label %29101, label %29115

29101:                                            ; preds = %29098
  %29102 = load double, ptr %838, align 8, !tbaa !11
  %29103 = fneg double %29102
  %29104 = load double, ptr %839, align 8, !tbaa !11
  %29105 = fcmp olt double %29103, %29104
  br i1 %29105, label %29106, label %29108

29106:                                            ; preds = %29101
  %29107 = load double, ptr %839, align 8, !tbaa !11
  br label %29111

29108:                                            ; preds = %29101
  %29109 = load double, ptr %838, align 8, !tbaa !11
  %29110 = fneg double %29109
  br label %29111

29111:                                            ; preds = %29108, %29106
  %29112 = phi double [ %29107, %29106 ], [ %29110, %29108 ]
  store double %29112, ptr %839, align 8, !tbaa !11
  %29113 = load double, ptr %839, align 8, !tbaa !11
  %29114 = fneg double %29113
  store double %29114, ptr %838, align 8, !tbaa !11
  br label %29115

29115:                                            ; preds = %29111, %29098, %29095, %29091
  br label %29116

29116:                                            ; preds = %29115, %29055
  call void @llvm.lifetime.start.p0(i64 8, ptr %844) #3
  %29117 = load double, ptr %838, align 8, !tbaa !11
  %29118 = fcmp ole double 0.000000e+00, %29117
  %29119 = zext i1 %29118 to i64
  %29120 = select i1 %29118, double 0.000000e+00, double -3.276800e+04
  store double %29120, ptr %844, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %845) #3
  %29121 = load double, ptr %839, align 8, !tbaa !11
  %29122 = fcmp ole double 0.000000e+00, %29121
  %29123 = zext i1 %29122 to i64
  %29124 = select i1 %29122, double 3.276700e+04, double 0.000000e+00
  store double %29124, ptr %845, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %846) #3
  %29125 = load i16, ptr %837, align 2, !tbaa !15
  %29126 = uitofp i16 %29125 to double
  %29127 = load double, ptr %838, align 8, !tbaa !11
  %29128 = fsub double %29126, %29127
  %29129 = load double, ptr %845, align 8, !tbaa !11
  %29130 = load double, ptr %844, align 8, !tbaa !11
  %29131 = fsub double %29129, %29130
  %29132 = fmul double %29128, %29131
  %29133 = load double, ptr %839, align 8, !tbaa !11
  %29134 = load double, ptr %838, align 8, !tbaa !11
  %29135 = fsub double %29133, %29134
  %29136 = fdiv double %29132, %29135
  %29137 = load double, ptr %844, align 8, !tbaa !11
  %29138 = fadd double %29136, %29137
  store double %29138, ptr %846, align 8, !tbaa !11
  %29139 = load double, ptr %844, align 8, !tbaa !11
  %29140 = load double, ptr %846, align 8, !tbaa !11
  %29141 = fcmp ole double 0.000000e+00, %29140
  br i1 %29141, label %29142, label %29145

29142:                                            ; preds = %29116
  %29143 = load double, ptr %846, align 8, !tbaa !11
  %29144 = fadd double %29143, 5.000000e-01
  br label %29148

29145:                                            ; preds = %29116
  %29146 = load double, ptr %846, align 8, !tbaa !11
  %29147 = fsub double %29146, 5.000000e-01
  br label %29148

29148:                                            ; preds = %29145, %29142
  %29149 = phi double [ %29144, %29142 ], [ %29147, %29145 ]
  %29150 = fcmp olt double %29139, %29149
  br i1 %29150, label %29151, label %29205

29151:                                            ; preds = %29148
  %29152 = load double, ptr %846, align 8, !tbaa !11
  %29153 = fcmp ole double 0.000000e+00, %29152
  br i1 %29153, label %29154, label %29157

29154:                                            ; preds = %29151
  %29155 = load double, ptr %846, align 8, !tbaa !11
  %29156 = fadd double %29155, 5.000000e-01
  br label %29160

29157:                                            ; preds = %29151
  %29158 = load double, ptr %846, align 8, !tbaa !11
  %29159 = fsub double %29158, 5.000000e-01
  br label %29160

29160:                                            ; preds = %29157, %29154
  %29161 = phi double [ %29156, %29154 ], [ %29159, %29157 ]
  %29162 = load double, ptr %845, align 8, !tbaa !11
  %29163 = fcmp ole double %29161, %29162
  br i1 %29163, label %29164, label %29175

29164:                                            ; preds = %29160
  %29165 = load double, ptr %846, align 8, !tbaa !11
  %29166 = fcmp ole double 0.000000e+00, %29165
  br i1 %29166, label %29167, label %29170

29167:                                            ; preds = %29164
  %29168 = load double, ptr %846, align 8, !tbaa !11
  %29169 = fadd double %29168, 5.000000e-01
  br label %29173

29170:                                            ; preds = %29164
  %29171 = load double, ptr %846, align 8, !tbaa !11
  %29172 = fsub double %29171, 5.000000e-01
  br label %29173

29173:                                            ; preds = %29170, %29167
  %29174 = phi double [ %29169, %29167 ], [ %29172, %29170 ]
  br label %29203

29175:                                            ; preds = %29160
  %29176 = load double, ptr %846, align 8, !tbaa !11
  %29177 = fcmp ole double 0.000000e+00, %29176
  br i1 %29177, label %29178, label %29181

29178:                                            ; preds = %29175
  %29179 = load double, ptr %846, align 8, !tbaa !11
  %29180 = fadd double %29179, 5.000000e-01
  br label %29184

29181:                                            ; preds = %29175
  %29182 = load double, ptr %846, align 8, !tbaa !11
  %29183 = fsub double %29182, 5.000000e-01
  br label %29184

29184:                                            ; preds = %29181, %29178
  %29185 = phi double [ %29180, %29178 ], [ %29183, %29181 ]
  %29186 = load double, ptr %845, align 8, !tbaa !11
  %29187 = fcmp olt double %29185, %29186
  br i1 %29187, label %29188, label %29199

29188:                                            ; preds = %29184
  %29189 = load double, ptr %846, align 8, !tbaa !11
  %29190 = fcmp ole double 0.000000e+00, %29189
  br i1 %29190, label %29191, label %29194

29191:                                            ; preds = %29188
  %29192 = load double, ptr %846, align 8, !tbaa !11
  %29193 = fadd double %29192, 5.000000e-01
  br label %29197

29194:                                            ; preds = %29188
  %29195 = load double, ptr %846, align 8, !tbaa !11
  %29196 = fsub double %29195, 5.000000e-01
  br label %29197

29197:                                            ; preds = %29194, %29191
  %29198 = phi double [ %29193, %29191 ], [ %29196, %29194 ]
  br label %29201

29199:                                            ; preds = %29184
  %29200 = load double, ptr %845, align 8, !tbaa !11
  br label %29201

29201:                                            ; preds = %29199, %29197
  %29202 = phi double [ %29198, %29197 ], [ %29200, %29199 ]
  br label %29203

29203:                                            ; preds = %29201, %29173
  %29204 = phi double [ %29174, %29173 ], [ %29202, %29201 ]
  br label %29233

29205:                                            ; preds = %29148
  %29206 = load double, ptr %844, align 8, !tbaa !11
  %29207 = load double, ptr %846, align 8, !tbaa !11
  %29208 = fcmp ole double 0.000000e+00, %29207
  br i1 %29208, label %29209, label %29212

29209:                                            ; preds = %29205
  %29210 = load double, ptr %846, align 8, !tbaa !11
  %29211 = fadd double %29210, 5.000000e-01
  br label %29215

29212:                                            ; preds = %29205
  %29213 = load double, ptr %846, align 8, !tbaa !11
  %29214 = fsub double %29213, 5.000000e-01
  br label %29215

29215:                                            ; preds = %29212, %29209
  %29216 = phi double [ %29211, %29209 ], [ %29214, %29212 ]
  %29217 = fcmp olt double %29206, %29216
  br i1 %29217, label %29218, label %29229

29218:                                            ; preds = %29215
  %29219 = load double, ptr %846, align 8, !tbaa !11
  %29220 = fcmp ole double 0.000000e+00, %29219
  br i1 %29220, label %29221, label %29224

29221:                                            ; preds = %29218
  %29222 = load double, ptr %846, align 8, !tbaa !11
  %29223 = fadd double %29222, 5.000000e-01
  br label %29227

29224:                                            ; preds = %29218
  %29225 = load double, ptr %846, align 8, !tbaa !11
  %29226 = fsub double %29225, 5.000000e-01
  br label %29227

29227:                                            ; preds = %29224, %29221
  %29228 = phi double [ %29223, %29221 ], [ %29226, %29224 ]
  br label %29231

29229:                                            ; preds = %29215
  %29230 = load double, ptr %844, align 8, !tbaa !11
  br label %29231

29231:                                            ; preds = %29229, %29227
  %29232 = phi double [ %29228, %29227 ], [ %29230, %29229 ]
  br label %29233

29233:                                            ; preds = %29231, %29203
  %29234 = phi double [ %29204, %29203 ], [ %29232, %29231 ]
  %29235 = fptosi double %29234 to i16
  %29236 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %29235, ptr %29236, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %846) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %845) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %844) #3
  br label %29320

29237:                                            ; preds = %28999, %28996
  %29238 = load i32, ptr %8, align 4, !tbaa !9
  %29239 = icmp ugt i32 6, %29238
  br i1 %29239, label %29268, label %29240

29240:                                            ; preds = %29237
  %29241 = load i32, ptr %8, align 4, !tbaa !9
  %29242 = icmp ugt i32 15, %29241
  br i1 %29242, label %29243, label %29254

29243:                                            ; preds = %29240
  %29244 = load i32, ptr %9, align 4, !tbaa !9
  %29245 = icmp ugt i32 15, %29244
  br i1 %29245, label %29246, label %29251

29246:                                            ; preds = %29243
  %29247 = load i32, ptr %9, align 4, !tbaa !9
  %29248 = load i32, ptr %8, align 4, !tbaa !9
  %29249 = icmp ugt i32 %29247, %29248
  %29250 = zext i1 %29249 to i32
  br label %29252

29251:                                            ; preds = %29243
  br label %29252

29252:                                            ; preds = %29251, %29246
  %29253 = phi i32 [ %29250, %29246 ], [ 0, %29251 ]
  br label %29265

29254:                                            ; preds = %29240
  %29255 = load i32, ptr %9, align 4, !tbaa !9
  %29256 = icmp ugt i32 15, %29255
  br i1 %29256, label %29257, label %29258

29257:                                            ; preds = %29254
  br label %29263

29258:                                            ; preds = %29254
  %29259 = load i32, ptr %9, align 4, !tbaa !9
  %29260 = load i32, ptr %8, align 4, !tbaa !9
  %29261 = icmp ugt i32 %29259, %29260
  %29262 = zext i1 %29261 to i32
  br label %29263

29263:                                            ; preds = %29258, %29257
  %29264 = phi i32 [ 0, %29257 ], [ %29262, %29258 ]
  br label %29265

29265:                                            ; preds = %29263, %29252
  %29266 = phi i32 [ %29253, %29252 ], [ %29264, %29263 ]
  %29267 = icmp ne i32 %29266, 0
  br label %29268

29268:                                            ; preds = %29265, %29237
  %29269 = phi i1 [ true, %29237 ], [ %29267, %29265 ]
  %29270 = zext i1 %29269 to i32
  %29271 = icmp eq i32 0, %29270
  br i1 %29271, label %29272, label %29316

29272:                                            ; preds = %29268
  %29273 = load i16, ptr %837, align 2, !tbaa !15
  %29274 = zext i16 %29273 to i32
  %29275 = sitofp i32 %29274 to double
  %29276 = fcmp olt double -3.276800e+04, %29275
  br i1 %29276, label %29277, label %29300

29277:                                            ; preds = %29272
  %29278 = load i16, ptr %837, align 2, !tbaa !15
  %29279 = zext i16 %29278 to i32
  %29280 = sitofp i32 %29279 to double
  %29281 = fcmp ole double %29280, 3.276700e+04
  br i1 %29281, label %29282, label %29286

29282:                                            ; preds = %29277
  %29283 = load i16, ptr %837, align 2, !tbaa !15
  %29284 = zext i16 %29283 to i32
  %29285 = sitofp i32 %29284 to double
  br label %29298

29286:                                            ; preds = %29277
  %29287 = load i16, ptr %837, align 2, !tbaa !15
  %29288 = zext i16 %29287 to i32
  %29289 = sitofp i32 %29288 to double
  %29290 = fcmp olt double %29289, 3.276700e+04
  br i1 %29290, label %29291, label %29295

29291:                                            ; preds = %29286
  %29292 = load i16, ptr %837, align 2, !tbaa !15
  %29293 = zext i16 %29292 to i32
  %29294 = sitofp i32 %29293 to double
  br label %29296

29295:                                            ; preds = %29286
  br label %29296

29296:                                            ; preds = %29295, %29291
  %29297 = phi double [ %29294, %29291 ], [ 3.276700e+04, %29295 ]
  br label %29298

29298:                                            ; preds = %29296, %29282
  %29299 = phi double [ %29285, %29282 ], [ %29297, %29296 ]
  br label %29312

29300:                                            ; preds = %29272
  %29301 = load i16, ptr %837, align 2, !tbaa !15
  %29302 = zext i16 %29301 to i32
  %29303 = sitofp i32 %29302 to double
  %29304 = fcmp olt double -3.276800e+04, %29303
  br i1 %29304, label %29305, label %29309

29305:                                            ; preds = %29300
  %29306 = load i16, ptr %837, align 2, !tbaa !15
  %29307 = zext i16 %29306 to i32
  %29308 = sitofp i32 %29307 to double
  br label %29310

29309:                                            ; preds = %29300
  br label %29310

29310:                                            ; preds = %29309, %29305
  %29311 = phi double [ %29308, %29305 ], [ -3.276800e+04, %29309 ]
  br label %29312

29312:                                            ; preds = %29310, %29298
  %29313 = phi double [ %29299, %29298 ], [ %29311, %29310 ]
  %29314 = fptosi double %29313 to i16
  %29315 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %29314, ptr %29315, align 2, !tbaa !15
  br label %29319

29316:                                            ; preds = %29268
  %29317 = load i16, ptr %837, align 2, !tbaa !15
  %29318 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %29317, ptr %29318, align 2, !tbaa !15
  br label %29319

29319:                                            ; preds = %29316, %29312
  br label %29320

29320:                                            ; preds = %29319, %29233
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %839) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %838) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %837) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %836) #3
  br label %29321

29321:                                            ; preds = %29320
  br label %29322

29322:                                            ; preds = %29321
  br label %30478

29323:                                            ; preds = %26855
  br label %29324

29324:                                            ; preds = %29323
  call void @llvm.lifetime.start.p0(i64 8, ptr %847) #3
  store double 5.000000e-01, ptr %847, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %848) #3
  %29325 = load ptr, ptr %10, align 8, !tbaa !5
  %29326 = load i8, ptr %29325, align 1, !tbaa !17
  store i8 %29326, ptr %848, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %849) #3
  store double 0.000000e+00, ptr %849, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %850) #3
  store double 0.000000e+00, ptr %850, align 8, !tbaa !11
  %29327 = load ptr, ptr %11, align 8, !tbaa !5
  %29328 = icmp ne ptr null, %29327
  br i1 %29328, label %29329, label %29355

29329:                                            ; preds = %29324
  %29330 = load ptr, ptr %12, align 8, !tbaa !5
  %29331 = icmp ne ptr null, %29330
  br i1 %29331, label %29332, label %29347

29332:                                            ; preds = %29329
  %29333 = load ptr, ptr %11, align 8, !tbaa !5
  %29334 = load i8, ptr %29333, align 1, !tbaa !17
  %29335 = zext i8 %29334 to i32
  %29336 = load i8, ptr %848, align 1, !tbaa !17
  %29337 = zext i8 %29336 to i32
  %29338 = icmp sle i32 %29335, %29337
  br i1 %29338, label %29339, label %29347

29339:                                            ; preds = %29332
  %29340 = load i8, ptr %848, align 1, !tbaa !17
  %29341 = zext i8 %29340 to i32
  %29342 = load ptr, ptr %12, align 8, !tbaa !5
  %29343 = load i8, ptr %29342, align 1, !tbaa !17
  %29344 = zext i8 %29343 to i32
  %29345 = icmp sle i32 %29341, %29344
  br i1 %29345, label %29346, label %29347

29346:                                            ; preds = %29339
  br label %29348

29347:                                            ; preds = %29339, %29332, %29329
  call void @__assert_fail(ptr noundef @.str.49, ptr noundef @.str.24, i32 noundef 488, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

29348:                                            ; preds = %29346
  %29349 = load ptr, ptr %11, align 8, !tbaa !5
  %29350 = load i8, ptr %29349, align 1, !tbaa !17
  %29351 = uitofp i8 %29350 to double
  store double %29351, ptr %849, align 8, !tbaa !11
  %29352 = load ptr, ptr %12, align 8, !tbaa !5
  %29353 = load i8, ptr %29352, align 1, !tbaa !17
  %29354 = uitofp i8 %29353 to double
  store double %29354, ptr %850, align 8, !tbaa !11
  br label %29355

29355:                                            ; preds = %29348, %29324
  %29356 = load i32, ptr %8, align 4, !tbaa !9
  %29357 = icmp ule i32 6, %29356
  br i1 %29357, label %29358, label %29596

29358:                                            ; preds = %29355
  %29359 = load double, ptr %849, align 8, !tbaa !11
  %29360 = load double, ptr %850, align 8, !tbaa !11
  %29361 = fcmp olt double %29359, %29360
  br i1 %29361, label %29362, label %29596

29362:                                            ; preds = %29358
  %29363 = load i32, ptr %8, align 4, !tbaa !9
  %29364 = icmp ule i32 15, %29363
  br i1 %29364, label %29365, label %29419

29365:                                            ; preds = %29362
  call void @llvm.lifetime.start.p0(i64 8, ptr %851) #3
  %29366 = load double, ptr %849, align 8, !tbaa !11
  %29367 = fcmp olt double 0.000000e+00, %29366
  br i1 %29367, label %29368, label %29370

29368:                                            ; preds = %29365
  %29369 = load double, ptr %849, align 8, !tbaa !11
  br label %29371

29370:                                            ; preds = %29365
  br label %29371

29371:                                            ; preds = %29370, %29368
  %29372 = phi double [ %29369, %29368 ], [ 0.000000e+00, %29370 ]
  store double %29372, ptr %851, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %852) #3
  %29373 = load double, ptr %850, align 8, !tbaa !11
  %29374 = fcmp olt double 0.000000e+00, %29373
  br i1 %29374, label %29375, label %29377

29375:                                            ; preds = %29371
  %29376 = load double, ptr %850, align 8, !tbaa !11
  br label %29378

29377:                                            ; preds = %29371
  br label %29378

29378:                                            ; preds = %29377, %29375
  %29379 = phi double [ %29376, %29375 ], [ 0.000000e+00, %29377 ]
  store double %29379, ptr %852, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %853) #3
  %29380 = load double, ptr %851, align 8, !tbaa !11
  %29381 = load double, ptr %852, align 8, !tbaa !11
  %29382 = fcmp olt double %29380, %29381
  br i1 %29382, label %29383, label %29391

29383:                                            ; preds = %29378
  %29384 = load double, ptr %850, align 8, !tbaa !11
  %29385 = load double, ptr %849, align 8, !tbaa !11
  %29386 = fsub double %29384, %29385
  %29387 = load double, ptr %852, align 8, !tbaa !11
  %29388 = load double, ptr %851, align 8, !tbaa !11
  %29389 = fsub double %29387, %29388
  %29390 = fdiv double %29386, %29389
  br label %29392

29391:                                            ; preds = %29378
  br label %29392

29392:                                            ; preds = %29391, %29383
  %29393 = phi double [ %29390, %29383 ], [ 1.000000e+00, %29391 ]
  store double %29393, ptr %853, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %854) #3
  %29394 = load double, ptr %853, align 8, !tbaa !11
  %29395 = load i8, ptr %848, align 1, !tbaa !17
  %29396 = zext i8 %29395 to i32
  %29397 = icmp slt i32 0, %29396
  br i1 %29397, label %29398, label %29401

29398:                                            ; preds = %29392
  %29399 = load i8, ptr %848, align 1, !tbaa !17
  %29400 = zext i8 %29399 to i32
  br label %29402

29401:                                            ; preds = %29392
  br label %29402

29402:                                            ; preds = %29401, %29398
  %29403 = phi i32 [ %29400, %29398 ], [ 0, %29401 ]
  %29404 = sitofp i32 %29403 to double
  %29405 = fmul double %29394, %29404
  store double %29405, ptr %854, align 8, !tbaa !11
  %29406 = load double, ptr %854, align 8, !tbaa !11
  %29407 = fcmp ole double 0.000000e+00, %29406
  br i1 %29407, label %29408, label %29411

29408:                                            ; preds = %29402
  %29409 = load double, ptr %854, align 8, !tbaa !11
  %29410 = fadd double %29409, 5.000000e-01
  br label %29414

29411:                                            ; preds = %29402
  %29412 = load double, ptr %854, align 8, !tbaa !11
  %29413 = fsub double %29412, 5.000000e-01
  br label %29414

29414:                                            ; preds = %29411, %29408
  %29415 = phi double [ %29410, %29408 ], [ %29413, %29411 ]
  %29416 = fptoui double %29415 to i8
  store i8 %29416, ptr %848, align 1, !tbaa !17
  %29417 = load double, ptr %851, align 8, !tbaa !11
  store double %29417, ptr %849, align 8, !tbaa !11
  %29418 = load double, ptr %852, align 8, !tbaa !11
  store double %29418, ptr %850, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %854) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %853) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %852) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %851) #3
  br label %29475

29419:                                            ; preds = %29362
  %29420 = load i32, ptr %8, align 4, !tbaa !9
  %29421 = icmp ugt i32 6, %29420
  br i1 %29421, label %29450, label %29422

29422:                                            ; preds = %29419
  %29423 = load i32, ptr %8, align 4, !tbaa !9
  %29424 = icmp ugt i32 15, %29423
  br i1 %29424, label %29425, label %29436

29425:                                            ; preds = %29422
  %29426 = load i32, ptr %9, align 4, !tbaa !9
  %29427 = icmp ugt i32 15, %29426
  br i1 %29427, label %29428, label %29433

29428:                                            ; preds = %29425
  %29429 = load i32, ptr %9, align 4, !tbaa !9
  %29430 = load i32, ptr %8, align 4, !tbaa !9
  %29431 = icmp ugt i32 %29429, %29430
  %29432 = zext i1 %29431 to i32
  br label %29434

29433:                                            ; preds = %29425
  br label %29434

29434:                                            ; preds = %29433, %29428
  %29435 = phi i32 [ %29432, %29428 ], [ 0, %29433 ]
  br label %29447

29436:                                            ; preds = %29422
  %29437 = load i32, ptr %9, align 4, !tbaa !9
  %29438 = icmp ugt i32 15, %29437
  br i1 %29438, label %29439, label %29440

29439:                                            ; preds = %29436
  br label %29445

29440:                                            ; preds = %29436
  %29441 = load i32, ptr %9, align 4, !tbaa !9
  %29442 = load i32, ptr %8, align 4, !tbaa !9
  %29443 = icmp ugt i32 %29441, %29442
  %29444 = zext i1 %29443 to i32
  br label %29445

29445:                                            ; preds = %29440, %29439
  %29446 = phi i32 [ 0, %29439 ], [ %29444, %29440 ]
  br label %29447

29447:                                            ; preds = %29445, %29434
  %29448 = phi i32 [ %29435, %29434 ], [ %29446, %29445 ]
  %29449 = icmp ne i32 %29448, 0
  br label %29450

29450:                                            ; preds = %29447, %29419
  %29451 = phi i1 [ true, %29419 ], [ %29449, %29447 ]
  %29452 = zext i1 %29451 to i32
  %29453 = icmp eq i32 0, %29452
  br i1 %29453, label %29454, label %29474

29454:                                            ; preds = %29450
  %29455 = load double, ptr %849, align 8, !tbaa !11
  %29456 = fcmp ogt double 0.000000e+00, %29455
  br i1 %29456, label %29457, label %29474

29457:                                            ; preds = %29454
  %29458 = load double, ptr %850, align 8, !tbaa !11
  %29459 = fcmp olt double 0.000000e+00, %29458
  br i1 %29459, label %29460, label %29474

29460:                                            ; preds = %29457
  %29461 = load double, ptr %849, align 8, !tbaa !11
  %29462 = fneg double %29461
  %29463 = load double, ptr %850, align 8, !tbaa !11
  %29464 = fcmp olt double %29462, %29463
  br i1 %29464, label %29465, label %29467

29465:                                            ; preds = %29460
  %29466 = load double, ptr %850, align 8, !tbaa !11
  br label %29470

29467:                                            ; preds = %29460
  %29468 = load double, ptr %849, align 8, !tbaa !11
  %29469 = fneg double %29468
  br label %29470

29470:                                            ; preds = %29467, %29465
  %29471 = phi double [ %29466, %29465 ], [ %29469, %29467 ]
  store double %29471, ptr %850, align 8, !tbaa !11
  %29472 = load double, ptr %850, align 8, !tbaa !11
  %29473 = fneg double %29472
  store double %29473, ptr %849, align 8, !tbaa !11
  br label %29474

29474:                                            ; preds = %29470, %29457, %29454, %29450
  br label %29475

29475:                                            ; preds = %29474, %29414
  call void @llvm.lifetime.start.p0(i64 8, ptr %855) #3
  %29476 = load double, ptr %849, align 8, !tbaa !11
  %29477 = fcmp ole double 0.000000e+00, %29476
  %29478 = zext i1 %29477 to i64
  %29479 = select i1 %29477, double 0.000000e+00, double -3.276800e+04
  store double %29479, ptr %855, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %856) #3
  %29480 = load double, ptr %850, align 8, !tbaa !11
  %29481 = fcmp ole double 0.000000e+00, %29480
  %29482 = zext i1 %29481 to i64
  %29483 = select i1 %29481, double 3.276700e+04, double 0.000000e+00
  store double %29483, ptr %856, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %857) #3
  %29484 = load i8, ptr %848, align 1, !tbaa !17
  %29485 = uitofp i8 %29484 to double
  %29486 = load double, ptr %849, align 8, !tbaa !11
  %29487 = fsub double %29485, %29486
  %29488 = load double, ptr %856, align 8, !tbaa !11
  %29489 = load double, ptr %855, align 8, !tbaa !11
  %29490 = fsub double %29488, %29489
  %29491 = fmul double %29487, %29490
  %29492 = load double, ptr %850, align 8, !tbaa !11
  %29493 = load double, ptr %849, align 8, !tbaa !11
  %29494 = fsub double %29492, %29493
  %29495 = fdiv double %29491, %29494
  %29496 = load double, ptr %855, align 8, !tbaa !11
  %29497 = fadd double %29495, %29496
  store double %29497, ptr %857, align 8, !tbaa !11
  %29498 = load double, ptr %855, align 8, !tbaa !11
  %29499 = load double, ptr %857, align 8, !tbaa !11
  %29500 = fcmp ole double 0.000000e+00, %29499
  br i1 %29500, label %29501, label %29504

29501:                                            ; preds = %29475
  %29502 = load double, ptr %857, align 8, !tbaa !11
  %29503 = fadd double %29502, 5.000000e-01
  br label %29507

29504:                                            ; preds = %29475
  %29505 = load double, ptr %857, align 8, !tbaa !11
  %29506 = fsub double %29505, 5.000000e-01
  br label %29507

29507:                                            ; preds = %29504, %29501
  %29508 = phi double [ %29503, %29501 ], [ %29506, %29504 ]
  %29509 = fcmp olt double %29498, %29508
  br i1 %29509, label %29510, label %29564

29510:                                            ; preds = %29507
  %29511 = load double, ptr %857, align 8, !tbaa !11
  %29512 = fcmp ole double 0.000000e+00, %29511
  br i1 %29512, label %29513, label %29516

29513:                                            ; preds = %29510
  %29514 = load double, ptr %857, align 8, !tbaa !11
  %29515 = fadd double %29514, 5.000000e-01
  br label %29519

29516:                                            ; preds = %29510
  %29517 = load double, ptr %857, align 8, !tbaa !11
  %29518 = fsub double %29517, 5.000000e-01
  br label %29519

29519:                                            ; preds = %29516, %29513
  %29520 = phi double [ %29515, %29513 ], [ %29518, %29516 ]
  %29521 = load double, ptr %856, align 8, !tbaa !11
  %29522 = fcmp ole double %29520, %29521
  br i1 %29522, label %29523, label %29534

29523:                                            ; preds = %29519
  %29524 = load double, ptr %857, align 8, !tbaa !11
  %29525 = fcmp ole double 0.000000e+00, %29524
  br i1 %29525, label %29526, label %29529

29526:                                            ; preds = %29523
  %29527 = load double, ptr %857, align 8, !tbaa !11
  %29528 = fadd double %29527, 5.000000e-01
  br label %29532

29529:                                            ; preds = %29523
  %29530 = load double, ptr %857, align 8, !tbaa !11
  %29531 = fsub double %29530, 5.000000e-01
  br label %29532

29532:                                            ; preds = %29529, %29526
  %29533 = phi double [ %29528, %29526 ], [ %29531, %29529 ]
  br label %29562

29534:                                            ; preds = %29519
  %29535 = load double, ptr %857, align 8, !tbaa !11
  %29536 = fcmp ole double 0.000000e+00, %29535
  br i1 %29536, label %29537, label %29540

29537:                                            ; preds = %29534
  %29538 = load double, ptr %857, align 8, !tbaa !11
  %29539 = fadd double %29538, 5.000000e-01
  br label %29543

29540:                                            ; preds = %29534
  %29541 = load double, ptr %857, align 8, !tbaa !11
  %29542 = fsub double %29541, 5.000000e-01
  br label %29543

29543:                                            ; preds = %29540, %29537
  %29544 = phi double [ %29539, %29537 ], [ %29542, %29540 ]
  %29545 = load double, ptr %856, align 8, !tbaa !11
  %29546 = fcmp olt double %29544, %29545
  br i1 %29546, label %29547, label %29558

29547:                                            ; preds = %29543
  %29548 = load double, ptr %857, align 8, !tbaa !11
  %29549 = fcmp ole double 0.000000e+00, %29548
  br i1 %29549, label %29550, label %29553

29550:                                            ; preds = %29547
  %29551 = load double, ptr %857, align 8, !tbaa !11
  %29552 = fadd double %29551, 5.000000e-01
  br label %29556

29553:                                            ; preds = %29547
  %29554 = load double, ptr %857, align 8, !tbaa !11
  %29555 = fsub double %29554, 5.000000e-01
  br label %29556

29556:                                            ; preds = %29553, %29550
  %29557 = phi double [ %29552, %29550 ], [ %29555, %29553 ]
  br label %29560

29558:                                            ; preds = %29543
  %29559 = load double, ptr %856, align 8, !tbaa !11
  br label %29560

29560:                                            ; preds = %29558, %29556
  %29561 = phi double [ %29557, %29556 ], [ %29559, %29558 ]
  br label %29562

29562:                                            ; preds = %29560, %29532
  %29563 = phi double [ %29533, %29532 ], [ %29561, %29560 ]
  br label %29592

29564:                                            ; preds = %29507
  %29565 = load double, ptr %855, align 8, !tbaa !11
  %29566 = load double, ptr %857, align 8, !tbaa !11
  %29567 = fcmp ole double 0.000000e+00, %29566
  br i1 %29567, label %29568, label %29571

29568:                                            ; preds = %29564
  %29569 = load double, ptr %857, align 8, !tbaa !11
  %29570 = fadd double %29569, 5.000000e-01
  br label %29574

29571:                                            ; preds = %29564
  %29572 = load double, ptr %857, align 8, !tbaa !11
  %29573 = fsub double %29572, 5.000000e-01
  br label %29574

29574:                                            ; preds = %29571, %29568
  %29575 = phi double [ %29570, %29568 ], [ %29573, %29571 ]
  %29576 = fcmp olt double %29565, %29575
  br i1 %29576, label %29577, label %29588

29577:                                            ; preds = %29574
  %29578 = load double, ptr %857, align 8, !tbaa !11
  %29579 = fcmp ole double 0.000000e+00, %29578
  br i1 %29579, label %29580, label %29583

29580:                                            ; preds = %29577
  %29581 = load double, ptr %857, align 8, !tbaa !11
  %29582 = fadd double %29581, 5.000000e-01
  br label %29586

29583:                                            ; preds = %29577
  %29584 = load double, ptr %857, align 8, !tbaa !11
  %29585 = fsub double %29584, 5.000000e-01
  br label %29586

29586:                                            ; preds = %29583, %29580
  %29587 = phi double [ %29582, %29580 ], [ %29585, %29583 ]
  br label %29590

29588:                                            ; preds = %29574
  %29589 = load double, ptr %855, align 8, !tbaa !11
  br label %29590

29590:                                            ; preds = %29588, %29586
  %29591 = phi double [ %29587, %29586 ], [ %29589, %29588 ]
  br label %29592

29592:                                            ; preds = %29590, %29562
  %29593 = phi double [ %29563, %29562 ], [ %29591, %29590 ]
  %29594 = fptosi double %29593 to i16
  %29595 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %29594, ptr %29595, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %857) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %856) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %855) #3
  br label %29680

29596:                                            ; preds = %29358, %29355
  %29597 = load i32, ptr %8, align 4, !tbaa !9
  %29598 = icmp ugt i32 6, %29597
  br i1 %29598, label %29627, label %29599

29599:                                            ; preds = %29596
  %29600 = load i32, ptr %8, align 4, !tbaa !9
  %29601 = icmp ugt i32 15, %29600
  br i1 %29601, label %29602, label %29613

29602:                                            ; preds = %29599
  %29603 = load i32, ptr %9, align 4, !tbaa !9
  %29604 = icmp ugt i32 15, %29603
  br i1 %29604, label %29605, label %29610

29605:                                            ; preds = %29602
  %29606 = load i32, ptr %9, align 4, !tbaa !9
  %29607 = load i32, ptr %8, align 4, !tbaa !9
  %29608 = icmp ugt i32 %29606, %29607
  %29609 = zext i1 %29608 to i32
  br label %29611

29610:                                            ; preds = %29602
  br label %29611

29611:                                            ; preds = %29610, %29605
  %29612 = phi i32 [ %29609, %29605 ], [ 0, %29610 ]
  br label %29624

29613:                                            ; preds = %29599
  %29614 = load i32, ptr %9, align 4, !tbaa !9
  %29615 = icmp ugt i32 15, %29614
  br i1 %29615, label %29616, label %29617

29616:                                            ; preds = %29613
  br label %29622

29617:                                            ; preds = %29613
  %29618 = load i32, ptr %9, align 4, !tbaa !9
  %29619 = load i32, ptr %8, align 4, !tbaa !9
  %29620 = icmp ugt i32 %29618, %29619
  %29621 = zext i1 %29620 to i32
  br label %29622

29622:                                            ; preds = %29617, %29616
  %29623 = phi i32 [ 0, %29616 ], [ %29621, %29617 ]
  br label %29624

29624:                                            ; preds = %29622, %29611
  %29625 = phi i32 [ %29612, %29611 ], [ %29623, %29622 ]
  %29626 = icmp ne i32 %29625, 0
  br label %29627

29627:                                            ; preds = %29624, %29596
  %29628 = phi i1 [ true, %29596 ], [ %29626, %29624 ]
  %29629 = zext i1 %29628 to i32
  %29630 = icmp eq i32 0, %29629
  br i1 %29630, label %29631, label %29675

29631:                                            ; preds = %29627
  %29632 = load i8, ptr %848, align 1, !tbaa !17
  %29633 = zext i8 %29632 to i32
  %29634 = sitofp i32 %29633 to double
  %29635 = fcmp olt double -3.276800e+04, %29634
  br i1 %29635, label %29636, label %29659

29636:                                            ; preds = %29631
  %29637 = load i8, ptr %848, align 1, !tbaa !17
  %29638 = zext i8 %29637 to i32
  %29639 = sitofp i32 %29638 to double
  %29640 = fcmp ole double %29639, 3.276700e+04
  br i1 %29640, label %29641, label %29645

29641:                                            ; preds = %29636
  %29642 = load i8, ptr %848, align 1, !tbaa !17
  %29643 = zext i8 %29642 to i32
  %29644 = sitofp i32 %29643 to double
  br label %29657

29645:                                            ; preds = %29636
  %29646 = load i8, ptr %848, align 1, !tbaa !17
  %29647 = zext i8 %29646 to i32
  %29648 = sitofp i32 %29647 to double
  %29649 = fcmp olt double %29648, 3.276700e+04
  br i1 %29649, label %29650, label %29654

29650:                                            ; preds = %29645
  %29651 = load i8, ptr %848, align 1, !tbaa !17
  %29652 = zext i8 %29651 to i32
  %29653 = sitofp i32 %29652 to double
  br label %29655

29654:                                            ; preds = %29645
  br label %29655

29655:                                            ; preds = %29654, %29650
  %29656 = phi double [ %29653, %29650 ], [ 3.276700e+04, %29654 ]
  br label %29657

29657:                                            ; preds = %29655, %29641
  %29658 = phi double [ %29644, %29641 ], [ %29656, %29655 ]
  br label %29671

29659:                                            ; preds = %29631
  %29660 = load i8, ptr %848, align 1, !tbaa !17
  %29661 = zext i8 %29660 to i32
  %29662 = sitofp i32 %29661 to double
  %29663 = fcmp olt double -3.276800e+04, %29662
  br i1 %29663, label %29664, label %29668

29664:                                            ; preds = %29659
  %29665 = load i8, ptr %848, align 1, !tbaa !17
  %29666 = zext i8 %29665 to i32
  %29667 = sitofp i32 %29666 to double
  br label %29669

29668:                                            ; preds = %29659
  br label %29669

29669:                                            ; preds = %29668, %29664
  %29670 = phi double [ %29667, %29664 ], [ -3.276800e+04, %29668 ]
  br label %29671

29671:                                            ; preds = %29669, %29657
  %29672 = phi double [ %29658, %29657 ], [ %29670, %29669 ]
  %29673 = fptosi double %29672 to i16
  %29674 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %29673, ptr %29674, align 2, !tbaa !15
  br label %29679

29675:                                            ; preds = %29627
  %29676 = load i8, ptr %848, align 1, !tbaa !17
  %29677 = zext i8 %29676 to i16
  %29678 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %29677, ptr %29678, align 2, !tbaa !15
  br label %29679

29679:                                            ; preds = %29675, %29671
  br label %29680

29680:                                            ; preds = %29679, %29592
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %850) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %849) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %848) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %847) #3
  br label %29681

29681:                                            ; preds = %29680
  br label %29682

29682:                                            ; preds = %29681
  br label %30478

29683:                                            ; preds = %26855
  br label %29684

29684:                                            ; preds = %29683
  call void @llvm.lifetime.start.p0(i64 8, ptr %858) #3
  store double 5.000000e-01, ptr %858, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %859) #3
  %29685 = load ptr, ptr %10, align 8, !tbaa !5
  %29686 = load double, ptr %29685, align 8, !tbaa !11
  store double %29686, ptr %859, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %860) #3
  store double 0.000000e+00, ptr %860, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %861) #3
  store double 0.000000e+00, ptr %861, align 8, !tbaa !11
  %29687 = load ptr, ptr %11, align 8, !tbaa !5
  %29688 = icmp ne ptr null, %29687
  br i1 %29688, label %29689, label %29713

29689:                                            ; preds = %29684
  %29690 = load double, ptr %859, align 8, !tbaa !11
  %29691 = load double, ptr %859, align 8, !tbaa !11
  %29692 = fcmp oeq double %29690, %29691
  br i1 %29692, label %29693, label %29713

29693:                                            ; preds = %29689
  %29694 = load ptr, ptr %12, align 8, !tbaa !5
  %29695 = icmp ne ptr null, %29694
  br i1 %29695, label %29696, label %29707

29696:                                            ; preds = %29693
  %29697 = load ptr, ptr %11, align 8, !tbaa !5
  %29698 = load double, ptr %29697, align 8, !tbaa !11
  %29699 = load double, ptr %859, align 8, !tbaa !11
  %29700 = fcmp ole double %29698, %29699
  br i1 %29700, label %29701, label %29707

29701:                                            ; preds = %29696
  %29702 = load double, ptr %859, align 8, !tbaa !11
  %29703 = load ptr, ptr %12, align 8, !tbaa !5
  %29704 = load double, ptr %29703, align 8, !tbaa !11
  %29705 = fcmp ole double %29702, %29704
  br i1 %29705, label %29706, label %29707

29706:                                            ; preds = %29701
  br label %29708

29707:                                            ; preds = %29701, %29696, %29693
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.24, i32 noundef 488, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

29708:                                            ; preds = %29706
  %29709 = load ptr, ptr %11, align 8, !tbaa !5
  %29710 = load double, ptr %29709, align 8, !tbaa !11
  store double %29710, ptr %860, align 8, !tbaa !11
  %29711 = load ptr, ptr %12, align 8, !tbaa !5
  %29712 = load double, ptr %29711, align 8, !tbaa !11
  store double %29712, ptr %861, align 8, !tbaa !11
  br label %29713

29713:                                            ; preds = %29708, %29689, %29684
  %29714 = load i32, ptr %8, align 4, !tbaa !9
  %29715 = icmp ule i32 6, %29714
  br i1 %29715, label %29716, label %29939

29716:                                            ; preds = %29713
  %29717 = load double, ptr %860, align 8, !tbaa !11
  %29718 = load double, ptr %861, align 8, !tbaa !11
  %29719 = fcmp olt double %29717, %29718
  br i1 %29719, label %29720, label %29939

29720:                                            ; preds = %29716
  %29721 = load i32, ptr %8, align 4, !tbaa !9
  %29722 = icmp ule i32 15, %29721
  br i1 %29722, label %29723, label %29763

29723:                                            ; preds = %29720
  call void @llvm.lifetime.start.p0(i64 8, ptr %862) #3
  %29724 = load double, ptr %860, align 8, !tbaa !11
  %29725 = fcmp olt double 0.000000e+00, %29724
  br i1 %29725, label %29726, label %29728

29726:                                            ; preds = %29723
  %29727 = load double, ptr %860, align 8, !tbaa !11
  br label %29729

29728:                                            ; preds = %29723
  br label %29729

29729:                                            ; preds = %29728, %29726
  %29730 = phi double [ %29727, %29726 ], [ 0.000000e+00, %29728 ]
  store double %29730, ptr %862, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %863) #3
  %29731 = load double, ptr %861, align 8, !tbaa !11
  %29732 = fcmp olt double 0.000000e+00, %29731
  br i1 %29732, label %29733, label %29735

29733:                                            ; preds = %29729
  %29734 = load double, ptr %861, align 8, !tbaa !11
  br label %29736

29735:                                            ; preds = %29729
  br label %29736

29736:                                            ; preds = %29735, %29733
  %29737 = phi double [ %29734, %29733 ], [ 0.000000e+00, %29735 ]
  store double %29737, ptr %863, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %864) #3
  %29738 = load double, ptr %862, align 8, !tbaa !11
  %29739 = load double, ptr %863, align 8, !tbaa !11
  %29740 = fcmp olt double %29738, %29739
  br i1 %29740, label %29741, label %29749

29741:                                            ; preds = %29736
  %29742 = load double, ptr %861, align 8, !tbaa !11
  %29743 = load double, ptr %860, align 8, !tbaa !11
  %29744 = fsub double %29742, %29743
  %29745 = load double, ptr %863, align 8, !tbaa !11
  %29746 = load double, ptr %862, align 8, !tbaa !11
  %29747 = fsub double %29745, %29746
  %29748 = fdiv double %29744, %29747
  br label %29750

29749:                                            ; preds = %29736
  br label %29750

29750:                                            ; preds = %29749, %29741
  %29751 = phi double [ %29748, %29741 ], [ 1.000000e+00, %29749 ]
  store double %29751, ptr %864, align 8, !tbaa !11
  %29752 = load double, ptr %864, align 8, !tbaa !11
  %29753 = load double, ptr %859, align 8, !tbaa !11
  %29754 = fcmp olt double 0.000000e+00, %29753
  br i1 %29754, label %29755, label %29757

29755:                                            ; preds = %29750
  %29756 = load double, ptr %859, align 8, !tbaa !11
  br label %29758

29757:                                            ; preds = %29750
  br label %29758

29758:                                            ; preds = %29757, %29755
  %29759 = phi double [ %29756, %29755 ], [ 0.000000e+00, %29757 ]
  %29760 = fmul double %29752, %29759
  store double %29760, ptr %859, align 8, !tbaa !11
  %29761 = load double, ptr %862, align 8, !tbaa !11
  store double %29761, ptr %860, align 8, !tbaa !11
  %29762 = load double, ptr %863, align 8, !tbaa !11
  store double %29762, ptr %861, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %864) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %863) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %862) #3
  br label %29819

29763:                                            ; preds = %29720
  %29764 = load i32, ptr %8, align 4, !tbaa !9
  %29765 = icmp ugt i32 6, %29764
  br i1 %29765, label %29794, label %29766

29766:                                            ; preds = %29763
  %29767 = load i32, ptr %8, align 4, !tbaa !9
  %29768 = icmp ugt i32 15, %29767
  br i1 %29768, label %29769, label %29780

29769:                                            ; preds = %29766
  %29770 = load i32, ptr %9, align 4, !tbaa !9
  %29771 = icmp ugt i32 15, %29770
  br i1 %29771, label %29772, label %29777

29772:                                            ; preds = %29769
  %29773 = load i32, ptr %9, align 4, !tbaa !9
  %29774 = load i32, ptr %8, align 4, !tbaa !9
  %29775 = icmp ugt i32 %29773, %29774
  %29776 = zext i1 %29775 to i32
  br label %29778

29777:                                            ; preds = %29769
  br label %29778

29778:                                            ; preds = %29777, %29772
  %29779 = phi i32 [ %29776, %29772 ], [ 0, %29777 ]
  br label %29791

29780:                                            ; preds = %29766
  %29781 = load i32, ptr %9, align 4, !tbaa !9
  %29782 = icmp ugt i32 15, %29781
  br i1 %29782, label %29783, label %29784

29783:                                            ; preds = %29780
  br label %29789

29784:                                            ; preds = %29780
  %29785 = load i32, ptr %9, align 4, !tbaa !9
  %29786 = load i32, ptr %8, align 4, !tbaa !9
  %29787 = icmp ugt i32 %29785, %29786
  %29788 = zext i1 %29787 to i32
  br label %29789

29789:                                            ; preds = %29784, %29783
  %29790 = phi i32 [ 0, %29783 ], [ %29788, %29784 ]
  br label %29791

29791:                                            ; preds = %29789, %29778
  %29792 = phi i32 [ %29779, %29778 ], [ %29790, %29789 ]
  %29793 = icmp ne i32 %29792, 0
  br label %29794

29794:                                            ; preds = %29791, %29763
  %29795 = phi i1 [ true, %29763 ], [ %29793, %29791 ]
  %29796 = zext i1 %29795 to i32
  %29797 = icmp eq i32 0, %29796
  br i1 %29797, label %29798, label %29818

29798:                                            ; preds = %29794
  %29799 = load double, ptr %860, align 8, !tbaa !11
  %29800 = fcmp ogt double 0.000000e+00, %29799
  br i1 %29800, label %29801, label %29818

29801:                                            ; preds = %29798
  %29802 = load double, ptr %861, align 8, !tbaa !11
  %29803 = fcmp olt double 0.000000e+00, %29802
  br i1 %29803, label %29804, label %29818

29804:                                            ; preds = %29801
  %29805 = load double, ptr %860, align 8, !tbaa !11
  %29806 = fneg double %29805
  %29807 = load double, ptr %861, align 8, !tbaa !11
  %29808 = fcmp olt double %29806, %29807
  br i1 %29808, label %29809, label %29811

29809:                                            ; preds = %29804
  %29810 = load double, ptr %861, align 8, !tbaa !11
  br label %29814

29811:                                            ; preds = %29804
  %29812 = load double, ptr %860, align 8, !tbaa !11
  %29813 = fneg double %29812
  br label %29814

29814:                                            ; preds = %29811, %29809
  %29815 = phi double [ %29810, %29809 ], [ %29813, %29811 ]
  store double %29815, ptr %861, align 8, !tbaa !11
  %29816 = load double, ptr %861, align 8, !tbaa !11
  %29817 = fneg double %29816
  store double %29817, ptr %860, align 8, !tbaa !11
  br label %29818

29818:                                            ; preds = %29814, %29801, %29798, %29794
  br label %29819

29819:                                            ; preds = %29818, %29758
  call void @llvm.lifetime.start.p0(i64 8, ptr %865) #3
  %29820 = load double, ptr %860, align 8, !tbaa !11
  %29821 = fcmp ole double 0.000000e+00, %29820
  %29822 = zext i1 %29821 to i64
  %29823 = select i1 %29821, double 0.000000e+00, double -3.276800e+04
  store double %29823, ptr %865, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %866) #3
  %29824 = load double, ptr %861, align 8, !tbaa !11
  %29825 = fcmp ole double 0.000000e+00, %29824
  %29826 = zext i1 %29825 to i64
  %29827 = select i1 %29825, double 3.276700e+04, double 0.000000e+00
  store double %29827, ptr %866, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %867) #3
  %29828 = load double, ptr %859, align 8, !tbaa !11
  %29829 = load double, ptr %860, align 8, !tbaa !11
  %29830 = fsub double %29828, %29829
  %29831 = load double, ptr %866, align 8, !tbaa !11
  %29832 = load double, ptr %865, align 8, !tbaa !11
  %29833 = fsub double %29831, %29832
  %29834 = fmul double %29830, %29833
  %29835 = load double, ptr %861, align 8, !tbaa !11
  %29836 = load double, ptr %860, align 8, !tbaa !11
  %29837 = fsub double %29835, %29836
  %29838 = fdiv double %29834, %29837
  %29839 = load double, ptr %865, align 8, !tbaa !11
  %29840 = fadd double %29838, %29839
  store double %29840, ptr %867, align 8, !tbaa !11
  %29841 = load double, ptr %865, align 8, !tbaa !11
  %29842 = load double, ptr %867, align 8, !tbaa !11
  %29843 = fcmp ole double 0.000000e+00, %29842
  br i1 %29843, label %29844, label %29847

29844:                                            ; preds = %29819
  %29845 = load double, ptr %867, align 8, !tbaa !11
  %29846 = fadd double %29845, 5.000000e-01
  br label %29850

29847:                                            ; preds = %29819
  %29848 = load double, ptr %867, align 8, !tbaa !11
  %29849 = fsub double %29848, 5.000000e-01
  br label %29850

29850:                                            ; preds = %29847, %29844
  %29851 = phi double [ %29846, %29844 ], [ %29849, %29847 ]
  %29852 = fcmp olt double %29841, %29851
  br i1 %29852, label %29853, label %29907

29853:                                            ; preds = %29850
  %29854 = load double, ptr %867, align 8, !tbaa !11
  %29855 = fcmp ole double 0.000000e+00, %29854
  br i1 %29855, label %29856, label %29859

29856:                                            ; preds = %29853
  %29857 = load double, ptr %867, align 8, !tbaa !11
  %29858 = fadd double %29857, 5.000000e-01
  br label %29862

29859:                                            ; preds = %29853
  %29860 = load double, ptr %867, align 8, !tbaa !11
  %29861 = fsub double %29860, 5.000000e-01
  br label %29862

29862:                                            ; preds = %29859, %29856
  %29863 = phi double [ %29858, %29856 ], [ %29861, %29859 ]
  %29864 = load double, ptr %866, align 8, !tbaa !11
  %29865 = fcmp ole double %29863, %29864
  br i1 %29865, label %29866, label %29877

29866:                                            ; preds = %29862
  %29867 = load double, ptr %867, align 8, !tbaa !11
  %29868 = fcmp ole double 0.000000e+00, %29867
  br i1 %29868, label %29869, label %29872

29869:                                            ; preds = %29866
  %29870 = load double, ptr %867, align 8, !tbaa !11
  %29871 = fadd double %29870, 5.000000e-01
  br label %29875

29872:                                            ; preds = %29866
  %29873 = load double, ptr %867, align 8, !tbaa !11
  %29874 = fsub double %29873, 5.000000e-01
  br label %29875

29875:                                            ; preds = %29872, %29869
  %29876 = phi double [ %29871, %29869 ], [ %29874, %29872 ]
  br label %29905

29877:                                            ; preds = %29862
  %29878 = load double, ptr %867, align 8, !tbaa !11
  %29879 = fcmp ole double 0.000000e+00, %29878
  br i1 %29879, label %29880, label %29883

29880:                                            ; preds = %29877
  %29881 = load double, ptr %867, align 8, !tbaa !11
  %29882 = fadd double %29881, 5.000000e-01
  br label %29886

29883:                                            ; preds = %29877
  %29884 = load double, ptr %867, align 8, !tbaa !11
  %29885 = fsub double %29884, 5.000000e-01
  br label %29886

29886:                                            ; preds = %29883, %29880
  %29887 = phi double [ %29882, %29880 ], [ %29885, %29883 ]
  %29888 = load double, ptr %866, align 8, !tbaa !11
  %29889 = fcmp olt double %29887, %29888
  br i1 %29889, label %29890, label %29901

29890:                                            ; preds = %29886
  %29891 = load double, ptr %867, align 8, !tbaa !11
  %29892 = fcmp ole double 0.000000e+00, %29891
  br i1 %29892, label %29893, label %29896

29893:                                            ; preds = %29890
  %29894 = load double, ptr %867, align 8, !tbaa !11
  %29895 = fadd double %29894, 5.000000e-01
  br label %29899

29896:                                            ; preds = %29890
  %29897 = load double, ptr %867, align 8, !tbaa !11
  %29898 = fsub double %29897, 5.000000e-01
  br label %29899

29899:                                            ; preds = %29896, %29893
  %29900 = phi double [ %29895, %29893 ], [ %29898, %29896 ]
  br label %29903

29901:                                            ; preds = %29886
  %29902 = load double, ptr %866, align 8, !tbaa !11
  br label %29903

29903:                                            ; preds = %29901, %29899
  %29904 = phi double [ %29900, %29899 ], [ %29902, %29901 ]
  br label %29905

29905:                                            ; preds = %29903, %29875
  %29906 = phi double [ %29876, %29875 ], [ %29904, %29903 ]
  br label %29935

29907:                                            ; preds = %29850
  %29908 = load double, ptr %865, align 8, !tbaa !11
  %29909 = load double, ptr %867, align 8, !tbaa !11
  %29910 = fcmp ole double 0.000000e+00, %29909
  br i1 %29910, label %29911, label %29914

29911:                                            ; preds = %29907
  %29912 = load double, ptr %867, align 8, !tbaa !11
  %29913 = fadd double %29912, 5.000000e-01
  br label %29917

29914:                                            ; preds = %29907
  %29915 = load double, ptr %867, align 8, !tbaa !11
  %29916 = fsub double %29915, 5.000000e-01
  br label %29917

29917:                                            ; preds = %29914, %29911
  %29918 = phi double [ %29913, %29911 ], [ %29916, %29914 ]
  %29919 = fcmp olt double %29908, %29918
  br i1 %29919, label %29920, label %29931

29920:                                            ; preds = %29917
  %29921 = load double, ptr %867, align 8, !tbaa !11
  %29922 = fcmp ole double 0.000000e+00, %29921
  br i1 %29922, label %29923, label %29926

29923:                                            ; preds = %29920
  %29924 = load double, ptr %867, align 8, !tbaa !11
  %29925 = fadd double %29924, 5.000000e-01
  br label %29929

29926:                                            ; preds = %29920
  %29927 = load double, ptr %867, align 8, !tbaa !11
  %29928 = fsub double %29927, 5.000000e-01
  br label %29929

29929:                                            ; preds = %29926, %29923
  %29930 = phi double [ %29925, %29923 ], [ %29928, %29926 ]
  br label %29933

29931:                                            ; preds = %29917
  %29932 = load double, ptr %865, align 8, !tbaa !11
  br label %29933

29933:                                            ; preds = %29931, %29929
  %29934 = phi double [ %29930, %29929 ], [ %29932, %29931 ]
  br label %29935

29935:                                            ; preds = %29933, %29905
  %29936 = phi double [ %29906, %29905 ], [ %29934, %29933 ]
  %29937 = fptosi double %29936 to i16
  %29938 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %29937, ptr %29938, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %867) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %866) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %865) #3
  br label %30065

29939:                                            ; preds = %29716, %29713
  %29940 = load i32, ptr %8, align 4, !tbaa !9
  %29941 = icmp ugt i32 6, %29940
  br i1 %29941, label %29970, label %29942

29942:                                            ; preds = %29939
  %29943 = load i32, ptr %8, align 4, !tbaa !9
  %29944 = icmp ugt i32 15, %29943
  br i1 %29944, label %29945, label %29956

29945:                                            ; preds = %29942
  %29946 = load i32, ptr %9, align 4, !tbaa !9
  %29947 = icmp ugt i32 15, %29946
  br i1 %29947, label %29948, label %29953

29948:                                            ; preds = %29945
  %29949 = load i32, ptr %9, align 4, !tbaa !9
  %29950 = load i32, ptr %8, align 4, !tbaa !9
  %29951 = icmp ugt i32 %29949, %29950
  %29952 = zext i1 %29951 to i32
  br label %29954

29953:                                            ; preds = %29945
  br label %29954

29954:                                            ; preds = %29953, %29948
  %29955 = phi i32 [ %29952, %29948 ], [ 0, %29953 ]
  br label %29967

29956:                                            ; preds = %29942
  %29957 = load i32, ptr %9, align 4, !tbaa !9
  %29958 = icmp ugt i32 15, %29957
  br i1 %29958, label %29959, label %29960

29959:                                            ; preds = %29956
  br label %29965

29960:                                            ; preds = %29956
  %29961 = load i32, ptr %9, align 4, !tbaa !9
  %29962 = load i32, ptr %8, align 4, !tbaa !9
  %29963 = icmp ugt i32 %29961, %29962
  %29964 = zext i1 %29963 to i32
  br label %29965

29965:                                            ; preds = %29960, %29959
  %29966 = phi i32 [ 0, %29959 ], [ %29964, %29960 ]
  br label %29967

29967:                                            ; preds = %29965, %29954
  %29968 = phi i32 [ %29955, %29954 ], [ %29966, %29965 ]
  %29969 = icmp ne i32 %29968, 0
  br label %29970

29970:                                            ; preds = %29967, %29939
  %29971 = phi i1 [ true, %29939 ], [ %29969, %29967 ]
  %29972 = zext i1 %29971 to i32
  %29973 = icmp eq i32 0, %29972
  br i1 %29973, label %29974, label %30051

29974:                                            ; preds = %29970
  %29975 = load double, ptr %859, align 8, !tbaa !11
  %29976 = fcmp ole double 0.000000e+00, %29975
  br i1 %29976, label %29977, label %30012

29977:                                            ; preds = %29974
  %29978 = load double, ptr %859, align 8, !tbaa !11
  %29979 = fadd double %29978, 5.000000e-01
  %29980 = fcmp olt double -3.276800e+04, %29979
  br i1 %29980, label %29981, label %30000

29981:                                            ; preds = %29977
  %29982 = load double, ptr %859, align 8, !tbaa !11
  %29983 = fadd double %29982, 5.000000e-01
  %29984 = fcmp ole double %29983, 3.276700e+04
  br i1 %29984, label %29985, label %29988

29985:                                            ; preds = %29981
  %29986 = load double, ptr %859, align 8, !tbaa !11
  %29987 = fadd double %29986, 5.000000e-01
  br label %29998

29988:                                            ; preds = %29981
  %29989 = load double, ptr %859, align 8, !tbaa !11
  %29990 = fadd double %29989, 5.000000e-01
  %29991 = fcmp olt double %29990, 3.276700e+04
  br i1 %29991, label %29992, label %29995

29992:                                            ; preds = %29988
  %29993 = load double, ptr %859, align 8, !tbaa !11
  %29994 = fadd double %29993, 5.000000e-01
  br label %29996

29995:                                            ; preds = %29988
  br label %29996

29996:                                            ; preds = %29995, %29992
  %29997 = phi double [ %29994, %29992 ], [ 3.276700e+04, %29995 ]
  br label %29998

29998:                                            ; preds = %29996, %29985
  %29999 = phi double [ %29987, %29985 ], [ %29997, %29996 ]
  br label %30010

30000:                                            ; preds = %29977
  %30001 = load double, ptr %859, align 8, !tbaa !11
  %30002 = fadd double %30001, 5.000000e-01
  %30003 = fcmp olt double -3.276800e+04, %30002
  br i1 %30003, label %30004, label %30007

30004:                                            ; preds = %30000
  %30005 = load double, ptr %859, align 8, !tbaa !11
  %30006 = fadd double %30005, 5.000000e-01
  br label %30008

30007:                                            ; preds = %30000
  br label %30008

30008:                                            ; preds = %30007, %30004
  %30009 = phi double [ %30006, %30004 ], [ -3.276800e+04, %30007 ]
  br label %30010

30010:                                            ; preds = %30008, %29998
  %30011 = phi double [ %29999, %29998 ], [ %30009, %30008 ]
  br label %30047

30012:                                            ; preds = %29974
  %30013 = load double, ptr %859, align 8, !tbaa !11
  %30014 = fsub double %30013, 5.000000e-01
  %30015 = fcmp olt double -3.276800e+04, %30014
  br i1 %30015, label %30016, label %30035

30016:                                            ; preds = %30012
  %30017 = load double, ptr %859, align 8, !tbaa !11
  %30018 = fsub double %30017, 5.000000e-01
  %30019 = fcmp ole double %30018, 3.276700e+04
  br i1 %30019, label %30020, label %30023

30020:                                            ; preds = %30016
  %30021 = load double, ptr %859, align 8, !tbaa !11
  %30022 = fsub double %30021, 5.000000e-01
  br label %30033

30023:                                            ; preds = %30016
  %30024 = load double, ptr %859, align 8, !tbaa !11
  %30025 = fsub double %30024, 5.000000e-01
  %30026 = fcmp olt double %30025, 3.276700e+04
  br i1 %30026, label %30027, label %30030

30027:                                            ; preds = %30023
  %30028 = load double, ptr %859, align 8, !tbaa !11
  %30029 = fsub double %30028, 5.000000e-01
  br label %30031

30030:                                            ; preds = %30023
  br label %30031

30031:                                            ; preds = %30030, %30027
  %30032 = phi double [ %30029, %30027 ], [ 3.276700e+04, %30030 ]
  br label %30033

30033:                                            ; preds = %30031, %30020
  %30034 = phi double [ %30022, %30020 ], [ %30032, %30031 ]
  br label %30045

30035:                                            ; preds = %30012
  %30036 = load double, ptr %859, align 8, !tbaa !11
  %30037 = fsub double %30036, 5.000000e-01
  %30038 = fcmp olt double -3.276800e+04, %30037
  br i1 %30038, label %30039, label %30042

30039:                                            ; preds = %30035
  %30040 = load double, ptr %859, align 8, !tbaa !11
  %30041 = fsub double %30040, 5.000000e-01
  br label %30043

30042:                                            ; preds = %30035
  br label %30043

30043:                                            ; preds = %30042, %30039
  %30044 = phi double [ %30041, %30039 ], [ -3.276800e+04, %30042 ]
  br label %30045

30045:                                            ; preds = %30043, %30033
  %30046 = phi double [ %30034, %30033 ], [ %30044, %30043 ]
  br label %30047

30047:                                            ; preds = %30045, %30010
  %30048 = phi double [ %30011, %30010 ], [ %30046, %30045 ]
  %30049 = fptosi double %30048 to i16
  %30050 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %30049, ptr %30050, align 2, !tbaa !15
  br label %30064

30051:                                            ; preds = %29970
  %30052 = load double, ptr %859, align 8, !tbaa !11
  %30053 = fcmp ole double 0.000000e+00, %30052
  br i1 %30053, label %30054, label %30057

30054:                                            ; preds = %30051
  %30055 = load double, ptr %859, align 8, !tbaa !11
  %30056 = fadd double %30055, 5.000000e-01
  br label %30060

30057:                                            ; preds = %30051
  %30058 = load double, ptr %859, align 8, !tbaa !11
  %30059 = fsub double %30058, 5.000000e-01
  br label %30060

30060:                                            ; preds = %30057, %30054
  %30061 = phi double [ %30056, %30054 ], [ %30059, %30057 ]
  %30062 = fptosi double %30061 to i16
  %30063 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %30062, ptr %30063, align 2, !tbaa !15
  br label %30064

30064:                                            ; preds = %30060, %30047
  br label %30065

30065:                                            ; preds = %30064, %29935
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %861) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %860) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %859) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %858) #3
  br label %30066

30066:                                            ; preds = %30065
  br label %30067

30067:                                            ; preds = %30066
  br label %30478

30068:                                            ; preds = %26855
  br label %30069

30069:                                            ; preds = %30068
  call void @llvm.lifetime.start.p0(i64 8, ptr %868) #3
  store double 5.000000e-01, ptr %868, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %869) #3
  %30070 = load ptr, ptr %10, align 8, !tbaa !5
  %30071 = load float, ptr %30070, align 4, !tbaa !18
  store float %30071, ptr %869, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %870) #3
  store double 0.000000e+00, ptr %870, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %871) #3
  store double 0.000000e+00, ptr %871, align 8, !tbaa !11
  %30072 = load ptr, ptr %11, align 8, !tbaa !5
  %30073 = icmp ne ptr null, %30072
  br i1 %30073, label %30074, label %30100

30074:                                            ; preds = %30069
  %30075 = load float, ptr %869, align 4, !tbaa !18
  %30076 = load float, ptr %869, align 4, !tbaa !18
  %30077 = fcmp oeq float %30075, %30076
  br i1 %30077, label %30078, label %30100

30078:                                            ; preds = %30074
  %30079 = load ptr, ptr %12, align 8, !tbaa !5
  %30080 = icmp ne ptr null, %30079
  br i1 %30080, label %30081, label %30092

30081:                                            ; preds = %30078
  %30082 = load ptr, ptr %11, align 8, !tbaa !5
  %30083 = load float, ptr %30082, align 4, !tbaa !18
  %30084 = load float, ptr %869, align 4, !tbaa !18
  %30085 = fcmp ole float %30083, %30084
  br i1 %30085, label %30086, label %30092

30086:                                            ; preds = %30081
  %30087 = load float, ptr %869, align 4, !tbaa !18
  %30088 = load ptr, ptr %12, align 8, !tbaa !5
  %30089 = load float, ptr %30088, align 4, !tbaa !18
  %30090 = fcmp ole float %30087, %30089
  br i1 %30090, label %30091, label %30092

30091:                                            ; preds = %30086
  br label %30093

30092:                                            ; preds = %30086, %30081, %30078
  call void @__assert_fail(ptr noundef @.str.51, ptr noundef @.str.24, i32 noundef 488, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

30093:                                            ; preds = %30091
  %30094 = load ptr, ptr %11, align 8, !tbaa !5
  %30095 = load float, ptr %30094, align 4, !tbaa !18
  %30096 = fpext float %30095 to double
  store double %30096, ptr %870, align 8, !tbaa !11
  %30097 = load ptr, ptr %12, align 8, !tbaa !5
  %30098 = load float, ptr %30097, align 4, !tbaa !18
  %30099 = fpext float %30098 to double
  store double %30099, ptr %871, align 8, !tbaa !11
  br label %30100

30100:                                            ; preds = %30093, %30074, %30069
  %30101 = load i32, ptr %8, align 4, !tbaa !9
  %30102 = icmp ule i32 6, %30101
  br i1 %30102, label %30103, label %30329

30103:                                            ; preds = %30100
  %30104 = load double, ptr %870, align 8, !tbaa !11
  %30105 = load double, ptr %871, align 8, !tbaa !11
  %30106 = fcmp olt double %30104, %30105
  br i1 %30106, label %30107, label %30329

30107:                                            ; preds = %30103
  %30108 = load i32, ptr %8, align 4, !tbaa !9
  %30109 = icmp ule i32 15, %30108
  br i1 %30109, label %30110, label %30152

30110:                                            ; preds = %30107
  call void @llvm.lifetime.start.p0(i64 8, ptr %872) #3
  %30111 = load double, ptr %870, align 8, !tbaa !11
  %30112 = fcmp olt double 0.000000e+00, %30111
  br i1 %30112, label %30113, label %30115

30113:                                            ; preds = %30110
  %30114 = load double, ptr %870, align 8, !tbaa !11
  br label %30116

30115:                                            ; preds = %30110
  br label %30116

30116:                                            ; preds = %30115, %30113
  %30117 = phi double [ %30114, %30113 ], [ 0.000000e+00, %30115 ]
  store double %30117, ptr %872, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %873) #3
  %30118 = load double, ptr %871, align 8, !tbaa !11
  %30119 = fcmp olt double 0.000000e+00, %30118
  br i1 %30119, label %30120, label %30122

30120:                                            ; preds = %30116
  %30121 = load double, ptr %871, align 8, !tbaa !11
  br label %30123

30122:                                            ; preds = %30116
  br label %30123

30123:                                            ; preds = %30122, %30120
  %30124 = phi double [ %30121, %30120 ], [ 0.000000e+00, %30122 ]
  store double %30124, ptr %873, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %874) #3
  %30125 = load double, ptr %872, align 8, !tbaa !11
  %30126 = load double, ptr %873, align 8, !tbaa !11
  %30127 = fcmp olt double %30125, %30126
  br i1 %30127, label %30128, label %30136

30128:                                            ; preds = %30123
  %30129 = load double, ptr %871, align 8, !tbaa !11
  %30130 = load double, ptr %870, align 8, !tbaa !11
  %30131 = fsub double %30129, %30130
  %30132 = load double, ptr %873, align 8, !tbaa !11
  %30133 = load double, ptr %872, align 8, !tbaa !11
  %30134 = fsub double %30132, %30133
  %30135 = fdiv double %30131, %30134
  br label %30137

30136:                                            ; preds = %30123
  br label %30137

30137:                                            ; preds = %30136, %30128
  %30138 = phi double [ %30135, %30128 ], [ 1.000000e+00, %30136 ]
  store double %30138, ptr %874, align 8, !tbaa !11
  %30139 = load double, ptr %874, align 8, !tbaa !11
  %30140 = load float, ptr %869, align 4, !tbaa !18
  %30141 = fcmp olt float 0.000000e+00, %30140
  br i1 %30141, label %30142, label %30144

30142:                                            ; preds = %30137
  %30143 = load float, ptr %869, align 4, !tbaa !18
  br label %30145

30144:                                            ; preds = %30137
  br label %30145

30145:                                            ; preds = %30144, %30142
  %30146 = phi float [ %30143, %30142 ], [ 0.000000e+00, %30144 ]
  %30147 = fpext float %30146 to double
  %30148 = fmul double %30139, %30147
  %30149 = fptrunc double %30148 to float
  store float %30149, ptr %869, align 4, !tbaa !18
  %30150 = load double, ptr %872, align 8, !tbaa !11
  store double %30150, ptr %870, align 8, !tbaa !11
  %30151 = load double, ptr %873, align 8, !tbaa !11
  store double %30151, ptr %871, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %874) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %873) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %872) #3
  br label %30208

30152:                                            ; preds = %30107
  %30153 = load i32, ptr %8, align 4, !tbaa !9
  %30154 = icmp ugt i32 6, %30153
  br i1 %30154, label %30183, label %30155

30155:                                            ; preds = %30152
  %30156 = load i32, ptr %8, align 4, !tbaa !9
  %30157 = icmp ugt i32 15, %30156
  br i1 %30157, label %30158, label %30169

30158:                                            ; preds = %30155
  %30159 = load i32, ptr %9, align 4, !tbaa !9
  %30160 = icmp ugt i32 15, %30159
  br i1 %30160, label %30161, label %30166

30161:                                            ; preds = %30158
  %30162 = load i32, ptr %9, align 4, !tbaa !9
  %30163 = load i32, ptr %8, align 4, !tbaa !9
  %30164 = icmp ugt i32 %30162, %30163
  %30165 = zext i1 %30164 to i32
  br label %30167

30166:                                            ; preds = %30158
  br label %30167

30167:                                            ; preds = %30166, %30161
  %30168 = phi i32 [ %30165, %30161 ], [ 0, %30166 ]
  br label %30180

30169:                                            ; preds = %30155
  %30170 = load i32, ptr %9, align 4, !tbaa !9
  %30171 = icmp ugt i32 15, %30170
  br i1 %30171, label %30172, label %30173

30172:                                            ; preds = %30169
  br label %30178

30173:                                            ; preds = %30169
  %30174 = load i32, ptr %9, align 4, !tbaa !9
  %30175 = load i32, ptr %8, align 4, !tbaa !9
  %30176 = icmp ugt i32 %30174, %30175
  %30177 = zext i1 %30176 to i32
  br label %30178

30178:                                            ; preds = %30173, %30172
  %30179 = phi i32 [ 0, %30172 ], [ %30177, %30173 ]
  br label %30180

30180:                                            ; preds = %30178, %30167
  %30181 = phi i32 [ %30168, %30167 ], [ %30179, %30178 ]
  %30182 = icmp ne i32 %30181, 0
  br label %30183

30183:                                            ; preds = %30180, %30152
  %30184 = phi i1 [ true, %30152 ], [ %30182, %30180 ]
  %30185 = zext i1 %30184 to i32
  %30186 = icmp eq i32 0, %30185
  br i1 %30186, label %30187, label %30207

30187:                                            ; preds = %30183
  %30188 = load double, ptr %870, align 8, !tbaa !11
  %30189 = fcmp ogt double 0.000000e+00, %30188
  br i1 %30189, label %30190, label %30207

30190:                                            ; preds = %30187
  %30191 = load double, ptr %871, align 8, !tbaa !11
  %30192 = fcmp olt double 0.000000e+00, %30191
  br i1 %30192, label %30193, label %30207

30193:                                            ; preds = %30190
  %30194 = load double, ptr %870, align 8, !tbaa !11
  %30195 = fneg double %30194
  %30196 = load double, ptr %871, align 8, !tbaa !11
  %30197 = fcmp olt double %30195, %30196
  br i1 %30197, label %30198, label %30200

30198:                                            ; preds = %30193
  %30199 = load double, ptr %871, align 8, !tbaa !11
  br label %30203

30200:                                            ; preds = %30193
  %30201 = load double, ptr %870, align 8, !tbaa !11
  %30202 = fneg double %30201
  br label %30203

30203:                                            ; preds = %30200, %30198
  %30204 = phi double [ %30199, %30198 ], [ %30202, %30200 ]
  store double %30204, ptr %871, align 8, !tbaa !11
  %30205 = load double, ptr %871, align 8, !tbaa !11
  %30206 = fneg double %30205
  store double %30206, ptr %870, align 8, !tbaa !11
  br label %30207

30207:                                            ; preds = %30203, %30190, %30187, %30183
  br label %30208

30208:                                            ; preds = %30207, %30145
  call void @llvm.lifetime.start.p0(i64 8, ptr %875) #3
  %30209 = load double, ptr %870, align 8, !tbaa !11
  %30210 = fcmp ole double 0.000000e+00, %30209
  %30211 = zext i1 %30210 to i64
  %30212 = select i1 %30210, double 0.000000e+00, double -3.276800e+04
  store double %30212, ptr %875, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %876) #3
  %30213 = load double, ptr %871, align 8, !tbaa !11
  %30214 = fcmp ole double 0.000000e+00, %30213
  %30215 = zext i1 %30214 to i64
  %30216 = select i1 %30214, double 3.276700e+04, double 0.000000e+00
  store double %30216, ptr %876, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %877) #3
  %30217 = load float, ptr %869, align 4, !tbaa !18
  %30218 = fpext float %30217 to double
  %30219 = load double, ptr %870, align 8, !tbaa !11
  %30220 = fsub double %30218, %30219
  %30221 = load double, ptr %876, align 8, !tbaa !11
  %30222 = load double, ptr %875, align 8, !tbaa !11
  %30223 = fsub double %30221, %30222
  %30224 = fmul double %30220, %30223
  %30225 = load double, ptr %871, align 8, !tbaa !11
  %30226 = load double, ptr %870, align 8, !tbaa !11
  %30227 = fsub double %30225, %30226
  %30228 = fdiv double %30224, %30227
  %30229 = load double, ptr %875, align 8, !tbaa !11
  %30230 = fadd double %30228, %30229
  store double %30230, ptr %877, align 8, !tbaa !11
  %30231 = load double, ptr %875, align 8, !tbaa !11
  %30232 = load double, ptr %877, align 8, !tbaa !11
  %30233 = fcmp ole double 0.000000e+00, %30232
  br i1 %30233, label %30234, label %30237

30234:                                            ; preds = %30208
  %30235 = load double, ptr %877, align 8, !tbaa !11
  %30236 = fadd double %30235, 5.000000e-01
  br label %30240

30237:                                            ; preds = %30208
  %30238 = load double, ptr %877, align 8, !tbaa !11
  %30239 = fsub double %30238, 5.000000e-01
  br label %30240

30240:                                            ; preds = %30237, %30234
  %30241 = phi double [ %30236, %30234 ], [ %30239, %30237 ]
  %30242 = fcmp olt double %30231, %30241
  br i1 %30242, label %30243, label %30297

30243:                                            ; preds = %30240
  %30244 = load double, ptr %877, align 8, !tbaa !11
  %30245 = fcmp ole double 0.000000e+00, %30244
  br i1 %30245, label %30246, label %30249

30246:                                            ; preds = %30243
  %30247 = load double, ptr %877, align 8, !tbaa !11
  %30248 = fadd double %30247, 5.000000e-01
  br label %30252

30249:                                            ; preds = %30243
  %30250 = load double, ptr %877, align 8, !tbaa !11
  %30251 = fsub double %30250, 5.000000e-01
  br label %30252

30252:                                            ; preds = %30249, %30246
  %30253 = phi double [ %30248, %30246 ], [ %30251, %30249 ]
  %30254 = load double, ptr %876, align 8, !tbaa !11
  %30255 = fcmp ole double %30253, %30254
  br i1 %30255, label %30256, label %30267

30256:                                            ; preds = %30252
  %30257 = load double, ptr %877, align 8, !tbaa !11
  %30258 = fcmp ole double 0.000000e+00, %30257
  br i1 %30258, label %30259, label %30262

30259:                                            ; preds = %30256
  %30260 = load double, ptr %877, align 8, !tbaa !11
  %30261 = fadd double %30260, 5.000000e-01
  br label %30265

30262:                                            ; preds = %30256
  %30263 = load double, ptr %877, align 8, !tbaa !11
  %30264 = fsub double %30263, 5.000000e-01
  br label %30265

30265:                                            ; preds = %30262, %30259
  %30266 = phi double [ %30261, %30259 ], [ %30264, %30262 ]
  br label %30295

30267:                                            ; preds = %30252
  %30268 = load double, ptr %877, align 8, !tbaa !11
  %30269 = fcmp ole double 0.000000e+00, %30268
  br i1 %30269, label %30270, label %30273

30270:                                            ; preds = %30267
  %30271 = load double, ptr %877, align 8, !tbaa !11
  %30272 = fadd double %30271, 5.000000e-01
  br label %30276

30273:                                            ; preds = %30267
  %30274 = load double, ptr %877, align 8, !tbaa !11
  %30275 = fsub double %30274, 5.000000e-01
  br label %30276

30276:                                            ; preds = %30273, %30270
  %30277 = phi double [ %30272, %30270 ], [ %30275, %30273 ]
  %30278 = load double, ptr %876, align 8, !tbaa !11
  %30279 = fcmp olt double %30277, %30278
  br i1 %30279, label %30280, label %30291

30280:                                            ; preds = %30276
  %30281 = load double, ptr %877, align 8, !tbaa !11
  %30282 = fcmp ole double 0.000000e+00, %30281
  br i1 %30282, label %30283, label %30286

30283:                                            ; preds = %30280
  %30284 = load double, ptr %877, align 8, !tbaa !11
  %30285 = fadd double %30284, 5.000000e-01
  br label %30289

30286:                                            ; preds = %30280
  %30287 = load double, ptr %877, align 8, !tbaa !11
  %30288 = fsub double %30287, 5.000000e-01
  br label %30289

30289:                                            ; preds = %30286, %30283
  %30290 = phi double [ %30285, %30283 ], [ %30288, %30286 ]
  br label %30293

30291:                                            ; preds = %30276
  %30292 = load double, ptr %876, align 8, !tbaa !11
  br label %30293

30293:                                            ; preds = %30291, %30289
  %30294 = phi double [ %30290, %30289 ], [ %30292, %30291 ]
  br label %30295

30295:                                            ; preds = %30293, %30265
  %30296 = phi double [ %30266, %30265 ], [ %30294, %30293 ]
  br label %30325

30297:                                            ; preds = %30240
  %30298 = load double, ptr %875, align 8, !tbaa !11
  %30299 = load double, ptr %877, align 8, !tbaa !11
  %30300 = fcmp ole double 0.000000e+00, %30299
  br i1 %30300, label %30301, label %30304

30301:                                            ; preds = %30297
  %30302 = load double, ptr %877, align 8, !tbaa !11
  %30303 = fadd double %30302, 5.000000e-01
  br label %30307

30304:                                            ; preds = %30297
  %30305 = load double, ptr %877, align 8, !tbaa !11
  %30306 = fsub double %30305, 5.000000e-01
  br label %30307

30307:                                            ; preds = %30304, %30301
  %30308 = phi double [ %30303, %30301 ], [ %30306, %30304 ]
  %30309 = fcmp olt double %30298, %30308
  br i1 %30309, label %30310, label %30321

30310:                                            ; preds = %30307
  %30311 = load double, ptr %877, align 8, !tbaa !11
  %30312 = fcmp ole double 0.000000e+00, %30311
  br i1 %30312, label %30313, label %30316

30313:                                            ; preds = %30310
  %30314 = load double, ptr %877, align 8, !tbaa !11
  %30315 = fadd double %30314, 5.000000e-01
  br label %30319

30316:                                            ; preds = %30310
  %30317 = load double, ptr %877, align 8, !tbaa !11
  %30318 = fsub double %30317, 5.000000e-01
  br label %30319

30319:                                            ; preds = %30316, %30313
  %30320 = phi double [ %30315, %30313 ], [ %30318, %30316 ]
  br label %30323

30321:                                            ; preds = %30307
  %30322 = load double, ptr %875, align 8, !tbaa !11
  br label %30323

30323:                                            ; preds = %30321, %30319
  %30324 = phi double [ %30320, %30319 ], [ %30322, %30321 ]
  br label %30325

30325:                                            ; preds = %30323, %30295
  %30326 = phi double [ %30296, %30295 ], [ %30324, %30323 ]
  %30327 = fptosi double %30326 to i16
  %30328 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %30327, ptr %30328, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %877) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %876) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %875) #3
  br label %30471

30329:                                            ; preds = %30103, %30100
  %30330 = load i32, ptr %8, align 4, !tbaa !9
  %30331 = icmp ugt i32 6, %30330
  br i1 %30331, label %30360, label %30332

30332:                                            ; preds = %30329
  %30333 = load i32, ptr %8, align 4, !tbaa !9
  %30334 = icmp ugt i32 15, %30333
  br i1 %30334, label %30335, label %30346

30335:                                            ; preds = %30332
  %30336 = load i32, ptr %9, align 4, !tbaa !9
  %30337 = icmp ugt i32 15, %30336
  br i1 %30337, label %30338, label %30343

30338:                                            ; preds = %30335
  %30339 = load i32, ptr %9, align 4, !tbaa !9
  %30340 = load i32, ptr %8, align 4, !tbaa !9
  %30341 = icmp ugt i32 %30339, %30340
  %30342 = zext i1 %30341 to i32
  br label %30344

30343:                                            ; preds = %30335
  br label %30344

30344:                                            ; preds = %30343, %30338
  %30345 = phi i32 [ %30342, %30338 ], [ 0, %30343 ]
  br label %30357

30346:                                            ; preds = %30332
  %30347 = load i32, ptr %9, align 4, !tbaa !9
  %30348 = icmp ugt i32 15, %30347
  br i1 %30348, label %30349, label %30350

30349:                                            ; preds = %30346
  br label %30355

30350:                                            ; preds = %30346
  %30351 = load i32, ptr %9, align 4, !tbaa !9
  %30352 = load i32, ptr %8, align 4, !tbaa !9
  %30353 = icmp ugt i32 %30351, %30352
  %30354 = zext i1 %30353 to i32
  br label %30355

30355:                                            ; preds = %30350, %30349
  %30356 = phi i32 [ 0, %30349 ], [ %30354, %30350 ]
  br label %30357

30357:                                            ; preds = %30355, %30344
  %30358 = phi i32 [ %30345, %30344 ], [ %30356, %30355 ]
  %30359 = icmp ne i32 %30358, 0
  br label %30360

30360:                                            ; preds = %30357, %30329
  %30361 = phi i1 [ true, %30329 ], [ %30359, %30357 ]
  %30362 = zext i1 %30361 to i32
  %30363 = icmp eq i32 0, %30362
  br i1 %30363, label %30364, label %30455

30364:                                            ; preds = %30360
  %30365 = load float, ptr %869, align 4, !tbaa !18
  %30366 = fcmp ole float 0.000000e+00, %30365
  br i1 %30366, label %30367, label %30409

30367:                                            ; preds = %30364
  %30368 = load float, ptr %869, align 4, !tbaa !18
  %30369 = fpext float %30368 to double
  %30370 = fadd double %30369, 5.000000e-01
  %30371 = fcmp olt double -3.276800e+04, %30370
  br i1 %30371, label %30372, label %30395

30372:                                            ; preds = %30367
  %30373 = load float, ptr %869, align 4, !tbaa !18
  %30374 = fpext float %30373 to double
  %30375 = fadd double %30374, 5.000000e-01
  %30376 = fcmp ole double %30375, 3.276700e+04
  br i1 %30376, label %30377, label %30381

30377:                                            ; preds = %30372
  %30378 = load float, ptr %869, align 4, !tbaa !18
  %30379 = fpext float %30378 to double
  %30380 = fadd double %30379, 5.000000e-01
  br label %30393

30381:                                            ; preds = %30372
  %30382 = load float, ptr %869, align 4, !tbaa !18
  %30383 = fpext float %30382 to double
  %30384 = fadd double %30383, 5.000000e-01
  %30385 = fcmp olt double %30384, 3.276700e+04
  br i1 %30385, label %30386, label %30390

30386:                                            ; preds = %30381
  %30387 = load float, ptr %869, align 4, !tbaa !18
  %30388 = fpext float %30387 to double
  %30389 = fadd double %30388, 5.000000e-01
  br label %30391

30390:                                            ; preds = %30381
  br label %30391

30391:                                            ; preds = %30390, %30386
  %30392 = phi double [ %30389, %30386 ], [ 3.276700e+04, %30390 ]
  br label %30393

30393:                                            ; preds = %30391, %30377
  %30394 = phi double [ %30380, %30377 ], [ %30392, %30391 ]
  br label %30407

30395:                                            ; preds = %30367
  %30396 = load float, ptr %869, align 4, !tbaa !18
  %30397 = fpext float %30396 to double
  %30398 = fadd double %30397, 5.000000e-01
  %30399 = fcmp olt double -3.276800e+04, %30398
  br i1 %30399, label %30400, label %30404

30400:                                            ; preds = %30395
  %30401 = load float, ptr %869, align 4, !tbaa !18
  %30402 = fpext float %30401 to double
  %30403 = fadd double %30402, 5.000000e-01
  br label %30405

30404:                                            ; preds = %30395
  br label %30405

30405:                                            ; preds = %30404, %30400
  %30406 = phi double [ %30403, %30400 ], [ -3.276800e+04, %30404 ]
  br label %30407

30407:                                            ; preds = %30405, %30393
  %30408 = phi double [ %30394, %30393 ], [ %30406, %30405 ]
  br label %30451

30409:                                            ; preds = %30364
  %30410 = load float, ptr %869, align 4, !tbaa !18
  %30411 = fpext float %30410 to double
  %30412 = fsub double %30411, 5.000000e-01
  %30413 = fcmp olt double -3.276800e+04, %30412
  br i1 %30413, label %30414, label %30437

30414:                                            ; preds = %30409
  %30415 = load float, ptr %869, align 4, !tbaa !18
  %30416 = fpext float %30415 to double
  %30417 = fsub double %30416, 5.000000e-01
  %30418 = fcmp ole double %30417, 3.276700e+04
  br i1 %30418, label %30419, label %30423

30419:                                            ; preds = %30414
  %30420 = load float, ptr %869, align 4, !tbaa !18
  %30421 = fpext float %30420 to double
  %30422 = fsub double %30421, 5.000000e-01
  br label %30435

30423:                                            ; preds = %30414
  %30424 = load float, ptr %869, align 4, !tbaa !18
  %30425 = fpext float %30424 to double
  %30426 = fsub double %30425, 5.000000e-01
  %30427 = fcmp olt double %30426, 3.276700e+04
  br i1 %30427, label %30428, label %30432

30428:                                            ; preds = %30423
  %30429 = load float, ptr %869, align 4, !tbaa !18
  %30430 = fpext float %30429 to double
  %30431 = fsub double %30430, 5.000000e-01
  br label %30433

30432:                                            ; preds = %30423
  br label %30433

30433:                                            ; preds = %30432, %30428
  %30434 = phi double [ %30431, %30428 ], [ 3.276700e+04, %30432 ]
  br label %30435

30435:                                            ; preds = %30433, %30419
  %30436 = phi double [ %30422, %30419 ], [ %30434, %30433 ]
  br label %30449

30437:                                            ; preds = %30409
  %30438 = load float, ptr %869, align 4, !tbaa !18
  %30439 = fpext float %30438 to double
  %30440 = fsub double %30439, 5.000000e-01
  %30441 = fcmp olt double -3.276800e+04, %30440
  br i1 %30441, label %30442, label %30446

30442:                                            ; preds = %30437
  %30443 = load float, ptr %869, align 4, !tbaa !18
  %30444 = fpext float %30443 to double
  %30445 = fsub double %30444, 5.000000e-01
  br label %30447

30446:                                            ; preds = %30437
  br label %30447

30447:                                            ; preds = %30446, %30442
  %30448 = phi double [ %30445, %30442 ], [ -3.276800e+04, %30446 ]
  br label %30449

30449:                                            ; preds = %30447, %30435
  %30450 = phi double [ %30436, %30435 ], [ %30448, %30447 ]
  br label %30451

30451:                                            ; preds = %30449, %30407
  %30452 = phi double [ %30408, %30407 ], [ %30450, %30449 ]
  %30453 = fptosi double %30452 to i16
  %30454 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %30453, ptr %30454, align 2, !tbaa !15
  br label %30470

30455:                                            ; preds = %30360
  %30456 = load float, ptr %869, align 4, !tbaa !18
  %30457 = fcmp ole float 0.000000e+00, %30456
  br i1 %30457, label %30458, label %30462

30458:                                            ; preds = %30455
  %30459 = load float, ptr %869, align 4, !tbaa !18
  %30460 = fpext float %30459 to double
  %30461 = fadd double %30460, 5.000000e-01
  br label %30466

30462:                                            ; preds = %30455
  %30463 = load float, ptr %869, align 4, !tbaa !18
  %30464 = fpext float %30463 to double
  %30465 = fsub double %30464, 5.000000e-01
  br label %30466

30466:                                            ; preds = %30462, %30458
  %30467 = phi double [ %30461, %30458 ], [ %30465, %30462 ]
  %30468 = fptosi double %30467 to i16
  %30469 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %30468, ptr %30469, align 2, !tbaa !15
  br label %30470

30470:                                            ; preds = %30466, %30451
  br label %30471

30471:                                            ; preds = %30470, %30325
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %871) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %870) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %869) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %868) #3
  br label %30472

30472:                                            ; preds = %30471
  br label %30473

30473:                                            ; preds = %30472
  br label %30478

30474:                                            ; preds = %26855
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 488, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

30475:                                            ; preds = %26855
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 488, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

30476:                                            ; preds = %26855
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 488, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

30477:                                            ; preds = %26855
  store i32 1, ptr %13, align 4, !tbaa !9
  br label %30478

30478:                                            ; preds = %30477, %30473, %30067, %29682, %29322, %28963, %28616, %28269, %27909, %27550, %27203
  br label %30479

30479:                                            ; preds = %30478
  br label %30480

30480:                                            ; preds = %30479
  br label %48657

30481:                                            ; preds = %6
  br label %30482

30482:                                            ; preds = %30481
  %30483 = load ptr, ptr %7, align 8, !tbaa !5
  %30484 = icmp ne ptr null, %30483
  br i1 %30484, label %30485, label %30489

30485:                                            ; preds = %30482
  %30486 = load ptr, ptr %10, align 8, !tbaa !5
  %30487 = icmp ne ptr null, %30486
  br i1 %30487, label %30488, label %30489

30488:                                            ; preds = %30485
  br label %30490

30489:                                            ; preds = %30485, %30482
  call void @__assert_fail(ptr noundef @.str.41, ptr noundef @.str.24, i32 noundef 491, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

30490:                                            ; preds = %30488
  %30491 = load i32, ptr %9, align 4, !tbaa !9
  switch i32 %30491, label %34112 [
    i32 6, label %30492
    i32 8, label %30839
    i32 10, label %31186
    i32 12, label %31546
    i32 15, label %31905
    i32 16, label %32252
    i32 17, label %32599
    i32 18, label %32959
    i32 0, label %33318
    i32 1, label %33703
    i32 3, label %34109
    i32 2, label %34110
    i32 4, label %34111
  ]

30492:                                            ; preds = %30490
  br label %30493

30493:                                            ; preds = %30492
  call void @llvm.lifetime.start.p0(i64 8, ptr %878) #3
  store double 5.000000e-01, ptr %878, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %879) #3
  %30494 = load ptr, ptr %10, align 8, !tbaa !5
  %30495 = load i64, ptr %30494, align 8, !tbaa !13
  store i64 %30495, ptr %879, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %880) #3
  store double 0.000000e+00, ptr %880, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %881) #3
  store double 0.000000e+00, ptr %881, align 8, !tbaa !11
  %30496 = load ptr, ptr %11, align 8, !tbaa !5
  %30497 = icmp ne ptr null, %30496
  br i1 %30497, label %30498, label %30520

30498:                                            ; preds = %30493
  %30499 = load ptr, ptr %12, align 8, !tbaa !5
  %30500 = icmp ne ptr null, %30499
  br i1 %30500, label %30501, label %30512

30501:                                            ; preds = %30498
  %30502 = load ptr, ptr %11, align 8, !tbaa !5
  %30503 = load i64, ptr %30502, align 8, !tbaa !13
  %30504 = load i64, ptr %879, align 8, !tbaa !13
  %30505 = icmp sle i64 %30503, %30504
  br i1 %30505, label %30506, label %30512

30506:                                            ; preds = %30501
  %30507 = load i64, ptr %879, align 8, !tbaa !13
  %30508 = load ptr, ptr %12, align 8, !tbaa !5
  %30509 = load i64, ptr %30508, align 8, !tbaa !13
  %30510 = icmp sle i64 %30507, %30509
  br i1 %30510, label %30511, label %30512

30511:                                            ; preds = %30506
  br label %30513

30512:                                            ; preds = %30506, %30501, %30498
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.24, i32 noundef 491, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

30513:                                            ; preds = %30511
  %30514 = load ptr, ptr %11, align 8, !tbaa !5
  %30515 = load i64, ptr %30514, align 8, !tbaa !13
  %30516 = sitofp i64 %30515 to double
  store double %30516, ptr %880, align 8, !tbaa !11
  %30517 = load ptr, ptr %12, align 8, !tbaa !5
  %30518 = load i64, ptr %30517, align 8, !tbaa !13
  %30519 = sitofp i64 %30518 to double
  store double %30519, ptr %881, align 8, !tbaa !11
  br label %30520

30520:                                            ; preds = %30513, %30493
  %30521 = load i32, ptr %8, align 4, !tbaa !9
  %30522 = icmp ule i32 6, %30521
  br i1 %30522, label %30523, label %30759

30523:                                            ; preds = %30520
  %30524 = load double, ptr %880, align 8, !tbaa !11
  %30525 = load double, ptr %881, align 8, !tbaa !11
  %30526 = fcmp olt double %30524, %30525
  br i1 %30526, label %30527, label %30759

30527:                                            ; preds = %30523
  %30528 = load i32, ptr %8, align 4, !tbaa !9
  %30529 = icmp ule i32 15, %30528
  br i1 %30529, label %30530, label %30582

30530:                                            ; preds = %30527
  call void @llvm.lifetime.start.p0(i64 8, ptr %882) #3
  %30531 = load double, ptr %880, align 8, !tbaa !11
  %30532 = fcmp olt double 0.000000e+00, %30531
  br i1 %30532, label %30533, label %30535

30533:                                            ; preds = %30530
  %30534 = load double, ptr %880, align 8, !tbaa !11
  br label %30536

30535:                                            ; preds = %30530
  br label %30536

30536:                                            ; preds = %30535, %30533
  %30537 = phi double [ %30534, %30533 ], [ 0.000000e+00, %30535 ]
  store double %30537, ptr %882, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %883) #3
  %30538 = load double, ptr %881, align 8, !tbaa !11
  %30539 = fcmp olt double 0.000000e+00, %30538
  br i1 %30539, label %30540, label %30542

30540:                                            ; preds = %30536
  %30541 = load double, ptr %881, align 8, !tbaa !11
  br label %30543

30542:                                            ; preds = %30536
  br label %30543

30543:                                            ; preds = %30542, %30540
  %30544 = phi double [ %30541, %30540 ], [ 0.000000e+00, %30542 ]
  store double %30544, ptr %883, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %884) #3
  %30545 = load double, ptr %882, align 8, !tbaa !11
  %30546 = load double, ptr %883, align 8, !tbaa !11
  %30547 = fcmp olt double %30545, %30546
  br i1 %30547, label %30548, label %30556

30548:                                            ; preds = %30543
  %30549 = load double, ptr %881, align 8, !tbaa !11
  %30550 = load double, ptr %880, align 8, !tbaa !11
  %30551 = fsub double %30549, %30550
  %30552 = load double, ptr %883, align 8, !tbaa !11
  %30553 = load double, ptr %882, align 8, !tbaa !11
  %30554 = fsub double %30552, %30553
  %30555 = fdiv double %30551, %30554
  br label %30557

30556:                                            ; preds = %30543
  br label %30557

30557:                                            ; preds = %30556, %30548
  %30558 = phi double [ %30555, %30548 ], [ 1.000000e+00, %30556 ]
  store double %30558, ptr %884, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %885) #3
  %30559 = load double, ptr %884, align 8, !tbaa !11
  %30560 = load i64, ptr %879, align 8, !tbaa !13
  %30561 = icmp slt i64 0, %30560
  br i1 %30561, label %30562, label %30564

30562:                                            ; preds = %30557
  %30563 = load i64, ptr %879, align 8, !tbaa !13
  br label %30565

30564:                                            ; preds = %30557
  br label %30565

30565:                                            ; preds = %30564, %30562
  %30566 = phi i64 [ %30563, %30562 ], [ 0, %30564 ]
  %30567 = sitofp i64 %30566 to double
  %30568 = fmul double %30559, %30567
  store double %30568, ptr %885, align 8, !tbaa !11
  %30569 = load double, ptr %885, align 8, !tbaa !11
  %30570 = fcmp ole double 0.000000e+00, %30569
  br i1 %30570, label %30571, label %30574

30571:                                            ; preds = %30565
  %30572 = load double, ptr %885, align 8, !tbaa !11
  %30573 = fadd double %30572, 5.000000e-01
  br label %30577

30574:                                            ; preds = %30565
  %30575 = load double, ptr %885, align 8, !tbaa !11
  %30576 = fsub double %30575, 5.000000e-01
  br label %30577

30577:                                            ; preds = %30574, %30571
  %30578 = phi double [ %30573, %30571 ], [ %30576, %30574 ]
  %30579 = fptosi double %30578 to i64
  store i64 %30579, ptr %879, align 8, !tbaa !13
  %30580 = load double, ptr %882, align 8, !tbaa !11
  store double %30580, ptr %880, align 8, !tbaa !11
  %30581 = load double, ptr %883, align 8, !tbaa !11
  store double %30581, ptr %881, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %885) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %884) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %883) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %882) #3
  br label %30638

30582:                                            ; preds = %30527
  %30583 = load i32, ptr %8, align 4, !tbaa !9
  %30584 = icmp ugt i32 6, %30583
  br i1 %30584, label %30613, label %30585

30585:                                            ; preds = %30582
  %30586 = load i32, ptr %8, align 4, !tbaa !9
  %30587 = icmp ugt i32 15, %30586
  br i1 %30587, label %30588, label %30599

30588:                                            ; preds = %30585
  %30589 = load i32, ptr %9, align 4, !tbaa !9
  %30590 = icmp ugt i32 15, %30589
  br i1 %30590, label %30591, label %30596

30591:                                            ; preds = %30588
  %30592 = load i32, ptr %9, align 4, !tbaa !9
  %30593 = load i32, ptr %8, align 4, !tbaa !9
  %30594 = icmp ugt i32 %30592, %30593
  %30595 = zext i1 %30594 to i32
  br label %30597

30596:                                            ; preds = %30588
  br label %30597

30597:                                            ; preds = %30596, %30591
  %30598 = phi i32 [ %30595, %30591 ], [ 0, %30596 ]
  br label %30610

30599:                                            ; preds = %30585
  %30600 = load i32, ptr %9, align 4, !tbaa !9
  %30601 = icmp ugt i32 15, %30600
  br i1 %30601, label %30602, label %30603

30602:                                            ; preds = %30599
  br label %30608

30603:                                            ; preds = %30599
  %30604 = load i32, ptr %9, align 4, !tbaa !9
  %30605 = load i32, ptr %8, align 4, !tbaa !9
  %30606 = icmp ugt i32 %30604, %30605
  %30607 = zext i1 %30606 to i32
  br label %30608

30608:                                            ; preds = %30603, %30602
  %30609 = phi i32 [ 0, %30602 ], [ %30607, %30603 ]
  br label %30610

30610:                                            ; preds = %30608, %30597
  %30611 = phi i32 [ %30598, %30597 ], [ %30609, %30608 ]
  %30612 = icmp ne i32 %30611, 0
  br label %30613

30613:                                            ; preds = %30610, %30582
  %30614 = phi i1 [ true, %30582 ], [ %30612, %30610 ]
  %30615 = zext i1 %30614 to i32
  %30616 = icmp eq i32 0, %30615
  br i1 %30616, label %30617, label %30637

30617:                                            ; preds = %30613
  %30618 = load double, ptr %880, align 8, !tbaa !11
  %30619 = fcmp ogt double 0.000000e+00, %30618
  br i1 %30619, label %30620, label %30637

30620:                                            ; preds = %30617
  %30621 = load double, ptr %881, align 8, !tbaa !11
  %30622 = fcmp olt double 0.000000e+00, %30621
  br i1 %30622, label %30623, label %30637

30623:                                            ; preds = %30620
  %30624 = load double, ptr %880, align 8, !tbaa !11
  %30625 = fneg double %30624
  %30626 = load double, ptr %881, align 8, !tbaa !11
  %30627 = fcmp olt double %30625, %30626
  br i1 %30627, label %30628, label %30630

30628:                                            ; preds = %30623
  %30629 = load double, ptr %881, align 8, !tbaa !11
  br label %30633

30630:                                            ; preds = %30623
  %30631 = load double, ptr %880, align 8, !tbaa !11
  %30632 = fneg double %30631
  br label %30633

30633:                                            ; preds = %30630, %30628
  %30634 = phi double [ %30629, %30628 ], [ %30632, %30630 ]
  store double %30634, ptr %881, align 8, !tbaa !11
  %30635 = load double, ptr %881, align 8, !tbaa !11
  %30636 = fneg double %30635
  store double %30636, ptr %880, align 8, !tbaa !11
  br label %30637

30637:                                            ; preds = %30633, %30620, %30617, %30613
  br label %30638

30638:                                            ; preds = %30637, %30577
  call void @llvm.lifetime.start.p0(i64 8, ptr %886) #3
  %30639 = load double, ptr %880, align 8, !tbaa !11
  %30640 = fcmp ole double 0.000000e+00, %30639
  %30641 = zext i1 %30640 to i64
  %30642 = select i1 %30640, double 0.000000e+00, double -1.280000e+02
  store double %30642, ptr %886, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %887) #3
  %30643 = load double, ptr %881, align 8, !tbaa !11
  %30644 = fcmp ole double 0.000000e+00, %30643
  %30645 = zext i1 %30644 to i64
  %30646 = select i1 %30644, double 1.270000e+02, double 0.000000e+00
  store double %30646, ptr %887, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %888) #3
  %30647 = load i64, ptr %879, align 8, !tbaa !13
  %30648 = sitofp i64 %30647 to double
  %30649 = load double, ptr %880, align 8, !tbaa !11
  %30650 = fsub double %30648, %30649
  %30651 = load double, ptr %887, align 8, !tbaa !11
  %30652 = load double, ptr %886, align 8, !tbaa !11
  %30653 = fsub double %30651, %30652
  %30654 = fmul double %30650, %30653
  %30655 = load double, ptr %881, align 8, !tbaa !11
  %30656 = load double, ptr %880, align 8, !tbaa !11
  %30657 = fsub double %30655, %30656
  %30658 = fdiv double %30654, %30657
  %30659 = load double, ptr %886, align 8, !tbaa !11
  %30660 = fadd double %30658, %30659
  store double %30660, ptr %888, align 8, !tbaa !11
  %30661 = load double, ptr %886, align 8, !tbaa !11
  %30662 = load double, ptr %888, align 8, !tbaa !11
  %30663 = fcmp ole double 0.000000e+00, %30662
  br i1 %30663, label %30664, label %30667

30664:                                            ; preds = %30638
  %30665 = load double, ptr %888, align 8, !tbaa !11
  %30666 = fadd double %30665, 5.000000e-01
  br label %30670

30667:                                            ; preds = %30638
  %30668 = load double, ptr %888, align 8, !tbaa !11
  %30669 = fsub double %30668, 5.000000e-01
  br label %30670

30670:                                            ; preds = %30667, %30664
  %30671 = phi double [ %30666, %30664 ], [ %30669, %30667 ]
  %30672 = fcmp olt double %30661, %30671
  br i1 %30672, label %30673, label %30727

30673:                                            ; preds = %30670
  %30674 = load double, ptr %888, align 8, !tbaa !11
  %30675 = fcmp ole double 0.000000e+00, %30674
  br i1 %30675, label %30676, label %30679

30676:                                            ; preds = %30673
  %30677 = load double, ptr %888, align 8, !tbaa !11
  %30678 = fadd double %30677, 5.000000e-01
  br label %30682

30679:                                            ; preds = %30673
  %30680 = load double, ptr %888, align 8, !tbaa !11
  %30681 = fsub double %30680, 5.000000e-01
  br label %30682

30682:                                            ; preds = %30679, %30676
  %30683 = phi double [ %30678, %30676 ], [ %30681, %30679 ]
  %30684 = load double, ptr %887, align 8, !tbaa !11
  %30685 = fcmp ole double %30683, %30684
  br i1 %30685, label %30686, label %30697

30686:                                            ; preds = %30682
  %30687 = load double, ptr %888, align 8, !tbaa !11
  %30688 = fcmp ole double 0.000000e+00, %30687
  br i1 %30688, label %30689, label %30692

30689:                                            ; preds = %30686
  %30690 = load double, ptr %888, align 8, !tbaa !11
  %30691 = fadd double %30690, 5.000000e-01
  br label %30695

30692:                                            ; preds = %30686
  %30693 = load double, ptr %888, align 8, !tbaa !11
  %30694 = fsub double %30693, 5.000000e-01
  br label %30695

30695:                                            ; preds = %30692, %30689
  %30696 = phi double [ %30691, %30689 ], [ %30694, %30692 ]
  br label %30725

30697:                                            ; preds = %30682
  %30698 = load double, ptr %888, align 8, !tbaa !11
  %30699 = fcmp ole double 0.000000e+00, %30698
  br i1 %30699, label %30700, label %30703

30700:                                            ; preds = %30697
  %30701 = load double, ptr %888, align 8, !tbaa !11
  %30702 = fadd double %30701, 5.000000e-01
  br label %30706

30703:                                            ; preds = %30697
  %30704 = load double, ptr %888, align 8, !tbaa !11
  %30705 = fsub double %30704, 5.000000e-01
  br label %30706

30706:                                            ; preds = %30703, %30700
  %30707 = phi double [ %30702, %30700 ], [ %30705, %30703 ]
  %30708 = load double, ptr %887, align 8, !tbaa !11
  %30709 = fcmp olt double %30707, %30708
  br i1 %30709, label %30710, label %30721

30710:                                            ; preds = %30706
  %30711 = load double, ptr %888, align 8, !tbaa !11
  %30712 = fcmp ole double 0.000000e+00, %30711
  br i1 %30712, label %30713, label %30716

30713:                                            ; preds = %30710
  %30714 = load double, ptr %888, align 8, !tbaa !11
  %30715 = fadd double %30714, 5.000000e-01
  br label %30719

30716:                                            ; preds = %30710
  %30717 = load double, ptr %888, align 8, !tbaa !11
  %30718 = fsub double %30717, 5.000000e-01
  br label %30719

30719:                                            ; preds = %30716, %30713
  %30720 = phi double [ %30715, %30713 ], [ %30718, %30716 ]
  br label %30723

30721:                                            ; preds = %30706
  %30722 = load double, ptr %887, align 8, !tbaa !11
  br label %30723

30723:                                            ; preds = %30721, %30719
  %30724 = phi double [ %30720, %30719 ], [ %30722, %30721 ]
  br label %30725

30725:                                            ; preds = %30723, %30695
  %30726 = phi double [ %30696, %30695 ], [ %30724, %30723 ]
  br label %30755

30727:                                            ; preds = %30670
  %30728 = load double, ptr %886, align 8, !tbaa !11
  %30729 = load double, ptr %888, align 8, !tbaa !11
  %30730 = fcmp ole double 0.000000e+00, %30729
  br i1 %30730, label %30731, label %30734

30731:                                            ; preds = %30727
  %30732 = load double, ptr %888, align 8, !tbaa !11
  %30733 = fadd double %30732, 5.000000e-01
  br label %30737

30734:                                            ; preds = %30727
  %30735 = load double, ptr %888, align 8, !tbaa !11
  %30736 = fsub double %30735, 5.000000e-01
  br label %30737

30737:                                            ; preds = %30734, %30731
  %30738 = phi double [ %30733, %30731 ], [ %30736, %30734 ]
  %30739 = fcmp olt double %30728, %30738
  br i1 %30739, label %30740, label %30751

30740:                                            ; preds = %30737
  %30741 = load double, ptr %888, align 8, !tbaa !11
  %30742 = fcmp ole double 0.000000e+00, %30741
  br i1 %30742, label %30743, label %30746

30743:                                            ; preds = %30740
  %30744 = load double, ptr %888, align 8, !tbaa !11
  %30745 = fadd double %30744, 5.000000e-01
  br label %30749

30746:                                            ; preds = %30740
  %30747 = load double, ptr %888, align 8, !tbaa !11
  %30748 = fsub double %30747, 5.000000e-01
  br label %30749

30749:                                            ; preds = %30746, %30743
  %30750 = phi double [ %30745, %30743 ], [ %30748, %30746 ]
  br label %30753

30751:                                            ; preds = %30737
  %30752 = load double, ptr %886, align 8, !tbaa !11
  br label %30753

30753:                                            ; preds = %30751, %30749
  %30754 = phi double [ %30750, %30749 ], [ %30752, %30751 ]
  br label %30755

30755:                                            ; preds = %30753, %30725
  %30756 = phi double [ %30726, %30725 ], [ %30754, %30753 ]
  %30757 = fptosi double %30756 to i8
  %30758 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %30757, ptr %30758, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %888) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %887) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %886) #3
  br label %30836

30759:                                            ; preds = %30523, %30520
  %30760 = load i32, ptr %8, align 4, !tbaa !9
  %30761 = icmp ugt i32 6, %30760
  br i1 %30761, label %30790, label %30762

30762:                                            ; preds = %30759
  %30763 = load i32, ptr %8, align 4, !tbaa !9
  %30764 = icmp ugt i32 15, %30763
  br i1 %30764, label %30765, label %30776

30765:                                            ; preds = %30762
  %30766 = load i32, ptr %9, align 4, !tbaa !9
  %30767 = icmp ugt i32 15, %30766
  br i1 %30767, label %30768, label %30773

30768:                                            ; preds = %30765
  %30769 = load i32, ptr %9, align 4, !tbaa !9
  %30770 = load i32, ptr %8, align 4, !tbaa !9
  %30771 = icmp ugt i32 %30769, %30770
  %30772 = zext i1 %30771 to i32
  br label %30774

30773:                                            ; preds = %30765
  br label %30774

30774:                                            ; preds = %30773, %30768
  %30775 = phi i32 [ %30772, %30768 ], [ 0, %30773 ]
  br label %30787

30776:                                            ; preds = %30762
  %30777 = load i32, ptr %9, align 4, !tbaa !9
  %30778 = icmp ugt i32 15, %30777
  br i1 %30778, label %30779, label %30780

30779:                                            ; preds = %30776
  br label %30785

30780:                                            ; preds = %30776
  %30781 = load i32, ptr %9, align 4, !tbaa !9
  %30782 = load i32, ptr %8, align 4, !tbaa !9
  %30783 = icmp ugt i32 %30781, %30782
  %30784 = zext i1 %30783 to i32
  br label %30785

30785:                                            ; preds = %30780, %30779
  %30786 = phi i32 [ 0, %30779 ], [ %30784, %30780 ]
  br label %30787

30787:                                            ; preds = %30785, %30774
  %30788 = phi i32 [ %30775, %30774 ], [ %30786, %30785 ]
  %30789 = icmp ne i32 %30788, 0
  br label %30790

30790:                                            ; preds = %30787, %30759
  %30791 = phi i1 [ true, %30759 ], [ %30789, %30787 ]
  %30792 = zext i1 %30791 to i32
  %30793 = icmp eq i32 0, %30792
  br i1 %30793, label %30794, label %30831

30794:                                            ; preds = %30790
  %30795 = load i64, ptr %879, align 8, !tbaa !13
  %30796 = sitofp i64 %30795 to double
  %30797 = fcmp olt double -1.280000e+02, %30796
  br i1 %30797, label %30798, label %30817

30798:                                            ; preds = %30794
  %30799 = load i64, ptr %879, align 8, !tbaa !13
  %30800 = sitofp i64 %30799 to double
  %30801 = fcmp ole double %30800, 1.270000e+02
  br i1 %30801, label %30802, label %30805

30802:                                            ; preds = %30798
  %30803 = load i64, ptr %879, align 8, !tbaa !13
  %30804 = sitofp i64 %30803 to double
  br label %30815

30805:                                            ; preds = %30798
  %30806 = load i64, ptr %879, align 8, !tbaa !13
  %30807 = sitofp i64 %30806 to double
  %30808 = fcmp olt double %30807, 1.270000e+02
  br i1 %30808, label %30809, label %30812

30809:                                            ; preds = %30805
  %30810 = load i64, ptr %879, align 8, !tbaa !13
  %30811 = sitofp i64 %30810 to double
  br label %30813

30812:                                            ; preds = %30805
  br label %30813

30813:                                            ; preds = %30812, %30809
  %30814 = phi double [ %30811, %30809 ], [ 1.270000e+02, %30812 ]
  br label %30815

30815:                                            ; preds = %30813, %30802
  %30816 = phi double [ %30804, %30802 ], [ %30814, %30813 ]
  br label %30827

30817:                                            ; preds = %30794
  %30818 = load i64, ptr %879, align 8, !tbaa !13
  %30819 = sitofp i64 %30818 to double
  %30820 = fcmp olt double -1.280000e+02, %30819
  br i1 %30820, label %30821, label %30824

30821:                                            ; preds = %30817
  %30822 = load i64, ptr %879, align 8, !tbaa !13
  %30823 = sitofp i64 %30822 to double
  br label %30825

30824:                                            ; preds = %30817
  br label %30825

30825:                                            ; preds = %30824, %30821
  %30826 = phi double [ %30823, %30821 ], [ -1.280000e+02, %30824 ]
  br label %30827

30827:                                            ; preds = %30825, %30815
  %30828 = phi double [ %30816, %30815 ], [ %30826, %30825 ]
  %30829 = fptosi double %30828 to i8
  %30830 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %30829, ptr %30830, align 1, !tbaa !17
  br label %30835

30831:                                            ; preds = %30790
  %30832 = load i64, ptr %879, align 8, !tbaa !13
  %30833 = trunc i64 %30832 to i8
  %30834 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %30833, ptr %30834, align 1, !tbaa !17
  br label %30835

30835:                                            ; preds = %30831, %30827
  br label %30836

30836:                                            ; preds = %30835, %30755
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %881) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %880) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %879) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %878) #3
  br label %30837

30837:                                            ; preds = %30836
  br label %30838

30838:                                            ; preds = %30837
  br label %34113

30839:                                            ; preds = %30490
  br label %30840

30840:                                            ; preds = %30839
  call void @llvm.lifetime.start.p0(i64 8, ptr %889) #3
  store double 5.000000e-01, ptr %889, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %890) #3
  %30841 = load ptr, ptr %10, align 8, !tbaa !5
  %30842 = load i32, ptr %30841, align 4, !tbaa !9
  store i32 %30842, ptr %890, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %891) #3
  store double 0.000000e+00, ptr %891, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %892) #3
  store double 0.000000e+00, ptr %892, align 8, !tbaa !11
  %30843 = load ptr, ptr %11, align 8, !tbaa !5
  %30844 = icmp ne ptr null, %30843
  br i1 %30844, label %30845, label %30867

30845:                                            ; preds = %30840
  %30846 = load ptr, ptr %12, align 8, !tbaa !5
  %30847 = icmp ne ptr null, %30846
  br i1 %30847, label %30848, label %30859

30848:                                            ; preds = %30845
  %30849 = load ptr, ptr %11, align 8, !tbaa !5
  %30850 = load i32, ptr %30849, align 4, !tbaa !9
  %30851 = load i32, ptr %890, align 4, !tbaa !9
  %30852 = icmp sle i32 %30850, %30851
  br i1 %30852, label %30853, label %30859

30853:                                            ; preds = %30848
  %30854 = load i32, ptr %890, align 4, !tbaa !9
  %30855 = load ptr, ptr %12, align 8, !tbaa !5
  %30856 = load i32, ptr %30855, align 4, !tbaa !9
  %30857 = icmp sle i32 %30854, %30856
  br i1 %30857, label %30858, label %30859

30858:                                            ; preds = %30853
  br label %30860

30859:                                            ; preds = %30853, %30848, %30845
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.24, i32 noundef 491, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

30860:                                            ; preds = %30858
  %30861 = load ptr, ptr %11, align 8, !tbaa !5
  %30862 = load i32, ptr %30861, align 4, !tbaa !9
  %30863 = sitofp i32 %30862 to double
  store double %30863, ptr %891, align 8, !tbaa !11
  %30864 = load ptr, ptr %12, align 8, !tbaa !5
  %30865 = load i32, ptr %30864, align 4, !tbaa !9
  %30866 = sitofp i32 %30865 to double
  store double %30866, ptr %892, align 8, !tbaa !11
  br label %30867

30867:                                            ; preds = %30860, %30840
  %30868 = load i32, ptr %8, align 4, !tbaa !9
  %30869 = icmp ule i32 6, %30868
  br i1 %30869, label %30870, label %31106

30870:                                            ; preds = %30867
  %30871 = load double, ptr %891, align 8, !tbaa !11
  %30872 = load double, ptr %892, align 8, !tbaa !11
  %30873 = fcmp olt double %30871, %30872
  br i1 %30873, label %30874, label %31106

30874:                                            ; preds = %30870
  %30875 = load i32, ptr %8, align 4, !tbaa !9
  %30876 = icmp ule i32 15, %30875
  br i1 %30876, label %30877, label %30929

30877:                                            ; preds = %30874
  call void @llvm.lifetime.start.p0(i64 8, ptr %893) #3
  %30878 = load double, ptr %891, align 8, !tbaa !11
  %30879 = fcmp olt double 0.000000e+00, %30878
  br i1 %30879, label %30880, label %30882

30880:                                            ; preds = %30877
  %30881 = load double, ptr %891, align 8, !tbaa !11
  br label %30883

30882:                                            ; preds = %30877
  br label %30883

30883:                                            ; preds = %30882, %30880
  %30884 = phi double [ %30881, %30880 ], [ 0.000000e+00, %30882 ]
  store double %30884, ptr %893, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %894) #3
  %30885 = load double, ptr %892, align 8, !tbaa !11
  %30886 = fcmp olt double 0.000000e+00, %30885
  br i1 %30886, label %30887, label %30889

30887:                                            ; preds = %30883
  %30888 = load double, ptr %892, align 8, !tbaa !11
  br label %30890

30889:                                            ; preds = %30883
  br label %30890

30890:                                            ; preds = %30889, %30887
  %30891 = phi double [ %30888, %30887 ], [ 0.000000e+00, %30889 ]
  store double %30891, ptr %894, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %895) #3
  %30892 = load double, ptr %893, align 8, !tbaa !11
  %30893 = load double, ptr %894, align 8, !tbaa !11
  %30894 = fcmp olt double %30892, %30893
  br i1 %30894, label %30895, label %30903

30895:                                            ; preds = %30890
  %30896 = load double, ptr %892, align 8, !tbaa !11
  %30897 = load double, ptr %891, align 8, !tbaa !11
  %30898 = fsub double %30896, %30897
  %30899 = load double, ptr %894, align 8, !tbaa !11
  %30900 = load double, ptr %893, align 8, !tbaa !11
  %30901 = fsub double %30899, %30900
  %30902 = fdiv double %30898, %30901
  br label %30904

30903:                                            ; preds = %30890
  br label %30904

30904:                                            ; preds = %30903, %30895
  %30905 = phi double [ %30902, %30895 ], [ 1.000000e+00, %30903 ]
  store double %30905, ptr %895, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %896) #3
  %30906 = load double, ptr %895, align 8, !tbaa !11
  %30907 = load i32, ptr %890, align 4, !tbaa !9
  %30908 = icmp slt i32 0, %30907
  br i1 %30908, label %30909, label %30911

30909:                                            ; preds = %30904
  %30910 = load i32, ptr %890, align 4, !tbaa !9
  br label %30912

30911:                                            ; preds = %30904
  br label %30912

30912:                                            ; preds = %30911, %30909
  %30913 = phi i32 [ %30910, %30909 ], [ 0, %30911 ]
  %30914 = sitofp i32 %30913 to double
  %30915 = fmul double %30906, %30914
  store double %30915, ptr %896, align 8, !tbaa !11
  %30916 = load double, ptr %896, align 8, !tbaa !11
  %30917 = fcmp ole double 0.000000e+00, %30916
  br i1 %30917, label %30918, label %30921

30918:                                            ; preds = %30912
  %30919 = load double, ptr %896, align 8, !tbaa !11
  %30920 = fadd double %30919, 5.000000e-01
  br label %30924

30921:                                            ; preds = %30912
  %30922 = load double, ptr %896, align 8, !tbaa !11
  %30923 = fsub double %30922, 5.000000e-01
  br label %30924

30924:                                            ; preds = %30921, %30918
  %30925 = phi double [ %30920, %30918 ], [ %30923, %30921 ]
  %30926 = fptosi double %30925 to i32
  store i32 %30926, ptr %890, align 4, !tbaa !9
  %30927 = load double, ptr %893, align 8, !tbaa !11
  store double %30927, ptr %891, align 8, !tbaa !11
  %30928 = load double, ptr %894, align 8, !tbaa !11
  store double %30928, ptr %892, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %896) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %895) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %894) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %893) #3
  br label %30985

30929:                                            ; preds = %30874
  %30930 = load i32, ptr %8, align 4, !tbaa !9
  %30931 = icmp ugt i32 6, %30930
  br i1 %30931, label %30960, label %30932

30932:                                            ; preds = %30929
  %30933 = load i32, ptr %8, align 4, !tbaa !9
  %30934 = icmp ugt i32 15, %30933
  br i1 %30934, label %30935, label %30946

30935:                                            ; preds = %30932
  %30936 = load i32, ptr %9, align 4, !tbaa !9
  %30937 = icmp ugt i32 15, %30936
  br i1 %30937, label %30938, label %30943

30938:                                            ; preds = %30935
  %30939 = load i32, ptr %9, align 4, !tbaa !9
  %30940 = load i32, ptr %8, align 4, !tbaa !9
  %30941 = icmp ugt i32 %30939, %30940
  %30942 = zext i1 %30941 to i32
  br label %30944

30943:                                            ; preds = %30935
  br label %30944

30944:                                            ; preds = %30943, %30938
  %30945 = phi i32 [ %30942, %30938 ], [ 0, %30943 ]
  br label %30957

30946:                                            ; preds = %30932
  %30947 = load i32, ptr %9, align 4, !tbaa !9
  %30948 = icmp ugt i32 15, %30947
  br i1 %30948, label %30949, label %30950

30949:                                            ; preds = %30946
  br label %30955

30950:                                            ; preds = %30946
  %30951 = load i32, ptr %9, align 4, !tbaa !9
  %30952 = load i32, ptr %8, align 4, !tbaa !9
  %30953 = icmp ugt i32 %30951, %30952
  %30954 = zext i1 %30953 to i32
  br label %30955

30955:                                            ; preds = %30950, %30949
  %30956 = phi i32 [ 0, %30949 ], [ %30954, %30950 ]
  br label %30957

30957:                                            ; preds = %30955, %30944
  %30958 = phi i32 [ %30945, %30944 ], [ %30956, %30955 ]
  %30959 = icmp ne i32 %30958, 0
  br label %30960

30960:                                            ; preds = %30957, %30929
  %30961 = phi i1 [ true, %30929 ], [ %30959, %30957 ]
  %30962 = zext i1 %30961 to i32
  %30963 = icmp eq i32 0, %30962
  br i1 %30963, label %30964, label %30984

30964:                                            ; preds = %30960
  %30965 = load double, ptr %891, align 8, !tbaa !11
  %30966 = fcmp ogt double 0.000000e+00, %30965
  br i1 %30966, label %30967, label %30984

30967:                                            ; preds = %30964
  %30968 = load double, ptr %892, align 8, !tbaa !11
  %30969 = fcmp olt double 0.000000e+00, %30968
  br i1 %30969, label %30970, label %30984

30970:                                            ; preds = %30967
  %30971 = load double, ptr %891, align 8, !tbaa !11
  %30972 = fneg double %30971
  %30973 = load double, ptr %892, align 8, !tbaa !11
  %30974 = fcmp olt double %30972, %30973
  br i1 %30974, label %30975, label %30977

30975:                                            ; preds = %30970
  %30976 = load double, ptr %892, align 8, !tbaa !11
  br label %30980

30977:                                            ; preds = %30970
  %30978 = load double, ptr %891, align 8, !tbaa !11
  %30979 = fneg double %30978
  br label %30980

30980:                                            ; preds = %30977, %30975
  %30981 = phi double [ %30976, %30975 ], [ %30979, %30977 ]
  store double %30981, ptr %892, align 8, !tbaa !11
  %30982 = load double, ptr %892, align 8, !tbaa !11
  %30983 = fneg double %30982
  store double %30983, ptr %891, align 8, !tbaa !11
  br label %30984

30984:                                            ; preds = %30980, %30967, %30964, %30960
  br label %30985

30985:                                            ; preds = %30984, %30924
  call void @llvm.lifetime.start.p0(i64 8, ptr %897) #3
  %30986 = load double, ptr %891, align 8, !tbaa !11
  %30987 = fcmp ole double 0.000000e+00, %30986
  %30988 = zext i1 %30987 to i64
  %30989 = select i1 %30987, double 0.000000e+00, double -1.280000e+02
  store double %30989, ptr %897, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %898) #3
  %30990 = load double, ptr %892, align 8, !tbaa !11
  %30991 = fcmp ole double 0.000000e+00, %30990
  %30992 = zext i1 %30991 to i64
  %30993 = select i1 %30991, double 1.270000e+02, double 0.000000e+00
  store double %30993, ptr %898, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %899) #3
  %30994 = load i32, ptr %890, align 4, !tbaa !9
  %30995 = sitofp i32 %30994 to double
  %30996 = load double, ptr %891, align 8, !tbaa !11
  %30997 = fsub double %30995, %30996
  %30998 = load double, ptr %898, align 8, !tbaa !11
  %30999 = load double, ptr %897, align 8, !tbaa !11
  %31000 = fsub double %30998, %30999
  %31001 = fmul double %30997, %31000
  %31002 = load double, ptr %892, align 8, !tbaa !11
  %31003 = load double, ptr %891, align 8, !tbaa !11
  %31004 = fsub double %31002, %31003
  %31005 = fdiv double %31001, %31004
  %31006 = load double, ptr %897, align 8, !tbaa !11
  %31007 = fadd double %31005, %31006
  store double %31007, ptr %899, align 8, !tbaa !11
  %31008 = load double, ptr %897, align 8, !tbaa !11
  %31009 = load double, ptr %899, align 8, !tbaa !11
  %31010 = fcmp ole double 0.000000e+00, %31009
  br i1 %31010, label %31011, label %31014

31011:                                            ; preds = %30985
  %31012 = load double, ptr %899, align 8, !tbaa !11
  %31013 = fadd double %31012, 5.000000e-01
  br label %31017

31014:                                            ; preds = %30985
  %31015 = load double, ptr %899, align 8, !tbaa !11
  %31016 = fsub double %31015, 5.000000e-01
  br label %31017

31017:                                            ; preds = %31014, %31011
  %31018 = phi double [ %31013, %31011 ], [ %31016, %31014 ]
  %31019 = fcmp olt double %31008, %31018
  br i1 %31019, label %31020, label %31074

31020:                                            ; preds = %31017
  %31021 = load double, ptr %899, align 8, !tbaa !11
  %31022 = fcmp ole double 0.000000e+00, %31021
  br i1 %31022, label %31023, label %31026

31023:                                            ; preds = %31020
  %31024 = load double, ptr %899, align 8, !tbaa !11
  %31025 = fadd double %31024, 5.000000e-01
  br label %31029

31026:                                            ; preds = %31020
  %31027 = load double, ptr %899, align 8, !tbaa !11
  %31028 = fsub double %31027, 5.000000e-01
  br label %31029

31029:                                            ; preds = %31026, %31023
  %31030 = phi double [ %31025, %31023 ], [ %31028, %31026 ]
  %31031 = load double, ptr %898, align 8, !tbaa !11
  %31032 = fcmp ole double %31030, %31031
  br i1 %31032, label %31033, label %31044

31033:                                            ; preds = %31029
  %31034 = load double, ptr %899, align 8, !tbaa !11
  %31035 = fcmp ole double 0.000000e+00, %31034
  br i1 %31035, label %31036, label %31039

31036:                                            ; preds = %31033
  %31037 = load double, ptr %899, align 8, !tbaa !11
  %31038 = fadd double %31037, 5.000000e-01
  br label %31042

31039:                                            ; preds = %31033
  %31040 = load double, ptr %899, align 8, !tbaa !11
  %31041 = fsub double %31040, 5.000000e-01
  br label %31042

31042:                                            ; preds = %31039, %31036
  %31043 = phi double [ %31038, %31036 ], [ %31041, %31039 ]
  br label %31072

31044:                                            ; preds = %31029
  %31045 = load double, ptr %899, align 8, !tbaa !11
  %31046 = fcmp ole double 0.000000e+00, %31045
  br i1 %31046, label %31047, label %31050

31047:                                            ; preds = %31044
  %31048 = load double, ptr %899, align 8, !tbaa !11
  %31049 = fadd double %31048, 5.000000e-01
  br label %31053

31050:                                            ; preds = %31044
  %31051 = load double, ptr %899, align 8, !tbaa !11
  %31052 = fsub double %31051, 5.000000e-01
  br label %31053

31053:                                            ; preds = %31050, %31047
  %31054 = phi double [ %31049, %31047 ], [ %31052, %31050 ]
  %31055 = load double, ptr %898, align 8, !tbaa !11
  %31056 = fcmp olt double %31054, %31055
  br i1 %31056, label %31057, label %31068

31057:                                            ; preds = %31053
  %31058 = load double, ptr %899, align 8, !tbaa !11
  %31059 = fcmp ole double 0.000000e+00, %31058
  br i1 %31059, label %31060, label %31063

31060:                                            ; preds = %31057
  %31061 = load double, ptr %899, align 8, !tbaa !11
  %31062 = fadd double %31061, 5.000000e-01
  br label %31066

31063:                                            ; preds = %31057
  %31064 = load double, ptr %899, align 8, !tbaa !11
  %31065 = fsub double %31064, 5.000000e-01
  br label %31066

31066:                                            ; preds = %31063, %31060
  %31067 = phi double [ %31062, %31060 ], [ %31065, %31063 ]
  br label %31070

31068:                                            ; preds = %31053
  %31069 = load double, ptr %898, align 8, !tbaa !11
  br label %31070

31070:                                            ; preds = %31068, %31066
  %31071 = phi double [ %31067, %31066 ], [ %31069, %31068 ]
  br label %31072

31072:                                            ; preds = %31070, %31042
  %31073 = phi double [ %31043, %31042 ], [ %31071, %31070 ]
  br label %31102

31074:                                            ; preds = %31017
  %31075 = load double, ptr %897, align 8, !tbaa !11
  %31076 = load double, ptr %899, align 8, !tbaa !11
  %31077 = fcmp ole double 0.000000e+00, %31076
  br i1 %31077, label %31078, label %31081

31078:                                            ; preds = %31074
  %31079 = load double, ptr %899, align 8, !tbaa !11
  %31080 = fadd double %31079, 5.000000e-01
  br label %31084

31081:                                            ; preds = %31074
  %31082 = load double, ptr %899, align 8, !tbaa !11
  %31083 = fsub double %31082, 5.000000e-01
  br label %31084

31084:                                            ; preds = %31081, %31078
  %31085 = phi double [ %31080, %31078 ], [ %31083, %31081 ]
  %31086 = fcmp olt double %31075, %31085
  br i1 %31086, label %31087, label %31098

31087:                                            ; preds = %31084
  %31088 = load double, ptr %899, align 8, !tbaa !11
  %31089 = fcmp ole double 0.000000e+00, %31088
  br i1 %31089, label %31090, label %31093

31090:                                            ; preds = %31087
  %31091 = load double, ptr %899, align 8, !tbaa !11
  %31092 = fadd double %31091, 5.000000e-01
  br label %31096

31093:                                            ; preds = %31087
  %31094 = load double, ptr %899, align 8, !tbaa !11
  %31095 = fsub double %31094, 5.000000e-01
  br label %31096

31096:                                            ; preds = %31093, %31090
  %31097 = phi double [ %31092, %31090 ], [ %31095, %31093 ]
  br label %31100

31098:                                            ; preds = %31084
  %31099 = load double, ptr %897, align 8, !tbaa !11
  br label %31100

31100:                                            ; preds = %31098, %31096
  %31101 = phi double [ %31097, %31096 ], [ %31099, %31098 ]
  br label %31102

31102:                                            ; preds = %31100, %31072
  %31103 = phi double [ %31073, %31072 ], [ %31101, %31100 ]
  %31104 = fptosi double %31103 to i8
  %31105 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %31104, ptr %31105, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %899) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %898) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %897) #3
  br label %31183

31106:                                            ; preds = %30870, %30867
  %31107 = load i32, ptr %8, align 4, !tbaa !9
  %31108 = icmp ugt i32 6, %31107
  br i1 %31108, label %31137, label %31109

31109:                                            ; preds = %31106
  %31110 = load i32, ptr %8, align 4, !tbaa !9
  %31111 = icmp ugt i32 15, %31110
  br i1 %31111, label %31112, label %31123

31112:                                            ; preds = %31109
  %31113 = load i32, ptr %9, align 4, !tbaa !9
  %31114 = icmp ugt i32 15, %31113
  br i1 %31114, label %31115, label %31120

31115:                                            ; preds = %31112
  %31116 = load i32, ptr %9, align 4, !tbaa !9
  %31117 = load i32, ptr %8, align 4, !tbaa !9
  %31118 = icmp ugt i32 %31116, %31117
  %31119 = zext i1 %31118 to i32
  br label %31121

31120:                                            ; preds = %31112
  br label %31121

31121:                                            ; preds = %31120, %31115
  %31122 = phi i32 [ %31119, %31115 ], [ 0, %31120 ]
  br label %31134

31123:                                            ; preds = %31109
  %31124 = load i32, ptr %9, align 4, !tbaa !9
  %31125 = icmp ugt i32 15, %31124
  br i1 %31125, label %31126, label %31127

31126:                                            ; preds = %31123
  br label %31132

31127:                                            ; preds = %31123
  %31128 = load i32, ptr %9, align 4, !tbaa !9
  %31129 = load i32, ptr %8, align 4, !tbaa !9
  %31130 = icmp ugt i32 %31128, %31129
  %31131 = zext i1 %31130 to i32
  br label %31132

31132:                                            ; preds = %31127, %31126
  %31133 = phi i32 [ 0, %31126 ], [ %31131, %31127 ]
  br label %31134

31134:                                            ; preds = %31132, %31121
  %31135 = phi i32 [ %31122, %31121 ], [ %31133, %31132 ]
  %31136 = icmp ne i32 %31135, 0
  br label %31137

31137:                                            ; preds = %31134, %31106
  %31138 = phi i1 [ true, %31106 ], [ %31136, %31134 ]
  %31139 = zext i1 %31138 to i32
  %31140 = icmp eq i32 0, %31139
  br i1 %31140, label %31141, label %31178

31141:                                            ; preds = %31137
  %31142 = load i32, ptr %890, align 4, !tbaa !9
  %31143 = sitofp i32 %31142 to double
  %31144 = fcmp olt double -1.280000e+02, %31143
  br i1 %31144, label %31145, label %31164

31145:                                            ; preds = %31141
  %31146 = load i32, ptr %890, align 4, !tbaa !9
  %31147 = sitofp i32 %31146 to double
  %31148 = fcmp ole double %31147, 1.270000e+02
  br i1 %31148, label %31149, label %31152

31149:                                            ; preds = %31145
  %31150 = load i32, ptr %890, align 4, !tbaa !9
  %31151 = sitofp i32 %31150 to double
  br label %31162

31152:                                            ; preds = %31145
  %31153 = load i32, ptr %890, align 4, !tbaa !9
  %31154 = sitofp i32 %31153 to double
  %31155 = fcmp olt double %31154, 1.270000e+02
  br i1 %31155, label %31156, label %31159

31156:                                            ; preds = %31152
  %31157 = load i32, ptr %890, align 4, !tbaa !9
  %31158 = sitofp i32 %31157 to double
  br label %31160

31159:                                            ; preds = %31152
  br label %31160

31160:                                            ; preds = %31159, %31156
  %31161 = phi double [ %31158, %31156 ], [ 1.270000e+02, %31159 ]
  br label %31162

31162:                                            ; preds = %31160, %31149
  %31163 = phi double [ %31151, %31149 ], [ %31161, %31160 ]
  br label %31174

31164:                                            ; preds = %31141
  %31165 = load i32, ptr %890, align 4, !tbaa !9
  %31166 = sitofp i32 %31165 to double
  %31167 = fcmp olt double -1.280000e+02, %31166
  br i1 %31167, label %31168, label %31171

31168:                                            ; preds = %31164
  %31169 = load i32, ptr %890, align 4, !tbaa !9
  %31170 = sitofp i32 %31169 to double
  br label %31172

31171:                                            ; preds = %31164
  br label %31172

31172:                                            ; preds = %31171, %31168
  %31173 = phi double [ %31170, %31168 ], [ -1.280000e+02, %31171 ]
  br label %31174

31174:                                            ; preds = %31172, %31162
  %31175 = phi double [ %31163, %31162 ], [ %31173, %31172 ]
  %31176 = fptosi double %31175 to i8
  %31177 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %31176, ptr %31177, align 1, !tbaa !17
  br label %31182

31178:                                            ; preds = %31137
  %31179 = load i32, ptr %890, align 4, !tbaa !9
  %31180 = trunc i32 %31179 to i8
  %31181 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %31180, ptr %31181, align 1, !tbaa !17
  br label %31182

31182:                                            ; preds = %31178, %31174
  br label %31183

31183:                                            ; preds = %31182, %31102
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %892) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %891) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %890) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %889) #3
  br label %31184

31184:                                            ; preds = %31183
  br label %31185

31185:                                            ; preds = %31184
  br label %34113

31186:                                            ; preds = %30490
  br label %31187

31187:                                            ; preds = %31186
  call void @llvm.lifetime.start.p0(i64 8, ptr %900) #3
  store double 5.000000e-01, ptr %900, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %901) #3
  %31188 = load ptr, ptr %10, align 8, !tbaa !5
  %31189 = load i16, ptr %31188, align 2, !tbaa !15
  store i16 %31189, ptr %901, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %902) #3
  store double 0.000000e+00, ptr %902, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %903) #3
  store double 0.000000e+00, ptr %903, align 8, !tbaa !11
  %31190 = load ptr, ptr %11, align 8, !tbaa !5
  %31191 = icmp ne ptr null, %31190
  br i1 %31191, label %31192, label %31218

31192:                                            ; preds = %31187
  %31193 = load ptr, ptr %12, align 8, !tbaa !5
  %31194 = icmp ne ptr null, %31193
  br i1 %31194, label %31195, label %31210

31195:                                            ; preds = %31192
  %31196 = load ptr, ptr %11, align 8, !tbaa !5
  %31197 = load i16, ptr %31196, align 2, !tbaa !15
  %31198 = sext i16 %31197 to i32
  %31199 = load i16, ptr %901, align 2, !tbaa !15
  %31200 = sext i16 %31199 to i32
  %31201 = icmp sle i32 %31198, %31200
  br i1 %31201, label %31202, label %31210

31202:                                            ; preds = %31195
  %31203 = load i16, ptr %901, align 2, !tbaa !15
  %31204 = sext i16 %31203 to i32
  %31205 = load ptr, ptr %12, align 8, !tbaa !5
  %31206 = load i16, ptr %31205, align 2, !tbaa !15
  %31207 = sext i16 %31206 to i32
  %31208 = icmp sle i32 %31204, %31207
  br i1 %31208, label %31209, label %31210

31209:                                            ; preds = %31202
  br label %31211

31210:                                            ; preds = %31202, %31195, %31192
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.24, i32 noundef 491, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

31211:                                            ; preds = %31209
  %31212 = load ptr, ptr %11, align 8, !tbaa !5
  %31213 = load i16, ptr %31212, align 2, !tbaa !15
  %31214 = sitofp i16 %31213 to double
  store double %31214, ptr %902, align 8, !tbaa !11
  %31215 = load ptr, ptr %12, align 8, !tbaa !5
  %31216 = load i16, ptr %31215, align 2, !tbaa !15
  %31217 = sitofp i16 %31216 to double
  store double %31217, ptr %903, align 8, !tbaa !11
  br label %31218

31218:                                            ; preds = %31211, %31187
  %31219 = load i32, ptr %8, align 4, !tbaa !9
  %31220 = icmp ule i32 6, %31219
  br i1 %31220, label %31221, label %31459

31221:                                            ; preds = %31218
  %31222 = load double, ptr %902, align 8, !tbaa !11
  %31223 = load double, ptr %903, align 8, !tbaa !11
  %31224 = fcmp olt double %31222, %31223
  br i1 %31224, label %31225, label %31459

31225:                                            ; preds = %31221
  %31226 = load i32, ptr %8, align 4, !tbaa !9
  %31227 = icmp ule i32 15, %31226
  br i1 %31227, label %31228, label %31282

31228:                                            ; preds = %31225
  call void @llvm.lifetime.start.p0(i64 8, ptr %904) #3
  %31229 = load double, ptr %902, align 8, !tbaa !11
  %31230 = fcmp olt double 0.000000e+00, %31229
  br i1 %31230, label %31231, label %31233

31231:                                            ; preds = %31228
  %31232 = load double, ptr %902, align 8, !tbaa !11
  br label %31234

31233:                                            ; preds = %31228
  br label %31234

31234:                                            ; preds = %31233, %31231
  %31235 = phi double [ %31232, %31231 ], [ 0.000000e+00, %31233 ]
  store double %31235, ptr %904, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %905) #3
  %31236 = load double, ptr %903, align 8, !tbaa !11
  %31237 = fcmp olt double 0.000000e+00, %31236
  br i1 %31237, label %31238, label %31240

31238:                                            ; preds = %31234
  %31239 = load double, ptr %903, align 8, !tbaa !11
  br label %31241

31240:                                            ; preds = %31234
  br label %31241

31241:                                            ; preds = %31240, %31238
  %31242 = phi double [ %31239, %31238 ], [ 0.000000e+00, %31240 ]
  store double %31242, ptr %905, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %906) #3
  %31243 = load double, ptr %904, align 8, !tbaa !11
  %31244 = load double, ptr %905, align 8, !tbaa !11
  %31245 = fcmp olt double %31243, %31244
  br i1 %31245, label %31246, label %31254

31246:                                            ; preds = %31241
  %31247 = load double, ptr %903, align 8, !tbaa !11
  %31248 = load double, ptr %902, align 8, !tbaa !11
  %31249 = fsub double %31247, %31248
  %31250 = load double, ptr %905, align 8, !tbaa !11
  %31251 = load double, ptr %904, align 8, !tbaa !11
  %31252 = fsub double %31250, %31251
  %31253 = fdiv double %31249, %31252
  br label %31255

31254:                                            ; preds = %31241
  br label %31255

31255:                                            ; preds = %31254, %31246
  %31256 = phi double [ %31253, %31246 ], [ 1.000000e+00, %31254 ]
  store double %31256, ptr %906, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %907) #3
  %31257 = load double, ptr %906, align 8, !tbaa !11
  %31258 = load i16, ptr %901, align 2, !tbaa !15
  %31259 = sext i16 %31258 to i32
  %31260 = icmp slt i32 0, %31259
  br i1 %31260, label %31261, label %31264

31261:                                            ; preds = %31255
  %31262 = load i16, ptr %901, align 2, !tbaa !15
  %31263 = sext i16 %31262 to i32
  br label %31265

31264:                                            ; preds = %31255
  br label %31265

31265:                                            ; preds = %31264, %31261
  %31266 = phi i32 [ %31263, %31261 ], [ 0, %31264 ]
  %31267 = sitofp i32 %31266 to double
  %31268 = fmul double %31257, %31267
  store double %31268, ptr %907, align 8, !tbaa !11
  %31269 = load double, ptr %907, align 8, !tbaa !11
  %31270 = fcmp ole double 0.000000e+00, %31269
  br i1 %31270, label %31271, label %31274

31271:                                            ; preds = %31265
  %31272 = load double, ptr %907, align 8, !tbaa !11
  %31273 = fadd double %31272, 5.000000e-01
  br label %31277

31274:                                            ; preds = %31265
  %31275 = load double, ptr %907, align 8, !tbaa !11
  %31276 = fsub double %31275, 5.000000e-01
  br label %31277

31277:                                            ; preds = %31274, %31271
  %31278 = phi double [ %31273, %31271 ], [ %31276, %31274 ]
  %31279 = fptosi double %31278 to i16
  store i16 %31279, ptr %901, align 2, !tbaa !15
  %31280 = load double, ptr %904, align 8, !tbaa !11
  store double %31280, ptr %902, align 8, !tbaa !11
  %31281 = load double, ptr %905, align 8, !tbaa !11
  store double %31281, ptr %903, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %907) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %906) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %905) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %904) #3
  br label %31338

31282:                                            ; preds = %31225
  %31283 = load i32, ptr %8, align 4, !tbaa !9
  %31284 = icmp ugt i32 6, %31283
  br i1 %31284, label %31313, label %31285

31285:                                            ; preds = %31282
  %31286 = load i32, ptr %8, align 4, !tbaa !9
  %31287 = icmp ugt i32 15, %31286
  br i1 %31287, label %31288, label %31299

31288:                                            ; preds = %31285
  %31289 = load i32, ptr %9, align 4, !tbaa !9
  %31290 = icmp ugt i32 15, %31289
  br i1 %31290, label %31291, label %31296

31291:                                            ; preds = %31288
  %31292 = load i32, ptr %9, align 4, !tbaa !9
  %31293 = load i32, ptr %8, align 4, !tbaa !9
  %31294 = icmp ugt i32 %31292, %31293
  %31295 = zext i1 %31294 to i32
  br label %31297

31296:                                            ; preds = %31288
  br label %31297

31297:                                            ; preds = %31296, %31291
  %31298 = phi i32 [ %31295, %31291 ], [ 0, %31296 ]
  br label %31310

31299:                                            ; preds = %31285
  %31300 = load i32, ptr %9, align 4, !tbaa !9
  %31301 = icmp ugt i32 15, %31300
  br i1 %31301, label %31302, label %31303

31302:                                            ; preds = %31299
  br label %31308

31303:                                            ; preds = %31299
  %31304 = load i32, ptr %9, align 4, !tbaa !9
  %31305 = load i32, ptr %8, align 4, !tbaa !9
  %31306 = icmp ugt i32 %31304, %31305
  %31307 = zext i1 %31306 to i32
  br label %31308

31308:                                            ; preds = %31303, %31302
  %31309 = phi i32 [ 0, %31302 ], [ %31307, %31303 ]
  br label %31310

31310:                                            ; preds = %31308, %31297
  %31311 = phi i32 [ %31298, %31297 ], [ %31309, %31308 ]
  %31312 = icmp ne i32 %31311, 0
  br label %31313

31313:                                            ; preds = %31310, %31282
  %31314 = phi i1 [ true, %31282 ], [ %31312, %31310 ]
  %31315 = zext i1 %31314 to i32
  %31316 = icmp eq i32 0, %31315
  br i1 %31316, label %31317, label %31337

31317:                                            ; preds = %31313
  %31318 = load double, ptr %902, align 8, !tbaa !11
  %31319 = fcmp ogt double 0.000000e+00, %31318
  br i1 %31319, label %31320, label %31337

31320:                                            ; preds = %31317
  %31321 = load double, ptr %903, align 8, !tbaa !11
  %31322 = fcmp olt double 0.000000e+00, %31321
  br i1 %31322, label %31323, label %31337

31323:                                            ; preds = %31320
  %31324 = load double, ptr %902, align 8, !tbaa !11
  %31325 = fneg double %31324
  %31326 = load double, ptr %903, align 8, !tbaa !11
  %31327 = fcmp olt double %31325, %31326
  br i1 %31327, label %31328, label %31330

31328:                                            ; preds = %31323
  %31329 = load double, ptr %903, align 8, !tbaa !11
  br label %31333

31330:                                            ; preds = %31323
  %31331 = load double, ptr %902, align 8, !tbaa !11
  %31332 = fneg double %31331
  br label %31333

31333:                                            ; preds = %31330, %31328
  %31334 = phi double [ %31329, %31328 ], [ %31332, %31330 ]
  store double %31334, ptr %903, align 8, !tbaa !11
  %31335 = load double, ptr %903, align 8, !tbaa !11
  %31336 = fneg double %31335
  store double %31336, ptr %902, align 8, !tbaa !11
  br label %31337

31337:                                            ; preds = %31333, %31320, %31317, %31313
  br label %31338

31338:                                            ; preds = %31337, %31277
  call void @llvm.lifetime.start.p0(i64 8, ptr %908) #3
  %31339 = load double, ptr %902, align 8, !tbaa !11
  %31340 = fcmp ole double 0.000000e+00, %31339
  %31341 = zext i1 %31340 to i64
  %31342 = select i1 %31340, double 0.000000e+00, double -1.280000e+02
  store double %31342, ptr %908, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %909) #3
  %31343 = load double, ptr %903, align 8, !tbaa !11
  %31344 = fcmp ole double 0.000000e+00, %31343
  %31345 = zext i1 %31344 to i64
  %31346 = select i1 %31344, double 1.270000e+02, double 0.000000e+00
  store double %31346, ptr %909, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %910) #3
  %31347 = load i16, ptr %901, align 2, !tbaa !15
  %31348 = sitofp i16 %31347 to double
  %31349 = load double, ptr %902, align 8, !tbaa !11
  %31350 = fsub double %31348, %31349
  %31351 = load double, ptr %909, align 8, !tbaa !11
  %31352 = load double, ptr %908, align 8, !tbaa !11
  %31353 = fsub double %31351, %31352
  %31354 = fmul double %31350, %31353
  %31355 = load double, ptr %903, align 8, !tbaa !11
  %31356 = load double, ptr %902, align 8, !tbaa !11
  %31357 = fsub double %31355, %31356
  %31358 = fdiv double %31354, %31357
  %31359 = load double, ptr %908, align 8, !tbaa !11
  %31360 = fadd double %31358, %31359
  store double %31360, ptr %910, align 8, !tbaa !11
  %31361 = load double, ptr %908, align 8, !tbaa !11
  %31362 = load double, ptr %910, align 8, !tbaa !11
  %31363 = fcmp ole double 0.000000e+00, %31362
  br i1 %31363, label %31364, label %31367

31364:                                            ; preds = %31338
  %31365 = load double, ptr %910, align 8, !tbaa !11
  %31366 = fadd double %31365, 5.000000e-01
  br label %31370

31367:                                            ; preds = %31338
  %31368 = load double, ptr %910, align 8, !tbaa !11
  %31369 = fsub double %31368, 5.000000e-01
  br label %31370

31370:                                            ; preds = %31367, %31364
  %31371 = phi double [ %31366, %31364 ], [ %31369, %31367 ]
  %31372 = fcmp olt double %31361, %31371
  br i1 %31372, label %31373, label %31427

31373:                                            ; preds = %31370
  %31374 = load double, ptr %910, align 8, !tbaa !11
  %31375 = fcmp ole double 0.000000e+00, %31374
  br i1 %31375, label %31376, label %31379

31376:                                            ; preds = %31373
  %31377 = load double, ptr %910, align 8, !tbaa !11
  %31378 = fadd double %31377, 5.000000e-01
  br label %31382

31379:                                            ; preds = %31373
  %31380 = load double, ptr %910, align 8, !tbaa !11
  %31381 = fsub double %31380, 5.000000e-01
  br label %31382

31382:                                            ; preds = %31379, %31376
  %31383 = phi double [ %31378, %31376 ], [ %31381, %31379 ]
  %31384 = load double, ptr %909, align 8, !tbaa !11
  %31385 = fcmp ole double %31383, %31384
  br i1 %31385, label %31386, label %31397

31386:                                            ; preds = %31382
  %31387 = load double, ptr %910, align 8, !tbaa !11
  %31388 = fcmp ole double 0.000000e+00, %31387
  br i1 %31388, label %31389, label %31392

31389:                                            ; preds = %31386
  %31390 = load double, ptr %910, align 8, !tbaa !11
  %31391 = fadd double %31390, 5.000000e-01
  br label %31395

31392:                                            ; preds = %31386
  %31393 = load double, ptr %910, align 8, !tbaa !11
  %31394 = fsub double %31393, 5.000000e-01
  br label %31395

31395:                                            ; preds = %31392, %31389
  %31396 = phi double [ %31391, %31389 ], [ %31394, %31392 ]
  br label %31425

31397:                                            ; preds = %31382
  %31398 = load double, ptr %910, align 8, !tbaa !11
  %31399 = fcmp ole double 0.000000e+00, %31398
  br i1 %31399, label %31400, label %31403

31400:                                            ; preds = %31397
  %31401 = load double, ptr %910, align 8, !tbaa !11
  %31402 = fadd double %31401, 5.000000e-01
  br label %31406

31403:                                            ; preds = %31397
  %31404 = load double, ptr %910, align 8, !tbaa !11
  %31405 = fsub double %31404, 5.000000e-01
  br label %31406

31406:                                            ; preds = %31403, %31400
  %31407 = phi double [ %31402, %31400 ], [ %31405, %31403 ]
  %31408 = load double, ptr %909, align 8, !tbaa !11
  %31409 = fcmp olt double %31407, %31408
  br i1 %31409, label %31410, label %31421

31410:                                            ; preds = %31406
  %31411 = load double, ptr %910, align 8, !tbaa !11
  %31412 = fcmp ole double 0.000000e+00, %31411
  br i1 %31412, label %31413, label %31416

31413:                                            ; preds = %31410
  %31414 = load double, ptr %910, align 8, !tbaa !11
  %31415 = fadd double %31414, 5.000000e-01
  br label %31419

31416:                                            ; preds = %31410
  %31417 = load double, ptr %910, align 8, !tbaa !11
  %31418 = fsub double %31417, 5.000000e-01
  br label %31419

31419:                                            ; preds = %31416, %31413
  %31420 = phi double [ %31415, %31413 ], [ %31418, %31416 ]
  br label %31423

31421:                                            ; preds = %31406
  %31422 = load double, ptr %909, align 8, !tbaa !11
  br label %31423

31423:                                            ; preds = %31421, %31419
  %31424 = phi double [ %31420, %31419 ], [ %31422, %31421 ]
  br label %31425

31425:                                            ; preds = %31423, %31395
  %31426 = phi double [ %31396, %31395 ], [ %31424, %31423 ]
  br label %31455

31427:                                            ; preds = %31370
  %31428 = load double, ptr %908, align 8, !tbaa !11
  %31429 = load double, ptr %910, align 8, !tbaa !11
  %31430 = fcmp ole double 0.000000e+00, %31429
  br i1 %31430, label %31431, label %31434

31431:                                            ; preds = %31427
  %31432 = load double, ptr %910, align 8, !tbaa !11
  %31433 = fadd double %31432, 5.000000e-01
  br label %31437

31434:                                            ; preds = %31427
  %31435 = load double, ptr %910, align 8, !tbaa !11
  %31436 = fsub double %31435, 5.000000e-01
  br label %31437

31437:                                            ; preds = %31434, %31431
  %31438 = phi double [ %31433, %31431 ], [ %31436, %31434 ]
  %31439 = fcmp olt double %31428, %31438
  br i1 %31439, label %31440, label %31451

31440:                                            ; preds = %31437
  %31441 = load double, ptr %910, align 8, !tbaa !11
  %31442 = fcmp ole double 0.000000e+00, %31441
  br i1 %31442, label %31443, label %31446

31443:                                            ; preds = %31440
  %31444 = load double, ptr %910, align 8, !tbaa !11
  %31445 = fadd double %31444, 5.000000e-01
  br label %31449

31446:                                            ; preds = %31440
  %31447 = load double, ptr %910, align 8, !tbaa !11
  %31448 = fsub double %31447, 5.000000e-01
  br label %31449

31449:                                            ; preds = %31446, %31443
  %31450 = phi double [ %31445, %31443 ], [ %31448, %31446 ]
  br label %31453

31451:                                            ; preds = %31437
  %31452 = load double, ptr %908, align 8, !tbaa !11
  br label %31453

31453:                                            ; preds = %31451, %31449
  %31454 = phi double [ %31450, %31449 ], [ %31452, %31451 ]
  br label %31455

31455:                                            ; preds = %31453, %31425
  %31456 = phi double [ %31426, %31425 ], [ %31454, %31453 ]
  %31457 = fptosi double %31456 to i8
  %31458 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %31457, ptr %31458, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %910) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %909) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %908) #3
  br label %31543

31459:                                            ; preds = %31221, %31218
  %31460 = load i32, ptr %8, align 4, !tbaa !9
  %31461 = icmp ugt i32 6, %31460
  br i1 %31461, label %31490, label %31462

31462:                                            ; preds = %31459
  %31463 = load i32, ptr %8, align 4, !tbaa !9
  %31464 = icmp ugt i32 15, %31463
  br i1 %31464, label %31465, label %31476

31465:                                            ; preds = %31462
  %31466 = load i32, ptr %9, align 4, !tbaa !9
  %31467 = icmp ugt i32 15, %31466
  br i1 %31467, label %31468, label %31473

31468:                                            ; preds = %31465
  %31469 = load i32, ptr %9, align 4, !tbaa !9
  %31470 = load i32, ptr %8, align 4, !tbaa !9
  %31471 = icmp ugt i32 %31469, %31470
  %31472 = zext i1 %31471 to i32
  br label %31474

31473:                                            ; preds = %31465
  br label %31474

31474:                                            ; preds = %31473, %31468
  %31475 = phi i32 [ %31472, %31468 ], [ 0, %31473 ]
  br label %31487

31476:                                            ; preds = %31462
  %31477 = load i32, ptr %9, align 4, !tbaa !9
  %31478 = icmp ugt i32 15, %31477
  br i1 %31478, label %31479, label %31480

31479:                                            ; preds = %31476
  br label %31485

31480:                                            ; preds = %31476
  %31481 = load i32, ptr %9, align 4, !tbaa !9
  %31482 = load i32, ptr %8, align 4, !tbaa !9
  %31483 = icmp ugt i32 %31481, %31482
  %31484 = zext i1 %31483 to i32
  br label %31485

31485:                                            ; preds = %31480, %31479
  %31486 = phi i32 [ 0, %31479 ], [ %31484, %31480 ]
  br label %31487

31487:                                            ; preds = %31485, %31474
  %31488 = phi i32 [ %31475, %31474 ], [ %31486, %31485 ]
  %31489 = icmp ne i32 %31488, 0
  br label %31490

31490:                                            ; preds = %31487, %31459
  %31491 = phi i1 [ true, %31459 ], [ %31489, %31487 ]
  %31492 = zext i1 %31491 to i32
  %31493 = icmp eq i32 0, %31492
  br i1 %31493, label %31494, label %31538

31494:                                            ; preds = %31490
  %31495 = load i16, ptr %901, align 2, !tbaa !15
  %31496 = sext i16 %31495 to i32
  %31497 = sitofp i32 %31496 to double
  %31498 = fcmp olt double -1.280000e+02, %31497
  br i1 %31498, label %31499, label %31522

31499:                                            ; preds = %31494
  %31500 = load i16, ptr %901, align 2, !tbaa !15
  %31501 = sext i16 %31500 to i32
  %31502 = sitofp i32 %31501 to double
  %31503 = fcmp ole double %31502, 1.270000e+02
  br i1 %31503, label %31504, label %31508

31504:                                            ; preds = %31499
  %31505 = load i16, ptr %901, align 2, !tbaa !15
  %31506 = sext i16 %31505 to i32
  %31507 = sitofp i32 %31506 to double
  br label %31520

31508:                                            ; preds = %31499
  %31509 = load i16, ptr %901, align 2, !tbaa !15
  %31510 = sext i16 %31509 to i32
  %31511 = sitofp i32 %31510 to double
  %31512 = fcmp olt double %31511, 1.270000e+02
  br i1 %31512, label %31513, label %31517

31513:                                            ; preds = %31508
  %31514 = load i16, ptr %901, align 2, !tbaa !15
  %31515 = sext i16 %31514 to i32
  %31516 = sitofp i32 %31515 to double
  br label %31518

31517:                                            ; preds = %31508
  br label %31518

31518:                                            ; preds = %31517, %31513
  %31519 = phi double [ %31516, %31513 ], [ 1.270000e+02, %31517 ]
  br label %31520

31520:                                            ; preds = %31518, %31504
  %31521 = phi double [ %31507, %31504 ], [ %31519, %31518 ]
  br label %31534

31522:                                            ; preds = %31494
  %31523 = load i16, ptr %901, align 2, !tbaa !15
  %31524 = sext i16 %31523 to i32
  %31525 = sitofp i32 %31524 to double
  %31526 = fcmp olt double -1.280000e+02, %31525
  br i1 %31526, label %31527, label %31531

31527:                                            ; preds = %31522
  %31528 = load i16, ptr %901, align 2, !tbaa !15
  %31529 = sext i16 %31528 to i32
  %31530 = sitofp i32 %31529 to double
  br label %31532

31531:                                            ; preds = %31522
  br label %31532

31532:                                            ; preds = %31531, %31527
  %31533 = phi double [ %31530, %31527 ], [ -1.280000e+02, %31531 ]
  br label %31534

31534:                                            ; preds = %31532, %31520
  %31535 = phi double [ %31521, %31520 ], [ %31533, %31532 ]
  %31536 = fptosi double %31535 to i8
  %31537 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %31536, ptr %31537, align 1, !tbaa !17
  br label %31542

31538:                                            ; preds = %31490
  %31539 = load i16, ptr %901, align 2, !tbaa !15
  %31540 = trunc i16 %31539 to i8
  %31541 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %31540, ptr %31541, align 1, !tbaa !17
  br label %31542

31542:                                            ; preds = %31538, %31534
  br label %31543

31543:                                            ; preds = %31542, %31455
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %903) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %902) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %901) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %900) #3
  br label %31544

31544:                                            ; preds = %31543
  br label %31545

31545:                                            ; preds = %31544
  br label %34113

31546:                                            ; preds = %30490
  br label %31547

31547:                                            ; preds = %31546
  call void @llvm.lifetime.start.p0(i64 8, ptr %911) #3
  store double 5.000000e-01, ptr %911, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %912) #3
  %31548 = load ptr, ptr %10, align 8, !tbaa !5
  %31549 = load i8, ptr %31548, align 1, !tbaa !17
  store i8 %31549, ptr %912, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %913) #3
  store double 0.000000e+00, ptr %913, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %914) #3
  store double 0.000000e+00, ptr %914, align 8, !tbaa !11
  %31550 = load ptr, ptr %11, align 8, !tbaa !5
  %31551 = icmp ne ptr null, %31550
  br i1 %31551, label %31552, label %31578

31552:                                            ; preds = %31547
  %31553 = load ptr, ptr %12, align 8, !tbaa !5
  %31554 = icmp ne ptr null, %31553
  br i1 %31554, label %31555, label %31570

31555:                                            ; preds = %31552
  %31556 = load ptr, ptr %11, align 8, !tbaa !5
  %31557 = load i8, ptr %31556, align 1, !tbaa !17
  %31558 = sext i8 %31557 to i32
  %31559 = load i8, ptr %912, align 1, !tbaa !17
  %31560 = sext i8 %31559 to i32
  %31561 = icmp sle i32 %31558, %31560
  br i1 %31561, label %31562, label %31570

31562:                                            ; preds = %31555
  %31563 = load i8, ptr %912, align 1, !tbaa !17
  %31564 = sext i8 %31563 to i32
  %31565 = load ptr, ptr %12, align 8, !tbaa !5
  %31566 = load i8, ptr %31565, align 1, !tbaa !17
  %31567 = sext i8 %31566 to i32
  %31568 = icmp sle i32 %31564, %31567
  br i1 %31568, label %31569, label %31570

31569:                                            ; preds = %31562
  br label %31571

31570:                                            ; preds = %31562, %31555, %31552
  call void @__assert_fail(ptr noundef @.str.45, ptr noundef @.str.24, i32 noundef 491, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

31571:                                            ; preds = %31569
  %31572 = load ptr, ptr %11, align 8, !tbaa !5
  %31573 = load i8, ptr %31572, align 1, !tbaa !17
  %31574 = sitofp i8 %31573 to double
  store double %31574, ptr %913, align 8, !tbaa !11
  %31575 = load ptr, ptr %12, align 8, !tbaa !5
  %31576 = load i8, ptr %31575, align 1, !tbaa !17
  %31577 = sitofp i8 %31576 to double
  store double %31577, ptr %914, align 8, !tbaa !11
  br label %31578

31578:                                            ; preds = %31571, %31547
  %31579 = load i32, ptr %8, align 4, !tbaa !9
  %31580 = icmp ule i32 6, %31579
  br i1 %31580, label %31581, label %31819

31581:                                            ; preds = %31578
  %31582 = load double, ptr %913, align 8, !tbaa !11
  %31583 = load double, ptr %914, align 8, !tbaa !11
  %31584 = fcmp olt double %31582, %31583
  br i1 %31584, label %31585, label %31819

31585:                                            ; preds = %31581
  %31586 = load i32, ptr %8, align 4, !tbaa !9
  %31587 = icmp ule i32 15, %31586
  br i1 %31587, label %31588, label %31642

31588:                                            ; preds = %31585
  call void @llvm.lifetime.start.p0(i64 8, ptr %915) #3
  %31589 = load double, ptr %913, align 8, !tbaa !11
  %31590 = fcmp olt double 0.000000e+00, %31589
  br i1 %31590, label %31591, label %31593

31591:                                            ; preds = %31588
  %31592 = load double, ptr %913, align 8, !tbaa !11
  br label %31594

31593:                                            ; preds = %31588
  br label %31594

31594:                                            ; preds = %31593, %31591
  %31595 = phi double [ %31592, %31591 ], [ 0.000000e+00, %31593 ]
  store double %31595, ptr %915, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %916) #3
  %31596 = load double, ptr %914, align 8, !tbaa !11
  %31597 = fcmp olt double 0.000000e+00, %31596
  br i1 %31597, label %31598, label %31600

31598:                                            ; preds = %31594
  %31599 = load double, ptr %914, align 8, !tbaa !11
  br label %31601

31600:                                            ; preds = %31594
  br label %31601

31601:                                            ; preds = %31600, %31598
  %31602 = phi double [ %31599, %31598 ], [ 0.000000e+00, %31600 ]
  store double %31602, ptr %916, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %917) #3
  %31603 = load double, ptr %915, align 8, !tbaa !11
  %31604 = load double, ptr %916, align 8, !tbaa !11
  %31605 = fcmp olt double %31603, %31604
  br i1 %31605, label %31606, label %31614

31606:                                            ; preds = %31601
  %31607 = load double, ptr %914, align 8, !tbaa !11
  %31608 = load double, ptr %913, align 8, !tbaa !11
  %31609 = fsub double %31607, %31608
  %31610 = load double, ptr %916, align 8, !tbaa !11
  %31611 = load double, ptr %915, align 8, !tbaa !11
  %31612 = fsub double %31610, %31611
  %31613 = fdiv double %31609, %31612
  br label %31615

31614:                                            ; preds = %31601
  br label %31615

31615:                                            ; preds = %31614, %31606
  %31616 = phi double [ %31613, %31606 ], [ 1.000000e+00, %31614 ]
  store double %31616, ptr %917, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %918) #3
  %31617 = load double, ptr %917, align 8, !tbaa !11
  %31618 = load i8, ptr %912, align 1, !tbaa !17
  %31619 = sext i8 %31618 to i32
  %31620 = icmp slt i32 0, %31619
  br i1 %31620, label %31621, label %31624

31621:                                            ; preds = %31615
  %31622 = load i8, ptr %912, align 1, !tbaa !17
  %31623 = sext i8 %31622 to i32
  br label %31625

31624:                                            ; preds = %31615
  br label %31625

31625:                                            ; preds = %31624, %31621
  %31626 = phi i32 [ %31623, %31621 ], [ 0, %31624 ]
  %31627 = sitofp i32 %31626 to double
  %31628 = fmul double %31617, %31627
  store double %31628, ptr %918, align 8, !tbaa !11
  %31629 = load double, ptr %918, align 8, !tbaa !11
  %31630 = fcmp ole double 0.000000e+00, %31629
  br i1 %31630, label %31631, label %31634

31631:                                            ; preds = %31625
  %31632 = load double, ptr %918, align 8, !tbaa !11
  %31633 = fadd double %31632, 5.000000e-01
  br label %31637

31634:                                            ; preds = %31625
  %31635 = load double, ptr %918, align 8, !tbaa !11
  %31636 = fsub double %31635, 5.000000e-01
  br label %31637

31637:                                            ; preds = %31634, %31631
  %31638 = phi double [ %31633, %31631 ], [ %31636, %31634 ]
  %31639 = fptosi double %31638 to i8
  store i8 %31639, ptr %912, align 1, !tbaa !17
  %31640 = load double, ptr %915, align 8, !tbaa !11
  store double %31640, ptr %913, align 8, !tbaa !11
  %31641 = load double, ptr %916, align 8, !tbaa !11
  store double %31641, ptr %914, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %918) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %917) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %916) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %915) #3
  br label %31698

31642:                                            ; preds = %31585
  %31643 = load i32, ptr %8, align 4, !tbaa !9
  %31644 = icmp ugt i32 6, %31643
  br i1 %31644, label %31673, label %31645

31645:                                            ; preds = %31642
  %31646 = load i32, ptr %8, align 4, !tbaa !9
  %31647 = icmp ugt i32 15, %31646
  br i1 %31647, label %31648, label %31659

31648:                                            ; preds = %31645
  %31649 = load i32, ptr %9, align 4, !tbaa !9
  %31650 = icmp ugt i32 15, %31649
  br i1 %31650, label %31651, label %31656

31651:                                            ; preds = %31648
  %31652 = load i32, ptr %9, align 4, !tbaa !9
  %31653 = load i32, ptr %8, align 4, !tbaa !9
  %31654 = icmp ugt i32 %31652, %31653
  %31655 = zext i1 %31654 to i32
  br label %31657

31656:                                            ; preds = %31648
  br label %31657

31657:                                            ; preds = %31656, %31651
  %31658 = phi i32 [ %31655, %31651 ], [ 0, %31656 ]
  br label %31670

31659:                                            ; preds = %31645
  %31660 = load i32, ptr %9, align 4, !tbaa !9
  %31661 = icmp ugt i32 15, %31660
  br i1 %31661, label %31662, label %31663

31662:                                            ; preds = %31659
  br label %31668

31663:                                            ; preds = %31659
  %31664 = load i32, ptr %9, align 4, !tbaa !9
  %31665 = load i32, ptr %8, align 4, !tbaa !9
  %31666 = icmp ugt i32 %31664, %31665
  %31667 = zext i1 %31666 to i32
  br label %31668

31668:                                            ; preds = %31663, %31662
  %31669 = phi i32 [ 0, %31662 ], [ %31667, %31663 ]
  br label %31670

31670:                                            ; preds = %31668, %31657
  %31671 = phi i32 [ %31658, %31657 ], [ %31669, %31668 ]
  %31672 = icmp ne i32 %31671, 0
  br label %31673

31673:                                            ; preds = %31670, %31642
  %31674 = phi i1 [ true, %31642 ], [ %31672, %31670 ]
  %31675 = zext i1 %31674 to i32
  %31676 = icmp eq i32 0, %31675
  br i1 %31676, label %31677, label %31697

31677:                                            ; preds = %31673
  %31678 = load double, ptr %913, align 8, !tbaa !11
  %31679 = fcmp ogt double 0.000000e+00, %31678
  br i1 %31679, label %31680, label %31697

31680:                                            ; preds = %31677
  %31681 = load double, ptr %914, align 8, !tbaa !11
  %31682 = fcmp olt double 0.000000e+00, %31681
  br i1 %31682, label %31683, label %31697

31683:                                            ; preds = %31680
  %31684 = load double, ptr %913, align 8, !tbaa !11
  %31685 = fneg double %31684
  %31686 = load double, ptr %914, align 8, !tbaa !11
  %31687 = fcmp olt double %31685, %31686
  br i1 %31687, label %31688, label %31690

31688:                                            ; preds = %31683
  %31689 = load double, ptr %914, align 8, !tbaa !11
  br label %31693

31690:                                            ; preds = %31683
  %31691 = load double, ptr %913, align 8, !tbaa !11
  %31692 = fneg double %31691
  br label %31693

31693:                                            ; preds = %31690, %31688
  %31694 = phi double [ %31689, %31688 ], [ %31692, %31690 ]
  store double %31694, ptr %914, align 8, !tbaa !11
  %31695 = load double, ptr %914, align 8, !tbaa !11
  %31696 = fneg double %31695
  store double %31696, ptr %913, align 8, !tbaa !11
  br label %31697

31697:                                            ; preds = %31693, %31680, %31677, %31673
  br label %31698

31698:                                            ; preds = %31697, %31637
  call void @llvm.lifetime.start.p0(i64 8, ptr %919) #3
  %31699 = load double, ptr %913, align 8, !tbaa !11
  %31700 = fcmp ole double 0.000000e+00, %31699
  %31701 = zext i1 %31700 to i64
  %31702 = select i1 %31700, double 0.000000e+00, double -1.280000e+02
  store double %31702, ptr %919, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %920) #3
  %31703 = load double, ptr %914, align 8, !tbaa !11
  %31704 = fcmp ole double 0.000000e+00, %31703
  %31705 = zext i1 %31704 to i64
  %31706 = select i1 %31704, double 1.270000e+02, double 0.000000e+00
  store double %31706, ptr %920, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %921) #3
  %31707 = load i8, ptr %912, align 1, !tbaa !17
  %31708 = sitofp i8 %31707 to double
  %31709 = load double, ptr %913, align 8, !tbaa !11
  %31710 = fsub double %31708, %31709
  %31711 = load double, ptr %920, align 8, !tbaa !11
  %31712 = load double, ptr %919, align 8, !tbaa !11
  %31713 = fsub double %31711, %31712
  %31714 = fmul double %31710, %31713
  %31715 = load double, ptr %914, align 8, !tbaa !11
  %31716 = load double, ptr %913, align 8, !tbaa !11
  %31717 = fsub double %31715, %31716
  %31718 = fdiv double %31714, %31717
  %31719 = load double, ptr %919, align 8, !tbaa !11
  %31720 = fadd double %31718, %31719
  store double %31720, ptr %921, align 8, !tbaa !11
  %31721 = load double, ptr %919, align 8, !tbaa !11
  %31722 = load double, ptr %921, align 8, !tbaa !11
  %31723 = fcmp ole double 0.000000e+00, %31722
  br i1 %31723, label %31724, label %31727

31724:                                            ; preds = %31698
  %31725 = load double, ptr %921, align 8, !tbaa !11
  %31726 = fadd double %31725, 5.000000e-01
  br label %31730

31727:                                            ; preds = %31698
  %31728 = load double, ptr %921, align 8, !tbaa !11
  %31729 = fsub double %31728, 5.000000e-01
  br label %31730

31730:                                            ; preds = %31727, %31724
  %31731 = phi double [ %31726, %31724 ], [ %31729, %31727 ]
  %31732 = fcmp olt double %31721, %31731
  br i1 %31732, label %31733, label %31787

31733:                                            ; preds = %31730
  %31734 = load double, ptr %921, align 8, !tbaa !11
  %31735 = fcmp ole double 0.000000e+00, %31734
  br i1 %31735, label %31736, label %31739

31736:                                            ; preds = %31733
  %31737 = load double, ptr %921, align 8, !tbaa !11
  %31738 = fadd double %31737, 5.000000e-01
  br label %31742

31739:                                            ; preds = %31733
  %31740 = load double, ptr %921, align 8, !tbaa !11
  %31741 = fsub double %31740, 5.000000e-01
  br label %31742

31742:                                            ; preds = %31739, %31736
  %31743 = phi double [ %31738, %31736 ], [ %31741, %31739 ]
  %31744 = load double, ptr %920, align 8, !tbaa !11
  %31745 = fcmp ole double %31743, %31744
  br i1 %31745, label %31746, label %31757

31746:                                            ; preds = %31742
  %31747 = load double, ptr %921, align 8, !tbaa !11
  %31748 = fcmp ole double 0.000000e+00, %31747
  br i1 %31748, label %31749, label %31752

31749:                                            ; preds = %31746
  %31750 = load double, ptr %921, align 8, !tbaa !11
  %31751 = fadd double %31750, 5.000000e-01
  br label %31755

31752:                                            ; preds = %31746
  %31753 = load double, ptr %921, align 8, !tbaa !11
  %31754 = fsub double %31753, 5.000000e-01
  br label %31755

31755:                                            ; preds = %31752, %31749
  %31756 = phi double [ %31751, %31749 ], [ %31754, %31752 ]
  br label %31785

31757:                                            ; preds = %31742
  %31758 = load double, ptr %921, align 8, !tbaa !11
  %31759 = fcmp ole double 0.000000e+00, %31758
  br i1 %31759, label %31760, label %31763

31760:                                            ; preds = %31757
  %31761 = load double, ptr %921, align 8, !tbaa !11
  %31762 = fadd double %31761, 5.000000e-01
  br label %31766

31763:                                            ; preds = %31757
  %31764 = load double, ptr %921, align 8, !tbaa !11
  %31765 = fsub double %31764, 5.000000e-01
  br label %31766

31766:                                            ; preds = %31763, %31760
  %31767 = phi double [ %31762, %31760 ], [ %31765, %31763 ]
  %31768 = load double, ptr %920, align 8, !tbaa !11
  %31769 = fcmp olt double %31767, %31768
  br i1 %31769, label %31770, label %31781

31770:                                            ; preds = %31766
  %31771 = load double, ptr %921, align 8, !tbaa !11
  %31772 = fcmp ole double 0.000000e+00, %31771
  br i1 %31772, label %31773, label %31776

31773:                                            ; preds = %31770
  %31774 = load double, ptr %921, align 8, !tbaa !11
  %31775 = fadd double %31774, 5.000000e-01
  br label %31779

31776:                                            ; preds = %31770
  %31777 = load double, ptr %921, align 8, !tbaa !11
  %31778 = fsub double %31777, 5.000000e-01
  br label %31779

31779:                                            ; preds = %31776, %31773
  %31780 = phi double [ %31775, %31773 ], [ %31778, %31776 ]
  br label %31783

31781:                                            ; preds = %31766
  %31782 = load double, ptr %920, align 8, !tbaa !11
  br label %31783

31783:                                            ; preds = %31781, %31779
  %31784 = phi double [ %31780, %31779 ], [ %31782, %31781 ]
  br label %31785

31785:                                            ; preds = %31783, %31755
  %31786 = phi double [ %31756, %31755 ], [ %31784, %31783 ]
  br label %31815

31787:                                            ; preds = %31730
  %31788 = load double, ptr %919, align 8, !tbaa !11
  %31789 = load double, ptr %921, align 8, !tbaa !11
  %31790 = fcmp ole double 0.000000e+00, %31789
  br i1 %31790, label %31791, label %31794

31791:                                            ; preds = %31787
  %31792 = load double, ptr %921, align 8, !tbaa !11
  %31793 = fadd double %31792, 5.000000e-01
  br label %31797

31794:                                            ; preds = %31787
  %31795 = load double, ptr %921, align 8, !tbaa !11
  %31796 = fsub double %31795, 5.000000e-01
  br label %31797

31797:                                            ; preds = %31794, %31791
  %31798 = phi double [ %31793, %31791 ], [ %31796, %31794 ]
  %31799 = fcmp olt double %31788, %31798
  br i1 %31799, label %31800, label %31811

31800:                                            ; preds = %31797
  %31801 = load double, ptr %921, align 8, !tbaa !11
  %31802 = fcmp ole double 0.000000e+00, %31801
  br i1 %31802, label %31803, label %31806

31803:                                            ; preds = %31800
  %31804 = load double, ptr %921, align 8, !tbaa !11
  %31805 = fadd double %31804, 5.000000e-01
  br label %31809

31806:                                            ; preds = %31800
  %31807 = load double, ptr %921, align 8, !tbaa !11
  %31808 = fsub double %31807, 5.000000e-01
  br label %31809

31809:                                            ; preds = %31806, %31803
  %31810 = phi double [ %31805, %31803 ], [ %31808, %31806 ]
  br label %31813

31811:                                            ; preds = %31797
  %31812 = load double, ptr %919, align 8, !tbaa !11
  br label %31813

31813:                                            ; preds = %31811, %31809
  %31814 = phi double [ %31810, %31809 ], [ %31812, %31811 ]
  br label %31815

31815:                                            ; preds = %31813, %31785
  %31816 = phi double [ %31786, %31785 ], [ %31814, %31813 ]
  %31817 = fptosi double %31816 to i8
  %31818 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %31817, ptr %31818, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %921) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %920) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %919) #3
  br label %31902

31819:                                            ; preds = %31581, %31578
  %31820 = load i32, ptr %8, align 4, !tbaa !9
  %31821 = icmp ugt i32 6, %31820
  br i1 %31821, label %31850, label %31822

31822:                                            ; preds = %31819
  %31823 = load i32, ptr %8, align 4, !tbaa !9
  %31824 = icmp ugt i32 15, %31823
  br i1 %31824, label %31825, label %31836

31825:                                            ; preds = %31822
  %31826 = load i32, ptr %9, align 4, !tbaa !9
  %31827 = icmp ugt i32 15, %31826
  br i1 %31827, label %31828, label %31833

31828:                                            ; preds = %31825
  %31829 = load i32, ptr %9, align 4, !tbaa !9
  %31830 = load i32, ptr %8, align 4, !tbaa !9
  %31831 = icmp ugt i32 %31829, %31830
  %31832 = zext i1 %31831 to i32
  br label %31834

31833:                                            ; preds = %31825
  br label %31834

31834:                                            ; preds = %31833, %31828
  %31835 = phi i32 [ %31832, %31828 ], [ 0, %31833 ]
  br label %31847

31836:                                            ; preds = %31822
  %31837 = load i32, ptr %9, align 4, !tbaa !9
  %31838 = icmp ugt i32 15, %31837
  br i1 %31838, label %31839, label %31840

31839:                                            ; preds = %31836
  br label %31845

31840:                                            ; preds = %31836
  %31841 = load i32, ptr %9, align 4, !tbaa !9
  %31842 = load i32, ptr %8, align 4, !tbaa !9
  %31843 = icmp ugt i32 %31841, %31842
  %31844 = zext i1 %31843 to i32
  br label %31845

31845:                                            ; preds = %31840, %31839
  %31846 = phi i32 [ 0, %31839 ], [ %31844, %31840 ]
  br label %31847

31847:                                            ; preds = %31845, %31834
  %31848 = phi i32 [ %31835, %31834 ], [ %31846, %31845 ]
  %31849 = icmp ne i32 %31848, 0
  br label %31850

31850:                                            ; preds = %31847, %31819
  %31851 = phi i1 [ true, %31819 ], [ %31849, %31847 ]
  %31852 = zext i1 %31851 to i32
  %31853 = icmp eq i32 0, %31852
  br i1 %31853, label %31854, label %31898

31854:                                            ; preds = %31850
  %31855 = load i8, ptr %912, align 1, !tbaa !17
  %31856 = sext i8 %31855 to i32
  %31857 = sitofp i32 %31856 to double
  %31858 = fcmp olt double -1.280000e+02, %31857
  br i1 %31858, label %31859, label %31882

31859:                                            ; preds = %31854
  %31860 = load i8, ptr %912, align 1, !tbaa !17
  %31861 = sext i8 %31860 to i32
  %31862 = sitofp i32 %31861 to double
  %31863 = fcmp ole double %31862, 1.270000e+02
  br i1 %31863, label %31864, label %31868

31864:                                            ; preds = %31859
  %31865 = load i8, ptr %912, align 1, !tbaa !17
  %31866 = sext i8 %31865 to i32
  %31867 = sitofp i32 %31866 to double
  br label %31880

31868:                                            ; preds = %31859
  %31869 = load i8, ptr %912, align 1, !tbaa !17
  %31870 = sext i8 %31869 to i32
  %31871 = sitofp i32 %31870 to double
  %31872 = fcmp olt double %31871, 1.270000e+02
  br i1 %31872, label %31873, label %31877

31873:                                            ; preds = %31868
  %31874 = load i8, ptr %912, align 1, !tbaa !17
  %31875 = sext i8 %31874 to i32
  %31876 = sitofp i32 %31875 to double
  br label %31878

31877:                                            ; preds = %31868
  br label %31878

31878:                                            ; preds = %31877, %31873
  %31879 = phi double [ %31876, %31873 ], [ 1.270000e+02, %31877 ]
  br label %31880

31880:                                            ; preds = %31878, %31864
  %31881 = phi double [ %31867, %31864 ], [ %31879, %31878 ]
  br label %31894

31882:                                            ; preds = %31854
  %31883 = load i8, ptr %912, align 1, !tbaa !17
  %31884 = sext i8 %31883 to i32
  %31885 = sitofp i32 %31884 to double
  %31886 = fcmp olt double -1.280000e+02, %31885
  br i1 %31886, label %31887, label %31891

31887:                                            ; preds = %31882
  %31888 = load i8, ptr %912, align 1, !tbaa !17
  %31889 = sext i8 %31888 to i32
  %31890 = sitofp i32 %31889 to double
  br label %31892

31891:                                            ; preds = %31882
  br label %31892

31892:                                            ; preds = %31891, %31887
  %31893 = phi double [ %31890, %31887 ], [ -1.280000e+02, %31891 ]
  br label %31894

31894:                                            ; preds = %31892, %31880
  %31895 = phi double [ %31881, %31880 ], [ %31893, %31892 ]
  %31896 = fptosi double %31895 to i8
  %31897 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %31896, ptr %31897, align 1, !tbaa !17
  br label %31901

31898:                                            ; preds = %31850
  %31899 = load i8, ptr %912, align 1, !tbaa !17
  %31900 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %31899, ptr %31900, align 1, !tbaa !17
  br label %31901

31901:                                            ; preds = %31898, %31894
  br label %31902

31902:                                            ; preds = %31901, %31815
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %914) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %913) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %912) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %911) #3
  br label %31903

31903:                                            ; preds = %31902
  br label %31904

31904:                                            ; preds = %31903
  br label %34113

31905:                                            ; preds = %30490
  br label %31906

31906:                                            ; preds = %31905
  call void @llvm.lifetime.start.p0(i64 8, ptr %922) #3
  store double 5.000000e-01, ptr %922, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %923) #3
  %31907 = load ptr, ptr %10, align 8, !tbaa !5
  %31908 = load i64, ptr %31907, align 8, !tbaa !13
  store i64 %31908, ptr %923, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %924) #3
  store double 0.000000e+00, ptr %924, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %925) #3
  store double 0.000000e+00, ptr %925, align 8, !tbaa !11
  %31909 = load ptr, ptr %11, align 8, !tbaa !5
  %31910 = icmp ne ptr null, %31909
  br i1 %31910, label %31911, label %31933

31911:                                            ; preds = %31906
  %31912 = load ptr, ptr %12, align 8, !tbaa !5
  %31913 = icmp ne ptr null, %31912
  br i1 %31913, label %31914, label %31925

31914:                                            ; preds = %31911
  %31915 = load ptr, ptr %11, align 8, !tbaa !5
  %31916 = load i64, ptr %31915, align 8, !tbaa !13
  %31917 = load i64, ptr %923, align 8, !tbaa !13
  %31918 = icmp ule i64 %31916, %31917
  br i1 %31918, label %31919, label %31925

31919:                                            ; preds = %31914
  %31920 = load i64, ptr %923, align 8, !tbaa !13
  %31921 = load ptr, ptr %12, align 8, !tbaa !5
  %31922 = load i64, ptr %31921, align 8, !tbaa !13
  %31923 = icmp ule i64 %31920, %31922
  br i1 %31923, label %31924, label %31925

31924:                                            ; preds = %31919
  br label %31926

31925:                                            ; preds = %31919, %31914, %31911
  call void @__assert_fail(ptr noundef @.str.46, ptr noundef @.str.24, i32 noundef 491, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

31926:                                            ; preds = %31924
  %31927 = load ptr, ptr %11, align 8, !tbaa !5
  %31928 = load i64, ptr %31927, align 8, !tbaa !13
  %31929 = uitofp i64 %31928 to double
  store double %31929, ptr %924, align 8, !tbaa !11
  %31930 = load ptr, ptr %12, align 8, !tbaa !5
  %31931 = load i64, ptr %31930, align 8, !tbaa !13
  %31932 = uitofp i64 %31931 to double
  store double %31932, ptr %925, align 8, !tbaa !11
  br label %31933

31933:                                            ; preds = %31926, %31906
  %31934 = load i32, ptr %8, align 4, !tbaa !9
  %31935 = icmp ule i32 6, %31934
  br i1 %31935, label %31936, label %32172

31936:                                            ; preds = %31933
  %31937 = load double, ptr %924, align 8, !tbaa !11
  %31938 = load double, ptr %925, align 8, !tbaa !11
  %31939 = fcmp olt double %31937, %31938
  br i1 %31939, label %31940, label %32172

31940:                                            ; preds = %31936
  %31941 = load i32, ptr %8, align 4, !tbaa !9
  %31942 = icmp ule i32 15, %31941
  br i1 %31942, label %31943, label %31995

31943:                                            ; preds = %31940
  call void @llvm.lifetime.start.p0(i64 8, ptr %926) #3
  %31944 = load double, ptr %924, align 8, !tbaa !11
  %31945 = fcmp olt double 0.000000e+00, %31944
  br i1 %31945, label %31946, label %31948

31946:                                            ; preds = %31943
  %31947 = load double, ptr %924, align 8, !tbaa !11
  br label %31949

31948:                                            ; preds = %31943
  br label %31949

31949:                                            ; preds = %31948, %31946
  %31950 = phi double [ %31947, %31946 ], [ 0.000000e+00, %31948 ]
  store double %31950, ptr %926, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %927) #3
  %31951 = load double, ptr %925, align 8, !tbaa !11
  %31952 = fcmp olt double 0.000000e+00, %31951
  br i1 %31952, label %31953, label %31955

31953:                                            ; preds = %31949
  %31954 = load double, ptr %925, align 8, !tbaa !11
  br label %31956

31955:                                            ; preds = %31949
  br label %31956

31956:                                            ; preds = %31955, %31953
  %31957 = phi double [ %31954, %31953 ], [ 0.000000e+00, %31955 ]
  store double %31957, ptr %927, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %928) #3
  %31958 = load double, ptr %926, align 8, !tbaa !11
  %31959 = load double, ptr %927, align 8, !tbaa !11
  %31960 = fcmp olt double %31958, %31959
  br i1 %31960, label %31961, label %31969

31961:                                            ; preds = %31956
  %31962 = load double, ptr %925, align 8, !tbaa !11
  %31963 = load double, ptr %924, align 8, !tbaa !11
  %31964 = fsub double %31962, %31963
  %31965 = load double, ptr %927, align 8, !tbaa !11
  %31966 = load double, ptr %926, align 8, !tbaa !11
  %31967 = fsub double %31965, %31966
  %31968 = fdiv double %31964, %31967
  br label %31970

31969:                                            ; preds = %31956
  br label %31970

31970:                                            ; preds = %31969, %31961
  %31971 = phi double [ %31968, %31961 ], [ 1.000000e+00, %31969 ]
  store double %31971, ptr %928, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %929) #3
  %31972 = load double, ptr %928, align 8, !tbaa !11
  %31973 = load i64, ptr %923, align 8, !tbaa !13
  %31974 = icmp ult i64 0, %31973
  br i1 %31974, label %31975, label %31977

31975:                                            ; preds = %31970
  %31976 = load i64, ptr %923, align 8, !tbaa !13
  br label %31978

31977:                                            ; preds = %31970
  br label %31978

31978:                                            ; preds = %31977, %31975
  %31979 = phi i64 [ %31976, %31975 ], [ 0, %31977 ]
  %31980 = uitofp i64 %31979 to double
  %31981 = fmul double %31972, %31980
  store double %31981, ptr %929, align 8, !tbaa !11
  %31982 = load double, ptr %929, align 8, !tbaa !11
  %31983 = fcmp ole double 0.000000e+00, %31982
  br i1 %31983, label %31984, label %31987

31984:                                            ; preds = %31978
  %31985 = load double, ptr %929, align 8, !tbaa !11
  %31986 = fadd double %31985, 5.000000e-01
  br label %31990

31987:                                            ; preds = %31978
  %31988 = load double, ptr %929, align 8, !tbaa !11
  %31989 = fsub double %31988, 5.000000e-01
  br label %31990

31990:                                            ; preds = %31987, %31984
  %31991 = phi double [ %31986, %31984 ], [ %31989, %31987 ]
  %31992 = fptoui double %31991 to i64
  store i64 %31992, ptr %923, align 8, !tbaa !13
  %31993 = load double, ptr %926, align 8, !tbaa !11
  store double %31993, ptr %924, align 8, !tbaa !11
  %31994 = load double, ptr %927, align 8, !tbaa !11
  store double %31994, ptr %925, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %929) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %928) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %927) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %926) #3
  br label %32051

31995:                                            ; preds = %31940
  %31996 = load i32, ptr %8, align 4, !tbaa !9
  %31997 = icmp ugt i32 6, %31996
  br i1 %31997, label %32026, label %31998

31998:                                            ; preds = %31995
  %31999 = load i32, ptr %8, align 4, !tbaa !9
  %32000 = icmp ugt i32 15, %31999
  br i1 %32000, label %32001, label %32012

32001:                                            ; preds = %31998
  %32002 = load i32, ptr %9, align 4, !tbaa !9
  %32003 = icmp ugt i32 15, %32002
  br i1 %32003, label %32004, label %32009

32004:                                            ; preds = %32001
  %32005 = load i32, ptr %9, align 4, !tbaa !9
  %32006 = load i32, ptr %8, align 4, !tbaa !9
  %32007 = icmp ugt i32 %32005, %32006
  %32008 = zext i1 %32007 to i32
  br label %32010

32009:                                            ; preds = %32001
  br label %32010

32010:                                            ; preds = %32009, %32004
  %32011 = phi i32 [ %32008, %32004 ], [ 0, %32009 ]
  br label %32023

32012:                                            ; preds = %31998
  %32013 = load i32, ptr %9, align 4, !tbaa !9
  %32014 = icmp ugt i32 15, %32013
  br i1 %32014, label %32015, label %32016

32015:                                            ; preds = %32012
  br label %32021

32016:                                            ; preds = %32012
  %32017 = load i32, ptr %9, align 4, !tbaa !9
  %32018 = load i32, ptr %8, align 4, !tbaa !9
  %32019 = icmp ugt i32 %32017, %32018
  %32020 = zext i1 %32019 to i32
  br label %32021

32021:                                            ; preds = %32016, %32015
  %32022 = phi i32 [ 0, %32015 ], [ %32020, %32016 ]
  br label %32023

32023:                                            ; preds = %32021, %32010
  %32024 = phi i32 [ %32011, %32010 ], [ %32022, %32021 ]
  %32025 = icmp ne i32 %32024, 0
  br label %32026

32026:                                            ; preds = %32023, %31995
  %32027 = phi i1 [ true, %31995 ], [ %32025, %32023 ]
  %32028 = zext i1 %32027 to i32
  %32029 = icmp eq i32 0, %32028
  br i1 %32029, label %32030, label %32050

32030:                                            ; preds = %32026
  %32031 = load double, ptr %924, align 8, !tbaa !11
  %32032 = fcmp ogt double 0.000000e+00, %32031
  br i1 %32032, label %32033, label %32050

32033:                                            ; preds = %32030
  %32034 = load double, ptr %925, align 8, !tbaa !11
  %32035 = fcmp olt double 0.000000e+00, %32034
  br i1 %32035, label %32036, label %32050

32036:                                            ; preds = %32033
  %32037 = load double, ptr %924, align 8, !tbaa !11
  %32038 = fneg double %32037
  %32039 = load double, ptr %925, align 8, !tbaa !11
  %32040 = fcmp olt double %32038, %32039
  br i1 %32040, label %32041, label %32043

32041:                                            ; preds = %32036
  %32042 = load double, ptr %925, align 8, !tbaa !11
  br label %32046

32043:                                            ; preds = %32036
  %32044 = load double, ptr %924, align 8, !tbaa !11
  %32045 = fneg double %32044
  br label %32046

32046:                                            ; preds = %32043, %32041
  %32047 = phi double [ %32042, %32041 ], [ %32045, %32043 ]
  store double %32047, ptr %925, align 8, !tbaa !11
  %32048 = load double, ptr %925, align 8, !tbaa !11
  %32049 = fneg double %32048
  store double %32049, ptr %924, align 8, !tbaa !11
  br label %32050

32050:                                            ; preds = %32046, %32033, %32030, %32026
  br label %32051

32051:                                            ; preds = %32050, %31990
  call void @llvm.lifetime.start.p0(i64 8, ptr %930) #3
  %32052 = load double, ptr %924, align 8, !tbaa !11
  %32053 = fcmp ole double 0.000000e+00, %32052
  %32054 = zext i1 %32053 to i64
  %32055 = select i1 %32053, double 0.000000e+00, double -1.280000e+02
  store double %32055, ptr %930, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %931) #3
  %32056 = load double, ptr %925, align 8, !tbaa !11
  %32057 = fcmp ole double 0.000000e+00, %32056
  %32058 = zext i1 %32057 to i64
  %32059 = select i1 %32057, double 1.270000e+02, double 0.000000e+00
  store double %32059, ptr %931, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %932) #3
  %32060 = load i64, ptr %923, align 8, !tbaa !13
  %32061 = uitofp i64 %32060 to double
  %32062 = load double, ptr %924, align 8, !tbaa !11
  %32063 = fsub double %32061, %32062
  %32064 = load double, ptr %931, align 8, !tbaa !11
  %32065 = load double, ptr %930, align 8, !tbaa !11
  %32066 = fsub double %32064, %32065
  %32067 = fmul double %32063, %32066
  %32068 = load double, ptr %925, align 8, !tbaa !11
  %32069 = load double, ptr %924, align 8, !tbaa !11
  %32070 = fsub double %32068, %32069
  %32071 = fdiv double %32067, %32070
  %32072 = load double, ptr %930, align 8, !tbaa !11
  %32073 = fadd double %32071, %32072
  store double %32073, ptr %932, align 8, !tbaa !11
  %32074 = load double, ptr %930, align 8, !tbaa !11
  %32075 = load double, ptr %932, align 8, !tbaa !11
  %32076 = fcmp ole double 0.000000e+00, %32075
  br i1 %32076, label %32077, label %32080

32077:                                            ; preds = %32051
  %32078 = load double, ptr %932, align 8, !tbaa !11
  %32079 = fadd double %32078, 5.000000e-01
  br label %32083

32080:                                            ; preds = %32051
  %32081 = load double, ptr %932, align 8, !tbaa !11
  %32082 = fsub double %32081, 5.000000e-01
  br label %32083

32083:                                            ; preds = %32080, %32077
  %32084 = phi double [ %32079, %32077 ], [ %32082, %32080 ]
  %32085 = fcmp olt double %32074, %32084
  br i1 %32085, label %32086, label %32140

32086:                                            ; preds = %32083
  %32087 = load double, ptr %932, align 8, !tbaa !11
  %32088 = fcmp ole double 0.000000e+00, %32087
  br i1 %32088, label %32089, label %32092

32089:                                            ; preds = %32086
  %32090 = load double, ptr %932, align 8, !tbaa !11
  %32091 = fadd double %32090, 5.000000e-01
  br label %32095

32092:                                            ; preds = %32086
  %32093 = load double, ptr %932, align 8, !tbaa !11
  %32094 = fsub double %32093, 5.000000e-01
  br label %32095

32095:                                            ; preds = %32092, %32089
  %32096 = phi double [ %32091, %32089 ], [ %32094, %32092 ]
  %32097 = load double, ptr %931, align 8, !tbaa !11
  %32098 = fcmp ole double %32096, %32097
  br i1 %32098, label %32099, label %32110

32099:                                            ; preds = %32095
  %32100 = load double, ptr %932, align 8, !tbaa !11
  %32101 = fcmp ole double 0.000000e+00, %32100
  br i1 %32101, label %32102, label %32105

32102:                                            ; preds = %32099
  %32103 = load double, ptr %932, align 8, !tbaa !11
  %32104 = fadd double %32103, 5.000000e-01
  br label %32108

32105:                                            ; preds = %32099
  %32106 = load double, ptr %932, align 8, !tbaa !11
  %32107 = fsub double %32106, 5.000000e-01
  br label %32108

32108:                                            ; preds = %32105, %32102
  %32109 = phi double [ %32104, %32102 ], [ %32107, %32105 ]
  br label %32138

32110:                                            ; preds = %32095
  %32111 = load double, ptr %932, align 8, !tbaa !11
  %32112 = fcmp ole double 0.000000e+00, %32111
  br i1 %32112, label %32113, label %32116

32113:                                            ; preds = %32110
  %32114 = load double, ptr %932, align 8, !tbaa !11
  %32115 = fadd double %32114, 5.000000e-01
  br label %32119

32116:                                            ; preds = %32110
  %32117 = load double, ptr %932, align 8, !tbaa !11
  %32118 = fsub double %32117, 5.000000e-01
  br label %32119

32119:                                            ; preds = %32116, %32113
  %32120 = phi double [ %32115, %32113 ], [ %32118, %32116 ]
  %32121 = load double, ptr %931, align 8, !tbaa !11
  %32122 = fcmp olt double %32120, %32121
  br i1 %32122, label %32123, label %32134

32123:                                            ; preds = %32119
  %32124 = load double, ptr %932, align 8, !tbaa !11
  %32125 = fcmp ole double 0.000000e+00, %32124
  br i1 %32125, label %32126, label %32129

32126:                                            ; preds = %32123
  %32127 = load double, ptr %932, align 8, !tbaa !11
  %32128 = fadd double %32127, 5.000000e-01
  br label %32132

32129:                                            ; preds = %32123
  %32130 = load double, ptr %932, align 8, !tbaa !11
  %32131 = fsub double %32130, 5.000000e-01
  br label %32132

32132:                                            ; preds = %32129, %32126
  %32133 = phi double [ %32128, %32126 ], [ %32131, %32129 ]
  br label %32136

32134:                                            ; preds = %32119
  %32135 = load double, ptr %931, align 8, !tbaa !11
  br label %32136

32136:                                            ; preds = %32134, %32132
  %32137 = phi double [ %32133, %32132 ], [ %32135, %32134 ]
  br label %32138

32138:                                            ; preds = %32136, %32108
  %32139 = phi double [ %32109, %32108 ], [ %32137, %32136 ]
  br label %32168

32140:                                            ; preds = %32083
  %32141 = load double, ptr %930, align 8, !tbaa !11
  %32142 = load double, ptr %932, align 8, !tbaa !11
  %32143 = fcmp ole double 0.000000e+00, %32142
  br i1 %32143, label %32144, label %32147

32144:                                            ; preds = %32140
  %32145 = load double, ptr %932, align 8, !tbaa !11
  %32146 = fadd double %32145, 5.000000e-01
  br label %32150

32147:                                            ; preds = %32140
  %32148 = load double, ptr %932, align 8, !tbaa !11
  %32149 = fsub double %32148, 5.000000e-01
  br label %32150

32150:                                            ; preds = %32147, %32144
  %32151 = phi double [ %32146, %32144 ], [ %32149, %32147 ]
  %32152 = fcmp olt double %32141, %32151
  br i1 %32152, label %32153, label %32164

32153:                                            ; preds = %32150
  %32154 = load double, ptr %932, align 8, !tbaa !11
  %32155 = fcmp ole double 0.000000e+00, %32154
  br i1 %32155, label %32156, label %32159

32156:                                            ; preds = %32153
  %32157 = load double, ptr %932, align 8, !tbaa !11
  %32158 = fadd double %32157, 5.000000e-01
  br label %32162

32159:                                            ; preds = %32153
  %32160 = load double, ptr %932, align 8, !tbaa !11
  %32161 = fsub double %32160, 5.000000e-01
  br label %32162

32162:                                            ; preds = %32159, %32156
  %32163 = phi double [ %32158, %32156 ], [ %32161, %32159 ]
  br label %32166

32164:                                            ; preds = %32150
  %32165 = load double, ptr %930, align 8, !tbaa !11
  br label %32166

32166:                                            ; preds = %32164, %32162
  %32167 = phi double [ %32163, %32162 ], [ %32165, %32164 ]
  br label %32168

32168:                                            ; preds = %32166, %32138
  %32169 = phi double [ %32139, %32138 ], [ %32167, %32166 ]
  %32170 = fptosi double %32169 to i8
  %32171 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %32170, ptr %32171, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %932) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %931) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %930) #3
  br label %32249

32172:                                            ; preds = %31936, %31933
  %32173 = load i32, ptr %8, align 4, !tbaa !9
  %32174 = icmp ugt i32 6, %32173
  br i1 %32174, label %32203, label %32175

32175:                                            ; preds = %32172
  %32176 = load i32, ptr %8, align 4, !tbaa !9
  %32177 = icmp ugt i32 15, %32176
  br i1 %32177, label %32178, label %32189

32178:                                            ; preds = %32175
  %32179 = load i32, ptr %9, align 4, !tbaa !9
  %32180 = icmp ugt i32 15, %32179
  br i1 %32180, label %32181, label %32186

32181:                                            ; preds = %32178
  %32182 = load i32, ptr %9, align 4, !tbaa !9
  %32183 = load i32, ptr %8, align 4, !tbaa !9
  %32184 = icmp ugt i32 %32182, %32183
  %32185 = zext i1 %32184 to i32
  br label %32187

32186:                                            ; preds = %32178
  br label %32187

32187:                                            ; preds = %32186, %32181
  %32188 = phi i32 [ %32185, %32181 ], [ 0, %32186 ]
  br label %32200

32189:                                            ; preds = %32175
  %32190 = load i32, ptr %9, align 4, !tbaa !9
  %32191 = icmp ugt i32 15, %32190
  br i1 %32191, label %32192, label %32193

32192:                                            ; preds = %32189
  br label %32198

32193:                                            ; preds = %32189
  %32194 = load i32, ptr %9, align 4, !tbaa !9
  %32195 = load i32, ptr %8, align 4, !tbaa !9
  %32196 = icmp ugt i32 %32194, %32195
  %32197 = zext i1 %32196 to i32
  br label %32198

32198:                                            ; preds = %32193, %32192
  %32199 = phi i32 [ 0, %32192 ], [ %32197, %32193 ]
  br label %32200

32200:                                            ; preds = %32198, %32187
  %32201 = phi i32 [ %32188, %32187 ], [ %32199, %32198 ]
  %32202 = icmp ne i32 %32201, 0
  br label %32203

32203:                                            ; preds = %32200, %32172
  %32204 = phi i1 [ true, %32172 ], [ %32202, %32200 ]
  %32205 = zext i1 %32204 to i32
  %32206 = icmp eq i32 0, %32205
  br i1 %32206, label %32207, label %32244

32207:                                            ; preds = %32203
  %32208 = load i64, ptr %923, align 8, !tbaa !13
  %32209 = uitofp i64 %32208 to double
  %32210 = fcmp olt double -1.280000e+02, %32209
  br i1 %32210, label %32211, label %32230

32211:                                            ; preds = %32207
  %32212 = load i64, ptr %923, align 8, !tbaa !13
  %32213 = uitofp i64 %32212 to double
  %32214 = fcmp ole double %32213, 1.270000e+02
  br i1 %32214, label %32215, label %32218

32215:                                            ; preds = %32211
  %32216 = load i64, ptr %923, align 8, !tbaa !13
  %32217 = uitofp i64 %32216 to double
  br label %32228

32218:                                            ; preds = %32211
  %32219 = load i64, ptr %923, align 8, !tbaa !13
  %32220 = uitofp i64 %32219 to double
  %32221 = fcmp olt double %32220, 1.270000e+02
  br i1 %32221, label %32222, label %32225

32222:                                            ; preds = %32218
  %32223 = load i64, ptr %923, align 8, !tbaa !13
  %32224 = uitofp i64 %32223 to double
  br label %32226

32225:                                            ; preds = %32218
  br label %32226

32226:                                            ; preds = %32225, %32222
  %32227 = phi double [ %32224, %32222 ], [ 1.270000e+02, %32225 ]
  br label %32228

32228:                                            ; preds = %32226, %32215
  %32229 = phi double [ %32217, %32215 ], [ %32227, %32226 ]
  br label %32240

32230:                                            ; preds = %32207
  %32231 = load i64, ptr %923, align 8, !tbaa !13
  %32232 = uitofp i64 %32231 to double
  %32233 = fcmp olt double -1.280000e+02, %32232
  br i1 %32233, label %32234, label %32237

32234:                                            ; preds = %32230
  %32235 = load i64, ptr %923, align 8, !tbaa !13
  %32236 = uitofp i64 %32235 to double
  br label %32238

32237:                                            ; preds = %32230
  br label %32238

32238:                                            ; preds = %32237, %32234
  %32239 = phi double [ %32236, %32234 ], [ -1.280000e+02, %32237 ]
  br label %32240

32240:                                            ; preds = %32238, %32228
  %32241 = phi double [ %32229, %32228 ], [ %32239, %32238 ]
  %32242 = fptosi double %32241 to i8
  %32243 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %32242, ptr %32243, align 1, !tbaa !17
  br label %32248

32244:                                            ; preds = %32203
  %32245 = load i64, ptr %923, align 8, !tbaa !13
  %32246 = trunc i64 %32245 to i8
  %32247 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %32246, ptr %32247, align 1, !tbaa !17
  br label %32248

32248:                                            ; preds = %32244, %32240
  br label %32249

32249:                                            ; preds = %32248, %32168
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %925) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %924) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %923) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %922) #3
  br label %32250

32250:                                            ; preds = %32249
  br label %32251

32251:                                            ; preds = %32250
  br label %34113

32252:                                            ; preds = %30490
  br label %32253

32253:                                            ; preds = %32252
  call void @llvm.lifetime.start.p0(i64 8, ptr %933) #3
  store double 5.000000e-01, ptr %933, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %934) #3
  %32254 = load ptr, ptr %10, align 8, !tbaa !5
  %32255 = load i32, ptr %32254, align 4, !tbaa !9
  store i32 %32255, ptr %934, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %935) #3
  store double 0.000000e+00, ptr %935, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %936) #3
  store double 0.000000e+00, ptr %936, align 8, !tbaa !11
  %32256 = load ptr, ptr %11, align 8, !tbaa !5
  %32257 = icmp ne ptr null, %32256
  br i1 %32257, label %32258, label %32280

32258:                                            ; preds = %32253
  %32259 = load ptr, ptr %12, align 8, !tbaa !5
  %32260 = icmp ne ptr null, %32259
  br i1 %32260, label %32261, label %32272

32261:                                            ; preds = %32258
  %32262 = load ptr, ptr %11, align 8, !tbaa !5
  %32263 = load i32, ptr %32262, align 4, !tbaa !9
  %32264 = load i32, ptr %934, align 4, !tbaa !9
  %32265 = icmp ule i32 %32263, %32264
  br i1 %32265, label %32266, label %32272

32266:                                            ; preds = %32261
  %32267 = load i32, ptr %934, align 4, !tbaa !9
  %32268 = load ptr, ptr %12, align 8, !tbaa !5
  %32269 = load i32, ptr %32268, align 4, !tbaa !9
  %32270 = icmp ule i32 %32267, %32269
  br i1 %32270, label %32271, label %32272

32271:                                            ; preds = %32266
  br label %32273

32272:                                            ; preds = %32266, %32261, %32258
  call void @__assert_fail(ptr noundef @.str.47, ptr noundef @.str.24, i32 noundef 491, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

32273:                                            ; preds = %32271
  %32274 = load ptr, ptr %11, align 8, !tbaa !5
  %32275 = load i32, ptr %32274, align 4, !tbaa !9
  %32276 = uitofp i32 %32275 to double
  store double %32276, ptr %935, align 8, !tbaa !11
  %32277 = load ptr, ptr %12, align 8, !tbaa !5
  %32278 = load i32, ptr %32277, align 4, !tbaa !9
  %32279 = uitofp i32 %32278 to double
  store double %32279, ptr %936, align 8, !tbaa !11
  br label %32280

32280:                                            ; preds = %32273, %32253
  %32281 = load i32, ptr %8, align 4, !tbaa !9
  %32282 = icmp ule i32 6, %32281
  br i1 %32282, label %32283, label %32519

32283:                                            ; preds = %32280
  %32284 = load double, ptr %935, align 8, !tbaa !11
  %32285 = load double, ptr %936, align 8, !tbaa !11
  %32286 = fcmp olt double %32284, %32285
  br i1 %32286, label %32287, label %32519

32287:                                            ; preds = %32283
  %32288 = load i32, ptr %8, align 4, !tbaa !9
  %32289 = icmp ule i32 15, %32288
  br i1 %32289, label %32290, label %32342

32290:                                            ; preds = %32287
  call void @llvm.lifetime.start.p0(i64 8, ptr %937) #3
  %32291 = load double, ptr %935, align 8, !tbaa !11
  %32292 = fcmp olt double 0.000000e+00, %32291
  br i1 %32292, label %32293, label %32295

32293:                                            ; preds = %32290
  %32294 = load double, ptr %935, align 8, !tbaa !11
  br label %32296

32295:                                            ; preds = %32290
  br label %32296

32296:                                            ; preds = %32295, %32293
  %32297 = phi double [ %32294, %32293 ], [ 0.000000e+00, %32295 ]
  store double %32297, ptr %937, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %938) #3
  %32298 = load double, ptr %936, align 8, !tbaa !11
  %32299 = fcmp olt double 0.000000e+00, %32298
  br i1 %32299, label %32300, label %32302

32300:                                            ; preds = %32296
  %32301 = load double, ptr %936, align 8, !tbaa !11
  br label %32303

32302:                                            ; preds = %32296
  br label %32303

32303:                                            ; preds = %32302, %32300
  %32304 = phi double [ %32301, %32300 ], [ 0.000000e+00, %32302 ]
  store double %32304, ptr %938, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %939) #3
  %32305 = load double, ptr %937, align 8, !tbaa !11
  %32306 = load double, ptr %938, align 8, !tbaa !11
  %32307 = fcmp olt double %32305, %32306
  br i1 %32307, label %32308, label %32316

32308:                                            ; preds = %32303
  %32309 = load double, ptr %936, align 8, !tbaa !11
  %32310 = load double, ptr %935, align 8, !tbaa !11
  %32311 = fsub double %32309, %32310
  %32312 = load double, ptr %938, align 8, !tbaa !11
  %32313 = load double, ptr %937, align 8, !tbaa !11
  %32314 = fsub double %32312, %32313
  %32315 = fdiv double %32311, %32314
  br label %32317

32316:                                            ; preds = %32303
  br label %32317

32317:                                            ; preds = %32316, %32308
  %32318 = phi double [ %32315, %32308 ], [ 1.000000e+00, %32316 ]
  store double %32318, ptr %939, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %940) #3
  %32319 = load double, ptr %939, align 8, !tbaa !11
  %32320 = load i32, ptr %934, align 4, !tbaa !9
  %32321 = icmp ult i32 0, %32320
  br i1 %32321, label %32322, label %32324

32322:                                            ; preds = %32317
  %32323 = load i32, ptr %934, align 4, !tbaa !9
  br label %32325

32324:                                            ; preds = %32317
  br label %32325

32325:                                            ; preds = %32324, %32322
  %32326 = phi i32 [ %32323, %32322 ], [ 0, %32324 ]
  %32327 = uitofp i32 %32326 to double
  %32328 = fmul double %32319, %32327
  store double %32328, ptr %940, align 8, !tbaa !11
  %32329 = load double, ptr %940, align 8, !tbaa !11
  %32330 = fcmp ole double 0.000000e+00, %32329
  br i1 %32330, label %32331, label %32334

32331:                                            ; preds = %32325
  %32332 = load double, ptr %940, align 8, !tbaa !11
  %32333 = fadd double %32332, 5.000000e-01
  br label %32337

32334:                                            ; preds = %32325
  %32335 = load double, ptr %940, align 8, !tbaa !11
  %32336 = fsub double %32335, 5.000000e-01
  br label %32337

32337:                                            ; preds = %32334, %32331
  %32338 = phi double [ %32333, %32331 ], [ %32336, %32334 ]
  %32339 = fptoui double %32338 to i32
  store i32 %32339, ptr %934, align 4, !tbaa !9
  %32340 = load double, ptr %937, align 8, !tbaa !11
  store double %32340, ptr %935, align 8, !tbaa !11
  %32341 = load double, ptr %938, align 8, !tbaa !11
  store double %32341, ptr %936, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %940) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %939) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %938) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %937) #3
  br label %32398

32342:                                            ; preds = %32287
  %32343 = load i32, ptr %8, align 4, !tbaa !9
  %32344 = icmp ugt i32 6, %32343
  br i1 %32344, label %32373, label %32345

32345:                                            ; preds = %32342
  %32346 = load i32, ptr %8, align 4, !tbaa !9
  %32347 = icmp ugt i32 15, %32346
  br i1 %32347, label %32348, label %32359

32348:                                            ; preds = %32345
  %32349 = load i32, ptr %9, align 4, !tbaa !9
  %32350 = icmp ugt i32 15, %32349
  br i1 %32350, label %32351, label %32356

32351:                                            ; preds = %32348
  %32352 = load i32, ptr %9, align 4, !tbaa !9
  %32353 = load i32, ptr %8, align 4, !tbaa !9
  %32354 = icmp ugt i32 %32352, %32353
  %32355 = zext i1 %32354 to i32
  br label %32357

32356:                                            ; preds = %32348
  br label %32357

32357:                                            ; preds = %32356, %32351
  %32358 = phi i32 [ %32355, %32351 ], [ 0, %32356 ]
  br label %32370

32359:                                            ; preds = %32345
  %32360 = load i32, ptr %9, align 4, !tbaa !9
  %32361 = icmp ugt i32 15, %32360
  br i1 %32361, label %32362, label %32363

32362:                                            ; preds = %32359
  br label %32368

32363:                                            ; preds = %32359
  %32364 = load i32, ptr %9, align 4, !tbaa !9
  %32365 = load i32, ptr %8, align 4, !tbaa !9
  %32366 = icmp ugt i32 %32364, %32365
  %32367 = zext i1 %32366 to i32
  br label %32368

32368:                                            ; preds = %32363, %32362
  %32369 = phi i32 [ 0, %32362 ], [ %32367, %32363 ]
  br label %32370

32370:                                            ; preds = %32368, %32357
  %32371 = phi i32 [ %32358, %32357 ], [ %32369, %32368 ]
  %32372 = icmp ne i32 %32371, 0
  br label %32373

32373:                                            ; preds = %32370, %32342
  %32374 = phi i1 [ true, %32342 ], [ %32372, %32370 ]
  %32375 = zext i1 %32374 to i32
  %32376 = icmp eq i32 0, %32375
  br i1 %32376, label %32377, label %32397

32377:                                            ; preds = %32373
  %32378 = load double, ptr %935, align 8, !tbaa !11
  %32379 = fcmp ogt double 0.000000e+00, %32378
  br i1 %32379, label %32380, label %32397

32380:                                            ; preds = %32377
  %32381 = load double, ptr %936, align 8, !tbaa !11
  %32382 = fcmp olt double 0.000000e+00, %32381
  br i1 %32382, label %32383, label %32397

32383:                                            ; preds = %32380
  %32384 = load double, ptr %935, align 8, !tbaa !11
  %32385 = fneg double %32384
  %32386 = load double, ptr %936, align 8, !tbaa !11
  %32387 = fcmp olt double %32385, %32386
  br i1 %32387, label %32388, label %32390

32388:                                            ; preds = %32383
  %32389 = load double, ptr %936, align 8, !tbaa !11
  br label %32393

32390:                                            ; preds = %32383
  %32391 = load double, ptr %935, align 8, !tbaa !11
  %32392 = fneg double %32391
  br label %32393

32393:                                            ; preds = %32390, %32388
  %32394 = phi double [ %32389, %32388 ], [ %32392, %32390 ]
  store double %32394, ptr %936, align 8, !tbaa !11
  %32395 = load double, ptr %936, align 8, !tbaa !11
  %32396 = fneg double %32395
  store double %32396, ptr %935, align 8, !tbaa !11
  br label %32397

32397:                                            ; preds = %32393, %32380, %32377, %32373
  br label %32398

32398:                                            ; preds = %32397, %32337
  call void @llvm.lifetime.start.p0(i64 8, ptr %941) #3
  %32399 = load double, ptr %935, align 8, !tbaa !11
  %32400 = fcmp ole double 0.000000e+00, %32399
  %32401 = zext i1 %32400 to i64
  %32402 = select i1 %32400, double 0.000000e+00, double -1.280000e+02
  store double %32402, ptr %941, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %942) #3
  %32403 = load double, ptr %936, align 8, !tbaa !11
  %32404 = fcmp ole double 0.000000e+00, %32403
  %32405 = zext i1 %32404 to i64
  %32406 = select i1 %32404, double 1.270000e+02, double 0.000000e+00
  store double %32406, ptr %942, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %943) #3
  %32407 = load i32, ptr %934, align 4, !tbaa !9
  %32408 = uitofp i32 %32407 to double
  %32409 = load double, ptr %935, align 8, !tbaa !11
  %32410 = fsub double %32408, %32409
  %32411 = load double, ptr %942, align 8, !tbaa !11
  %32412 = load double, ptr %941, align 8, !tbaa !11
  %32413 = fsub double %32411, %32412
  %32414 = fmul double %32410, %32413
  %32415 = load double, ptr %936, align 8, !tbaa !11
  %32416 = load double, ptr %935, align 8, !tbaa !11
  %32417 = fsub double %32415, %32416
  %32418 = fdiv double %32414, %32417
  %32419 = load double, ptr %941, align 8, !tbaa !11
  %32420 = fadd double %32418, %32419
  store double %32420, ptr %943, align 8, !tbaa !11
  %32421 = load double, ptr %941, align 8, !tbaa !11
  %32422 = load double, ptr %943, align 8, !tbaa !11
  %32423 = fcmp ole double 0.000000e+00, %32422
  br i1 %32423, label %32424, label %32427

32424:                                            ; preds = %32398
  %32425 = load double, ptr %943, align 8, !tbaa !11
  %32426 = fadd double %32425, 5.000000e-01
  br label %32430

32427:                                            ; preds = %32398
  %32428 = load double, ptr %943, align 8, !tbaa !11
  %32429 = fsub double %32428, 5.000000e-01
  br label %32430

32430:                                            ; preds = %32427, %32424
  %32431 = phi double [ %32426, %32424 ], [ %32429, %32427 ]
  %32432 = fcmp olt double %32421, %32431
  br i1 %32432, label %32433, label %32487

32433:                                            ; preds = %32430
  %32434 = load double, ptr %943, align 8, !tbaa !11
  %32435 = fcmp ole double 0.000000e+00, %32434
  br i1 %32435, label %32436, label %32439

32436:                                            ; preds = %32433
  %32437 = load double, ptr %943, align 8, !tbaa !11
  %32438 = fadd double %32437, 5.000000e-01
  br label %32442

32439:                                            ; preds = %32433
  %32440 = load double, ptr %943, align 8, !tbaa !11
  %32441 = fsub double %32440, 5.000000e-01
  br label %32442

32442:                                            ; preds = %32439, %32436
  %32443 = phi double [ %32438, %32436 ], [ %32441, %32439 ]
  %32444 = load double, ptr %942, align 8, !tbaa !11
  %32445 = fcmp ole double %32443, %32444
  br i1 %32445, label %32446, label %32457

32446:                                            ; preds = %32442
  %32447 = load double, ptr %943, align 8, !tbaa !11
  %32448 = fcmp ole double 0.000000e+00, %32447
  br i1 %32448, label %32449, label %32452

32449:                                            ; preds = %32446
  %32450 = load double, ptr %943, align 8, !tbaa !11
  %32451 = fadd double %32450, 5.000000e-01
  br label %32455

32452:                                            ; preds = %32446
  %32453 = load double, ptr %943, align 8, !tbaa !11
  %32454 = fsub double %32453, 5.000000e-01
  br label %32455

32455:                                            ; preds = %32452, %32449
  %32456 = phi double [ %32451, %32449 ], [ %32454, %32452 ]
  br label %32485

32457:                                            ; preds = %32442
  %32458 = load double, ptr %943, align 8, !tbaa !11
  %32459 = fcmp ole double 0.000000e+00, %32458
  br i1 %32459, label %32460, label %32463

32460:                                            ; preds = %32457
  %32461 = load double, ptr %943, align 8, !tbaa !11
  %32462 = fadd double %32461, 5.000000e-01
  br label %32466

32463:                                            ; preds = %32457
  %32464 = load double, ptr %943, align 8, !tbaa !11
  %32465 = fsub double %32464, 5.000000e-01
  br label %32466

32466:                                            ; preds = %32463, %32460
  %32467 = phi double [ %32462, %32460 ], [ %32465, %32463 ]
  %32468 = load double, ptr %942, align 8, !tbaa !11
  %32469 = fcmp olt double %32467, %32468
  br i1 %32469, label %32470, label %32481

32470:                                            ; preds = %32466
  %32471 = load double, ptr %943, align 8, !tbaa !11
  %32472 = fcmp ole double 0.000000e+00, %32471
  br i1 %32472, label %32473, label %32476

32473:                                            ; preds = %32470
  %32474 = load double, ptr %943, align 8, !tbaa !11
  %32475 = fadd double %32474, 5.000000e-01
  br label %32479

32476:                                            ; preds = %32470
  %32477 = load double, ptr %943, align 8, !tbaa !11
  %32478 = fsub double %32477, 5.000000e-01
  br label %32479

32479:                                            ; preds = %32476, %32473
  %32480 = phi double [ %32475, %32473 ], [ %32478, %32476 ]
  br label %32483

32481:                                            ; preds = %32466
  %32482 = load double, ptr %942, align 8, !tbaa !11
  br label %32483

32483:                                            ; preds = %32481, %32479
  %32484 = phi double [ %32480, %32479 ], [ %32482, %32481 ]
  br label %32485

32485:                                            ; preds = %32483, %32455
  %32486 = phi double [ %32456, %32455 ], [ %32484, %32483 ]
  br label %32515

32487:                                            ; preds = %32430
  %32488 = load double, ptr %941, align 8, !tbaa !11
  %32489 = load double, ptr %943, align 8, !tbaa !11
  %32490 = fcmp ole double 0.000000e+00, %32489
  br i1 %32490, label %32491, label %32494

32491:                                            ; preds = %32487
  %32492 = load double, ptr %943, align 8, !tbaa !11
  %32493 = fadd double %32492, 5.000000e-01
  br label %32497

32494:                                            ; preds = %32487
  %32495 = load double, ptr %943, align 8, !tbaa !11
  %32496 = fsub double %32495, 5.000000e-01
  br label %32497

32497:                                            ; preds = %32494, %32491
  %32498 = phi double [ %32493, %32491 ], [ %32496, %32494 ]
  %32499 = fcmp olt double %32488, %32498
  br i1 %32499, label %32500, label %32511

32500:                                            ; preds = %32497
  %32501 = load double, ptr %943, align 8, !tbaa !11
  %32502 = fcmp ole double 0.000000e+00, %32501
  br i1 %32502, label %32503, label %32506

32503:                                            ; preds = %32500
  %32504 = load double, ptr %943, align 8, !tbaa !11
  %32505 = fadd double %32504, 5.000000e-01
  br label %32509

32506:                                            ; preds = %32500
  %32507 = load double, ptr %943, align 8, !tbaa !11
  %32508 = fsub double %32507, 5.000000e-01
  br label %32509

32509:                                            ; preds = %32506, %32503
  %32510 = phi double [ %32505, %32503 ], [ %32508, %32506 ]
  br label %32513

32511:                                            ; preds = %32497
  %32512 = load double, ptr %941, align 8, !tbaa !11
  br label %32513

32513:                                            ; preds = %32511, %32509
  %32514 = phi double [ %32510, %32509 ], [ %32512, %32511 ]
  br label %32515

32515:                                            ; preds = %32513, %32485
  %32516 = phi double [ %32486, %32485 ], [ %32514, %32513 ]
  %32517 = fptosi double %32516 to i8
  %32518 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %32517, ptr %32518, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %943) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %942) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %941) #3
  br label %32596

32519:                                            ; preds = %32283, %32280
  %32520 = load i32, ptr %8, align 4, !tbaa !9
  %32521 = icmp ugt i32 6, %32520
  br i1 %32521, label %32550, label %32522

32522:                                            ; preds = %32519
  %32523 = load i32, ptr %8, align 4, !tbaa !9
  %32524 = icmp ugt i32 15, %32523
  br i1 %32524, label %32525, label %32536

32525:                                            ; preds = %32522
  %32526 = load i32, ptr %9, align 4, !tbaa !9
  %32527 = icmp ugt i32 15, %32526
  br i1 %32527, label %32528, label %32533

32528:                                            ; preds = %32525
  %32529 = load i32, ptr %9, align 4, !tbaa !9
  %32530 = load i32, ptr %8, align 4, !tbaa !9
  %32531 = icmp ugt i32 %32529, %32530
  %32532 = zext i1 %32531 to i32
  br label %32534

32533:                                            ; preds = %32525
  br label %32534

32534:                                            ; preds = %32533, %32528
  %32535 = phi i32 [ %32532, %32528 ], [ 0, %32533 ]
  br label %32547

32536:                                            ; preds = %32522
  %32537 = load i32, ptr %9, align 4, !tbaa !9
  %32538 = icmp ugt i32 15, %32537
  br i1 %32538, label %32539, label %32540

32539:                                            ; preds = %32536
  br label %32545

32540:                                            ; preds = %32536
  %32541 = load i32, ptr %9, align 4, !tbaa !9
  %32542 = load i32, ptr %8, align 4, !tbaa !9
  %32543 = icmp ugt i32 %32541, %32542
  %32544 = zext i1 %32543 to i32
  br label %32545

32545:                                            ; preds = %32540, %32539
  %32546 = phi i32 [ 0, %32539 ], [ %32544, %32540 ]
  br label %32547

32547:                                            ; preds = %32545, %32534
  %32548 = phi i32 [ %32535, %32534 ], [ %32546, %32545 ]
  %32549 = icmp ne i32 %32548, 0
  br label %32550

32550:                                            ; preds = %32547, %32519
  %32551 = phi i1 [ true, %32519 ], [ %32549, %32547 ]
  %32552 = zext i1 %32551 to i32
  %32553 = icmp eq i32 0, %32552
  br i1 %32553, label %32554, label %32591

32554:                                            ; preds = %32550
  %32555 = load i32, ptr %934, align 4, !tbaa !9
  %32556 = uitofp i32 %32555 to double
  %32557 = fcmp olt double -1.280000e+02, %32556
  br i1 %32557, label %32558, label %32577

32558:                                            ; preds = %32554
  %32559 = load i32, ptr %934, align 4, !tbaa !9
  %32560 = uitofp i32 %32559 to double
  %32561 = fcmp ole double %32560, 1.270000e+02
  br i1 %32561, label %32562, label %32565

32562:                                            ; preds = %32558
  %32563 = load i32, ptr %934, align 4, !tbaa !9
  %32564 = uitofp i32 %32563 to double
  br label %32575

32565:                                            ; preds = %32558
  %32566 = load i32, ptr %934, align 4, !tbaa !9
  %32567 = uitofp i32 %32566 to double
  %32568 = fcmp olt double %32567, 1.270000e+02
  br i1 %32568, label %32569, label %32572

32569:                                            ; preds = %32565
  %32570 = load i32, ptr %934, align 4, !tbaa !9
  %32571 = uitofp i32 %32570 to double
  br label %32573

32572:                                            ; preds = %32565
  br label %32573

32573:                                            ; preds = %32572, %32569
  %32574 = phi double [ %32571, %32569 ], [ 1.270000e+02, %32572 ]
  br label %32575

32575:                                            ; preds = %32573, %32562
  %32576 = phi double [ %32564, %32562 ], [ %32574, %32573 ]
  br label %32587

32577:                                            ; preds = %32554
  %32578 = load i32, ptr %934, align 4, !tbaa !9
  %32579 = uitofp i32 %32578 to double
  %32580 = fcmp olt double -1.280000e+02, %32579
  br i1 %32580, label %32581, label %32584

32581:                                            ; preds = %32577
  %32582 = load i32, ptr %934, align 4, !tbaa !9
  %32583 = uitofp i32 %32582 to double
  br label %32585

32584:                                            ; preds = %32577
  br label %32585

32585:                                            ; preds = %32584, %32581
  %32586 = phi double [ %32583, %32581 ], [ -1.280000e+02, %32584 ]
  br label %32587

32587:                                            ; preds = %32585, %32575
  %32588 = phi double [ %32576, %32575 ], [ %32586, %32585 ]
  %32589 = fptosi double %32588 to i8
  %32590 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %32589, ptr %32590, align 1, !tbaa !17
  br label %32595

32591:                                            ; preds = %32550
  %32592 = load i32, ptr %934, align 4, !tbaa !9
  %32593 = trunc i32 %32592 to i8
  %32594 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %32593, ptr %32594, align 1, !tbaa !17
  br label %32595

32595:                                            ; preds = %32591, %32587
  br label %32596

32596:                                            ; preds = %32595, %32515
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %936) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %935) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %934) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %933) #3
  br label %32597

32597:                                            ; preds = %32596
  br label %32598

32598:                                            ; preds = %32597
  br label %34113

32599:                                            ; preds = %30490
  br label %32600

32600:                                            ; preds = %32599
  call void @llvm.lifetime.start.p0(i64 8, ptr %944) #3
  store double 5.000000e-01, ptr %944, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %945) #3
  %32601 = load ptr, ptr %10, align 8, !tbaa !5
  %32602 = load i16, ptr %32601, align 2, !tbaa !15
  store i16 %32602, ptr %945, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %946) #3
  store double 0.000000e+00, ptr %946, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %947) #3
  store double 0.000000e+00, ptr %947, align 8, !tbaa !11
  %32603 = load ptr, ptr %11, align 8, !tbaa !5
  %32604 = icmp ne ptr null, %32603
  br i1 %32604, label %32605, label %32631

32605:                                            ; preds = %32600
  %32606 = load ptr, ptr %12, align 8, !tbaa !5
  %32607 = icmp ne ptr null, %32606
  br i1 %32607, label %32608, label %32623

32608:                                            ; preds = %32605
  %32609 = load ptr, ptr %11, align 8, !tbaa !5
  %32610 = load i16, ptr %32609, align 2, !tbaa !15
  %32611 = zext i16 %32610 to i32
  %32612 = load i16, ptr %945, align 2, !tbaa !15
  %32613 = zext i16 %32612 to i32
  %32614 = icmp sle i32 %32611, %32613
  br i1 %32614, label %32615, label %32623

32615:                                            ; preds = %32608
  %32616 = load i16, ptr %945, align 2, !tbaa !15
  %32617 = zext i16 %32616 to i32
  %32618 = load ptr, ptr %12, align 8, !tbaa !5
  %32619 = load i16, ptr %32618, align 2, !tbaa !15
  %32620 = zext i16 %32619 to i32
  %32621 = icmp sle i32 %32617, %32620
  br i1 %32621, label %32622, label %32623

32622:                                            ; preds = %32615
  br label %32624

32623:                                            ; preds = %32615, %32608, %32605
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.24, i32 noundef 491, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

32624:                                            ; preds = %32622
  %32625 = load ptr, ptr %11, align 8, !tbaa !5
  %32626 = load i16, ptr %32625, align 2, !tbaa !15
  %32627 = uitofp i16 %32626 to double
  store double %32627, ptr %946, align 8, !tbaa !11
  %32628 = load ptr, ptr %12, align 8, !tbaa !5
  %32629 = load i16, ptr %32628, align 2, !tbaa !15
  %32630 = uitofp i16 %32629 to double
  store double %32630, ptr %947, align 8, !tbaa !11
  br label %32631

32631:                                            ; preds = %32624, %32600
  %32632 = load i32, ptr %8, align 4, !tbaa !9
  %32633 = icmp ule i32 6, %32632
  br i1 %32633, label %32634, label %32872

32634:                                            ; preds = %32631
  %32635 = load double, ptr %946, align 8, !tbaa !11
  %32636 = load double, ptr %947, align 8, !tbaa !11
  %32637 = fcmp olt double %32635, %32636
  br i1 %32637, label %32638, label %32872

32638:                                            ; preds = %32634
  %32639 = load i32, ptr %8, align 4, !tbaa !9
  %32640 = icmp ule i32 15, %32639
  br i1 %32640, label %32641, label %32695

32641:                                            ; preds = %32638
  call void @llvm.lifetime.start.p0(i64 8, ptr %948) #3
  %32642 = load double, ptr %946, align 8, !tbaa !11
  %32643 = fcmp olt double 0.000000e+00, %32642
  br i1 %32643, label %32644, label %32646

32644:                                            ; preds = %32641
  %32645 = load double, ptr %946, align 8, !tbaa !11
  br label %32647

32646:                                            ; preds = %32641
  br label %32647

32647:                                            ; preds = %32646, %32644
  %32648 = phi double [ %32645, %32644 ], [ 0.000000e+00, %32646 ]
  store double %32648, ptr %948, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %949) #3
  %32649 = load double, ptr %947, align 8, !tbaa !11
  %32650 = fcmp olt double 0.000000e+00, %32649
  br i1 %32650, label %32651, label %32653

32651:                                            ; preds = %32647
  %32652 = load double, ptr %947, align 8, !tbaa !11
  br label %32654

32653:                                            ; preds = %32647
  br label %32654

32654:                                            ; preds = %32653, %32651
  %32655 = phi double [ %32652, %32651 ], [ 0.000000e+00, %32653 ]
  store double %32655, ptr %949, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %950) #3
  %32656 = load double, ptr %948, align 8, !tbaa !11
  %32657 = load double, ptr %949, align 8, !tbaa !11
  %32658 = fcmp olt double %32656, %32657
  br i1 %32658, label %32659, label %32667

32659:                                            ; preds = %32654
  %32660 = load double, ptr %947, align 8, !tbaa !11
  %32661 = load double, ptr %946, align 8, !tbaa !11
  %32662 = fsub double %32660, %32661
  %32663 = load double, ptr %949, align 8, !tbaa !11
  %32664 = load double, ptr %948, align 8, !tbaa !11
  %32665 = fsub double %32663, %32664
  %32666 = fdiv double %32662, %32665
  br label %32668

32667:                                            ; preds = %32654
  br label %32668

32668:                                            ; preds = %32667, %32659
  %32669 = phi double [ %32666, %32659 ], [ 1.000000e+00, %32667 ]
  store double %32669, ptr %950, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %951) #3
  %32670 = load double, ptr %950, align 8, !tbaa !11
  %32671 = load i16, ptr %945, align 2, !tbaa !15
  %32672 = zext i16 %32671 to i32
  %32673 = icmp slt i32 0, %32672
  br i1 %32673, label %32674, label %32677

32674:                                            ; preds = %32668
  %32675 = load i16, ptr %945, align 2, !tbaa !15
  %32676 = zext i16 %32675 to i32
  br label %32678

32677:                                            ; preds = %32668
  br label %32678

32678:                                            ; preds = %32677, %32674
  %32679 = phi i32 [ %32676, %32674 ], [ 0, %32677 ]
  %32680 = sitofp i32 %32679 to double
  %32681 = fmul double %32670, %32680
  store double %32681, ptr %951, align 8, !tbaa !11
  %32682 = load double, ptr %951, align 8, !tbaa !11
  %32683 = fcmp ole double 0.000000e+00, %32682
  br i1 %32683, label %32684, label %32687

32684:                                            ; preds = %32678
  %32685 = load double, ptr %951, align 8, !tbaa !11
  %32686 = fadd double %32685, 5.000000e-01
  br label %32690

32687:                                            ; preds = %32678
  %32688 = load double, ptr %951, align 8, !tbaa !11
  %32689 = fsub double %32688, 5.000000e-01
  br label %32690

32690:                                            ; preds = %32687, %32684
  %32691 = phi double [ %32686, %32684 ], [ %32689, %32687 ]
  %32692 = fptoui double %32691 to i16
  store i16 %32692, ptr %945, align 2, !tbaa !15
  %32693 = load double, ptr %948, align 8, !tbaa !11
  store double %32693, ptr %946, align 8, !tbaa !11
  %32694 = load double, ptr %949, align 8, !tbaa !11
  store double %32694, ptr %947, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %951) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %950) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %949) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %948) #3
  br label %32751

32695:                                            ; preds = %32638
  %32696 = load i32, ptr %8, align 4, !tbaa !9
  %32697 = icmp ugt i32 6, %32696
  br i1 %32697, label %32726, label %32698

32698:                                            ; preds = %32695
  %32699 = load i32, ptr %8, align 4, !tbaa !9
  %32700 = icmp ugt i32 15, %32699
  br i1 %32700, label %32701, label %32712

32701:                                            ; preds = %32698
  %32702 = load i32, ptr %9, align 4, !tbaa !9
  %32703 = icmp ugt i32 15, %32702
  br i1 %32703, label %32704, label %32709

32704:                                            ; preds = %32701
  %32705 = load i32, ptr %9, align 4, !tbaa !9
  %32706 = load i32, ptr %8, align 4, !tbaa !9
  %32707 = icmp ugt i32 %32705, %32706
  %32708 = zext i1 %32707 to i32
  br label %32710

32709:                                            ; preds = %32701
  br label %32710

32710:                                            ; preds = %32709, %32704
  %32711 = phi i32 [ %32708, %32704 ], [ 0, %32709 ]
  br label %32723

32712:                                            ; preds = %32698
  %32713 = load i32, ptr %9, align 4, !tbaa !9
  %32714 = icmp ugt i32 15, %32713
  br i1 %32714, label %32715, label %32716

32715:                                            ; preds = %32712
  br label %32721

32716:                                            ; preds = %32712
  %32717 = load i32, ptr %9, align 4, !tbaa !9
  %32718 = load i32, ptr %8, align 4, !tbaa !9
  %32719 = icmp ugt i32 %32717, %32718
  %32720 = zext i1 %32719 to i32
  br label %32721

32721:                                            ; preds = %32716, %32715
  %32722 = phi i32 [ 0, %32715 ], [ %32720, %32716 ]
  br label %32723

32723:                                            ; preds = %32721, %32710
  %32724 = phi i32 [ %32711, %32710 ], [ %32722, %32721 ]
  %32725 = icmp ne i32 %32724, 0
  br label %32726

32726:                                            ; preds = %32723, %32695
  %32727 = phi i1 [ true, %32695 ], [ %32725, %32723 ]
  %32728 = zext i1 %32727 to i32
  %32729 = icmp eq i32 0, %32728
  br i1 %32729, label %32730, label %32750

32730:                                            ; preds = %32726
  %32731 = load double, ptr %946, align 8, !tbaa !11
  %32732 = fcmp ogt double 0.000000e+00, %32731
  br i1 %32732, label %32733, label %32750

32733:                                            ; preds = %32730
  %32734 = load double, ptr %947, align 8, !tbaa !11
  %32735 = fcmp olt double 0.000000e+00, %32734
  br i1 %32735, label %32736, label %32750

32736:                                            ; preds = %32733
  %32737 = load double, ptr %946, align 8, !tbaa !11
  %32738 = fneg double %32737
  %32739 = load double, ptr %947, align 8, !tbaa !11
  %32740 = fcmp olt double %32738, %32739
  br i1 %32740, label %32741, label %32743

32741:                                            ; preds = %32736
  %32742 = load double, ptr %947, align 8, !tbaa !11
  br label %32746

32743:                                            ; preds = %32736
  %32744 = load double, ptr %946, align 8, !tbaa !11
  %32745 = fneg double %32744
  br label %32746

32746:                                            ; preds = %32743, %32741
  %32747 = phi double [ %32742, %32741 ], [ %32745, %32743 ]
  store double %32747, ptr %947, align 8, !tbaa !11
  %32748 = load double, ptr %947, align 8, !tbaa !11
  %32749 = fneg double %32748
  store double %32749, ptr %946, align 8, !tbaa !11
  br label %32750

32750:                                            ; preds = %32746, %32733, %32730, %32726
  br label %32751

32751:                                            ; preds = %32750, %32690
  call void @llvm.lifetime.start.p0(i64 8, ptr %952) #3
  %32752 = load double, ptr %946, align 8, !tbaa !11
  %32753 = fcmp ole double 0.000000e+00, %32752
  %32754 = zext i1 %32753 to i64
  %32755 = select i1 %32753, double 0.000000e+00, double -1.280000e+02
  store double %32755, ptr %952, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %953) #3
  %32756 = load double, ptr %947, align 8, !tbaa !11
  %32757 = fcmp ole double 0.000000e+00, %32756
  %32758 = zext i1 %32757 to i64
  %32759 = select i1 %32757, double 1.270000e+02, double 0.000000e+00
  store double %32759, ptr %953, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %954) #3
  %32760 = load i16, ptr %945, align 2, !tbaa !15
  %32761 = uitofp i16 %32760 to double
  %32762 = load double, ptr %946, align 8, !tbaa !11
  %32763 = fsub double %32761, %32762
  %32764 = load double, ptr %953, align 8, !tbaa !11
  %32765 = load double, ptr %952, align 8, !tbaa !11
  %32766 = fsub double %32764, %32765
  %32767 = fmul double %32763, %32766
  %32768 = load double, ptr %947, align 8, !tbaa !11
  %32769 = load double, ptr %946, align 8, !tbaa !11
  %32770 = fsub double %32768, %32769
  %32771 = fdiv double %32767, %32770
  %32772 = load double, ptr %952, align 8, !tbaa !11
  %32773 = fadd double %32771, %32772
  store double %32773, ptr %954, align 8, !tbaa !11
  %32774 = load double, ptr %952, align 8, !tbaa !11
  %32775 = load double, ptr %954, align 8, !tbaa !11
  %32776 = fcmp ole double 0.000000e+00, %32775
  br i1 %32776, label %32777, label %32780

32777:                                            ; preds = %32751
  %32778 = load double, ptr %954, align 8, !tbaa !11
  %32779 = fadd double %32778, 5.000000e-01
  br label %32783

32780:                                            ; preds = %32751
  %32781 = load double, ptr %954, align 8, !tbaa !11
  %32782 = fsub double %32781, 5.000000e-01
  br label %32783

32783:                                            ; preds = %32780, %32777
  %32784 = phi double [ %32779, %32777 ], [ %32782, %32780 ]
  %32785 = fcmp olt double %32774, %32784
  br i1 %32785, label %32786, label %32840

32786:                                            ; preds = %32783
  %32787 = load double, ptr %954, align 8, !tbaa !11
  %32788 = fcmp ole double 0.000000e+00, %32787
  br i1 %32788, label %32789, label %32792

32789:                                            ; preds = %32786
  %32790 = load double, ptr %954, align 8, !tbaa !11
  %32791 = fadd double %32790, 5.000000e-01
  br label %32795

32792:                                            ; preds = %32786
  %32793 = load double, ptr %954, align 8, !tbaa !11
  %32794 = fsub double %32793, 5.000000e-01
  br label %32795

32795:                                            ; preds = %32792, %32789
  %32796 = phi double [ %32791, %32789 ], [ %32794, %32792 ]
  %32797 = load double, ptr %953, align 8, !tbaa !11
  %32798 = fcmp ole double %32796, %32797
  br i1 %32798, label %32799, label %32810

32799:                                            ; preds = %32795
  %32800 = load double, ptr %954, align 8, !tbaa !11
  %32801 = fcmp ole double 0.000000e+00, %32800
  br i1 %32801, label %32802, label %32805

32802:                                            ; preds = %32799
  %32803 = load double, ptr %954, align 8, !tbaa !11
  %32804 = fadd double %32803, 5.000000e-01
  br label %32808

32805:                                            ; preds = %32799
  %32806 = load double, ptr %954, align 8, !tbaa !11
  %32807 = fsub double %32806, 5.000000e-01
  br label %32808

32808:                                            ; preds = %32805, %32802
  %32809 = phi double [ %32804, %32802 ], [ %32807, %32805 ]
  br label %32838

32810:                                            ; preds = %32795
  %32811 = load double, ptr %954, align 8, !tbaa !11
  %32812 = fcmp ole double 0.000000e+00, %32811
  br i1 %32812, label %32813, label %32816

32813:                                            ; preds = %32810
  %32814 = load double, ptr %954, align 8, !tbaa !11
  %32815 = fadd double %32814, 5.000000e-01
  br label %32819

32816:                                            ; preds = %32810
  %32817 = load double, ptr %954, align 8, !tbaa !11
  %32818 = fsub double %32817, 5.000000e-01
  br label %32819

32819:                                            ; preds = %32816, %32813
  %32820 = phi double [ %32815, %32813 ], [ %32818, %32816 ]
  %32821 = load double, ptr %953, align 8, !tbaa !11
  %32822 = fcmp olt double %32820, %32821
  br i1 %32822, label %32823, label %32834

32823:                                            ; preds = %32819
  %32824 = load double, ptr %954, align 8, !tbaa !11
  %32825 = fcmp ole double 0.000000e+00, %32824
  br i1 %32825, label %32826, label %32829

32826:                                            ; preds = %32823
  %32827 = load double, ptr %954, align 8, !tbaa !11
  %32828 = fadd double %32827, 5.000000e-01
  br label %32832

32829:                                            ; preds = %32823
  %32830 = load double, ptr %954, align 8, !tbaa !11
  %32831 = fsub double %32830, 5.000000e-01
  br label %32832

32832:                                            ; preds = %32829, %32826
  %32833 = phi double [ %32828, %32826 ], [ %32831, %32829 ]
  br label %32836

32834:                                            ; preds = %32819
  %32835 = load double, ptr %953, align 8, !tbaa !11
  br label %32836

32836:                                            ; preds = %32834, %32832
  %32837 = phi double [ %32833, %32832 ], [ %32835, %32834 ]
  br label %32838

32838:                                            ; preds = %32836, %32808
  %32839 = phi double [ %32809, %32808 ], [ %32837, %32836 ]
  br label %32868

32840:                                            ; preds = %32783
  %32841 = load double, ptr %952, align 8, !tbaa !11
  %32842 = load double, ptr %954, align 8, !tbaa !11
  %32843 = fcmp ole double 0.000000e+00, %32842
  br i1 %32843, label %32844, label %32847

32844:                                            ; preds = %32840
  %32845 = load double, ptr %954, align 8, !tbaa !11
  %32846 = fadd double %32845, 5.000000e-01
  br label %32850

32847:                                            ; preds = %32840
  %32848 = load double, ptr %954, align 8, !tbaa !11
  %32849 = fsub double %32848, 5.000000e-01
  br label %32850

32850:                                            ; preds = %32847, %32844
  %32851 = phi double [ %32846, %32844 ], [ %32849, %32847 ]
  %32852 = fcmp olt double %32841, %32851
  br i1 %32852, label %32853, label %32864

32853:                                            ; preds = %32850
  %32854 = load double, ptr %954, align 8, !tbaa !11
  %32855 = fcmp ole double 0.000000e+00, %32854
  br i1 %32855, label %32856, label %32859

32856:                                            ; preds = %32853
  %32857 = load double, ptr %954, align 8, !tbaa !11
  %32858 = fadd double %32857, 5.000000e-01
  br label %32862

32859:                                            ; preds = %32853
  %32860 = load double, ptr %954, align 8, !tbaa !11
  %32861 = fsub double %32860, 5.000000e-01
  br label %32862

32862:                                            ; preds = %32859, %32856
  %32863 = phi double [ %32858, %32856 ], [ %32861, %32859 ]
  br label %32866

32864:                                            ; preds = %32850
  %32865 = load double, ptr %952, align 8, !tbaa !11
  br label %32866

32866:                                            ; preds = %32864, %32862
  %32867 = phi double [ %32863, %32862 ], [ %32865, %32864 ]
  br label %32868

32868:                                            ; preds = %32866, %32838
  %32869 = phi double [ %32839, %32838 ], [ %32867, %32866 ]
  %32870 = fptosi double %32869 to i8
  %32871 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %32870, ptr %32871, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %954) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %953) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %952) #3
  br label %32956

32872:                                            ; preds = %32634, %32631
  %32873 = load i32, ptr %8, align 4, !tbaa !9
  %32874 = icmp ugt i32 6, %32873
  br i1 %32874, label %32903, label %32875

32875:                                            ; preds = %32872
  %32876 = load i32, ptr %8, align 4, !tbaa !9
  %32877 = icmp ugt i32 15, %32876
  br i1 %32877, label %32878, label %32889

32878:                                            ; preds = %32875
  %32879 = load i32, ptr %9, align 4, !tbaa !9
  %32880 = icmp ugt i32 15, %32879
  br i1 %32880, label %32881, label %32886

32881:                                            ; preds = %32878
  %32882 = load i32, ptr %9, align 4, !tbaa !9
  %32883 = load i32, ptr %8, align 4, !tbaa !9
  %32884 = icmp ugt i32 %32882, %32883
  %32885 = zext i1 %32884 to i32
  br label %32887

32886:                                            ; preds = %32878
  br label %32887

32887:                                            ; preds = %32886, %32881
  %32888 = phi i32 [ %32885, %32881 ], [ 0, %32886 ]
  br label %32900

32889:                                            ; preds = %32875
  %32890 = load i32, ptr %9, align 4, !tbaa !9
  %32891 = icmp ugt i32 15, %32890
  br i1 %32891, label %32892, label %32893

32892:                                            ; preds = %32889
  br label %32898

32893:                                            ; preds = %32889
  %32894 = load i32, ptr %9, align 4, !tbaa !9
  %32895 = load i32, ptr %8, align 4, !tbaa !9
  %32896 = icmp ugt i32 %32894, %32895
  %32897 = zext i1 %32896 to i32
  br label %32898

32898:                                            ; preds = %32893, %32892
  %32899 = phi i32 [ 0, %32892 ], [ %32897, %32893 ]
  br label %32900

32900:                                            ; preds = %32898, %32887
  %32901 = phi i32 [ %32888, %32887 ], [ %32899, %32898 ]
  %32902 = icmp ne i32 %32901, 0
  br label %32903

32903:                                            ; preds = %32900, %32872
  %32904 = phi i1 [ true, %32872 ], [ %32902, %32900 ]
  %32905 = zext i1 %32904 to i32
  %32906 = icmp eq i32 0, %32905
  br i1 %32906, label %32907, label %32951

32907:                                            ; preds = %32903
  %32908 = load i16, ptr %945, align 2, !tbaa !15
  %32909 = zext i16 %32908 to i32
  %32910 = sitofp i32 %32909 to double
  %32911 = fcmp olt double -1.280000e+02, %32910
  br i1 %32911, label %32912, label %32935

32912:                                            ; preds = %32907
  %32913 = load i16, ptr %945, align 2, !tbaa !15
  %32914 = zext i16 %32913 to i32
  %32915 = sitofp i32 %32914 to double
  %32916 = fcmp ole double %32915, 1.270000e+02
  br i1 %32916, label %32917, label %32921

32917:                                            ; preds = %32912
  %32918 = load i16, ptr %945, align 2, !tbaa !15
  %32919 = zext i16 %32918 to i32
  %32920 = sitofp i32 %32919 to double
  br label %32933

32921:                                            ; preds = %32912
  %32922 = load i16, ptr %945, align 2, !tbaa !15
  %32923 = zext i16 %32922 to i32
  %32924 = sitofp i32 %32923 to double
  %32925 = fcmp olt double %32924, 1.270000e+02
  br i1 %32925, label %32926, label %32930

32926:                                            ; preds = %32921
  %32927 = load i16, ptr %945, align 2, !tbaa !15
  %32928 = zext i16 %32927 to i32
  %32929 = sitofp i32 %32928 to double
  br label %32931

32930:                                            ; preds = %32921
  br label %32931

32931:                                            ; preds = %32930, %32926
  %32932 = phi double [ %32929, %32926 ], [ 1.270000e+02, %32930 ]
  br label %32933

32933:                                            ; preds = %32931, %32917
  %32934 = phi double [ %32920, %32917 ], [ %32932, %32931 ]
  br label %32947

32935:                                            ; preds = %32907
  %32936 = load i16, ptr %945, align 2, !tbaa !15
  %32937 = zext i16 %32936 to i32
  %32938 = sitofp i32 %32937 to double
  %32939 = fcmp olt double -1.280000e+02, %32938
  br i1 %32939, label %32940, label %32944

32940:                                            ; preds = %32935
  %32941 = load i16, ptr %945, align 2, !tbaa !15
  %32942 = zext i16 %32941 to i32
  %32943 = sitofp i32 %32942 to double
  br label %32945

32944:                                            ; preds = %32935
  br label %32945

32945:                                            ; preds = %32944, %32940
  %32946 = phi double [ %32943, %32940 ], [ -1.280000e+02, %32944 ]
  br label %32947

32947:                                            ; preds = %32945, %32933
  %32948 = phi double [ %32934, %32933 ], [ %32946, %32945 ]
  %32949 = fptosi double %32948 to i8
  %32950 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %32949, ptr %32950, align 1, !tbaa !17
  br label %32955

32951:                                            ; preds = %32903
  %32952 = load i16, ptr %945, align 2, !tbaa !15
  %32953 = trunc i16 %32952 to i8
  %32954 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %32953, ptr %32954, align 1, !tbaa !17
  br label %32955

32955:                                            ; preds = %32951, %32947
  br label %32956

32956:                                            ; preds = %32955, %32868
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %947) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %946) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %945) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %944) #3
  br label %32957

32957:                                            ; preds = %32956
  br label %32958

32958:                                            ; preds = %32957
  br label %34113

32959:                                            ; preds = %30490
  br label %32960

32960:                                            ; preds = %32959
  call void @llvm.lifetime.start.p0(i64 8, ptr %955) #3
  store double 5.000000e-01, ptr %955, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %956) #3
  %32961 = load ptr, ptr %10, align 8, !tbaa !5
  %32962 = load i8, ptr %32961, align 1, !tbaa !17
  store i8 %32962, ptr %956, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %957) #3
  store double 0.000000e+00, ptr %957, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %958) #3
  store double 0.000000e+00, ptr %958, align 8, !tbaa !11
  %32963 = load ptr, ptr %11, align 8, !tbaa !5
  %32964 = icmp ne ptr null, %32963
  br i1 %32964, label %32965, label %32991

32965:                                            ; preds = %32960
  %32966 = load ptr, ptr %12, align 8, !tbaa !5
  %32967 = icmp ne ptr null, %32966
  br i1 %32967, label %32968, label %32983

32968:                                            ; preds = %32965
  %32969 = load ptr, ptr %11, align 8, !tbaa !5
  %32970 = load i8, ptr %32969, align 1, !tbaa !17
  %32971 = zext i8 %32970 to i32
  %32972 = load i8, ptr %956, align 1, !tbaa !17
  %32973 = zext i8 %32972 to i32
  %32974 = icmp sle i32 %32971, %32973
  br i1 %32974, label %32975, label %32983

32975:                                            ; preds = %32968
  %32976 = load i8, ptr %956, align 1, !tbaa !17
  %32977 = zext i8 %32976 to i32
  %32978 = load ptr, ptr %12, align 8, !tbaa !5
  %32979 = load i8, ptr %32978, align 1, !tbaa !17
  %32980 = zext i8 %32979 to i32
  %32981 = icmp sle i32 %32977, %32980
  br i1 %32981, label %32982, label %32983

32982:                                            ; preds = %32975
  br label %32984

32983:                                            ; preds = %32975, %32968, %32965
  call void @__assert_fail(ptr noundef @.str.49, ptr noundef @.str.24, i32 noundef 491, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

32984:                                            ; preds = %32982
  %32985 = load ptr, ptr %11, align 8, !tbaa !5
  %32986 = load i8, ptr %32985, align 1, !tbaa !17
  %32987 = uitofp i8 %32986 to double
  store double %32987, ptr %957, align 8, !tbaa !11
  %32988 = load ptr, ptr %12, align 8, !tbaa !5
  %32989 = load i8, ptr %32988, align 1, !tbaa !17
  %32990 = uitofp i8 %32989 to double
  store double %32990, ptr %958, align 8, !tbaa !11
  br label %32991

32991:                                            ; preds = %32984, %32960
  %32992 = load i32, ptr %8, align 4, !tbaa !9
  %32993 = icmp ule i32 6, %32992
  br i1 %32993, label %32994, label %33232

32994:                                            ; preds = %32991
  %32995 = load double, ptr %957, align 8, !tbaa !11
  %32996 = load double, ptr %958, align 8, !tbaa !11
  %32997 = fcmp olt double %32995, %32996
  br i1 %32997, label %32998, label %33232

32998:                                            ; preds = %32994
  %32999 = load i32, ptr %8, align 4, !tbaa !9
  %33000 = icmp ule i32 15, %32999
  br i1 %33000, label %33001, label %33055

33001:                                            ; preds = %32998
  call void @llvm.lifetime.start.p0(i64 8, ptr %959) #3
  %33002 = load double, ptr %957, align 8, !tbaa !11
  %33003 = fcmp olt double 0.000000e+00, %33002
  br i1 %33003, label %33004, label %33006

33004:                                            ; preds = %33001
  %33005 = load double, ptr %957, align 8, !tbaa !11
  br label %33007

33006:                                            ; preds = %33001
  br label %33007

33007:                                            ; preds = %33006, %33004
  %33008 = phi double [ %33005, %33004 ], [ 0.000000e+00, %33006 ]
  store double %33008, ptr %959, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %960) #3
  %33009 = load double, ptr %958, align 8, !tbaa !11
  %33010 = fcmp olt double 0.000000e+00, %33009
  br i1 %33010, label %33011, label %33013

33011:                                            ; preds = %33007
  %33012 = load double, ptr %958, align 8, !tbaa !11
  br label %33014

33013:                                            ; preds = %33007
  br label %33014

33014:                                            ; preds = %33013, %33011
  %33015 = phi double [ %33012, %33011 ], [ 0.000000e+00, %33013 ]
  store double %33015, ptr %960, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %961) #3
  %33016 = load double, ptr %959, align 8, !tbaa !11
  %33017 = load double, ptr %960, align 8, !tbaa !11
  %33018 = fcmp olt double %33016, %33017
  br i1 %33018, label %33019, label %33027

33019:                                            ; preds = %33014
  %33020 = load double, ptr %958, align 8, !tbaa !11
  %33021 = load double, ptr %957, align 8, !tbaa !11
  %33022 = fsub double %33020, %33021
  %33023 = load double, ptr %960, align 8, !tbaa !11
  %33024 = load double, ptr %959, align 8, !tbaa !11
  %33025 = fsub double %33023, %33024
  %33026 = fdiv double %33022, %33025
  br label %33028

33027:                                            ; preds = %33014
  br label %33028

33028:                                            ; preds = %33027, %33019
  %33029 = phi double [ %33026, %33019 ], [ 1.000000e+00, %33027 ]
  store double %33029, ptr %961, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %962) #3
  %33030 = load double, ptr %961, align 8, !tbaa !11
  %33031 = load i8, ptr %956, align 1, !tbaa !17
  %33032 = zext i8 %33031 to i32
  %33033 = icmp slt i32 0, %33032
  br i1 %33033, label %33034, label %33037

33034:                                            ; preds = %33028
  %33035 = load i8, ptr %956, align 1, !tbaa !17
  %33036 = zext i8 %33035 to i32
  br label %33038

33037:                                            ; preds = %33028
  br label %33038

33038:                                            ; preds = %33037, %33034
  %33039 = phi i32 [ %33036, %33034 ], [ 0, %33037 ]
  %33040 = sitofp i32 %33039 to double
  %33041 = fmul double %33030, %33040
  store double %33041, ptr %962, align 8, !tbaa !11
  %33042 = load double, ptr %962, align 8, !tbaa !11
  %33043 = fcmp ole double 0.000000e+00, %33042
  br i1 %33043, label %33044, label %33047

33044:                                            ; preds = %33038
  %33045 = load double, ptr %962, align 8, !tbaa !11
  %33046 = fadd double %33045, 5.000000e-01
  br label %33050

33047:                                            ; preds = %33038
  %33048 = load double, ptr %962, align 8, !tbaa !11
  %33049 = fsub double %33048, 5.000000e-01
  br label %33050

33050:                                            ; preds = %33047, %33044
  %33051 = phi double [ %33046, %33044 ], [ %33049, %33047 ]
  %33052 = fptoui double %33051 to i8
  store i8 %33052, ptr %956, align 1, !tbaa !17
  %33053 = load double, ptr %959, align 8, !tbaa !11
  store double %33053, ptr %957, align 8, !tbaa !11
  %33054 = load double, ptr %960, align 8, !tbaa !11
  store double %33054, ptr %958, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %962) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %961) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %960) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %959) #3
  br label %33111

33055:                                            ; preds = %32998
  %33056 = load i32, ptr %8, align 4, !tbaa !9
  %33057 = icmp ugt i32 6, %33056
  br i1 %33057, label %33086, label %33058

33058:                                            ; preds = %33055
  %33059 = load i32, ptr %8, align 4, !tbaa !9
  %33060 = icmp ugt i32 15, %33059
  br i1 %33060, label %33061, label %33072

33061:                                            ; preds = %33058
  %33062 = load i32, ptr %9, align 4, !tbaa !9
  %33063 = icmp ugt i32 15, %33062
  br i1 %33063, label %33064, label %33069

33064:                                            ; preds = %33061
  %33065 = load i32, ptr %9, align 4, !tbaa !9
  %33066 = load i32, ptr %8, align 4, !tbaa !9
  %33067 = icmp ugt i32 %33065, %33066
  %33068 = zext i1 %33067 to i32
  br label %33070

33069:                                            ; preds = %33061
  br label %33070

33070:                                            ; preds = %33069, %33064
  %33071 = phi i32 [ %33068, %33064 ], [ 0, %33069 ]
  br label %33083

33072:                                            ; preds = %33058
  %33073 = load i32, ptr %9, align 4, !tbaa !9
  %33074 = icmp ugt i32 15, %33073
  br i1 %33074, label %33075, label %33076

33075:                                            ; preds = %33072
  br label %33081

33076:                                            ; preds = %33072
  %33077 = load i32, ptr %9, align 4, !tbaa !9
  %33078 = load i32, ptr %8, align 4, !tbaa !9
  %33079 = icmp ugt i32 %33077, %33078
  %33080 = zext i1 %33079 to i32
  br label %33081

33081:                                            ; preds = %33076, %33075
  %33082 = phi i32 [ 0, %33075 ], [ %33080, %33076 ]
  br label %33083

33083:                                            ; preds = %33081, %33070
  %33084 = phi i32 [ %33071, %33070 ], [ %33082, %33081 ]
  %33085 = icmp ne i32 %33084, 0
  br label %33086

33086:                                            ; preds = %33083, %33055
  %33087 = phi i1 [ true, %33055 ], [ %33085, %33083 ]
  %33088 = zext i1 %33087 to i32
  %33089 = icmp eq i32 0, %33088
  br i1 %33089, label %33090, label %33110

33090:                                            ; preds = %33086
  %33091 = load double, ptr %957, align 8, !tbaa !11
  %33092 = fcmp ogt double 0.000000e+00, %33091
  br i1 %33092, label %33093, label %33110

33093:                                            ; preds = %33090
  %33094 = load double, ptr %958, align 8, !tbaa !11
  %33095 = fcmp olt double 0.000000e+00, %33094
  br i1 %33095, label %33096, label %33110

33096:                                            ; preds = %33093
  %33097 = load double, ptr %957, align 8, !tbaa !11
  %33098 = fneg double %33097
  %33099 = load double, ptr %958, align 8, !tbaa !11
  %33100 = fcmp olt double %33098, %33099
  br i1 %33100, label %33101, label %33103

33101:                                            ; preds = %33096
  %33102 = load double, ptr %958, align 8, !tbaa !11
  br label %33106

33103:                                            ; preds = %33096
  %33104 = load double, ptr %957, align 8, !tbaa !11
  %33105 = fneg double %33104
  br label %33106

33106:                                            ; preds = %33103, %33101
  %33107 = phi double [ %33102, %33101 ], [ %33105, %33103 ]
  store double %33107, ptr %958, align 8, !tbaa !11
  %33108 = load double, ptr %958, align 8, !tbaa !11
  %33109 = fneg double %33108
  store double %33109, ptr %957, align 8, !tbaa !11
  br label %33110

33110:                                            ; preds = %33106, %33093, %33090, %33086
  br label %33111

33111:                                            ; preds = %33110, %33050
  call void @llvm.lifetime.start.p0(i64 8, ptr %963) #3
  %33112 = load double, ptr %957, align 8, !tbaa !11
  %33113 = fcmp ole double 0.000000e+00, %33112
  %33114 = zext i1 %33113 to i64
  %33115 = select i1 %33113, double 0.000000e+00, double -1.280000e+02
  store double %33115, ptr %963, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %964) #3
  %33116 = load double, ptr %958, align 8, !tbaa !11
  %33117 = fcmp ole double 0.000000e+00, %33116
  %33118 = zext i1 %33117 to i64
  %33119 = select i1 %33117, double 1.270000e+02, double 0.000000e+00
  store double %33119, ptr %964, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %965) #3
  %33120 = load i8, ptr %956, align 1, !tbaa !17
  %33121 = uitofp i8 %33120 to double
  %33122 = load double, ptr %957, align 8, !tbaa !11
  %33123 = fsub double %33121, %33122
  %33124 = load double, ptr %964, align 8, !tbaa !11
  %33125 = load double, ptr %963, align 8, !tbaa !11
  %33126 = fsub double %33124, %33125
  %33127 = fmul double %33123, %33126
  %33128 = load double, ptr %958, align 8, !tbaa !11
  %33129 = load double, ptr %957, align 8, !tbaa !11
  %33130 = fsub double %33128, %33129
  %33131 = fdiv double %33127, %33130
  %33132 = load double, ptr %963, align 8, !tbaa !11
  %33133 = fadd double %33131, %33132
  store double %33133, ptr %965, align 8, !tbaa !11
  %33134 = load double, ptr %963, align 8, !tbaa !11
  %33135 = load double, ptr %965, align 8, !tbaa !11
  %33136 = fcmp ole double 0.000000e+00, %33135
  br i1 %33136, label %33137, label %33140

33137:                                            ; preds = %33111
  %33138 = load double, ptr %965, align 8, !tbaa !11
  %33139 = fadd double %33138, 5.000000e-01
  br label %33143

33140:                                            ; preds = %33111
  %33141 = load double, ptr %965, align 8, !tbaa !11
  %33142 = fsub double %33141, 5.000000e-01
  br label %33143

33143:                                            ; preds = %33140, %33137
  %33144 = phi double [ %33139, %33137 ], [ %33142, %33140 ]
  %33145 = fcmp olt double %33134, %33144
  br i1 %33145, label %33146, label %33200

33146:                                            ; preds = %33143
  %33147 = load double, ptr %965, align 8, !tbaa !11
  %33148 = fcmp ole double 0.000000e+00, %33147
  br i1 %33148, label %33149, label %33152

33149:                                            ; preds = %33146
  %33150 = load double, ptr %965, align 8, !tbaa !11
  %33151 = fadd double %33150, 5.000000e-01
  br label %33155

33152:                                            ; preds = %33146
  %33153 = load double, ptr %965, align 8, !tbaa !11
  %33154 = fsub double %33153, 5.000000e-01
  br label %33155

33155:                                            ; preds = %33152, %33149
  %33156 = phi double [ %33151, %33149 ], [ %33154, %33152 ]
  %33157 = load double, ptr %964, align 8, !tbaa !11
  %33158 = fcmp ole double %33156, %33157
  br i1 %33158, label %33159, label %33170

33159:                                            ; preds = %33155
  %33160 = load double, ptr %965, align 8, !tbaa !11
  %33161 = fcmp ole double 0.000000e+00, %33160
  br i1 %33161, label %33162, label %33165

33162:                                            ; preds = %33159
  %33163 = load double, ptr %965, align 8, !tbaa !11
  %33164 = fadd double %33163, 5.000000e-01
  br label %33168

33165:                                            ; preds = %33159
  %33166 = load double, ptr %965, align 8, !tbaa !11
  %33167 = fsub double %33166, 5.000000e-01
  br label %33168

33168:                                            ; preds = %33165, %33162
  %33169 = phi double [ %33164, %33162 ], [ %33167, %33165 ]
  br label %33198

33170:                                            ; preds = %33155
  %33171 = load double, ptr %965, align 8, !tbaa !11
  %33172 = fcmp ole double 0.000000e+00, %33171
  br i1 %33172, label %33173, label %33176

33173:                                            ; preds = %33170
  %33174 = load double, ptr %965, align 8, !tbaa !11
  %33175 = fadd double %33174, 5.000000e-01
  br label %33179

33176:                                            ; preds = %33170
  %33177 = load double, ptr %965, align 8, !tbaa !11
  %33178 = fsub double %33177, 5.000000e-01
  br label %33179

33179:                                            ; preds = %33176, %33173
  %33180 = phi double [ %33175, %33173 ], [ %33178, %33176 ]
  %33181 = load double, ptr %964, align 8, !tbaa !11
  %33182 = fcmp olt double %33180, %33181
  br i1 %33182, label %33183, label %33194

33183:                                            ; preds = %33179
  %33184 = load double, ptr %965, align 8, !tbaa !11
  %33185 = fcmp ole double 0.000000e+00, %33184
  br i1 %33185, label %33186, label %33189

33186:                                            ; preds = %33183
  %33187 = load double, ptr %965, align 8, !tbaa !11
  %33188 = fadd double %33187, 5.000000e-01
  br label %33192

33189:                                            ; preds = %33183
  %33190 = load double, ptr %965, align 8, !tbaa !11
  %33191 = fsub double %33190, 5.000000e-01
  br label %33192

33192:                                            ; preds = %33189, %33186
  %33193 = phi double [ %33188, %33186 ], [ %33191, %33189 ]
  br label %33196

33194:                                            ; preds = %33179
  %33195 = load double, ptr %964, align 8, !tbaa !11
  br label %33196

33196:                                            ; preds = %33194, %33192
  %33197 = phi double [ %33193, %33192 ], [ %33195, %33194 ]
  br label %33198

33198:                                            ; preds = %33196, %33168
  %33199 = phi double [ %33169, %33168 ], [ %33197, %33196 ]
  br label %33228

33200:                                            ; preds = %33143
  %33201 = load double, ptr %963, align 8, !tbaa !11
  %33202 = load double, ptr %965, align 8, !tbaa !11
  %33203 = fcmp ole double 0.000000e+00, %33202
  br i1 %33203, label %33204, label %33207

33204:                                            ; preds = %33200
  %33205 = load double, ptr %965, align 8, !tbaa !11
  %33206 = fadd double %33205, 5.000000e-01
  br label %33210

33207:                                            ; preds = %33200
  %33208 = load double, ptr %965, align 8, !tbaa !11
  %33209 = fsub double %33208, 5.000000e-01
  br label %33210

33210:                                            ; preds = %33207, %33204
  %33211 = phi double [ %33206, %33204 ], [ %33209, %33207 ]
  %33212 = fcmp olt double %33201, %33211
  br i1 %33212, label %33213, label %33224

33213:                                            ; preds = %33210
  %33214 = load double, ptr %965, align 8, !tbaa !11
  %33215 = fcmp ole double 0.000000e+00, %33214
  br i1 %33215, label %33216, label %33219

33216:                                            ; preds = %33213
  %33217 = load double, ptr %965, align 8, !tbaa !11
  %33218 = fadd double %33217, 5.000000e-01
  br label %33222

33219:                                            ; preds = %33213
  %33220 = load double, ptr %965, align 8, !tbaa !11
  %33221 = fsub double %33220, 5.000000e-01
  br label %33222

33222:                                            ; preds = %33219, %33216
  %33223 = phi double [ %33218, %33216 ], [ %33221, %33219 ]
  br label %33226

33224:                                            ; preds = %33210
  %33225 = load double, ptr %963, align 8, !tbaa !11
  br label %33226

33226:                                            ; preds = %33224, %33222
  %33227 = phi double [ %33223, %33222 ], [ %33225, %33224 ]
  br label %33228

33228:                                            ; preds = %33226, %33198
  %33229 = phi double [ %33199, %33198 ], [ %33227, %33226 ]
  %33230 = fptosi double %33229 to i8
  %33231 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %33230, ptr %33231, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %965) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %964) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %963) #3
  br label %33315

33232:                                            ; preds = %32994, %32991
  %33233 = load i32, ptr %8, align 4, !tbaa !9
  %33234 = icmp ugt i32 6, %33233
  br i1 %33234, label %33263, label %33235

33235:                                            ; preds = %33232
  %33236 = load i32, ptr %8, align 4, !tbaa !9
  %33237 = icmp ugt i32 15, %33236
  br i1 %33237, label %33238, label %33249

33238:                                            ; preds = %33235
  %33239 = load i32, ptr %9, align 4, !tbaa !9
  %33240 = icmp ugt i32 15, %33239
  br i1 %33240, label %33241, label %33246

33241:                                            ; preds = %33238
  %33242 = load i32, ptr %9, align 4, !tbaa !9
  %33243 = load i32, ptr %8, align 4, !tbaa !9
  %33244 = icmp ugt i32 %33242, %33243
  %33245 = zext i1 %33244 to i32
  br label %33247

33246:                                            ; preds = %33238
  br label %33247

33247:                                            ; preds = %33246, %33241
  %33248 = phi i32 [ %33245, %33241 ], [ 0, %33246 ]
  br label %33260

33249:                                            ; preds = %33235
  %33250 = load i32, ptr %9, align 4, !tbaa !9
  %33251 = icmp ugt i32 15, %33250
  br i1 %33251, label %33252, label %33253

33252:                                            ; preds = %33249
  br label %33258

33253:                                            ; preds = %33249
  %33254 = load i32, ptr %9, align 4, !tbaa !9
  %33255 = load i32, ptr %8, align 4, !tbaa !9
  %33256 = icmp ugt i32 %33254, %33255
  %33257 = zext i1 %33256 to i32
  br label %33258

33258:                                            ; preds = %33253, %33252
  %33259 = phi i32 [ 0, %33252 ], [ %33257, %33253 ]
  br label %33260

33260:                                            ; preds = %33258, %33247
  %33261 = phi i32 [ %33248, %33247 ], [ %33259, %33258 ]
  %33262 = icmp ne i32 %33261, 0
  br label %33263

33263:                                            ; preds = %33260, %33232
  %33264 = phi i1 [ true, %33232 ], [ %33262, %33260 ]
  %33265 = zext i1 %33264 to i32
  %33266 = icmp eq i32 0, %33265
  br i1 %33266, label %33267, label %33311

33267:                                            ; preds = %33263
  %33268 = load i8, ptr %956, align 1, !tbaa !17
  %33269 = zext i8 %33268 to i32
  %33270 = sitofp i32 %33269 to double
  %33271 = fcmp olt double -1.280000e+02, %33270
  br i1 %33271, label %33272, label %33295

33272:                                            ; preds = %33267
  %33273 = load i8, ptr %956, align 1, !tbaa !17
  %33274 = zext i8 %33273 to i32
  %33275 = sitofp i32 %33274 to double
  %33276 = fcmp ole double %33275, 1.270000e+02
  br i1 %33276, label %33277, label %33281

33277:                                            ; preds = %33272
  %33278 = load i8, ptr %956, align 1, !tbaa !17
  %33279 = zext i8 %33278 to i32
  %33280 = sitofp i32 %33279 to double
  br label %33293

33281:                                            ; preds = %33272
  %33282 = load i8, ptr %956, align 1, !tbaa !17
  %33283 = zext i8 %33282 to i32
  %33284 = sitofp i32 %33283 to double
  %33285 = fcmp olt double %33284, 1.270000e+02
  br i1 %33285, label %33286, label %33290

33286:                                            ; preds = %33281
  %33287 = load i8, ptr %956, align 1, !tbaa !17
  %33288 = zext i8 %33287 to i32
  %33289 = sitofp i32 %33288 to double
  br label %33291

33290:                                            ; preds = %33281
  br label %33291

33291:                                            ; preds = %33290, %33286
  %33292 = phi double [ %33289, %33286 ], [ 1.270000e+02, %33290 ]
  br label %33293

33293:                                            ; preds = %33291, %33277
  %33294 = phi double [ %33280, %33277 ], [ %33292, %33291 ]
  br label %33307

33295:                                            ; preds = %33267
  %33296 = load i8, ptr %956, align 1, !tbaa !17
  %33297 = zext i8 %33296 to i32
  %33298 = sitofp i32 %33297 to double
  %33299 = fcmp olt double -1.280000e+02, %33298
  br i1 %33299, label %33300, label %33304

33300:                                            ; preds = %33295
  %33301 = load i8, ptr %956, align 1, !tbaa !17
  %33302 = zext i8 %33301 to i32
  %33303 = sitofp i32 %33302 to double
  br label %33305

33304:                                            ; preds = %33295
  br label %33305

33305:                                            ; preds = %33304, %33300
  %33306 = phi double [ %33303, %33300 ], [ -1.280000e+02, %33304 ]
  br label %33307

33307:                                            ; preds = %33305, %33293
  %33308 = phi double [ %33294, %33293 ], [ %33306, %33305 ]
  %33309 = fptosi double %33308 to i8
  %33310 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %33309, ptr %33310, align 1, !tbaa !17
  br label %33314

33311:                                            ; preds = %33263
  %33312 = load i8, ptr %956, align 1, !tbaa !17
  %33313 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %33312, ptr %33313, align 1, !tbaa !17
  br label %33314

33314:                                            ; preds = %33311, %33307
  br label %33315

33315:                                            ; preds = %33314, %33228
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %958) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %957) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %956) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %955) #3
  br label %33316

33316:                                            ; preds = %33315
  br label %33317

33317:                                            ; preds = %33316
  br label %34113

33318:                                            ; preds = %30490
  br label %33319

33319:                                            ; preds = %33318
  call void @llvm.lifetime.start.p0(i64 8, ptr %966) #3
  store double 5.000000e-01, ptr %966, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %967) #3
  %33320 = load ptr, ptr %10, align 8, !tbaa !5
  %33321 = load double, ptr %33320, align 8, !tbaa !11
  store double %33321, ptr %967, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %968) #3
  store double 0.000000e+00, ptr %968, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %969) #3
  store double 0.000000e+00, ptr %969, align 8, !tbaa !11
  %33322 = load ptr, ptr %11, align 8, !tbaa !5
  %33323 = icmp ne ptr null, %33322
  br i1 %33323, label %33324, label %33348

33324:                                            ; preds = %33319
  %33325 = load double, ptr %967, align 8, !tbaa !11
  %33326 = load double, ptr %967, align 8, !tbaa !11
  %33327 = fcmp oeq double %33325, %33326
  br i1 %33327, label %33328, label %33348

33328:                                            ; preds = %33324
  %33329 = load ptr, ptr %12, align 8, !tbaa !5
  %33330 = icmp ne ptr null, %33329
  br i1 %33330, label %33331, label %33342

33331:                                            ; preds = %33328
  %33332 = load ptr, ptr %11, align 8, !tbaa !5
  %33333 = load double, ptr %33332, align 8, !tbaa !11
  %33334 = load double, ptr %967, align 8, !tbaa !11
  %33335 = fcmp ole double %33333, %33334
  br i1 %33335, label %33336, label %33342

33336:                                            ; preds = %33331
  %33337 = load double, ptr %967, align 8, !tbaa !11
  %33338 = load ptr, ptr %12, align 8, !tbaa !5
  %33339 = load double, ptr %33338, align 8, !tbaa !11
  %33340 = fcmp ole double %33337, %33339
  br i1 %33340, label %33341, label %33342

33341:                                            ; preds = %33336
  br label %33343

33342:                                            ; preds = %33336, %33331, %33328
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.24, i32 noundef 491, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

33343:                                            ; preds = %33341
  %33344 = load ptr, ptr %11, align 8, !tbaa !5
  %33345 = load double, ptr %33344, align 8, !tbaa !11
  store double %33345, ptr %968, align 8, !tbaa !11
  %33346 = load ptr, ptr %12, align 8, !tbaa !5
  %33347 = load double, ptr %33346, align 8, !tbaa !11
  store double %33347, ptr %969, align 8, !tbaa !11
  br label %33348

33348:                                            ; preds = %33343, %33324, %33319
  %33349 = load i32, ptr %8, align 4, !tbaa !9
  %33350 = icmp ule i32 6, %33349
  br i1 %33350, label %33351, label %33574

33351:                                            ; preds = %33348
  %33352 = load double, ptr %968, align 8, !tbaa !11
  %33353 = load double, ptr %969, align 8, !tbaa !11
  %33354 = fcmp olt double %33352, %33353
  br i1 %33354, label %33355, label %33574

33355:                                            ; preds = %33351
  %33356 = load i32, ptr %8, align 4, !tbaa !9
  %33357 = icmp ule i32 15, %33356
  br i1 %33357, label %33358, label %33398

33358:                                            ; preds = %33355
  call void @llvm.lifetime.start.p0(i64 8, ptr %970) #3
  %33359 = load double, ptr %968, align 8, !tbaa !11
  %33360 = fcmp olt double 0.000000e+00, %33359
  br i1 %33360, label %33361, label %33363

33361:                                            ; preds = %33358
  %33362 = load double, ptr %968, align 8, !tbaa !11
  br label %33364

33363:                                            ; preds = %33358
  br label %33364

33364:                                            ; preds = %33363, %33361
  %33365 = phi double [ %33362, %33361 ], [ 0.000000e+00, %33363 ]
  store double %33365, ptr %970, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %971) #3
  %33366 = load double, ptr %969, align 8, !tbaa !11
  %33367 = fcmp olt double 0.000000e+00, %33366
  br i1 %33367, label %33368, label %33370

33368:                                            ; preds = %33364
  %33369 = load double, ptr %969, align 8, !tbaa !11
  br label %33371

33370:                                            ; preds = %33364
  br label %33371

33371:                                            ; preds = %33370, %33368
  %33372 = phi double [ %33369, %33368 ], [ 0.000000e+00, %33370 ]
  store double %33372, ptr %971, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %972) #3
  %33373 = load double, ptr %970, align 8, !tbaa !11
  %33374 = load double, ptr %971, align 8, !tbaa !11
  %33375 = fcmp olt double %33373, %33374
  br i1 %33375, label %33376, label %33384

33376:                                            ; preds = %33371
  %33377 = load double, ptr %969, align 8, !tbaa !11
  %33378 = load double, ptr %968, align 8, !tbaa !11
  %33379 = fsub double %33377, %33378
  %33380 = load double, ptr %971, align 8, !tbaa !11
  %33381 = load double, ptr %970, align 8, !tbaa !11
  %33382 = fsub double %33380, %33381
  %33383 = fdiv double %33379, %33382
  br label %33385

33384:                                            ; preds = %33371
  br label %33385

33385:                                            ; preds = %33384, %33376
  %33386 = phi double [ %33383, %33376 ], [ 1.000000e+00, %33384 ]
  store double %33386, ptr %972, align 8, !tbaa !11
  %33387 = load double, ptr %972, align 8, !tbaa !11
  %33388 = load double, ptr %967, align 8, !tbaa !11
  %33389 = fcmp olt double 0.000000e+00, %33388
  br i1 %33389, label %33390, label %33392

33390:                                            ; preds = %33385
  %33391 = load double, ptr %967, align 8, !tbaa !11
  br label %33393

33392:                                            ; preds = %33385
  br label %33393

33393:                                            ; preds = %33392, %33390
  %33394 = phi double [ %33391, %33390 ], [ 0.000000e+00, %33392 ]
  %33395 = fmul double %33387, %33394
  store double %33395, ptr %967, align 8, !tbaa !11
  %33396 = load double, ptr %970, align 8, !tbaa !11
  store double %33396, ptr %968, align 8, !tbaa !11
  %33397 = load double, ptr %971, align 8, !tbaa !11
  store double %33397, ptr %969, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %972) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %971) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %970) #3
  br label %33454

33398:                                            ; preds = %33355
  %33399 = load i32, ptr %8, align 4, !tbaa !9
  %33400 = icmp ugt i32 6, %33399
  br i1 %33400, label %33429, label %33401

33401:                                            ; preds = %33398
  %33402 = load i32, ptr %8, align 4, !tbaa !9
  %33403 = icmp ugt i32 15, %33402
  br i1 %33403, label %33404, label %33415

33404:                                            ; preds = %33401
  %33405 = load i32, ptr %9, align 4, !tbaa !9
  %33406 = icmp ugt i32 15, %33405
  br i1 %33406, label %33407, label %33412

33407:                                            ; preds = %33404
  %33408 = load i32, ptr %9, align 4, !tbaa !9
  %33409 = load i32, ptr %8, align 4, !tbaa !9
  %33410 = icmp ugt i32 %33408, %33409
  %33411 = zext i1 %33410 to i32
  br label %33413

33412:                                            ; preds = %33404
  br label %33413

33413:                                            ; preds = %33412, %33407
  %33414 = phi i32 [ %33411, %33407 ], [ 0, %33412 ]
  br label %33426

33415:                                            ; preds = %33401
  %33416 = load i32, ptr %9, align 4, !tbaa !9
  %33417 = icmp ugt i32 15, %33416
  br i1 %33417, label %33418, label %33419

33418:                                            ; preds = %33415
  br label %33424

33419:                                            ; preds = %33415
  %33420 = load i32, ptr %9, align 4, !tbaa !9
  %33421 = load i32, ptr %8, align 4, !tbaa !9
  %33422 = icmp ugt i32 %33420, %33421
  %33423 = zext i1 %33422 to i32
  br label %33424

33424:                                            ; preds = %33419, %33418
  %33425 = phi i32 [ 0, %33418 ], [ %33423, %33419 ]
  br label %33426

33426:                                            ; preds = %33424, %33413
  %33427 = phi i32 [ %33414, %33413 ], [ %33425, %33424 ]
  %33428 = icmp ne i32 %33427, 0
  br label %33429

33429:                                            ; preds = %33426, %33398
  %33430 = phi i1 [ true, %33398 ], [ %33428, %33426 ]
  %33431 = zext i1 %33430 to i32
  %33432 = icmp eq i32 0, %33431
  br i1 %33432, label %33433, label %33453

33433:                                            ; preds = %33429
  %33434 = load double, ptr %968, align 8, !tbaa !11
  %33435 = fcmp ogt double 0.000000e+00, %33434
  br i1 %33435, label %33436, label %33453

33436:                                            ; preds = %33433
  %33437 = load double, ptr %969, align 8, !tbaa !11
  %33438 = fcmp olt double 0.000000e+00, %33437
  br i1 %33438, label %33439, label %33453

33439:                                            ; preds = %33436
  %33440 = load double, ptr %968, align 8, !tbaa !11
  %33441 = fneg double %33440
  %33442 = load double, ptr %969, align 8, !tbaa !11
  %33443 = fcmp olt double %33441, %33442
  br i1 %33443, label %33444, label %33446

33444:                                            ; preds = %33439
  %33445 = load double, ptr %969, align 8, !tbaa !11
  br label %33449

33446:                                            ; preds = %33439
  %33447 = load double, ptr %968, align 8, !tbaa !11
  %33448 = fneg double %33447
  br label %33449

33449:                                            ; preds = %33446, %33444
  %33450 = phi double [ %33445, %33444 ], [ %33448, %33446 ]
  store double %33450, ptr %969, align 8, !tbaa !11
  %33451 = load double, ptr %969, align 8, !tbaa !11
  %33452 = fneg double %33451
  store double %33452, ptr %968, align 8, !tbaa !11
  br label %33453

33453:                                            ; preds = %33449, %33436, %33433, %33429
  br label %33454

33454:                                            ; preds = %33453, %33393
  call void @llvm.lifetime.start.p0(i64 8, ptr %973) #3
  %33455 = load double, ptr %968, align 8, !tbaa !11
  %33456 = fcmp ole double 0.000000e+00, %33455
  %33457 = zext i1 %33456 to i64
  %33458 = select i1 %33456, double 0.000000e+00, double -1.280000e+02
  store double %33458, ptr %973, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %974) #3
  %33459 = load double, ptr %969, align 8, !tbaa !11
  %33460 = fcmp ole double 0.000000e+00, %33459
  %33461 = zext i1 %33460 to i64
  %33462 = select i1 %33460, double 1.270000e+02, double 0.000000e+00
  store double %33462, ptr %974, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %975) #3
  %33463 = load double, ptr %967, align 8, !tbaa !11
  %33464 = load double, ptr %968, align 8, !tbaa !11
  %33465 = fsub double %33463, %33464
  %33466 = load double, ptr %974, align 8, !tbaa !11
  %33467 = load double, ptr %973, align 8, !tbaa !11
  %33468 = fsub double %33466, %33467
  %33469 = fmul double %33465, %33468
  %33470 = load double, ptr %969, align 8, !tbaa !11
  %33471 = load double, ptr %968, align 8, !tbaa !11
  %33472 = fsub double %33470, %33471
  %33473 = fdiv double %33469, %33472
  %33474 = load double, ptr %973, align 8, !tbaa !11
  %33475 = fadd double %33473, %33474
  store double %33475, ptr %975, align 8, !tbaa !11
  %33476 = load double, ptr %973, align 8, !tbaa !11
  %33477 = load double, ptr %975, align 8, !tbaa !11
  %33478 = fcmp ole double 0.000000e+00, %33477
  br i1 %33478, label %33479, label %33482

33479:                                            ; preds = %33454
  %33480 = load double, ptr %975, align 8, !tbaa !11
  %33481 = fadd double %33480, 5.000000e-01
  br label %33485

33482:                                            ; preds = %33454
  %33483 = load double, ptr %975, align 8, !tbaa !11
  %33484 = fsub double %33483, 5.000000e-01
  br label %33485

33485:                                            ; preds = %33482, %33479
  %33486 = phi double [ %33481, %33479 ], [ %33484, %33482 ]
  %33487 = fcmp olt double %33476, %33486
  br i1 %33487, label %33488, label %33542

33488:                                            ; preds = %33485
  %33489 = load double, ptr %975, align 8, !tbaa !11
  %33490 = fcmp ole double 0.000000e+00, %33489
  br i1 %33490, label %33491, label %33494

33491:                                            ; preds = %33488
  %33492 = load double, ptr %975, align 8, !tbaa !11
  %33493 = fadd double %33492, 5.000000e-01
  br label %33497

33494:                                            ; preds = %33488
  %33495 = load double, ptr %975, align 8, !tbaa !11
  %33496 = fsub double %33495, 5.000000e-01
  br label %33497

33497:                                            ; preds = %33494, %33491
  %33498 = phi double [ %33493, %33491 ], [ %33496, %33494 ]
  %33499 = load double, ptr %974, align 8, !tbaa !11
  %33500 = fcmp ole double %33498, %33499
  br i1 %33500, label %33501, label %33512

33501:                                            ; preds = %33497
  %33502 = load double, ptr %975, align 8, !tbaa !11
  %33503 = fcmp ole double 0.000000e+00, %33502
  br i1 %33503, label %33504, label %33507

33504:                                            ; preds = %33501
  %33505 = load double, ptr %975, align 8, !tbaa !11
  %33506 = fadd double %33505, 5.000000e-01
  br label %33510

33507:                                            ; preds = %33501
  %33508 = load double, ptr %975, align 8, !tbaa !11
  %33509 = fsub double %33508, 5.000000e-01
  br label %33510

33510:                                            ; preds = %33507, %33504
  %33511 = phi double [ %33506, %33504 ], [ %33509, %33507 ]
  br label %33540

33512:                                            ; preds = %33497
  %33513 = load double, ptr %975, align 8, !tbaa !11
  %33514 = fcmp ole double 0.000000e+00, %33513
  br i1 %33514, label %33515, label %33518

33515:                                            ; preds = %33512
  %33516 = load double, ptr %975, align 8, !tbaa !11
  %33517 = fadd double %33516, 5.000000e-01
  br label %33521

33518:                                            ; preds = %33512
  %33519 = load double, ptr %975, align 8, !tbaa !11
  %33520 = fsub double %33519, 5.000000e-01
  br label %33521

33521:                                            ; preds = %33518, %33515
  %33522 = phi double [ %33517, %33515 ], [ %33520, %33518 ]
  %33523 = load double, ptr %974, align 8, !tbaa !11
  %33524 = fcmp olt double %33522, %33523
  br i1 %33524, label %33525, label %33536

33525:                                            ; preds = %33521
  %33526 = load double, ptr %975, align 8, !tbaa !11
  %33527 = fcmp ole double 0.000000e+00, %33526
  br i1 %33527, label %33528, label %33531

33528:                                            ; preds = %33525
  %33529 = load double, ptr %975, align 8, !tbaa !11
  %33530 = fadd double %33529, 5.000000e-01
  br label %33534

33531:                                            ; preds = %33525
  %33532 = load double, ptr %975, align 8, !tbaa !11
  %33533 = fsub double %33532, 5.000000e-01
  br label %33534

33534:                                            ; preds = %33531, %33528
  %33535 = phi double [ %33530, %33528 ], [ %33533, %33531 ]
  br label %33538

33536:                                            ; preds = %33521
  %33537 = load double, ptr %974, align 8, !tbaa !11
  br label %33538

33538:                                            ; preds = %33536, %33534
  %33539 = phi double [ %33535, %33534 ], [ %33537, %33536 ]
  br label %33540

33540:                                            ; preds = %33538, %33510
  %33541 = phi double [ %33511, %33510 ], [ %33539, %33538 ]
  br label %33570

33542:                                            ; preds = %33485
  %33543 = load double, ptr %973, align 8, !tbaa !11
  %33544 = load double, ptr %975, align 8, !tbaa !11
  %33545 = fcmp ole double 0.000000e+00, %33544
  br i1 %33545, label %33546, label %33549

33546:                                            ; preds = %33542
  %33547 = load double, ptr %975, align 8, !tbaa !11
  %33548 = fadd double %33547, 5.000000e-01
  br label %33552

33549:                                            ; preds = %33542
  %33550 = load double, ptr %975, align 8, !tbaa !11
  %33551 = fsub double %33550, 5.000000e-01
  br label %33552

33552:                                            ; preds = %33549, %33546
  %33553 = phi double [ %33548, %33546 ], [ %33551, %33549 ]
  %33554 = fcmp olt double %33543, %33553
  br i1 %33554, label %33555, label %33566

33555:                                            ; preds = %33552
  %33556 = load double, ptr %975, align 8, !tbaa !11
  %33557 = fcmp ole double 0.000000e+00, %33556
  br i1 %33557, label %33558, label %33561

33558:                                            ; preds = %33555
  %33559 = load double, ptr %975, align 8, !tbaa !11
  %33560 = fadd double %33559, 5.000000e-01
  br label %33564

33561:                                            ; preds = %33555
  %33562 = load double, ptr %975, align 8, !tbaa !11
  %33563 = fsub double %33562, 5.000000e-01
  br label %33564

33564:                                            ; preds = %33561, %33558
  %33565 = phi double [ %33560, %33558 ], [ %33563, %33561 ]
  br label %33568

33566:                                            ; preds = %33552
  %33567 = load double, ptr %973, align 8, !tbaa !11
  br label %33568

33568:                                            ; preds = %33566, %33564
  %33569 = phi double [ %33565, %33564 ], [ %33567, %33566 ]
  br label %33570

33570:                                            ; preds = %33568, %33540
  %33571 = phi double [ %33541, %33540 ], [ %33569, %33568 ]
  %33572 = fptosi double %33571 to i8
  %33573 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %33572, ptr %33573, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %975) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %974) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %973) #3
  br label %33700

33574:                                            ; preds = %33351, %33348
  %33575 = load i32, ptr %8, align 4, !tbaa !9
  %33576 = icmp ugt i32 6, %33575
  br i1 %33576, label %33605, label %33577

33577:                                            ; preds = %33574
  %33578 = load i32, ptr %8, align 4, !tbaa !9
  %33579 = icmp ugt i32 15, %33578
  br i1 %33579, label %33580, label %33591

33580:                                            ; preds = %33577
  %33581 = load i32, ptr %9, align 4, !tbaa !9
  %33582 = icmp ugt i32 15, %33581
  br i1 %33582, label %33583, label %33588

33583:                                            ; preds = %33580
  %33584 = load i32, ptr %9, align 4, !tbaa !9
  %33585 = load i32, ptr %8, align 4, !tbaa !9
  %33586 = icmp ugt i32 %33584, %33585
  %33587 = zext i1 %33586 to i32
  br label %33589

33588:                                            ; preds = %33580
  br label %33589

33589:                                            ; preds = %33588, %33583
  %33590 = phi i32 [ %33587, %33583 ], [ 0, %33588 ]
  br label %33602

33591:                                            ; preds = %33577
  %33592 = load i32, ptr %9, align 4, !tbaa !9
  %33593 = icmp ugt i32 15, %33592
  br i1 %33593, label %33594, label %33595

33594:                                            ; preds = %33591
  br label %33600

33595:                                            ; preds = %33591
  %33596 = load i32, ptr %9, align 4, !tbaa !9
  %33597 = load i32, ptr %8, align 4, !tbaa !9
  %33598 = icmp ugt i32 %33596, %33597
  %33599 = zext i1 %33598 to i32
  br label %33600

33600:                                            ; preds = %33595, %33594
  %33601 = phi i32 [ 0, %33594 ], [ %33599, %33595 ]
  br label %33602

33602:                                            ; preds = %33600, %33589
  %33603 = phi i32 [ %33590, %33589 ], [ %33601, %33600 ]
  %33604 = icmp ne i32 %33603, 0
  br label %33605

33605:                                            ; preds = %33602, %33574
  %33606 = phi i1 [ true, %33574 ], [ %33604, %33602 ]
  %33607 = zext i1 %33606 to i32
  %33608 = icmp eq i32 0, %33607
  br i1 %33608, label %33609, label %33686

33609:                                            ; preds = %33605
  %33610 = load double, ptr %967, align 8, !tbaa !11
  %33611 = fcmp ole double 0.000000e+00, %33610
  br i1 %33611, label %33612, label %33647

33612:                                            ; preds = %33609
  %33613 = load double, ptr %967, align 8, !tbaa !11
  %33614 = fadd double %33613, 5.000000e-01
  %33615 = fcmp olt double -1.280000e+02, %33614
  br i1 %33615, label %33616, label %33635

33616:                                            ; preds = %33612
  %33617 = load double, ptr %967, align 8, !tbaa !11
  %33618 = fadd double %33617, 5.000000e-01
  %33619 = fcmp ole double %33618, 1.270000e+02
  br i1 %33619, label %33620, label %33623

33620:                                            ; preds = %33616
  %33621 = load double, ptr %967, align 8, !tbaa !11
  %33622 = fadd double %33621, 5.000000e-01
  br label %33633

33623:                                            ; preds = %33616
  %33624 = load double, ptr %967, align 8, !tbaa !11
  %33625 = fadd double %33624, 5.000000e-01
  %33626 = fcmp olt double %33625, 1.270000e+02
  br i1 %33626, label %33627, label %33630

33627:                                            ; preds = %33623
  %33628 = load double, ptr %967, align 8, !tbaa !11
  %33629 = fadd double %33628, 5.000000e-01
  br label %33631

33630:                                            ; preds = %33623
  br label %33631

33631:                                            ; preds = %33630, %33627
  %33632 = phi double [ %33629, %33627 ], [ 1.270000e+02, %33630 ]
  br label %33633

33633:                                            ; preds = %33631, %33620
  %33634 = phi double [ %33622, %33620 ], [ %33632, %33631 ]
  br label %33645

33635:                                            ; preds = %33612
  %33636 = load double, ptr %967, align 8, !tbaa !11
  %33637 = fadd double %33636, 5.000000e-01
  %33638 = fcmp olt double -1.280000e+02, %33637
  br i1 %33638, label %33639, label %33642

33639:                                            ; preds = %33635
  %33640 = load double, ptr %967, align 8, !tbaa !11
  %33641 = fadd double %33640, 5.000000e-01
  br label %33643

33642:                                            ; preds = %33635
  br label %33643

33643:                                            ; preds = %33642, %33639
  %33644 = phi double [ %33641, %33639 ], [ -1.280000e+02, %33642 ]
  br label %33645

33645:                                            ; preds = %33643, %33633
  %33646 = phi double [ %33634, %33633 ], [ %33644, %33643 ]
  br label %33682

33647:                                            ; preds = %33609
  %33648 = load double, ptr %967, align 8, !tbaa !11
  %33649 = fsub double %33648, 5.000000e-01
  %33650 = fcmp olt double -1.280000e+02, %33649
  br i1 %33650, label %33651, label %33670

33651:                                            ; preds = %33647
  %33652 = load double, ptr %967, align 8, !tbaa !11
  %33653 = fsub double %33652, 5.000000e-01
  %33654 = fcmp ole double %33653, 1.270000e+02
  br i1 %33654, label %33655, label %33658

33655:                                            ; preds = %33651
  %33656 = load double, ptr %967, align 8, !tbaa !11
  %33657 = fsub double %33656, 5.000000e-01
  br label %33668

33658:                                            ; preds = %33651
  %33659 = load double, ptr %967, align 8, !tbaa !11
  %33660 = fsub double %33659, 5.000000e-01
  %33661 = fcmp olt double %33660, 1.270000e+02
  br i1 %33661, label %33662, label %33665

33662:                                            ; preds = %33658
  %33663 = load double, ptr %967, align 8, !tbaa !11
  %33664 = fsub double %33663, 5.000000e-01
  br label %33666

33665:                                            ; preds = %33658
  br label %33666

33666:                                            ; preds = %33665, %33662
  %33667 = phi double [ %33664, %33662 ], [ 1.270000e+02, %33665 ]
  br label %33668

33668:                                            ; preds = %33666, %33655
  %33669 = phi double [ %33657, %33655 ], [ %33667, %33666 ]
  br label %33680

33670:                                            ; preds = %33647
  %33671 = load double, ptr %967, align 8, !tbaa !11
  %33672 = fsub double %33671, 5.000000e-01
  %33673 = fcmp olt double -1.280000e+02, %33672
  br i1 %33673, label %33674, label %33677

33674:                                            ; preds = %33670
  %33675 = load double, ptr %967, align 8, !tbaa !11
  %33676 = fsub double %33675, 5.000000e-01
  br label %33678

33677:                                            ; preds = %33670
  br label %33678

33678:                                            ; preds = %33677, %33674
  %33679 = phi double [ %33676, %33674 ], [ -1.280000e+02, %33677 ]
  br label %33680

33680:                                            ; preds = %33678, %33668
  %33681 = phi double [ %33669, %33668 ], [ %33679, %33678 ]
  br label %33682

33682:                                            ; preds = %33680, %33645
  %33683 = phi double [ %33646, %33645 ], [ %33681, %33680 ]
  %33684 = fptosi double %33683 to i8
  %33685 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %33684, ptr %33685, align 1, !tbaa !17
  br label %33699

33686:                                            ; preds = %33605
  %33687 = load double, ptr %967, align 8, !tbaa !11
  %33688 = fcmp ole double 0.000000e+00, %33687
  br i1 %33688, label %33689, label %33692

33689:                                            ; preds = %33686
  %33690 = load double, ptr %967, align 8, !tbaa !11
  %33691 = fadd double %33690, 5.000000e-01
  br label %33695

33692:                                            ; preds = %33686
  %33693 = load double, ptr %967, align 8, !tbaa !11
  %33694 = fsub double %33693, 5.000000e-01
  br label %33695

33695:                                            ; preds = %33692, %33689
  %33696 = phi double [ %33691, %33689 ], [ %33694, %33692 ]
  %33697 = fptosi double %33696 to i8
  %33698 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %33697, ptr %33698, align 1, !tbaa !17
  br label %33699

33699:                                            ; preds = %33695, %33682
  br label %33700

33700:                                            ; preds = %33699, %33570
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %969) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %968) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %967) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %966) #3
  br label %33701

33701:                                            ; preds = %33700
  br label %33702

33702:                                            ; preds = %33701
  br label %34113

33703:                                            ; preds = %30490
  br label %33704

33704:                                            ; preds = %33703
  call void @llvm.lifetime.start.p0(i64 8, ptr %976) #3
  store double 5.000000e-01, ptr %976, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %977) #3
  %33705 = load ptr, ptr %10, align 8, !tbaa !5
  %33706 = load float, ptr %33705, align 4, !tbaa !18
  store float %33706, ptr %977, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %978) #3
  store double 0.000000e+00, ptr %978, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %979) #3
  store double 0.000000e+00, ptr %979, align 8, !tbaa !11
  %33707 = load ptr, ptr %11, align 8, !tbaa !5
  %33708 = icmp ne ptr null, %33707
  br i1 %33708, label %33709, label %33735

33709:                                            ; preds = %33704
  %33710 = load float, ptr %977, align 4, !tbaa !18
  %33711 = load float, ptr %977, align 4, !tbaa !18
  %33712 = fcmp oeq float %33710, %33711
  br i1 %33712, label %33713, label %33735

33713:                                            ; preds = %33709
  %33714 = load ptr, ptr %12, align 8, !tbaa !5
  %33715 = icmp ne ptr null, %33714
  br i1 %33715, label %33716, label %33727

33716:                                            ; preds = %33713
  %33717 = load ptr, ptr %11, align 8, !tbaa !5
  %33718 = load float, ptr %33717, align 4, !tbaa !18
  %33719 = load float, ptr %977, align 4, !tbaa !18
  %33720 = fcmp ole float %33718, %33719
  br i1 %33720, label %33721, label %33727

33721:                                            ; preds = %33716
  %33722 = load float, ptr %977, align 4, !tbaa !18
  %33723 = load ptr, ptr %12, align 8, !tbaa !5
  %33724 = load float, ptr %33723, align 4, !tbaa !18
  %33725 = fcmp ole float %33722, %33724
  br i1 %33725, label %33726, label %33727

33726:                                            ; preds = %33721
  br label %33728

33727:                                            ; preds = %33721, %33716, %33713
  call void @__assert_fail(ptr noundef @.str.51, ptr noundef @.str.24, i32 noundef 491, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

33728:                                            ; preds = %33726
  %33729 = load ptr, ptr %11, align 8, !tbaa !5
  %33730 = load float, ptr %33729, align 4, !tbaa !18
  %33731 = fpext float %33730 to double
  store double %33731, ptr %978, align 8, !tbaa !11
  %33732 = load ptr, ptr %12, align 8, !tbaa !5
  %33733 = load float, ptr %33732, align 4, !tbaa !18
  %33734 = fpext float %33733 to double
  store double %33734, ptr %979, align 8, !tbaa !11
  br label %33735

33735:                                            ; preds = %33728, %33709, %33704
  %33736 = load i32, ptr %8, align 4, !tbaa !9
  %33737 = icmp ule i32 6, %33736
  br i1 %33737, label %33738, label %33964

33738:                                            ; preds = %33735
  %33739 = load double, ptr %978, align 8, !tbaa !11
  %33740 = load double, ptr %979, align 8, !tbaa !11
  %33741 = fcmp olt double %33739, %33740
  br i1 %33741, label %33742, label %33964

33742:                                            ; preds = %33738
  %33743 = load i32, ptr %8, align 4, !tbaa !9
  %33744 = icmp ule i32 15, %33743
  br i1 %33744, label %33745, label %33787

33745:                                            ; preds = %33742
  call void @llvm.lifetime.start.p0(i64 8, ptr %980) #3
  %33746 = load double, ptr %978, align 8, !tbaa !11
  %33747 = fcmp olt double 0.000000e+00, %33746
  br i1 %33747, label %33748, label %33750

33748:                                            ; preds = %33745
  %33749 = load double, ptr %978, align 8, !tbaa !11
  br label %33751

33750:                                            ; preds = %33745
  br label %33751

33751:                                            ; preds = %33750, %33748
  %33752 = phi double [ %33749, %33748 ], [ 0.000000e+00, %33750 ]
  store double %33752, ptr %980, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %981) #3
  %33753 = load double, ptr %979, align 8, !tbaa !11
  %33754 = fcmp olt double 0.000000e+00, %33753
  br i1 %33754, label %33755, label %33757

33755:                                            ; preds = %33751
  %33756 = load double, ptr %979, align 8, !tbaa !11
  br label %33758

33757:                                            ; preds = %33751
  br label %33758

33758:                                            ; preds = %33757, %33755
  %33759 = phi double [ %33756, %33755 ], [ 0.000000e+00, %33757 ]
  store double %33759, ptr %981, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %982) #3
  %33760 = load double, ptr %980, align 8, !tbaa !11
  %33761 = load double, ptr %981, align 8, !tbaa !11
  %33762 = fcmp olt double %33760, %33761
  br i1 %33762, label %33763, label %33771

33763:                                            ; preds = %33758
  %33764 = load double, ptr %979, align 8, !tbaa !11
  %33765 = load double, ptr %978, align 8, !tbaa !11
  %33766 = fsub double %33764, %33765
  %33767 = load double, ptr %981, align 8, !tbaa !11
  %33768 = load double, ptr %980, align 8, !tbaa !11
  %33769 = fsub double %33767, %33768
  %33770 = fdiv double %33766, %33769
  br label %33772

33771:                                            ; preds = %33758
  br label %33772

33772:                                            ; preds = %33771, %33763
  %33773 = phi double [ %33770, %33763 ], [ 1.000000e+00, %33771 ]
  store double %33773, ptr %982, align 8, !tbaa !11
  %33774 = load double, ptr %982, align 8, !tbaa !11
  %33775 = load float, ptr %977, align 4, !tbaa !18
  %33776 = fcmp olt float 0.000000e+00, %33775
  br i1 %33776, label %33777, label %33779

33777:                                            ; preds = %33772
  %33778 = load float, ptr %977, align 4, !tbaa !18
  br label %33780

33779:                                            ; preds = %33772
  br label %33780

33780:                                            ; preds = %33779, %33777
  %33781 = phi float [ %33778, %33777 ], [ 0.000000e+00, %33779 ]
  %33782 = fpext float %33781 to double
  %33783 = fmul double %33774, %33782
  %33784 = fptrunc double %33783 to float
  store float %33784, ptr %977, align 4, !tbaa !18
  %33785 = load double, ptr %980, align 8, !tbaa !11
  store double %33785, ptr %978, align 8, !tbaa !11
  %33786 = load double, ptr %981, align 8, !tbaa !11
  store double %33786, ptr %979, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %982) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %981) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %980) #3
  br label %33843

33787:                                            ; preds = %33742
  %33788 = load i32, ptr %8, align 4, !tbaa !9
  %33789 = icmp ugt i32 6, %33788
  br i1 %33789, label %33818, label %33790

33790:                                            ; preds = %33787
  %33791 = load i32, ptr %8, align 4, !tbaa !9
  %33792 = icmp ugt i32 15, %33791
  br i1 %33792, label %33793, label %33804

33793:                                            ; preds = %33790
  %33794 = load i32, ptr %9, align 4, !tbaa !9
  %33795 = icmp ugt i32 15, %33794
  br i1 %33795, label %33796, label %33801

33796:                                            ; preds = %33793
  %33797 = load i32, ptr %9, align 4, !tbaa !9
  %33798 = load i32, ptr %8, align 4, !tbaa !9
  %33799 = icmp ugt i32 %33797, %33798
  %33800 = zext i1 %33799 to i32
  br label %33802

33801:                                            ; preds = %33793
  br label %33802

33802:                                            ; preds = %33801, %33796
  %33803 = phi i32 [ %33800, %33796 ], [ 0, %33801 ]
  br label %33815

33804:                                            ; preds = %33790
  %33805 = load i32, ptr %9, align 4, !tbaa !9
  %33806 = icmp ugt i32 15, %33805
  br i1 %33806, label %33807, label %33808

33807:                                            ; preds = %33804
  br label %33813

33808:                                            ; preds = %33804
  %33809 = load i32, ptr %9, align 4, !tbaa !9
  %33810 = load i32, ptr %8, align 4, !tbaa !9
  %33811 = icmp ugt i32 %33809, %33810
  %33812 = zext i1 %33811 to i32
  br label %33813

33813:                                            ; preds = %33808, %33807
  %33814 = phi i32 [ 0, %33807 ], [ %33812, %33808 ]
  br label %33815

33815:                                            ; preds = %33813, %33802
  %33816 = phi i32 [ %33803, %33802 ], [ %33814, %33813 ]
  %33817 = icmp ne i32 %33816, 0
  br label %33818

33818:                                            ; preds = %33815, %33787
  %33819 = phi i1 [ true, %33787 ], [ %33817, %33815 ]
  %33820 = zext i1 %33819 to i32
  %33821 = icmp eq i32 0, %33820
  br i1 %33821, label %33822, label %33842

33822:                                            ; preds = %33818
  %33823 = load double, ptr %978, align 8, !tbaa !11
  %33824 = fcmp ogt double 0.000000e+00, %33823
  br i1 %33824, label %33825, label %33842

33825:                                            ; preds = %33822
  %33826 = load double, ptr %979, align 8, !tbaa !11
  %33827 = fcmp olt double 0.000000e+00, %33826
  br i1 %33827, label %33828, label %33842

33828:                                            ; preds = %33825
  %33829 = load double, ptr %978, align 8, !tbaa !11
  %33830 = fneg double %33829
  %33831 = load double, ptr %979, align 8, !tbaa !11
  %33832 = fcmp olt double %33830, %33831
  br i1 %33832, label %33833, label %33835

33833:                                            ; preds = %33828
  %33834 = load double, ptr %979, align 8, !tbaa !11
  br label %33838

33835:                                            ; preds = %33828
  %33836 = load double, ptr %978, align 8, !tbaa !11
  %33837 = fneg double %33836
  br label %33838

33838:                                            ; preds = %33835, %33833
  %33839 = phi double [ %33834, %33833 ], [ %33837, %33835 ]
  store double %33839, ptr %979, align 8, !tbaa !11
  %33840 = load double, ptr %979, align 8, !tbaa !11
  %33841 = fneg double %33840
  store double %33841, ptr %978, align 8, !tbaa !11
  br label %33842

33842:                                            ; preds = %33838, %33825, %33822, %33818
  br label %33843

33843:                                            ; preds = %33842, %33780
  call void @llvm.lifetime.start.p0(i64 8, ptr %983) #3
  %33844 = load double, ptr %978, align 8, !tbaa !11
  %33845 = fcmp ole double 0.000000e+00, %33844
  %33846 = zext i1 %33845 to i64
  %33847 = select i1 %33845, double 0.000000e+00, double -1.280000e+02
  store double %33847, ptr %983, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %984) #3
  %33848 = load double, ptr %979, align 8, !tbaa !11
  %33849 = fcmp ole double 0.000000e+00, %33848
  %33850 = zext i1 %33849 to i64
  %33851 = select i1 %33849, double 1.270000e+02, double 0.000000e+00
  store double %33851, ptr %984, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %985) #3
  %33852 = load float, ptr %977, align 4, !tbaa !18
  %33853 = fpext float %33852 to double
  %33854 = load double, ptr %978, align 8, !tbaa !11
  %33855 = fsub double %33853, %33854
  %33856 = load double, ptr %984, align 8, !tbaa !11
  %33857 = load double, ptr %983, align 8, !tbaa !11
  %33858 = fsub double %33856, %33857
  %33859 = fmul double %33855, %33858
  %33860 = load double, ptr %979, align 8, !tbaa !11
  %33861 = load double, ptr %978, align 8, !tbaa !11
  %33862 = fsub double %33860, %33861
  %33863 = fdiv double %33859, %33862
  %33864 = load double, ptr %983, align 8, !tbaa !11
  %33865 = fadd double %33863, %33864
  store double %33865, ptr %985, align 8, !tbaa !11
  %33866 = load double, ptr %983, align 8, !tbaa !11
  %33867 = load double, ptr %985, align 8, !tbaa !11
  %33868 = fcmp ole double 0.000000e+00, %33867
  br i1 %33868, label %33869, label %33872

33869:                                            ; preds = %33843
  %33870 = load double, ptr %985, align 8, !tbaa !11
  %33871 = fadd double %33870, 5.000000e-01
  br label %33875

33872:                                            ; preds = %33843
  %33873 = load double, ptr %985, align 8, !tbaa !11
  %33874 = fsub double %33873, 5.000000e-01
  br label %33875

33875:                                            ; preds = %33872, %33869
  %33876 = phi double [ %33871, %33869 ], [ %33874, %33872 ]
  %33877 = fcmp olt double %33866, %33876
  br i1 %33877, label %33878, label %33932

33878:                                            ; preds = %33875
  %33879 = load double, ptr %985, align 8, !tbaa !11
  %33880 = fcmp ole double 0.000000e+00, %33879
  br i1 %33880, label %33881, label %33884

33881:                                            ; preds = %33878
  %33882 = load double, ptr %985, align 8, !tbaa !11
  %33883 = fadd double %33882, 5.000000e-01
  br label %33887

33884:                                            ; preds = %33878
  %33885 = load double, ptr %985, align 8, !tbaa !11
  %33886 = fsub double %33885, 5.000000e-01
  br label %33887

33887:                                            ; preds = %33884, %33881
  %33888 = phi double [ %33883, %33881 ], [ %33886, %33884 ]
  %33889 = load double, ptr %984, align 8, !tbaa !11
  %33890 = fcmp ole double %33888, %33889
  br i1 %33890, label %33891, label %33902

33891:                                            ; preds = %33887
  %33892 = load double, ptr %985, align 8, !tbaa !11
  %33893 = fcmp ole double 0.000000e+00, %33892
  br i1 %33893, label %33894, label %33897

33894:                                            ; preds = %33891
  %33895 = load double, ptr %985, align 8, !tbaa !11
  %33896 = fadd double %33895, 5.000000e-01
  br label %33900

33897:                                            ; preds = %33891
  %33898 = load double, ptr %985, align 8, !tbaa !11
  %33899 = fsub double %33898, 5.000000e-01
  br label %33900

33900:                                            ; preds = %33897, %33894
  %33901 = phi double [ %33896, %33894 ], [ %33899, %33897 ]
  br label %33930

33902:                                            ; preds = %33887
  %33903 = load double, ptr %985, align 8, !tbaa !11
  %33904 = fcmp ole double 0.000000e+00, %33903
  br i1 %33904, label %33905, label %33908

33905:                                            ; preds = %33902
  %33906 = load double, ptr %985, align 8, !tbaa !11
  %33907 = fadd double %33906, 5.000000e-01
  br label %33911

33908:                                            ; preds = %33902
  %33909 = load double, ptr %985, align 8, !tbaa !11
  %33910 = fsub double %33909, 5.000000e-01
  br label %33911

33911:                                            ; preds = %33908, %33905
  %33912 = phi double [ %33907, %33905 ], [ %33910, %33908 ]
  %33913 = load double, ptr %984, align 8, !tbaa !11
  %33914 = fcmp olt double %33912, %33913
  br i1 %33914, label %33915, label %33926

33915:                                            ; preds = %33911
  %33916 = load double, ptr %985, align 8, !tbaa !11
  %33917 = fcmp ole double 0.000000e+00, %33916
  br i1 %33917, label %33918, label %33921

33918:                                            ; preds = %33915
  %33919 = load double, ptr %985, align 8, !tbaa !11
  %33920 = fadd double %33919, 5.000000e-01
  br label %33924

33921:                                            ; preds = %33915
  %33922 = load double, ptr %985, align 8, !tbaa !11
  %33923 = fsub double %33922, 5.000000e-01
  br label %33924

33924:                                            ; preds = %33921, %33918
  %33925 = phi double [ %33920, %33918 ], [ %33923, %33921 ]
  br label %33928

33926:                                            ; preds = %33911
  %33927 = load double, ptr %984, align 8, !tbaa !11
  br label %33928

33928:                                            ; preds = %33926, %33924
  %33929 = phi double [ %33925, %33924 ], [ %33927, %33926 ]
  br label %33930

33930:                                            ; preds = %33928, %33900
  %33931 = phi double [ %33901, %33900 ], [ %33929, %33928 ]
  br label %33960

33932:                                            ; preds = %33875
  %33933 = load double, ptr %983, align 8, !tbaa !11
  %33934 = load double, ptr %985, align 8, !tbaa !11
  %33935 = fcmp ole double 0.000000e+00, %33934
  br i1 %33935, label %33936, label %33939

33936:                                            ; preds = %33932
  %33937 = load double, ptr %985, align 8, !tbaa !11
  %33938 = fadd double %33937, 5.000000e-01
  br label %33942

33939:                                            ; preds = %33932
  %33940 = load double, ptr %985, align 8, !tbaa !11
  %33941 = fsub double %33940, 5.000000e-01
  br label %33942

33942:                                            ; preds = %33939, %33936
  %33943 = phi double [ %33938, %33936 ], [ %33941, %33939 ]
  %33944 = fcmp olt double %33933, %33943
  br i1 %33944, label %33945, label %33956

33945:                                            ; preds = %33942
  %33946 = load double, ptr %985, align 8, !tbaa !11
  %33947 = fcmp ole double 0.000000e+00, %33946
  br i1 %33947, label %33948, label %33951

33948:                                            ; preds = %33945
  %33949 = load double, ptr %985, align 8, !tbaa !11
  %33950 = fadd double %33949, 5.000000e-01
  br label %33954

33951:                                            ; preds = %33945
  %33952 = load double, ptr %985, align 8, !tbaa !11
  %33953 = fsub double %33952, 5.000000e-01
  br label %33954

33954:                                            ; preds = %33951, %33948
  %33955 = phi double [ %33950, %33948 ], [ %33953, %33951 ]
  br label %33958

33956:                                            ; preds = %33942
  %33957 = load double, ptr %983, align 8, !tbaa !11
  br label %33958

33958:                                            ; preds = %33956, %33954
  %33959 = phi double [ %33955, %33954 ], [ %33957, %33956 ]
  br label %33960

33960:                                            ; preds = %33958, %33930
  %33961 = phi double [ %33931, %33930 ], [ %33959, %33958 ]
  %33962 = fptosi double %33961 to i8
  %33963 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %33962, ptr %33963, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %985) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %984) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %983) #3
  br label %34106

33964:                                            ; preds = %33738, %33735
  %33965 = load i32, ptr %8, align 4, !tbaa !9
  %33966 = icmp ugt i32 6, %33965
  br i1 %33966, label %33995, label %33967

33967:                                            ; preds = %33964
  %33968 = load i32, ptr %8, align 4, !tbaa !9
  %33969 = icmp ugt i32 15, %33968
  br i1 %33969, label %33970, label %33981

33970:                                            ; preds = %33967
  %33971 = load i32, ptr %9, align 4, !tbaa !9
  %33972 = icmp ugt i32 15, %33971
  br i1 %33972, label %33973, label %33978

33973:                                            ; preds = %33970
  %33974 = load i32, ptr %9, align 4, !tbaa !9
  %33975 = load i32, ptr %8, align 4, !tbaa !9
  %33976 = icmp ugt i32 %33974, %33975
  %33977 = zext i1 %33976 to i32
  br label %33979

33978:                                            ; preds = %33970
  br label %33979

33979:                                            ; preds = %33978, %33973
  %33980 = phi i32 [ %33977, %33973 ], [ 0, %33978 ]
  br label %33992

33981:                                            ; preds = %33967
  %33982 = load i32, ptr %9, align 4, !tbaa !9
  %33983 = icmp ugt i32 15, %33982
  br i1 %33983, label %33984, label %33985

33984:                                            ; preds = %33981
  br label %33990

33985:                                            ; preds = %33981
  %33986 = load i32, ptr %9, align 4, !tbaa !9
  %33987 = load i32, ptr %8, align 4, !tbaa !9
  %33988 = icmp ugt i32 %33986, %33987
  %33989 = zext i1 %33988 to i32
  br label %33990

33990:                                            ; preds = %33985, %33984
  %33991 = phi i32 [ 0, %33984 ], [ %33989, %33985 ]
  br label %33992

33992:                                            ; preds = %33990, %33979
  %33993 = phi i32 [ %33980, %33979 ], [ %33991, %33990 ]
  %33994 = icmp ne i32 %33993, 0
  br label %33995

33995:                                            ; preds = %33992, %33964
  %33996 = phi i1 [ true, %33964 ], [ %33994, %33992 ]
  %33997 = zext i1 %33996 to i32
  %33998 = icmp eq i32 0, %33997
  br i1 %33998, label %33999, label %34090

33999:                                            ; preds = %33995
  %34000 = load float, ptr %977, align 4, !tbaa !18
  %34001 = fcmp ole float 0.000000e+00, %34000
  br i1 %34001, label %34002, label %34044

34002:                                            ; preds = %33999
  %34003 = load float, ptr %977, align 4, !tbaa !18
  %34004 = fpext float %34003 to double
  %34005 = fadd double %34004, 5.000000e-01
  %34006 = fcmp olt double -1.280000e+02, %34005
  br i1 %34006, label %34007, label %34030

34007:                                            ; preds = %34002
  %34008 = load float, ptr %977, align 4, !tbaa !18
  %34009 = fpext float %34008 to double
  %34010 = fadd double %34009, 5.000000e-01
  %34011 = fcmp ole double %34010, 1.270000e+02
  br i1 %34011, label %34012, label %34016

34012:                                            ; preds = %34007
  %34013 = load float, ptr %977, align 4, !tbaa !18
  %34014 = fpext float %34013 to double
  %34015 = fadd double %34014, 5.000000e-01
  br label %34028

34016:                                            ; preds = %34007
  %34017 = load float, ptr %977, align 4, !tbaa !18
  %34018 = fpext float %34017 to double
  %34019 = fadd double %34018, 5.000000e-01
  %34020 = fcmp olt double %34019, 1.270000e+02
  br i1 %34020, label %34021, label %34025

34021:                                            ; preds = %34016
  %34022 = load float, ptr %977, align 4, !tbaa !18
  %34023 = fpext float %34022 to double
  %34024 = fadd double %34023, 5.000000e-01
  br label %34026

34025:                                            ; preds = %34016
  br label %34026

34026:                                            ; preds = %34025, %34021
  %34027 = phi double [ %34024, %34021 ], [ 1.270000e+02, %34025 ]
  br label %34028

34028:                                            ; preds = %34026, %34012
  %34029 = phi double [ %34015, %34012 ], [ %34027, %34026 ]
  br label %34042

34030:                                            ; preds = %34002
  %34031 = load float, ptr %977, align 4, !tbaa !18
  %34032 = fpext float %34031 to double
  %34033 = fadd double %34032, 5.000000e-01
  %34034 = fcmp olt double -1.280000e+02, %34033
  br i1 %34034, label %34035, label %34039

34035:                                            ; preds = %34030
  %34036 = load float, ptr %977, align 4, !tbaa !18
  %34037 = fpext float %34036 to double
  %34038 = fadd double %34037, 5.000000e-01
  br label %34040

34039:                                            ; preds = %34030
  br label %34040

34040:                                            ; preds = %34039, %34035
  %34041 = phi double [ %34038, %34035 ], [ -1.280000e+02, %34039 ]
  br label %34042

34042:                                            ; preds = %34040, %34028
  %34043 = phi double [ %34029, %34028 ], [ %34041, %34040 ]
  br label %34086

34044:                                            ; preds = %33999
  %34045 = load float, ptr %977, align 4, !tbaa !18
  %34046 = fpext float %34045 to double
  %34047 = fsub double %34046, 5.000000e-01
  %34048 = fcmp olt double -1.280000e+02, %34047
  br i1 %34048, label %34049, label %34072

34049:                                            ; preds = %34044
  %34050 = load float, ptr %977, align 4, !tbaa !18
  %34051 = fpext float %34050 to double
  %34052 = fsub double %34051, 5.000000e-01
  %34053 = fcmp ole double %34052, 1.270000e+02
  br i1 %34053, label %34054, label %34058

34054:                                            ; preds = %34049
  %34055 = load float, ptr %977, align 4, !tbaa !18
  %34056 = fpext float %34055 to double
  %34057 = fsub double %34056, 5.000000e-01
  br label %34070

34058:                                            ; preds = %34049
  %34059 = load float, ptr %977, align 4, !tbaa !18
  %34060 = fpext float %34059 to double
  %34061 = fsub double %34060, 5.000000e-01
  %34062 = fcmp olt double %34061, 1.270000e+02
  br i1 %34062, label %34063, label %34067

34063:                                            ; preds = %34058
  %34064 = load float, ptr %977, align 4, !tbaa !18
  %34065 = fpext float %34064 to double
  %34066 = fsub double %34065, 5.000000e-01
  br label %34068

34067:                                            ; preds = %34058
  br label %34068

34068:                                            ; preds = %34067, %34063
  %34069 = phi double [ %34066, %34063 ], [ 1.270000e+02, %34067 ]
  br label %34070

34070:                                            ; preds = %34068, %34054
  %34071 = phi double [ %34057, %34054 ], [ %34069, %34068 ]
  br label %34084

34072:                                            ; preds = %34044
  %34073 = load float, ptr %977, align 4, !tbaa !18
  %34074 = fpext float %34073 to double
  %34075 = fsub double %34074, 5.000000e-01
  %34076 = fcmp olt double -1.280000e+02, %34075
  br i1 %34076, label %34077, label %34081

34077:                                            ; preds = %34072
  %34078 = load float, ptr %977, align 4, !tbaa !18
  %34079 = fpext float %34078 to double
  %34080 = fsub double %34079, 5.000000e-01
  br label %34082

34081:                                            ; preds = %34072
  br label %34082

34082:                                            ; preds = %34081, %34077
  %34083 = phi double [ %34080, %34077 ], [ -1.280000e+02, %34081 ]
  br label %34084

34084:                                            ; preds = %34082, %34070
  %34085 = phi double [ %34071, %34070 ], [ %34083, %34082 ]
  br label %34086

34086:                                            ; preds = %34084, %34042
  %34087 = phi double [ %34043, %34042 ], [ %34085, %34084 ]
  %34088 = fptosi double %34087 to i8
  %34089 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %34088, ptr %34089, align 1, !tbaa !17
  br label %34105

34090:                                            ; preds = %33995
  %34091 = load float, ptr %977, align 4, !tbaa !18
  %34092 = fcmp ole float 0.000000e+00, %34091
  br i1 %34092, label %34093, label %34097

34093:                                            ; preds = %34090
  %34094 = load float, ptr %977, align 4, !tbaa !18
  %34095 = fpext float %34094 to double
  %34096 = fadd double %34095, 5.000000e-01
  br label %34101

34097:                                            ; preds = %34090
  %34098 = load float, ptr %977, align 4, !tbaa !18
  %34099 = fpext float %34098 to double
  %34100 = fsub double %34099, 5.000000e-01
  br label %34101

34101:                                            ; preds = %34097, %34093
  %34102 = phi double [ %34096, %34093 ], [ %34100, %34097 ]
  %34103 = fptosi double %34102 to i8
  %34104 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %34103, ptr %34104, align 1, !tbaa !17
  br label %34105

34105:                                            ; preds = %34101, %34086
  br label %34106

34106:                                            ; preds = %34105, %33960
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %979) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %978) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %977) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %976) #3
  br label %34107

34107:                                            ; preds = %34106
  br label %34108

34108:                                            ; preds = %34107
  br label %34113

34109:                                            ; preds = %30490
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 491, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

34110:                                            ; preds = %30490
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 491, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

34111:                                            ; preds = %30490
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 491, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

34112:                                            ; preds = %30490
  store i32 1, ptr %13, align 4, !tbaa !9
  br label %34113

34113:                                            ; preds = %34112, %34108, %33702, %33317, %32958, %32598, %32251, %31904, %31545, %31185, %30838
  br label %34114

34114:                                            ; preds = %34113
  br label %34115

34115:                                            ; preds = %34114
  br label %48657

34116:                                            ; preds = %6
  br label %34117

34117:                                            ; preds = %34116
  %34118 = load ptr, ptr %7, align 8, !tbaa !5
  %34119 = icmp ne ptr null, %34118
  br i1 %34119, label %34120, label %34124

34120:                                            ; preds = %34117
  %34121 = load ptr, ptr %10, align 8, !tbaa !5
  %34122 = icmp ne ptr null, %34121
  br i1 %34122, label %34123, label %34124

34123:                                            ; preds = %34120
  br label %34125

34124:                                            ; preds = %34120, %34117
  call void @__assert_fail(ptr noundef @.str.41, ptr noundef @.str.24, i32 noundef 494, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

34125:                                            ; preds = %34123
  %34126 = load i32, ptr %9, align 4, !tbaa !9
  switch i32 %34126, label %37747 [
    i32 6, label %34127
    i32 8, label %34473
    i32 10, label %34820
    i32 12, label %35180
    i32 15, label %35540
    i32 16, label %35886
    i32 17, label %36233
    i32 18, label %36593
    i32 0, label %36953
    i32 1, label %37338
    i32 3, label %37744
    i32 2, label %37745
    i32 4, label %37746
  ]

34127:                                            ; preds = %34125
  br label %34128

34128:                                            ; preds = %34127
  call void @llvm.lifetime.start.p0(i64 8, ptr %986) #3
  store double 5.000000e-01, ptr %986, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %987) #3
  %34129 = load ptr, ptr %10, align 8, !tbaa !5
  %34130 = load i64, ptr %34129, align 8, !tbaa !13
  store i64 %34130, ptr %987, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %988) #3
  store double 0.000000e+00, ptr %988, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %989) #3
  store double 0.000000e+00, ptr %989, align 8, !tbaa !11
  %34131 = load ptr, ptr %11, align 8, !tbaa !5
  %34132 = icmp ne ptr null, %34131
  br i1 %34132, label %34133, label %34155

34133:                                            ; preds = %34128
  %34134 = load ptr, ptr %12, align 8, !tbaa !5
  %34135 = icmp ne ptr null, %34134
  br i1 %34135, label %34136, label %34147

34136:                                            ; preds = %34133
  %34137 = load ptr, ptr %11, align 8, !tbaa !5
  %34138 = load i64, ptr %34137, align 8, !tbaa !13
  %34139 = load i64, ptr %987, align 8, !tbaa !13
  %34140 = icmp sle i64 %34138, %34139
  br i1 %34140, label %34141, label %34147

34141:                                            ; preds = %34136
  %34142 = load i64, ptr %987, align 8, !tbaa !13
  %34143 = load ptr, ptr %12, align 8, !tbaa !5
  %34144 = load i64, ptr %34143, align 8, !tbaa !13
  %34145 = icmp sle i64 %34142, %34144
  br i1 %34145, label %34146, label %34147

34146:                                            ; preds = %34141
  br label %34148

34147:                                            ; preds = %34141, %34136, %34133
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.24, i32 noundef 494, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

34148:                                            ; preds = %34146
  %34149 = load ptr, ptr %11, align 8, !tbaa !5
  %34150 = load i64, ptr %34149, align 8, !tbaa !13
  %34151 = sitofp i64 %34150 to double
  store double %34151, ptr %988, align 8, !tbaa !11
  %34152 = load ptr, ptr %12, align 8, !tbaa !5
  %34153 = load i64, ptr %34152, align 8, !tbaa !13
  %34154 = sitofp i64 %34153 to double
  store double %34154, ptr %989, align 8, !tbaa !11
  br label %34155

34155:                                            ; preds = %34148, %34128
  %34156 = load i32, ptr %8, align 4, !tbaa !9
  %34157 = icmp ule i32 6, %34156
  br i1 %34157, label %34158, label %34394

34158:                                            ; preds = %34155
  %34159 = load double, ptr %988, align 8, !tbaa !11
  %34160 = load double, ptr %989, align 8, !tbaa !11
  %34161 = fcmp olt double %34159, %34160
  br i1 %34161, label %34162, label %34394

34162:                                            ; preds = %34158
  %34163 = load i32, ptr %8, align 4, !tbaa !9
  %34164 = icmp ule i32 15, %34163
  br i1 %34164, label %34165, label %34217

34165:                                            ; preds = %34162
  call void @llvm.lifetime.start.p0(i64 8, ptr %990) #3
  %34166 = load double, ptr %988, align 8, !tbaa !11
  %34167 = fcmp olt double 0.000000e+00, %34166
  br i1 %34167, label %34168, label %34170

34168:                                            ; preds = %34165
  %34169 = load double, ptr %988, align 8, !tbaa !11
  br label %34171

34170:                                            ; preds = %34165
  br label %34171

34171:                                            ; preds = %34170, %34168
  %34172 = phi double [ %34169, %34168 ], [ 0.000000e+00, %34170 ]
  store double %34172, ptr %990, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %991) #3
  %34173 = load double, ptr %989, align 8, !tbaa !11
  %34174 = fcmp olt double 0.000000e+00, %34173
  br i1 %34174, label %34175, label %34177

34175:                                            ; preds = %34171
  %34176 = load double, ptr %989, align 8, !tbaa !11
  br label %34178

34177:                                            ; preds = %34171
  br label %34178

34178:                                            ; preds = %34177, %34175
  %34179 = phi double [ %34176, %34175 ], [ 0.000000e+00, %34177 ]
  store double %34179, ptr %991, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %992) #3
  %34180 = load double, ptr %990, align 8, !tbaa !11
  %34181 = load double, ptr %991, align 8, !tbaa !11
  %34182 = fcmp olt double %34180, %34181
  br i1 %34182, label %34183, label %34191

34183:                                            ; preds = %34178
  %34184 = load double, ptr %989, align 8, !tbaa !11
  %34185 = load double, ptr %988, align 8, !tbaa !11
  %34186 = fsub double %34184, %34185
  %34187 = load double, ptr %991, align 8, !tbaa !11
  %34188 = load double, ptr %990, align 8, !tbaa !11
  %34189 = fsub double %34187, %34188
  %34190 = fdiv double %34186, %34189
  br label %34192

34191:                                            ; preds = %34178
  br label %34192

34192:                                            ; preds = %34191, %34183
  %34193 = phi double [ %34190, %34183 ], [ 1.000000e+00, %34191 ]
  store double %34193, ptr %992, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %993) #3
  %34194 = load double, ptr %992, align 8, !tbaa !11
  %34195 = load i64, ptr %987, align 8, !tbaa !13
  %34196 = icmp slt i64 0, %34195
  br i1 %34196, label %34197, label %34199

34197:                                            ; preds = %34192
  %34198 = load i64, ptr %987, align 8, !tbaa !13
  br label %34200

34199:                                            ; preds = %34192
  br label %34200

34200:                                            ; preds = %34199, %34197
  %34201 = phi i64 [ %34198, %34197 ], [ 0, %34199 ]
  %34202 = sitofp i64 %34201 to double
  %34203 = fmul double %34194, %34202
  store double %34203, ptr %993, align 8, !tbaa !11
  %34204 = load double, ptr %993, align 8, !tbaa !11
  %34205 = fcmp ole double 0.000000e+00, %34204
  br i1 %34205, label %34206, label %34209

34206:                                            ; preds = %34200
  %34207 = load double, ptr %993, align 8, !tbaa !11
  %34208 = fadd double %34207, 5.000000e-01
  br label %34212

34209:                                            ; preds = %34200
  %34210 = load double, ptr %993, align 8, !tbaa !11
  %34211 = fsub double %34210, 5.000000e-01
  br label %34212

34212:                                            ; preds = %34209, %34206
  %34213 = phi double [ %34208, %34206 ], [ %34211, %34209 ]
  %34214 = fptosi double %34213 to i64
  store i64 %34214, ptr %987, align 8, !tbaa !13
  %34215 = load double, ptr %990, align 8, !tbaa !11
  store double %34215, ptr %988, align 8, !tbaa !11
  %34216 = load double, ptr %991, align 8, !tbaa !11
  store double %34216, ptr %989, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %993) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %992) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %991) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %990) #3
  br label %34273

34217:                                            ; preds = %34162
  %34218 = load i32, ptr %8, align 4, !tbaa !9
  %34219 = icmp ugt i32 6, %34218
  br i1 %34219, label %34248, label %34220

34220:                                            ; preds = %34217
  %34221 = load i32, ptr %8, align 4, !tbaa !9
  %34222 = icmp ugt i32 15, %34221
  br i1 %34222, label %34223, label %34234

34223:                                            ; preds = %34220
  %34224 = load i32, ptr %9, align 4, !tbaa !9
  %34225 = icmp ugt i32 15, %34224
  br i1 %34225, label %34226, label %34231

34226:                                            ; preds = %34223
  %34227 = load i32, ptr %9, align 4, !tbaa !9
  %34228 = load i32, ptr %8, align 4, !tbaa !9
  %34229 = icmp ugt i32 %34227, %34228
  %34230 = zext i1 %34229 to i32
  br label %34232

34231:                                            ; preds = %34223
  br label %34232

34232:                                            ; preds = %34231, %34226
  %34233 = phi i32 [ %34230, %34226 ], [ 0, %34231 ]
  br label %34245

34234:                                            ; preds = %34220
  %34235 = load i32, ptr %9, align 4, !tbaa !9
  %34236 = icmp ugt i32 15, %34235
  br i1 %34236, label %34237, label %34238

34237:                                            ; preds = %34234
  br label %34243

34238:                                            ; preds = %34234
  %34239 = load i32, ptr %9, align 4, !tbaa !9
  %34240 = load i32, ptr %8, align 4, !tbaa !9
  %34241 = icmp ugt i32 %34239, %34240
  %34242 = zext i1 %34241 to i32
  br label %34243

34243:                                            ; preds = %34238, %34237
  %34244 = phi i32 [ 0, %34237 ], [ %34242, %34238 ]
  br label %34245

34245:                                            ; preds = %34243, %34232
  %34246 = phi i32 [ %34233, %34232 ], [ %34244, %34243 ]
  %34247 = icmp ne i32 %34246, 0
  br label %34248

34248:                                            ; preds = %34245, %34217
  %34249 = phi i1 [ true, %34217 ], [ %34247, %34245 ]
  %34250 = zext i1 %34249 to i32
  %34251 = icmp eq i32 0, %34250
  br i1 %34251, label %34252, label %34272

34252:                                            ; preds = %34248
  %34253 = load double, ptr %988, align 8, !tbaa !11
  %34254 = fcmp ogt double 0.000000e+00, %34253
  br i1 %34254, label %34255, label %34272

34255:                                            ; preds = %34252
  %34256 = load double, ptr %989, align 8, !tbaa !11
  %34257 = fcmp olt double 0.000000e+00, %34256
  br i1 %34257, label %34258, label %34272

34258:                                            ; preds = %34255
  %34259 = load double, ptr %988, align 8, !tbaa !11
  %34260 = fneg double %34259
  %34261 = load double, ptr %989, align 8, !tbaa !11
  %34262 = fcmp olt double %34260, %34261
  br i1 %34262, label %34263, label %34265

34263:                                            ; preds = %34258
  %34264 = load double, ptr %989, align 8, !tbaa !11
  br label %34268

34265:                                            ; preds = %34258
  %34266 = load double, ptr %988, align 8, !tbaa !11
  %34267 = fneg double %34266
  br label %34268

34268:                                            ; preds = %34265, %34263
  %34269 = phi double [ %34264, %34263 ], [ %34267, %34265 ]
  store double %34269, ptr %989, align 8, !tbaa !11
  %34270 = load double, ptr %989, align 8, !tbaa !11
  %34271 = fneg double %34270
  store double %34271, ptr %988, align 8, !tbaa !11
  br label %34272

34272:                                            ; preds = %34268, %34255, %34252, %34248
  br label %34273

34273:                                            ; preds = %34272, %34212
  call void @llvm.lifetime.start.p0(i64 8, ptr %994) #3
  %34274 = load double, ptr %988, align 8, !tbaa !11
  %34275 = fcmp ole double 0.000000e+00, %34274
  %34276 = zext i1 %34275 to i64
  %34277 = select i1 %34275, double 0.000000e+00, double 0.000000e+00
  store double %34277, ptr %994, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %995) #3
  %34278 = load double, ptr %989, align 8, !tbaa !11
  %34279 = fcmp ole double 0.000000e+00, %34278
  %34280 = zext i1 %34279 to i64
  %34281 = select i1 %34279, double 0x43F0000000000000, double 0.000000e+00
  store double %34281, ptr %995, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %996) #3
  %34282 = load i64, ptr %987, align 8, !tbaa !13
  %34283 = sitofp i64 %34282 to double
  %34284 = load double, ptr %988, align 8, !tbaa !11
  %34285 = fsub double %34283, %34284
  %34286 = load double, ptr %995, align 8, !tbaa !11
  %34287 = load double, ptr %994, align 8, !tbaa !11
  %34288 = fsub double %34286, %34287
  %34289 = fmul double %34285, %34288
  %34290 = load double, ptr %989, align 8, !tbaa !11
  %34291 = load double, ptr %988, align 8, !tbaa !11
  %34292 = fsub double %34290, %34291
  %34293 = fdiv double %34289, %34292
  %34294 = load double, ptr %994, align 8, !tbaa !11
  %34295 = fadd double %34293, %34294
  store double %34295, ptr %996, align 8, !tbaa !11
  %34296 = load double, ptr %994, align 8, !tbaa !11
  %34297 = load double, ptr %996, align 8, !tbaa !11
  %34298 = fcmp ole double 0.000000e+00, %34297
  br i1 %34298, label %34299, label %34302

34299:                                            ; preds = %34273
  %34300 = load double, ptr %996, align 8, !tbaa !11
  %34301 = fadd double %34300, 5.000000e-01
  br label %34305

34302:                                            ; preds = %34273
  %34303 = load double, ptr %996, align 8, !tbaa !11
  %34304 = fsub double %34303, 5.000000e-01
  br label %34305

34305:                                            ; preds = %34302, %34299
  %34306 = phi double [ %34301, %34299 ], [ %34304, %34302 ]
  %34307 = fcmp olt double %34296, %34306
  br i1 %34307, label %34308, label %34362

34308:                                            ; preds = %34305
  %34309 = load double, ptr %996, align 8, !tbaa !11
  %34310 = fcmp ole double 0.000000e+00, %34309
  br i1 %34310, label %34311, label %34314

34311:                                            ; preds = %34308
  %34312 = load double, ptr %996, align 8, !tbaa !11
  %34313 = fadd double %34312, 5.000000e-01
  br label %34317

34314:                                            ; preds = %34308
  %34315 = load double, ptr %996, align 8, !tbaa !11
  %34316 = fsub double %34315, 5.000000e-01
  br label %34317

34317:                                            ; preds = %34314, %34311
  %34318 = phi double [ %34313, %34311 ], [ %34316, %34314 ]
  %34319 = load double, ptr %995, align 8, !tbaa !11
  %34320 = fcmp ole double %34318, %34319
  br i1 %34320, label %34321, label %34332

34321:                                            ; preds = %34317
  %34322 = load double, ptr %996, align 8, !tbaa !11
  %34323 = fcmp ole double 0.000000e+00, %34322
  br i1 %34323, label %34324, label %34327

34324:                                            ; preds = %34321
  %34325 = load double, ptr %996, align 8, !tbaa !11
  %34326 = fadd double %34325, 5.000000e-01
  br label %34330

34327:                                            ; preds = %34321
  %34328 = load double, ptr %996, align 8, !tbaa !11
  %34329 = fsub double %34328, 5.000000e-01
  br label %34330

34330:                                            ; preds = %34327, %34324
  %34331 = phi double [ %34326, %34324 ], [ %34329, %34327 ]
  br label %34360

34332:                                            ; preds = %34317
  %34333 = load double, ptr %996, align 8, !tbaa !11
  %34334 = fcmp ole double 0.000000e+00, %34333
  br i1 %34334, label %34335, label %34338

34335:                                            ; preds = %34332
  %34336 = load double, ptr %996, align 8, !tbaa !11
  %34337 = fadd double %34336, 5.000000e-01
  br label %34341

34338:                                            ; preds = %34332
  %34339 = load double, ptr %996, align 8, !tbaa !11
  %34340 = fsub double %34339, 5.000000e-01
  br label %34341

34341:                                            ; preds = %34338, %34335
  %34342 = phi double [ %34337, %34335 ], [ %34340, %34338 ]
  %34343 = load double, ptr %995, align 8, !tbaa !11
  %34344 = fcmp olt double %34342, %34343
  br i1 %34344, label %34345, label %34356

34345:                                            ; preds = %34341
  %34346 = load double, ptr %996, align 8, !tbaa !11
  %34347 = fcmp ole double 0.000000e+00, %34346
  br i1 %34347, label %34348, label %34351

34348:                                            ; preds = %34345
  %34349 = load double, ptr %996, align 8, !tbaa !11
  %34350 = fadd double %34349, 5.000000e-01
  br label %34354

34351:                                            ; preds = %34345
  %34352 = load double, ptr %996, align 8, !tbaa !11
  %34353 = fsub double %34352, 5.000000e-01
  br label %34354

34354:                                            ; preds = %34351, %34348
  %34355 = phi double [ %34350, %34348 ], [ %34353, %34351 ]
  br label %34358

34356:                                            ; preds = %34341
  %34357 = load double, ptr %995, align 8, !tbaa !11
  br label %34358

34358:                                            ; preds = %34356, %34354
  %34359 = phi double [ %34355, %34354 ], [ %34357, %34356 ]
  br label %34360

34360:                                            ; preds = %34358, %34330
  %34361 = phi double [ %34331, %34330 ], [ %34359, %34358 ]
  br label %34390

34362:                                            ; preds = %34305
  %34363 = load double, ptr %994, align 8, !tbaa !11
  %34364 = load double, ptr %996, align 8, !tbaa !11
  %34365 = fcmp ole double 0.000000e+00, %34364
  br i1 %34365, label %34366, label %34369

34366:                                            ; preds = %34362
  %34367 = load double, ptr %996, align 8, !tbaa !11
  %34368 = fadd double %34367, 5.000000e-01
  br label %34372

34369:                                            ; preds = %34362
  %34370 = load double, ptr %996, align 8, !tbaa !11
  %34371 = fsub double %34370, 5.000000e-01
  br label %34372

34372:                                            ; preds = %34369, %34366
  %34373 = phi double [ %34368, %34366 ], [ %34371, %34369 ]
  %34374 = fcmp olt double %34363, %34373
  br i1 %34374, label %34375, label %34386

34375:                                            ; preds = %34372
  %34376 = load double, ptr %996, align 8, !tbaa !11
  %34377 = fcmp ole double 0.000000e+00, %34376
  br i1 %34377, label %34378, label %34381

34378:                                            ; preds = %34375
  %34379 = load double, ptr %996, align 8, !tbaa !11
  %34380 = fadd double %34379, 5.000000e-01
  br label %34384

34381:                                            ; preds = %34375
  %34382 = load double, ptr %996, align 8, !tbaa !11
  %34383 = fsub double %34382, 5.000000e-01
  br label %34384

34384:                                            ; preds = %34381, %34378
  %34385 = phi double [ %34380, %34378 ], [ %34383, %34381 ]
  br label %34388

34386:                                            ; preds = %34372
  %34387 = load double, ptr %994, align 8, !tbaa !11
  br label %34388

34388:                                            ; preds = %34386, %34384
  %34389 = phi double [ %34385, %34384 ], [ %34387, %34386 ]
  br label %34390

34390:                                            ; preds = %34388, %34360
  %34391 = phi double [ %34361, %34360 ], [ %34389, %34388 ]
  %34392 = fptoui double %34391 to i64
  %34393 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %34392, ptr %34393, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %996) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %995) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %994) #3
  br label %34470

34394:                                            ; preds = %34158, %34155
  %34395 = load i32, ptr %8, align 4, !tbaa !9
  %34396 = icmp ugt i32 6, %34395
  br i1 %34396, label %34425, label %34397

34397:                                            ; preds = %34394
  %34398 = load i32, ptr %8, align 4, !tbaa !9
  %34399 = icmp ugt i32 15, %34398
  br i1 %34399, label %34400, label %34411

34400:                                            ; preds = %34397
  %34401 = load i32, ptr %9, align 4, !tbaa !9
  %34402 = icmp ugt i32 15, %34401
  br i1 %34402, label %34403, label %34408

34403:                                            ; preds = %34400
  %34404 = load i32, ptr %9, align 4, !tbaa !9
  %34405 = load i32, ptr %8, align 4, !tbaa !9
  %34406 = icmp ugt i32 %34404, %34405
  %34407 = zext i1 %34406 to i32
  br label %34409

34408:                                            ; preds = %34400
  br label %34409

34409:                                            ; preds = %34408, %34403
  %34410 = phi i32 [ %34407, %34403 ], [ 0, %34408 ]
  br label %34422

34411:                                            ; preds = %34397
  %34412 = load i32, ptr %9, align 4, !tbaa !9
  %34413 = icmp ugt i32 15, %34412
  br i1 %34413, label %34414, label %34415

34414:                                            ; preds = %34411
  br label %34420

34415:                                            ; preds = %34411
  %34416 = load i32, ptr %9, align 4, !tbaa !9
  %34417 = load i32, ptr %8, align 4, !tbaa !9
  %34418 = icmp ugt i32 %34416, %34417
  %34419 = zext i1 %34418 to i32
  br label %34420

34420:                                            ; preds = %34415, %34414
  %34421 = phi i32 [ 0, %34414 ], [ %34419, %34415 ]
  br label %34422

34422:                                            ; preds = %34420, %34409
  %34423 = phi i32 [ %34410, %34409 ], [ %34421, %34420 ]
  %34424 = icmp ne i32 %34423, 0
  br label %34425

34425:                                            ; preds = %34422, %34394
  %34426 = phi i1 [ true, %34394 ], [ %34424, %34422 ]
  %34427 = zext i1 %34426 to i32
  %34428 = icmp eq i32 0, %34427
  br i1 %34428, label %34429, label %34466

34429:                                            ; preds = %34425
  %34430 = load i64, ptr %987, align 8, !tbaa !13
  %34431 = sitofp i64 %34430 to double
  %34432 = fcmp olt double 0.000000e+00, %34431
  br i1 %34432, label %34433, label %34452

34433:                                            ; preds = %34429
  %34434 = load i64, ptr %987, align 8, !tbaa !13
  %34435 = sitofp i64 %34434 to double
  %34436 = fcmp ole double %34435, 0x43F0000000000000
  br i1 %34436, label %34437, label %34440

34437:                                            ; preds = %34433
  %34438 = load i64, ptr %987, align 8, !tbaa !13
  %34439 = sitofp i64 %34438 to double
  br label %34450

34440:                                            ; preds = %34433
  %34441 = load i64, ptr %987, align 8, !tbaa !13
  %34442 = sitofp i64 %34441 to double
  %34443 = fcmp olt double %34442, 0x43F0000000000000
  br i1 %34443, label %34444, label %34447

34444:                                            ; preds = %34440
  %34445 = load i64, ptr %987, align 8, !tbaa !13
  %34446 = sitofp i64 %34445 to double
  br label %34448

34447:                                            ; preds = %34440
  br label %34448

34448:                                            ; preds = %34447, %34444
  %34449 = phi double [ %34446, %34444 ], [ 0x43F0000000000000, %34447 ]
  br label %34450

34450:                                            ; preds = %34448, %34437
  %34451 = phi double [ %34439, %34437 ], [ %34449, %34448 ]
  br label %34462

34452:                                            ; preds = %34429
  %34453 = load i64, ptr %987, align 8, !tbaa !13
  %34454 = sitofp i64 %34453 to double
  %34455 = fcmp olt double 0.000000e+00, %34454
  br i1 %34455, label %34456, label %34459

34456:                                            ; preds = %34452
  %34457 = load i64, ptr %987, align 8, !tbaa !13
  %34458 = sitofp i64 %34457 to double
  br label %34460

34459:                                            ; preds = %34452
  br label %34460

34460:                                            ; preds = %34459, %34456
  %34461 = phi double [ %34458, %34456 ], [ 0.000000e+00, %34459 ]
  br label %34462

34462:                                            ; preds = %34460, %34450
  %34463 = phi double [ %34451, %34450 ], [ %34461, %34460 ]
  %34464 = fptoui double %34463 to i64
  %34465 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %34464, ptr %34465, align 8, !tbaa !13
  br label %34469

34466:                                            ; preds = %34425
  %34467 = load i64, ptr %987, align 8, !tbaa !13
  %34468 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %34467, ptr %34468, align 8, !tbaa !13
  br label %34469

34469:                                            ; preds = %34466, %34462
  br label %34470

34470:                                            ; preds = %34469, %34390
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %989) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %988) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %987) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %986) #3
  br label %34471

34471:                                            ; preds = %34470
  br label %34472

34472:                                            ; preds = %34471
  br label %37748

34473:                                            ; preds = %34125
  br label %34474

34474:                                            ; preds = %34473
  call void @llvm.lifetime.start.p0(i64 8, ptr %997) #3
  store double 5.000000e-01, ptr %997, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %998) #3
  %34475 = load ptr, ptr %10, align 8, !tbaa !5
  %34476 = load i32, ptr %34475, align 4, !tbaa !9
  store i32 %34476, ptr %998, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %999) #3
  store double 0.000000e+00, ptr %999, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1000) #3
  store double 0.000000e+00, ptr %1000, align 8, !tbaa !11
  %34477 = load ptr, ptr %11, align 8, !tbaa !5
  %34478 = icmp ne ptr null, %34477
  br i1 %34478, label %34479, label %34501

34479:                                            ; preds = %34474
  %34480 = load ptr, ptr %12, align 8, !tbaa !5
  %34481 = icmp ne ptr null, %34480
  br i1 %34481, label %34482, label %34493

34482:                                            ; preds = %34479
  %34483 = load ptr, ptr %11, align 8, !tbaa !5
  %34484 = load i32, ptr %34483, align 4, !tbaa !9
  %34485 = load i32, ptr %998, align 4, !tbaa !9
  %34486 = icmp sle i32 %34484, %34485
  br i1 %34486, label %34487, label %34493

34487:                                            ; preds = %34482
  %34488 = load i32, ptr %998, align 4, !tbaa !9
  %34489 = load ptr, ptr %12, align 8, !tbaa !5
  %34490 = load i32, ptr %34489, align 4, !tbaa !9
  %34491 = icmp sle i32 %34488, %34490
  br i1 %34491, label %34492, label %34493

34492:                                            ; preds = %34487
  br label %34494

34493:                                            ; preds = %34487, %34482, %34479
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.24, i32 noundef 494, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

34494:                                            ; preds = %34492
  %34495 = load ptr, ptr %11, align 8, !tbaa !5
  %34496 = load i32, ptr %34495, align 4, !tbaa !9
  %34497 = sitofp i32 %34496 to double
  store double %34497, ptr %999, align 8, !tbaa !11
  %34498 = load ptr, ptr %12, align 8, !tbaa !5
  %34499 = load i32, ptr %34498, align 4, !tbaa !9
  %34500 = sitofp i32 %34499 to double
  store double %34500, ptr %1000, align 8, !tbaa !11
  br label %34501

34501:                                            ; preds = %34494, %34474
  %34502 = load i32, ptr %8, align 4, !tbaa !9
  %34503 = icmp ule i32 6, %34502
  br i1 %34503, label %34504, label %34740

34504:                                            ; preds = %34501
  %34505 = load double, ptr %999, align 8, !tbaa !11
  %34506 = load double, ptr %1000, align 8, !tbaa !11
  %34507 = fcmp olt double %34505, %34506
  br i1 %34507, label %34508, label %34740

34508:                                            ; preds = %34504
  %34509 = load i32, ptr %8, align 4, !tbaa !9
  %34510 = icmp ule i32 15, %34509
  br i1 %34510, label %34511, label %34563

34511:                                            ; preds = %34508
  call void @llvm.lifetime.start.p0(i64 8, ptr %1001) #3
  %34512 = load double, ptr %999, align 8, !tbaa !11
  %34513 = fcmp olt double 0.000000e+00, %34512
  br i1 %34513, label %34514, label %34516

34514:                                            ; preds = %34511
  %34515 = load double, ptr %999, align 8, !tbaa !11
  br label %34517

34516:                                            ; preds = %34511
  br label %34517

34517:                                            ; preds = %34516, %34514
  %34518 = phi double [ %34515, %34514 ], [ 0.000000e+00, %34516 ]
  store double %34518, ptr %1001, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1002) #3
  %34519 = load double, ptr %1000, align 8, !tbaa !11
  %34520 = fcmp olt double 0.000000e+00, %34519
  br i1 %34520, label %34521, label %34523

34521:                                            ; preds = %34517
  %34522 = load double, ptr %1000, align 8, !tbaa !11
  br label %34524

34523:                                            ; preds = %34517
  br label %34524

34524:                                            ; preds = %34523, %34521
  %34525 = phi double [ %34522, %34521 ], [ 0.000000e+00, %34523 ]
  store double %34525, ptr %1002, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1003) #3
  %34526 = load double, ptr %1001, align 8, !tbaa !11
  %34527 = load double, ptr %1002, align 8, !tbaa !11
  %34528 = fcmp olt double %34526, %34527
  br i1 %34528, label %34529, label %34537

34529:                                            ; preds = %34524
  %34530 = load double, ptr %1000, align 8, !tbaa !11
  %34531 = load double, ptr %999, align 8, !tbaa !11
  %34532 = fsub double %34530, %34531
  %34533 = load double, ptr %1002, align 8, !tbaa !11
  %34534 = load double, ptr %1001, align 8, !tbaa !11
  %34535 = fsub double %34533, %34534
  %34536 = fdiv double %34532, %34535
  br label %34538

34537:                                            ; preds = %34524
  br label %34538

34538:                                            ; preds = %34537, %34529
  %34539 = phi double [ %34536, %34529 ], [ 1.000000e+00, %34537 ]
  store double %34539, ptr %1003, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1004) #3
  %34540 = load double, ptr %1003, align 8, !tbaa !11
  %34541 = load i32, ptr %998, align 4, !tbaa !9
  %34542 = icmp slt i32 0, %34541
  br i1 %34542, label %34543, label %34545

34543:                                            ; preds = %34538
  %34544 = load i32, ptr %998, align 4, !tbaa !9
  br label %34546

34545:                                            ; preds = %34538
  br label %34546

34546:                                            ; preds = %34545, %34543
  %34547 = phi i32 [ %34544, %34543 ], [ 0, %34545 ]
  %34548 = sitofp i32 %34547 to double
  %34549 = fmul double %34540, %34548
  store double %34549, ptr %1004, align 8, !tbaa !11
  %34550 = load double, ptr %1004, align 8, !tbaa !11
  %34551 = fcmp ole double 0.000000e+00, %34550
  br i1 %34551, label %34552, label %34555

34552:                                            ; preds = %34546
  %34553 = load double, ptr %1004, align 8, !tbaa !11
  %34554 = fadd double %34553, 5.000000e-01
  br label %34558

34555:                                            ; preds = %34546
  %34556 = load double, ptr %1004, align 8, !tbaa !11
  %34557 = fsub double %34556, 5.000000e-01
  br label %34558

34558:                                            ; preds = %34555, %34552
  %34559 = phi double [ %34554, %34552 ], [ %34557, %34555 ]
  %34560 = fptosi double %34559 to i32
  store i32 %34560, ptr %998, align 4, !tbaa !9
  %34561 = load double, ptr %1001, align 8, !tbaa !11
  store double %34561, ptr %999, align 8, !tbaa !11
  %34562 = load double, ptr %1002, align 8, !tbaa !11
  store double %34562, ptr %1000, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1004) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1003) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1002) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1001) #3
  br label %34619

34563:                                            ; preds = %34508
  %34564 = load i32, ptr %8, align 4, !tbaa !9
  %34565 = icmp ugt i32 6, %34564
  br i1 %34565, label %34594, label %34566

34566:                                            ; preds = %34563
  %34567 = load i32, ptr %8, align 4, !tbaa !9
  %34568 = icmp ugt i32 15, %34567
  br i1 %34568, label %34569, label %34580

34569:                                            ; preds = %34566
  %34570 = load i32, ptr %9, align 4, !tbaa !9
  %34571 = icmp ugt i32 15, %34570
  br i1 %34571, label %34572, label %34577

34572:                                            ; preds = %34569
  %34573 = load i32, ptr %9, align 4, !tbaa !9
  %34574 = load i32, ptr %8, align 4, !tbaa !9
  %34575 = icmp ugt i32 %34573, %34574
  %34576 = zext i1 %34575 to i32
  br label %34578

34577:                                            ; preds = %34569
  br label %34578

34578:                                            ; preds = %34577, %34572
  %34579 = phi i32 [ %34576, %34572 ], [ 0, %34577 ]
  br label %34591

34580:                                            ; preds = %34566
  %34581 = load i32, ptr %9, align 4, !tbaa !9
  %34582 = icmp ugt i32 15, %34581
  br i1 %34582, label %34583, label %34584

34583:                                            ; preds = %34580
  br label %34589

34584:                                            ; preds = %34580
  %34585 = load i32, ptr %9, align 4, !tbaa !9
  %34586 = load i32, ptr %8, align 4, !tbaa !9
  %34587 = icmp ugt i32 %34585, %34586
  %34588 = zext i1 %34587 to i32
  br label %34589

34589:                                            ; preds = %34584, %34583
  %34590 = phi i32 [ 0, %34583 ], [ %34588, %34584 ]
  br label %34591

34591:                                            ; preds = %34589, %34578
  %34592 = phi i32 [ %34579, %34578 ], [ %34590, %34589 ]
  %34593 = icmp ne i32 %34592, 0
  br label %34594

34594:                                            ; preds = %34591, %34563
  %34595 = phi i1 [ true, %34563 ], [ %34593, %34591 ]
  %34596 = zext i1 %34595 to i32
  %34597 = icmp eq i32 0, %34596
  br i1 %34597, label %34598, label %34618

34598:                                            ; preds = %34594
  %34599 = load double, ptr %999, align 8, !tbaa !11
  %34600 = fcmp ogt double 0.000000e+00, %34599
  br i1 %34600, label %34601, label %34618

34601:                                            ; preds = %34598
  %34602 = load double, ptr %1000, align 8, !tbaa !11
  %34603 = fcmp olt double 0.000000e+00, %34602
  br i1 %34603, label %34604, label %34618

34604:                                            ; preds = %34601
  %34605 = load double, ptr %999, align 8, !tbaa !11
  %34606 = fneg double %34605
  %34607 = load double, ptr %1000, align 8, !tbaa !11
  %34608 = fcmp olt double %34606, %34607
  br i1 %34608, label %34609, label %34611

34609:                                            ; preds = %34604
  %34610 = load double, ptr %1000, align 8, !tbaa !11
  br label %34614

34611:                                            ; preds = %34604
  %34612 = load double, ptr %999, align 8, !tbaa !11
  %34613 = fneg double %34612
  br label %34614

34614:                                            ; preds = %34611, %34609
  %34615 = phi double [ %34610, %34609 ], [ %34613, %34611 ]
  store double %34615, ptr %1000, align 8, !tbaa !11
  %34616 = load double, ptr %1000, align 8, !tbaa !11
  %34617 = fneg double %34616
  store double %34617, ptr %999, align 8, !tbaa !11
  br label %34618

34618:                                            ; preds = %34614, %34601, %34598, %34594
  br label %34619

34619:                                            ; preds = %34618, %34558
  call void @llvm.lifetime.start.p0(i64 8, ptr %1005) #3
  %34620 = load double, ptr %999, align 8, !tbaa !11
  %34621 = fcmp ole double 0.000000e+00, %34620
  %34622 = zext i1 %34621 to i64
  %34623 = select i1 %34621, double 0.000000e+00, double 0.000000e+00
  store double %34623, ptr %1005, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1006) #3
  %34624 = load double, ptr %1000, align 8, !tbaa !11
  %34625 = fcmp ole double 0.000000e+00, %34624
  %34626 = zext i1 %34625 to i64
  %34627 = select i1 %34625, double 0x43F0000000000000, double 0.000000e+00
  store double %34627, ptr %1006, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1007) #3
  %34628 = load i32, ptr %998, align 4, !tbaa !9
  %34629 = sitofp i32 %34628 to double
  %34630 = load double, ptr %999, align 8, !tbaa !11
  %34631 = fsub double %34629, %34630
  %34632 = load double, ptr %1006, align 8, !tbaa !11
  %34633 = load double, ptr %1005, align 8, !tbaa !11
  %34634 = fsub double %34632, %34633
  %34635 = fmul double %34631, %34634
  %34636 = load double, ptr %1000, align 8, !tbaa !11
  %34637 = load double, ptr %999, align 8, !tbaa !11
  %34638 = fsub double %34636, %34637
  %34639 = fdiv double %34635, %34638
  %34640 = load double, ptr %1005, align 8, !tbaa !11
  %34641 = fadd double %34639, %34640
  store double %34641, ptr %1007, align 8, !tbaa !11
  %34642 = load double, ptr %1005, align 8, !tbaa !11
  %34643 = load double, ptr %1007, align 8, !tbaa !11
  %34644 = fcmp ole double 0.000000e+00, %34643
  br i1 %34644, label %34645, label %34648

34645:                                            ; preds = %34619
  %34646 = load double, ptr %1007, align 8, !tbaa !11
  %34647 = fadd double %34646, 5.000000e-01
  br label %34651

34648:                                            ; preds = %34619
  %34649 = load double, ptr %1007, align 8, !tbaa !11
  %34650 = fsub double %34649, 5.000000e-01
  br label %34651

34651:                                            ; preds = %34648, %34645
  %34652 = phi double [ %34647, %34645 ], [ %34650, %34648 ]
  %34653 = fcmp olt double %34642, %34652
  br i1 %34653, label %34654, label %34708

34654:                                            ; preds = %34651
  %34655 = load double, ptr %1007, align 8, !tbaa !11
  %34656 = fcmp ole double 0.000000e+00, %34655
  br i1 %34656, label %34657, label %34660

34657:                                            ; preds = %34654
  %34658 = load double, ptr %1007, align 8, !tbaa !11
  %34659 = fadd double %34658, 5.000000e-01
  br label %34663

34660:                                            ; preds = %34654
  %34661 = load double, ptr %1007, align 8, !tbaa !11
  %34662 = fsub double %34661, 5.000000e-01
  br label %34663

34663:                                            ; preds = %34660, %34657
  %34664 = phi double [ %34659, %34657 ], [ %34662, %34660 ]
  %34665 = load double, ptr %1006, align 8, !tbaa !11
  %34666 = fcmp ole double %34664, %34665
  br i1 %34666, label %34667, label %34678

34667:                                            ; preds = %34663
  %34668 = load double, ptr %1007, align 8, !tbaa !11
  %34669 = fcmp ole double 0.000000e+00, %34668
  br i1 %34669, label %34670, label %34673

34670:                                            ; preds = %34667
  %34671 = load double, ptr %1007, align 8, !tbaa !11
  %34672 = fadd double %34671, 5.000000e-01
  br label %34676

34673:                                            ; preds = %34667
  %34674 = load double, ptr %1007, align 8, !tbaa !11
  %34675 = fsub double %34674, 5.000000e-01
  br label %34676

34676:                                            ; preds = %34673, %34670
  %34677 = phi double [ %34672, %34670 ], [ %34675, %34673 ]
  br label %34706

34678:                                            ; preds = %34663
  %34679 = load double, ptr %1007, align 8, !tbaa !11
  %34680 = fcmp ole double 0.000000e+00, %34679
  br i1 %34680, label %34681, label %34684

34681:                                            ; preds = %34678
  %34682 = load double, ptr %1007, align 8, !tbaa !11
  %34683 = fadd double %34682, 5.000000e-01
  br label %34687

34684:                                            ; preds = %34678
  %34685 = load double, ptr %1007, align 8, !tbaa !11
  %34686 = fsub double %34685, 5.000000e-01
  br label %34687

34687:                                            ; preds = %34684, %34681
  %34688 = phi double [ %34683, %34681 ], [ %34686, %34684 ]
  %34689 = load double, ptr %1006, align 8, !tbaa !11
  %34690 = fcmp olt double %34688, %34689
  br i1 %34690, label %34691, label %34702

34691:                                            ; preds = %34687
  %34692 = load double, ptr %1007, align 8, !tbaa !11
  %34693 = fcmp ole double 0.000000e+00, %34692
  br i1 %34693, label %34694, label %34697

34694:                                            ; preds = %34691
  %34695 = load double, ptr %1007, align 8, !tbaa !11
  %34696 = fadd double %34695, 5.000000e-01
  br label %34700

34697:                                            ; preds = %34691
  %34698 = load double, ptr %1007, align 8, !tbaa !11
  %34699 = fsub double %34698, 5.000000e-01
  br label %34700

34700:                                            ; preds = %34697, %34694
  %34701 = phi double [ %34696, %34694 ], [ %34699, %34697 ]
  br label %34704

34702:                                            ; preds = %34687
  %34703 = load double, ptr %1006, align 8, !tbaa !11
  br label %34704

34704:                                            ; preds = %34702, %34700
  %34705 = phi double [ %34701, %34700 ], [ %34703, %34702 ]
  br label %34706

34706:                                            ; preds = %34704, %34676
  %34707 = phi double [ %34677, %34676 ], [ %34705, %34704 ]
  br label %34736

34708:                                            ; preds = %34651
  %34709 = load double, ptr %1005, align 8, !tbaa !11
  %34710 = load double, ptr %1007, align 8, !tbaa !11
  %34711 = fcmp ole double 0.000000e+00, %34710
  br i1 %34711, label %34712, label %34715

34712:                                            ; preds = %34708
  %34713 = load double, ptr %1007, align 8, !tbaa !11
  %34714 = fadd double %34713, 5.000000e-01
  br label %34718

34715:                                            ; preds = %34708
  %34716 = load double, ptr %1007, align 8, !tbaa !11
  %34717 = fsub double %34716, 5.000000e-01
  br label %34718

34718:                                            ; preds = %34715, %34712
  %34719 = phi double [ %34714, %34712 ], [ %34717, %34715 ]
  %34720 = fcmp olt double %34709, %34719
  br i1 %34720, label %34721, label %34732

34721:                                            ; preds = %34718
  %34722 = load double, ptr %1007, align 8, !tbaa !11
  %34723 = fcmp ole double 0.000000e+00, %34722
  br i1 %34723, label %34724, label %34727

34724:                                            ; preds = %34721
  %34725 = load double, ptr %1007, align 8, !tbaa !11
  %34726 = fadd double %34725, 5.000000e-01
  br label %34730

34727:                                            ; preds = %34721
  %34728 = load double, ptr %1007, align 8, !tbaa !11
  %34729 = fsub double %34728, 5.000000e-01
  br label %34730

34730:                                            ; preds = %34727, %34724
  %34731 = phi double [ %34726, %34724 ], [ %34729, %34727 ]
  br label %34734

34732:                                            ; preds = %34718
  %34733 = load double, ptr %1005, align 8, !tbaa !11
  br label %34734

34734:                                            ; preds = %34732, %34730
  %34735 = phi double [ %34731, %34730 ], [ %34733, %34732 ]
  br label %34736

34736:                                            ; preds = %34734, %34706
  %34737 = phi double [ %34707, %34706 ], [ %34735, %34734 ]
  %34738 = fptoui double %34737 to i64
  %34739 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %34738, ptr %34739, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %1007) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1006) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1005) #3
  br label %34817

34740:                                            ; preds = %34504, %34501
  %34741 = load i32, ptr %8, align 4, !tbaa !9
  %34742 = icmp ugt i32 6, %34741
  br i1 %34742, label %34771, label %34743

34743:                                            ; preds = %34740
  %34744 = load i32, ptr %8, align 4, !tbaa !9
  %34745 = icmp ugt i32 15, %34744
  br i1 %34745, label %34746, label %34757

34746:                                            ; preds = %34743
  %34747 = load i32, ptr %9, align 4, !tbaa !9
  %34748 = icmp ugt i32 15, %34747
  br i1 %34748, label %34749, label %34754

34749:                                            ; preds = %34746
  %34750 = load i32, ptr %9, align 4, !tbaa !9
  %34751 = load i32, ptr %8, align 4, !tbaa !9
  %34752 = icmp ugt i32 %34750, %34751
  %34753 = zext i1 %34752 to i32
  br label %34755

34754:                                            ; preds = %34746
  br label %34755

34755:                                            ; preds = %34754, %34749
  %34756 = phi i32 [ %34753, %34749 ], [ 0, %34754 ]
  br label %34768

34757:                                            ; preds = %34743
  %34758 = load i32, ptr %9, align 4, !tbaa !9
  %34759 = icmp ugt i32 15, %34758
  br i1 %34759, label %34760, label %34761

34760:                                            ; preds = %34757
  br label %34766

34761:                                            ; preds = %34757
  %34762 = load i32, ptr %9, align 4, !tbaa !9
  %34763 = load i32, ptr %8, align 4, !tbaa !9
  %34764 = icmp ugt i32 %34762, %34763
  %34765 = zext i1 %34764 to i32
  br label %34766

34766:                                            ; preds = %34761, %34760
  %34767 = phi i32 [ 0, %34760 ], [ %34765, %34761 ]
  br label %34768

34768:                                            ; preds = %34766, %34755
  %34769 = phi i32 [ %34756, %34755 ], [ %34767, %34766 ]
  %34770 = icmp ne i32 %34769, 0
  br label %34771

34771:                                            ; preds = %34768, %34740
  %34772 = phi i1 [ true, %34740 ], [ %34770, %34768 ]
  %34773 = zext i1 %34772 to i32
  %34774 = icmp eq i32 0, %34773
  br i1 %34774, label %34775, label %34812

34775:                                            ; preds = %34771
  %34776 = load i32, ptr %998, align 4, !tbaa !9
  %34777 = sitofp i32 %34776 to double
  %34778 = fcmp olt double 0.000000e+00, %34777
  br i1 %34778, label %34779, label %34798

34779:                                            ; preds = %34775
  %34780 = load i32, ptr %998, align 4, !tbaa !9
  %34781 = sitofp i32 %34780 to double
  %34782 = fcmp ole double %34781, 0x43F0000000000000
  br i1 %34782, label %34783, label %34786

34783:                                            ; preds = %34779
  %34784 = load i32, ptr %998, align 4, !tbaa !9
  %34785 = sitofp i32 %34784 to double
  br label %34796

34786:                                            ; preds = %34779
  %34787 = load i32, ptr %998, align 4, !tbaa !9
  %34788 = sitofp i32 %34787 to double
  %34789 = fcmp olt double %34788, 0x43F0000000000000
  br i1 %34789, label %34790, label %34793

34790:                                            ; preds = %34786
  %34791 = load i32, ptr %998, align 4, !tbaa !9
  %34792 = sitofp i32 %34791 to double
  br label %34794

34793:                                            ; preds = %34786
  br label %34794

34794:                                            ; preds = %34793, %34790
  %34795 = phi double [ %34792, %34790 ], [ 0x43F0000000000000, %34793 ]
  br label %34796

34796:                                            ; preds = %34794, %34783
  %34797 = phi double [ %34785, %34783 ], [ %34795, %34794 ]
  br label %34808

34798:                                            ; preds = %34775
  %34799 = load i32, ptr %998, align 4, !tbaa !9
  %34800 = sitofp i32 %34799 to double
  %34801 = fcmp olt double 0.000000e+00, %34800
  br i1 %34801, label %34802, label %34805

34802:                                            ; preds = %34798
  %34803 = load i32, ptr %998, align 4, !tbaa !9
  %34804 = sitofp i32 %34803 to double
  br label %34806

34805:                                            ; preds = %34798
  br label %34806

34806:                                            ; preds = %34805, %34802
  %34807 = phi double [ %34804, %34802 ], [ 0.000000e+00, %34805 ]
  br label %34808

34808:                                            ; preds = %34806, %34796
  %34809 = phi double [ %34797, %34796 ], [ %34807, %34806 ]
  %34810 = fptoui double %34809 to i64
  %34811 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %34810, ptr %34811, align 8, !tbaa !13
  br label %34816

34812:                                            ; preds = %34771
  %34813 = load i32, ptr %998, align 4, !tbaa !9
  %34814 = sext i32 %34813 to i64
  %34815 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %34814, ptr %34815, align 8, !tbaa !13
  br label %34816

34816:                                            ; preds = %34812, %34808
  br label %34817

34817:                                            ; preds = %34816, %34736
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1000) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %999) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %998) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %997) #3
  br label %34818

34818:                                            ; preds = %34817
  br label %34819

34819:                                            ; preds = %34818
  br label %37748

34820:                                            ; preds = %34125
  br label %34821

34821:                                            ; preds = %34820
  call void @llvm.lifetime.start.p0(i64 8, ptr %1008) #3
  store double 5.000000e-01, ptr %1008, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %1009) #3
  %34822 = load ptr, ptr %10, align 8, !tbaa !5
  %34823 = load i16, ptr %34822, align 2, !tbaa !15
  store i16 %34823, ptr %1009, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %1010) #3
  store double 0.000000e+00, ptr %1010, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1011) #3
  store double 0.000000e+00, ptr %1011, align 8, !tbaa !11
  %34824 = load ptr, ptr %11, align 8, !tbaa !5
  %34825 = icmp ne ptr null, %34824
  br i1 %34825, label %34826, label %34852

34826:                                            ; preds = %34821
  %34827 = load ptr, ptr %12, align 8, !tbaa !5
  %34828 = icmp ne ptr null, %34827
  br i1 %34828, label %34829, label %34844

34829:                                            ; preds = %34826
  %34830 = load ptr, ptr %11, align 8, !tbaa !5
  %34831 = load i16, ptr %34830, align 2, !tbaa !15
  %34832 = sext i16 %34831 to i32
  %34833 = load i16, ptr %1009, align 2, !tbaa !15
  %34834 = sext i16 %34833 to i32
  %34835 = icmp sle i32 %34832, %34834
  br i1 %34835, label %34836, label %34844

34836:                                            ; preds = %34829
  %34837 = load i16, ptr %1009, align 2, !tbaa !15
  %34838 = sext i16 %34837 to i32
  %34839 = load ptr, ptr %12, align 8, !tbaa !5
  %34840 = load i16, ptr %34839, align 2, !tbaa !15
  %34841 = sext i16 %34840 to i32
  %34842 = icmp sle i32 %34838, %34841
  br i1 %34842, label %34843, label %34844

34843:                                            ; preds = %34836
  br label %34845

34844:                                            ; preds = %34836, %34829, %34826
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.24, i32 noundef 494, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

34845:                                            ; preds = %34843
  %34846 = load ptr, ptr %11, align 8, !tbaa !5
  %34847 = load i16, ptr %34846, align 2, !tbaa !15
  %34848 = sitofp i16 %34847 to double
  store double %34848, ptr %1010, align 8, !tbaa !11
  %34849 = load ptr, ptr %12, align 8, !tbaa !5
  %34850 = load i16, ptr %34849, align 2, !tbaa !15
  %34851 = sitofp i16 %34850 to double
  store double %34851, ptr %1011, align 8, !tbaa !11
  br label %34852

34852:                                            ; preds = %34845, %34821
  %34853 = load i32, ptr %8, align 4, !tbaa !9
  %34854 = icmp ule i32 6, %34853
  br i1 %34854, label %34855, label %35093

34855:                                            ; preds = %34852
  %34856 = load double, ptr %1010, align 8, !tbaa !11
  %34857 = load double, ptr %1011, align 8, !tbaa !11
  %34858 = fcmp olt double %34856, %34857
  br i1 %34858, label %34859, label %35093

34859:                                            ; preds = %34855
  %34860 = load i32, ptr %8, align 4, !tbaa !9
  %34861 = icmp ule i32 15, %34860
  br i1 %34861, label %34862, label %34916

34862:                                            ; preds = %34859
  call void @llvm.lifetime.start.p0(i64 8, ptr %1012) #3
  %34863 = load double, ptr %1010, align 8, !tbaa !11
  %34864 = fcmp olt double 0.000000e+00, %34863
  br i1 %34864, label %34865, label %34867

34865:                                            ; preds = %34862
  %34866 = load double, ptr %1010, align 8, !tbaa !11
  br label %34868

34867:                                            ; preds = %34862
  br label %34868

34868:                                            ; preds = %34867, %34865
  %34869 = phi double [ %34866, %34865 ], [ 0.000000e+00, %34867 ]
  store double %34869, ptr %1012, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1013) #3
  %34870 = load double, ptr %1011, align 8, !tbaa !11
  %34871 = fcmp olt double 0.000000e+00, %34870
  br i1 %34871, label %34872, label %34874

34872:                                            ; preds = %34868
  %34873 = load double, ptr %1011, align 8, !tbaa !11
  br label %34875

34874:                                            ; preds = %34868
  br label %34875

34875:                                            ; preds = %34874, %34872
  %34876 = phi double [ %34873, %34872 ], [ 0.000000e+00, %34874 ]
  store double %34876, ptr %1013, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1014) #3
  %34877 = load double, ptr %1012, align 8, !tbaa !11
  %34878 = load double, ptr %1013, align 8, !tbaa !11
  %34879 = fcmp olt double %34877, %34878
  br i1 %34879, label %34880, label %34888

34880:                                            ; preds = %34875
  %34881 = load double, ptr %1011, align 8, !tbaa !11
  %34882 = load double, ptr %1010, align 8, !tbaa !11
  %34883 = fsub double %34881, %34882
  %34884 = load double, ptr %1013, align 8, !tbaa !11
  %34885 = load double, ptr %1012, align 8, !tbaa !11
  %34886 = fsub double %34884, %34885
  %34887 = fdiv double %34883, %34886
  br label %34889

34888:                                            ; preds = %34875
  br label %34889

34889:                                            ; preds = %34888, %34880
  %34890 = phi double [ %34887, %34880 ], [ 1.000000e+00, %34888 ]
  store double %34890, ptr %1014, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1015) #3
  %34891 = load double, ptr %1014, align 8, !tbaa !11
  %34892 = load i16, ptr %1009, align 2, !tbaa !15
  %34893 = sext i16 %34892 to i32
  %34894 = icmp slt i32 0, %34893
  br i1 %34894, label %34895, label %34898

34895:                                            ; preds = %34889
  %34896 = load i16, ptr %1009, align 2, !tbaa !15
  %34897 = sext i16 %34896 to i32
  br label %34899

34898:                                            ; preds = %34889
  br label %34899

34899:                                            ; preds = %34898, %34895
  %34900 = phi i32 [ %34897, %34895 ], [ 0, %34898 ]
  %34901 = sitofp i32 %34900 to double
  %34902 = fmul double %34891, %34901
  store double %34902, ptr %1015, align 8, !tbaa !11
  %34903 = load double, ptr %1015, align 8, !tbaa !11
  %34904 = fcmp ole double 0.000000e+00, %34903
  br i1 %34904, label %34905, label %34908

34905:                                            ; preds = %34899
  %34906 = load double, ptr %1015, align 8, !tbaa !11
  %34907 = fadd double %34906, 5.000000e-01
  br label %34911

34908:                                            ; preds = %34899
  %34909 = load double, ptr %1015, align 8, !tbaa !11
  %34910 = fsub double %34909, 5.000000e-01
  br label %34911

34911:                                            ; preds = %34908, %34905
  %34912 = phi double [ %34907, %34905 ], [ %34910, %34908 ]
  %34913 = fptosi double %34912 to i16
  store i16 %34913, ptr %1009, align 2, !tbaa !15
  %34914 = load double, ptr %1012, align 8, !tbaa !11
  store double %34914, ptr %1010, align 8, !tbaa !11
  %34915 = load double, ptr %1013, align 8, !tbaa !11
  store double %34915, ptr %1011, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1015) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1014) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1013) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1012) #3
  br label %34972

34916:                                            ; preds = %34859
  %34917 = load i32, ptr %8, align 4, !tbaa !9
  %34918 = icmp ugt i32 6, %34917
  br i1 %34918, label %34947, label %34919

34919:                                            ; preds = %34916
  %34920 = load i32, ptr %8, align 4, !tbaa !9
  %34921 = icmp ugt i32 15, %34920
  br i1 %34921, label %34922, label %34933

34922:                                            ; preds = %34919
  %34923 = load i32, ptr %9, align 4, !tbaa !9
  %34924 = icmp ugt i32 15, %34923
  br i1 %34924, label %34925, label %34930

34925:                                            ; preds = %34922
  %34926 = load i32, ptr %9, align 4, !tbaa !9
  %34927 = load i32, ptr %8, align 4, !tbaa !9
  %34928 = icmp ugt i32 %34926, %34927
  %34929 = zext i1 %34928 to i32
  br label %34931

34930:                                            ; preds = %34922
  br label %34931

34931:                                            ; preds = %34930, %34925
  %34932 = phi i32 [ %34929, %34925 ], [ 0, %34930 ]
  br label %34944

34933:                                            ; preds = %34919
  %34934 = load i32, ptr %9, align 4, !tbaa !9
  %34935 = icmp ugt i32 15, %34934
  br i1 %34935, label %34936, label %34937

34936:                                            ; preds = %34933
  br label %34942

34937:                                            ; preds = %34933
  %34938 = load i32, ptr %9, align 4, !tbaa !9
  %34939 = load i32, ptr %8, align 4, !tbaa !9
  %34940 = icmp ugt i32 %34938, %34939
  %34941 = zext i1 %34940 to i32
  br label %34942

34942:                                            ; preds = %34937, %34936
  %34943 = phi i32 [ 0, %34936 ], [ %34941, %34937 ]
  br label %34944

34944:                                            ; preds = %34942, %34931
  %34945 = phi i32 [ %34932, %34931 ], [ %34943, %34942 ]
  %34946 = icmp ne i32 %34945, 0
  br label %34947

34947:                                            ; preds = %34944, %34916
  %34948 = phi i1 [ true, %34916 ], [ %34946, %34944 ]
  %34949 = zext i1 %34948 to i32
  %34950 = icmp eq i32 0, %34949
  br i1 %34950, label %34951, label %34971

34951:                                            ; preds = %34947
  %34952 = load double, ptr %1010, align 8, !tbaa !11
  %34953 = fcmp ogt double 0.000000e+00, %34952
  br i1 %34953, label %34954, label %34971

34954:                                            ; preds = %34951
  %34955 = load double, ptr %1011, align 8, !tbaa !11
  %34956 = fcmp olt double 0.000000e+00, %34955
  br i1 %34956, label %34957, label %34971

34957:                                            ; preds = %34954
  %34958 = load double, ptr %1010, align 8, !tbaa !11
  %34959 = fneg double %34958
  %34960 = load double, ptr %1011, align 8, !tbaa !11
  %34961 = fcmp olt double %34959, %34960
  br i1 %34961, label %34962, label %34964

34962:                                            ; preds = %34957
  %34963 = load double, ptr %1011, align 8, !tbaa !11
  br label %34967

34964:                                            ; preds = %34957
  %34965 = load double, ptr %1010, align 8, !tbaa !11
  %34966 = fneg double %34965
  br label %34967

34967:                                            ; preds = %34964, %34962
  %34968 = phi double [ %34963, %34962 ], [ %34966, %34964 ]
  store double %34968, ptr %1011, align 8, !tbaa !11
  %34969 = load double, ptr %1011, align 8, !tbaa !11
  %34970 = fneg double %34969
  store double %34970, ptr %1010, align 8, !tbaa !11
  br label %34971

34971:                                            ; preds = %34967, %34954, %34951, %34947
  br label %34972

34972:                                            ; preds = %34971, %34911
  call void @llvm.lifetime.start.p0(i64 8, ptr %1016) #3
  %34973 = load double, ptr %1010, align 8, !tbaa !11
  %34974 = fcmp ole double 0.000000e+00, %34973
  %34975 = zext i1 %34974 to i64
  %34976 = select i1 %34974, double 0.000000e+00, double 0.000000e+00
  store double %34976, ptr %1016, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1017) #3
  %34977 = load double, ptr %1011, align 8, !tbaa !11
  %34978 = fcmp ole double 0.000000e+00, %34977
  %34979 = zext i1 %34978 to i64
  %34980 = select i1 %34978, double 0x43F0000000000000, double 0.000000e+00
  store double %34980, ptr %1017, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1018) #3
  %34981 = load i16, ptr %1009, align 2, !tbaa !15
  %34982 = sitofp i16 %34981 to double
  %34983 = load double, ptr %1010, align 8, !tbaa !11
  %34984 = fsub double %34982, %34983
  %34985 = load double, ptr %1017, align 8, !tbaa !11
  %34986 = load double, ptr %1016, align 8, !tbaa !11
  %34987 = fsub double %34985, %34986
  %34988 = fmul double %34984, %34987
  %34989 = load double, ptr %1011, align 8, !tbaa !11
  %34990 = load double, ptr %1010, align 8, !tbaa !11
  %34991 = fsub double %34989, %34990
  %34992 = fdiv double %34988, %34991
  %34993 = load double, ptr %1016, align 8, !tbaa !11
  %34994 = fadd double %34992, %34993
  store double %34994, ptr %1018, align 8, !tbaa !11
  %34995 = load double, ptr %1016, align 8, !tbaa !11
  %34996 = load double, ptr %1018, align 8, !tbaa !11
  %34997 = fcmp ole double 0.000000e+00, %34996
  br i1 %34997, label %34998, label %35001

34998:                                            ; preds = %34972
  %34999 = load double, ptr %1018, align 8, !tbaa !11
  %35000 = fadd double %34999, 5.000000e-01
  br label %35004

35001:                                            ; preds = %34972
  %35002 = load double, ptr %1018, align 8, !tbaa !11
  %35003 = fsub double %35002, 5.000000e-01
  br label %35004

35004:                                            ; preds = %35001, %34998
  %35005 = phi double [ %35000, %34998 ], [ %35003, %35001 ]
  %35006 = fcmp olt double %34995, %35005
  br i1 %35006, label %35007, label %35061

35007:                                            ; preds = %35004
  %35008 = load double, ptr %1018, align 8, !tbaa !11
  %35009 = fcmp ole double 0.000000e+00, %35008
  br i1 %35009, label %35010, label %35013

35010:                                            ; preds = %35007
  %35011 = load double, ptr %1018, align 8, !tbaa !11
  %35012 = fadd double %35011, 5.000000e-01
  br label %35016

35013:                                            ; preds = %35007
  %35014 = load double, ptr %1018, align 8, !tbaa !11
  %35015 = fsub double %35014, 5.000000e-01
  br label %35016

35016:                                            ; preds = %35013, %35010
  %35017 = phi double [ %35012, %35010 ], [ %35015, %35013 ]
  %35018 = load double, ptr %1017, align 8, !tbaa !11
  %35019 = fcmp ole double %35017, %35018
  br i1 %35019, label %35020, label %35031

35020:                                            ; preds = %35016
  %35021 = load double, ptr %1018, align 8, !tbaa !11
  %35022 = fcmp ole double 0.000000e+00, %35021
  br i1 %35022, label %35023, label %35026

35023:                                            ; preds = %35020
  %35024 = load double, ptr %1018, align 8, !tbaa !11
  %35025 = fadd double %35024, 5.000000e-01
  br label %35029

35026:                                            ; preds = %35020
  %35027 = load double, ptr %1018, align 8, !tbaa !11
  %35028 = fsub double %35027, 5.000000e-01
  br label %35029

35029:                                            ; preds = %35026, %35023
  %35030 = phi double [ %35025, %35023 ], [ %35028, %35026 ]
  br label %35059

35031:                                            ; preds = %35016
  %35032 = load double, ptr %1018, align 8, !tbaa !11
  %35033 = fcmp ole double 0.000000e+00, %35032
  br i1 %35033, label %35034, label %35037

35034:                                            ; preds = %35031
  %35035 = load double, ptr %1018, align 8, !tbaa !11
  %35036 = fadd double %35035, 5.000000e-01
  br label %35040

35037:                                            ; preds = %35031
  %35038 = load double, ptr %1018, align 8, !tbaa !11
  %35039 = fsub double %35038, 5.000000e-01
  br label %35040

35040:                                            ; preds = %35037, %35034
  %35041 = phi double [ %35036, %35034 ], [ %35039, %35037 ]
  %35042 = load double, ptr %1017, align 8, !tbaa !11
  %35043 = fcmp olt double %35041, %35042
  br i1 %35043, label %35044, label %35055

35044:                                            ; preds = %35040
  %35045 = load double, ptr %1018, align 8, !tbaa !11
  %35046 = fcmp ole double 0.000000e+00, %35045
  br i1 %35046, label %35047, label %35050

35047:                                            ; preds = %35044
  %35048 = load double, ptr %1018, align 8, !tbaa !11
  %35049 = fadd double %35048, 5.000000e-01
  br label %35053

35050:                                            ; preds = %35044
  %35051 = load double, ptr %1018, align 8, !tbaa !11
  %35052 = fsub double %35051, 5.000000e-01
  br label %35053

35053:                                            ; preds = %35050, %35047
  %35054 = phi double [ %35049, %35047 ], [ %35052, %35050 ]
  br label %35057

35055:                                            ; preds = %35040
  %35056 = load double, ptr %1017, align 8, !tbaa !11
  br label %35057

35057:                                            ; preds = %35055, %35053
  %35058 = phi double [ %35054, %35053 ], [ %35056, %35055 ]
  br label %35059

35059:                                            ; preds = %35057, %35029
  %35060 = phi double [ %35030, %35029 ], [ %35058, %35057 ]
  br label %35089

35061:                                            ; preds = %35004
  %35062 = load double, ptr %1016, align 8, !tbaa !11
  %35063 = load double, ptr %1018, align 8, !tbaa !11
  %35064 = fcmp ole double 0.000000e+00, %35063
  br i1 %35064, label %35065, label %35068

35065:                                            ; preds = %35061
  %35066 = load double, ptr %1018, align 8, !tbaa !11
  %35067 = fadd double %35066, 5.000000e-01
  br label %35071

35068:                                            ; preds = %35061
  %35069 = load double, ptr %1018, align 8, !tbaa !11
  %35070 = fsub double %35069, 5.000000e-01
  br label %35071

35071:                                            ; preds = %35068, %35065
  %35072 = phi double [ %35067, %35065 ], [ %35070, %35068 ]
  %35073 = fcmp olt double %35062, %35072
  br i1 %35073, label %35074, label %35085

35074:                                            ; preds = %35071
  %35075 = load double, ptr %1018, align 8, !tbaa !11
  %35076 = fcmp ole double 0.000000e+00, %35075
  br i1 %35076, label %35077, label %35080

35077:                                            ; preds = %35074
  %35078 = load double, ptr %1018, align 8, !tbaa !11
  %35079 = fadd double %35078, 5.000000e-01
  br label %35083

35080:                                            ; preds = %35074
  %35081 = load double, ptr %1018, align 8, !tbaa !11
  %35082 = fsub double %35081, 5.000000e-01
  br label %35083

35083:                                            ; preds = %35080, %35077
  %35084 = phi double [ %35079, %35077 ], [ %35082, %35080 ]
  br label %35087

35085:                                            ; preds = %35071
  %35086 = load double, ptr %1016, align 8, !tbaa !11
  br label %35087

35087:                                            ; preds = %35085, %35083
  %35088 = phi double [ %35084, %35083 ], [ %35086, %35085 ]
  br label %35089

35089:                                            ; preds = %35087, %35059
  %35090 = phi double [ %35060, %35059 ], [ %35088, %35087 ]
  %35091 = fptoui double %35090 to i64
  %35092 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %35091, ptr %35092, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %1018) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1017) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1016) #3
  br label %35177

35093:                                            ; preds = %34855, %34852
  %35094 = load i32, ptr %8, align 4, !tbaa !9
  %35095 = icmp ugt i32 6, %35094
  br i1 %35095, label %35124, label %35096

35096:                                            ; preds = %35093
  %35097 = load i32, ptr %8, align 4, !tbaa !9
  %35098 = icmp ugt i32 15, %35097
  br i1 %35098, label %35099, label %35110

35099:                                            ; preds = %35096
  %35100 = load i32, ptr %9, align 4, !tbaa !9
  %35101 = icmp ugt i32 15, %35100
  br i1 %35101, label %35102, label %35107

35102:                                            ; preds = %35099
  %35103 = load i32, ptr %9, align 4, !tbaa !9
  %35104 = load i32, ptr %8, align 4, !tbaa !9
  %35105 = icmp ugt i32 %35103, %35104
  %35106 = zext i1 %35105 to i32
  br label %35108

35107:                                            ; preds = %35099
  br label %35108

35108:                                            ; preds = %35107, %35102
  %35109 = phi i32 [ %35106, %35102 ], [ 0, %35107 ]
  br label %35121

35110:                                            ; preds = %35096
  %35111 = load i32, ptr %9, align 4, !tbaa !9
  %35112 = icmp ugt i32 15, %35111
  br i1 %35112, label %35113, label %35114

35113:                                            ; preds = %35110
  br label %35119

35114:                                            ; preds = %35110
  %35115 = load i32, ptr %9, align 4, !tbaa !9
  %35116 = load i32, ptr %8, align 4, !tbaa !9
  %35117 = icmp ugt i32 %35115, %35116
  %35118 = zext i1 %35117 to i32
  br label %35119

35119:                                            ; preds = %35114, %35113
  %35120 = phi i32 [ 0, %35113 ], [ %35118, %35114 ]
  br label %35121

35121:                                            ; preds = %35119, %35108
  %35122 = phi i32 [ %35109, %35108 ], [ %35120, %35119 ]
  %35123 = icmp ne i32 %35122, 0
  br label %35124

35124:                                            ; preds = %35121, %35093
  %35125 = phi i1 [ true, %35093 ], [ %35123, %35121 ]
  %35126 = zext i1 %35125 to i32
  %35127 = icmp eq i32 0, %35126
  br i1 %35127, label %35128, label %35172

35128:                                            ; preds = %35124
  %35129 = load i16, ptr %1009, align 2, !tbaa !15
  %35130 = sext i16 %35129 to i32
  %35131 = sitofp i32 %35130 to double
  %35132 = fcmp olt double 0.000000e+00, %35131
  br i1 %35132, label %35133, label %35156

35133:                                            ; preds = %35128
  %35134 = load i16, ptr %1009, align 2, !tbaa !15
  %35135 = sext i16 %35134 to i32
  %35136 = sitofp i32 %35135 to double
  %35137 = fcmp ole double %35136, 0x43F0000000000000
  br i1 %35137, label %35138, label %35142

35138:                                            ; preds = %35133
  %35139 = load i16, ptr %1009, align 2, !tbaa !15
  %35140 = sext i16 %35139 to i32
  %35141 = sitofp i32 %35140 to double
  br label %35154

35142:                                            ; preds = %35133
  %35143 = load i16, ptr %1009, align 2, !tbaa !15
  %35144 = sext i16 %35143 to i32
  %35145 = sitofp i32 %35144 to double
  %35146 = fcmp olt double %35145, 0x43F0000000000000
  br i1 %35146, label %35147, label %35151

35147:                                            ; preds = %35142
  %35148 = load i16, ptr %1009, align 2, !tbaa !15
  %35149 = sext i16 %35148 to i32
  %35150 = sitofp i32 %35149 to double
  br label %35152

35151:                                            ; preds = %35142
  br label %35152

35152:                                            ; preds = %35151, %35147
  %35153 = phi double [ %35150, %35147 ], [ 0x43F0000000000000, %35151 ]
  br label %35154

35154:                                            ; preds = %35152, %35138
  %35155 = phi double [ %35141, %35138 ], [ %35153, %35152 ]
  br label %35168

35156:                                            ; preds = %35128
  %35157 = load i16, ptr %1009, align 2, !tbaa !15
  %35158 = sext i16 %35157 to i32
  %35159 = sitofp i32 %35158 to double
  %35160 = fcmp olt double 0.000000e+00, %35159
  br i1 %35160, label %35161, label %35165

35161:                                            ; preds = %35156
  %35162 = load i16, ptr %1009, align 2, !tbaa !15
  %35163 = sext i16 %35162 to i32
  %35164 = sitofp i32 %35163 to double
  br label %35166

35165:                                            ; preds = %35156
  br label %35166

35166:                                            ; preds = %35165, %35161
  %35167 = phi double [ %35164, %35161 ], [ 0.000000e+00, %35165 ]
  br label %35168

35168:                                            ; preds = %35166, %35154
  %35169 = phi double [ %35155, %35154 ], [ %35167, %35166 ]
  %35170 = fptoui double %35169 to i64
  %35171 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %35170, ptr %35171, align 8, !tbaa !13
  br label %35176

35172:                                            ; preds = %35124
  %35173 = load i16, ptr %1009, align 2, !tbaa !15
  %35174 = sext i16 %35173 to i64
  %35175 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %35174, ptr %35175, align 8, !tbaa !13
  br label %35176

35176:                                            ; preds = %35172, %35168
  br label %35177

35177:                                            ; preds = %35176, %35089
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1011) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1010) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %1009) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1008) #3
  br label %35178

35178:                                            ; preds = %35177
  br label %35179

35179:                                            ; preds = %35178
  br label %37748

35180:                                            ; preds = %34125
  br label %35181

35181:                                            ; preds = %35180
  call void @llvm.lifetime.start.p0(i64 8, ptr %1019) #3
  store double 5.000000e-01, ptr %1019, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %1020) #3
  %35182 = load ptr, ptr %10, align 8, !tbaa !5
  %35183 = load i8, ptr %35182, align 1, !tbaa !17
  store i8 %35183, ptr %1020, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %1021) #3
  store double 0.000000e+00, ptr %1021, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1022) #3
  store double 0.000000e+00, ptr %1022, align 8, !tbaa !11
  %35184 = load ptr, ptr %11, align 8, !tbaa !5
  %35185 = icmp ne ptr null, %35184
  br i1 %35185, label %35186, label %35212

35186:                                            ; preds = %35181
  %35187 = load ptr, ptr %12, align 8, !tbaa !5
  %35188 = icmp ne ptr null, %35187
  br i1 %35188, label %35189, label %35204

35189:                                            ; preds = %35186
  %35190 = load ptr, ptr %11, align 8, !tbaa !5
  %35191 = load i8, ptr %35190, align 1, !tbaa !17
  %35192 = sext i8 %35191 to i32
  %35193 = load i8, ptr %1020, align 1, !tbaa !17
  %35194 = sext i8 %35193 to i32
  %35195 = icmp sle i32 %35192, %35194
  br i1 %35195, label %35196, label %35204

35196:                                            ; preds = %35189
  %35197 = load i8, ptr %1020, align 1, !tbaa !17
  %35198 = sext i8 %35197 to i32
  %35199 = load ptr, ptr %12, align 8, !tbaa !5
  %35200 = load i8, ptr %35199, align 1, !tbaa !17
  %35201 = sext i8 %35200 to i32
  %35202 = icmp sle i32 %35198, %35201
  br i1 %35202, label %35203, label %35204

35203:                                            ; preds = %35196
  br label %35205

35204:                                            ; preds = %35196, %35189, %35186
  call void @__assert_fail(ptr noundef @.str.45, ptr noundef @.str.24, i32 noundef 494, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

35205:                                            ; preds = %35203
  %35206 = load ptr, ptr %11, align 8, !tbaa !5
  %35207 = load i8, ptr %35206, align 1, !tbaa !17
  %35208 = sitofp i8 %35207 to double
  store double %35208, ptr %1021, align 8, !tbaa !11
  %35209 = load ptr, ptr %12, align 8, !tbaa !5
  %35210 = load i8, ptr %35209, align 1, !tbaa !17
  %35211 = sitofp i8 %35210 to double
  store double %35211, ptr %1022, align 8, !tbaa !11
  br label %35212

35212:                                            ; preds = %35205, %35181
  %35213 = load i32, ptr %8, align 4, !tbaa !9
  %35214 = icmp ule i32 6, %35213
  br i1 %35214, label %35215, label %35453

35215:                                            ; preds = %35212
  %35216 = load double, ptr %1021, align 8, !tbaa !11
  %35217 = load double, ptr %1022, align 8, !tbaa !11
  %35218 = fcmp olt double %35216, %35217
  br i1 %35218, label %35219, label %35453

35219:                                            ; preds = %35215
  %35220 = load i32, ptr %8, align 4, !tbaa !9
  %35221 = icmp ule i32 15, %35220
  br i1 %35221, label %35222, label %35276

35222:                                            ; preds = %35219
  call void @llvm.lifetime.start.p0(i64 8, ptr %1023) #3
  %35223 = load double, ptr %1021, align 8, !tbaa !11
  %35224 = fcmp olt double 0.000000e+00, %35223
  br i1 %35224, label %35225, label %35227

35225:                                            ; preds = %35222
  %35226 = load double, ptr %1021, align 8, !tbaa !11
  br label %35228

35227:                                            ; preds = %35222
  br label %35228

35228:                                            ; preds = %35227, %35225
  %35229 = phi double [ %35226, %35225 ], [ 0.000000e+00, %35227 ]
  store double %35229, ptr %1023, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1024) #3
  %35230 = load double, ptr %1022, align 8, !tbaa !11
  %35231 = fcmp olt double 0.000000e+00, %35230
  br i1 %35231, label %35232, label %35234

35232:                                            ; preds = %35228
  %35233 = load double, ptr %1022, align 8, !tbaa !11
  br label %35235

35234:                                            ; preds = %35228
  br label %35235

35235:                                            ; preds = %35234, %35232
  %35236 = phi double [ %35233, %35232 ], [ 0.000000e+00, %35234 ]
  store double %35236, ptr %1024, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1025) #3
  %35237 = load double, ptr %1023, align 8, !tbaa !11
  %35238 = load double, ptr %1024, align 8, !tbaa !11
  %35239 = fcmp olt double %35237, %35238
  br i1 %35239, label %35240, label %35248

35240:                                            ; preds = %35235
  %35241 = load double, ptr %1022, align 8, !tbaa !11
  %35242 = load double, ptr %1021, align 8, !tbaa !11
  %35243 = fsub double %35241, %35242
  %35244 = load double, ptr %1024, align 8, !tbaa !11
  %35245 = load double, ptr %1023, align 8, !tbaa !11
  %35246 = fsub double %35244, %35245
  %35247 = fdiv double %35243, %35246
  br label %35249

35248:                                            ; preds = %35235
  br label %35249

35249:                                            ; preds = %35248, %35240
  %35250 = phi double [ %35247, %35240 ], [ 1.000000e+00, %35248 ]
  store double %35250, ptr %1025, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1026) #3
  %35251 = load double, ptr %1025, align 8, !tbaa !11
  %35252 = load i8, ptr %1020, align 1, !tbaa !17
  %35253 = sext i8 %35252 to i32
  %35254 = icmp slt i32 0, %35253
  br i1 %35254, label %35255, label %35258

35255:                                            ; preds = %35249
  %35256 = load i8, ptr %1020, align 1, !tbaa !17
  %35257 = sext i8 %35256 to i32
  br label %35259

35258:                                            ; preds = %35249
  br label %35259

35259:                                            ; preds = %35258, %35255
  %35260 = phi i32 [ %35257, %35255 ], [ 0, %35258 ]
  %35261 = sitofp i32 %35260 to double
  %35262 = fmul double %35251, %35261
  store double %35262, ptr %1026, align 8, !tbaa !11
  %35263 = load double, ptr %1026, align 8, !tbaa !11
  %35264 = fcmp ole double 0.000000e+00, %35263
  br i1 %35264, label %35265, label %35268

35265:                                            ; preds = %35259
  %35266 = load double, ptr %1026, align 8, !tbaa !11
  %35267 = fadd double %35266, 5.000000e-01
  br label %35271

35268:                                            ; preds = %35259
  %35269 = load double, ptr %1026, align 8, !tbaa !11
  %35270 = fsub double %35269, 5.000000e-01
  br label %35271

35271:                                            ; preds = %35268, %35265
  %35272 = phi double [ %35267, %35265 ], [ %35270, %35268 ]
  %35273 = fptosi double %35272 to i8
  store i8 %35273, ptr %1020, align 1, !tbaa !17
  %35274 = load double, ptr %1023, align 8, !tbaa !11
  store double %35274, ptr %1021, align 8, !tbaa !11
  %35275 = load double, ptr %1024, align 8, !tbaa !11
  store double %35275, ptr %1022, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1026) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1025) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1024) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1023) #3
  br label %35332

35276:                                            ; preds = %35219
  %35277 = load i32, ptr %8, align 4, !tbaa !9
  %35278 = icmp ugt i32 6, %35277
  br i1 %35278, label %35307, label %35279

35279:                                            ; preds = %35276
  %35280 = load i32, ptr %8, align 4, !tbaa !9
  %35281 = icmp ugt i32 15, %35280
  br i1 %35281, label %35282, label %35293

35282:                                            ; preds = %35279
  %35283 = load i32, ptr %9, align 4, !tbaa !9
  %35284 = icmp ugt i32 15, %35283
  br i1 %35284, label %35285, label %35290

35285:                                            ; preds = %35282
  %35286 = load i32, ptr %9, align 4, !tbaa !9
  %35287 = load i32, ptr %8, align 4, !tbaa !9
  %35288 = icmp ugt i32 %35286, %35287
  %35289 = zext i1 %35288 to i32
  br label %35291

35290:                                            ; preds = %35282
  br label %35291

35291:                                            ; preds = %35290, %35285
  %35292 = phi i32 [ %35289, %35285 ], [ 0, %35290 ]
  br label %35304

35293:                                            ; preds = %35279
  %35294 = load i32, ptr %9, align 4, !tbaa !9
  %35295 = icmp ugt i32 15, %35294
  br i1 %35295, label %35296, label %35297

35296:                                            ; preds = %35293
  br label %35302

35297:                                            ; preds = %35293
  %35298 = load i32, ptr %9, align 4, !tbaa !9
  %35299 = load i32, ptr %8, align 4, !tbaa !9
  %35300 = icmp ugt i32 %35298, %35299
  %35301 = zext i1 %35300 to i32
  br label %35302

35302:                                            ; preds = %35297, %35296
  %35303 = phi i32 [ 0, %35296 ], [ %35301, %35297 ]
  br label %35304

35304:                                            ; preds = %35302, %35291
  %35305 = phi i32 [ %35292, %35291 ], [ %35303, %35302 ]
  %35306 = icmp ne i32 %35305, 0
  br label %35307

35307:                                            ; preds = %35304, %35276
  %35308 = phi i1 [ true, %35276 ], [ %35306, %35304 ]
  %35309 = zext i1 %35308 to i32
  %35310 = icmp eq i32 0, %35309
  br i1 %35310, label %35311, label %35331

35311:                                            ; preds = %35307
  %35312 = load double, ptr %1021, align 8, !tbaa !11
  %35313 = fcmp ogt double 0.000000e+00, %35312
  br i1 %35313, label %35314, label %35331

35314:                                            ; preds = %35311
  %35315 = load double, ptr %1022, align 8, !tbaa !11
  %35316 = fcmp olt double 0.000000e+00, %35315
  br i1 %35316, label %35317, label %35331

35317:                                            ; preds = %35314
  %35318 = load double, ptr %1021, align 8, !tbaa !11
  %35319 = fneg double %35318
  %35320 = load double, ptr %1022, align 8, !tbaa !11
  %35321 = fcmp olt double %35319, %35320
  br i1 %35321, label %35322, label %35324

35322:                                            ; preds = %35317
  %35323 = load double, ptr %1022, align 8, !tbaa !11
  br label %35327

35324:                                            ; preds = %35317
  %35325 = load double, ptr %1021, align 8, !tbaa !11
  %35326 = fneg double %35325
  br label %35327

35327:                                            ; preds = %35324, %35322
  %35328 = phi double [ %35323, %35322 ], [ %35326, %35324 ]
  store double %35328, ptr %1022, align 8, !tbaa !11
  %35329 = load double, ptr %1022, align 8, !tbaa !11
  %35330 = fneg double %35329
  store double %35330, ptr %1021, align 8, !tbaa !11
  br label %35331

35331:                                            ; preds = %35327, %35314, %35311, %35307
  br label %35332

35332:                                            ; preds = %35331, %35271
  call void @llvm.lifetime.start.p0(i64 8, ptr %1027) #3
  %35333 = load double, ptr %1021, align 8, !tbaa !11
  %35334 = fcmp ole double 0.000000e+00, %35333
  %35335 = zext i1 %35334 to i64
  %35336 = select i1 %35334, double 0.000000e+00, double 0.000000e+00
  store double %35336, ptr %1027, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1028) #3
  %35337 = load double, ptr %1022, align 8, !tbaa !11
  %35338 = fcmp ole double 0.000000e+00, %35337
  %35339 = zext i1 %35338 to i64
  %35340 = select i1 %35338, double 0x43F0000000000000, double 0.000000e+00
  store double %35340, ptr %1028, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1029) #3
  %35341 = load i8, ptr %1020, align 1, !tbaa !17
  %35342 = sitofp i8 %35341 to double
  %35343 = load double, ptr %1021, align 8, !tbaa !11
  %35344 = fsub double %35342, %35343
  %35345 = load double, ptr %1028, align 8, !tbaa !11
  %35346 = load double, ptr %1027, align 8, !tbaa !11
  %35347 = fsub double %35345, %35346
  %35348 = fmul double %35344, %35347
  %35349 = load double, ptr %1022, align 8, !tbaa !11
  %35350 = load double, ptr %1021, align 8, !tbaa !11
  %35351 = fsub double %35349, %35350
  %35352 = fdiv double %35348, %35351
  %35353 = load double, ptr %1027, align 8, !tbaa !11
  %35354 = fadd double %35352, %35353
  store double %35354, ptr %1029, align 8, !tbaa !11
  %35355 = load double, ptr %1027, align 8, !tbaa !11
  %35356 = load double, ptr %1029, align 8, !tbaa !11
  %35357 = fcmp ole double 0.000000e+00, %35356
  br i1 %35357, label %35358, label %35361

35358:                                            ; preds = %35332
  %35359 = load double, ptr %1029, align 8, !tbaa !11
  %35360 = fadd double %35359, 5.000000e-01
  br label %35364

35361:                                            ; preds = %35332
  %35362 = load double, ptr %1029, align 8, !tbaa !11
  %35363 = fsub double %35362, 5.000000e-01
  br label %35364

35364:                                            ; preds = %35361, %35358
  %35365 = phi double [ %35360, %35358 ], [ %35363, %35361 ]
  %35366 = fcmp olt double %35355, %35365
  br i1 %35366, label %35367, label %35421

35367:                                            ; preds = %35364
  %35368 = load double, ptr %1029, align 8, !tbaa !11
  %35369 = fcmp ole double 0.000000e+00, %35368
  br i1 %35369, label %35370, label %35373

35370:                                            ; preds = %35367
  %35371 = load double, ptr %1029, align 8, !tbaa !11
  %35372 = fadd double %35371, 5.000000e-01
  br label %35376

35373:                                            ; preds = %35367
  %35374 = load double, ptr %1029, align 8, !tbaa !11
  %35375 = fsub double %35374, 5.000000e-01
  br label %35376

35376:                                            ; preds = %35373, %35370
  %35377 = phi double [ %35372, %35370 ], [ %35375, %35373 ]
  %35378 = load double, ptr %1028, align 8, !tbaa !11
  %35379 = fcmp ole double %35377, %35378
  br i1 %35379, label %35380, label %35391

35380:                                            ; preds = %35376
  %35381 = load double, ptr %1029, align 8, !tbaa !11
  %35382 = fcmp ole double 0.000000e+00, %35381
  br i1 %35382, label %35383, label %35386

35383:                                            ; preds = %35380
  %35384 = load double, ptr %1029, align 8, !tbaa !11
  %35385 = fadd double %35384, 5.000000e-01
  br label %35389

35386:                                            ; preds = %35380
  %35387 = load double, ptr %1029, align 8, !tbaa !11
  %35388 = fsub double %35387, 5.000000e-01
  br label %35389

35389:                                            ; preds = %35386, %35383
  %35390 = phi double [ %35385, %35383 ], [ %35388, %35386 ]
  br label %35419

35391:                                            ; preds = %35376
  %35392 = load double, ptr %1029, align 8, !tbaa !11
  %35393 = fcmp ole double 0.000000e+00, %35392
  br i1 %35393, label %35394, label %35397

35394:                                            ; preds = %35391
  %35395 = load double, ptr %1029, align 8, !tbaa !11
  %35396 = fadd double %35395, 5.000000e-01
  br label %35400

35397:                                            ; preds = %35391
  %35398 = load double, ptr %1029, align 8, !tbaa !11
  %35399 = fsub double %35398, 5.000000e-01
  br label %35400

35400:                                            ; preds = %35397, %35394
  %35401 = phi double [ %35396, %35394 ], [ %35399, %35397 ]
  %35402 = load double, ptr %1028, align 8, !tbaa !11
  %35403 = fcmp olt double %35401, %35402
  br i1 %35403, label %35404, label %35415

35404:                                            ; preds = %35400
  %35405 = load double, ptr %1029, align 8, !tbaa !11
  %35406 = fcmp ole double 0.000000e+00, %35405
  br i1 %35406, label %35407, label %35410

35407:                                            ; preds = %35404
  %35408 = load double, ptr %1029, align 8, !tbaa !11
  %35409 = fadd double %35408, 5.000000e-01
  br label %35413

35410:                                            ; preds = %35404
  %35411 = load double, ptr %1029, align 8, !tbaa !11
  %35412 = fsub double %35411, 5.000000e-01
  br label %35413

35413:                                            ; preds = %35410, %35407
  %35414 = phi double [ %35409, %35407 ], [ %35412, %35410 ]
  br label %35417

35415:                                            ; preds = %35400
  %35416 = load double, ptr %1028, align 8, !tbaa !11
  br label %35417

35417:                                            ; preds = %35415, %35413
  %35418 = phi double [ %35414, %35413 ], [ %35416, %35415 ]
  br label %35419

35419:                                            ; preds = %35417, %35389
  %35420 = phi double [ %35390, %35389 ], [ %35418, %35417 ]
  br label %35449

35421:                                            ; preds = %35364
  %35422 = load double, ptr %1027, align 8, !tbaa !11
  %35423 = load double, ptr %1029, align 8, !tbaa !11
  %35424 = fcmp ole double 0.000000e+00, %35423
  br i1 %35424, label %35425, label %35428

35425:                                            ; preds = %35421
  %35426 = load double, ptr %1029, align 8, !tbaa !11
  %35427 = fadd double %35426, 5.000000e-01
  br label %35431

35428:                                            ; preds = %35421
  %35429 = load double, ptr %1029, align 8, !tbaa !11
  %35430 = fsub double %35429, 5.000000e-01
  br label %35431

35431:                                            ; preds = %35428, %35425
  %35432 = phi double [ %35427, %35425 ], [ %35430, %35428 ]
  %35433 = fcmp olt double %35422, %35432
  br i1 %35433, label %35434, label %35445

35434:                                            ; preds = %35431
  %35435 = load double, ptr %1029, align 8, !tbaa !11
  %35436 = fcmp ole double 0.000000e+00, %35435
  br i1 %35436, label %35437, label %35440

35437:                                            ; preds = %35434
  %35438 = load double, ptr %1029, align 8, !tbaa !11
  %35439 = fadd double %35438, 5.000000e-01
  br label %35443

35440:                                            ; preds = %35434
  %35441 = load double, ptr %1029, align 8, !tbaa !11
  %35442 = fsub double %35441, 5.000000e-01
  br label %35443

35443:                                            ; preds = %35440, %35437
  %35444 = phi double [ %35439, %35437 ], [ %35442, %35440 ]
  br label %35447

35445:                                            ; preds = %35431
  %35446 = load double, ptr %1027, align 8, !tbaa !11
  br label %35447

35447:                                            ; preds = %35445, %35443
  %35448 = phi double [ %35444, %35443 ], [ %35446, %35445 ]
  br label %35449

35449:                                            ; preds = %35447, %35419
  %35450 = phi double [ %35420, %35419 ], [ %35448, %35447 ]
  %35451 = fptoui double %35450 to i64
  %35452 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %35451, ptr %35452, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %1029) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1028) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1027) #3
  br label %35537

35453:                                            ; preds = %35215, %35212
  %35454 = load i32, ptr %8, align 4, !tbaa !9
  %35455 = icmp ugt i32 6, %35454
  br i1 %35455, label %35484, label %35456

35456:                                            ; preds = %35453
  %35457 = load i32, ptr %8, align 4, !tbaa !9
  %35458 = icmp ugt i32 15, %35457
  br i1 %35458, label %35459, label %35470

35459:                                            ; preds = %35456
  %35460 = load i32, ptr %9, align 4, !tbaa !9
  %35461 = icmp ugt i32 15, %35460
  br i1 %35461, label %35462, label %35467

35462:                                            ; preds = %35459
  %35463 = load i32, ptr %9, align 4, !tbaa !9
  %35464 = load i32, ptr %8, align 4, !tbaa !9
  %35465 = icmp ugt i32 %35463, %35464
  %35466 = zext i1 %35465 to i32
  br label %35468

35467:                                            ; preds = %35459
  br label %35468

35468:                                            ; preds = %35467, %35462
  %35469 = phi i32 [ %35466, %35462 ], [ 0, %35467 ]
  br label %35481

35470:                                            ; preds = %35456
  %35471 = load i32, ptr %9, align 4, !tbaa !9
  %35472 = icmp ugt i32 15, %35471
  br i1 %35472, label %35473, label %35474

35473:                                            ; preds = %35470
  br label %35479

35474:                                            ; preds = %35470
  %35475 = load i32, ptr %9, align 4, !tbaa !9
  %35476 = load i32, ptr %8, align 4, !tbaa !9
  %35477 = icmp ugt i32 %35475, %35476
  %35478 = zext i1 %35477 to i32
  br label %35479

35479:                                            ; preds = %35474, %35473
  %35480 = phi i32 [ 0, %35473 ], [ %35478, %35474 ]
  br label %35481

35481:                                            ; preds = %35479, %35468
  %35482 = phi i32 [ %35469, %35468 ], [ %35480, %35479 ]
  %35483 = icmp ne i32 %35482, 0
  br label %35484

35484:                                            ; preds = %35481, %35453
  %35485 = phi i1 [ true, %35453 ], [ %35483, %35481 ]
  %35486 = zext i1 %35485 to i32
  %35487 = icmp eq i32 0, %35486
  br i1 %35487, label %35488, label %35532

35488:                                            ; preds = %35484
  %35489 = load i8, ptr %1020, align 1, !tbaa !17
  %35490 = sext i8 %35489 to i32
  %35491 = sitofp i32 %35490 to double
  %35492 = fcmp olt double 0.000000e+00, %35491
  br i1 %35492, label %35493, label %35516

35493:                                            ; preds = %35488
  %35494 = load i8, ptr %1020, align 1, !tbaa !17
  %35495 = sext i8 %35494 to i32
  %35496 = sitofp i32 %35495 to double
  %35497 = fcmp ole double %35496, 0x43F0000000000000
  br i1 %35497, label %35498, label %35502

35498:                                            ; preds = %35493
  %35499 = load i8, ptr %1020, align 1, !tbaa !17
  %35500 = sext i8 %35499 to i32
  %35501 = sitofp i32 %35500 to double
  br label %35514

35502:                                            ; preds = %35493
  %35503 = load i8, ptr %1020, align 1, !tbaa !17
  %35504 = sext i8 %35503 to i32
  %35505 = sitofp i32 %35504 to double
  %35506 = fcmp olt double %35505, 0x43F0000000000000
  br i1 %35506, label %35507, label %35511

35507:                                            ; preds = %35502
  %35508 = load i8, ptr %1020, align 1, !tbaa !17
  %35509 = sext i8 %35508 to i32
  %35510 = sitofp i32 %35509 to double
  br label %35512

35511:                                            ; preds = %35502
  br label %35512

35512:                                            ; preds = %35511, %35507
  %35513 = phi double [ %35510, %35507 ], [ 0x43F0000000000000, %35511 ]
  br label %35514

35514:                                            ; preds = %35512, %35498
  %35515 = phi double [ %35501, %35498 ], [ %35513, %35512 ]
  br label %35528

35516:                                            ; preds = %35488
  %35517 = load i8, ptr %1020, align 1, !tbaa !17
  %35518 = sext i8 %35517 to i32
  %35519 = sitofp i32 %35518 to double
  %35520 = fcmp olt double 0.000000e+00, %35519
  br i1 %35520, label %35521, label %35525

35521:                                            ; preds = %35516
  %35522 = load i8, ptr %1020, align 1, !tbaa !17
  %35523 = sext i8 %35522 to i32
  %35524 = sitofp i32 %35523 to double
  br label %35526

35525:                                            ; preds = %35516
  br label %35526

35526:                                            ; preds = %35525, %35521
  %35527 = phi double [ %35524, %35521 ], [ 0.000000e+00, %35525 ]
  br label %35528

35528:                                            ; preds = %35526, %35514
  %35529 = phi double [ %35515, %35514 ], [ %35527, %35526 ]
  %35530 = fptoui double %35529 to i64
  %35531 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %35530, ptr %35531, align 8, !tbaa !13
  br label %35536

35532:                                            ; preds = %35484
  %35533 = load i8, ptr %1020, align 1, !tbaa !17
  %35534 = sext i8 %35533 to i64
  %35535 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %35534, ptr %35535, align 8, !tbaa !13
  br label %35536

35536:                                            ; preds = %35532, %35528
  br label %35537

35537:                                            ; preds = %35536, %35449
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1022) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1021) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %1020) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1019) #3
  br label %35538

35538:                                            ; preds = %35537
  br label %35539

35539:                                            ; preds = %35538
  br label %37748

35540:                                            ; preds = %34125
  br label %35541

35541:                                            ; preds = %35540
  call void @llvm.lifetime.start.p0(i64 8, ptr %1030) #3
  store double 5.000000e-01, ptr %1030, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1031) #3
  %35542 = load ptr, ptr %10, align 8, !tbaa !5
  %35543 = load i64, ptr %35542, align 8, !tbaa !13
  store i64 %35543, ptr %1031, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %1032) #3
  store double 0.000000e+00, ptr %1032, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1033) #3
  store double 0.000000e+00, ptr %1033, align 8, !tbaa !11
  %35544 = load ptr, ptr %11, align 8, !tbaa !5
  %35545 = icmp ne ptr null, %35544
  br i1 %35545, label %35546, label %35568

35546:                                            ; preds = %35541
  %35547 = load ptr, ptr %12, align 8, !tbaa !5
  %35548 = icmp ne ptr null, %35547
  br i1 %35548, label %35549, label %35560

35549:                                            ; preds = %35546
  %35550 = load ptr, ptr %11, align 8, !tbaa !5
  %35551 = load i64, ptr %35550, align 8, !tbaa !13
  %35552 = load i64, ptr %1031, align 8, !tbaa !13
  %35553 = icmp ule i64 %35551, %35552
  br i1 %35553, label %35554, label %35560

35554:                                            ; preds = %35549
  %35555 = load i64, ptr %1031, align 8, !tbaa !13
  %35556 = load ptr, ptr %12, align 8, !tbaa !5
  %35557 = load i64, ptr %35556, align 8, !tbaa !13
  %35558 = icmp ule i64 %35555, %35557
  br i1 %35558, label %35559, label %35560

35559:                                            ; preds = %35554
  br label %35561

35560:                                            ; preds = %35554, %35549, %35546
  call void @__assert_fail(ptr noundef @.str.46, ptr noundef @.str.24, i32 noundef 494, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

35561:                                            ; preds = %35559
  %35562 = load ptr, ptr %11, align 8, !tbaa !5
  %35563 = load i64, ptr %35562, align 8, !tbaa !13
  %35564 = uitofp i64 %35563 to double
  store double %35564, ptr %1032, align 8, !tbaa !11
  %35565 = load ptr, ptr %12, align 8, !tbaa !5
  %35566 = load i64, ptr %35565, align 8, !tbaa !13
  %35567 = uitofp i64 %35566 to double
  store double %35567, ptr %1033, align 8, !tbaa !11
  br label %35568

35568:                                            ; preds = %35561, %35541
  %35569 = load i32, ptr %8, align 4, !tbaa !9
  %35570 = icmp ule i32 6, %35569
  br i1 %35570, label %35571, label %35807

35571:                                            ; preds = %35568
  %35572 = load double, ptr %1032, align 8, !tbaa !11
  %35573 = load double, ptr %1033, align 8, !tbaa !11
  %35574 = fcmp olt double %35572, %35573
  br i1 %35574, label %35575, label %35807

35575:                                            ; preds = %35571
  %35576 = load i32, ptr %8, align 4, !tbaa !9
  %35577 = icmp ule i32 15, %35576
  br i1 %35577, label %35578, label %35630

35578:                                            ; preds = %35575
  call void @llvm.lifetime.start.p0(i64 8, ptr %1034) #3
  %35579 = load double, ptr %1032, align 8, !tbaa !11
  %35580 = fcmp olt double 0.000000e+00, %35579
  br i1 %35580, label %35581, label %35583

35581:                                            ; preds = %35578
  %35582 = load double, ptr %1032, align 8, !tbaa !11
  br label %35584

35583:                                            ; preds = %35578
  br label %35584

35584:                                            ; preds = %35583, %35581
  %35585 = phi double [ %35582, %35581 ], [ 0.000000e+00, %35583 ]
  store double %35585, ptr %1034, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1035) #3
  %35586 = load double, ptr %1033, align 8, !tbaa !11
  %35587 = fcmp olt double 0.000000e+00, %35586
  br i1 %35587, label %35588, label %35590

35588:                                            ; preds = %35584
  %35589 = load double, ptr %1033, align 8, !tbaa !11
  br label %35591

35590:                                            ; preds = %35584
  br label %35591

35591:                                            ; preds = %35590, %35588
  %35592 = phi double [ %35589, %35588 ], [ 0.000000e+00, %35590 ]
  store double %35592, ptr %1035, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1036) #3
  %35593 = load double, ptr %1034, align 8, !tbaa !11
  %35594 = load double, ptr %1035, align 8, !tbaa !11
  %35595 = fcmp olt double %35593, %35594
  br i1 %35595, label %35596, label %35604

35596:                                            ; preds = %35591
  %35597 = load double, ptr %1033, align 8, !tbaa !11
  %35598 = load double, ptr %1032, align 8, !tbaa !11
  %35599 = fsub double %35597, %35598
  %35600 = load double, ptr %1035, align 8, !tbaa !11
  %35601 = load double, ptr %1034, align 8, !tbaa !11
  %35602 = fsub double %35600, %35601
  %35603 = fdiv double %35599, %35602
  br label %35605

35604:                                            ; preds = %35591
  br label %35605

35605:                                            ; preds = %35604, %35596
  %35606 = phi double [ %35603, %35596 ], [ 1.000000e+00, %35604 ]
  store double %35606, ptr %1036, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1037) #3
  %35607 = load double, ptr %1036, align 8, !tbaa !11
  %35608 = load i64, ptr %1031, align 8, !tbaa !13
  %35609 = icmp ult i64 0, %35608
  br i1 %35609, label %35610, label %35612

35610:                                            ; preds = %35605
  %35611 = load i64, ptr %1031, align 8, !tbaa !13
  br label %35613

35612:                                            ; preds = %35605
  br label %35613

35613:                                            ; preds = %35612, %35610
  %35614 = phi i64 [ %35611, %35610 ], [ 0, %35612 ]
  %35615 = uitofp i64 %35614 to double
  %35616 = fmul double %35607, %35615
  store double %35616, ptr %1037, align 8, !tbaa !11
  %35617 = load double, ptr %1037, align 8, !tbaa !11
  %35618 = fcmp ole double 0.000000e+00, %35617
  br i1 %35618, label %35619, label %35622

35619:                                            ; preds = %35613
  %35620 = load double, ptr %1037, align 8, !tbaa !11
  %35621 = fadd double %35620, 5.000000e-01
  br label %35625

35622:                                            ; preds = %35613
  %35623 = load double, ptr %1037, align 8, !tbaa !11
  %35624 = fsub double %35623, 5.000000e-01
  br label %35625

35625:                                            ; preds = %35622, %35619
  %35626 = phi double [ %35621, %35619 ], [ %35624, %35622 ]
  %35627 = fptoui double %35626 to i64
  store i64 %35627, ptr %1031, align 8, !tbaa !13
  %35628 = load double, ptr %1034, align 8, !tbaa !11
  store double %35628, ptr %1032, align 8, !tbaa !11
  %35629 = load double, ptr %1035, align 8, !tbaa !11
  store double %35629, ptr %1033, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1037) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1036) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1035) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1034) #3
  br label %35686

35630:                                            ; preds = %35575
  %35631 = load i32, ptr %8, align 4, !tbaa !9
  %35632 = icmp ugt i32 6, %35631
  br i1 %35632, label %35661, label %35633

35633:                                            ; preds = %35630
  %35634 = load i32, ptr %8, align 4, !tbaa !9
  %35635 = icmp ugt i32 15, %35634
  br i1 %35635, label %35636, label %35647

35636:                                            ; preds = %35633
  %35637 = load i32, ptr %9, align 4, !tbaa !9
  %35638 = icmp ugt i32 15, %35637
  br i1 %35638, label %35639, label %35644

35639:                                            ; preds = %35636
  %35640 = load i32, ptr %9, align 4, !tbaa !9
  %35641 = load i32, ptr %8, align 4, !tbaa !9
  %35642 = icmp ugt i32 %35640, %35641
  %35643 = zext i1 %35642 to i32
  br label %35645

35644:                                            ; preds = %35636
  br label %35645

35645:                                            ; preds = %35644, %35639
  %35646 = phi i32 [ %35643, %35639 ], [ 0, %35644 ]
  br label %35658

35647:                                            ; preds = %35633
  %35648 = load i32, ptr %9, align 4, !tbaa !9
  %35649 = icmp ugt i32 15, %35648
  br i1 %35649, label %35650, label %35651

35650:                                            ; preds = %35647
  br label %35656

35651:                                            ; preds = %35647
  %35652 = load i32, ptr %9, align 4, !tbaa !9
  %35653 = load i32, ptr %8, align 4, !tbaa !9
  %35654 = icmp ugt i32 %35652, %35653
  %35655 = zext i1 %35654 to i32
  br label %35656

35656:                                            ; preds = %35651, %35650
  %35657 = phi i32 [ 0, %35650 ], [ %35655, %35651 ]
  br label %35658

35658:                                            ; preds = %35656, %35645
  %35659 = phi i32 [ %35646, %35645 ], [ %35657, %35656 ]
  %35660 = icmp ne i32 %35659, 0
  br label %35661

35661:                                            ; preds = %35658, %35630
  %35662 = phi i1 [ true, %35630 ], [ %35660, %35658 ]
  %35663 = zext i1 %35662 to i32
  %35664 = icmp eq i32 0, %35663
  br i1 %35664, label %35665, label %35685

35665:                                            ; preds = %35661
  %35666 = load double, ptr %1032, align 8, !tbaa !11
  %35667 = fcmp ogt double 0.000000e+00, %35666
  br i1 %35667, label %35668, label %35685

35668:                                            ; preds = %35665
  %35669 = load double, ptr %1033, align 8, !tbaa !11
  %35670 = fcmp olt double 0.000000e+00, %35669
  br i1 %35670, label %35671, label %35685

35671:                                            ; preds = %35668
  %35672 = load double, ptr %1032, align 8, !tbaa !11
  %35673 = fneg double %35672
  %35674 = load double, ptr %1033, align 8, !tbaa !11
  %35675 = fcmp olt double %35673, %35674
  br i1 %35675, label %35676, label %35678

35676:                                            ; preds = %35671
  %35677 = load double, ptr %1033, align 8, !tbaa !11
  br label %35681

35678:                                            ; preds = %35671
  %35679 = load double, ptr %1032, align 8, !tbaa !11
  %35680 = fneg double %35679
  br label %35681

35681:                                            ; preds = %35678, %35676
  %35682 = phi double [ %35677, %35676 ], [ %35680, %35678 ]
  store double %35682, ptr %1033, align 8, !tbaa !11
  %35683 = load double, ptr %1033, align 8, !tbaa !11
  %35684 = fneg double %35683
  store double %35684, ptr %1032, align 8, !tbaa !11
  br label %35685

35685:                                            ; preds = %35681, %35668, %35665, %35661
  br label %35686

35686:                                            ; preds = %35685, %35625
  call void @llvm.lifetime.start.p0(i64 8, ptr %1038) #3
  %35687 = load double, ptr %1032, align 8, !tbaa !11
  %35688 = fcmp ole double 0.000000e+00, %35687
  %35689 = zext i1 %35688 to i64
  %35690 = select i1 %35688, double 0.000000e+00, double 0.000000e+00
  store double %35690, ptr %1038, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1039) #3
  %35691 = load double, ptr %1033, align 8, !tbaa !11
  %35692 = fcmp ole double 0.000000e+00, %35691
  %35693 = zext i1 %35692 to i64
  %35694 = select i1 %35692, double 0x43F0000000000000, double 0.000000e+00
  store double %35694, ptr %1039, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1040) #3
  %35695 = load i64, ptr %1031, align 8, !tbaa !13
  %35696 = uitofp i64 %35695 to double
  %35697 = load double, ptr %1032, align 8, !tbaa !11
  %35698 = fsub double %35696, %35697
  %35699 = load double, ptr %1039, align 8, !tbaa !11
  %35700 = load double, ptr %1038, align 8, !tbaa !11
  %35701 = fsub double %35699, %35700
  %35702 = fmul double %35698, %35701
  %35703 = load double, ptr %1033, align 8, !tbaa !11
  %35704 = load double, ptr %1032, align 8, !tbaa !11
  %35705 = fsub double %35703, %35704
  %35706 = fdiv double %35702, %35705
  %35707 = load double, ptr %1038, align 8, !tbaa !11
  %35708 = fadd double %35706, %35707
  store double %35708, ptr %1040, align 8, !tbaa !11
  %35709 = load double, ptr %1038, align 8, !tbaa !11
  %35710 = load double, ptr %1040, align 8, !tbaa !11
  %35711 = fcmp ole double 0.000000e+00, %35710
  br i1 %35711, label %35712, label %35715

35712:                                            ; preds = %35686
  %35713 = load double, ptr %1040, align 8, !tbaa !11
  %35714 = fadd double %35713, 5.000000e-01
  br label %35718

35715:                                            ; preds = %35686
  %35716 = load double, ptr %1040, align 8, !tbaa !11
  %35717 = fsub double %35716, 5.000000e-01
  br label %35718

35718:                                            ; preds = %35715, %35712
  %35719 = phi double [ %35714, %35712 ], [ %35717, %35715 ]
  %35720 = fcmp olt double %35709, %35719
  br i1 %35720, label %35721, label %35775

35721:                                            ; preds = %35718
  %35722 = load double, ptr %1040, align 8, !tbaa !11
  %35723 = fcmp ole double 0.000000e+00, %35722
  br i1 %35723, label %35724, label %35727

35724:                                            ; preds = %35721
  %35725 = load double, ptr %1040, align 8, !tbaa !11
  %35726 = fadd double %35725, 5.000000e-01
  br label %35730

35727:                                            ; preds = %35721
  %35728 = load double, ptr %1040, align 8, !tbaa !11
  %35729 = fsub double %35728, 5.000000e-01
  br label %35730

35730:                                            ; preds = %35727, %35724
  %35731 = phi double [ %35726, %35724 ], [ %35729, %35727 ]
  %35732 = load double, ptr %1039, align 8, !tbaa !11
  %35733 = fcmp ole double %35731, %35732
  br i1 %35733, label %35734, label %35745

35734:                                            ; preds = %35730
  %35735 = load double, ptr %1040, align 8, !tbaa !11
  %35736 = fcmp ole double 0.000000e+00, %35735
  br i1 %35736, label %35737, label %35740

35737:                                            ; preds = %35734
  %35738 = load double, ptr %1040, align 8, !tbaa !11
  %35739 = fadd double %35738, 5.000000e-01
  br label %35743

35740:                                            ; preds = %35734
  %35741 = load double, ptr %1040, align 8, !tbaa !11
  %35742 = fsub double %35741, 5.000000e-01
  br label %35743

35743:                                            ; preds = %35740, %35737
  %35744 = phi double [ %35739, %35737 ], [ %35742, %35740 ]
  br label %35773

35745:                                            ; preds = %35730
  %35746 = load double, ptr %1040, align 8, !tbaa !11
  %35747 = fcmp ole double 0.000000e+00, %35746
  br i1 %35747, label %35748, label %35751

35748:                                            ; preds = %35745
  %35749 = load double, ptr %1040, align 8, !tbaa !11
  %35750 = fadd double %35749, 5.000000e-01
  br label %35754

35751:                                            ; preds = %35745
  %35752 = load double, ptr %1040, align 8, !tbaa !11
  %35753 = fsub double %35752, 5.000000e-01
  br label %35754

35754:                                            ; preds = %35751, %35748
  %35755 = phi double [ %35750, %35748 ], [ %35753, %35751 ]
  %35756 = load double, ptr %1039, align 8, !tbaa !11
  %35757 = fcmp olt double %35755, %35756
  br i1 %35757, label %35758, label %35769

35758:                                            ; preds = %35754
  %35759 = load double, ptr %1040, align 8, !tbaa !11
  %35760 = fcmp ole double 0.000000e+00, %35759
  br i1 %35760, label %35761, label %35764

35761:                                            ; preds = %35758
  %35762 = load double, ptr %1040, align 8, !tbaa !11
  %35763 = fadd double %35762, 5.000000e-01
  br label %35767

35764:                                            ; preds = %35758
  %35765 = load double, ptr %1040, align 8, !tbaa !11
  %35766 = fsub double %35765, 5.000000e-01
  br label %35767

35767:                                            ; preds = %35764, %35761
  %35768 = phi double [ %35763, %35761 ], [ %35766, %35764 ]
  br label %35771

35769:                                            ; preds = %35754
  %35770 = load double, ptr %1039, align 8, !tbaa !11
  br label %35771

35771:                                            ; preds = %35769, %35767
  %35772 = phi double [ %35768, %35767 ], [ %35770, %35769 ]
  br label %35773

35773:                                            ; preds = %35771, %35743
  %35774 = phi double [ %35744, %35743 ], [ %35772, %35771 ]
  br label %35803

35775:                                            ; preds = %35718
  %35776 = load double, ptr %1038, align 8, !tbaa !11
  %35777 = load double, ptr %1040, align 8, !tbaa !11
  %35778 = fcmp ole double 0.000000e+00, %35777
  br i1 %35778, label %35779, label %35782

35779:                                            ; preds = %35775
  %35780 = load double, ptr %1040, align 8, !tbaa !11
  %35781 = fadd double %35780, 5.000000e-01
  br label %35785

35782:                                            ; preds = %35775
  %35783 = load double, ptr %1040, align 8, !tbaa !11
  %35784 = fsub double %35783, 5.000000e-01
  br label %35785

35785:                                            ; preds = %35782, %35779
  %35786 = phi double [ %35781, %35779 ], [ %35784, %35782 ]
  %35787 = fcmp olt double %35776, %35786
  br i1 %35787, label %35788, label %35799

35788:                                            ; preds = %35785
  %35789 = load double, ptr %1040, align 8, !tbaa !11
  %35790 = fcmp ole double 0.000000e+00, %35789
  br i1 %35790, label %35791, label %35794

35791:                                            ; preds = %35788
  %35792 = load double, ptr %1040, align 8, !tbaa !11
  %35793 = fadd double %35792, 5.000000e-01
  br label %35797

35794:                                            ; preds = %35788
  %35795 = load double, ptr %1040, align 8, !tbaa !11
  %35796 = fsub double %35795, 5.000000e-01
  br label %35797

35797:                                            ; preds = %35794, %35791
  %35798 = phi double [ %35793, %35791 ], [ %35796, %35794 ]
  br label %35801

35799:                                            ; preds = %35785
  %35800 = load double, ptr %1038, align 8, !tbaa !11
  br label %35801

35801:                                            ; preds = %35799, %35797
  %35802 = phi double [ %35798, %35797 ], [ %35800, %35799 ]
  br label %35803

35803:                                            ; preds = %35801, %35773
  %35804 = phi double [ %35774, %35773 ], [ %35802, %35801 ]
  %35805 = fptoui double %35804 to i64
  %35806 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %35805, ptr %35806, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %1040) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1039) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1038) #3
  br label %35883

35807:                                            ; preds = %35571, %35568
  %35808 = load i32, ptr %8, align 4, !tbaa !9
  %35809 = icmp ugt i32 6, %35808
  br i1 %35809, label %35838, label %35810

35810:                                            ; preds = %35807
  %35811 = load i32, ptr %8, align 4, !tbaa !9
  %35812 = icmp ugt i32 15, %35811
  br i1 %35812, label %35813, label %35824

35813:                                            ; preds = %35810
  %35814 = load i32, ptr %9, align 4, !tbaa !9
  %35815 = icmp ugt i32 15, %35814
  br i1 %35815, label %35816, label %35821

35816:                                            ; preds = %35813
  %35817 = load i32, ptr %9, align 4, !tbaa !9
  %35818 = load i32, ptr %8, align 4, !tbaa !9
  %35819 = icmp ugt i32 %35817, %35818
  %35820 = zext i1 %35819 to i32
  br label %35822

35821:                                            ; preds = %35813
  br label %35822

35822:                                            ; preds = %35821, %35816
  %35823 = phi i32 [ %35820, %35816 ], [ 0, %35821 ]
  br label %35835

35824:                                            ; preds = %35810
  %35825 = load i32, ptr %9, align 4, !tbaa !9
  %35826 = icmp ugt i32 15, %35825
  br i1 %35826, label %35827, label %35828

35827:                                            ; preds = %35824
  br label %35833

35828:                                            ; preds = %35824
  %35829 = load i32, ptr %9, align 4, !tbaa !9
  %35830 = load i32, ptr %8, align 4, !tbaa !9
  %35831 = icmp ugt i32 %35829, %35830
  %35832 = zext i1 %35831 to i32
  br label %35833

35833:                                            ; preds = %35828, %35827
  %35834 = phi i32 [ 0, %35827 ], [ %35832, %35828 ]
  br label %35835

35835:                                            ; preds = %35833, %35822
  %35836 = phi i32 [ %35823, %35822 ], [ %35834, %35833 ]
  %35837 = icmp ne i32 %35836, 0
  br label %35838

35838:                                            ; preds = %35835, %35807
  %35839 = phi i1 [ true, %35807 ], [ %35837, %35835 ]
  %35840 = zext i1 %35839 to i32
  %35841 = icmp eq i32 0, %35840
  br i1 %35841, label %35842, label %35879

35842:                                            ; preds = %35838
  %35843 = load i64, ptr %1031, align 8, !tbaa !13
  %35844 = uitofp i64 %35843 to double
  %35845 = fcmp olt double 0.000000e+00, %35844
  br i1 %35845, label %35846, label %35865

35846:                                            ; preds = %35842
  %35847 = load i64, ptr %1031, align 8, !tbaa !13
  %35848 = uitofp i64 %35847 to double
  %35849 = fcmp ole double %35848, 0x43F0000000000000
  br i1 %35849, label %35850, label %35853

35850:                                            ; preds = %35846
  %35851 = load i64, ptr %1031, align 8, !tbaa !13
  %35852 = uitofp i64 %35851 to double
  br label %35863

35853:                                            ; preds = %35846
  %35854 = load i64, ptr %1031, align 8, !tbaa !13
  %35855 = uitofp i64 %35854 to double
  %35856 = fcmp olt double %35855, 0x43F0000000000000
  br i1 %35856, label %35857, label %35860

35857:                                            ; preds = %35853
  %35858 = load i64, ptr %1031, align 8, !tbaa !13
  %35859 = uitofp i64 %35858 to double
  br label %35861

35860:                                            ; preds = %35853
  br label %35861

35861:                                            ; preds = %35860, %35857
  %35862 = phi double [ %35859, %35857 ], [ 0x43F0000000000000, %35860 ]
  br label %35863

35863:                                            ; preds = %35861, %35850
  %35864 = phi double [ %35852, %35850 ], [ %35862, %35861 ]
  br label %35875

35865:                                            ; preds = %35842
  %35866 = load i64, ptr %1031, align 8, !tbaa !13
  %35867 = uitofp i64 %35866 to double
  %35868 = fcmp olt double 0.000000e+00, %35867
  br i1 %35868, label %35869, label %35872

35869:                                            ; preds = %35865
  %35870 = load i64, ptr %1031, align 8, !tbaa !13
  %35871 = uitofp i64 %35870 to double
  br label %35873

35872:                                            ; preds = %35865
  br label %35873

35873:                                            ; preds = %35872, %35869
  %35874 = phi double [ %35871, %35869 ], [ 0.000000e+00, %35872 ]
  br label %35875

35875:                                            ; preds = %35873, %35863
  %35876 = phi double [ %35864, %35863 ], [ %35874, %35873 ]
  %35877 = fptoui double %35876 to i64
  %35878 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %35877, ptr %35878, align 8, !tbaa !13
  br label %35882

35879:                                            ; preds = %35838
  %35880 = load i64, ptr %1031, align 8, !tbaa !13
  %35881 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %35880, ptr %35881, align 8, !tbaa !13
  br label %35882

35882:                                            ; preds = %35879, %35875
  br label %35883

35883:                                            ; preds = %35882, %35803
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1033) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1032) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1031) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1030) #3
  br label %35884

35884:                                            ; preds = %35883
  br label %35885

35885:                                            ; preds = %35884
  br label %37748

35886:                                            ; preds = %34125
  br label %35887

35887:                                            ; preds = %35886
  call void @llvm.lifetime.start.p0(i64 8, ptr %1041) #3
  store double 5.000000e-01, ptr %1041, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %1042) #3
  %35888 = load ptr, ptr %10, align 8, !tbaa !5
  %35889 = load i32, ptr %35888, align 4, !tbaa !9
  store i32 %35889, ptr %1042, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1043) #3
  store double 0.000000e+00, ptr %1043, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1044) #3
  store double 0.000000e+00, ptr %1044, align 8, !tbaa !11
  %35890 = load ptr, ptr %11, align 8, !tbaa !5
  %35891 = icmp ne ptr null, %35890
  br i1 %35891, label %35892, label %35914

35892:                                            ; preds = %35887
  %35893 = load ptr, ptr %12, align 8, !tbaa !5
  %35894 = icmp ne ptr null, %35893
  br i1 %35894, label %35895, label %35906

35895:                                            ; preds = %35892
  %35896 = load ptr, ptr %11, align 8, !tbaa !5
  %35897 = load i32, ptr %35896, align 4, !tbaa !9
  %35898 = load i32, ptr %1042, align 4, !tbaa !9
  %35899 = icmp ule i32 %35897, %35898
  br i1 %35899, label %35900, label %35906

35900:                                            ; preds = %35895
  %35901 = load i32, ptr %1042, align 4, !tbaa !9
  %35902 = load ptr, ptr %12, align 8, !tbaa !5
  %35903 = load i32, ptr %35902, align 4, !tbaa !9
  %35904 = icmp ule i32 %35901, %35903
  br i1 %35904, label %35905, label %35906

35905:                                            ; preds = %35900
  br label %35907

35906:                                            ; preds = %35900, %35895, %35892
  call void @__assert_fail(ptr noundef @.str.47, ptr noundef @.str.24, i32 noundef 494, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

35907:                                            ; preds = %35905
  %35908 = load ptr, ptr %11, align 8, !tbaa !5
  %35909 = load i32, ptr %35908, align 4, !tbaa !9
  %35910 = uitofp i32 %35909 to double
  store double %35910, ptr %1043, align 8, !tbaa !11
  %35911 = load ptr, ptr %12, align 8, !tbaa !5
  %35912 = load i32, ptr %35911, align 4, !tbaa !9
  %35913 = uitofp i32 %35912 to double
  store double %35913, ptr %1044, align 8, !tbaa !11
  br label %35914

35914:                                            ; preds = %35907, %35887
  %35915 = load i32, ptr %8, align 4, !tbaa !9
  %35916 = icmp ule i32 6, %35915
  br i1 %35916, label %35917, label %36153

35917:                                            ; preds = %35914
  %35918 = load double, ptr %1043, align 8, !tbaa !11
  %35919 = load double, ptr %1044, align 8, !tbaa !11
  %35920 = fcmp olt double %35918, %35919
  br i1 %35920, label %35921, label %36153

35921:                                            ; preds = %35917
  %35922 = load i32, ptr %8, align 4, !tbaa !9
  %35923 = icmp ule i32 15, %35922
  br i1 %35923, label %35924, label %35976

35924:                                            ; preds = %35921
  call void @llvm.lifetime.start.p0(i64 8, ptr %1045) #3
  %35925 = load double, ptr %1043, align 8, !tbaa !11
  %35926 = fcmp olt double 0.000000e+00, %35925
  br i1 %35926, label %35927, label %35929

35927:                                            ; preds = %35924
  %35928 = load double, ptr %1043, align 8, !tbaa !11
  br label %35930

35929:                                            ; preds = %35924
  br label %35930

35930:                                            ; preds = %35929, %35927
  %35931 = phi double [ %35928, %35927 ], [ 0.000000e+00, %35929 ]
  store double %35931, ptr %1045, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1046) #3
  %35932 = load double, ptr %1044, align 8, !tbaa !11
  %35933 = fcmp olt double 0.000000e+00, %35932
  br i1 %35933, label %35934, label %35936

35934:                                            ; preds = %35930
  %35935 = load double, ptr %1044, align 8, !tbaa !11
  br label %35937

35936:                                            ; preds = %35930
  br label %35937

35937:                                            ; preds = %35936, %35934
  %35938 = phi double [ %35935, %35934 ], [ 0.000000e+00, %35936 ]
  store double %35938, ptr %1046, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1047) #3
  %35939 = load double, ptr %1045, align 8, !tbaa !11
  %35940 = load double, ptr %1046, align 8, !tbaa !11
  %35941 = fcmp olt double %35939, %35940
  br i1 %35941, label %35942, label %35950

35942:                                            ; preds = %35937
  %35943 = load double, ptr %1044, align 8, !tbaa !11
  %35944 = load double, ptr %1043, align 8, !tbaa !11
  %35945 = fsub double %35943, %35944
  %35946 = load double, ptr %1046, align 8, !tbaa !11
  %35947 = load double, ptr %1045, align 8, !tbaa !11
  %35948 = fsub double %35946, %35947
  %35949 = fdiv double %35945, %35948
  br label %35951

35950:                                            ; preds = %35937
  br label %35951

35951:                                            ; preds = %35950, %35942
  %35952 = phi double [ %35949, %35942 ], [ 1.000000e+00, %35950 ]
  store double %35952, ptr %1047, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1048) #3
  %35953 = load double, ptr %1047, align 8, !tbaa !11
  %35954 = load i32, ptr %1042, align 4, !tbaa !9
  %35955 = icmp ult i32 0, %35954
  br i1 %35955, label %35956, label %35958

35956:                                            ; preds = %35951
  %35957 = load i32, ptr %1042, align 4, !tbaa !9
  br label %35959

35958:                                            ; preds = %35951
  br label %35959

35959:                                            ; preds = %35958, %35956
  %35960 = phi i32 [ %35957, %35956 ], [ 0, %35958 ]
  %35961 = uitofp i32 %35960 to double
  %35962 = fmul double %35953, %35961
  store double %35962, ptr %1048, align 8, !tbaa !11
  %35963 = load double, ptr %1048, align 8, !tbaa !11
  %35964 = fcmp ole double 0.000000e+00, %35963
  br i1 %35964, label %35965, label %35968

35965:                                            ; preds = %35959
  %35966 = load double, ptr %1048, align 8, !tbaa !11
  %35967 = fadd double %35966, 5.000000e-01
  br label %35971

35968:                                            ; preds = %35959
  %35969 = load double, ptr %1048, align 8, !tbaa !11
  %35970 = fsub double %35969, 5.000000e-01
  br label %35971

35971:                                            ; preds = %35968, %35965
  %35972 = phi double [ %35967, %35965 ], [ %35970, %35968 ]
  %35973 = fptoui double %35972 to i32
  store i32 %35973, ptr %1042, align 4, !tbaa !9
  %35974 = load double, ptr %1045, align 8, !tbaa !11
  store double %35974, ptr %1043, align 8, !tbaa !11
  %35975 = load double, ptr %1046, align 8, !tbaa !11
  store double %35975, ptr %1044, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1048) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1047) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1046) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1045) #3
  br label %36032

35976:                                            ; preds = %35921
  %35977 = load i32, ptr %8, align 4, !tbaa !9
  %35978 = icmp ugt i32 6, %35977
  br i1 %35978, label %36007, label %35979

35979:                                            ; preds = %35976
  %35980 = load i32, ptr %8, align 4, !tbaa !9
  %35981 = icmp ugt i32 15, %35980
  br i1 %35981, label %35982, label %35993

35982:                                            ; preds = %35979
  %35983 = load i32, ptr %9, align 4, !tbaa !9
  %35984 = icmp ugt i32 15, %35983
  br i1 %35984, label %35985, label %35990

35985:                                            ; preds = %35982
  %35986 = load i32, ptr %9, align 4, !tbaa !9
  %35987 = load i32, ptr %8, align 4, !tbaa !9
  %35988 = icmp ugt i32 %35986, %35987
  %35989 = zext i1 %35988 to i32
  br label %35991

35990:                                            ; preds = %35982
  br label %35991

35991:                                            ; preds = %35990, %35985
  %35992 = phi i32 [ %35989, %35985 ], [ 0, %35990 ]
  br label %36004

35993:                                            ; preds = %35979
  %35994 = load i32, ptr %9, align 4, !tbaa !9
  %35995 = icmp ugt i32 15, %35994
  br i1 %35995, label %35996, label %35997

35996:                                            ; preds = %35993
  br label %36002

35997:                                            ; preds = %35993
  %35998 = load i32, ptr %9, align 4, !tbaa !9
  %35999 = load i32, ptr %8, align 4, !tbaa !9
  %36000 = icmp ugt i32 %35998, %35999
  %36001 = zext i1 %36000 to i32
  br label %36002

36002:                                            ; preds = %35997, %35996
  %36003 = phi i32 [ 0, %35996 ], [ %36001, %35997 ]
  br label %36004

36004:                                            ; preds = %36002, %35991
  %36005 = phi i32 [ %35992, %35991 ], [ %36003, %36002 ]
  %36006 = icmp ne i32 %36005, 0
  br label %36007

36007:                                            ; preds = %36004, %35976
  %36008 = phi i1 [ true, %35976 ], [ %36006, %36004 ]
  %36009 = zext i1 %36008 to i32
  %36010 = icmp eq i32 0, %36009
  br i1 %36010, label %36011, label %36031

36011:                                            ; preds = %36007
  %36012 = load double, ptr %1043, align 8, !tbaa !11
  %36013 = fcmp ogt double 0.000000e+00, %36012
  br i1 %36013, label %36014, label %36031

36014:                                            ; preds = %36011
  %36015 = load double, ptr %1044, align 8, !tbaa !11
  %36016 = fcmp olt double 0.000000e+00, %36015
  br i1 %36016, label %36017, label %36031

36017:                                            ; preds = %36014
  %36018 = load double, ptr %1043, align 8, !tbaa !11
  %36019 = fneg double %36018
  %36020 = load double, ptr %1044, align 8, !tbaa !11
  %36021 = fcmp olt double %36019, %36020
  br i1 %36021, label %36022, label %36024

36022:                                            ; preds = %36017
  %36023 = load double, ptr %1044, align 8, !tbaa !11
  br label %36027

36024:                                            ; preds = %36017
  %36025 = load double, ptr %1043, align 8, !tbaa !11
  %36026 = fneg double %36025
  br label %36027

36027:                                            ; preds = %36024, %36022
  %36028 = phi double [ %36023, %36022 ], [ %36026, %36024 ]
  store double %36028, ptr %1044, align 8, !tbaa !11
  %36029 = load double, ptr %1044, align 8, !tbaa !11
  %36030 = fneg double %36029
  store double %36030, ptr %1043, align 8, !tbaa !11
  br label %36031

36031:                                            ; preds = %36027, %36014, %36011, %36007
  br label %36032

36032:                                            ; preds = %36031, %35971
  call void @llvm.lifetime.start.p0(i64 8, ptr %1049) #3
  %36033 = load double, ptr %1043, align 8, !tbaa !11
  %36034 = fcmp ole double 0.000000e+00, %36033
  %36035 = zext i1 %36034 to i64
  %36036 = select i1 %36034, double 0.000000e+00, double 0.000000e+00
  store double %36036, ptr %1049, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1050) #3
  %36037 = load double, ptr %1044, align 8, !tbaa !11
  %36038 = fcmp ole double 0.000000e+00, %36037
  %36039 = zext i1 %36038 to i64
  %36040 = select i1 %36038, double 0x43F0000000000000, double 0.000000e+00
  store double %36040, ptr %1050, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1051) #3
  %36041 = load i32, ptr %1042, align 4, !tbaa !9
  %36042 = uitofp i32 %36041 to double
  %36043 = load double, ptr %1043, align 8, !tbaa !11
  %36044 = fsub double %36042, %36043
  %36045 = load double, ptr %1050, align 8, !tbaa !11
  %36046 = load double, ptr %1049, align 8, !tbaa !11
  %36047 = fsub double %36045, %36046
  %36048 = fmul double %36044, %36047
  %36049 = load double, ptr %1044, align 8, !tbaa !11
  %36050 = load double, ptr %1043, align 8, !tbaa !11
  %36051 = fsub double %36049, %36050
  %36052 = fdiv double %36048, %36051
  %36053 = load double, ptr %1049, align 8, !tbaa !11
  %36054 = fadd double %36052, %36053
  store double %36054, ptr %1051, align 8, !tbaa !11
  %36055 = load double, ptr %1049, align 8, !tbaa !11
  %36056 = load double, ptr %1051, align 8, !tbaa !11
  %36057 = fcmp ole double 0.000000e+00, %36056
  br i1 %36057, label %36058, label %36061

36058:                                            ; preds = %36032
  %36059 = load double, ptr %1051, align 8, !tbaa !11
  %36060 = fadd double %36059, 5.000000e-01
  br label %36064

36061:                                            ; preds = %36032
  %36062 = load double, ptr %1051, align 8, !tbaa !11
  %36063 = fsub double %36062, 5.000000e-01
  br label %36064

36064:                                            ; preds = %36061, %36058
  %36065 = phi double [ %36060, %36058 ], [ %36063, %36061 ]
  %36066 = fcmp olt double %36055, %36065
  br i1 %36066, label %36067, label %36121

36067:                                            ; preds = %36064
  %36068 = load double, ptr %1051, align 8, !tbaa !11
  %36069 = fcmp ole double 0.000000e+00, %36068
  br i1 %36069, label %36070, label %36073

36070:                                            ; preds = %36067
  %36071 = load double, ptr %1051, align 8, !tbaa !11
  %36072 = fadd double %36071, 5.000000e-01
  br label %36076

36073:                                            ; preds = %36067
  %36074 = load double, ptr %1051, align 8, !tbaa !11
  %36075 = fsub double %36074, 5.000000e-01
  br label %36076

36076:                                            ; preds = %36073, %36070
  %36077 = phi double [ %36072, %36070 ], [ %36075, %36073 ]
  %36078 = load double, ptr %1050, align 8, !tbaa !11
  %36079 = fcmp ole double %36077, %36078
  br i1 %36079, label %36080, label %36091

36080:                                            ; preds = %36076
  %36081 = load double, ptr %1051, align 8, !tbaa !11
  %36082 = fcmp ole double 0.000000e+00, %36081
  br i1 %36082, label %36083, label %36086

36083:                                            ; preds = %36080
  %36084 = load double, ptr %1051, align 8, !tbaa !11
  %36085 = fadd double %36084, 5.000000e-01
  br label %36089

36086:                                            ; preds = %36080
  %36087 = load double, ptr %1051, align 8, !tbaa !11
  %36088 = fsub double %36087, 5.000000e-01
  br label %36089

36089:                                            ; preds = %36086, %36083
  %36090 = phi double [ %36085, %36083 ], [ %36088, %36086 ]
  br label %36119

36091:                                            ; preds = %36076
  %36092 = load double, ptr %1051, align 8, !tbaa !11
  %36093 = fcmp ole double 0.000000e+00, %36092
  br i1 %36093, label %36094, label %36097

36094:                                            ; preds = %36091
  %36095 = load double, ptr %1051, align 8, !tbaa !11
  %36096 = fadd double %36095, 5.000000e-01
  br label %36100

36097:                                            ; preds = %36091
  %36098 = load double, ptr %1051, align 8, !tbaa !11
  %36099 = fsub double %36098, 5.000000e-01
  br label %36100

36100:                                            ; preds = %36097, %36094
  %36101 = phi double [ %36096, %36094 ], [ %36099, %36097 ]
  %36102 = load double, ptr %1050, align 8, !tbaa !11
  %36103 = fcmp olt double %36101, %36102
  br i1 %36103, label %36104, label %36115

36104:                                            ; preds = %36100
  %36105 = load double, ptr %1051, align 8, !tbaa !11
  %36106 = fcmp ole double 0.000000e+00, %36105
  br i1 %36106, label %36107, label %36110

36107:                                            ; preds = %36104
  %36108 = load double, ptr %1051, align 8, !tbaa !11
  %36109 = fadd double %36108, 5.000000e-01
  br label %36113

36110:                                            ; preds = %36104
  %36111 = load double, ptr %1051, align 8, !tbaa !11
  %36112 = fsub double %36111, 5.000000e-01
  br label %36113

36113:                                            ; preds = %36110, %36107
  %36114 = phi double [ %36109, %36107 ], [ %36112, %36110 ]
  br label %36117

36115:                                            ; preds = %36100
  %36116 = load double, ptr %1050, align 8, !tbaa !11
  br label %36117

36117:                                            ; preds = %36115, %36113
  %36118 = phi double [ %36114, %36113 ], [ %36116, %36115 ]
  br label %36119

36119:                                            ; preds = %36117, %36089
  %36120 = phi double [ %36090, %36089 ], [ %36118, %36117 ]
  br label %36149

36121:                                            ; preds = %36064
  %36122 = load double, ptr %1049, align 8, !tbaa !11
  %36123 = load double, ptr %1051, align 8, !tbaa !11
  %36124 = fcmp ole double 0.000000e+00, %36123
  br i1 %36124, label %36125, label %36128

36125:                                            ; preds = %36121
  %36126 = load double, ptr %1051, align 8, !tbaa !11
  %36127 = fadd double %36126, 5.000000e-01
  br label %36131

36128:                                            ; preds = %36121
  %36129 = load double, ptr %1051, align 8, !tbaa !11
  %36130 = fsub double %36129, 5.000000e-01
  br label %36131

36131:                                            ; preds = %36128, %36125
  %36132 = phi double [ %36127, %36125 ], [ %36130, %36128 ]
  %36133 = fcmp olt double %36122, %36132
  br i1 %36133, label %36134, label %36145

36134:                                            ; preds = %36131
  %36135 = load double, ptr %1051, align 8, !tbaa !11
  %36136 = fcmp ole double 0.000000e+00, %36135
  br i1 %36136, label %36137, label %36140

36137:                                            ; preds = %36134
  %36138 = load double, ptr %1051, align 8, !tbaa !11
  %36139 = fadd double %36138, 5.000000e-01
  br label %36143

36140:                                            ; preds = %36134
  %36141 = load double, ptr %1051, align 8, !tbaa !11
  %36142 = fsub double %36141, 5.000000e-01
  br label %36143

36143:                                            ; preds = %36140, %36137
  %36144 = phi double [ %36139, %36137 ], [ %36142, %36140 ]
  br label %36147

36145:                                            ; preds = %36131
  %36146 = load double, ptr %1049, align 8, !tbaa !11
  br label %36147

36147:                                            ; preds = %36145, %36143
  %36148 = phi double [ %36144, %36143 ], [ %36146, %36145 ]
  br label %36149

36149:                                            ; preds = %36147, %36119
  %36150 = phi double [ %36120, %36119 ], [ %36148, %36147 ]
  %36151 = fptoui double %36150 to i64
  %36152 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %36151, ptr %36152, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %1051) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1050) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1049) #3
  br label %36230

36153:                                            ; preds = %35917, %35914
  %36154 = load i32, ptr %8, align 4, !tbaa !9
  %36155 = icmp ugt i32 6, %36154
  br i1 %36155, label %36184, label %36156

36156:                                            ; preds = %36153
  %36157 = load i32, ptr %8, align 4, !tbaa !9
  %36158 = icmp ugt i32 15, %36157
  br i1 %36158, label %36159, label %36170

36159:                                            ; preds = %36156
  %36160 = load i32, ptr %9, align 4, !tbaa !9
  %36161 = icmp ugt i32 15, %36160
  br i1 %36161, label %36162, label %36167

36162:                                            ; preds = %36159
  %36163 = load i32, ptr %9, align 4, !tbaa !9
  %36164 = load i32, ptr %8, align 4, !tbaa !9
  %36165 = icmp ugt i32 %36163, %36164
  %36166 = zext i1 %36165 to i32
  br label %36168

36167:                                            ; preds = %36159
  br label %36168

36168:                                            ; preds = %36167, %36162
  %36169 = phi i32 [ %36166, %36162 ], [ 0, %36167 ]
  br label %36181

36170:                                            ; preds = %36156
  %36171 = load i32, ptr %9, align 4, !tbaa !9
  %36172 = icmp ugt i32 15, %36171
  br i1 %36172, label %36173, label %36174

36173:                                            ; preds = %36170
  br label %36179

36174:                                            ; preds = %36170
  %36175 = load i32, ptr %9, align 4, !tbaa !9
  %36176 = load i32, ptr %8, align 4, !tbaa !9
  %36177 = icmp ugt i32 %36175, %36176
  %36178 = zext i1 %36177 to i32
  br label %36179

36179:                                            ; preds = %36174, %36173
  %36180 = phi i32 [ 0, %36173 ], [ %36178, %36174 ]
  br label %36181

36181:                                            ; preds = %36179, %36168
  %36182 = phi i32 [ %36169, %36168 ], [ %36180, %36179 ]
  %36183 = icmp ne i32 %36182, 0
  br label %36184

36184:                                            ; preds = %36181, %36153
  %36185 = phi i1 [ true, %36153 ], [ %36183, %36181 ]
  %36186 = zext i1 %36185 to i32
  %36187 = icmp eq i32 0, %36186
  br i1 %36187, label %36188, label %36225

36188:                                            ; preds = %36184
  %36189 = load i32, ptr %1042, align 4, !tbaa !9
  %36190 = uitofp i32 %36189 to double
  %36191 = fcmp olt double 0.000000e+00, %36190
  br i1 %36191, label %36192, label %36211

36192:                                            ; preds = %36188
  %36193 = load i32, ptr %1042, align 4, !tbaa !9
  %36194 = uitofp i32 %36193 to double
  %36195 = fcmp ole double %36194, 0x43F0000000000000
  br i1 %36195, label %36196, label %36199

36196:                                            ; preds = %36192
  %36197 = load i32, ptr %1042, align 4, !tbaa !9
  %36198 = uitofp i32 %36197 to double
  br label %36209

36199:                                            ; preds = %36192
  %36200 = load i32, ptr %1042, align 4, !tbaa !9
  %36201 = uitofp i32 %36200 to double
  %36202 = fcmp olt double %36201, 0x43F0000000000000
  br i1 %36202, label %36203, label %36206

36203:                                            ; preds = %36199
  %36204 = load i32, ptr %1042, align 4, !tbaa !9
  %36205 = uitofp i32 %36204 to double
  br label %36207

36206:                                            ; preds = %36199
  br label %36207

36207:                                            ; preds = %36206, %36203
  %36208 = phi double [ %36205, %36203 ], [ 0x43F0000000000000, %36206 ]
  br label %36209

36209:                                            ; preds = %36207, %36196
  %36210 = phi double [ %36198, %36196 ], [ %36208, %36207 ]
  br label %36221

36211:                                            ; preds = %36188
  %36212 = load i32, ptr %1042, align 4, !tbaa !9
  %36213 = uitofp i32 %36212 to double
  %36214 = fcmp olt double 0.000000e+00, %36213
  br i1 %36214, label %36215, label %36218

36215:                                            ; preds = %36211
  %36216 = load i32, ptr %1042, align 4, !tbaa !9
  %36217 = uitofp i32 %36216 to double
  br label %36219

36218:                                            ; preds = %36211
  br label %36219

36219:                                            ; preds = %36218, %36215
  %36220 = phi double [ %36217, %36215 ], [ 0.000000e+00, %36218 ]
  br label %36221

36221:                                            ; preds = %36219, %36209
  %36222 = phi double [ %36210, %36209 ], [ %36220, %36219 ]
  %36223 = fptoui double %36222 to i64
  %36224 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %36223, ptr %36224, align 8, !tbaa !13
  br label %36229

36225:                                            ; preds = %36184
  %36226 = load i32, ptr %1042, align 4, !tbaa !9
  %36227 = zext i32 %36226 to i64
  %36228 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %36227, ptr %36228, align 8, !tbaa !13
  br label %36229

36229:                                            ; preds = %36225, %36221
  br label %36230

36230:                                            ; preds = %36229, %36149
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1044) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1043) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %1042) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1041) #3
  br label %36231

36231:                                            ; preds = %36230
  br label %36232

36232:                                            ; preds = %36231
  br label %37748

36233:                                            ; preds = %34125
  br label %36234

36234:                                            ; preds = %36233
  call void @llvm.lifetime.start.p0(i64 8, ptr %1052) #3
  store double 5.000000e-01, ptr %1052, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %1053) #3
  %36235 = load ptr, ptr %10, align 8, !tbaa !5
  %36236 = load i16, ptr %36235, align 2, !tbaa !15
  store i16 %36236, ptr %1053, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %1054) #3
  store double 0.000000e+00, ptr %1054, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1055) #3
  store double 0.000000e+00, ptr %1055, align 8, !tbaa !11
  %36237 = load ptr, ptr %11, align 8, !tbaa !5
  %36238 = icmp ne ptr null, %36237
  br i1 %36238, label %36239, label %36265

36239:                                            ; preds = %36234
  %36240 = load ptr, ptr %12, align 8, !tbaa !5
  %36241 = icmp ne ptr null, %36240
  br i1 %36241, label %36242, label %36257

36242:                                            ; preds = %36239
  %36243 = load ptr, ptr %11, align 8, !tbaa !5
  %36244 = load i16, ptr %36243, align 2, !tbaa !15
  %36245 = zext i16 %36244 to i32
  %36246 = load i16, ptr %1053, align 2, !tbaa !15
  %36247 = zext i16 %36246 to i32
  %36248 = icmp sle i32 %36245, %36247
  br i1 %36248, label %36249, label %36257

36249:                                            ; preds = %36242
  %36250 = load i16, ptr %1053, align 2, !tbaa !15
  %36251 = zext i16 %36250 to i32
  %36252 = load ptr, ptr %12, align 8, !tbaa !5
  %36253 = load i16, ptr %36252, align 2, !tbaa !15
  %36254 = zext i16 %36253 to i32
  %36255 = icmp sle i32 %36251, %36254
  br i1 %36255, label %36256, label %36257

36256:                                            ; preds = %36249
  br label %36258

36257:                                            ; preds = %36249, %36242, %36239
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.24, i32 noundef 494, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

36258:                                            ; preds = %36256
  %36259 = load ptr, ptr %11, align 8, !tbaa !5
  %36260 = load i16, ptr %36259, align 2, !tbaa !15
  %36261 = uitofp i16 %36260 to double
  store double %36261, ptr %1054, align 8, !tbaa !11
  %36262 = load ptr, ptr %12, align 8, !tbaa !5
  %36263 = load i16, ptr %36262, align 2, !tbaa !15
  %36264 = uitofp i16 %36263 to double
  store double %36264, ptr %1055, align 8, !tbaa !11
  br label %36265

36265:                                            ; preds = %36258, %36234
  %36266 = load i32, ptr %8, align 4, !tbaa !9
  %36267 = icmp ule i32 6, %36266
  br i1 %36267, label %36268, label %36506

36268:                                            ; preds = %36265
  %36269 = load double, ptr %1054, align 8, !tbaa !11
  %36270 = load double, ptr %1055, align 8, !tbaa !11
  %36271 = fcmp olt double %36269, %36270
  br i1 %36271, label %36272, label %36506

36272:                                            ; preds = %36268
  %36273 = load i32, ptr %8, align 4, !tbaa !9
  %36274 = icmp ule i32 15, %36273
  br i1 %36274, label %36275, label %36329

36275:                                            ; preds = %36272
  call void @llvm.lifetime.start.p0(i64 8, ptr %1056) #3
  %36276 = load double, ptr %1054, align 8, !tbaa !11
  %36277 = fcmp olt double 0.000000e+00, %36276
  br i1 %36277, label %36278, label %36280

36278:                                            ; preds = %36275
  %36279 = load double, ptr %1054, align 8, !tbaa !11
  br label %36281

36280:                                            ; preds = %36275
  br label %36281

36281:                                            ; preds = %36280, %36278
  %36282 = phi double [ %36279, %36278 ], [ 0.000000e+00, %36280 ]
  store double %36282, ptr %1056, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1057) #3
  %36283 = load double, ptr %1055, align 8, !tbaa !11
  %36284 = fcmp olt double 0.000000e+00, %36283
  br i1 %36284, label %36285, label %36287

36285:                                            ; preds = %36281
  %36286 = load double, ptr %1055, align 8, !tbaa !11
  br label %36288

36287:                                            ; preds = %36281
  br label %36288

36288:                                            ; preds = %36287, %36285
  %36289 = phi double [ %36286, %36285 ], [ 0.000000e+00, %36287 ]
  store double %36289, ptr %1057, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1058) #3
  %36290 = load double, ptr %1056, align 8, !tbaa !11
  %36291 = load double, ptr %1057, align 8, !tbaa !11
  %36292 = fcmp olt double %36290, %36291
  br i1 %36292, label %36293, label %36301

36293:                                            ; preds = %36288
  %36294 = load double, ptr %1055, align 8, !tbaa !11
  %36295 = load double, ptr %1054, align 8, !tbaa !11
  %36296 = fsub double %36294, %36295
  %36297 = load double, ptr %1057, align 8, !tbaa !11
  %36298 = load double, ptr %1056, align 8, !tbaa !11
  %36299 = fsub double %36297, %36298
  %36300 = fdiv double %36296, %36299
  br label %36302

36301:                                            ; preds = %36288
  br label %36302

36302:                                            ; preds = %36301, %36293
  %36303 = phi double [ %36300, %36293 ], [ 1.000000e+00, %36301 ]
  store double %36303, ptr %1058, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1059) #3
  %36304 = load double, ptr %1058, align 8, !tbaa !11
  %36305 = load i16, ptr %1053, align 2, !tbaa !15
  %36306 = zext i16 %36305 to i32
  %36307 = icmp slt i32 0, %36306
  br i1 %36307, label %36308, label %36311

36308:                                            ; preds = %36302
  %36309 = load i16, ptr %1053, align 2, !tbaa !15
  %36310 = zext i16 %36309 to i32
  br label %36312

36311:                                            ; preds = %36302
  br label %36312

36312:                                            ; preds = %36311, %36308
  %36313 = phi i32 [ %36310, %36308 ], [ 0, %36311 ]
  %36314 = sitofp i32 %36313 to double
  %36315 = fmul double %36304, %36314
  store double %36315, ptr %1059, align 8, !tbaa !11
  %36316 = load double, ptr %1059, align 8, !tbaa !11
  %36317 = fcmp ole double 0.000000e+00, %36316
  br i1 %36317, label %36318, label %36321

36318:                                            ; preds = %36312
  %36319 = load double, ptr %1059, align 8, !tbaa !11
  %36320 = fadd double %36319, 5.000000e-01
  br label %36324

36321:                                            ; preds = %36312
  %36322 = load double, ptr %1059, align 8, !tbaa !11
  %36323 = fsub double %36322, 5.000000e-01
  br label %36324

36324:                                            ; preds = %36321, %36318
  %36325 = phi double [ %36320, %36318 ], [ %36323, %36321 ]
  %36326 = fptoui double %36325 to i16
  store i16 %36326, ptr %1053, align 2, !tbaa !15
  %36327 = load double, ptr %1056, align 8, !tbaa !11
  store double %36327, ptr %1054, align 8, !tbaa !11
  %36328 = load double, ptr %1057, align 8, !tbaa !11
  store double %36328, ptr %1055, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1059) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1058) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1057) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1056) #3
  br label %36385

36329:                                            ; preds = %36272
  %36330 = load i32, ptr %8, align 4, !tbaa !9
  %36331 = icmp ugt i32 6, %36330
  br i1 %36331, label %36360, label %36332

36332:                                            ; preds = %36329
  %36333 = load i32, ptr %8, align 4, !tbaa !9
  %36334 = icmp ugt i32 15, %36333
  br i1 %36334, label %36335, label %36346

36335:                                            ; preds = %36332
  %36336 = load i32, ptr %9, align 4, !tbaa !9
  %36337 = icmp ugt i32 15, %36336
  br i1 %36337, label %36338, label %36343

36338:                                            ; preds = %36335
  %36339 = load i32, ptr %9, align 4, !tbaa !9
  %36340 = load i32, ptr %8, align 4, !tbaa !9
  %36341 = icmp ugt i32 %36339, %36340
  %36342 = zext i1 %36341 to i32
  br label %36344

36343:                                            ; preds = %36335
  br label %36344

36344:                                            ; preds = %36343, %36338
  %36345 = phi i32 [ %36342, %36338 ], [ 0, %36343 ]
  br label %36357

36346:                                            ; preds = %36332
  %36347 = load i32, ptr %9, align 4, !tbaa !9
  %36348 = icmp ugt i32 15, %36347
  br i1 %36348, label %36349, label %36350

36349:                                            ; preds = %36346
  br label %36355

36350:                                            ; preds = %36346
  %36351 = load i32, ptr %9, align 4, !tbaa !9
  %36352 = load i32, ptr %8, align 4, !tbaa !9
  %36353 = icmp ugt i32 %36351, %36352
  %36354 = zext i1 %36353 to i32
  br label %36355

36355:                                            ; preds = %36350, %36349
  %36356 = phi i32 [ 0, %36349 ], [ %36354, %36350 ]
  br label %36357

36357:                                            ; preds = %36355, %36344
  %36358 = phi i32 [ %36345, %36344 ], [ %36356, %36355 ]
  %36359 = icmp ne i32 %36358, 0
  br label %36360

36360:                                            ; preds = %36357, %36329
  %36361 = phi i1 [ true, %36329 ], [ %36359, %36357 ]
  %36362 = zext i1 %36361 to i32
  %36363 = icmp eq i32 0, %36362
  br i1 %36363, label %36364, label %36384

36364:                                            ; preds = %36360
  %36365 = load double, ptr %1054, align 8, !tbaa !11
  %36366 = fcmp ogt double 0.000000e+00, %36365
  br i1 %36366, label %36367, label %36384

36367:                                            ; preds = %36364
  %36368 = load double, ptr %1055, align 8, !tbaa !11
  %36369 = fcmp olt double 0.000000e+00, %36368
  br i1 %36369, label %36370, label %36384

36370:                                            ; preds = %36367
  %36371 = load double, ptr %1054, align 8, !tbaa !11
  %36372 = fneg double %36371
  %36373 = load double, ptr %1055, align 8, !tbaa !11
  %36374 = fcmp olt double %36372, %36373
  br i1 %36374, label %36375, label %36377

36375:                                            ; preds = %36370
  %36376 = load double, ptr %1055, align 8, !tbaa !11
  br label %36380

36377:                                            ; preds = %36370
  %36378 = load double, ptr %1054, align 8, !tbaa !11
  %36379 = fneg double %36378
  br label %36380

36380:                                            ; preds = %36377, %36375
  %36381 = phi double [ %36376, %36375 ], [ %36379, %36377 ]
  store double %36381, ptr %1055, align 8, !tbaa !11
  %36382 = load double, ptr %1055, align 8, !tbaa !11
  %36383 = fneg double %36382
  store double %36383, ptr %1054, align 8, !tbaa !11
  br label %36384

36384:                                            ; preds = %36380, %36367, %36364, %36360
  br label %36385

36385:                                            ; preds = %36384, %36324
  call void @llvm.lifetime.start.p0(i64 8, ptr %1060) #3
  %36386 = load double, ptr %1054, align 8, !tbaa !11
  %36387 = fcmp ole double 0.000000e+00, %36386
  %36388 = zext i1 %36387 to i64
  %36389 = select i1 %36387, double 0.000000e+00, double 0.000000e+00
  store double %36389, ptr %1060, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1061) #3
  %36390 = load double, ptr %1055, align 8, !tbaa !11
  %36391 = fcmp ole double 0.000000e+00, %36390
  %36392 = zext i1 %36391 to i64
  %36393 = select i1 %36391, double 0x43F0000000000000, double 0.000000e+00
  store double %36393, ptr %1061, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1062) #3
  %36394 = load i16, ptr %1053, align 2, !tbaa !15
  %36395 = uitofp i16 %36394 to double
  %36396 = load double, ptr %1054, align 8, !tbaa !11
  %36397 = fsub double %36395, %36396
  %36398 = load double, ptr %1061, align 8, !tbaa !11
  %36399 = load double, ptr %1060, align 8, !tbaa !11
  %36400 = fsub double %36398, %36399
  %36401 = fmul double %36397, %36400
  %36402 = load double, ptr %1055, align 8, !tbaa !11
  %36403 = load double, ptr %1054, align 8, !tbaa !11
  %36404 = fsub double %36402, %36403
  %36405 = fdiv double %36401, %36404
  %36406 = load double, ptr %1060, align 8, !tbaa !11
  %36407 = fadd double %36405, %36406
  store double %36407, ptr %1062, align 8, !tbaa !11
  %36408 = load double, ptr %1060, align 8, !tbaa !11
  %36409 = load double, ptr %1062, align 8, !tbaa !11
  %36410 = fcmp ole double 0.000000e+00, %36409
  br i1 %36410, label %36411, label %36414

36411:                                            ; preds = %36385
  %36412 = load double, ptr %1062, align 8, !tbaa !11
  %36413 = fadd double %36412, 5.000000e-01
  br label %36417

36414:                                            ; preds = %36385
  %36415 = load double, ptr %1062, align 8, !tbaa !11
  %36416 = fsub double %36415, 5.000000e-01
  br label %36417

36417:                                            ; preds = %36414, %36411
  %36418 = phi double [ %36413, %36411 ], [ %36416, %36414 ]
  %36419 = fcmp olt double %36408, %36418
  br i1 %36419, label %36420, label %36474

36420:                                            ; preds = %36417
  %36421 = load double, ptr %1062, align 8, !tbaa !11
  %36422 = fcmp ole double 0.000000e+00, %36421
  br i1 %36422, label %36423, label %36426

36423:                                            ; preds = %36420
  %36424 = load double, ptr %1062, align 8, !tbaa !11
  %36425 = fadd double %36424, 5.000000e-01
  br label %36429

36426:                                            ; preds = %36420
  %36427 = load double, ptr %1062, align 8, !tbaa !11
  %36428 = fsub double %36427, 5.000000e-01
  br label %36429

36429:                                            ; preds = %36426, %36423
  %36430 = phi double [ %36425, %36423 ], [ %36428, %36426 ]
  %36431 = load double, ptr %1061, align 8, !tbaa !11
  %36432 = fcmp ole double %36430, %36431
  br i1 %36432, label %36433, label %36444

36433:                                            ; preds = %36429
  %36434 = load double, ptr %1062, align 8, !tbaa !11
  %36435 = fcmp ole double 0.000000e+00, %36434
  br i1 %36435, label %36436, label %36439

36436:                                            ; preds = %36433
  %36437 = load double, ptr %1062, align 8, !tbaa !11
  %36438 = fadd double %36437, 5.000000e-01
  br label %36442

36439:                                            ; preds = %36433
  %36440 = load double, ptr %1062, align 8, !tbaa !11
  %36441 = fsub double %36440, 5.000000e-01
  br label %36442

36442:                                            ; preds = %36439, %36436
  %36443 = phi double [ %36438, %36436 ], [ %36441, %36439 ]
  br label %36472

36444:                                            ; preds = %36429
  %36445 = load double, ptr %1062, align 8, !tbaa !11
  %36446 = fcmp ole double 0.000000e+00, %36445
  br i1 %36446, label %36447, label %36450

36447:                                            ; preds = %36444
  %36448 = load double, ptr %1062, align 8, !tbaa !11
  %36449 = fadd double %36448, 5.000000e-01
  br label %36453

36450:                                            ; preds = %36444
  %36451 = load double, ptr %1062, align 8, !tbaa !11
  %36452 = fsub double %36451, 5.000000e-01
  br label %36453

36453:                                            ; preds = %36450, %36447
  %36454 = phi double [ %36449, %36447 ], [ %36452, %36450 ]
  %36455 = load double, ptr %1061, align 8, !tbaa !11
  %36456 = fcmp olt double %36454, %36455
  br i1 %36456, label %36457, label %36468

36457:                                            ; preds = %36453
  %36458 = load double, ptr %1062, align 8, !tbaa !11
  %36459 = fcmp ole double 0.000000e+00, %36458
  br i1 %36459, label %36460, label %36463

36460:                                            ; preds = %36457
  %36461 = load double, ptr %1062, align 8, !tbaa !11
  %36462 = fadd double %36461, 5.000000e-01
  br label %36466

36463:                                            ; preds = %36457
  %36464 = load double, ptr %1062, align 8, !tbaa !11
  %36465 = fsub double %36464, 5.000000e-01
  br label %36466

36466:                                            ; preds = %36463, %36460
  %36467 = phi double [ %36462, %36460 ], [ %36465, %36463 ]
  br label %36470

36468:                                            ; preds = %36453
  %36469 = load double, ptr %1061, align 8, !tbaa !11
  br label %36470

36470:                                            ; preds = %36468, %36466
  %36471 = phi double [ %36467, %36466 ], [ %36469, %36468 ]
  br label %36472

36472:                                            ; preds = %36470, %36442
  %36473 = phi double [ %36443, %36442 ], [ %36471, %36470 ]
  br label %36502

36474:                                            ; preds = %36417
  %36475 = load double, ptr %1060, align 8, !tbaa !11
  %36476 = load double, ptr %1062, align 8, !tbaa !11
  %36477 = fcmp ole double 0.000000e+00, %36476
  br i1 %36477, label %36478, label %36481

36478:                                            ; preds = %36474
  %36479 = load double, ptr %1062, align 8, !tbaa !11
  %36480 = fadd double %36479, 5.000000e-01
  br label %36484

36481:                                            ; preds = %36474
  %36482 = load double, ptr %1062, align 8, !tbaa !11
  %36483 = fsub double %36482, 5.000000e-01
  br label %36484

36484:                                            ; preds = %36481, %36478
  %36485 = phi double [ %36480, %36478 ], [ %36483, %36481 ]
  %36486 = fcmp olt double %36475, %36485
  br i1 %36486, label %36487, label %36498

36487:                                            ; preds = %36484
  %36488 = load double, ptr %1062, align 8, !tbaa !11
  %36489 = fcmp ole double 0.000000e+00, %36488
  br i1 %36489, label %36490, label %36493

36490:                                            ; preds = %36487
  %36491 = load double, ptr %1062, align 8, !tbaa !11
  %36492 = fadd double %36491, 5.000000e-01
  br label %36496

36493:                                            ; preds = %36487
  %36494 = load double, ptr %1062, align 8, !tbaa !11
  %36495 = fsub double %36494, 5.000000e-01
  br label %36496

36496:                                            ; preds = %36493, %36490
  %36497 = phi double [ %36492, %36490 ], [ %36495, %36493 ]
  br label %36500

36498:                                            ; preds = %36484
  %36499 = load double, ptr %1060, align 8, !tbaa !11
  br label %36500

36500:                                            ; preds = %36498, %36496
  %36501 = phi double [ %36497, %36496 ], [ %36499, %36498 ]
  br label %36502

36502:                                            ; preds = %36500, %36472
  %36503 = phi double [ %36473, %36472 ], [ %36501, %36500 ]
  %36504 = fptoui double %36503 to i64
  %36505 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %36504, ptr %36505, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %1062) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1061) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1060) #3
  br label %36590

36506:                                            ; preds = %36268, %36265
  %36507 = load i32, ptr %8, align 4, !tbaa !9
  %36508 = icmp ugt i32 6, %36507
  br i1 %36508, label %36537, label %36509

36509:                                            ; preds = %36506
  %36510 = load i32, ptr %8, align 4, !tbaa !9
  %36511 = icmp ugt i32 15, %36510
  br i1 %36511, label %36512, label %36523

36512:                                            ; preds = %36509
  %36513 = load i32, ptr %9, align 4, !tbaa !9
  %36514 = icmp ugt i32 15, %36513
  br i1 %36514, label %36515, label %36520

36515:                                            ; preds = %36512
  %36516 = load i32, ptr %9, align 4, !tbaa !9
  %36517 = load i32, ptr %8, align 4, !tbaa !9
  %36518 = icmp ugt i32 %36516, %36517
  %36519 = zext i1 %36518 to i32
  br label %36521

36520:                                            ; preds = %36512
  br label %36521

36521:                                            ; preds = %36520, %36515
  %36522 = phi i32 [ %36519, %36515 ], [ 0, %36520 ]
  br label %36534

36523:                                            ; preds = %36509
  %36524 = load i32, ptr %9, align 4, !tbaa !9
  %36525 = icmp ugt i32 15, %36524
  br i1 %36525, label %36526, label %36527

36526:                                            ; preds = %36523
  br label %36532

36527:                                            ; preds = %36523
  %36528 = load i32, ptr %9, align 4, !tbaa !9
  %36529 = load i32, ptr %8, align 4, !tbaa !9
  %36530 = icmp ugt i32 %36528, %36529
  %36531 = zext i1 %36530 to i32
  br label %36532

36532:                                            ; preds = %36527, %36526
  %36533 = phi i32 [ 0, %36526 ], [ %36531, %36527 ]
  br label %36534

36534:                                            ; preds = %36532, %36521
  %36535 = phi i32 [ %36522, %36521 ], [ %36533, %36532 ]
  %36536 = icmp ne i32 %36535, 0
  br label %36537

36537:                                            ; preds = %36534, %36506
  %36538 = phi i1 [ true, %36506 ], [ %36536, %36534 ]
  %36539 = zext i1 %36538 to i32
  %36540 = icmp eq i32 0, %36539
  br i1 %36540, label %36541, label %36585

36541:                                            ; preds = %36537
  %36542 = load i16, ptr %1053, align 2, !tbaa !15
  %36543 = zext i16 %36542 to i32
  %36544 = sitofp i32 %36543 to double
  %36545 = fcmp olt double 0.000000e+00, %36544
  br i1 %36545, label %36546, label %36569

36546:                                            ; preds = %36541
  %36547 = load i16, ptr %1053, align 2, !tbaa !15
  %36548 = zext i16 %36547 to i32
  %36549 = sitofp i32 %36548 to double
  %36550 = fcmp ole double %36549, 0x43F0000000000000
  br i1 %36550, label %36551, label %36555

36551:                                            ; preds = %36546
  %36552 = load i16, ptr %1053, align 2, !tbaa !15
  %36553 = zext i16 %36552 to i32
  %36554 = sitofp i32 %36553 to double
  br label %36567

36555:                                            ; preds = %36546
  %36556 = load i16, ptr %1053, align 2, !tbaa !15
  %36557 = zext i16 %36556 to i32
  %36558 = sitofp i32 %36557 to double
  %36559 = fcmp olt double %36558, 0x43F0000000000000
  br i1 %36559, label %36560, label %36564

36560:                                            ; preds = %36555
  %36561 = load i16, ptr %1053, align 2, !tbaa !15
  %36562 = zext i16 %36561 to i32
  %36563 = sitofp i32 %36562 to double
  br label %36565

36564:                                            ; preds = %36555
  br label %36565

36565:                                            ; preds = %36564, %36560
  %36566 = phi double [ %36563, %36560 ], [ 0x43F0000000000000, %36564 ]
  br label %36567

36567:                                            ; preds = %36565, %36551
  %36568 = phi double [ %36554, %36551 ], [ %36566, %36565 ]
  br label %36581

36569:                                            ; preds = %36541
  %36570 = load i16, ptr %1053, align 2, !tbaa !15
  %36571 = zext i16 %36570 to i32
  %36572 = sitofp i32 %36571 to double
  %36573 = fcmp olt double 0.000000e+00, %36572
  br i1 %36573, label %36574, label %36578

36574:                                            ; preds = %36569
  %36575 = load i16, ptr %1053, align 2, !tbaa !15
  %36576 = zext i16 %36575 to i32
  %36577 = sitofp i32 %36576 to double
  br label %36579

36578:                                            ; preds = %36569
  br label %36579

36579:                                            ; preds = %36578, %36574
  %36580 = phi double [ %36577, %36574 ], [ 0.000000e+00, %36578 ]
  br label %36581

36581:                                            ; preds = %36579, %36567
  %36582 = phi double [ %36568, %36567 ], [ %36580, %36579 ]
  %36583 = fptoui double %36582 to i64
  %36584 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %36583, ptr %36584, align 8, !tbaa !13
  br label %36589

36585:                                            ; preds = %36537
  %36586 = load i16, ptr %1053, align 2, !tbaa !15
  %36587 = zext i16 %36586 to i64
  %36588 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %36587, ptr %36588, align 8, !tbaa !13
  br label %36589

36589:                                            ; preds = %36585, %36581
  br label %36590

36590:                                            ; preds = %36589, %36502
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1055) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1054) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %1053) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1052) #3
  br label %36591

36591:                                            ; preds = %36590
  br label %36592

36592:                                            ; preds = %36591
  br label %37748

36593:                                            ; preds = %34125
  br label %36594

36594:                                            ; preds = %36593
  call void @llvm.lifetime.start.p0(i64 8, ptr %1063) #3
  store double 5.000000e-01, ptr %1063, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %1064) #3
  %36595 = load ptr, ptr %10, align 8, !tbaa !5
  %36596 = load i8, ptr %36595, align 1, !tbaa !17
  store i8 %36596, ptr %1064, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %1065) #3
  store double 0.000000e+00, ptr %1065, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1066) #3
  store double 0.000000e+00, ptr %1066, align 8, !tbaa !11
  %36597 = load ptr, ptr %11, align 8, !tbaa !5
  %36598 = icmp ne ptr null, %36597
  br i1 %36598, label %36599, label %36625

36599:                                            ; preds = %36594
  %36600 = load ptr, ptr %12, align 8, !tbaa !5
  %36601 = icmp ne ptr null, %36600
  br i1 %36601, label %36602, label %36617

36602:                                            ; preds = %36599
  %36603 = load ptr, ptr %11, align 8, !tbaa !5
  %36604 = load i8, ptr %36603, align 1, !tbaa !17
  %36605 = zext i8 %36604 to i32
  %36606 = load i8, ptr %1064, align 1, !tbaa !17
  %36607 = zext i8 %36606 to i32
  %36608 = icmp sle i32 %36605, %36607
  br i1 %36608, label %36609, label %36617

36609:                                            ; preds = %36602
  %36610 = load i8, ptr %1064, align 1, !tbaa !17
  %36611 = zext i8 %36610 to i32
  %36612 = load ptr, ptr %12, align 8, !tbaa !5
  %36613 = load i8, ptr %36612, align 1, !tbaa !17
  %36614 = zext i8 %36613 to i32
  %36615 = icmp sle i32 %36611, %36614
  br i1 %36615, label %36616, label %36617

36616:                                            ; preds = %36609
  br label %36618

36617:                                            ; preds = %36609, %36602, %36599
  call void @__assert_fail(ptr noundef @.str.49, ptr noundef @.str.24, i32 noundef 494, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

36618:                                            ; preds = %36616
  %36619 = load ptr, ptr %11, align 8, !tbaa !5
  %36620 = load i8, ptr %36619, align 1, !tbaa !17
  %36621 = uitofp i8 %36620 to double
  store double %36621, ptr %1065, align 8, !tbaa !11
  %36622 = load ptr, ptr %12, align 8, !tbaa !5
  %36623 = load i8, ptr %36622, align 1, !tbaa !17
  %36624 = uitofp i8 %36623 to double
  store double %36624, ptr %1066, align 8, !tbaa !11
  br label %36625

36625:                                            ; preds = %36618, %36594
  %36626 = load i32, ptr %8, align 4, !tbaa !9
  %36627 = icmp ule i32 6, %36626
  br i1 %36627, label %36628, label %36866

36628:                                            ; preds = %36625
  %36629 = load double, ptr %1065, align 8, !tbaa !11
  %36630 = load double, ptr %1066, align 8, !tbaa !11
  %36631 = fcmp olt double %36629, %36630
  br i1 %36631, label %36632, label %36866

36632:                                            ; preds = %36628
  %36633 = load i32, ptr %8, align 4, !tbaa !9
  %36634 = icmp ule i32 15, %36633
  br i1 %36634, label %36635, label %36689

36635:                                            ; preds = %36632
  call void @llvm.lifetime.start.p0(i64 8, ptr %1067) #3
  %36636 = load double, ptr %1065, align 8, !tbaa !11
  %36637 = fcmp olt double 0.000000e+00, %36636
  br i1 %36637, label %36638, label %36640

36638:                                            ; preds = %36635
  %36639 = load double, ptr %1065, align 8, !tbaa !11
  br label %36641

36640:                                            ; preds = %36635
  br label %36641

36641:                                            ; preds = %36640, %36638
  %36642 = phi double [ %36639, %36638 ], [ 0.000000e+00, %36640 ]
  store double %36642, ptr %1067, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1068) #3
  %36643 = load double, ptr %1066, align 8, !tbaa !11
  %36644 = fcmp olt double 0.000000e+00, %36643
  br i1 %36644, label %36645, label %36647

36645:                                            ; preds = %36641
  %36646 = load double, ptr %1066, align 8, !tbaa !11
  br label %36648

36647:                                            ; preds = %36641
  br label %36648

36648:                                            ; preds = %36647, %36645
  %36649 = phi double [ %36646, %36645 ], [ 0.000000e+00, %36647 ]
  store double %36649, ptr %1068, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1069) #3
  %36650 = load double, ptr %1067, align 8, !tbaa !11
  %36651 = load double, ptr %1068, align 8, !tbaa !11
  %36652 = fcmp olt double %36650, %36651
  br i1 %36652, label %36653, label %36661

36653:                                            ; preds = %36648
  %36654 = load double, ptr %1066, align 8, !tbaa !11
  %36655 = load double, ptr %1065, align 8, !tbaa !11
  %36656 = fsub double %36654, %36655
  %36657 = load double, ptr %1068, align 8, !tbaa !11
  %36658 = load double, ptr %1067, align 8, !tbaa !11
  %36659 = fsub double %36657, %36658
  %36660 = fdiv double %36656, %36659
  br label %36662

36661:                                            ; preds = %36648
  br label %36662

36662:                                            ; preds = %36661, %36653
  %36663 = phi double [ %36660, %36653 ], [ 1.000000e+00, %36661 ]
  store double %36663, ptr %1069, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1070) #3
  %36664 = load double, ptr %1069, align 8, !tbaa !11
  %36665 = load i8, ptr %1064, align 1, !tbaa !17
  %36666 = zext i8 %36665 to i32
  %36667 = icmp slt i32 0, %36666
  br i1 %36667, label %36668, label %36671

36668:                                            ; preds = %36662
  %36669 = load i8, ptr %1064, align 1, !tbaa !17
  %36670 = zext i8 %36669 to i32
  br label %36672

36671:                                            ; preds = %36662
  br label %36672

36672:                                            ; preds = %36671, %36668
  %36673 = phi i32 [ %36670, %36668 ], [ 0, %36671 ]
  %36674 = sitofp i32 %36673 to double
  %36675 = fmul double %36664, %36674
  store double %36675, ptr %1070, align 8, !tbaa !11
  %36676 = load double, ptr %1070, align 8, !tbaa !11
  %36677 = fcmp ole double 0.000000e+00, %36676
  br i1 %36677, label %36678, label %36681

36678:                                            ; preds = %36672
  %36679 = load double, ptr %1070, align 8, !tbaa !11
  %36680 = fadd double %36679, 5.000000e-01
  br label %36684

36681:                                            ; preds = %36672
  %36682 = load double, ptr %1070, align 8, !tbaa !11
  %36683 = fsub double %36682, 5.000000e-01
  br label %36684

36684:                                            ; preds = %36681, %36678
  %36685 = phi double [ %36680, %36678 ], [ %36683, %36681 ]
  %36686 = fptoui double %36685 to i8
  store i8 %36686, ptr %1064, align 1, !tbaa !17
  %36687 = load double, ptr %1067, align 8, !tbaa !11
  store double %36687, ptr %1065, align 8, !tbaa !11
  %36688 = load double, ptr %1068, align 8, !tbaa !11
  store double %36688, ptr %1066, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1070) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1069) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1068) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1067) #3
  br label %36745

36689:                                            ; preds = %36632
  %36690 = load i32, ptr %8, align 4, !tbaa !9
  %36691 = icmp ugt i32 6, %36690
  br i1 %36691, label %36720, label %36692

36692:                                            ; preds = %36689
  %36693 = load i32, ptr %8, align 4, !tbaa !9
  %36694 = icmp ugt i32 15, %36693
  br i1 %36694, label %36695, label %36706

36695:                                            ; preds = %36692
  %36696 = load i32, ptr %9, align 4, !tbaa !9
  %36697 = icmp ugt i32 15, %36696
  br i1 %36697, label %36698, label %36703

36698:                                            ; preds = %36695
  %36699 = load i32, ptr %9, align 4, !tbaa !9
  %36700 = load i32, ptr %8, align 4, !tbaa !9
  %36701 = icmp ugt i32 %36699, %36700
  %36702 = zext i1 %36701 to i32
  br label %36704

36703:                                            ; preds = %36695
  br label %36704

36704:                                            ; preds = %36703, %36698
  %36705 = phi i32 [ %36702, %36698 ], [ 0, %36703 ]
  br label %36717

36706:                                            ; preds = %36692
  %36707 = load i32, ptr %9, align 4, !tbaa !9
  %36708 = icmp ugt i32 15, %36707
  br i1 %36708, label %36709, label %36710

36709:                                            ; preds = %36706
  br label %36715

36710:                                            ; preds = %36706
  %36711 = load i32, ptr %9, align 4, !tbaa !9
  %36712 = load i32, ptr %8, align 4, !tbaa !9
  %36713 = icmp ugt i32 %36711, %36712
  %36714 = zext i1 %36713 to i32
  br label %36715

36715:                                            ; preds = %36710, %36709
  %36716 = phi i32 [ 0, %36709 ], [ %36714, %36710 ]
  br label %36717

36717:                                            ; preds = %36715, %36704
  %36718 = phi i32 [ %36705, %36704 ], [ %36716, %36715 ]
  %36719 = icmp ne i32 %36718, 0
  br label %36720

36720:                                            ; preds = %36717, %36689
  %36721 = phi i1 [ true, %36689 ], [ %36719, %36717 ]
  %36722 = zext i1 %36721 to i32
  %36723 = icmp eq i32 0, %36722
  br i1 %36723, label %36724, label %36744

36724:                                            ; preds = %36720
  %36725 = load double, ptr %1065, align 8, !tbaa !11
  %36726 = fcmp ogt double 0.000000e+00, %36725
  br i1 %36726, label %36727, label %36744

36727:                                            ; preds = %36724
  %36728 = load double, ptr %1066, align 8, !tbaa !11
  %36729 = fcmp olt double 0.000000e+00, %36728
  br i1 %36729, label %36730, label %36744

36730:                                            ; preds = %36727
  %36731 = load double, ptr %1065, align 8, !tbaa !11
  %36732 = fneg double %36731
  %36733 = load double, ptr %1066, align 8, !tbaa !11
  %36734 = fcmp olt double %36732, %36733
  br i1 %36734, label %36735, label %36737

36735:                                            ; preds = %36730
  %36736 = load double, ptr %1066, align 8, !tbaa !11
  br label %36740

36737:                                            ; preds = %36730
  %36738 = load double, ptr %1065, align 8, !tbaa !11
  %36739 = fneg double %36738
  br label %36740

36740:                                            ; preds = %36737, %36735
  %36741 = phi double [ %36736, %36735 ], [ %36739, %36737 ]
  store double %36741, ptr %1066, align 8, !tbaa !11
  %36742 = load double, ptr %1066, align 8, !tbaa !11
  %36743 = fneg double %36742
  store double %36743, ptr %1065, align 8, !tbaa !11
  br label %36744

36744:                                            ; preds = %36740, %36727, %36724, %36720
  br label %36745

36745:                                            ; preds = %36744, %36684
  call void @llvm.lifetime.start.p0(i64 8, ptr %1071) #3
  %36746 = load double, ptr %1065, align 8, !tbaa !11
  %36747 = fcmp ole double 0.000000e+00, %36746
  %36748 = zext i1 %36747 to i64
  %36749 = select i1 %36747, double 0.000000e+00, double 0.000000e+00
  store double %36749, ptr %1071, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1072) #3
  %36750 = load double, ptr %1066, align 8, !tbaa !11
  %36751 = fcmp ole double 0.000000e+00, %36750
  %36752 = zext i1 %36751 to i64
  %36753 = select i1 %36751, double 0x43F0000000000000, double 0.000000e+00
  store double %36753, ptr %1072, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1073) #3
  %36754 = load i8, ptr %1064, align 1, !tbaa !17
  %36755 = uitofp i8 %36754 to double
  %36756 = load double, ptr %1065, align 8, !tbaa !11
  %36757 = fsub double %36755, %36756
  %36758 = load double, ptr %1072, align 8, !tbaa !11
  %36759 = load double, ptr %1071, align 8, !tbaa !11
  %36760 = fsub double %36758, %36759
  %36761 = fmul double %36757, %36760
  %36762 = load double, ptr %1066, align 8, !tbaa !11
  %36763 = load double, ptr %1065, align 8, !tbaa !11
  %36764 = fsub double %36762, %36763
  %36765 = fdiv double %36761, %36764
  %36766 = load double, ptr %1071, align 8, !tbaa !11
  %36767 = fadd double %36765, %36766
  store double %36767, ptr %1073, align 8, !tbaa !11
  %36768 = load double, ptr %1071, align 8, !tbaa !11
  %36769 = load double, ptr %1073, align 8, !tbaa !11
  %36770 = fcmp ole double 0.000000e+00, %36769
  br i1 %36770, label %36771, label %36774

36771:                                            ; preds = %36745
  %36772 = load double, ptr %1073, align 8, !tbaa !11
  %36773 = fadd double %36772, 5.000000e-01
  br label %36777

36774:                                            ; preds = %36745
  %36775 = load double, ptr %1073, align 8, !tbaa !11
  %36776 = fsub double %36775, 5.000000e-01
  br label %36777

36777:                                            ; preds = %36774, %36771
  %36778 = phi double [ %36773, %36771 ], [ %36776, %36774 ]
  %36779 = fcmp olt double %36768, %36778
  br i1 %36779, label %36780, label %36834

36780:                                            ; preds = %36777
  %36781 = load double, ptr %1073, align 8, !tbaa !11
  %36782 = fcmp ole double 0.000000e+00, %36781
  br i1 %36782, label %36783, label %36786

36783:                                            ; preds = %36780
  %36784 = load double, ptr %1073, align 8, !tbaa !11
  %36785 = fadd double %36784, 5.000000e-01
  br label %36789

36786:                                            ; preds = %36780
  %36787 = load double, ptr %1073, align 8, !tbaa !11
  %36788 = fsub double %36787, 5.000000e-01
  br label %36789

36789:                                            ; preds = %36786, %36783
  %36790 = phi double [ %36785, %36783 ], [ %36788, %36786 ]
  %36791 = load double, ptr %1072, align 8, !tbaa !11
  %36792 = fcmp ole double %36790, %36791
  br i1 %36792, label %36793, label %36804

36793:                                            ; preds = %36789
  %36794 = load double, ptr %1073, align 8, !tbaa !11
  %36795 = fcmp ole double 0.000000e+00, %36794
  br i1 %36795, label %36796, label %36799

36796:                                            ; preds = %36793
  %36797 = load double, ptr %1073, align 8, !tbaa !11
  %36798 = fadd double %36797, 5.000000e-01
  br label %36802

36799:                                            ; preds = %36793
  %36800 = load double, ptr %1073, align 8, !tbaa !11
  %36801 = fsub double %36800, 5.000000e-01
  br label %36802

36802:                                            ; preds = %36799, %36796
  %36803 = phi double [ %36798, %36796 ], [ %36801, %36799 ]
  br label %36832

36804:                                            ; preds = %36789
  %36805 = load double, ptr %1073, align 8, !tbaa !11
  %36806 = fcmp ole double 0.000000e+00, %36805
  br i1 %36806, label %36807, label %36810

36807:                                            ; preds = %36804
  %36808 = load double, ptr %1073, align 8, !tbaa !11
  %36809 = fadd double %36808, 5.000000e-01
  br label %36813

36810:                                            ; preds = %36804
  %36811 = load double, ptr %1073, align 8, !tbaa !11
  %36812 = fsub double %36811, 5.000000e-01
  br label %36813

36813:                                            ; preds = %36810, %36807
  %36814 = phi double [ %36809, %36807 ], [ %36812, %36810 ]
  %36815 = load double, ptr %1072, align 8, !tbaa !11
  %36816 = fcmp olt double %36814, %36815
  br i1 %36816, label %36817, label %36828

36817:                                            ; preds = %36813
  %36818 = load double, ptr %1073, align 8, !tbaa !11
  %36819 = fcmp ole double 0.000000e+00, %36818
  br i1 %36819, label %36820, label %36823

36820:                                            ; preds = %36817
  %36821 = load double, ptr %1073, align 8, !tbaa !11
  %36822 = fadd double %36821, 5.000000e-01
  br label %36826

36823:                                            ; preds = %36817
  %36824 = load double, ptr %1073, align 8, !tbaa !11
  %36825 = fsub double %36824, 5.000000e-01
  br label %36826

36826:                                            ; preds = %36823, %36820
  %36827 = phi double [ %36822, %36820 ], [ %36825, %36823 ]
  br label %36830

36828:                                            ; preds = %36813
  %36829 = load double, ptr %1072, align 8, !tbaa !11
  br label %36830

36830:                                            ; preds = %36828, %36826
  %36831 = phi double [ %36827, %36826 ], [ %36829, %36828 ]
  br label %36832

36832:                                            ; preds = %36830, %36802
  %36833 = phi double [ %36803, %36802 ], [ %36831, %36830 ]
  br label %36862

36834:                                            ; preds = %36777
  %36835 = load double, ptr %1071, align 8, !tbaa !11
  %36836 = load double, ptr %1073, align 8, !tbaa !11
  %36837 = fcmp ole double 0.000000e+00, %36836
  br i1 %36837, label %36838, label %36841

36838:                                            ; preds = %36834
  %36839 = load double, ptr %1073, align 8, !tbaa !11
  %36840 = fadd double %36839, 5.000000e-01
  br label %36844

36841:                                            ; preds = %36834
  %36842 = load double, ptr %1073, align 8, !tbaa !11
  %36843 = fsub double %36842, 5.000000e-01
  br label %36844

36844:                                            ; preds = %36841, %36838
  %36845 = phi double [ %36840, %36838 ], [ %36843, %36841 ]
  %36846 = fcmp olt double %36835, %36845
  br i1 %36846, label %36847, label %36858

36847:                                            ; preds = %36844
  %36848 = load double, ptr %1073, align 8, !tbaa !11
  %36849 = fcmp ole double 0.000000e+00, %36848
  br i1 %36849, label %36850, label %36853

36850:                                            ; preds = %36847
  %36851 = load double, ptr %1073, align 8, !tbaa !11
  %36852 = fadd double %36851, 5.000000e-01
  br label %36856

36853:                                            ; preds = %36847
  %36854 = load double, ptr %1073, align 8, !tbaa !11
  %36855 = fsub double %36854, 5.000000e-01
  br label %36856

36856:                                            ; preds = %36853, %36850
  %36857 = phi double [ %36852, %36850 ], [ %36855, %36853 ]
  br label %36860

36858:                                            ; preds = %36844
  %36859 = load double, ptr %1071, align 8, !tbaa !11
  br label %36860

36860:                                            ; preds = %36858, %36856
  %36861 = phi double [ %36857, %36856 ], [ %36859, %36858 ]
  br label %36862

36862:                                            ; preds = %36860, %36832
  %36863 = phi double [ %36833, %36832 ], [ %36861, %36860 ]
  %36864 = fptoui double %36863 to i64
  %36865 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %36864, ptr %36865, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %1073) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1072) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1071) #3
  br label %36950

36866:                                            ; preds = %36628, %36625
  %36867 = load i32, ptr %8, align 4, !tbaa !9
  %36868 = icmp ugt i32 6, %36867
  br i1 %36868, label %36897, label %36869

36869:                                            ; preds = %36866
  %36870 = load i32, ptr %8, align 4, !tbaa !9
  %36871 = icmp ugt i32 15, %36870
  br i1 %36871, label %36872, label %36883

36872:                                            ; preds = %36869
  %36873 = load i32, ptr %9, align 4, !tbaa !9
  %36874 = icmp ugt i32 15, %36873
  br i1 %36874, label %36875, label %36880

36875:                                            ; preds = %36872
  %36876 = load i32, ptr %9, align 4, !tbaa !9
  %36877 = load i32, ptr %8, align 4, !tbaa !9
  %36878 = icmp ugt i32 %36876, %36877
  %36879 = zext i1 %36878 to i32
  br label %36881

36880:                                            ; preds = %36872
  br label %36881

36881:                                            ; preds = %36880, %36875
  %36882 = phi i32 [ %36879, %36875 ], [ 0, %36880 ]
  br label %36894

36883:                                            ; preds = %36869
  %36884 = load i32, ptr %9, align 4, !tbaa !9
  %36885 = icmp ugt i32 15, %36884
  br i1 %36885, label %36886, label %36887

36886:                                            ; preds = %36883
  br label %36892

36887:                                            ; preds = %36883
  %36888 = load i32, ptr %9, align 4, !tbaa !9
  %36889 = load i32, ptr %8, align 4, !tbaa !9
  %36890 = icmp ugt i32 %36888, %36889
  %36891 = zext i1 %36890 to i32
  br label %36892

36892:                                            ; preds = %36887, %36886
  %36893 = phi i32 [ 0, %36886 ], [ %36891, %36887 ]
  br label %36894

36894:                                            ; preds = %36892, %36881
  %36895 = phi i32 [ %36882, %36881 ], [ %36893, %36892 ]
  %36896 = icmp ne i32 %36895, 0
  br label %36897

36897:                                            ; preds = %36894, %36866
  %36898 = phi i1 [ true, %36866 ], [ %36896, %36894 ]
  %36899 = zext i1 %36898 to i32
  %36900 = icmp eq i32 0, %36899
  br i1 %36900, label %36901, label %36945

36901:                                            ; preds = %36897
  %36902 = load i8, ptr %1064, align 1, !tbaa !17
  %36903 = zext i8 %36902 to i32
  %36904 = sitofp i32 %36903 to double
  %36905 = fcmp olt double 0.000000e+00, %36904
  br i1 %36905, label %36906, label %36929

36906:                                            ; preds = %36901
  %36907 = load i8, ptr %1064, align 1, !tbaa !17
  %36908 = zext i8 %36907 to i32
  %36909 = sitofp i32 %36908 to double
  %36910 = fcmp ole double %36909, 0x43F0000000000000
  br i1 %36910, label %36911, label %36915

36911:                                            ; preds = %36906
  %36912 = load i8, ptr %1064, align 1, !tbaa !17
  %36913 = zext i8 %36912 to i32
  %36914 = sitofp i32 %36913 to double
  br label %36927

36915:                                            ; preds = %36906
  %36916 = load i8, ptr %1064, align 1, !tbaa !17
  %36917 = zext i8 %36916 to i32
  %36918 = sitofp i32 %36917 to double
  %36919 = fcmp olt double %36918, 0x43F0000000000000
  br i1 %36919, label %36920, label %36924

36920:                                            ; preds = %36915
  %36921 = load i8, ptr %1064, align 1, !tbaa !17
  %36922 = zext i8 %36921 to i32
  %36923 = sitofp i32 %36922 to double
  br label %36925

36924:                                            ; preds = %36915
  br label %36925

36925:                                            ; preds = %36924, %36920
  %36926 = phi double [ %36923, %36920 ], [ 0x43F0000000000000, %36924 ]
  br label %36927

36927:                                            ; preds = %36925, %36911
  %36928 = phi double [ %36914, %36911 ], [ %36926, %36925 ]
  br label %36941

36929:                                            ; preds = %36901
  %36930 = load i8, ptr %1064, align 1, !tbaa !17
  %36931 = zext i8 %36930 to i32
  %36932 = sitofp i32 %36931 to double
  %36933 = fcmp olt double 0.000000e+00, %36932
  br i1 %36933, label %36934, label %36938

36934:                                            ; preds = %36929
  %36935 = load i8, ptr %1064, align 1, !tbaa !17
  %36936 = zext i8 %36935 to i32
  %36937 = sitofp i32 %36936 to double
  br label %36939

36938:                                            ; preds = %36929
  br label %36939

36939:                                            ; preds = %36938, %36934
  %36940 = phi double [ %36937, %36934 ], [ 0.000000e+00, %36938 ]
  br label %36941

36941:                                            ; preds = %36939, %36927
  %36942 = phi double [ %36928, %36927 ], [ %36940, %36939 ]
  %36943 = fptoui double %36942 to i64
  %36944 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %36943, ptr %36944, align 8, !tbaa !13
  br label %36949

36945:                                            ; preds = %36897
  %36946 = load i8, ptr %1064, align 1, !tbaa !17
  %36947 = zext i8 %36946 to i64
  %36948 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %36947, ptr %36948, align 8, !tbaa !13
  br label %36949

36949:                                            ; preds = %36945, %36941
  br label %36950

36950:                                            ; preds = %36949, %36862
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1066) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1065) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %1064) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1063) #3
  br label %36951

36951:                                            ; preds = %36950
  br label %36952

36952:                                            ; preds = %36951
  br label %37748

36953:                                            ; preds = %34125
  br label %36954

36954:                                            ; preds = %36953
  call void @llvm.lifetime.start.p0(i64 8, ptr %1074) #3
  store double 5.000000e-01, ptr %1074, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1075) #3
  %36955 = load ptr, ptr %10, align 8, !tbaa !5
  %36956 = load double, ptr %36955, align 8, !tbaa !11
  store double %36956, ptr %1075, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1076) #3
  store double 0.000000e+00, ptr %1076, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1077) #3
  store double 0.000000e+00, ptr %1077, align 8, !tbaa !11
  %36957 = load ptr, ptr %11, align 8, !tbaa !5
  %36958 = icmp ne ptr null, %36957
  br i1 %36958, label %36959, label %36983

36959:                                            ; preds = %36954
  %36960 = load double, ptr %1075, align 8, !tbaa !11
  %36961 = load double, ptr %1075, align 8, !tbaa !11
  %36962 = fcmp oeq double %36960, %36961
  br i1 %36962, label %36963, label %36983

36963:                                            ; preds = %36959
  %36964 = load ptr, ptr %12, align 8, !tbaa !5
  %36965 = icmp ne ptr null, %36964
  br i1 %36965, label %36966, label %36977

36966:                                            ; preds = %36963
  %36967 = load ptr, ptr %11, align 8, !tbaa !5
  %36968 = load double, ptr %36967, align 8, !tbaa !11
  %36969 = load double, ptr %1075, align 8, !tbaa !11
  %36970 = fcmp ole double %36968, %36969
  br i1 %36970, label %36971, label %36977

36971:                                            ; preds = %36966
  %36972 = load double, ptr %1075, align 8, !tbaa !11
  %36973 = load ptr, ptr %12, align 8, !tbaa !5
  %36974 = load double, ptr %36973, align 8, !tbaa !11
  %36975 = fcmp ole double %36972, %36974
  br i1 %36975, label %36976, label %36977

36976:                                            ; preds = %36971
  br label %36978

36977:                                            ; preds = %36971, %36966, %36963
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.24, i32 noundef 494, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

36978:                                            ; preds = %36976
  %36979 = load ptr, ptr %11, align 8, !tbaa !5
  %36980 = load double, ptr %36979, align 8, !tbaa !11
  store double %36980, ptr %1076, align 8, !tbaa !11
  %36981 = load ptr, ptr %12, align 8, !tbaa !5
  %36982 = load double, ptr %36981, align 8, !tbaa !11
  store double %36982, ptr %1077, align 8, !tbaa !11
  br label %36983

36983:                                            ; preds = %36978, %36959, %36954
  %36984 = load i32, ptr %8, align 4, !tbaa !9
  %36985 = icmp ule i32 6, %36984
  br i1 %36985, label %36986, label %37209

36986:                                            ; preds = %36983
  %36987 = load double, ptr %1076, align 8, !tbaa !11
  %36988 = load double, ptr %1077, align 8, !tbaa !11
  %36989 = fcmp olt double %36987, %36988
  br i1 %36989, label %36990, label %37209

36990:                                            ; preds = %36986
  %36991 = load i32, ptr %8, align 4, !tbaa !9
  %36992 = icmp ule i32 15, %36991
  br i1 %36992, label %36993, label %37033

36993:                                            ; preds = %36990
  call void @llvm.lifetime.start.p0(i64 8, ptr %1078) #3
  %36994 = load double, ptr %1076, align 8, !tbaa !11
  %36995 = fcmp olt double 0.000000e+00, %36994
  br i1 %36995, label %36996, label %36998

36996:                                            ; preds = %36993
  %36997 = load double, ptr %1076, align 8, !tbaa !11
  br label %36999

36998:                                            ; preds = %36993
  br label %36999

36999:                                            ; preds = %36998, %36996
  %37000 = phi double [ %36997, %36996 ], [ 0.000000e+00, %36998 ]
  store double %37000, ptr %1078, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1079) #3
  %37001 = load double, ptr %1077, align 8, !tbaa !11
  %37002 = fcmp olt double 0.000000e+00, %37001
  br i1 %37002, label %37003, label %37005

37003:                                            ; preds = %36999
  %37004 = load double, ptr %1077, align 8, !tbaa !11
  br label %37006

37005:                                            ; preds = %36999
  br label %37006

37006:                                            ; preds = %37005, %37003
  %37007 = phi double [ %37004, %37003 ], [ 0.000000e+00, %37005 ]
  store double %37007, ptr %1079, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1080) #3
  %37008 = load double, ptr %1078, align 8, !tbaa !11
  %37009 = load double, ptr %1079, align 8, !tbaa !11
  %37010 = fcmp olt double %37008, %37009
  br i1 %37010, label %37011, label %37019

37011:                                            ; preds = %37006
  %37012 = load double, ptr %1077, align 8, !tbaa !11
  %37013 = load double, ptr %1076, align 8, !tbaa !11
  %37014 = fsub double %37012, %37013
  %37015 = load double, ptr %1079, align 8, !tbaa !11
  %37016 = load double, ptr %1078, align 8, !tbaa !11
  %37017 = fsub double %37015, %37016
  %37018 = fdiv double %37014, %37017
  br label %37020

37019:                                            ; preds = %37006
  br label %37020

37020:                                            ; preds = %37019, %37011
  %37021 = phi double [ %37018, %37011 ], [ 1.000000e+00, %37019 ]
  store double %37021, ptr %1080, align 8, !tbaa !11
  %37022 = load double, ptr %1080, align 8, !tbaa !11
  %37023 = load double, ptr %1075, align 8, !tbaa !11
  %37024 = fcmp olt double 0.000000e+00, %37023
  br i1 %37024, label %37025, label %37027

37025:                                            ; preds = %37020
  %37026 = load double, ptr %1075, align 8, !tbaa !11
  br label %37028

37027:                                            ; preds = %37020
  br label %37028

37028:                                            ; preds = %37027, %37025
  %37029 = phi double [ %37026, %37025 ], [ 0.000000e+00, %37027 ]
  %37030 = fmul double %37022, %37029
  store double %37030, ptr %1075, align 8, !tbaa !11
  %37031 = load double, ptr %1078, align 8, !tbaa !11
  store double %37031, ptr %1076, align 8, !tbaa !11
  %37032 = load double, ptr %1079, align 8, !tbaa !11
  store double %37032, ptr %1077, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1080) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1079) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1078) #3
  br label %37089

37033:                                            ; preds = %36990
  %37034 = load i32, ptr %8, align 4, !tbaa !9
  %37035 = icmp ugt i32 6, %37034
  br i1 %37035, label %37064, label %37036

37036:                                            ; preds = %37033
  %37037 = load i32, ptr %8, align 4, !tbaa !9
  %37038 = icmp ugt i32 15, %37037
  br i1 %37038, label %37039, label %37050

37039:                                            ; preds = %37036
  %37040 = load i32, ptr %9, align 4, !tbaa !9
  %37041 = icmp ugt i32 15, %37040
  br i1 %37041, label %37042, label %37047

37042:                                            ; preds = %37039
  %37043 = load i32, ptr %9, align 4, !tbaa !9
  %37044 = load i32, ptr %8, align 4, !tbaa !9
  %37045 = icmp ugt i32 %37043, %37044
  %37046 = zext i1 %37045 to i32
  br label %37048

37047:                                            ; preds = %37039
  br label %37048

37048:                                            ; preds = %37047, %37042
  %37049 = phi i32 [ %37046, %37042 ], [ 0, %37047 ]
  br label %37061

37050:                                            ; preds = %37036
  %37051 = load i32, ptr %9, align 4, !tbaa !9
  %37052 = icmp ugt i32 15, %37051
  br i1 %37052, label %37053, label %37054

37053:                                            ; preds = %37050
  br label %37059

37054:                                            ; preds = %37050
  %37055 = load i32, ptr %9, align 4, !tbaa !9
  %37056 = load i32, ptr %8, align 4, !tbaa !9
  %37057 = icmp ugt i32 %37055, %37056
  %37058 = zext i1 %37057 to i32
  br label %37059

37059:                                            ; preds = %37054, %37053
  %37060 = phi i32 [ 0, %37053 ], [ %37058, %37054 ]
  br label %37061

37061:                                            ; preds = %37059, %37048
  %37062 = phi i32 [ %37049, %37048 ], [ %37060, %37059 ]
  %37063 = icmp ne i32 %37062, 0
  br label %37064

37064:                                            ; preds = %37061, %37033
  %37065 = phi i1 [ true, %37033 ], [ %37063, %37061 ]
  %37066 = zext i1 %37065 to i32
  %37067 = icmp eq i32 0, %37066
  br i1 %37067, label %37068, label %37088

37068:                                            ; preds = %37064
  %37069 = load double, ptr %1076, align 8, !tbaa !11
  %37070 = fcmp ogt double 0.000000e+00, %37069
  br i1 %37070, label %37071, label %37088

37071:                                            ; preds = %37068
  %37072 = load double, ptr %1077, align 8, !tbaa !11
  %37073 = fcmp olt double 0.000000e+00, %37072
  br i1 %37073, label %37074, label %37088

37074:                                            ; preds = %37071
  %37075 = load double, ptr %1076, align 8, !tbaa !11
  %37076 = fneg double %37075
  %37077 = load double, ptr %1077, align 8, !tbaa !11
  %37078 = fcmp olt double %37076, %37077
  br i1 %37078, label %37079, label %37081

37079:                                            ; preds = %37074
  %37080 = load double, ptr %1077, align 8, !tbaa !11
  br label %37084

37081:                                            ; preds = %37074
  %37082 = load double, ptr %1076, align 8, !tbaa !11
  %37083 = fneg double %37082
  br label %37084

37084:                                            ; preds = %37081, %37079
  %37085 = phi double [ %37080, %37079 ], [ %37083, %37081 ]
  store double %37085, ptr %1077, align 8, !tbaa !11
  %37086 = load double, ptr %1077, align 8, !tbaa !11
  %37087 = fneg double %37086
  store double %37087, ptr %1076, align 8, !tbaa !11
  br label %37088

37088:                                            ; preds = %37084, %37071, %37068, %37064
  br label %37089

37089:                                            ; preds = %37088, %37028
  call void @llvm.lifetime.start.p0(i64 8, ptr %1081) #3
  %37090 = load double, ptr %1076, align 8, !tbaa !11
  %37091 = fcmp ole double 0.000000e+00, %37090
  %37092 = zext i1 %37091 to i64
  %37093 = select i1 %37091, double 0.000000e+00, double 0.000000e+00
  store double %37093, ptr %1081, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1082) #3
  %37094 = load double, ptr %1077, align 8, !tbaa !11
  %37095 = fcmp ole double 0.000000e+00, %37094
  %37096 = zext i1 %37095 to i64
  %37097 = select i1 %37095, double 0x43F0000000000000, double 0.000000e+00
  store double %37097, ptr %1082, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1083) #3
  %37098 = load double, ptr %1075, align 8, !tbaa !11
  %37099 = load double, ptr %1076, align 8, !tbaa !11
  %37100 = fsub double %37098, %37099
  %37101 = load double, ptr %1082, align 8, !tbaa !11
  %37102 = load double, ptr %1081, align 8, !tbaa !11
  %37103 = fsub double %37101, %37102
  %37104 = fmul double %37100, %37103
  %37105 = load double, ptr %1077, align 8, !tbaa !11
  %37106 = load double, ptr %1076, align 8, !tbaa !11
  %37107 = fsub double %37105, %37106
  %37108 = fdiv double %37104, %37107
  %37109 = load double, ptr %1081, align 8, !tbaa !11
  %37110 = fadd double %37108, %37109
  store double %37110, ptr %1083, align 8, !tbaa !11
  %37111 = load double, ptr %1081, align 8, !tbaa !11
  %37112 = load double, ptr %1083, align 8, !tbaa !11
  %37113 = fcmp ole double 0.000000e+00, %37112
  br i1 %37113, label %37114, label %37117

37114:                                            ; preds = %37089
  %37115 = load double, ptr %1083, align 8, !tbaa !11
  %37116 = fadd double %37115, 5.000000e-01
  br label %37120

37117:                                            ; preds = %37089
  %37118 = load double, ptr %1083, align 8, !tbaa !11
  %37119 = fsub double %37118, 5.000000e-01
  br label %37120

37120:                                            ; preds = %37117, %37114
  %37121 = phi double [ %37116, %37114 ], [ %37119, %37117 ]
  %37122 = fcmp olt double %37111, %37121
  br i1 %37122, label %37123, label %37177

37123:                                            ; preds = %37120
  %37124 = load double, ptr %1083, align 8, !tbaa !11
  %37125 = fcmp ole double 0.000000e+00, %37124
  br i1 %37125, label %37126, label %37129

37126:                                            ; preds = %37123
  %37127 = load double, ptr %1083, align 8, !tbaa !11
  %37128 = fadd double %37127, 5.000000e-01
  br label %37132

37129:                                            ; preds = %37123
  %37130 = load double, ptr %1083, align 8, !tbaa !11
  %37131 = fsub double %37130, 5.000000e-01
  br label %37132

37132:                                            ; preds = %37129, %37126
  %37133 = phi double [ %37128, %37126 ], [ %37131, %37129 ]
  %37134 = load double, ptr %1082, align 8, !tbaa !11
  %37135 = fcmp ole double %37133, %37134
  br i1 %37135, label %37136, label %37147

37136:                                            ; preds = %37132
  %37137 = load double, ptr %1083, align 8, !tbaa !11
  %37138 = fcmp ole double 0.000000e+00, %37137
  br i1 %37138, label %37139, label %37142

37139:                                            ; preds = %37136
  %37140 = load double, ptr %1083, align 8, !tbaa !11
  %37141 = fadd double %37140, 5.000000e-01
  br label %37145

37142:                                            ; preds = %37136
  %37143 = load double, ptr %1083, align 8, !tbaa !11
  %37144 = fsub double %37143, 5.000000e-01
  br label %37145

37145:                                            ; preds = %37142, %37139
  %37146 = phi double [ %37141, %37139 ], [ %37144, %37142 ]
  br label %37175

37147:                                            ; preds = %37132
  %37148 = load double, ptr %1083, align 8, !tbaa !11
  %37149 = fcmp ole double 0.000000e+00, %37148
  br i1 %37149, label %37150, label %37153

37150:                                            ; preds = %37147
  %37151 = load double, ptr %1083, align 8, !tbaa !11
  %37152 = fadd double %37151, 5.000000e-01
  br label %37156

37153:                                            ; preds = %37147
  %37154 = load double, ptr %1083, align 8, !tbaa !11
  %37155 = fsub double %37154, 5.000000e-01
  br label %37156

37156:                                            ; preds = %37153, %37150
  %37157 = phi double [ %37152, %37150 ], [ %37155, %37153 ]
  %37158 = load double, ptr %1082, align 8, !tbaa !11
  %37159 = fcmp olt double %37157, %37158
  br i1 %37159, label %37160, label %37171

37160:                                            ; preds = %37156
  %37161 = load double, ptr %1083, align 8, !tbaa !11
  %37162 = fcmp ole double 0.000000e+00, %37161
  br i1 %37162, label %37163, label %37166

37163:                                            ; preds = %37160
  %37164 = load double, ptr %1083, align 8, !tbaa !11
  %37165 = fadd double %37164, 5.000000e-01
  br label %37169

37166:                                            ; preds = %37160
  %37167 = load double, ptr %1083, align 8, !tbaa !11
  %37168 = fsub double %37167, 5.000000e-01
  br label %37169

37169:                                            ; preds = %37166, %37163
  %37170 = phi double [ %37165, %37163 ], [ %37168, %37166 ]
  br label %37173

37171:                                            ; preds = %37156
  %37172 = load double, ptr %1082, align 8, !tbaa !11
  br label %37173

37173:                                            ; preds = %37171, %37169
  %37174 = phi double [ %37170, %37169 ], [ %37172, %37171 ]
  br label %37175

37175:                                            ; preds = %37173, %37145
  %37176 = phi double [ %37146, %37145 ], [ %37174, %37173 ]
  br label %37205

37177:                                            ; preds = %37120
  %37178 = load double, ptr %1081, align 8, !tbaa !11
  %37179 = load double, ptr %1083, align 8, !tbaa !11
  %37180 = fcmp ole double 0.000000e+00, %37179
  br i1 %37180, label %37181, label %37184

37181:                                            ; preds = %37177
  %37182 = load double, ptr %1083, align 8, !tbaa !11
  %37183 = fadd double %37182, 5.000000e-01
  br label %37187

37184:                                            ; preds = %37177
  %37185 = load double, ptr %1083, align 8, !tbaa !11
  %37186 = fsub double %37185, 5.000000e-01
  br label %37187

37187:                                            ; preds = %37184, %37181
  %37188 = phi double [ %37183, %37181 ], [ %37186, %37184 ]
  %37189 = fcmp olt double %37178, %37188
  br i1 %37189, label %37190, label %37201

37190:                                            ; preds = %37187
  %37191 = load double, ptr %1083, align 8, !tbaa !11
  %37192 = fcmp ole double 0.000000e+00, %37191
  br i1 %37192, label %37193, label %37196

37193:                                            ; preds = %37190
  %37194 = load double, ptr %1083, align 8, !tbaa !11
  %37195 = fadd double %37194, 5.000000e-01
  br label %37199

37196:                                            ; preds = %37190
  %37197 = load double, ptr %1083, align 8, !tbaa !11
  %37198 = fsub double %37197, 5.000000e-01
  br label %37199

37199:                                            ; preds = %37196, %37193
  %37200 = phi double [ %37195, %37193 ], [ %37198, %37196 ]
  br label %37203

37201:                                            ; preds = %37187
  %37202 = load double, ptr %1081, align 8, !tbaa !11
  br label %37203

37203:                                            ; preds = %37201, %37199
  %37204 = phi double [ %37200, %37199 ], [ %37202, %37201 ]
  br label %37205

37205:                                            ; preds = %37203, %37175
  %37206 = phi double [ %37176, %37175 ], [ %37204, %37203 ]
  %37207 = fptoui double %37206 to i64
  %37208 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %37207, ptr %37208, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %1083) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1082) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1081) #3
  br label %37335

37209:                                            ; preds = %36986, %36983
  %37210 = load i32, ptr %8, align 4, !tbaa !9
  %37211 = icmp ugt i32 6, %37210
  br i1 %37211, label %37240, label %37212

37212:                                            ; preds = %37209
  %37213 = load i32, ptr %8, align 4, !tbaa !9
  %37214 = icmp ugt i32 15, %37213
  br i1 %37214, label %37215, label %37226

37215:                                            ; preds = %37212
  %37216 = load i32, ptr %9, align 4, !tbaa !9
  %37217 = icmp ugt i32 15, %37216
  br i1 %37217, label %37218, label %37223

37218:                                            ; preds = %37215
  %37219 = load i32, ptr %9, align 4, !tbaa !9
  %37220 = load i32, ptr %8, align 4, !tbaa !9
  %37221 = icmp ugt i32 %37219, %37220
  %37222 = zext i1 %37221 to i32
  br label %37224

37223:                                            ; preds = %37215
  br label %37224

37224:                                            ; preds = %37223, %37218
  %37225 = phi i32 [ %37222, %37218 ], [ 0, %37223 ]
  br label %37237

37226:                                            ; preds = %37212
  %37227 = load i32, ptr %9, align 4, !tbaa !9
  %37228 = icmp ugt i32 15, %37227
  br i1 %37228, label %37229, label %37230

37229:                                            ; preds = %37226
  br label %37235

37230:                                            ; preds = %37226
  %37231 = load i32, ptr %9, align 4, !tbaa !9
  %37232 = load i32, ptr %8, align 4, !tbaa !9
  %37233 = icmp ugt i32 %37231, %37232
  %37234 = zext i1 %37233 to i32
  br label %37235

37235:                                            ; preds = %37230, %37229
  %37236 = phi i32 [ 0, %37229 ], [ %37234, %37230 ]
  br label %37237

37237:                                            ; preds = %37235, %37224
  %37238 = phi i32 [ %37225, %37224 ], [ %37236, %37235 ]
  %37239 = icmp ne i32 %37238, 0
  br label %37240

37240:                                            ; preds = %37237, %37209
  %37241 = phi i1 [ true, %37209 ], [ %37239, %37237 ]
  %37242 = zext i1 %37241 to i32
  %37243 = icmp eq i32 0, %37242
  br i1 %37243, label %37244, label %37321

37244:                                            ; preds = %37240
  %37245 = load double, ptr %1075, align 8, !tbaa !11
  %37246 = fcmp ole double 0.000000e+00, %37245
  br i1 %37246, label %37247, label %37282

37247:                                            ; preds = %37244
  %37248 = load double, ptr %1075, align 8, !tbaa !11
  %37249 = fadd double %37248, 5.000000e-01
  %37250 = fcmp olt double 0.000000e+00, %37249
  br i1 %37250, label %37251, label %37270

37251:                                            ; preds = %37247
  %37252 = load double, ptr %1075, align 8, !tbaa !11
  %37253 = fadd double %37252, 5.000000e-01
  %37254 = fcmp ole double %37253, 0x43F0000000000000
  br i1 %37254, label %37255, label %37258

37255:                                            ; preds = %37251
  %37256 = load double, ptr %1075, align 8, !tbaa !11
  %37257 = fadd double %37256, 5.000000e-01
  br label %37268

37258:                                            ; preds = %37251
  %37259 = load double, ptr %1075, align 8, !tbaa !11
  %37260 = fadd double %37259, 5.000000e-01
  %37261 = fcmp olt double %37260, 0x43F0000000000000
  br i1 %37261, label %37262, label %37265

37262:                                            ; preds = %37258
  %37263 = load double, ptr %1075, align 8, !tbaa !11
  %37264 = fadd double %37263, 5.000000e-01
  br label %37266

37265:                                            ; preds = %37258
  br label %37266

37266:                                            ; preds = %37265, %37262
  %37267 = phi double [ %37264, %37262 ], [ 0x43F0000000000000, %37265 ]
  br label %37268

37268:                                            ; preds = %37266, %37255
  %37269 = phi double [ %37257, %37255 ], [ %37267, %37266 ]
  br label %37280

37270:                                            ; preds = %37247
  %37271 = load double, ptr %1075, align 8, !tbaa !11
  %37272 = fadd double %37271, 5.000000e-01
  %37273 = fcmp olt double 0.000000e+00, %37272
  br i1 %37273, label %37274, label %37277

37274:                                            ; preds = %37270
  %37275 = load double, ptr %1075, align 8, !tbaa !11
  %37276 = fadd double %37275, 5.000000e-01
  br label %37278

37277:                                            ; preds = %37270
  br label %37278

37278:                                            ; preds = %37277, %37274
  %37279 = phi double [ %37276, %37274 ], [ 0.000000e+00, %37277 ]
  br label %37280

37280:                                            ; preds = %37278, %37268
  %37281 = phi double [ %37269, %37268 ], [ %37279, %37278 ]
  br label %37317

37282:                                            ; preds = %37244
  %37283 = load double, ptr %1075, align 8, !tbaa !11
  %37284 = fsub double %37283, 5.000000e-01
  %37285 = fcmp olt double 0.000000e+00, %37284
  br i1 %37285, label %37286, label %37305

37286:                                            ; preds = %37282
  %37287 = load double, ptr %1075, align 8, !tbaa !11
  %37288 = fsub double %37287, 5.000000e-01
  %37289 = fcmp ole double %37288, 0x43F0000000000000
  br i1 %37289, label %37290, label %37293

37290:                                            ; preds = %37286
  %37291 = load double, ptr %1075, align 8, !tbaa !11
  %37292 = fsub double %37291, 5.000000e-01
  br label %37303

37293:                                            ; preds = %37286
  %37294 = load double, ptr %1075, align 8, !tbaa !11
  %37295 = fsub double %37294, 5.000000e-01
  %37296 = fcmp olt double %37295, 0x43F0000000000000
  br i1 %37296, label %37297, label %37300

37297:                                            ; preds = %37293
  %37298 = load double, ptr %1075, align 8, !tbaa !11
  %37299 = fsub double %37298, 5.000000e-01
  br label %37301

37300:                                            ; preds = %37293
  br label %37301

37301:                                            ; preds = %37300, %37297
  %37302 = phi double [ %37299, %37297 ], [ 0x43F0000000000000, %37300 ]
  br label %37303

37303:                                            ; preds = %37301, %37290
  %37304 = phi double [ %37292, %37290 ], [ %37302, %37301 ]
  br label %37315

37305:                                            ; preds = %37282
  %37306 = load double, ptr %1075, align 8, !tbaa !11
  %37307 = fsub double %37306, 5.000000e-01
  %37308 = fcmp olt double 0.000000e+00, %37307
  br i1 %37308, label %37309, label %37312

37309:                                            ; preds = %37305
  %37310 = load double, ptr %1075, align 8, !tbaa !11
  %37311 = fsub double %37310, 5.000000e-01
  br label %37313

37312:                                            ; preds = %37305
  br label %37313

37313:                                            ; preds = %37312, %37309
  %37314 = phi double [ %37311, %37309 ], [ 0.000000e+00, %37312 ]
  br label %37315

37315:                                            ; preds = %37313, %37303
  %37316 = phi double [ %37304, %37303 ], [ %37314, %37313 ]
  br label %37317

37317:                                            ; preds = %37315, %37280
  %37318 = phi double [ %37281, %37280 ], [ %37316, %37315 ]
  %37319 = fptoui double %37318 to i64
  %37320 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %37319, ptr %37320, align 8, !tbaa !13
  br label %37334

37321:                                            ; preds = %37240
  %37322 = load double, ptr %1075, align 8, !tbaa !11
  %37323 = fcmp ole double 0.000000e+00, %37322
  br i1 %37323, label %37324, label %37327

37324:                                            ; preds = %37321
  %37325 = load double, ptr %1075, align 8, !tbaa !11
  %37326 = fadd double %37325, 5.000000e-01
  br label %37330

37327:                                            ; preds = %37321
  %37328 = load double, ptr %1075, align 8, !tbaa !11
  %37329 = fsub double %37328, 5.000000e-01
  br label %37330

37330:                                            ; preds = %37327, %37324
  %37331 = phi double [ %37326, %37324 ], [ %37329, %37327 ]
  %37332 = fptoui double %37331 to i64
  %37333 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %37332, ptr %37333, align 8, !tbaa !13
  br label %37334

37334:                                            ; preds = %37330, %37317
  br label %37335

37335:                                            ; preds = %37334, %37205
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1077) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1076) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1075) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1074) #3
  br label %37336

37336:                                            ; preds = %37335
  br label %37337

37337:                                            ; preds = %37336
  br label %37748

37338:                                            ; preds = %34125
  br label %37339

37339:                                            ; preds = %37338
  call void @llvm.lifetime.start.p0(i64 8, ptr %1084) #3
  store double 5.000000e-01, ptr %1084, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %1085) #3
  %37340 = load ptr, ptr %10, align 8, !tbaa !5
  %37341 = load float, ptr %37340, align 4, !tbaa !18
  store float %37341, ptr %1085, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %1086) #3
  store double 0.000000e+00, ptr %1086, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1087) #3
  store double 0.000000e+00, ptr %1087, align 8, !tbaa !11
  %37342 = load ptr, ptr %11, align 8, !tbaa !5
  %37343 = icmp ne ptr null, %37342
  br i1 %37343, label %37344, label %37370

37344:                                            ; preds = %37339
  %37345 = load float, ptr %1085, align 4, !tbaa !18
  %37346 = load float, ptr %1085, align 4, !tbaa !18
  %37347 = fcmp oeq float %37345, %37346
  br i1 %37347, label %37348, label %37370

37348:                                            ; preds = %37344
  %37349 = load ptr, ptr %12, align 8, !tbaa !5
  %37350 = icmp ne ptr null, %37349
  br i1 %37350, label %37351, label %37362

37351:                                            ; preds = %37348
  %37352 = load ptr, ptr %11, align 8, !tbaa !5
  %37353 = load float, ptr %37352, align 4, !tbaa !18
  %37354 = load float, ptr %1085, align 4, !tbaa !18
  %37355 = fcmp ole float %37353, %37354
  br i1 %37355, label %37356, label %37362

37356:                                            ; preds = %37351
  %37357 = load float, ptr %1085, align 4, !tbaa !18
  %37358 = load ptr, ptr %12, align 8, !tbaa !5
  %37359 = load float, ptr %37358, align 4, !tbaa !18
  %37360 = fcmp ole float %37357, %37359
  br i1 %37360, label %37361, label %37362

37361:                                            ; preds = %37356
  br label %37363

37362:                                            ; preds = %37356, %37351, %37348
  call void @__assert_fail(ptr noundef @.str.51, ptr noundef @.str.24, i32 noundef 494, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

37363:                                            ; preds = %37361
  %37364 = load ptr, ptr %11, align 8, !tbaa !5
  %37365 = load float, ptr %37364, align 4, !tbaa !18
  %37366 = fpext float %37365 to double
  store double %37366, ptr %1086, align 8, !tbaa !11
  %37367 = load ptr, ptr %12, align 8, !tbaa !5
  %37368 = load float, ptr %37367, align 4, !tbaa !18
  %37369 = fpext float %37368 to double
  store double %37369, ptr %1087, align 8, !tbaa !11
  br label %37370

37370:                                            ; preds = %37363, %37344, %37339
  %37371 = load i32, ptr %8, align 4, !tbaa !9
  %37372 = icmp ule i32 6, %37371
  br i1 %37372, label %37373, label %37599

37373:                                            ; preds = %37370
  %37374 = load double, ptr %1086, align 8, !tbaa !11
  %37375 = load double, ptr %1087, align 8, !tbaa !11
  %37376 = fcmp olt double %37374, %37375
  br i1 %37376, label %37377, label %37599

37377:                                            ; preds = %37373
  %37378 = load i32, ptr %8, align 4, !tbaa !9
  %37379 = icmp ule i32 15, %37378
  br i1 %37379, label %37380, label %37422

37380:                                            ; preds = %37377
  call void @llvm.lifetime.start.p0(i64 8, ptr %1088) #3
  %37381 = load double, ptr %1086, align 8, !tbaa !11
  %37382 = fcmp olt double 0.000000e+00, %37381
  br i1 %37382, label %37383, label %37385

37383:                                            ; preds = %37380
  %37384 = load double, ptr %1086, align 8, !tbaa !11
  br label %37386

37385:                                            ; preds = %37380
  br label %37386

37386:                                            ; preds = %37385, %37383
  %37387 = phi double [ %37384, %37383 ], [ 0.000000e+00, %37385 ]
  store double %37387, ptr %1088, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1089) #3
  %37388 = load double, ptr %1087, align 8, !tbaa !11
  %37389 = fcmp olt double 0.000000e+00, %37388
  br i1 %37389, label %37390, label %37392

37390:                                            ; preds = %37386
  %37391 = load double, ptr %1087, align 8, !tbaa !11
  br label %37393

37392:                                            ; preds = %37386
  br label %37393

37393:                                            ; preds = %37392, %37390
  %37394 = phi double [ %37391, %37390 ], [ 0.000000e+00, %37392 ]
  store double %37394, ptr %1089, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1090) #3
  %37395 = load double, ptr %1088, align 8, !tbaa !11
  %37396 = load double, ptr %1089, align 8, !tbaa !11
  %37397 = fcmp olt double %37395, %37396
  br i1 %37397, label %37398, label %37406

37398:                                            ; preds = %37393
  %37399 = load double, ptr %1087, align 8, !tbaa !11
  %37400 = load double, ptr %1086, align 8, !tbaa !11
  %37401 = fsub double %37399, %37400
  %37402 = load double, ptr %1089, align 8, !tbaa !11
  %37403 = load double, ptr %1088, align 8, !tbaa !11
  %37404 = fsub double %37402, %37403
  %37405 = fdiv double %37401, %37404
  br label %37407

37406:                                            ; preds = %37393
  br label %37407

37407:                                            ; preds = %37406, %37398
  %37408 = phi double [ %37405, %37398 ], [ 1.000000e+00, %37406 ]
  store double %37408, ptr %1090, align 8, !tbaa !11
  %37409 = load double, ptr %1090, align 8, !tbaa !11
  %37410 = load float, ptr %1085, align 4, !tbaa !18
  %37411 = fcmp olt float 0.000000e+00, %37410
  br i1 %37411, label %37412, label %37414

37412:                                            ; preds = %37407
  %37413 = load float, ptr %1085, align 4, !tbaa !18
  br label %37415

37414:                                            ; preds = %37407
  br label %37415

37415:                                            ; preds = %37414, %37412
  %37416 = phi float [ %37413, %37412 ], [ 0.000000e+00, %37414 ]
  %37417 = fpext float %37416 to double
  %37418 = fmul double %37409, %37417
  %37419 = fptrunc double %37418 to float
  store float %37419, ptr %1085, align 4, !tbaa !18
  %37420 = load double, ptr %1088, align 8, !tbaa !11
  store double %37420, ptr %1086, align 8, !tbaa !11
  %37421 = load double, ptr %1089, align 8, !tbaa !11
  store double %37421, ptr %1087, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1090) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1089) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1088) #3
  br label %37478

37422:                                            ; preds = %37377
  %37423 = load i32, ptr %8, align 4, !tbaa !9
  %37424 = icmp ugt i32 6, %37423
  br i1 %37424, label %37453, label %37425

37425:                                            ; preds = %37422
  %37426 = load i32, ptr %8, align 4, !tbaa !9
  %37427 = icmp ugt i32 15, %37426
  br i1 %37427, label %37428, label %37439

37428:                                            ; preds = %37425
  %37429 = load i32, ptr %9, align 4, !tbaa !9
  %37430 = icmp ugt i32 15, %37429
  br i1 %37430, label %37431, label %37436

37431:                                            ; preds = %37428
  %37432 = load i32, ptr %9, align 4, !tbaa !9
  %37433 = load i32, ptr %8, align 4, !tbaa !9
  %37434 = icmp ugt i32 %37432, %37433
  %37435 = zext i1 %37434 to i32
  br label %37437

37436:                                            ; preds = %37428
  br label %37437

37437:                                            ; preds = %37436, %37431
  %37438 = phi i32 [ %37435, %37431 ], [ 0, %37436 ]
  br label %37450

37439:                                            ; preds = %37425
  %37440 = load i32, ptr %9, align 4, !tbaa !9
  %37441 = icmp ugt i32 15, %37440
  br i1 %37441, label %37442, label %37443

37442:                                            ; preds = %37439
  br label %37448

37443:                                            ; preds = %37439
  %37444 = load i32, ptr %9, align 4, !tbaa !9
  %37445 = load i32, ptr %8, align 4, !tbaa !9
  %37446 = icmp ugt i32 %37444, %37445
  %37447 = zext i1 %37446 to i32
  br label %37448

37448:                                            ; preds = %37443, %37442
  %37449 = phi i32 [ 0, %37442 ], [ %37447, %37443 ]
  br label %37450

37450:                                            ; preds = %37448, %37437
  %37451 = phi i32 [ %37438, %37437 ], [ %37449, %37448 ]
  %37452 = icmp ne i32 %37451, 0
  br label %37453

37453:                                            ; preds = %37450, %37422
  %37454 = phi i1 [ true, %37422 ], [ %37452, %37450 ]
  %37455 = zext i1 %37454 to i32
  %37456 = icmp eq i32 0, %37455
  br i1 %37456, label %37457, label %37477

37457:                                            ; preds = %37453
  %37458 = load double, ptr %1086, align 8, !tbaa !11
  %37459 = fcmp ogt double 0.000000e+00, %37458
  br i1 %37459, label %37460, label %37477

37460:                                            ; preds = %37457
  %37461 = load double, ptr %1087, align 8, !tbaa !11
  %37462 = fcmp olt double 0.000000e+00, %37461
  br i1 %37462, label %37463, label %37477

37463:                                            ; preds = %37460
  %37464 = load double, ptr %1086, align 8, !tbaa !11
  %37465 = fneg double %37464
  %37466 = load double, ptr %1087, align 8, !tbaa !11
  %37467 = fcmp olt double %37465, %37466
  br i1 %37467, label %37468, label %37470

37468:                                            ; preds = %37463
  %37469 = load double, ptr %1087, align 8, !tbaa !11
  br label %37473

37470:                                            ; preds = %37463
  %37471 = load double, ptr %1086, align 8, !tbaa !11
  %37472 = fneg double %37471
  br label %37473

37473:                                            ; preds = %37470, %37468
  %37474 = phi double [ %37469, %37468 ], [ %37472, %37470 ]
  store double %37474, ptr %1087, align 8, !tbaa !11
  %37475 = load double, ptr %1087, align 8, !tbaa !11
  %37476 = fneg double %37475
  store double %37476, ptr %1086, align 8, !tbaa !11
  br label %37477

37477:                                            ; preds = %37473, %37460, %37457, %37453
  br label %37478

37478:                                            ; preds = %37477, %37415
  call void @llvm.lifetime.start.p0(i64 8, ptr %1091) #3
  %37479 = load double, ptr %1086, align 8, !tbaa !11
  %37480 = fcmp ole double 0.000000e+00, %37479
  %37481 = zext i1 %37480 to i64
  %37482 = select i1 %37480, double 0.000000e+00, double 0.000000e+00
  store double %37482, ptr %1091, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1092) #3
  %37483 = load double, ptr %1087, align 8, !tbaa !11
  %37484 = fcmp ole double 0.000000e+00, %37483
  %37485 = zext i1 %37484 to i64
  %37486 = select i1 %37484, double 0x43F0000000000000, double 0.000000e+00
  store double %37486, ptr %1092, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1093) #3
  %37487 = load float, ptr %1085, align 4, !tbaa !18
  %37488 = fpext float %37487 to double
  %37489 = load double, ptr %1086, align 8, !tbaa !11
  %37490 = fsub double %37488, %37489
  %37491 = load double, ptr %1092, align 8, !tbaa !11
  %37492 = load double, ptr %1091, align 8, !tbaa !11
  %37493 = fsub double %37491, %37492
  %37494 = fmul double %37490, %37493
  %37495 = load double, ptr %1087, align 8, !tbaa !11
  %37496 = load double, ptr %1086, align 8, !tbaa !11
  %37497 = fsub double %37495, %37496
  %37498 = fdiv double %37494, %37497
  %37499 = load double, ptr %1091, align 8, !tbaa !11
  %37500 = fadd double %37498, %37499
  store double %37500, ptr %1093, align 8, !tbaa !11
  %37501 = load double, ptr %1091, align 8, !tbaa !11
  %37502 = load double, ptr %1093, align 8, !tbaa !11
  %37503 = fcmp ole double 0.000000e+00, %37502
  br i1 %37503, label %37504, label %37507

37504:                                            ; preds = %37478
  %37505 = load double, ptr %1093, align 8, !tbaa !11
  %37506 = fadd double %37505, 5.000000e-01
  br label %37510

37507:                                            ; preds = %37478
  %37508 = load double, ptr %1093, align 8, !tbaa !11
  %37509 = fsub double %37508, 5.000000e-01
  br label %37510

37510:                                            ; preds = %37507, %37504
  %37511 = phi double [ %37506, %37504 ], [ %37509, %37507 ]
  %37512 = fcmp olt double %37501, %37511
  br i1 %37512, label %37513, label %37567

37513:                                            ; preds = %37510
  %37514 = load double, ptr %1093, align 8, !tbaa !11
  %37515 = fcmp ole double 0.000000e+00, %37514
  br i1 %37515, label %37516, label %37519

37516:                                            ; preds = %37513
  %37517 = load double, ptr %1093, align 8, !tbaa !11
  %37518 = fadd double %37517, 5.000000e-01
  br label %37522

37519:                                            ; preds = %37513
  %37520 = load double, ptr %1093, align 8, !tbaa !11
  %37521 = fsub double %37520, 5.000000e-01
  br label %37522

37522:                                            ; preds = %37519, %37516
  %37523 = phi double [ %37518, %37516 ], [ %37521, %37519 ]
  %37524 = load double, ptr %1092, align 8, !tbaa !11
  %37525 = fcmp ole double %37523, %37524
  br i1 %37525, label %37526, label %37537

37526:                                            ; preds = %37522
  %37527 = load double, ptr %1093, align 8, !tbaa !11
  %37528 = fcmp ole double 0.000000e+00, %37527
  br i1 %37528, label %37529, label %37532

37529:                                            ; preds = %37526
  %37530 = load double, ptr %1093, align 8, !tbaa !11
  %37531 = fadd double %37530, 5.000000e-01
  br label %37535

37532:                                            ; preds = %37526
  %37533 = load double, ptr %1093, align 8, !tbaa !11
  %37534 = fsub double %37533, 5.000000e-01
  br label %37535

37535:                                            ; preds = %37532, %37529
  %37536 = phi double [ %37531, %37529 ], [ %37534, %37532 ]
  br label %37565

37537:                                            ; preds = %37522
  %37538 = load double, ptr %1093, align 8, !tbaa !11
  %37539 = fcmp ole double 0.000000e+00, %37538
  br i1 %37539, label %37540, label %37543

37540:                                            ; preds = %37537
  %37541 = load double, ptr %1093, align 8, !tbaa !11
  %37542 = fadd double %37541, 5.000000e-01
  br label %37546

37543:                                            ; preds = %37537
  %37544 = load double, ptr %1093, align 8, !tbaa !11
  %37545 = fsub double %37544, 5.000000e-01
  br label %37546

37546:                                            ; preds = %37543, %37540
  %37547 = phi double [ %37542, %37540 ], [ %37545, %37543 ]
  %37548 = load double, ptr %1092, align 8, !tbaa !11
  %37549 = fcmp olt double %37547, %37548
  br i1 %37549, label %37550, label %37561

37550:                                            ; preds = %37546
  %37551 = load double, ptr %1093, align 8, !tbaa !11
  %37552 = fcmp ole double 0.000000e+00, %37551
  br i1 %37552, label %37553, label %37556

37553:                                            ; preds = %37550
  %37554 = load double, ptr %1093, align 8, !tbaa !11
  %37555 = fadd double %37554, 5.000000e-01
  br label %37559

37556:                                            ; preds = %37550
  %37557 = load double, ptr %1093, align 8, !tbaa !11
  %37558 = fsub double %37557, 5.000000e-01
  br label %37559

37559:                                            ; preds = %37556, %37553
  %37560 = phi double [ %37555, %37553 ], [ %37558, %37556 ]
  br label %37563

37561:                                            ; preds = %37546
  %37562 = load double, ptr %1092, align 8, !tbaa !11
  br label %37563

37563:                                            ; preds = %37561, %37559
  %37564 = phi double [ %37560, %37559 ], [ %37562, %37561 ]
  br label %37565

37565:                                            ; preds = %37563, %37535
  %37566 = phi double [ %37536, %37535 ], [ %37564, %37563 ]
  br label %37595

37567:                                            ; preds = %37510
  %37568 = load double, ptr %1091, align 8, !tbaa !11
  %37569 = load double, ptr %1093, align 8, !tbaa !11
  %37570 = fcmp ole double 0.000000e+00, %37569
  br i1 %37570, label %37571, label %37574

37571:                                            ; preds = %37567
  %37572 = load double, ptr %1093, align 8, !tbaa !11
  %37573 = fadd double %37572, 5.000000e-01
  br label %37577

37574:                                            ; preds = %37567
  %37575 = load double, ptr %1093, align 8, !tbaa !11
  %37576 = fsub double %37575, 5.000000e-01
  br label %37577

37577:                                            ; preds = %37574, %37571
  %37578 = phi double [ %37573, %37571 ], [ %37576, %37574 ]
  %37579 = fcmp olt double %37568, %37578
  br i1 %37579, label %37580, label %37591

37580:                                            ; preds = %37577
  %37581 = load double, ptr %1093, align 8, !tbaa !11
  %37582 = fcmp ole double 0.000000e+00, %37581
  br i1 %37582, label %37583, label %37586

37583:                                            ; preds = %37580
  %37584 = load double, ptr %1093, align 8, !tbaa !11
  %37585 = fadd double %37584, 5.000000e-01
  br label %37589

37586:                                            ; preds = %37580
  %37587 = load double, ptr %1093, align 8, !tbaa !11
  %37588 = fsub double %37587, 5.000000e-01
  br label %37589

37589:                                            ; preds = %37586, %37583
  %37590 = phi double [ %37585, %37583 ], [ %37588, %37586 ]
  br label %37593

37591:                                            ; preds = %37577
  %37592 = load double, ptr %1091, align 8, !tbaa !11
  br label %37593

37593:                                            ; preds = %37591, %37589
  %37594 = phi double [ %37590, %37589 ], [ %37592, %37591 ]
  br label %37595

37595:                                            ; preds = %37593, %37565
  %37596 = phi double [ %37566, %37565 ], [ %37594, %37593 ]
  %37597 = fptoui double %37596 to i64
  %37598 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %37597, ptr %37598, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %1093) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1092) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1091) #3
  br label %37741

37599:                                            ; preds = %37373, %37370
  %37600 = load i32, ptr %8, align 4, !tbaa !9
  %37601 = icmp ugt i32 6, %37600
  br i1 %37601, label %37630, label %37602

37602:                                            ; preds = %37599
  %37603 = load i32, ptr %8, align 4, !tbaa !9
  %37604 = icmp ugt i32 15, %37603
  br i1 %37604, label %37605, label %37616

37605:                                            ; preds = %37602
  %37606 = load i32, ptr %9, align 4, !tbaa !9
  %37607 = icmp ugt i32 15, %37606
  br i1 %37607, label %37608, label %37613

37608:                                            ; preds = %37605
  %37609 = load i32, ptr %9, align 4, !tbaa !9
  %37610 = load i32, ptr %8, align 4, !tbaa !9
  %37611 = icmp ugt i32 %37609, %37610
  %37612 = zext i1 %37611 to i32
  br label %37614

37613:                                            ; preds = %37605
  br label %37614

37614:                                            ; preds = %37613, %37608
  %37615 = phi i32 [ %37612, %37608 ], [ 0, %37613 ]
  br label %37627

37616:                                            ; preds = %37602
  %37617 = load i32, ptr %9, align 4, !tbaa !9
  %37618 = icmp ugt i32 15, %37617
  br i1 %37618, label %37619, label %37620

37619:                                            ; preds = %37616
  br label %37625

37620:                                            ; preds = %37616
  %37621 = load i32, ptr %9, align 4, !tbaa !9
  %37622 = load i32, ptr %8, align 4, !tbaa !9
  %37623 = icmp ugt i32 %37621, %37622
  %37624 = zext i1 %37623 to i32
  br label %37625

37625:                                            ; preds = %37620, %37619
  %37626 = phi i32 [ 0, %37619 ], [ %37624, %37620 ]
  br label %37627

37627:                                            ; preds = %37625, %37614
  %37628 = phi i32 [ %37615, %37614 ], [ %37626, %37625 ]
  %37629 = icmp ne i32 %37628, 0
  br label %37630

37630:                                            ; preds = %37627, %37599
  %37631 = phi i1 [ true, %37599 ], [ %37629, %37627 ]
  %37632 = zext i1 %37631 to i32
  %37633 = icmp eq i32 0, %37632
  br i1 %37633, label %37634, label %37725

37634:                                            ; preds = %37630
  %37635 = load float, ptr %1085, align 4, !tbaa !18
  %37636 = fcmp ole float 0.000000e+00, %37635
  br i1 %37636, label %37637, label %37679

37637:                                            ; preds = %37634
  %37638 = load float, ptr %1085, align 4, !tbaa !18
  %37639 = fpext float %37638 to double
  %37640 = fadd double %37639, 5.000000e-01
  %37641 = fcmp olt double 0.000000e+00, %37640
  br i1 %37641, label %37642, label %37665

37642:                                            ; preds = %37637
  %37643 = load float, ptr %1085, align 4, !tbaa !18
  %37644 = fpext float %37643 to double
  %37645 = fadd double %37644, 5.000000e-01
  %37646 = fcmp ole double %37645, 0x43F0000000000000
  br i1 %37646, label %37647, label %37651

37647:                                            ; preds = %37642
  %37648 = load float, ptr %1085, align 4, !tbaa !18
  %37649 = fpext float %37648 to double
  %37650 = fadd double %37649, 5.000000e-01
  br label %37663

37651:                                            ; preds = %37642
  %37652 = load float, ptr %1085, align 4, !tbaa !18
  %37653 = fpext float %37652 to double
  %37654 = fadd double %37653, 5.000000e-01
  %37655 = fcmp olt double %37654, 0x43F0000000000000
  br i1 %37655, label %37656, label %37660

37656:                                            ; preds = %37651
  %37657 = load float, ptr %1085, align 4, !tbaa !18
  %37658 = fpext float %37657 to double
  %37659 = fadd double %37658, 5.000000e-01
  br label %37661

37660:                                            ; preds = %37651
  br label %37661

37661:                                            ; preds = %37660, %37656
  %37662 = phi double [ %37659, %37656 ], [ 0x43F0000000000000, %37660 ]
  br label %37663

37663:                                            ; preds = %37661, %37647
  %37664 = phi double [ %37650, %37647 ], [ %37662, %37661 ]
  br label %37677

37665:                                            ; preds = %37637
  %37666 = load float, ptr %1085, align 4, !tbaa !18
  %37667 = fpext float %37666 to double
  %37668 = fadd double %37667, 5.000000e-01
  %37669 = fcmp olt double 0.000000e+00, %37668
  br i1 %37669, label %37670, label %37674

37670:                                            ; preds = %37665
  %37671 = load float, ptr %1085, align 4, !tbaa !18
  %37672 = fpext float %37671 to double
  %37673 = fadd double %37672, 5.000000e-01
  br label %37675

37674:                                            ; preds = %37665
  br label %37675

37675:                                            ; preds = %37674, %37670
  %37676 = phi double [ %37673, %37670 ], [ 0.000000e+00, %37674 ]
  br label %37677

37677:                                            ; preds = %37675, %37663
  %37678 = phi double [ %37664, %37663 ], [ %37676, %37675 ]
  br label %37721

37679:                                            ; preds = %37634
  %37680 = load float, ptr %1085, align 4, !tbaa !18
  %37681 = fpext float %37680 to double
  %37682 = fsub double %37681, 5.000000e-01
  %37683 = fcmp olt double 0.000000e+00, %37682
  br i1 %37683, label %37684, label %37707

37684:                                            ; preds = %37679
  %37685 = load float, ptr %1085, align 4, !tbaa !18
  %37686 = fpext float %37685 to double
  %37687 = fsub double %37686, 5.000000e-01
  %37688 = fcmp ole double %37687, 0x43F0000000000000
  br i1 %37688, label %37689, label %37693

37689:                                            ; preds = %37684
  %37690 = load float, ptr %1085, align 4, !tbaa !18
  %37691 = fpext float %37690 to double
  %37692 = fsub double %37691, 5.000000e-01
  br label %37705

37693:                                            ; preds = %37684
  %37694 = load float, ptr %1085, align 4, !tbaa !18
  %37695 = fpext float %37694 to double
  %37696 = fsub double %37695, 5.000000e-01
  %37697 = fcmp olt double %37696, 0x43F0000000000000
  br i1 %37697, label %37698, label %37702

37698:                                            ; preds = %37693
  %37699 = load float, ptr %1085, align 4, !tbaa !18
  %37700 = fpext float %37699 to double
  %37701 = fsub double %37700, 5.000000e-01
  br label %37703

37702:                                            ; preds = %37693
  br label %37703

37703:                                            ; preds = %37702, %37698
  %37704 = phi double [ %37701, %37698 ], [ 0x43F0000000000000, %37702 ]
  br label %37705

37705:                                            ; preds = %37703, %37689
  %37706 = phi double [ %37692, %37689 ], [ %37704, %37703 ]
  br label %37719

37707:                                            ; preds = %37679
  %37708 = load float, ptr %1085, align 4, !tbaa !18
  %37709 = fpext float %37708 to double
  %37710 = fsub double %37709, 5.000000e-01
  %37711 = fcmp olt double 0.000000e+00, %37710
  br i1 %37711, label %37712, label %37716

37712:                                            ; preds = %37707
  %37713 = load float, ptr %1085, align 4, !tbaa !18
  %37714 = fpext float %37713 to double
  %37715 = fsub double %37714, 5.000000e-01
  br label %37717

37716:                                            ; preds = %37707
  br label %37717

37717:                                            ; preds = %37716, %37712
  %37718 = phi double [ %37715, %37712 ], [ 0.000000e+00, %37716 ]
  br label %37719

37719:                                            ; preds = %37717, %37705
  %37720 = phi double [ %37706, %37705 ], [ %37718, %37717 ]
  br label %37721

37721:                                            ; preds = %37719, %37677
  %37722 = phi double [ %37678, %37677 ], [ %37720, %37719 ]
  %37723 = fptoui double %37722 to i64
  %37724 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %37723, ptr %37724, align 8, !tbaa !13
  br label %37740

37725:                                            ; preds = %37630
  %37726 = load float, ptr %1085, align 4, !tbaa !18
  %37727 = fcmp ole float 0.000000e+00, %37726
  br i1 %37727, label %37728, label %37732

37728:                                            ; preds = %37725
  %37729 = load float, ptr %1085, align 4, !tbaa !18
  %37730 = fpext float %37729 to double
  %37731 = fadd double %37730, 5.000000e-01
  br label %37736

37732:                                            ; preds = %37725
  %37733 = load float, ptr %1085, align 4, !tbaa !18
  %37734 = fpext float %37733 to double
  %37735 = fsub double %37734, 5.000000e-01
  br label %37736

37736:                                            ; preds = %37732, %37728
  %37737 = phi double [ %37731, %37728 ], [ %37735, %37732 ]
  %37738 = fptoui double %37737 to i64
  %37739 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %37738, ptr %37739, align 8, !tbaa !13
  br label %37740

37740:                                            ; preds = %37736, %37721
  br label %37741

37741:                                            ; preds = %37740, %37595
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1087) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1086) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %1085) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1084) #3
  br label %37742

37742:                                            ; preds = %37741
  br label %37743

37743:                                            ; preds = %37742
  br label %37748

37744:                                            ; preds = %34125
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 494, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

37745:                                            ; preds = %34125
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 494, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

37746:                                            ; preds = %34125
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 494, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

37747:                                            ; preds = %34125
  store i32 1, ptr %13, align 4, !tbaa !9
  br label %37748

37748:                                            ; preds = %37747, %37743, %37337, %36952, %36592, %36232, %35885, %35539, %35179, %34819, %34472
  br label %37749

37749:                                            ; preds = %37748
  br label %37750

37750:                                            ; preds = %37749
  br label %48657

37751:                                            ; preds = %6
  br label %37752

37752:                                            ; preds = %37751
  %37753 = load ptr, ptr %7, align 8, !tbaa !5
  %37754 = icmp ne ptr null, %37753
  br i1 %37754, label %37755, label %37759

37755:                                            ; preds = %37752
  %37756 = load ptr, ptr %10, align 8, !tbaa !5
  %37757 = icmp ne ptr null, %37756
  br i1 %37757, label %37758, label %37759

37758:                                            ; preds = %37755
  br label %37760

37759:                                            ; preds = %37755, %37752
  call void @__assert_fail(ptr noundef @.str.41, ptr noundef @.str.24, i32 noundef 497, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

37760:                                            ; preds = %37758
  %37761 = load i32, ptr %9, align 4, !tbaa !9
  switch i32 %37761, label %41382 [
    i32 6, label %37762
    i32 8, label %38109
    i32 10, label %38455
    i32 12, label %38815
    i32 15, label %39175
    i32 16, label %39522
    i32 17, label %39868
    i32 18, label %40228
    i32 0, label %40588
    i32 1, label %40973
    i32 3, label %41379
    i32 2, label %41380
    i32 4, label %41381
  ]

37762:                                            ; preds = %37760
  br label %37763

37763:                                            ; preds = %37762
  call void @llvm.lifetime.start.p0(i64 8, ptr %1094) #3
  store double 5.000000e-01, ptr %1094, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1095) #3
  %37764 = load ptr, ptr %10, align 8, !tbaa !5
  %37765 = load i64, ptr %37764, align 8, !tbaa !13
  store i64 %37765, ptr %1095, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %1096) #3
  store double 0.000000e+00, ptr %1096, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1097) #3
  store double 0.000000e+00, ptr %1097, align 8, !tbaa !11
  %37766 = load ptr, ptr %11, align 8, !tbaa !5
  %37767 = icmp ne ptr null, %37766
  br i1 %37767, label %37768, label %37790

37768:                                            ; preds = %37763
  %37769 = load ptr, ptr %12, align 8, !tbaa !5
  %37770 = icmp ne ptr null, %37769
  br i1 %37770, label %37771, label %37782

37771:                                            ; preds = %37768
  %37772 = load ptr, ptr %11, align 8, !tbaa !5
  %37773 = load i64, ptr %37772, align 8, !tbaa !13
  %37774 = load i64, ptr %1095, align 8, !tbaa !13
  %37775 = icmp sle i64 %37773, %37774
  br i1 %37775, label %37776, label %37782

37776:                                            ; preds = %37771
  %37777 = load i64, ptr %1095, align 8, !tbaa !13
  %37778 = load ptr, ptr %12, align 8, !tbaa !5
  %37779 = load i64, ptr %37778, align 8, !tbaa !13
  %37780 = icmp sle i64 %37777, %37779
  br i1 %37780, label %37781, label %37782

37781:                                            ; preds = %37776
  br label %37783

37782:                                            ; preds = %37776, %37771, %37768
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.24, i32 noundef 497, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

37783:                                            ; preds = %37781
  %37784 = load ptr, ptr %11, align 8, !tbaa !5
  %37785 = load i64, ptr %37784, align 8, !tbaa !13
  %37786 = sitofp i64 %37785 to double
  store double %37786, ptr %1096, align 8, !tbaa !11
  %37787 = load ptr, ptr %12, align 8, !tbaa !5
  %37788 = load i64, ptr %37787, align 8, !tbaa !13
  %37789 = sitofp i64 %37788 to double
  store double %37789, ptr %1097, align 8, !tbaa !11
  br label %37790

37790:                                            ; preds = %37783, %37763
  %37791 = load i32, ptr %8, align 4, !tbaa !9
  %37792 = icmp ule i32 6, %37791
  br i1 %37792, label %37793, label %38029

37793:                                            ; preds = %37790
  %37794 = load double, ptr %1096, align 8, !tbaa !11
  %37795 = load double, ptr %1097, align 8, !tbaa !11
  %37796 = fcmp olt double %37794, %37795
  br i1 %37796, label %37797, label %38029

37797:                                            ; preds = %37793
  %37798 = load i32, ptr %8, align 4, !tbaa !9
  %37799 = icmp ule i32 15, %37798
  br i1 %37799, label %37800, label %37852

37800:                                            ; preds = %37797
  call void @llvm.lifetime.start.p0(i64 8, ptr %1098) #3
  %37801 = load double, ptr %1096, align 8, !tbaa !11
  %37802 = fcmp olt double 0.000000e+00, %37801
  br i1 %37802, label %37803, label %37805

37803:                                            ; preds = %37800
  %37804 = load double, ptr %1096, align 8, !tbaa !11
  br label %37806

37805:                                            ; preds = %37800
  br label %37806

37806:                                            ; preds = %37805, %37803
  %37807 = phi double [ %37804, %37803 ], [ 0.000000e+00, %37805 ]
  store double %37807, ptr %1098, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1099) #3
  %37808 = load double, ptr %1097, align 8, !tbaa !11
  %37809 = fcmp olt double 0.000000e+00, %37808
  br i1 %37809, label %37810, label %37812

37810:                                            ; preds = %37806
  %37811 = load double, ptr %1097, align 8, !tbaa !11
  br label %37813

37812:                                            ; preds = %37806
  br label %37813

37813:                                            ; preds = %37812, %37810
  %37814 = phi double [ %37811, %37810 ], [ 0.000000e+00, %37812 ]
  store double %37814, ptr %1099, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1100) #3
  %37815 = load double, ptr %1098, align 8, !tbaa !11
  %37816 = load double, ptr %1099, align 8, !tbaa !11
  %37817 = fcmp olt double %37815, %37816
  br i1 %37817, label %37818, label %37826

37818:                                            ; preds = %37813
  %37819 = load double, ptr %1097, align 8, !tbaa !11
  %37820 = load double, ptr %1096, align 8, !tbaa !11
  %37821 = fsub double %37819, %37820
  %37822 = load double, ptr %1099, align 8, !tbaa !11
  %37823 = load double, ptr %1098, align 8, !tbaa !11
  %37824 = fsub double %37822, %37823
  %37825 = fdiv double %37821, %37824
  br label %37827

37826:                                            ; preds = %37813
  br label %37827

37827:                                            ; preds = %37826, %37818
  %37828 = phi double [ %37825, %37818 ], [ 1.000000e+00, %37826 ]
  store double %37828, ptr %1100, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1101) #3
  %37829 = load double, ptr %1100, align 8, !tbaa !11
  %37830 = load i64, ptr %1095, align 8, !tbaa !13
  %37831 = icmp slt i64 0, %37830
  br i1 %37831, label %37832, label %37834

37832:                                            ; preds = %37827
  %37833 = load i64, ptr %1095, align 8, !tbaa !13
  br label %37835

37834:                                            ; preds = %37827
  br label %37835

37835:                                            ; preds = %37834, %37832
  %37836 = phi i64 [ %37833, %37832 ], [ 0, %37834 ]
  %37837 = sitofp i64 %37836 to double
  %37838 = fmul double %37829, %37837
  store double %37838, ptr %1101, align 8, !tbaa !11
  %37839 = load double, ptr %1101, align 8, !tbaa !11
  %37840 = fcmp ole double 0.000000e+00, %37839
  br i1 %37840, label %37841, label %37844

37841:                                            ; preds = %37835
  %37842 = load double, ptr %1101, align 8, !tbaa !11
  %37843 = fadd double %37842, 5.000000e-01
  br label %37847

37844:                                            ; preds = %37835
  %37845 = load double, ptr %1101, align 8, !tbaa !11
  %37846 = fsub double %37845, 5.000000e-01
  br label %37847

37847:                                            ; preds = %37844, %37841
  %37848 = phi double [ %37843, %37841 ], [ %37846, %37844 ]
  %37849 = fptosi double %37848 to i64
  store i64 %37849, ptr %1095, align 8, !tbaa !13
  %37850 = load double, ptr %1098, align 8, !tbaa !11
  store double %37850, ptr %1096, align 8, !tbaa !11
  %37851 = load double, ptr %1099, align 8, !tbaa !11
  store double %37851, ptr %1097, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1101) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1100) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1099) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1098) #3
  br label %37908

37852:                                            ; preds = %37797
  %37853 = load i32, ptr %8, align 4, !tbaa !9
  %37854 = icmp ugt i32 6, %37853
  br i1 %37854, label %37883, label %37855

37855:                                            ; preds = %37852
  %37856 = load i32, ptr %8, align 4, !tbaa !9
  %37857 = icmp ugt i32 15, %37856
  br i1 %37857, label %37858, label %37869

37858:                                            ; preds = %37855
  %37859 = load i32, ptr %9, align 4, !tbaa !9
  %37860 = icmp ugt i32 15, %37859
  br i1 %37860, label %37861, label %37866

37861:                                            ; preds = %37858
  %37862 = load i32, ptr %9, align 4, !tbaa !9
  %37863 = load i32, ptr %8, align 4, !tbaa !9
  %37864 = icmp ugt i32 %37862, %37863
  %37865 = zext i1 %37864 to i32
  br label %37867

37866:                                            ; preds = %37858
  br label %37867

37867:                                            ; preds = %37866, %37861
  %37868 = phi i32 [ %37865, %37861 ], [ 0, %37866 ]
  br label %37880

37869:                                            ; preds = %37855
  %37870 = load i32, ptr %9, align 4, !tbaa !9
  %37871 = icmp ugt i32 15, %37870
  br i1 %37871, label %37872, label %37873

37872:                                            ; preds = %37869
  br label %37878

37873:                                            ; preds = %37869
  %37874 = load i32, ptr %9, align 4, !tbaa !9
  %37875 = load i32, ptr %8, align 4, !tbaa !9
  %37876 = icmp ugt i32 %37874, %37875
  %37877 = zext i1 %37876 to i32
  br label %37878

37878:                                            ; preds = %37873, %37872
  %37879 = phi i32 [ 0, %37872 ], [ %37877, %37873 ]
  br label %37880

37880:                                            ; preds = %37878, %37867
  %37881 = phi i32 [ %37868, %37867 ], [ %37879, %37878 ]
  %37882 = icmp ne i32 %37881, 0
  br label %37883

37883:                                            ; preds = %37880, %37852
  %37884 = phi i1 [ true, %37852 ], [ %37882, %37880 ]
  %37885 = zext i1 %37884 to i32
  %37886 = icmp eq i32 0, %37885
  br i1 %37886, label %37887, label %37907

37887:                                            ; preds = %37883
  %37888 = load double, ptr %1096, align 8, !tbaa !11
  %37889 = fcmp ogt double 0.000000e+00, %37888
  br i1 %37889, label %37890, label %37907

37890:                                            ; preds = %37887
  %37891 = load double, ptr %1097, align 8, !tbaa !11
  %37892 = fcmp olt double 0.000000e+00, %37891
  br i1 %37892, label %37893, label %37907

37893:                                            ; preds = %37890
  %37894 = load double, ptr %1096, align 8, !tbaa !11
  %37895 = fneg double %37894
  %37896 = load double, ptr %1097, align 8, !tbaa !11
  %37897 = fcmp olt double %37895, %37896
  br i1 %37897, label %37898, label %37900

37898:                                            ; preds = %37893
  %37899 = load double, ptr %1097, align 8, !tbaa !11
  br label %37903

37900:                                            ; preds = %37893
  %37901 = load double, ptr %1096, align 8, !tbaa !11
  %37902 = fneg double %37901
  br label %37903

37903:                                            ; preds = %37900, %37898
  %37904 = phi double [ %37899, %37898 ], [ %37902, %37900 ]
  store double %37904, ptr %1097, align 8, !tbaa !11
  %37905 = load double, ptr %1097, align 8, !tbaa !11
  %37906 = fneg double %37905
  store double %37906, ptr %1096, align 8, !tbaa !11
  br label %37907

37907:                                            ; preds = %37903, %37890, %37887, %37883
  br label %37908

37908:                                            ; preds = %37907, %37847
  call void @llvm.lifetime.start.p0(i64 8, ptr %1102) #3
  %37909 = load double, ptr %1096, align 8, !tbaa !11
  %37910 = fcmp ole double 0.000000e+00, %37909
  %37911 = zext i1 %37910 to i64
  %37912 = select i1 %37910, double 0.000000e+00, double 0.000000e+00
  store double %37912, ptr %1102, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1103) #3
  %37913 = load double, ptr %1097, align 8, !tbaa !11
  %37914 = fcmp ole double 0.000000e+00, %37913
  %37915 = zext i1 %37914 to i64
  %37916 = select i1 %37914, double 0x41EFFFFFFFE00000, double 0.000000e+00
  store double %37916, ptr %1103, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1104) #3
  %37917 = load i64, ptr %1095, align 8, !tbaa !13
  %37918 = sitofp i64 %37917 to double
  %37919 = load double, ptr %1096, align 8, !tbaa !11
  %37920 = fsub double %37918, %37919
  %37921 = load double, ptr %1103, align 8, !tbaa !11
  %37922 = load double, ptr %1102, align 8, !tbaa !11
  %37923 = fsub double %37921, %37922
  %37924 = fmul double %37920, %37923
  %37925 = load double, ptr %1097, align 8, !tbaa !11
  %37926 = load double, ptr %1096, align 8, !tbaa !11
  %37927 = fsub double %37925, %37926
  %37928 = fdiv double %37924, %37927
  %37929 = load double, ptr %1102, align 8, !tbaa !11
  %37930 = fadd double %37928, %37929
  store double %37930, ptr %1104, align 8, !tbaa !11
  %37931 = load double, ptr %1102, align 8, !tbaa !11
  %37932 = load double, ptr %1104, align 8, !tbaa !11
  %37933 = fcmp ole double 0.000000e+00, %37932
  br i1 %37933, label %37934, label %37937

37934:                                            ; preds = %37908
  %37935 = load double, ptr %1104, align 8, !tbaa !11
  %37936 = fadd double %37935, 5.000000e-01
  br label %37940

37937:                                            ; preds = %37908
  %37938 = load double, ptr %1104, align 8, !tbaa !11
  %37939 = fsub double %37938, 5.000000e-01
  br label %37940

37940:                                            ; preds = %37937, %37934
  %37941 = phi double [ %37936, %37934 ], [ %37939, %37937 ]
  %37942 = fcmp olt double %37931, %37941
  br i1 %37942, label %37943, label %37997

37943:                                            ; preds = %37940
  %37944 = load double, ptr %1104, align 8, !tbaa !11
  %37945 = fcmp ole double 0.000000e+00, %37944
  br i1 %37945, label %37946, label %37949

37946:                                            ; preds = %37943
  %37947 = load double, ptr %1104, align 8, !tbaa !11
  %37948 = fadd double %37947, 5.000000e-01
  br label %37952

37949:                                            ; preds = %37943
  %37950 = load double, ptr %1104, align 8, !tbaa !11
  %37951 = fsub double %37950, 5.000000e-01
  br label %37952

37952:                                            ; preds = %37949, %37946
  %37953 = phi double [ %37948, %37946 ], [ %37951, %37949 ]
  %37954 = load double, ptr %1103, align 8, !tbaa !11
  %37955 = fcmp ole double %37953, %37954
  br i1 %37955, label %37956, label %37967

37956:                                            ; preds = %37952
  %37957 = load double, ptr %1104, align 8, !tbaa !11
  %37958 = fcmp ole double 0.000000e+00, %37957
  br i1 %37958, label %37959, label %37962

37959:                                            ; preds = %37956
  %37960 = load double, ptr %1104, align 8, !tbaa !11
  %37961 = fadd double %37960, 5.000000e-01
  br label %37965

37962:                                            ; preds = %37956
  %37963 = load double, ptr %1104, align 8, !tbaa !11
  %37964 = fsub double %37963, 5.000000e-01
  br label %37965

37965:                                            ; preds = %37962, %37959
  %37966 = phi double [ %37961, %37959 ], [ %37964, %37962 ]
  br label %37995

37967:                                            ; preds = %37952
  %37968 = load double, ptr %1104, align 8, !tbaa !11
  %37969 = fcmp ole double 0.000000e+00, %37968
  br i1 %37969, label %37970, label %37973

37970:                                            ; preds = %37967
  %37971 = load double, ptr %1104, align 8, !tbaa !11
  %37972 = fadd double %37971, 5.000000e-01
  br label %37976

37973:                                            ; preds = %37967
  %37974 = load double, ptr %1104, align 8, !tbaa !11
  %37975 = fsub double %37974, 5.000000e-01
  br label %37976

37976:                                            ; preds = %37973, %37970
  %37977 = phi double [ %37972, %37970 ], [ %37975, %37973 ]
  %37978 = load double, ptr %1103, align 8, !tbaa !11
  %37979 = fcmp olt double %37977, %37978
  br i1 %37979, label %37980, label %37991

37980:                                            ; preds = %37976
  %37981 = load double, ptr %1104, align 8, !tbaa !11
  %37982 = fcmp ole double 0.000000e+00, %37981
  br i1 %37982, label %37983, label %37986

37983:                                            ; preds = %37980
  %37984 = load double, ptr %1104, align 8, !tbaa !11
  %37985 = fadd double %37984, 5.000000e-01
  br label %37989

37986:                                            ; preds = %37980
  %37987 = load double, ptr %1104, align 8, !tbaa !11
  %37988 = fsub double %37987, 5.000000e-01
  br label %37989

37989:                                            ; preds = %37986, %37983
  %37990 = phi double [ %37985, %37983 ], [ %37988, %37986 ]
  br label %37993

37991:                                            ; preds = %37976
  %37992 = load double, ptr %1103, align 8, !tbaa !11
  br label %37993

37993:                                            ; preds = %37991, %37989
  %37994 = phi double [ %37990, %37989 ], [ %37992, %37991 ]
  br label %37995

37995:                                            ; preds = %37993, %37965
  %37996 = phi double [ %37966, %37965 ], [ %37994, %37993 ]
  br label %38025

37997:                                            ; preds = %37940
  %37998 = load double, ptr %1102, align 8, !tbaa !11
  %37999 = load double, ptr %1104, align 8, !tbaa !11
  %38000 = fcmp ole double 0.000000e+00, %37999
  br i1 %38000, label %38001, label %38004

38001:                                            ; preds = %37997
  %38002 = load double, ptr %1104, align 8, !tbaa !11
  %38003 = fadd double %38002, 5.000000e-01
  br label %38007

38004:                                            ; preds = %37997
  %38005 = load double, ptr %1104, align 8, !tbaa !11
  %38006 = fsub double %38005, 5.000000e-01
  br label %38007

38007:                                            ; preds = %38004, %38001
  %38008 = phi double [ %38003, %38001 ], [ %38006, %38004 ]
  %38009 = fcmp olt double %37998, %38008
  br i1 %38009, label %38010, label %38021

38010:                                            ; preds = %38007
  %38011 = load double, ptr %1104, align 8, !tbaa !11
  %38012 = fcmp ole double 0.000000e+00, %38011
  br i1 %38012, label %38013, label %38016

38013:                                            ; preds = %38010
  %38014 = load double, ptr %1104, align 8, !tbaa !11
  %38015 = fadd double %38014, 5.000000e-01
  br label %38019

38016:                                            ; preds = %38010
  %38017 = load double, ptr %1104, align 8, !tbaa !11
  %38018 = fsub double %38017, 5.000000e-01
  br label %38019

38019:                                            ; preds = %38016, %38013
  %38020 = phi double [ %38015, %38013 ], [ %38018, %38016 ]
  br label %38023

38021:                                            ; preds = %38007
  %38022 = load double, ptr %1102, align 8, !tbaa !11
  br label %38023

38023:                                            ; preds = %38021, %38019
  %38024 = phi double [ %38020, %38019 ], [ %38022, %38021 ]
  br label %38025

38025:                                            ; preds = %38023, %37995
  %38026 = phi double [ %37996, %37995 ], [ %38024, %38023 ]
  %38027 = fptoui double %38026 to i32
  %38028 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %38027, ptr %38028, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1104) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1103) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1102) #3
  br label %38106

38029:                                            ; preds = %37793, %37790
  %38030 = load i32, ptr %8, align 4, !tbaa !9
  %38031 = icmp ugt i32 6, %38030
  br i1 %38031, label %38060, label %38032

38032:                                            ; preds = %38029
  %38033 = load i32, ptr %8, align 4, !tbaa !9
  %38034 = icmp ugt i32 15, %38033
  br i1 %38034, label %38035, label %38046

38035:                                            ; preds = %38032
  %38036 = load i32, ptr %9, align 4, !tbaa !9
  %38037 = icmp ugt i32 15, %38036
  br i1 %38037, label %38038, label %38043

38038:                                            ; preds = %38035
  %38039 = load i32, ptr %9, align 4, !tbaa !9
  %38040 = load i32, ptr %8, align 4, !tbaa !9
  %38041 = icmp ugt i32 %38039, %38040
  %38042 = zext i1 %38041 to i32
  br label %38044

38043:                                            ; preds = %38035
  br label %38044

38044:                                            ; preds = %38043, %38038
  %38045 = phi i32 [ %38042, %38038 ], [ 0, %38043 ]
  br label %38057

38046:                                            ; preds = %38032
  %38047 = load i32, ptr %9, align 4, !tbaa !9
  %38048 = icmp ugt i32 15, %38047
  br i1 %38048, label %38049, label %38050

38049:                                            ; preds = %38046
  br label %38055

38050:                                            ; preds = %38046
  %38051 = load i32, ptr %9, align 4, !tbaa !9
  %38052 = load i32, ptr %8, align 4, !tbaa !9
  %38053 = icmp ugt i32 %38051, %38052
  %38054 = zext i1 %38053 to i32
  br label %38055

38055:                                            ; preds = %38050, %38049
  %38056 = phi i32 [ 0, %38049 ], [ %38054, %38050 ]
  br label %38057

38057:                                            ; preds = %38055, %38044
  %38058 = phi i32 [ %38045, %38044 ], [ %38056, %38055 ]
  %38059 = icmp ne i32 %38058, 0
  br label %38060

38060:                                            ; preds = %38057, %38029
  %38061 = phi i1 [ true, %38029 ], [ %38059, %38057 ]
  %38062 = zext i1 %38061 to i32
  %38063 = icmp eq i32 0, %38062
  br i1 %38063, label %38064, label %38101

38064:                                            ; preds = %38060
  %38065 = load i64, ptr %1095, align 8, !tbaa !13
  %38066 = sitofp i64 %38065 to double
  %38067 = fcmp olt double 0.000000e+00, %38066
  br i1 %38067, label %38068, label %38087

38068:                                            ; preds = %38064
  %38069 = load i64, ptr %1095, align 8, !tbaa !13
  %38070 = sitofp i64 %38069 to double
  %38071 = fcmp ole double %38070, 0x41EFFFFFFFE00000
  br i1 %38071, label %38072, label %38075

38072:                                            ; preds = %38068
  %38073 = load i64, ptr %1095, align 8, !tbaa !13
  %38074 = sitofp i64 %38073 to double
  br label %38085

38075:                                            ; preds = %38068
  %38076 = load i64, ptr %1095, align 8, !tbaa !13
  %38077 = sitofp i64 %38076 to double
  %38078 = fcmp olt double %38077, 0x41EFFFFFFFE00000
  br i1 %38078, label %38079, label %38082

38079:                                            ; preds = %38075
  %38080 = load i64, ptr %1095, align 8, !tbaa !13
  %38081 = sitofp i64 %38080 to double
  br label %38083

38082:                                            ; preds = %38075
  br label %38083

38083:                                            ; preds = %38082, %38079
  %38084 = phi double [ %38081, %38079 ], [ 0x41EFFFFFFFE00000, %38082 ]
  br label %38085

38085:                                            ; preds = %38083, %38072
  %38086 = phi double [ %38074, %38072 ], [ %38084, %38083 ]
  br label %38097

38087:                                            ; preds = %38064
  %38088 = load i64, ptr %1095, align 8, !tbaa !13
  %38089 = sitofp i64 %38088 to double
  %38090 = fcmp olt double 0.000000e+00, %38089
  br i1 %38090, label %38091, label %38094

38091:                                            ; preds = %38087
  %38092 = load i64, ptr %1095, align 8, !tbaa !13
  %38093 = sitofp i64 %38092 to double
  br label %38095

38094:                                            ; preds = %38087
  br label %38095

38095:                                            ; preds = %38094, %38091
  %38096 = phi double [ %38093, %38091 ], [ 0.000000e+00, %38094 ]
  br label %38097

38097:                                            ; preds = %38095, %38085
  %38098 = phi double [ %38086, %38085 ], [ %38096, %38095 ]
  %38099 = fptoui double %38098 to i32
  %38100 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %38099, ptr %38100, align 4, !tbaa !9
  br label %38105

38101:                                            ; preds = %38060
  %38102 = load i64, ptr %1095, align 8, !tbaa !13
  %38103 = trunc i64 %38102 to i32
  %38104 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %38103, ptr %38104, align 4, !tbaa !9
  br label %38105

38105:                                            ; preds = %38101, %38097
  br label %38106

38106:                                            ; preds = %38105, %38025
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1097) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1096) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1095) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1094) #3
  br label %38107

38107:                                            ; preds = %38106
  br label %38108

38108:                                            ; preds = %38107
  br label %41383

38109:                                            ; preds = %37760
  br label %38110

38110:                                            ; preds = %38109
  call void @llvm.lifetime.start.p0(i64 8, ptr %1105) #3
  store double 5.000000e-01, ptr %1105, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %1106) #3
  %38111 = load ptr, ptr %10, align 8, !tbaa !5
  %38112 = load i32, ptr %38111, align 4, !tbaa !9
  store i32 %38112, ptr %1106, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1107) #3
  store double 0.000000e+00, ptr %1107, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1108) #3
  store double 0.000000e+00, ptr %1108, align 8, !tbaa !11
  %38113 = load ptr, ptr %11, align 8, !tbaa !5
  %38114 = icmp ne ptr null, %38113
  br i1 %38114, label %38115, label %38137

38115:                                            ; preds = %38110
  %38116 = load ptr, ptr %12, align 8, !tbaa !5
  %38117 = icmp ne ptr null, %38116
  br i1 %38117, label %38118, label %38129

38118:                                            ; preds = %38115
  %38119 = load ptr, ptr %11, align 8, !tbaa !5
  %38120 = load i32, ptr %38119, align 4, !tbaa !9
  %38121 = load i32, ptr %1106, align 4, !tbaa !9
  %38122 = icmp sle i32 %38120, %38121
  br i1 %38122, label %38123, label %38129

38123:                                            ; preds = %38118
  %38124 = load i32, ptr %1106, align 4, !tbaa !9
  %38125 = load ptr, ptr %12, align 8, !tbaa !5
  %38126 = load i32, ptr %38125, align 4, !tbaa !9
  %38127 = icmp sle i32 %38124, %38126
  br i1 %38127, label %38128, label %38129

38128:                                            ; preds = %38123
  br label %38130

38129:                                            ; preds = %38123, %38118, %38115
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.24, i32 noundef 497, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

38130:                                            ; preds = %38128
  %38131 = load ptr, ptr %11, align 8, !tbaa !5
  %38132 = load i32, ptr %38131, align 4, !tbaa !9
  %38133 = sitofp i32 %38132 to double
  store double %38133, ptr %1107, align 8, !tbaa !11
  %38134 = load ptr, ptr %12, align 8, !tbaa !5
  %38135 = load i32, ptr %38134, align 4, !tbaa !9
  %38136 = sitofp i32 %38135 to double
  store double %38136, ptr %1108, align 8, !tbaa !11
  br label %38137

38137:                                            ; preds = %38130, %38110
  %38138 = load i32, ptr %8, align 4, !tbaa !9
  %38139 = icmp ule i32 6, %38138
  br i1 %38139, label %38140, label %38376

38140:                                            ; preds = %38137
  %38141 = load double, ptr %1107, align 8, !tbaa !11
  %38142 = load double, ptr %1108, align 8, !tbaa !11
  %38143 = fcmp olt double %38141, %38142
  br i1 %38143, label %38144, label %38376

38144:                                            ; preds = %38140
  %38145 = load i32, ptr %8, align 4, !tbaa !9
  %38146 = icmp ule i32 15, %38145
  br i1 %38146, label %38147, label %38199

38147:                                            ; preds = %38144
  call void @llvm.lifetime.start.p0(i64 8, ptr %1109) #3
  %38148 = load double, ptr %1107, align 8, !tbaa !11
  %38149 = fcmp olt double 0.000000e+00, %38148
  br i1 %38149, label %38150, label %38152

38150:                                            ; preds = %38147
  %38151 = load double, ptr %1107, align 8, !tbaa !11
  br label %38153

38152:                                            ; preds = %38147
  br label %38153

38153:                                            ; preds = %38152, %38150
  %38154 = phi double [ %38151, %38150 ], [ 0.000000e+00, %38152 ]
  store double %38154, ptr %1109, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1110) #3
  %38155 = load double, ptr %1108, align 8, !tbaa !11
  %38156 = fcmp olt double 0.000000e+00, %38155
  br i1 %38156, label %38157, label %38159

38157:                                            ; preds = %38153
  %38158 = load double, ptr %1108, align 8, !tbaa !11
  br label %38160

38159:                                            ; preds = %38153
  br label %38160

38160:                                            ; preds = %38159, %38157
  %38161 = phi double [ %38158, %38157 ], [ 0.000000e+00, %38159 ]
  store double %38161, ptr %1110, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1111) #3
  %38162 = load double, ptr %1109, align 8, !tbaa !11
  %38163 = load double, ptr %1110, align 8, !tbaa !11
  %38164 = fcmp olt double %38162, %38163
  br i1 %38164, label %38165, label %38173

38165:                                            ; preds = %38160
  %38166 = load double, ptr %1108, align 8, !tbaa !11
  %38167 = load double, ptr %1107, align 8, !tbaa !11
  %38168 = fsub double %38166, %38167
  %38169 = load double, ptr %1110, align 8, !tbaa !11
  %38170 = load double, ptr %1109, align 8, !tbaa !11
  %38171 = fsub double %38169, %38170
  %38172 = fdiv double %38168, %38171
  br label %38174

38173:                                            ; preds = %38160
  br label %38174

38174:                                            ; preds = %38173, %38165
  %38175 = phi double [ %38172, %38165 ], [ 1.000000e+00, %38173 ]
  store double %38175, ptr %1111, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1112) #3
  %38176 = load double, ptr %1111, align 8, !tbaa !11
  %38177 = load i32, ptr %1106, align 4, !tbaa !9
  %38178 = icmp slt i32 0, %38177
  br i1 %38178, label %38179, label %38181

38179:                                            ; preds = %38174
  %38180 = load i32, ptr %1106, align 4, !tbaa !9
  br label %38182

38181:                                            ; preds = %38174
  br label %38182

38182:                                            ; preds = %38181, %38179
  %38183 = phi i32 [ %38180, %38179 ], [ 0, %38181 ]
  %38184 = sitofp i32 %38183 to double
  %38185 = fmul double %38176, %38184
  store double %38185, ptr %1112, align 8, !tbaa !11
  %38186 = load double, ptr %1112, align 8, !tbaa !11
  %38187 = fcmp ole double 0.000000e+00, %38186
  br i1 %38187, label %38188, label %38191

38188:                                            ; preds = %38182
  %38189 = load double, ptr %1112, align 8, !tbaa !11
  %38190 = fadd double %38189, 5.000000e-01
  br label %38194

38191:                                            ; preds = %38182
  %38192 = load double, ptr %1112, align 8, !tbaa !11
  %38193 = fsub double %38192, 5.000000e-01
  br label %38194

38194:                                            ; preds = %38191, %38188
  %38195 = phi double [ %38190, %38188 ], [ %38193, %38191 ]
  %38196 = fptosi double %38195 to i32
  store i32 %38196, ptr %1106, align 4, !tbaa !9
  %38197 = load double, ptr %1109, align 8, !tbaa !11
  store double %38197, ptr %1107, align 8, !tbaa !11
  %38198 = load double, ptr %1110, align 8, !tbaa !11
  store double %38198, ptr %1108, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1112) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1111) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1110) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1109) #3
  br label %38255

38199:                                            ; preds = %38144
  %38200 = load i32, ptr %8, align 4, !tbaa !9
  %38201 = icmp ugt i32 6, %38200
  br i1 %38201, label %38230, label %38202

38202:                                            ; preds = %38199
  %38203 = load i32, ptr %8, align 4, !tbaa !9
  %38204 = icmp ugt i32 15, %38203
  br i1 %38204, label %38205, label %38216

38205:                                            ; preds = %38202
  %38206 = load i32, ptr %9, align 4, !tbaa !9
  %38207 = icmp ugt i32 15, %38206
  br i1 %38207, label %38208, label %38213

38208:                                            ; preds = %38205
  %38209 = load i32, ptr %9, align 4, !tbaa !9
  %38210 = load i32, ptr %8, align 4, !tbaa !9
  %38211 = icmp ugt i32 %38209, %38210
  %38212 = zext i1 %38211 to i32
  br label %38214

38213:                                            ; preds = %38205
  br label %38214

38214:                                            ; preds = %38213, %38208
  %38215 = phi i32 [ %38212, %38208 ], [ 0, %38213 ]
  br label %38227

38216:                                            ; preds = %38202
  %38217 = load i32, ptr %9, align 4, !tbaa !9
  %38218 = icmp ugt i32 15, %38217
  br i1 %38218, label %38219, label %38220

38219:                                            ; preds = %38216
  br label %38225

38220:                                            ; preds = %38216
  %38221 = load i32, ptr %9, align 4, !tbaa !9
  %38222 = load i32, ptr %8, align 4, !tbaa !9
  %38223 = icmp ugt i32 %38221, %38222
  %38224 = zext i1 %38223 to i32
  br label %38225

38225:                                            ; preds = %38220, %38219
  %38226 = phi i32 [ 0, %38219 ], [ %38224, %38220 ]
  br label %38227

38227:                                            ; preds = %38225, %38214
  %38228 = phi i32 [ %38215, %38214 ], [ %38226, %38225 ]
  %38229 = icmp ne i32 %38228, 0
  br label %38230

38230:                                            ; preds = %38227, %38199
  %38231 = phi i1 [ true, %38199 ], [ %38229, %38227 ]
  %38232 = zext i1 %38231 to i32
  %38233 = icmp eq i32 0, %38232
  br i1 %38233, label %38234, label %38254

38234:                                            ; preds = %38230
  %38235 = load double, ptr %1107, align 8, !tbaa !11
  %38236 = fcmp ogt double 0.000000e+00, %38235
  br i1 %38236, label %38237, label %38254

38237:                                            ; preds = %38234
  %38238 = load double, ptr %1108, align 8, !tbaa !11
  %38239 = fcmp olt double 0.000000e+00, %38238
  br i1 %38239, label %38240, label %38254

38240:                                            ; preds = %38237
  %38241 = load double, ptr %1107, align 8, !tbaa !11
  %38242 = fneg double %38241
  %38243 = load double, ptr %1108, align 8, !tbaa !11
  %38244 = fcmp olt double %38242, %38243
  br i1 %38244, label %38245, label %38247

38245:                                            ; preds = %38240
  %38246 = load double, ptr %1108, align 8, !tbaa !11
  br label %38250

38247:                                            ; preds = %38240
  %38248 = load double, ptr %1107, align 8, !tbaa !11
  %38249 = fneg double %38248
  br label %38250

38250:                                            ; preds = %38247, %38245
  %38251 = phi double [ %38246, %38245 ], [ %38249, %38247 ]
  store double %38251, ptr %1108, align 8, !tbaa !11
  %38252 = load double, ptr %1108, align 8, !tbaa !11
  %38253 = fneg double %38252
  store double %38253, ptr %1107, align 8, !tbaa !11
  br label %38254

38254:                                            ; preds = %38250, %38237, %38234, %38230
  br label %38255

38255:                                            ; preds = %38254, %38194
  call void @llvm.lifetime.start.p0(i64 8, ptr %1113) #3
  %38256 = load double, ptr %1107, align 8, !tbaa !11
  %38257 = fcmp ole double 0.000000e+00, %38256
  %38258 = zext i1 %38257 to i64
  %38259 = select i1 %38257, double 0.000000e+00, double 0.000000e+00
  store double %38259, ptr %1113, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1114) #3
  %38260 = load double, ptr %1108, align 8, !tbaa !11
  %38261 = fcmp ole double 0.000000e+00, %38260
  %38262 = zext i1 %38261 to i64
  %38263 = select i1 %38261, double 0x41EFFFFFFFE00000, double 0.000000e+00
  store double %38263, ptr %1114, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1115) #3
  %38264 = load i32, ptr %1106, align 4, !tbaa !9
  %38265 = sitofp i32 %38264 to double
  %38266 = load double, ptr %1107, align 8, !tbaa !11
  %38267 = fsub double %38265, %38266
  %38268 = load double, ptr %1114, align 8, !tbaa !11
  %38269 = load double, ptr %1113, align 8, !tbaa !11
  %38270 = fsub double %38268, %38269
  %38271 = fmul double %38267, %38270
  %38272 = load double, ptr %1108, align 8, !tbaa !11
  %38273 = load double, ptr %1107, align 8, !tbaa !11
  %38274 = fsub double %38272, %38273
  %38275 = fdiv double %38271, %38274
  %38276 = load double, ptr %1113, align 8, !tbaa !11
  %38277 = fadd double %38275, %38276
  store double %38277, ptr %1115, align 8, !tbaa !11
  %38278 = load double, ptr %1113, align 8, !tbaa !11
  %38279 = load double, ptr %1115, align 8, !tbaa !11
  %38280 = fcmp ole double 0.000000e+00, %38279
  br i1 %38280, label %38281, label %38284

38281:                                            ; preds = %38255
  %38282 = load double, ptr %1115, align 8, !tbaa !11
  %38283 = fadd double %38282, 5.000000e-01
  br label %38287

38284:                                            ; preds = %38255
  %38285 = load double, ptr %1115, align 8, !tbaa !11
  %38286 = fsub double %38285, 5.000000e-01
  br label %38287

38287:                                            ; preds = %38284, %38281
  %38288 = phi double [ %38283, %38281 ], [ %38286, %38284 ]
  %38289 = fcmp olt double %38278, %38288
  br i1 %38289, label %38290, label %38344

38290:                                            ; preds = %38287
  %38291 = load double, ptr %1115, align 8, !tbaa !11
  %38292 = fcmp ole double 0.000000e+00, %38291
  br i1 %38292, label %38293, label %38296

38293:                                            ; preds = %38290
  %38294 = load double, ptr %1115, align 8, !tbaa !11
  %38295 = fadd double %38294, 5.000000e-01
  br label %38299

38296:                                            ; preds = %38290
  %38297 = load double, ptr %1115, align 8, !tbaa !11
  %38298 = fsub double %38297, 5.000000e-01
  br label %38299

38299:                                            ; preds = %38296, %38293
  %38300 = phi double [ %38295, %38293 ], [ %38298, %38296 ]
  %38301 = load double, ptr %1114, align 8, !tbaa !11
  %38302 = fcmp ole double %38300, %38301
  br i1 %38302, label %38303, label %38314

38303:                                            ; preds = %38299
  %38304 = load double, ptr %1115, align 8, !tbaa !11
  %38305 = fcmp ole double 0.000000e+00, %38304
  br i1 %38305, label %38306, label %38309

38306:                                            ; preds = %38303
  %38307 = load double, ptr %1115, align 8, !tbaa !11
  %38308 = fadd double %38307, 5.000000e-01
  br label %38312

38309:                                            ; preds = %38303
  %38310 = load double, ptr %1115, align 8, !tbaa !11
  %38311 = fsub double %38310, 5.000000e-01
  br label %38312

38312:                                            ; preds = %38309, %38306
  %38313 = phi double [ %38308, %38306 ], [ %38311, %38309 ]
  br label %38342

38314:                                            ; preds = %38299
  %38315 = load double, ptr %1115, align 8, !tbaa !11
  %38316 = fcmp ole double 0.000000e+00, %38315
  br i1 %38316, label %38317, label %38320

38317:                                            ; preds = %38314
  %38318 = load double, ptr %1115, align 8, !tbaa !11
  %38319 = fadd double %38318, 5.000000e-01
  br label %38323

38320:                                            ; preds = %38314
  %38321 = load double, ptr %1115, align 8, !tbaa !11
  %38322 = fsub double %38321, 5.000000e-01
  br label %38323

38323:                                            ; preds = %38320, %38317
  %38324 = phi double [ %38319, %38317 ], [ %38322, %38320 ]
  %38325 = load double, ptr %1114, align 8, !tbaa !11
  %38326 = fcmp olt double %38324, %38325
  br i1 %38326, label %38327, label %38338

38327:                                            ; preds = %38323
  %38328 = load double, ptr %1115, align 8, !tbaa !11
  %38329 = fcmp ole double 0.000000e+00, %38328
  br i1 %38329, label %38330, label %38333

38330:                                            ; preds = %38327
  %38331 = load double, ptr %1115, align 8, !tbaa !11
  %38332 = fadd double %38331, 5.000000e-01
  br label %38336

38333:                                            ; preds = %38327
  %38334 = load double, ptr %1115, align 8, !tbaa !11
  %38335 = fsub double %38334, 5.000000e-01
  br label %38336

38336:                                            ; preds = %38333, %38330
  %38337 = phi double [ %38332, %38330 ], [ %38335, %38333 ]
  br label %38340

38338:                                            ; preds = %38323
  %38339 = load double, ptr %1114, align 8, !tbaa !11
  br label %38340

38340:                                            ; preds = %38338, %38336
  %38341 = phi double [ %38337, %38336 ], [ %38339, %38338 ]
  br label %38342

38342:                                            ; preds = %38340, %38312
  %38343 = phi double [ %38313, %38312 ], [ %38341, %38340 ]
  br label %38372

38344:                                            ; preds = %38287
  %38345 = load double, ptr %1113, align 8, !tbaa !11
  %38346 = load double, ptr %1115, align 8, !tbaa !11
  %38347 = fcmp ole double 0.000000e+00, %38346
  br i1 %38347, label %38348, label %38351

38348:                                            ; preds = %38344
  %38349 = load double, ptr %1115, align 8, !tbaa !11
  %38350 = fadd double %38349, 5.000000e-01
  br label %38354

38351:                                            ; preds = %38344
  %38352 = load double, ptr %1115, align 8, !tbaa !11
  %38353 = fsub double %38352, 5.000000e-01
  br label %38354

38354:                                            ; preds = %38351, %38348
  %38355 = phi double [ %38350, %38348 ], [ %38353, %38351 ]
  %38356 = fcmp olt double %38345, %38355
  br i1 %38356, label %38357, label %38368

38357:                                            ; preds = %38354
  %38358 = load double, ptr %1115, align 8, !tbaa !11
  %38359 = fcmp ole double 0.000000e+00, %38358
  br i1 %38359, label %38360, label %38363

38360:                                            ; preds = %38357
  %38361 = load double, ptr %1115, align 8, !tbaa !11
  %38362 = fadd double %38361, 5.000000e-01
  br label %38366

38363:                                            ; preds = %38357
  %38364 = load double, ptr %1115, align 8, !tbaa !11
  %38365 = fsub double %38364, 5.000000e-01
  br label %38366

38366:                                            ; preds = %38363, %38360
  %38367 = phi double [ %38362, %38360 ], [ %38365, %38363 ]
  br label %38370

38368:                                            ; preds = %38354
  %38369 = load double, ptr %1113, align 8, !tbaa !11
  br label %38370

38370:                                            ; preds = %38368, %38366
  %38371 = phi double [ %38367, %38366 ], [ %38369, %38368 ]
  br label %38372

38372:                                            ; preds = %38370, %38342
  %38373 = phi double [ %38343, %38342 ], [ %38371, %38370 ]
  %38374 = fptoui double %38373 to i32
  %38375 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %38374, ptr %38375, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1115) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1114) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1113) #3
  br label %38452

38376:                                            ; preds = %38140, %38137
  %38377 = load i32, ptr %8, align 4, !tbaa !9
  %38378 = icmp ugt i32 6, %38377
  br i1 %38378, label %38407, label %38379

38379:                                            ; preds = %38376
  %38380 = load i32, ptr %8, align 4, !tbaa !9
  %38381 = icmp ugt i32 15, %38380
  br i1 %38381, label %38382, label %38393

38382:                                            ; preds = %38379
  %38383 = load i32, ptr %9, align 4, !tbaa !9
  %38384 = icmp ugt i32 15, %38383
  br i1 %38384, label %38385, label %38390

38385:                                            ; preds = %38382
  %38386 = load i32, ptr %9, align 4, !tbaa !9
  %38387 = load i32, ptr %8, align 4, !tbaa !9
  %38388 = icmp ugt i32 %38386, %38387
  %38389 = zext i1 %38388 to i32
  br label %38391

38390:                                            ; preds = %38382
  br label %38391

38391:                                            ; preds = %38390, %38385
  %38392 = phi i32 [ %38389, %38385 ], [ 0, %38390 ]
  br label %38404

38393:                                            ; preds = %38379
  %38394 = load i32, ptr %9, align 4, !tbaa !9
  %38395 = icmp ugt i32 15, %38394
  br i1 %38395, label %38396, label %38397

38396:                                            ; preds = %38393
  br label %38402

38397:                                            ; preds = %38393
  %38398 = load i32, ptr %9, align 4, !tbaa !9
  %38399 = load i32, ptr %8, align 4, !tbaa !9
  %38400 = icmp ugt i32 %38398, %38399
  %38401 = zext i1 %38400 to i32
  br label %38402

38402:                                            ; preds = %38397, %38396
  %38403 = phi i32 [ 0, %38396 ], [ %38401, %38397 ]
  br label %38404

38404:                                            ; preds = %38402, %38391
  %38405 = phi i32 [ %38392, %38391 ], [ %38403, %38402 ]
  %38406 = icmp ne i32 %38405, 0
  br label %38407

38407:                                            ; preds = %38404, %38376
  %38408 = phi i1 [ true, %38376 ], [ %38406, %38404 ]
  %38409 = zext i1 %38408 to i32
  %38410 = icmp eq i32 0, %38409
  br i1 %38410, label %38411, label %38448

38411:                                            ; preds = %38407
  %38412 = load i32, ptr %1106, align 4, !tbaa !9
  %38413 = sitofp i32 %38412 to double
  %38414 = fcmp olt double 0.000000e+00, %38413
  br i1 %38414, label %38415, label %38434

38415:                                            ; preds = %38411
  %38416 = load i32, ptr %1106, align 4, !tbaa !9
  %38417 = sitofp i32 %38416 to double
  %38418 = fcmp ole double %38417, 0x41EFFFFFFFE00000
  br i1 %38418, label %38419, label %38422

38419:                                            ; preds = %38415
  %38420 = load i32, ptr %1106, align 4, !tbaa !9
  %38421 = sitofp i32 %38420 to double
  br label %38432

38422:                                            ; preds = %38415
  %38423 = load i32, ptr %1106, align 4, !tbaa !9
  %38424 = sitofp i32 %38423 to double
  %38425 = fcmp olt double %38424, 0x41EFFFFFFFE00000
  br i1 %38425, label %38426, label %38429

38426:                                            ; preds = %38422
  %38427 = load i32, ptr %1106, align 4, !tbaa !9
  %38428 = sitofp i32 %38427 to double
  br label %38430

38429:                                            ; preds = %38422
  br label %38430

38430:                                            ; preds = %38429, %38426
  %38431 = phi double [ %38428, %38426 ], [ 0x41EFFFFFFFE00000, %38429 ]
  br label %38432

38432:                                            ; preds = %38430, %38419
  %38433 = phi double [ %38421, %38419 ], [ %38431, %38430 ]
  br label %38444

38434:                                            ; preds = %38411
  %38435 = load i32, ptr %1106, align 4, !tbaa !9
  %38436 = sitofp i32 %38435 to double
  %38437 = fcmp olt double 0.000000e+00, %38436
  br i1 %38437, label %38438, label %38441

38438:                                            ; preds = %38434
  %38439 = load i32, ptr %1106, align 4, !tbaa !9
  %38440 = sitofp i32 %38439 to double
  br label %38442

38441:                                            ; preds = %38434
  br label %38442

38442:                                            ; preds = %38441, %38438
  %38443 = phi double [ %38440, %38438 ], [ 0.000000e+00, %38441 ]
  br label %38444

38444:                                            ; preds = %38442, %38432
  %38445 = phi double [ %38433, %38432 ], [ %38443, %38442 ]
  %38446 = fptoui double %38445 to i32
  %38447 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %38446, ptr %38447, align 4, !tbaa !9
  br label %38451

38448:                                            ; preds = %38407
  %38449 = load i32, ptr %1106, align 4, !tbaa !9
  %38450 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %38449, ptr %38450, align 4, !tbaa !9
  br label %38451

38451:                                            ; preds = %38448, %38444
  br label %38452

38452:                                            ; preds = %38451, %38372
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1108) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1107) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %1106) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1105) #3
  br label %38453

38453:                                            ; preds = %38452
  br label %38454

38454:                                            ; preds = %38453
  br label %41383

38455:                                            ; preds = %37760
  br label %38456

38456:                                            ; preds = %38455
  call void @llvm.lifetime.start.p0(i64 8, ptr %1116) #3
  store double 5.000000e-01, ptr %1116, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %1117) #3
  %38457 = load ptr, ptr %10, align 8, !tbaa !5
  %38458 = load i16, ptr %38457, align 2, !tbaa !15
  store i16 %38458, ptr %1117, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %1118) #3
  store double 0.000000e+00, ptr %1118, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1119) #3
  store double 0.000000e+00, ptr %1119, align 8, !tbaa !11
  %38459 = load ptr, ptr %11, align 8, !tbaa !5
  %38460 = icmp ne ptr null, %38459
  br i1 %38460, label %38461, label %38487

38461:                                            ; preds = %38456
  %38462 = load ptr, ptr %12, align 8, !tbaa !5
  %38463 = icmp ne ptr null, %38462
  br i1 %38463, label %38464, label %38479

38464:                                            ; preds = %38461
  %38465 = load ptr, ptr %11, align 8, !tbaa !5
  %38466 = load i16, ptr %38465, align 2, !tbaa !15
  %38467 = sext i16 %38466 to i32
  %38468 = load i16, ptr %1117, align 2, !tbaa !15
  %38469 = sext i16 %38468 to i32
  %38470 = icmp sle i32 %38467, %38469
  br i1 %38470, label %38471, label %38479

38471:                                            ; preds = %38464
  %38472 = load i16, ptr %1117, align 2, !tbaa !15
  %38473 = sext i16 %38472 to i32
  %38474 = load ptr, ptr %12, align 8, !tbaa !5
  %38475 = load i16, ptr %38474, align 2, !tbaa !15
  %38476 = sext i16 %38475 to i32
  %38477 = icmp sle i32 %38473, %38476
  br i1 %38477, label %38478, label %38479

38478:                                            ; preds = %38471
  br label %38480

38479:                                            ; preds = %38471, %38464, %38461
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.24, i32 noundef 497, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

38480:                                            ; preds = %38478
  %38481 = load ptr, ptr %11, align 8, !tbaa !5
  %38482 = load i16, ptr %38481, align 2, !tbaa !15
  %38483 = sitofp i16 %38482 to double
  store double %38483, ptr %1118, align 8, !tbaa !11
  %38484 = load ptr, ptr %12, align 8, !tbaa !5
  %38485 = load i16, ptr %38484, align 2, !tbaa !15
  %38486 = sitofp i16 %38485 to double
  store double %38486, ptr %1119, align 8, !tbaa !11
  br label %38487

38487:                                            ; preds = %38480, %38456
  %38488 = load i32, ptr %8, align 4, !tbaa !9
  %38489 = icmp ule i32 6, %38488
  br i1 %38489, label %38490, label %38728

38490:                                            ; preds = %38487
  %38491 = load double, ptr %1118, align 8, !tbaa !11
  %38492 = load double, ptr %1119, align 8, !tbaa !11
  %38493 = fcmp olt double %38491, %38492
  br i1 %38493, label %38494, label %38728

38494:                                            ; preds = %38490
  %38495 = load i32, ptr %8, align 4, !tbaa !9
  %38496 = icmp ule i32 15, %38495
  br i1 %38496, label %38497, label %38551

38497:                                            ; preds = %38494
  call void @llvm.lifetime.start.p0(i64 8, ptr %1120) #3
  %38498 = load double, ptr %1118, align 8, !tbaa !11
  %38499 = fcmp olt double 0.000000e+00, %38498
  br i1 %38499, label %38500, label %38502

38500:                                            ; preds = %38497
  %38501 = load double, ptr %1118, align 8, !tbaa !11
  br label %38503

38502:                                            ; preds = %38497
  br label %38503

38503:                                            ; preds = %38502, %38500
  %38504 = phi double [ %38501, %38500 ], [ 0.000000e+00, %38502 ]
  store double %38504, ptr %1120, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1121) #3
  %38505 = load double, ptr %1119, align 8, !tbaa !11
  %38506 = fcmp olt double 0.000000e+00, %38505
  br i1 %38506, label %38507, label %38509

38507:                                            ; preds = %38503
  %38508 = load double, ptr %1119, align 8, !tbaa !11
  br label %38510

38509:                                            ; preds = %38503
  br label %38510

38510:                                            ; preds = %38509, %38507
  %38511 = phi double [ %38508, %38507 ], [ 0.000000e+00, %38509 ]
  store double %38511, ptr %1121, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1122) #3
  %38512 = load double, ptr %1120, align 8, !tbaa !11
  %38513 = load double, ptr %1121, align 8, !tbaa !11
  %38514 = fcmp olt double %38512, %38513
  br i1 %38514, label %38515, label %38523

38515:                                            ; preds = %38510
  %38516 = load double, ptr %1119, align 8, !tbaa !11
  %38517 = load double, ptr %1118, align 8, !tbaa !11
  %38518 = fsub double %38516, %38517
  %38519 = load double, ptr %1121, align 8, !tbaa !11
  %38520 = load double, ptr %1120, align 8, !tbaa !11
  %38521 = fsub double %38519, %38520
  %38522 = fdiv double %38518, %38521
  br label %38524

38523:                                            ; preds = %38510
  br label %38524

38524:                                            ; preds = %38523, %38515
  %38525 = phi double [ %38522, %38515 ], [ 1.000000e+00, %38523 ]
  store double %38525, ptr %1122, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1123) #3
  %38526 = load double, ptr %1122, align 8, !tbaa !11
  %38527 = load i16, ptr %1117, align 2, !tbaa !15
  %38528 = sext i16 %38527 to i32
  %38529 = icmp slt i32 0, %38528
  br i1 %38529, label %38530, label %38533

38530:                                            ; preds = %38524
  %38531 = load i16, ptr %1117, align 2, !tbaa !15
  %38532 = sext i16 %38531 to i32
  br label %38534

38533:                                            ; preds = %38524
  br label %38534

38534:                                            ; preds = %38533, %38530
  %38535 = phi i32 [ %38532, %38530 ], [ 0, %38533 ]
  %38536 = sitofp i32 %38535 to double
  %38537 = fmul double %38526, %38536
  store double %38537, ptr %1123, align 8, !tbaa !11
  %38538 = load double, ptr %1123, align 8, !tbaa !11
  %38539 = fcmp ole double 0.000000e+00, %38538
  br i1 %38539, label %38540, label %38543

38540:                                            ; preds = %38534
  %38541 = load double, ptr %1123, align 8, !tbaa !11
  %38542 = fadd double %38541, 5.000000e-01
  br label %38546

38543:                                            ; preds = %38534
  %38544 = load double, ptr %1123, align 8, !tbaa !11
  %38545 = fsub double %38544, 5.000000e-01
  br label %38546

38546:                                            ; preds = %38543, %38540
  %38547 = phi double [ %38542, %38540 ], [ %38545, %38543 ]
  %38548 = fptosi double %38547 to i16
  store i16 %38548, ptr %1117, align 2, !tbaa !15
  %38549 = load double, ptr %1120, align 8, !tbaa !11
  store double %38549, ptr %1118, align 8, !tbaa !11
  %38550 = load double, ptr %1121, align 8, !tbaa !11
  store double %38550, ptr %1119, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1123) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1122) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1121) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1120) #3
  br label %38607

38551:                                            ; preds = %38494
  %38552 = load i32, ptr %8, align 4, !tbaa !9
  %38553 = icmp ugt i32 6, %38552
  br i1 %38553, label %38582, label %38554

38554:                                            ; preds = %38551
  %38555 = load i32, ptr %8, align 4, !tbaa !9
  %38556 = icmp ugt i32 15, %38555
  br i1 %38556, label %38557, label %38568

38557:                                            ; preds = %38554
  %38558 = load i32, ptr %9, align 4, !tbaa !9
  %38559 = icmp ugt i32 15, %38558
  br i1 %38559, label %38560, label %38565

38560:                                            ; preds = %38557
  %38561 = load i32, ptr %9, align 4, !tbaa !9
  %38562 = load i32, ptr %8, align 4, !tbaa !9
  %38563 = icmp ugt i32 %38561, %38562
  %38564 = zext i1 %38563 to i32
  br label %38566

38565:                                            ; preds = %38557
  br label %38566

38566:                                            ; preds = %38565, %38560
  %38567 = phi i32 [ %38564, %38560 ], [ 0, %38565 ]
  br label %38579

38568:                                            ; preds = %38554
  %38569 = load i32, ptr %9, align 4, !tbaa !9
  %38570 = icmp ugt i32 15, %38569
  br i1 %38570, label %38571, label %38572

38571:                                            ; preds = %38568
  br label %38577

38572:                                            ; preds = %38568
  %38573 = load i32, ptr %9, align 4, !tbaa !9
  %38574 = load i32, ptr %8, align 4, !tbaa !9
  %38575 = icmp ugt i32 %38573, %38574
  %38576 = zext i1 %38575 to i32
  br label %38577

38577:                                            ; preds = %38572, %38571
  %38578 = phi i32 [ 0, %38571 ], [ %38576, %38572 ]
  br label %38579

38579:                                            ; preds = %38577, %38566
  %38580 = phi i32 [ %38567, %38566 ], [ %38578, %38577 ]
  %38581 = icmp ne i32 %38580, 0
  br label %38582

38582:                                            ; preds = %38579, %38551
  %38583 = phi i1 [ true, %38551 ], [ %38581, %38579 ]
  %38584 = zext i1 %38583 to i32
  %38585 = icmp eq i32 0, %38584
  br i1 %38585, label %38586, label %38606

38586:                                            ; preds = %38582
  %38587 = load double, ptr %1118, align 8, !tbaa !11
  %38588 = fcmp ogt double 0.000000e+00, %38587
  br i1 %38588, label %38589, label %38606

38589:                                            ; preds = %38586
  %38590 = load double, ptr %1119, align 8, !tbaa !11
  %38591 = fcmp olt double 0.000000e+00, %38590
  br i1 %38591, label %38592, label %38606

38592:                                            ; preds = %38589
  %38593 = load double, ptr %1118, align 8, !tbaa !11
  %38594 = fneg double %38593
  %38595 = load double, ptr %1119, align 8, !tbaa !11
  %38596 = fcmp olt double %38594, %38595
  br i1 %38596, label %38597, label %38599

38597:                                            ; preds = %38592
  %38598 = load double, ptr %1119, align 8, !tbaa !11
  br label %38602

38599:                                            ; preds = %38592
  %38600 = load double, ptr %1118, align 8, !tbaa !11
  %38601 = fneg double %38600
  br label %38602

38602:                                            ; preds = %38599, %38597
  %38603 = phi double [ %38598, %38597 ], [ %38601, %38599 ]
  store double %38603, ptr %1119, align 8, !tbaa !11
  %38604 = load double, ptr %1119, align 8, !tbaa !11
  %38605 = fneg double %38604
  store double %38605, ptr %1118, align 8, !tbaa !11
  br label %38606

38606:                                            ; preds = %38602, %38589, %38586, %38582
  br label %38607

38607:                                            ; preds = %38606, %38546
  call void @llvm.lifetime.start.p0(i64 8, ptr %1124) #3
  %38608 = load double, ptr %1118, align 8, !tbaa !11
  %38609 = fcmp ole double 0.000000e+00, %38608
  %38610 = zext i1 %38609 to i64
  %38611 = select i1 %38609, double 0.000000e+00, double 0.000000e+00
  store double %38611, ptr %1124, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1125) #3
  %38612 = load double, ptr %1119, align 8, !tbaa !11
  %38613 = fcmp ole double 0.000000e+00, %38612
  %38614 = zext i1 %38613 to i64
  %38615 = select i1 %38613, double 0x41EFFFFFFFE00000, double 0.000000e+00
  store double %38615, ptr %1125, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1126) #3
  %38616 = load i16, ptr %1117, align 2, !tbaa !15
  %38617 = sitofp i16 %38616 to double
  %38618 = load double, ptr %1118, align 8, !tbaa !11
  %38619 = fsub double %38617, %38618
  %38620 = load double, ptr %1125, align 8, !tbaa !11
  %38621 = load double, ptr %1124, align 8, !tbaa !11
  %38622 = fsub double %38620, %38621
  %38623 = fmul double %38619, %38622
  %38624 = load double, ptr %1119, align 8, !tbaa !11
  %38625 = load double, ptr %1118, align 8, !tbaa !11
  %38626 = fsub double %38624, %38625
  %38627 = fdiv double %38623, %38626
  %38628 = load double, ptr %1124, align 8, !tbaa !11
  %38629 = fadd double %38627, %38628
  store double %38629, ptr %1126, align 8, !tbaa !11
  %38630 = load double, ptr %1124, align 8, !tbaa !11
  %38631 = load double, ptr %1126, align 8, !tbaa !11
  %38632 = fcmp ole double 0.000000e+00, %38631
  br i1 %38632, label %38633, label %38636

38633:                                            ; preds = %38607
  %38634 = load double, ptr %1126, align 8, !tbaa !11
  %38635 = fadd double %38634, 5.000000e-01
  br label %38639

38636:                                            ; preds = %38607
  %38637 = load double, ptr %1126, align 8, !tbaa !11
  %38638 = fsub double %38637, 5.000000e-01
  br label %38639

38639:                                            ; preds = %38636, %38633
  %38640 = phi double [ %38635, %38633 ], [ %38638, %38636 ]
  %38641 = fcmp olt double %38630, %38640
  br i1 %38641, label %38642, label %38696

38642:                                            ; preds = %38639
  %38643 = load double, ptr %1126, align 8, !tbaa !11
  %38644 = fcmp ole double 0.000000e+00, %38643
  br i1 %38644, label %38645, label %38648

38645:                                            ; preds = %38642
  %38646 = load double, ptr %1126, align 8, !tbaa !11
  %38647 = fadd double %38646, 5.000000e-01
  br label %38651

38648:                                            ; preds = %38642
  %38649 = load double, ptr %1126, align 8, !tbaa !11
  %38650 = fsub double %38649, 5.000000e-01
  br label %38651

38651:                                            ; preds = %38648, %38645
  %38652 = phi double [ %38647, %38645 ], [ %38650, %38648 ]
  %38653 = load double, ptr %1125, align 8, !tbaa !11
  %38654 = fcmp ole double %38652, %38653
  br i1 %38654, label %38655, label %38666

38655:                                            ; preds = %38651
  %38656 = load double, ptr %1126, align 8, !tbaa !11
  %38657 = fcmp ole double 0.000000e+00, %38656
  br i1 %38657, label %38658, label %38661

38658:                                            ; preds = %38655
  %38659 = load double, ptr %1126, align 8, !tbaa !11
  %38660 = fadd double %38659, 5.000000e-01
  br label %38664

38661:                                            ; preds = %38655
  %38662 = load double, ptr %1126, align 8, !tbaa !11
  %38663 = fsub double %38662, 5.000000e-01
  br label %38664

38664:                                            ; preds = %38661, %38658
  %38665 = phi double [ %38660, %38658 ], [ %38663, %38661 ]
  br label %38694

38666:                                            ; preds = %38651
  %38667 = load double, ptr %1126, align 8, !tbaa !11
  %38668 = fcmp ole double 0.000000e+00, %38667
  br i1 %38668, label %38669, label %38672

38669:                                            ; preds = %38666
  %38670 = load double, ptr %1126, align 8, !tbaa !11
  %38671 = fadd double %38670, 5.000000e-01
  br label %38675

38672:                                            ; preds = %38666
  %38673 = load double, ptr %1126, align 8, !tbaa !11
  %38674 = fsub double %38673, 5.000000e-01
  br label %38675

38675:                                            ; preds = %38672, %38669
  %38676 = phi double [ %38671, %38669 ], [ %38674, %38672 ]
  %38677 = load double, ptr %1125, align 8, !tbaa !11
  %38678 = fcmp olt double %38676, %38677
  br i1 %38678, label %38679, label %38690

38679:                                            ; preds = %38675
  %38680 = load double, ptr %1126, align 8, !tbaa !11
  %38681 = fcmp ole double 0.000000e+00, %38680
  br i1 %38681, label %38682, label %38685

38682:                                            ; preds = %38679
  %38683 = load double, ptr %1126, align 8, !tbaa !11
  %38684 = fadd double %38683, 5.000000e-01
  br label %38688

38685:                                            ; preds = %38679
  %38686 = load double, ptr %1126, align 8, !tbaa !11
  %38687 = fsub double %38686, 5.000000e-01
  br label %38688

38688:                                            ; preds = %38685, %38682
  %38689 = phi double [ %38684, %38682 ], [ %38687, %38685 ]
  br label %38692

38690:                                            ; preds = %38675
  %38691 = load double, ptr %1125, align 8, !tbaa !11
  br label %38692

38692:                                            ; preds = %38690, %38688
  %38693 = phi double [ %38689, %38688 ], [ %38691, %38690 ]
  br label %38694

38694:                                            ; preds = %38692, %38664
  %38695 = phi double [ %38665, %38664 ], [ %38693, %38692 ]
  br label %38724

38696:                                            ; preds = %38639
  %38697 = load double, ptr %1124, align 8, !tbaa !11
  %38698 = load double, ptr %1126, align 8, !tbaa !11
  %38699 = fcmp ole double 0.000000e+00, %38698
  br i1 %38699, label %38700, label %38703

38700:                                            ; preds = %38696
  %38701 = load double, ptr %1126, align 8, !tbaa !11
  %38702 = fadd double %38701, 5.000000e-01
  br label %38706

38703:                                            ; preds = %38696
  %38704 = load double, ptr %1126, align 8, !tbaa !11
  %38705 = fsub double %38704, 5.000000e-01
  br label %38706

38706:                                            ; preds = %38703, %38700
  %38707 = phi double [ %38702, %38700 ], [ %38705, %38703 ]
  %38708 = fcmp olt double %38697, %38707
  br i1 %38708, label %38709, label %38720

38709:                                            ; preds = %38706
  %38710 = load double, ptr %1126, align 8, !tbaa !11
  %38711 = fcmp ole double 0.000000e+00, %38710
  br i1 %38711, label %38712, label %38715

38712:                                            ; preds = %38709
  %38713 = load double, ptr %1126, align 8, !tbaa !11
  %38714 = fadd double %38713, 5.000000e-01
  br label %38718

38715:                                            ; preds = %38709
  %38716 = load double, ptr %1126, align 8, !tbaa !11
  %38717 = fsub double %38716, 5.000000e-01
  br label %38718

38718:                                            ; preds = %38715, %38712
  %38719 = phi double [ %38714, %38712 ], [ %38717, %38715 ]
  br label %38722

38720:                                            ; preds = %38706
  %38721 = load double, ptr %1124, align 8, !tbaa !11
  br label %38722

38722:                                            ; preds = %38720, %38718
  %38723 = phi double [ %38719, %38718 ], [ %38721, %38720 ]
  br label %38724

38724:                                            ; preds = %38722, %38694
  %38725 = phi double [ %38695, %38694 ], [ %38723, %38722 ]
  %38726 = fptoui double %38725 to i32
  %38727 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %38726, ptr %38727, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1126) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1125) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1124) #3
  br label %38812

38728:                                            ; preds = %38490, %38487
  %38729 = load i32, ptr %8, align 4, !tbaa !9
  %38730 = icmp ugt i32 6, %38729
  br i1 %38730, label %38759, label %38731

38731:                                            ; preds = %38728
  %38732 = load i32, ptr %8, align 4, !tbaa !9
  %38733 = icmp ugt i32 15, %38732
  br i1 %38733, label %38734, label %38745

38734:                                            ; preds = %38731
  %38735 = load i32, ptr %9, align 4, !tbaa !9
  %38736 = icmp ugt i32 15, %38735
  br i1 %38736, label %38737, label %38742

38737:                                            ; preds = %38734
  %38738 = load i32, ptr %9, align 4, !tbaa !9
  %38739 = load i32, ptr %8, align 4, !tbaa !9
  %38740 = icmp ugt i32 %38738, %38739
  %38741 = zext i1 %38740 to i32
  br label %38743

38742:                                            ; preds = %38734
  br label %38743

38743:                                            ; preds = %38742, %38737
  %38744 = phi i32 [ %38741, %38737 ], [ 0, %38742 ]
  br label %38756

38745:                                            ; preds = %38731
  %38746 = load i32, ptr %9, align 4, !tbaa !9
  %38747 = icmp ugt i32 15, %38746
  br i1 %38747, label %38748, label %38749

38748:                                            ; preds = %38745
  br label %38754

38749:                                            ; preds = %38745
  %38750 = load i32, ptr %9, align 4, !tbaa !9
  %38751 = load i32, ptr %8, align 4, !tbaa !9
  %38752 = icmp ugt i32 %38750, %38751
  %38753 = zext i1 %38752 to i32
  br label %38754

38754:                                            ; preds = %38749, %38748
  %38755 = phi i32 [ 0, %38748 ], [ %38753, %38749 ]
  br label %38756

38756:                                            ; preds = %38754, %38743
  %38757 = phi i32 [ %38744, %38743 ], [ %38755, %38754 ]
  %38758 = icmp ne i32 %38757, 0
  br label %38759

38759:                                            ; preds = %38756, %38728
  %38760 = phi i1 [ true, %38728 ], [ %38758, %38756 ]
  %38761 = zext i1 %38760 to i32
  %38762 = icmp eq i32 0, %38761
  br i1 %38762, label %38763, label %38807

38763:                                            ; preds = %38759
  %38764 = load i16, ptr %1117, align 2, !tbaa !15
  %38765 = sext i16 %38764 to i32
  %38766 = sitofp i32 %38765 to double
  %38767 = fcmp olt double 0.000000e+00, %38766
  br i1 %38767, label %38768, label %38791

38768:                                            ; preds = %38763
  %38769 = load i16, ptr %1117, align 2, !tbaa !15
  %38770 = sext i16 %38769 to i32
  %38771 = sitofp i32 %38770 to double
  %38772 = fcmp ole double %38771, 0x41EFFFFFFFE00000
  br i1 %38772, label %38773, label %38777

38773:                                            ; preds = %38768
  %38774 = load i16, ptr %1117, align 2, !tbaa !15
  %38775 = sext i16 %38774 to i32
  %38776 = sitofp i32 %38775 to double
  br label %38789

38777:                                            ; preds = %38768
  %38778 = load i16, ptr %1117, align 2, !tbaa !15
  %38779 = sext i16 %38778 to i32
  %38780 = sitofp i32 %38779 to double
  %38781 = fcmp olt double %38780, 0x41EFFFFFFFE00000
  br i1 %38781, label %38782, label %38786

38782:                                            ; preds = %38777
  %38783 = load i16, ptr %1117, align 2, !tbaa !15
  %38784 = sext i16 %38783 to i32
  %38785 = sitofp i32 %38784 to double
  br label %38787

38786:                                            ; preds = %38777
  br label %38787

38787:                                            ; preds = %38786, %38782
  %38788 = phi double [ %38785, %38782 ], [ 0x41EFFFFFFFE00000, %38786 ]
  br label %38789

38789:                                            ; preds = %38787, %38773
  %38790 = phi double [ %38776, %38773 ], [ %38788, %38787 ]
  br label %38803

38791:                                            ; preds = %38763
  %38792 = load i16, ptr %1117, align 2, !tbaa !15
  %38793 = sext i16 %38792 to i32
  %38794 = sitofp i32 %38793 to double
  %38795 = fcmp olt double 0.000000e+00, %38794
  br i1 %38795, label %38796, label %38800

38796:                                            ; preds = %38791
  %38797 = load i16, ptr %1117, align 2, !tbaa !15
  %38798 = sext i16 %38797 to i32
  %38799 = sitofp i32 %38798 to double
  br label %38801

38800:                                            ; preds = %38791
  br label %38801

38801:                                            ; preds = %38800, %38796
  %38802 = phi double [ %38799, %38796 ], [ 0.000000e+00, %38800 ]
  br label %38803

38803:                                            ; preds = %38801, %38789
  %38804 = phi double [ %38790, %38789 ], [ %38802, %38801 ]
  %38805 = fptoui double %38804 to i32
  %38806 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %38805, ptr %38806, align 4, !tbaa !9
  br label %38811

38807:                                            ; preds = %38759
  %38808 = load i16, ptr %1117, align 2, !tbaa !15
  %38809 = sext i16 %38808 to i32
  %38810 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %38809, ptr %38810, align 4, !tbaa !9
  br label %38811

38811:                                            ; preds = %38807, %38803
  br label %38812

38812:                                            ; preds = %38811, %38724
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1119) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1118) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %1117) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1116) #3
  br label %38813

38813:                                            ; preds = %38812
  br label %38814

38814:                                            ; preds = %38813
  br label %41383

38815:                                            ; preds = %37760
  br label %38816

38816:                                            ; preds = %38815
  call void @llvm.lifetime.start.p0(i64 8, ptr %1127) #3
  store double 5.000000e-01, ptr %1127, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %1128) #3
  %38817 = load ptr, ptr %10, align 8, !tbaa !5
  %38818 = load i8, ptr %38817, align 1, !tbaa !17
  store i8 %38818, ptr %1128, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %1129) #3
  store double 0.000000e+00, ptr %1129, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1130) #3
  store double 0.000000e+00, ptr %1130, align 8, !tbaa !11
  %38819 = load ptr, ptr %11, align 8, !tbaa !5
  %38820 = icmp ne ptr null, %38819
  br i1 %38820, label %38821, label %38847

38821:                                            ; preds = %38816
  %38822 = load ptr, ptr %12, align 8, !tbaa !5
  %38823 = icmp ne ptr null, %38822
  br i1 %38823, label %38824, label %38839

38824:                                            ; preds = %38821
  %38825 = load ptr, ptr %11, align 8, !tbaa !5
  %38826 = load i8, ptr %38825, align 1, !tbaa !17
  %38827 = sext i8 %38826 to i32
  %38828 = load i8, ptr %1128, align 1, !tbaa !17
  %38829 = sext i8 %38828 to i32
  %38830 = icmp sle i32 %38827, %38829
  br i1 %38830, label %38831, label %38839

38831:                                            ; preds = %38824
  %38832 = load i8, ptr %1128, align 1, !tbaa !17
  %38833 = sext i8 %38832 to i32
  %38834 = load ptr, ptr %12, align 8, !tbaa !5
  %38835 = load i8, ptr %38834, align 1, !tbaa !17
  %38836 = sext i8 %38835 to i32
  %38837 = icmp sle i32 %38833, %38836
  br i1 %38837, label %38838, label %38839

38838:                                            ; preds = %38831
  br label %38840

38839:                                            ; preds = %38831, %38824, %38821
  call void @__assert_fail(ptr noundef @.str.45, ptr noundef @.str.24, i32 noundef 497, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

38840:                                            ; preds = %38838
  %38841 = load ptr, ptr %11, align 8, !tbaa !5
  %38842 = load i8, ptr %38841, align 1, !tbaa !17
  %38843 = sitofp i8 %38842 to double
  store double %38843, ptr %1129, align 8, !tbaa !11
  %38844 = load ptr, ptr %12, align 8, !tbaa !5
  %38845 = load i8, ptr %38844, align 1, !tbaa !17
  %38846 = sitofp i8 %38845 to double
  store double %38846, ptr %1130, align 8, !tbaa !11
  br label %38847

38847:                                            ; preds = %38840, %38816
  %38848 = load i32, ptr %8, align 4, !tbaa !9
  %38849 = icmp ule i32 6, %38848
  br i1 %38849, label %38850, label %39088

38850:                                            ; preds = %38847
  %38851 = load double, ptr %1129, align 8, !tbaa !11
  %38852 = load double, ptr %1130, align 8, !tbaa !11
  %38853 = fcmp olt double %38851, %38852
  br i1 %38853, label %38854, label %39088

38854:                                            ; preds = %38850
  %38855 = load i32, ptr %8, align 4, !tbaa !9
  %38856 = icmp ule i32 15, %38855
  br i1 %38856, label %38857, label %38911

38857:                                            ; preds = %38854
  call void @llvm.lifetime.start.p0(i64 8, ptr %1131) #3
  %38858 = load double, ptr %1129, align 8, !tbaa !11
  %38859 = fcmp olt double 0.000000e+00, %38858
  br i1 %38859, label %38860, label %38862

38860:                                            ; preds = %38857
  %38861 = load double, ptr %1129, align 8, !tbaa !11
  br label %38863

38862:                                            ; preds = %38857
  br label %38863

38863:                                            ; preds = %38862, %38860
  %38864 = phi double [ %38861, %38860 ], [ 0.000000e+00, %38862 ]
  store double %38864, ptr %1131, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1132) #3
  %38865 = load double, ptr %1130, align 8, !tbaa !11
  %38866 = fcmp olt double 0.000000e+00, %38865
  br i1 %38866, label %38867, label %38869

38867:                                            ; preds = %38863
  %38868 = load double, ptr %1130, align 8, !tbaa !11
  br label %38870

38869:                                            ; preds = %38863
  br label %38870

38870:                                            ; preds = %38869, %38867
  %38871 = phi double [ %38868, %38867 ], [ 0.000000e+00, %38869 ]
  store double %38871, ptr %1132, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1133) #3
  %38872 = load double, ptr %1131, align 8, !tbaa !11
  %38873 = load double, ptr %1132, align 8, !tbaa !11
  %38874 = fcmp olt double %38872, %38873
  br i1 %38874, label %38875, label %38883

38875:                                            ; preds = %38870
  %38876 = load double, ptr %1130, align 8, !tbaa !11
  %38877 = load double, ptr %1129, align 8, !tbaa !11
  %38878 = fsub double %38876, %38877
  %38879 = load double, ptr %1132, align 8, !tbaa !11
  %38880 = load double, ptr %1131, align 8, !tbaa !11
  %38881 = fsub double %38879, %38880
  %38882 = fdiv double %38878, %38881
  br label %38884

38883:                                            ; preds = %38870
  br label %38884

38884:                                            ; preds = %38883, %38875
  %38885 = phi double [ %38882, %38875 ], [ 1.000000e+00, %38883 ]
  store double %38885, ptr %1133, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1134) #3
  %38886 = load double, ptr %1133, align 8, !tbaa !11
  %38887 = load i8, ptr %1128, align 1, !tbaa !17
  %38888 = sext i8 %38887 to i32
  %38889 = icmp slt i32 0, %38888
  br i1 %38889, label %38890, label %38893

38890:                                            ; preds = %38884
  %38891 = load i8, ptr %1128, align 1, !tbaa !17
  %38892 = sext i8 %38891 to i32
  br label %38894

38893:                                            ; preds = %38884
  br label %38894

38894:                                            ; preds = %38893, %38890
  %38895 = phi i32 [ %38892, %38890 ], [ 0, %38893 ]
  %38896 = sitofp i32 %38895 to double
  %38897 = fmul double %38886, %38896
  store double %38897, ptr %1134, align 8, !tbaa !11
  %38898 = load double, ptr %1134, align 8, !tbaa !11
  %38899 = fcmp ole double 0.000000e+00, %38898
  br i1 %38899, label %38900, label %38903

38900:                                            ; preds = %38894
  %38901 = load double, ptr %1134, align 8, !tbaa !11
  %38902 = fadd double %38901, 5.000000e-01
  br label %38906

38903:                                            ; preds = %38894
  %38904 = load double, ptr %1134, align 8, !tbaa !11
  %38905 = fsub double %38904, 5.000000e-01
  br label %38906

38906:                                            ; preds = %38903, %38900
  %38907 = phi double [ %38902, %38900 ], [ %38905, %38903 ]
  %38908 = fptosi double %38907 to i8
  store i8 %38908, ptr %1128, align 1, !tbaa !17
  %38909 = load double, ptr %1131, align 8, !tbaa !11
  store double %38909, ptr %1129, align 8, !tbaa !11
  %38910 = load double, ptr %1132, align 8, !tbaa !11
  store double %38910, ptr %1130, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1134) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1133) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1132) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1131) #3
  br label %38967

38911:                                            ; preds = %38854
  %38912 = load i32, ptr %8, align 4, !tbaa !9
  %38913 = icmp ugt i32 6, %38912
  br i1 %38913, label %38942, label %38914

38914:                                            ; preds = %38911
  %38915 = load i32, ptr %8, align 4, !tbaa !9
  %38916 = icmp ugt i32 15, %38915
  br i1 %38916, label %38917, label %38928

38917:                                            ; preds = %38914
  %38918 = load i32, ptr %9, align 4, !tbaa !9
  %38919 = icmp ugt i32 15, %38918
  br i1 %38919, label %38920, label %38925

38920:                                            ; preds = %38917
  %38921 = load i32, ptr %9, align 4, !tbaa !9
  %38922 = load i32, ptr %8, align 4, !tbaa !9
  %38923 = icmp ugt i32 %38921, %38922
  %38924 = zext i1 %38923 to i32
  br label %38926

38925:                                            ; preds = %38917
  br label %38926

38926:                                            ; preds = %38925, %38920
  %38927 = phi i32 [ %38924, %38920 ], [ 0, %38925 ]
  br label %38939

38928:                                            ; preds = %38914
  %38929 = load i32, ptr %9, align 4, !tbaa !9
  %38930 = icmp ugt i32 15, %38929
  br i1 %38930, label %38931, label %38932

38931:                                            ; preds = %38928
  br label %38937

38932:                                            ; preds = %38928
  %38933 = load i32, ptr %9, align 4, !tbaa !9
  %38934 = load i32, ptr %8, align 4, !tbaa !9
  %38935 = icmp ugt i32 %38933, %38934
  %38936 = zext i1 %38935 to i32
  br label %38937

38937:                                            ; preds = %38932, %38931
  %38938 = phi i32 [ 0, %38931 ], [ %38936, %38932 ]
  br label %38939

38939:                                            ; preds = %38937, %38926
  %38940 = phi i32 [ %38927, %38926 ], [ %38938, %38937 ]
  %38941 = icmp ne i32 %38940, 0
  br label %38942

38942:                                            ; preds = %38939, %38911
  %38943 = phi i1 [ true, %38911 ], [ %38941, %38939 ]
  %38944 = zext i1 %38943 to i32
  %38945 = icmp eq i32 0, %38944
  br i1 %38945, label %38946, label %38966

38946:                                            ; preds = %38942
  %38947 = load double, ptr %1129, align 8, !tbaa !11
  %38948 = fcmp ogt double 0.000000e+00, %38947
  br i1 %38948, label %38949, label %38966

38949:                                            ; preds = %38946
  %38950 = load double, ptr %1130, align 8, !tbaa !11
  %38951 = fcmp olt double 0.000000e+00, %38950
  br i1 %38951, label %38952, label %38966

38952:                                            ; preds = %38949
  %38953 = load double, ptr %1129, align 8, !tbaa !11
  %38954 = fneg double %38953
  %38955 = load double, ptr %1130, align 8, !tbaa !11
  %38956 = fcmp olt double %38954, %38955
  br i1 %38956, label %38957, label %38959

38957:                                            ; preds = %38952
  %38958 = load double, ptr %1130, align 8, !tbaa !11
  br label %38962

38959:                                            ; preds = %38952
  %38960 = load double, ptr %1129, align 8, !tbaa !11
  %38961 = fneg double %38960
  br label %38962

38962:                                            ; preds = %38959, %38957
  %38963 = phi double [ %38958, %38957 ], [ %38961, %38959 ]
  store double %38963, ptr %1130, align 8, !tbaa !11
  %38964 = load double, ptr %1130, align 8, !tbaa !11
  %38965 = fneg double %38964
  store double %38965, ptr %1129, align 8, !tbaa !11
  br label %38966

38966:                                            ; preds = %38962, %38949, %38946, %38942
  br label %38967

38967:                                            ; preds = %38966, %38906
  call void @llvm.lifetime.start.p0(i64 8, ptr %1135) #3
  %38968 = load double, ptr %1129, align 8, !tbaa !11
  %38969 = fcmp ole double 0.000000e+00, %38968
  %38970 = zext i1 %38969 to i64
  %38971 = select i1 %38969, double 0.000000e+00, double 0.000000e+00
  store double %38971, ptr %1135, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1136) #3
  %38972 = load double, ptr %1130, align 8, !tbaa !11
  %38973 = fcmp ole double 0.000000e+00, %38972
  %38974 = zext i1 %38973 to i64
  %38975 = select i1 %38973, double 0x41EFFFFFFFE00000, double 0.000000e+00
  store double %38975, ptr %1136, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1137) #3
  %38976 = load i8, ptr %1128, align 1, !tbaa !17
  %38977 = sitofp i8 %38976 to double
  %38978 = load double, ptr %1129, align 8, !tbaa !11
  %38979 = fsub double %38977, %38978
  %38980 = load double, ptr %1136, align 8, !tbaa !11
  %38981 = load double, ptr %1135, align 8, !tbaa !11
  %38982 = fsub double %38980, %38981
  %38983 = fmul double %38979, %38982
  %38984 = load double, ptr %1130, align 8, !tbaa !11
  %38985 = load double, ptr %1129, align 8, !tbaa !11
  %38986 = fsub double %38984, %38985
  %38987 = fdiv double %38983, %38986
  %38988 = load double, ptr %1135, align 8, !tbaa !11
  %38989 = fadd double %38987, %38988
  store double %38989, ptr %1137, align 8, !tbaa !11
  %38990 = load double, ptr %1135, align 8, !tbaa !11
  %38991 = load double, ptr %1137, align 8, !tbaa !11
  %38992 = fcmp ole double 0.000000e+00, %38991
  br i1 %38992, label %38993, label %38996

38993:                                            ; preds = %38967
  %38994 = load double, ptr %1137, align 8, !tbaa !11
  %38995 = fadd double %38994, 5.000000e-01
  br label %38999

38996:                                            ; preds = %38967
  %38997 = load double, ptr %1137, align 8, !tbaa !11
  %38998 = fsub double %38997, 5.000000e-01
  br label %38999

38999:                                            ; preds = %38996, %38993
  %39000 = phi double [ %38995, %38993 ], [ %38998, %38996 ]
  %39001 = fcmp olt double %38990, %39000
  br i1 %39001, label %39002, label %39056

39002:                                            ; preds = %38999
  %39003 = load double, ptr %1137, align 8, !tbaa !11
  %39004 = fcmp ole double 0.000000e+00, %39003
  br i1 %39004, label %39005, label %39008

39005:                                            ; preds = %39002
  %39006 = load double, ptr %1137, align 8, !tbaa !11
  %39007 = fadd double %39006, 5.000000e-01
  br label %39011

39008:                                            ; preds = %39002
  %39009 = load double, ptr %1137, align 8, !tbaa !11
  %39010 = fsub double %39009, 5.000000e-01
  br label %39011

39011:                                            ; preds = %39008, %39005
  %39012 = phi double [ %39007, %39005 ], [ %39010, %39008 ]
  %39013 = load double, ptr %1136, align 8, !tbaa !11
  %39014 = fcmp ole double %39012, %39013
  br i1 %39014, label %39015, label %39026

39015:                                            ; preds = %39011
  %39016 = load double, ptr %1137, align 8, !tbaa !11
  %39017 = fcmp ole double 0.000000e+00, %39016
  br i1 %39017, label %39018, label %39021

39018:                                            ; preds = %39015
  %39019 = load double, ptr %1137, align 8, !tbaa !11
  %39020 = fadd double %39019, 5.000000e-01
  br label %39024

39021:                                            ; preds = %39015
  %39022 = load double, ptr %1137, align 8, !tbaa !11
  %39023 = fsub double %39022, 5.000000e-01
  br label %39024

39024:                                            ; preds = %39021, %39018
  %39025 = phi double [ %39020, %39018 ], [ %39023, %39021 ]
  br label %39054

39026:                                            ; preds = %39011
  %39027 = load double, ptr %1137, align 8, !tbaa !11
  %39028 = fcmp ole double 0.000000e+00, %39027
  br i1 %39028, label %39029, label %39032

39029:                                            ; preds = %39026
  %39030 = load double, ptr %1137, align 8, !tbaa !11
  %39031 = fadd double %39030, 5.000000e-01
  br label %39035

39032:                                            ; preds = %39026
  %39033 = load double, ptr %1137, align 8, !tbaa !11
  %39034 = fsub double %39033, 5.000000e-01
  br label %39035

39035:                                            ; preds = %39032, %39029
  %39036 = phi double [ %39031, %39029 ], [ %39034, %39032 ]
  %39037 = load double, ptr %1136, align 8, !tbaa !11
  %39038 = fcmp olt double %39036, %39037
  br i1 %39038, label %39039, label %39050

39039:                                            ; preds = %39035
  %39040 = load double, ptr %1137, align 8, !tbaa !11
  %39041 = fcmp ole double 0.000000e+00, %39040
  br i1 %39041, label %39042, label %39045

39042:                                            ; preds = %39039
  %39043 = load double, ptr %1137, align 8, !tbaa !11
  %39044 = fadd double %39043, 5.000000e-01
  br label %39048

39045:                                            ; preds = %39039
  %39046 = load double, ptr %1137, align 8, !tbaa !11
  %39047 = fsub double %39046, 5.000000e-01
  br label %39048

39048:                                            ; preds = %39045, %39042
  %39049 = phi double [ %39044, %39042 ], [ %39047, %39045 ]
  br label %39052

39050:                                            ; preds = %39035
  %39051 = load double, ptr %1136, align 8, !tbaa !11
  br label %39052

39052:                                            ; preds = %39050, %39048
  %39053 = phi double [ %39049, %39048 ], [ %39051, %39050 ]
  br label %39054

39054:                                            ; preds = %39052, %39024
  %39055 = phi double [ %39025, %39024 ], [ %39053, %39052 ]
  br label %39084

39056:                                            ; preds = %38999
  %39057 = load double, ptr %1135, align 8, !tbaa !11
  %39058 = load double, ptr %1137, align 8, !tbaa !11
  %39059 = fcmp ole double 0.000000e+00, %39058
  br i1 %39059, label %39060, label %39063

39060:                                            ; preds = %39056
  %39061 = load double, ptr %1137, align 8, !tbaa !11
  %39062 = fadd double %39061, 5.000000e-01
  br label %39066

39063:                                            ; preds = %39056
  %39064 = load double, ptr %1137, align 8, !tbaa !11
  %39065 = fsub double %39064, 5.000000e-01
  br label %39066

39066:                                            ; preds = %39063, %39060
  %39067 = phi double [ %39062, %39060 ], [ %39065, %39063 ]
  %39068 = fcmp olt double %39057, %39067
  br i1 %39068, label %39069, label %39080

39069:                                            ; preds = %39066
  %39070 = load double, ptr %1137, align 8, !tbaa !11
  %39071 = fcmp ole double 0.000000e+00, %39070
  br i1 %39071, label %39072, label %39075

39072:                                            ; preds = %39069
  %39073 = load double, ptr %1137, align 8, !tbaa !11
  %39074 = fadd double %39073, 5.000000e-01
  br label %39078

39075:                                            ; preds = %39069
  %39076 = load double, ptr %1137, align 8, !tbaa !11
  %39077 = fsub double %39076, 5.000000e-01
  br label %39078

39078:                                            ; preds = %39075, %39072
  %39079 = phi double [ %39074, %39072 ], [ %39077, %39075 ]
  br label %39082

39080:                                            ; preds = %39066
  %39081 = load double, ptr %1135, align 8, !tbaa !11
  br label %39082

39082:                                            ; preds = %39080, %39078
  %39083 = phi double [ %39079, %39078 ], [ %39081, %39080 ]
  br label %39084

39084:                                            ; preds = %39082, %39054
  %39085 = phi double [ %39055, %39054 ], [ %39083, %39082 ]
  %39086 = fptoui double %39085 to i32
  %39087 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %39086, ptr %39087, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1137) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1136) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1135) #3
  br label %39172

39088:                                            ; preds = %38850, %38847
  %39089 = load i32, ptr %8, align 4, !tbaa !9
  %39090 = icmp ugt i32 6, %39089
  br i1 %39090, label %39119, label %39091

39091:                                            ; preds = %39088
  %39092 = load i32, ptr %8, align 4, !tbaa !9
  %39093 = icmp ugt i32 15, %39092
  br i1 %39093, label %39094, label %39105

39094:                                            ; preds = %39091
  %39095 = load i32, ptr %9, align 4, !tbaa !9
  %39096 = icmp ugt i32 15, %39095
  br i1 %39096, label %39097, label %39102

39097:                                            ; preds = %39094
  %39098 = load i32, ptr %9, align 4, !tbaa !9
  %39099 = load i32, ptr %8, align 4, !tbaa !9
  %39100 = icmp ugt i32 %39098, %39099
  %39101 = zext i1 %39100 to i32
  br label %39103

39102:                                            ; preds = %39094
  br label %39103

39103:                                            ; preds = %39102, %39097
  %39104 = phi i32 [ %39101, %39097 ], [ 0, %39102 ]
  br label %39116

39105:                                            ; preds = %39091
  %39106 = load i32, ptr %9, align 4, !tbaa !9
  %39107 = icmp ugt i32 15, %39106
  br i1 %39107, label %39108, label %39109

39108:                                            ; preds = %39105
  br label %39114

39109:                                            ; preds = %39105
  %39110 = load i32, ptr %9, align 4, !tbaa !9
  %39111 = load i32, ptr %8, align 4, !tbaa !9
  %39112 = icmp ugt i32 %39110, %39111
  %39113 = zext i1 %39112 to i32
  br label %39114

39114:                                            ; preds = %39109, %39108
  %39115 = phi i32 [ 0, %39108 ], [ %39113, %39109 ]
  br label %39116

39116:                                            ; preds = %39114, %39103
  %39117 = phi i32 [ %39104, %39103 ], [ %39115, %39114 ]
  %39118 = icmp ne i32 %39117, 0
  br label %39119

39119:                                            ; preds = %39116, %39088
  %39120 = phi i1 [ true, %39088 ], [ %39118, %39116 ]
  %39121 = zext i1 %39120 to i32
  %39122 = icmp eq i32 0, %39121
  br i1 %39122, label %39123, label %39167

39123:                                            ; preds = %39119
  %39124 = load i8, ptr %1128, align 1, !tbaa !17
  %39125 = sext i8 %39124 to i32
  %39126 = sitofp i32 %39125 to double
  %39127 = fcmp olt double 0.000000e+00, %39126
  br i1 %39127, label %39128, label %39151

39128:                                            ; preds = %39123
  %39129 = load i8, ptr %1128, align 1, !tbaa !17
  %39130 = sext i8 %39129 to i32
  %39131 = sitofp i32 %39130 to double
  %39132 = fcmp ole double %39131, 0x41EFFFFFFFE00000
  br i1 %39132, label %39133, label %39137

39133:                                            ; preds = %39128
  %39134 = load i8, ptr %1128, align 1, !tbaa !17
  %39135 = sext i8 %39134 to i32
  %39136 = sitofp i32 %39135 to double
  br label %39149

39137:                                            ; preds = %39128
  %39138 = load i8, ptr %1128, align 1, !tbaa !17
  %39139 = sext i8 %39138 to i32
  %39140 = sitofp i32 %39139 to double
  %39141 = fcmp olt double %39140, 0x41EFFFFFFFE00000
  br i1 %39141, label %39142, label %39146

39142:                                            ; preds = %39137
  %39143 = load i8, ptr %1128, align 1, !tbaa !17
  %39144 = sext i8 %39143 to i32
  %39145 = sitofp i32 %39144 to double
  br label %39147

39146:                                            ; preds = %39137
  br label %39147

39147:                                            ; preds = %39146, %39142
  %39148 = phi double [ %39145, %39142 ], [ 0x41EFFFFFFFE00000, %39146 ]
  br label %39149

39149:                                            ; preds = %39147, %39133
  %39150 = phi double [ %39136, %39133 ], [ %39148, %39147 ]
  br label %39163

39151:                                            ; preds = %39123
  %39152 = load i8, ptr %1128, align 1, !tbaa !17
  %39153 = sext i8 %39152 to i32
  %39154 = sitofp i32 %39153 to double
  %39155 = fcmp olt double 0.000000e+00, %39154
  br i1 %39155, label %39156, label %39160

39156:                                            ; preds = %39151
  %39157 = load i8, ptr %1128, align 1, !tbaa !17
  %39158 = sext i8 %39157 to i32
  %39159 = sitofp i32 %39158 to double
  br label %39161

39160:                                            ; preds = %39151
  br label %39161

39161:                                            ; preds = %39160, %39156
  %39162 = phi double [ %39159, %39156 ], [ 0.000000e+00, %39160 ]
  br label %39163

39163:                                            ; preds = %39161, %39149
  %39164 = phi double [ %39150, %39149 ], [ %39162, %39161 ]
  %39165 = fptoui double %39164 to i32
  %39166 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %39165, ptr %39166, align 4, !tbaa !9
  br label %39171

39167:                                            ; preds = %39119
  %39168 = load i8, ptr %1128, align 1, !tbaa !17
  %39169 = sext i8 %39168 to i32
  %39170 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %39169, ptr %39170, align 4, !tbaa !9
  br label %39171

39171:                                            ; preds = %39167, %39163
  br label %39172

39172:                                            ; preds = %39171, %39084
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1130) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1129) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %1128) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1127) #3
  br label %39173

39173:                                            ; preds = %39172
  br label %39174

39174:                                            ; preds = %39173
  br label %41383

39175:                                            ; preds = %37760
  br label %39176

39176:                                            ; preds = %39175
  call void @llvm.lifetime.start.p0(i64 8, ptr %1138) #3
  store double 5.000000e-01, ptr %1138, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1139) #3
  %39177 = load ptr, ptr %10, align 8, !tbaa !5
  %39178 = load i64, ptr %39177, align 8, !tbaa !13
  store i64 %39178, ptr %1139, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %1140) #3
  store double 0.000000e+00, ptr %1140, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1141) #3
  store double 0.000000e+00, ptr %1141, align 8, !tbaa !11
  %39179 = load ptr, ptr %11, align 8, !tbaa !5
  %39180 = icmp ne ptr null, %39179
  br i1 %39180, label %39181, label %39203

39181:                                            ; preds = %39176
  %39182 = load ptr, ptr %12, align 8, !tbaa !5
  %39183 = icmp ne ptr null, %39182
  br i1 %39183, label %39184, label %39195

39184:                                            ; preds = %39181
  %39185 = load ptr, ptr %11, align 8, !tbaa !5
  %39186 = load i64, ptr %39185, align 8, !tbaa !13
  %39187 = load i64, ptr %1139, align 8, !tbaa !13
  %39188 = icmp ule i64 %39186, %39187
  br i1 %39188, label %39189, label %39195

39189:                                            ; preds = %39184
  %39190 = load i64, ptr %1139, align 8, !tbaa !13
  %39191 = load ptr, ptr %12, align 8, !tbaa !5
  %39192 = load i64, ptr %39191, align 8, !tbaa !13
  %39193 = icmp ule i64 %39190, %39192
  br i1 %39193, label %39194, label %39195

39194:                                            ; preds = %39189
  br label %39196

39195:                                            ; preds = %39189, %39184, %39181
  call void @__assert_fail(ptr noundef @.str.46, ptr noundef @.str.24, i32 noundef 497, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

39196:                                            ; preds = %39194
  %39197 = load ptr, ptr %11, align 8, !tbaa !5
  %39198 = load i64, ptr %39197, align 8, !tbaa !13
  %39199 = uitofp i64 %39198 to double
  store double %39199, ptr %1140, align 8, !tbaa !11
  %39200 = load ptr, ptr %12, align 8, !tbaa !5
  %39201 = load i64, ptr %39200, align 8, !tbaa !13
  %39202 = uitofp i64 %39201 to double
  store double %39202, ptr %1141, align 8, !tbaa !11
  br label %39203

39203:                                            ; preds = %39196, %39176
  %39204 = load i32, ptr %8, align 4, !tbaa !9
  %39205 = icmp ule i32 6, %39204
  br i1 %39205, label %39206, label %39442

39206:                                            ; preds = %39203
  %39207 = load double, ptr %1140, align 8, !tbaa !11
  %39208 = load double, ptr %1141, align 8, !tbaa !11
  %39209 = fcmp olt double %39207, %39208
  br i1 %39209, label %39210, label %39442

39210:                                            ; preds = %39206
  %39211 = load i32, ptr %8, align 4, !tbaa !9
  %39212 = icmp ule i32 15, %39211
  br i1 %39212, label %39213, label %39265

39213:                                            ; preds = %39210
  call void @llvm.lifetime.start.p0(i64 8, ptr %1142) #3
  %39214 = load double, ptr %1140, align 8, !tbaa !11
  %39215 = fcmp olt double 0.000000e+00, %39214
  br i1 %39215, label %39216, label %39218

39216:                                            ; preds = %39213
  %39217 = load double, ptr %1140, align 8, !tbaa !11
  br label %39219

39218:                                            ; preds = %39213
  br label %39219

39219:                                            ; preds = %39218, %39216
  %39220 = phi double [ %39217, %39216 ], [ 0.000000e+00, %39218 ]
  store double %39220, ptr %1142, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1143) #3
  %39221 = load double, ptr %1141, align 8, !tbaa !11
  %39222 = fcmp olt double 0.000000e+00, %39221
  br i1 %39222, label %39223, label %39225

39223:                                            ; preds = %39219
  %39224 = load double, ptr %1141, align 8, !tbaa !11
  br label %39226

39225:                                            ; preds = %39219
  br label %39226

39226:                                            ; preds = %39225, %39223
  %39227 = phi double [ %39224, %39223 ], [ 0.000000e+00, %39225 ]
  store double %39227, ptr %1143, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1144) #3
  %39228 = load double, ptr %1142, align 8, !tbaa !11
  %39229 = load double, ptr %1143, align 8, !tbaa !11
  %39230 = fcmp olt double %39228, %39229
  br i1 %39230, label %39231, label %39239

39231:                                            ; preds = %39226
  %39232 = load double, ptr %1141, align 8, !tbaa !11
  %39233 = load double, ptr %1140, align 8, !tbaa !11
  %39234 = fsub double %39232, %39233
  %39235 = load double, ptr %1143, align 8, !tbaa !11
  %39236 = load double, ptr %1142, align 8, !tbaa !11
  %39237 = fsub double %39235, %39236
  %39238 = fdiv double %39234, %39237
  br label %39240

39239:                                            ; preds = %39226
  br label %39240

39240:                                            ; preds = %39239, %39231
  %39241 = phi double [ %39238, %39231 ], [ 1.000000e+00, %39239 ]
  store double %39241, ptr %1144, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1145) #3
  %39242 = load double, ptr %1144, align 8, !tbaa !11
  %39243 = load i64, ptr %1139, align 8, !tbaa !13
  %39244 = icmp ult i64 0, %39243
  br i1 %39244, label %39245, label %39247

39245:                                            ; preds = %39240
  %39246 = load i64, ptr %1139, align 8, !tbaa !13
  br label %39248

39247:                                            ; preds = %39240
  br label %39248

39248:                                            ; preds = %39247, %39245
  %39249 = phi i64 [ %39246, %39245 ], [ 0, %39247 ]
  %39250 = uitofp i64 %39249 to double
  %39251 = fmul double %39242, %39250
  store double %39251, ptr %1145, align 8, !tbaa !11
  %39252 = load double, ptr %1145, align 8, !tbaa !11
  %39253 = fcmp ole double 0.000000e+00, %39252
  br i1 %39253, label %39254, label %39257

39254:                                            ; preds = %39248
  %39255 = load double, ptr %1145, align 8, !tbaa !11
  %39256 = fadd double %39255, 5.000000e-01
  br label %39260

39257:                                            ; preds = %39248
  %39258 = load double, ptr %1145, align 8, !tbaa !11
  %39259 = fsub double %39258, 5.000000e-01
  br label %39260

39260:                                            ; preds = %39257, %39254
  %39261 = phi double [ %39256, %39254 ], [ %39259, %39257 ]
  %39262 = fptoui double %39261 to i64
  store i64 %39262, ptr %1139, align 8, !tbaa !13
  %39263 = load double, ptr %1142, align 8, !tbaa !11
  store double %39263, ptr %1140, align 8, !tbaa !11
  %39264 = load double, ptr %1143, align 8, !tbaa !11
  store double %39264, ptr %1141, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1145) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1144) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1143) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1142) #3
  br label %39321

39265:                                            ; preds = %39210
  %39266 = load i32, ptr %8, align 4, !tbaa !9
  %39267 = icmp ugt i32 6, %39266
  br i1 %39267, label %39296, label %39268

39268:                                            ; preds = %39265
  %39269 = load i32, ptr %8, align 4, !tbaa !9
  %39270 = icmp ugt i32 15, %39269
  br i1 %39270, label %39271, label %39282

39271:                                            ; preds = %39268
  %39272 = load i32, ptr %9, align 4, !tbaa !9
  %39273 = icmp ugt i32 15, %39272
  br i1 %39273, label %39274, label %39279

39274:                                            ; preds = %39271
  %39275 = load i32, ptr %9, align 4, !tbaa !9
  %39276 = load i32, ptr %8, align 4, !tbaa !9
  %39277 = icmp ugt i32 %39275, %39276
  %39278 = zext i1 %39277 to i32
  br label %39280

39279:                                            ; preds = %39271
  br label %39280

39280:                                            ; preds = %39279, %39274
  %39281 = phi i32 [ %39278, %39274 ], [ 0, %39279 ]
  br label %39293

39282:                                            ; preds = %39268
  %39283 = load i32, ptr %9, align 4, !tbaa !9
  %39284 = icmp ugt i32 15, %39283
  br i1 %39284, label %39285, label %39286

39285:                                            ; preds = %39282
  br label %39291

39286:                                            ; preds = %39282
  %39287 = load i32, ptr %9, align 4, !tbaa !9
  %39288 = load i32, ptr %8, align 4, !tbaa !9
  %39289 = icmp ugt i32 %39287, %39288
  %39290 = zext i1 %39289 to i32
  br label %39291

39291:                                            ; preds = %39286, %39285
  %39292 = phi i32 [ 0, %39285 ], [ %39290, %39286 ]
  br label %39293

39293:                                            ; preds = %39291, %39280
  %39294 = phi i32 [ %39281, %39280 ], [ %39292, %39291 ]
  %39295 = icmp ne i32 %39294, 0
  br label %39296

39296:                                            ; preds = %39293, %39265
  %39297 = phi i1 [ true, %39265 ], [ %39295, %39293 ]
  %39298 = zext i1 %39297 to i32
  %39299 = icmp eq i32 0, %39298
  br i1 %39299, label %39300, label %39320

39300:                                            ; preds = %39296
  %39301 = load double, ptr %1140, align 8, !tbaa !11
  %39302 = fcmp ogt double 0.000000e+00, %39301
  br i1 %39302, label %39303, label %39320

39303:                                            ; preds = %39300
  %39304 = load double, ptr %1141, align 8, !tbaa !11
  %39305 = fcmp olt double 0.000000e+00, %39304
  br i1 %39305, label %39306, label %39320

39306:                                            ; preds = %39303
  %39307 = load double, ptr %1140, align 8, !tbaa !11
  %39308 = fneg double %39307
  %39309 = load double, ptr %1141, align 8, !tbaa !11
  %39310 = fcmp olt double %39308, %39309
  br i1 %39310, label %39311, label %39313

39311:                                            ; preds = %39306
  %39312 = load double, ptr %1141, align 8, !tbaa !11
  br label %39316

39313:                                            ; preds = %39306
  %39314 = load double, ptr %1140, align 8, !tbaa !11
  %39315 = fneg double %39314
  br label %39316

39316:                                            ; preds = %39313, %39311
  %39317 = phi double [ %39312, %39311 ], [ %39315, %39313 ]
  store double %39317, ptr %1141, align 8, !tbaa !11
  %39318 = load double, ptr %1141, align 8, !tbaa !11
  %39319 = fneg double %39318
  store double %39319, ptr %1140, align 8, !tbaa !11
  br label %39320

39320:                                            ; preds = %39316, %39303, %39300, %39296
  br label %39321

39321:                                            ; preds = %39320, %39260
  call void @llvm.lifetime.start.p0(i64 8, ptr %1146) #3
  %39322 = load double, ptr %1140, align 8, !tbaa !11
  %39323 = fcmp ole double 0.000000e+00, %39322
  %39324 = zext i1 %39323 to i64
  %39325 = select i1 %39323, double 0.000000e+00, double 0.000000e+00
  store double %39325, ptr %1146, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1147) #3
  %39326 = load double, ptr %1141, align 8, !tbaa !11
  %39327 = fcmp ole double 0.000000e+00, %39326
  %39328 = zext i1 %39327 to i64
  %39329 = select i1 %39327, double 0x41EFFFFFFFE00000, double 0.000000e+00
  store double %39329, ptr %1147, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1148) #3
  %39330 = load i64, ptr %1139, align 8, !tbaa !13
  %39331 = uitofp i64 %39330 to double
  %39332 = load double, ptr %1140, align 8, !tbaa !11
  %39333 = fsub double %39331, %39332
  %39334 = load double, ptr %1147, align 8, !tbaa !11
  %39335 = load double, ptr %1146, align 8, !tbaa !11
  %39336 = fsub double %39334, %39335
  %39337 = fmul double %39333, %39336
  %39338 = load double, ptr %1141, align 8, !tbaa !11
  %39339 = load double, ptr %1140, align 8, !tbaa !11
  %39340 = fsub double %39338, %39339
  %39341 = fdiv double %39337, %39340
  %39342 = load double, ptr %1146, align 8, !tbaa !11
  %39343 = fadd double %39341, %39342
  store double %39343, ptr %1148, align 8, !tbaa !11
  %39344 = load double, ptr %1146, align 8, !tbaa !11
  %39345 = load double, ptr %1148, align 8, !tbaa !11
  %39346 = fcmp ole double 0.000000e+00, %39345
  br i1 %39346, label %39347, label %39350

39347:                                            ; preds = %39321
  %39348 = load double, ptr %1148, align 8, !tbaa !11
  %39349 = fadd double %39348, 5.000000e-01
  br label %39353

39350:                                            ; preds = %39321
  %39351 = load double, ptr %1148, align 8, !tbaa !11
  %39352 = fsub double %39351, 5.000000e-01
  br label %39353

39353:                                            ; preds = %39350, %39347
  %39354 = phi double [ %39349, %39347 ], [ %39352, %39350 ]
  %39355 = fcmp olt double %39344, %39354
  br i1 %39355, label %39356, label %39410

39356:                                            ; preds = %39353
  %39357 = load double, ptr %1148, align 8, !tbaa !11
  %39358 = fcmp ole double 0.000000e+00, %39357
  br i1 %39358, label %39359, label %39362

39359:                                            ; preds = %39356
  %39360 = load double, ptr %1148, align 8, !tbaa !11
  %39361 = fadd double %39360, 5.000000e-01
  br label %39365

39362:                                            ; preds = %39356
  %39363 = load double, ptr %1148, align 8, !tbaa !11
  %39364 = fsub double %39363, 5.000000e-01
  br label %39365

39365:                                            ; preds = %39362, %39359
  %39366 = phi double [ %39361, %39359 ], [ %39364, %39362 ]
  %39367 = load double, ptr %1147, align 8, !tbaa !11
  %39368 = fcmp ole double %39366, %39367
  br i1 %39368, label %39369, label %39380

39369:                                            ; preds = %39365
  %39370 = load double, ptr %1148, align 8, !tbaa !11
  %39371 = fcmp ole double 0.000000e+00, %39370
  br i1 %39371, label %39372, label %39375

39372:                                            ; preds = %39369
  %39373 = load double, ptr %1148, align 8, !tbaa !11
  %39374 = fadd double %39373, 5.000000e-01
  br label %39378

39375:                                            ; preds = %39369
  %39376 = load double, ptr %1148, align 8, !tbaa !11
  %39377 = fsub double %39376, 5.000000e-01
  br label %39378

39378:                                            ; preds = %39375, %39372
  %39379 = phi double [ %39374, %39372 ], [ %39377, %39375 ]
  br label %39408

39380:                                            ; preds = %39365
  %39381 = load double, ptr %1148, align 8, !tbaa !11
  %39382 = fcmp ole double 0.000000e+00, %39381
  br i1 %39382, label %39383, label %39386

39383:                                            ; preds = %39380
  %39384 = load double, ptr %1148, align 8, !tbaa !11
  %39385 = fadd double %39384, 5.000000e-01
  br label %39389

39386:                                            ; preds = %39380
  %39387 = load double, ptr %1148, align 8, !tbaa !11
  %39388 = fsub double %39387, 5.000000e-01
  br label %39389

39389:                                            ; preds = %39386, %39383
  %39390 = phi double [ %39385, %39383 ], [ %39388, %39386 ]
  %39391 = load double, ptr %1147, align 8, !tbaa !11
  %39392 = fcmp olt double %39390, %39391
  br i1 %39392, label %39393, label %39404

39393:                                            ; preds = %39389
  %39394 = load double, ptr %1148, align 8, !tbaa !11
  %39395 = fcmp ole double 0.000000e+00, %39394
  br i1 %39395, label %39396, label %39399

39396:                                            ; preds = %39393
  %39397 = load double, ptr %1148, align 8, !tbaa !11
  %39398 = fadd double %39397, 5.000000e-01
  br label %39402

39399:                                            ; preds = %39393
  %39400 = load double, ptr %1148, align 8, !tbaa !11
  %39401 = fsub double %39400, 5.000000e-01
  br label %39402

39402:                                            ; preds = %39399, %39396
  %39403 = phi double [ %39398, %39396 ], [ %39401, %39399 ]
  br label %39406

39404:                                            ; preds = %39389
  %39405 = load double, ptr %1147, align 8, !tbaa !11
  br label %39406

39406:                                            ; preds = %39404, %39402
  %39407 = phi double [ %39403, %39402 ], [ %39405, %39404 ]
  br label %39408

39408:                                            ; preds = %39406, %39378
  %39409 = phi double [ %39379, %39378 ], [ %39407, %39406 ]
  br label %39438

39410:                                            ; preds = %39353
  %39411 = load double, ptr %1146, align 8, !tbaa !11
  %39412 = load double, ptr %1148, align 8, !tbaa !11
  %39413 = fcmp ole double 0.000000e+00, %39412
  br i1 %39413, label %39414, label %39417

39414:                                            ; preds = %39410
  %39415 = load double, ptr %1148, align 8, !tbaa !11
  %39416 = fadd double %39415, 5.000000e-01
  br label %39420

39417:                                            ; preds = %39410
  %39418 = load double, ptr %1148, align 8, !tbaa !11
  %39419 = fsub double %39418, 5.000000e-01
  br label %39420

39420:                                            ; preds = %39417, %39414
  %39421 = phi double [ %39416, %39414 ], [ %39419, %39417 ]
  %39422 = fcmp olt double %39411, %39421
  br i1 %39422, label %39423, label %39434

39423:                                            ; preds = %39420
  %39424 = load double, ptr %1148, align 8, !tbaa !11
  %39425 = fcmp ole double 0.000000e+00, %39424
  br i1 %39425, label %39426, label %39429

39426:                                            ; preds = %39423
  %39427 = load double, ptr %1148, align 8, !tbaa !11
  %39428 = fadd double %39427, 5.000000e-01
  br label %39432

39429:                                            ; preds = %39423
  %39430 = load double, ptr %1148, align 8, !tbaa !11
  %39431 = fsub double %39430, 5.000000e-01
  br label %39432

39432:                                            ; preds = %39429, %39426
  %39433 = phi double [ %39428, %39426 ], [ %39431, %39429 ]
  br label %39436

39434:                                            ; preds = %39420
  %39435 = load double, ptr %1146, align 8, !tbaa !11
  br label %39436

39436:                                            ; preds = %39434, %39432
  %39437 = phi double [ %39433, %39432 ], [ %39435, %39434 ]
  br label %39438

39438:                                            ; preds = %39436, %39408
  %39439 = phi double [ %39409, %39408 ], [ %39437, %39436 ]
  %39440 = fptoui double %39439 to i32
  %39441 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %39440, ptr %39441, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1148) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1147) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1146) #3
  br label %39519

39442:                                            ; preds = %39206, %39203
  %39443 = load i32, ptr %8, align 4, !tbaa !9
  %39444 = icmp ugt i32 6, %39443
  br i1 %39444, label %39473, label %39445

39445:                                            ; preds = %39442
  %39446 = load i32, ptr %8, align 4, !tbaa !9
  %39447 = icmp ugt i32 15, %39446
  br i1 %39447, label %39448, label %39459

39448:                                            ; preds = %39445
  %39449 = load i32, ptr %9, align 4, !tbaa !9
  %39450 = icmp ugt i32 15, %39449
  br i1 %39450, label %39451, label %39456

39451:                                            ; preds = %39448
  %39452 = load i32, ptr %9, align 4, !tbaa !9
  %39453 = load i32, ptr %8, align 4, !tbaa !9
  %39454 = icmp ugt i32 %39452, %39453
  %39455 = zext i1 %39454 to i32
  br label %39457

39456:                                            ; preds = %39448
  br label %39457

39457:                                            ; preds = %39456, %39451
  %39458 = phi i32 [ %39455, %39451 ], [ 0, %39456 ]
  br label %39470

39459:                                            ; preds = %39445
  %39460 = load i32, ptr %9, align 4, !tbaa !9
  %39461 = icmp ugt i32 15, %39460
  br i1 %39461, label %39462, label %39463

39462:                                            ; preds = %39459
  br label %39468

39463:                                            ; preds = %39459
  %39464 = load i32, ptr %9, align 4, !tbaa !9
  %39465 = load i32, ptr %8, align 4, !tbaa !9
  %39466 = icmp ugt i32 %39464, %39465
  %39467 = zext i1 %39466 to i32
  br label %39468

39468:                                            ; preds = %39463, %39462
  %39469 = phi i32 [ 0, %39462 ], [ %39467, %39463 ]
  br label %39470

39470:                                            ; preds = %39468, %39457
  %39471 = phi i32 [ %39458, %39457 ], [ %39469, %39468 ]
  %39472 = icmp ne i32 %39471, 0
  br label %39473

39473:                                            ; preds = %39470, %39442
  %39474 = phi i1 [ true, %39442 ], [ %39472, %39470 ]
  %39475 = zext i1 %39474 to i32
  %39476 = icmp eq i32 0, %39475
  br i1 %39476, label %39477, label %39514

39477:                                            ; preds = %39473
  %39478 = load i64, ptr %1139, align 8, !tbaa !13
  %39479 = uitofp i64 %39478 to double
  %39480 = fcmp olt double 0.000000e+00, %39479
  br i1 %39480, label %39481, label %39500

39481:                                            ; preds = %39477
  %39482 = load i64, ptr %1139, align 8, !tbaa !13
  %39483 = uitofp i64 %39482 to double
  %39484 = fcmp ole double %39483, 0x41EFFFFFFFE00000
  br i1 %39484, label %39485, label %39488

39485:                                            ; preds = %39481
  %39486 = load i64, ptr %1139, align 8, !tbaa !13
  %39487 = uitofp i64 %39486 to double
  br label %39498

39488:                                            ; preds = %39481
  %39489 = load i64, ptr %1139, align 8, !tbaa !13
  %39490 = uitofp i64 %39489 to double
  %39491 = fcmp olt double %39490, 0x41EFFFFFFFE00000
  br i1 %39491, label %39492, label %39495

39492:                                            ; preds = %39488
  %39493 = load i64, ptr %1139, align 8, !tbaa !13
  %39494 = uitofp i64 %39493 to double
  br label %39496

39495:                                            ; preds = %39488
  br label %39496

39496:                                            ; preds = %39495, %39492
  %39497 = phi double [ %39494, %39492 ], [ 0x41EFFFFFFFE00000, %39495 ]
  br label %39498

39498:                                            ; preds = %39496, %39485
  %39499 = phi double [ %39487, %39485 ], [ %39497, %39496 ]
  br label %39510

39500:                                            ; preds = %39477
  %39501 = load i64, ptr %1139, align 8, !tbaa !13
  %39502 = uitofp i64 %39501 to double
  %39503 = fcmp olt double 0.000000e+00, %39502
  br i1 %39503, label %39504, label %39507

39504:                                            ; preds = %39500
  %39505 = load i64, ptr %1139, align 8, !tbaa !13
  %39506 = uitofp i64 %39505 to double
  br label %39508

39507:                                            ; preds = %39500
  br label %39508

39508:                                            ; preds = %39507, %39504
  %39509 = phi double [ %39506, %39504 ], [ 0.000000e+00, %39507 ]
  br label %39510

39510:                                            ; preds = %39508, %39498
  %39511 = phi double [ %39499, %39498 ], [ %39509, %39508 ]
  %39512 = fptoui double %39511 to i32
  %39513 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %39512, ptr %39513, align 4, !tbaa !9
  br label %39518

39514:                                            ; preds = %39473
  %39515 = load i64, ptr %1139, align 8, !tbaa !13
  %39516 = trunc i64 %39515 to i32
  %39517 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %39516, ptr %39517, align 4, !tbaa !9
  br label %39518

39518:                                            ; preds = %39514, %39510
  br label %39519

39519:                                            ; preds = %39518, %39438
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1141) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1140) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1139) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1138) #3
  br label %39520

39520:                                            ; preds = %39519
  br label %39521

39521:                                            ; preds = %39520
  br label %41383

39522:                                            ; preds = %37760
  br label %39523

39523:                                            ; preds = %39522
  call void @llvm.lifetime.start.p0(i64 8, ptr %1149) #3
  store double 5.000000e-01, ptr %1149, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %1150) #3
  %39524 = load ptr, ptr %10, align 8, !tbaa !5
  %39525 = load i32, ptr %39524, align 4, !tbaa !9
  store i32 %39525, ptr %1150, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1151) #3
  store double 0.000000e+00, ptr %1151, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1152) #3
  store double 0.000000e+00, ptr %1152, align 8, !tbaa !11
  %39526 = load ptr, ptr %11, align 8, !tbaa !5
  %39527 = icmp ne ptr null, %39526
  br i1 %39527, label %39528, label %39550

39528:                                            ; preds = %39523
  %39529 = load ptr, ptr %12, align 8, !tbaa !5
  %39530 = icmp ne ptr null, %39529
  br i1 %39530, label %39531, label %39542

39531:                                            ; preds = %39528
  %39532 = load ptr, ptr %11, align 8, !tbaa !5
  %39533 = load i32, ptr %39532, align 4, !tbaa !9
  %39534 = load i32, ptr %1150, align 4, !tbaa !9
  %39535 = icmp ule i32 %39533, %39534
  br i1 %39535, label %39536, label %39542

39536:                                            ; preds = %39531
  %39537 = load i32, ptr %1150, align 4, !tbaa !9
  %39538 = load ptr, ptr %12, align 8, !tbaa !5
  %39539 = load i32, ptr %39538, align 4, !tbaa !9
  %39540 = icmp ule i32 %39537, %39539
  br i1 %39540, label %39541, label %39542

39541:                                            ; preds = %39536
  br label %39543

39542:                                            ; preds = %39536, %39531, %39528
  call void @__assert_fail(ptr noundef @.str.47, ptr noundef @.str.24, i32 noundef 497, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

39543:                                            ; preds = %39541
  %39544 = load ptr, ptr %11, align 8, !tbaa !5
  %39545 = load i32, ptr %39544, align 4, !tbaa !9
  %39546 = uitofp i32 %39545 to double
  store double %39546, ptr %1151, align 8, !tbaa !11
  %39547 = load ptr, ptr %12, align 8, !tbaa !5
  %39548 = load i32, ptr %39547, align 4, !tbaa !9
  %39549 = uitofp i32 %39548 to double
  store double %39549, ptr %1152, align 8, !tbaa !11
  br label %39550

39550:                                            ; preds = %39543, %39523
  %39551 = load i32, ptr %8, align 4, !tbaa !9
  %39552 = icmp ule i32 6, %39551
  br i1 %39552, label %39553, label %39789

39553:                                            ; preds = %39550
  %39554 = load double, ptr %1151, align 8, !tbaa !11
  %39555 = load double, ptr %1152, align 8, !tbaa !11
  %39556 = fcmp olt double %39554, %39555
  br i1 %39556, label %39557, label %39789

39557:                                            ; preds = %39553
  %39558 = load i32, ptr %8, align 4, !tbaa !9
  %39559 = icmp ule i32 15, %39558
  br i1 %39559, label %39560, label %39612

39560:                                            ; preds = %39557
  call void @llvm.lifetime.start.p0(i64 8, ptr %1153) #3
  %39561 = load double, ptr %1151, align 8, !tbaa !11
  %39562 = fcmp olt double 0.000000e+00, %39561
  br i1 %39562, label %39563, label %39565

39563:                                            ; preds = %39560
  %39564 = load double, ptr %1151, align 8, !tbaa !11
  br label %39566

39565:                                            ; preds = %39560
  br label %39566

39566:                                            ; preds = %39565, %39563
  %39567 = phi double [ %39564, %39563 ], [ 0.000000e+00, %39565 ]
  store double %39567, ptr %1153, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1154) #3
  %39568 = load double, ptr %1152, align 8, !tbaa !11
  %39569 = fcmp olt double 0.000000e+00, %39568
  br i1 %39569, label %39570, label %39572

39570:                                            ; preds = %39566
  %39571 = load double, ptr %1152, align 8, !tbaa !11
  br label %39573

39572:                                            ; preds = %39566
  br label %39573

39573:                                            ; preds = %39572, %39570
  %39574 = phi double [ %39571, %39570 ], [ 0.000000e+00, %39572 ]
  store double %39574, ptr %1154, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1155) #3
  %39575 = load double, ptr %1153, align 8, !tbaa !11
  %39576 = load double, ptr %1154, align 8, !tbaa !11
  %39577 = fcmp olt double %39575, %39576
  br i1 %39577, label %39578, label %39586

39578:                                            ; preds = %39573
  %39579 = load double, ptr %1152, align 8, !tbaa !11
  %39580 = load double, ptr %1151, align 8, !tbaa !11
  %39581 = fsub double %39579, %39580
  %39582 = load double, ptr %1154, align 8, !tbaa !11
  %39583 = load double, ptr %1153, align 8, !tbaa !11
  %39584 = fsub double %39582, %39583
  %39585 = fdiv double %39581, %39584
  br label %39587

39586:                                            ; preds = %39573
  br label %39587

39587:                                            ; preds = %39586, %39578
  %39588 = phi double [ %39585, %39578 ], [ 1.000000e+00, %39586 ]
  store double %39588, ptr %1155, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1156) #3
  %39589 = load double, ptr %1155, align 8, !tbaa !11
  %39590 = load i32, ptr %1150, align 4, !tbaa !9
  %39591 = icmp ult i32 0, %39590
  br i1 %39591, label %39592, label %39594

39592:                                            ; preds = %39587
  %39593 = load i32, ptr %1150, align 4, !tbaa !9
  br label %39595

39594:                                            ; preds = %39587
  br label %39595

39595:                                            ; preds = %39594, %39592
  %39596 = phi i32 [ %39593, %39592 ], [ 0, %39594 ]
  %39597 = uitofp i32 %39596 to double
  %39598 = fmul double %39589, %39597
  store double %39598, ptr %1156, align 8, !tbaa !11
  %39599 = load double, ptr %1156, align 8, !tbaa !11
  %39600 = fcmp ole double 0.000000e+00, %39599
  br i1 %39600, label %39601, label %39604

39601:                                            ; preds = %39595
  %39602 = load double, ptr %1156, align 8, !tbaa !11
  %39603 = fadd double %39602, 5.000000e-01
  br label %39607

39604:                                            ; preds = %39595
  %39605 = load double, ptr %1156, align 8, !tbaa !11
  %39606 = fsub double %39605, 5.000000e-01
  br label %39607

39607:                                            ; preds = %39604, %39601
  %39608 = phi double [ %39603, %39601 ], [ %39606, %39604 ]
  %39609 = fptoui double %39608 to i32
  store i32 %39609, ptr %1150, align 4, !tbaa !9
  %39610 = load double, ptr %1153, align 8, !tbaa !11
  store double %39610, ptr %1151, align 8, !tbaa !11
  %39611 = load double, ptr %1154, align 8, !tbaa !11
  store double %39611, ptr %1152, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1156) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1155) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1154) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1153) #3
  br label %39668

39612:                                            ; preds = %39557
  %39613 = load i32, ptr %8, align 4, !tbaa !9
  %39614 = icmp ugt i32 6, %39613
  br i1 %39614, label %39643, label %39615

39615:                                            ; preds = %39612
  %39616 = load i32, ptr %8, align 4, !tbaa !9
  %39617 = icmp ugt i32 15, %39616
  br i1 %39617, label %39618, label %39629

39618:                                            ; preds = %39615
  %39619 = load i32, ptr %9, align 4, !tbaa !9
  %39620 = icmp ugt i32 15, %39619
  br i1 %39620, label %39621, label %39626

39621:                                            ; preds = %39618
  %39622 = load i32, ptr %9, align 4, !tbaa !9
  %39623 = load i32, ptr %8, align 4, !tbaa !9
  %39624 = icmp ugt i32 %39622, %39623
  %39625 = zext i1 %39624 to i32
  br label %39627

39626:                                            ; preds = %39618
  br label %39627

39627:                                            ; preds = %39626, %39621
  %39628 = phi i32 [ %39625, %39621 ], [ 0, %39626 ]
  br label %39640

39629:                                            ; preds = %39615
  %39630 = load i32, ptr %9, align 4, !tbaa !9
  %39631 = icmp ugt i32 15, %39630
  br i1 %39631, label %39632, label %39633

39632:                                            ; preds = %39629
  br label %39638

39633:                                            ; preds = %39629
  %39634 = load i32, ptr %9, align 4, !tbaa !9
  %39635 = load i32, ptr %8, align 4, !tbaa !9
  %39636 = icmp ugt i32 %39634, %39635
  %39637 = zext i1 %39636 to i32
  br label %39638

39638:                                            ; preds = %39633, %39632
  %39639 = phi i32 [ 0, %39632 ], [ %39637, %39633 ]
  br label %39640

39640:                                            ; preds = %39638, %39627
  %39641 = phi i32 [ %39628, %39627 ], [ %39639, %39638 ]
  %39642 = icmp ne i32 %39641, 0
  br label %39643

39643:                                            ; preds = %39640, %39612
  %39644 = phi i1 [ true, %39612 ], [ %39642, %39640 ]
  %39645 = zext i1 %39644 to i32
  %39646 = icmp eq i32 0, %39645
  br i1 %39646, label %39647, label %39667

39647:                                            ; preds = %39643
  %39648 = load double, ptr %1151, align 8, !tbaa !11
  %39649 = fcmp ogt double 0.000000e+00, %39648
  br i1 %39649, label %39650, label %39667

39650:                                            ; preds = %39647
  %39651 = load double, ptr %1152, align 8, !tbaa !11
  %39652 = fcmp olt double 0.000000e+00, %39651
  br i1 %39652, label %39653, label %39667

39653:                                            ; preds = %39650
  %39654 = load double, ptr %1151, align 8, !tbaa !11
  %39655 = fneg double %39654
  %39656 = load double, ptr %1152, align 8, !tbaa !11
  %39657 = fcmp olt double %39655, %39656
  br i1 %39657, label %39658, label %39660

39658:                                            ; preds = %39653
  %39659 = load double, ptr %1152, align 8, !tbaa !11
  br label %39663

39660:                                            ; preds = %39653
  %39661 = load double, ptr %1151, align 8, !tbaa !11
  %39662 = fneg double %39661
  br label %39663

39663:                                            ; preds = %39660, %39658
  %39664 = phi double [ %39659, %39658 ], [ %39662, %39660 ]
  store double %39664, ptr %1152, align 8, !tbaa !11
  %39665 = load double, ptr %1152, align 8, !tbaa !11
  %39666 = fneg double %39665
  store double %39666, ptr %1151, align 8, !tbaa !11
  br label %39667

39667:                                            ; preds = %39663, %39650, %39647, %39643
  br label %39668

39668:                                            ; preds = %39667, %39607
  call void @llvm.lifetime.start.p0(i64 8, ptr %1157) #3
  %39669 = load double, ptr %1151, align 8, !tbaa !11
  %39670 = fcmp ole double 0.000000e+00, %39669
  %39671 = zext i1 %39670 to i64
  %39672 = select i1 %39670, double 0.000000e+00, double 0.000000e+00
  store double %39672, ptr %1157, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1158) #3
  %39673 = load double, ptr %1152, align 8, !tbaa !11
  %39674 = fcmp ole double 0.000000e+00, %39673
  %39675 = zext i1 %39674 to i64
  %39676 = select i1 %39674, double 0x41EFFFFFFFE00000, double 0.000000e+00
  store double %39676, ptr %1158, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1159) #3
  %39677 = load i32, ptr %1150, align 4, !tbaa !9
  %39678 = uitofp i32 %39677 to double
  %39679 = load double, ptr %1151, align 8, !tbaa !11
  %39680 = fsub double %39678, %39679
  %39681 = load double, ptr %1158, align 8, !tbaa !11
  %39682 = load double, ptr %1157, align 8, !tbaa !11
  %39683 = fsub double %39681, %39682
  %39684 = fmul double %39680, %39683
  %39685 = load double, ptr %1152, align 8, !tbaa !11
  %39686 = load double, ptr %1151, align 8, !tbaa !11
  %39687 = fsub double %39685, %39686
  %39688 = fdiv double %39684, %39687
  %39689 = load double, ptr %1157, align 8, !tbaa !11
  %39690 = fadd double %39688, %39689
  store double %39690, ptr %1159, align 8, !tbaa !11
  %39691 = load double, ptr %1157, align 8, !tbaa !11
  %39692 = load double, ptr %1159, align 8, !tbaa !11
  %39693 = fcmp ole double 0.000000e+00, %39692
  br i1 %39693, label %39694, label %39697

39694:                                            ; preds = %39668
  %39695 = load double, ptr %1159, align 8, !tbaa !11
  %39696 = fadd double %39695, 5.000000e-01
  br label %39700

39697:                                            ; preds = %39668
  %39698 = load double, ptr %1159, align 8, !tbaa !11
  %39699 = fsub double %39698, 5.000000e-01
  br label %39700

39700:                                            ; preds = %39697, %39694
  %39701 = phi double [ %39696, %39694 ], [ %39699, %39697 ]
  %39702 = fcmp olt double %39691, %39701
  br i1 %39702, label %39703, label %39757

39703:                                            ; preds = %39700
  %39704 = load double, ptr %1159, align 8, !tbaa !11
  %39705 = fcmp ole double 0.000000e+00, %39704
  br i1 %39705, label %39706, label %39709

39706:                                            ; preds = %39703
  %39707 = load double, ptr %1159, align 8, !tbaa !11
  %39708 = fadd double %39707, 5.000000e-01
  br label %39712

39709:                                            ; preds = %39703
  %39710 = load double, ptr %1159, align 8, !tbaa !11
  %39711 = fsub double %39710, 5.000000e-01
  br label %39712

39712:                                            ; preds = %39709, %39706
  %39713 = phi double [ %39708, %39706 ], [ %39711, %39709 ]
  %39714 = load double, ptr %1158, align 8, !tbaa !11
  %39715 = fcmp ole double %39713, %39714
  br i1 %39715, label %39716, label %39727

39716:                                            ; preds = %39712
  %39717 = load double, ptr %1159, align 8, !tbaa !11
  %39718 = fcmp ole double 0.000000e+00, %39717
  br i1 %39718, label %39719, label %39722

39719:                                            ; preds = %39716
  %39720 = load double, ptr %1159, align 8, !tbaa !11
  %39721 = fadd double %39720, 5.000000e-01
  br label %39725

39722:                                            ; preds = %39716
  %39723 = load double, ptr %1159, align 8, !tbaa !11
  %39724 = fsub double %39723, 5.000000e-01
  br label %39725

39725:                                            ; preds = %39722, %39719
  %39726 = phi double [ %39721, %39719 ], [ %39724, %39722 ]
  br label %39755

39727:                                            ; preds = %39712
  %39728 = load double, ptr %1159, align 8, !tbaa !11
  %39729 = fcmp ole double 0.000000e+00, %39728
  br i1 %39729, label %39730, label %39733

39730:                                            ; preds = %39727
  %39731 = load double, ptr %1159, align 8, !tbaa !11
  %39732 = fadd double %39731, 5.000000e-01
  br label %39736

39733:                                            ; preds = %39727
  %39734 = load double, ptr %1159, align 8, !tbaa !11
  %39735 = fsub double %39734, 5.000000e-01
  br label %39736

39736:                                            ; preds = %39733, %39730
  %39737 = phi double [ %39732, %39730 ], [ %39735, %39733 ]
  %39738 = load double, ptr %1158, align 8, !tbaa !11
  %39739 = fcmp olt double %39737, %39738
  br i1 %39739, label %39740, label %39751

39740:                                            ; preds = %39736
  %39741 = load double, ptr %1159, align 8, !tbaa !11
  %39742 = fcmp ole double 0.000000e+00, %39741
  br i1 %39742, label %39743, label %39746

39743:                                            ; preds = %39740
  %39744 = load double, ptr %1159, align 8, !tbaa !11
  %39745 = fadd double %39744, 5.000000e-01
  br label %39749

39746:                                            ; preds = %39740
  %39747 = load double, ptr %1159, align 8, !tbaa !11
  %39748 = fsub double %39747, 5.000000e-01
  br label %39749

39749:                                            ; preds = %39746, %39743
  %39750 = phi double [ %39745, %39743 ], [ %39748, %39746 ]
  br label %39753

39751:                                            ; preds = %39736
  %39752 = load double, ptr %1158, align 8, !tbaa !11
  br label %39753

39753:                                            ; preds = %39751, %39749
  %39754 = phi double [ %39750, %39749 ], [ %39752, %39751 ]
  br label %39755

39755:                                            ; preds = %39753, %39725
  %39756 = phi double [ %39726, %39725 ], [ %39754, %39753 ]
  br label %39785

39757:                                            ; preds = %39700
  %39758 = load double, ptr %1157, align 8, !tbaa !11
  %39759 = load double, ptr %1159, align 8, !tbaa !11
  %39760 = fcmp ole double 0.000000e+00, %39759
  br i1 %39760, label %39761, label %39764

39761:                                            ; preds = %39757
  %39762 = load double, ptr %1159, align 8, !tbaa !11
  %39763 = fadd double %39762, 5.000000e-01
  br label %39767

39764:                                            ; preds = %39757
  %39765 = load double, ptr %1159, align 8, !tbaa !11
  %39766 = fsub double %39765, 5.000000e-01
  br label %39767

39767:                                            ; preds = %39764, %39761
  %39768 = phi double [ %39763, %39761 ], [ %39766, %39764 ]
  %39769 = fcmp olt double %39758, %39768
  br i1 %39769, label %39770, label %39781

39770:                                            ; preds = %39767
  %39771 = load double, ptr %1159, align 8, !tbaa !11
  %39772 = fcmp ole double 0.000000e+00, %39771
  br i1 %39772, label %39773, label %39776

39773:                                            ; preds = %39770
  %39774 = load double, ptr %1159, align 8, !tbaa !11
  %39775 = fadd double %39774, 5.000000e-01
  br label %39779

39776:                                            ; preds = %39770
  %39777 = load double, ptr %1159, align 8, !tbaa !11
  %39778 = fsub double %39777, 5.000000e-01
  br label %39779

39779:                                            ; preds = %39776, %39773
  %39780 = phi double [ %39775, %39773 ], [ %39778, %39776 ]
  br label %39783

39781:                                            ; preds = %39767
  %39782 = load double, ptr %1157, align 8, !tbaa !11
  br label %39783

39783:                                            ; preds = %39781, %39779
  %39784 = phi double [ %39780, %39779 ], [ %39782, %39781 ]
  br label %39785

39785:                                            ; preds = %39783, %39755
  %39786 = phi double [ %39756, %39755 ], [ %39784, %39783 ]
  %39787 = fptoui double %39786 to i32
  %39788 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %39787, ptr %39788, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1159) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1158) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1157) #3
  br label %39865

39789:                                            ; preds = %39553, %39550
  %39790 = load i32, ptr %8, align 4, !tbaa !9
  %39791 = icmp ugt i32 6, %39790
  br i1 %39791, label %39820, label %39792

39792:                                            ; preds = %39789
  %39793 = load i32, ptr %8, align 4, !tbaa !9
  %39794 = icmp ugt i32 15, %39793
  br i1 %39794, label %39795, label %39806

39795:                                            ; preds = %39792
  %39796 = load i32, ptr %9, align 4, !tbaa !9
  %39797 = icmp ugt i32 15, %39796
  br i1 %39797, label %39798, label %39803

39798:                                            ; preds = %39795
  %39799 = load i32, ptr %9, align 4, !tbaa !9
  %39800 = load i32, ptr %8, align 4, !tbaa !9
  %39801 = icmp ugt i32 %39799, %39800
  %39802 = zext i1 %39801 to i32
  br label %39804

39803:                                            ; preds = %39795
  br label %39804

39804:                                            ; preds = %39803, %39798
  %39805 = phi i32 [ %39802, %39798 ], [ 0, %39803 ]
  br label %39817

39806:                                            ; preds = %39792
  %39807 = load i32, ptr %9, align 4, !tbaa !9
  %39808 = icmp ugt i32 15, %39807
  br i1 %39808, label %39809, label %39810

39809:                                            ; preds = %39806
  br label %39815

39810:                                            ; preds = %39806
  %39811 = load i32, ptr %9, align 4, !tbaa !9
  %39812 = load i32, ptr %8, align 4, !tbaa !9
  %39813 = icmp ugt i32 %39811, %39812
  %39814 = zext i1 %39813 to i32
  br label %39815

39815:                                            ; preds = %39810, %39809
  %39816 = phi i32 [ 0, %39809 ], [ %39814, %39810 ]
  br label %39817

39817:                                            ; preds = %39815, %39804
  %39818 = phi i32 [ %39805, %39804 ], [ %39816, %39815 ]
  %39819 = icmp ne i32 %39818, 0
  br label %39820

39820:                                            ; preds = %39817, %39789
  %39821 = phi i1 [ true, %39789 ], [ %39819, %39817 ]
  %39822 = zext i1 %39821 to i32
  %39823 = icmp eq i32 0, %39822
  br i1 %39823, label %39824, label %39861

39824:                                            ; preds = %39820
  %39825 = load i32, ptr %1150, align 4, !tbaa !9
  %39826 = uitofp i32 %39825 to double
  %39827 = fcmp olt double 0.000000e+00, %39826
  br i1 %39827, label %39828, label %39847

39828:                                            ; preds = %39824
  %39829 = load i32, ptr %1150, align 4, !tbaa !9
  %39830 = uitofp i32 %39829 to double
  %39831 = fcmp ole double %39830, 0x41EFFFFFFFE00000
  br i1 %39831, label %39832, label %39835

39832:                                            ; preds = %39828
  %39833 = load i32, ptr %1150, align 4, !tbaa !9
  %39834 = uitofp i32 %39833 to double
  br label %39845

39835:                                            ; preds = %39828
  %39836 = load i32, ptr %1150, align 4, !tbaa !9
  %39837 = uitofp i32 %39836 to double
  %39838 = fcmp olt double %39837, 0x41EFFFFFFFE00000
  br i1 %39838, label %39839, label %39842

39839:                                            ; preds = %39835
  %39840 = load i32, ptr %1150, align 4, !tbaa !9
  %39841 = uitofp i32 %39840 to double
  br label %39843

39842:                                            ; preds = %39835
  br label %39843

39843:                                            ; preds = %39842, %39839
  %39844 = phi double [ %39841, %39839 ], [ 0x41EFFFFFFFE00000, %39842 ]
  br label %39845

39845:                                            ; preds = %39843, %39832
  %39846 = phi double [ %39834, %39832 ], [ %39844, %39843 ]
  br label %39857

39847:                                            ; preds = %39824
  %39848 = load i32, ptr %1150, align 4, !tbaa !9
  %39849 = uitofp i32 %39848 to double
  %39850 = fcmp olt double 0.000000e+00, %39849
  br i1 %39850, label %39851, label %39854

39851:                                            ; preds = %39847
  %39852 = load i32, ptr %1150, align 4, !tbaa !9
  %39853 = uitofp i32 %39852 to double
  br label %39855

39854:                                            ; preds = %39847
  br label %39855

39855:                                            ; preds = %39854, %39851
  %39856 = phi double [ %39853, %39851 ], [ 0.000000e+00, %39854 ]
  br label %39857

39857:                                            ; preds = %39855, %39845
  %39858 = phi double [ %39846, %39845 ], [ %39856, %39855 ]
  %39859 = fptoui double %39858 to i32
  %39860 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %39859, ptr %39860, align 4, !tbaa !9
  br label %39864

39861:                                            ; preds = %39820
  %39862 = load i32, ptr %1150, align 4, !tbaa !9
  %39863 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %39862, ptr %39863, align 4, !tbaa !9
  br label %39864

39864:                                            ; preds = %39861, %39857
  br label %39865

39865:                                            ; preds = %39864, %39785
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1152) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1151) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %1150) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1149) #3
  br label %39866

39866:                                            ; preds = %39865
  br label %39867

39867:                                            ; preds = %39866
  br label %41383

39868:                                            ; preds = %37760
  br label %39869

39869:                                            ; preds = %39868
  call void @llvm.lifetime.start.p0(i64 8, ptr %1160) #3
  store double 5.000000e-01, ptr %1160, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %1161) #3
  %39870 = load ptr, ptr %10, align 8, !tbaa !5
  %39871 = load i16, ptr %39870, align 2, !tbaa !15
  store i16 %39871, ptr %1161, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %1162) #3
  store double 0.000000e+00, ptr %1162, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1163) #3
  store double 0.000000e+00, ptr %1163, align 8, !tbaa !11
  %39872 = load ptr, ptr %11, align 8, !tbaa !5
  %39873 = icmp ne ptr null, %39872
  br i1 %39873, label %39874, label %39900

39874:                                            ; preds = %39869
  %39875 = load ptr, ptr %12, align 8, !tbaa !5
  %39876 = icmp ne ptr null, %39875
  br i1 %39876, label %39877, label %39892

39877:                                            ; preds = %39874
  %39878 = load ptr, ptr %11, align 8, !tbaa !5
  %39879 = load i16, ptr %39878, align 2, !tbaa !15
  %39880 = zext i16 %39879 to i32
  %39881 = load i16, ptr %1161, align 2, !tbaa !15
  %39882 = zext i16 %39881 to i32
  %39883 = icmp sle i32 %39880, %39882
  br i1 %39883, label %39884, label %39892

39884:                                            ; preds = %39877
  %39885 = load i16, ptr %1161, align 2, !tbaa !15
  %39886 = zext i16 %39885 to i32
  %39887 = load ptr, ptr %12, align 8, !tbaa !5
  %39888 = load i16, ptr %39887, align 2, !tbaa !15
  %39889 = zext i16 %39888 to i32
  %39890 = icmp sle i32 %39886, %39889
  br i1 %39890, label %39891, label %39892

39891:                                            ; preds = %39884
  br label %39893

39892:                                            ; preds = %39884, %39877, %39874
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.24, i32 noundef 497, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

39893:                                            ; preds = %39891
  %39894 = load ptr, ptr %11, align 8, !tbaa !5
  %39895 = load i16, ptr %39894, align 2, !tbaa !15
  %39896 = uitofp i16 %39895 to double
  store double %39896, ptr %1162, align 8, !tbaa !11
  %39897 = load ptr, ptr %12, align 8, !tbaa !5
  %39898 = load i16, ptr %39897, align 2, !tbaa !15
  %39899 = uitofp i16 %39898 to double
  store double %39899, ptr %1163, align 8, !tbaa !11
  br label %39900

39900:                                            ; preds = %39893, %39869
  %39901 = load i32, ptr %8, align 4, !tbaa !9
  %39902 = icmp ule i32 6, %39901
  br i1 %39902, label %39903, label %40141

39903:                                            ; preds = %39900
  %39904 = load double, ptr %1162, align 8, !tbaa !11
  %39905 = load double, ptr %1163, align 8, !tbaa !11
  %39906 = fcmp olt double %39904, %39905
  br i1 %39906, label %39907, label %40141

39907:                                            ; preds = %39903
  %39908 = load i32, ptr %8, align 4, !tbaa !9
  %39909 = icmp ule i32 15, %39908
  br i1 %39909, label %39910, label %39964

39910:                                            ; preds = %39907
  call void @llvm.lifetime.start.p0(i64 8, ptr %1164) #3
  %39911 = load double, ptr %1162, align 8, !tbaa !11
  %39912 = fcmp olt double 0.000000e+00, %39911
  br i1 %39912, label %39913, label %39915

39913:                                            ; preds = %39910
  %39914 = load double, ptr %1162, align 8, !tbaa !11
  br label %39916

39915:                                            ; preds = %39910
  br label %39916

39916:                                            ; preds = %39915, %39913
  %39917 = phi double [ %39914, %39913 ], [ 0.000000e+00, %39915 ]
  store double %39917, ptr %1164, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1165) #3
  %39918 = load double, ptr %1163, align 8, !tbaa !11
  %39919 = fcmp olt double 0.000000e+00, %39918
  br i1 %39919, label %39920, label %39922

39920:                                            ; preds = %39916
  %39921 = load double, ptr %1163, align 8, !tbaa !11
  br label %39923

39922:                                            ; preds = %39916
  br label %39923

39923:                                            ; preds = %39922, %39920
  %39924 = phi double [ %39921, %39920 ], [ 0.000000e+00, %39922 ]
  store double %39924, ptr %1165, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1166) #3
  %39925 = load double, ptr %1164, align 8, !tbaa !11
  %39926 = load double, ptr %1165, align 8, !tbaa !11
  %39927 = fcmp olt double %39925, %39926
  br i1 %39927, label %39928, label %39936

39928:                                            ; preds = %39923
  %39929 = load double, ptr %1163, align 8, !tbaa !11
  %39930 = load double, ptr %1162, align 8, !tbaa !11
  %39931 = fsub double %39929, %39930
  %39932 = load double, ptr %1165, align 8, !tbaa !11
  %39933 = load double, ptr %1164, align 8, !tbaa !11
  %39934 = fsub double %39932, %39933
  %39935 = fdiv double %39931, %39934
  br label %39937

39936:                                            ; preds = %39923
  br label %39937

39937:                                            ; preds = %39936, %39928
  %39938 = phi double [ %39935, %39928 ], [ 1.000000e+00, %39936 ]
  store double %39938, ptr %1166, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1167) #3
  %39939 = load double, ptr %1166, align 8, !tbaa !11
  %39940 = load i16, ptr %1161, align 2, !tbaa !15
  %39941 = zext i16 %39940 to i32
  %39942 = icmp slt i32 0, %39941
  br i1 %39942, label %39943, label %39946

39943:                                            ; preds = %39937
  %39944 = load i16, ptr %1161, align 2, !tbaa !15
  %39945 = zext i16 %39944 to i32
  br label %39947

39946:                                            ; preds = %39937
  br label %39947

39947:                                            ; preds = %39946, %39943
  %39948 = phi i32 [ %39945, %39943 ], [ 0, %39946 ]
  %39949 = sitofp i32 %39948 to double
  %39950 = fmul double %39939, %39949
  store double %39950, ptr %1167, align 8, !tbaa !11
  %39951 = load double, ptr %1167, align 8, !tbaa !11
  %39952 = fcmp ole double 0.000000e+00, %39951
  br i1 %39952, label %39953, label %39956

39953:                                            ; preds = %39947
  %39954 = load double, ptr %1167, align 8, !tbaa !11
  %39955 = fadd double %39954, 5.000000e-01
  br label %39959

39956:                                            ; preds = %39947
  %39957 = load double, ptr %1167, align 8, !tbaa !11
  %39958 = fsub double %39957, 5.000000e-01
  br label %39959

39959:                                            ; preds = %39956, %39953
  %39960 = phi double [ %39955, %39953 ], [ %39958, %39956 ]
  %39961 = fptoui double %39960 to i16
  store i16 %39961, ptr %1161, align 2, !tbaa !15
  %39962 = load double, ptr %1164, align 8, !tbaa !11
  store double %39962, ptr %1162, align 8, !tbaa !11
  %39963 = load double, ptr %1165, align 8, !tbaa !11
  store double %39963, ptr %1163, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1167) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1166) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1165) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1164) #3
  br label %40020

39964:                                            ; preds = %39907
  %39965 = load i32, ptr %8, align 4, !tbaa !9
  %39966 = icmp ugt i32 6, %39965
  br i1 %39966, label %39995, label %39967

39967:                                            ; preds = %39964
  %39968 = load i32, ptr %8, align 4, !tbaa !9
  %39969 = icmp ugt i32 15, %39968
  br i1 %39969, label %39970, label %39981

39970:                                            ; preds = %39967
  %39971 = load i32, ptr %9, align 4, !tbaa !9
  %39972 = icmp ugt i32 15, %39971
  br i1 %39972, label %39973, label %39978

39973:                                            ; preds = %39970
  %39974 = load i32, ptr %9, align 4, !tbaa !9
  %39975 = load i32, ptr %8, align 4, !tbaa !9
  %39976 = icmp ugt i32 %39974, %39975
  %39977 = zext i1 %39976 to i32
  br label %39979

39978:                                            ; preds = %39970
  br label %39979

39979:                                            ; preds = %39978, %39973
  %39980 = phi i32 [ %39977, %39973 ], [ 0, %39978 ]
  br label %39992

39981:                                            ; preds = %39967
  %39982 = load i32, ptr %9, align 4, !tbaa !9
  %39983 = icmp ugt i32 15, %39982
  br i1 %39983, label %39984, label %39985

39984:                                            ; preds = %39981
  br label %39990

39985:                                            ; preds = %39981
  %39986 = load i32, ptr %9, align 4, !tbaa !9
  %39987 = load i32, ptr %8, align 4, !tbaa !9
  %39988 = icmp ugt i32 %39986, %39987
  %39989 = zext i1 %39988 to i32
  br label %39990

39990:                                            ; preds = %39985, %39984
  %39991 = phi i32 [ 0, %39984 ], [ %39989, %39985 ]
  br label %39992

39992:                                            ; preds = %39990, %39979
  %39993 = phi i32 [ %39980, %39979 ], [ %39991, %39990 ]
  %39994 = icmp ne i32 %39993, 0
  br label %39995

39995:                                            ; preds = %39992, %39964
  %39996 = phi i1 [ true, %39964 ], [ %39994, %39992 ]
  %39997 = zext i1 %39996 to i32
  %39998 = icmp eq i32 0, %39997
  br i1 %39998, label %39999, label %40019

39999:                                            ; preds = %39995
  %40000 = load double, ptr %1162, align 8, !tbaa !11
  %40001 = fcmp ogt double 0.000000e+00, %40000
  br i1 %40001, label %40002, label %40019

40002:                                            ; preds = %39999
  %40003 = load double, ptr %1163, align 8, !tbaa !11
  %40004 = fcmp olt double 0.000000e+00, %40003
  br i1 %40004, label %40005, label %40019

40005:                                            ; preds = %40002
  %40006 = load double, ptr %1162, align 8, !tbaa !11
  %40007 = fneg double %40006
  %40008 = load double, ptr %1163, align 8, !tbaa !11
  %40009 = fcmp olt double %40007, %40008
  br i1 %40009, label %40010, label %40012

40010:                                            ; preds = %40005
  %40011 = load double, ptr %1163, align 8, !tbaa !11
  br label %40015

40012:                                            ; preds = %40005
  %40013 = load double, ptr %1162, align 8, !tbaa !11
  %40014 = fneg double %40013
  br label %40015

40015:                                            ; preds = %40012, %40010
  %40016 = phi double [ %40011, %40010 ], [ %40014, %40012 ]
  store double %40016, ptr %1163, align 8, !tbaa !11
  %40017 = load double, ptr %1163, align 8, !tbaa !11
  %40018 = fneg double %40017
  store double %40018, ptr %1162, align 8, !tbaa !11
  br label %40019

40019:                                            ; preds = %40015, %40002, %39999, %39995
  br label %40020

40020:                                            ; preds = %40019, %39959
  call void @llvm.lifetime.start.p0(i64 8, ptr %1168) #3
  %40021 = load double, ptr %1162, align 8, !tbaa !11
  %40022 = fcmp ole double 0.000000e+00, %40021
  %40023 = zext i1 %40022 to i64
  %40024 = select i1 %40022, double 0.000000e+00, double 0.000000e+00
  store double %40024, ptr %1168, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1169) #3
  %40025 = load double, ptr %1163, align 8, !tbaa !11
  %40026 = fcmp ole double 0.000000e+00, %40025
  %40027 = zext i1 %40026 to i64
  %40028 = select i1 %40026, double 0x41EFFFFFFFE00000, double 0.000000e+00
  store double %40028, ptr %1169, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1170) #3
  %40029 = load i16, ptr %1161, align 2, !tbaa !15
  %40030 = uitofp i16 %40029 to double
  %40031 = load double, ptr %1162, align 8, !tbaa !11
  %40032 = fsub double %40030, %40031
  %40033 = load double, ptr %1169, align 8, !tbaa !11
  %40034 = load double, ptr %1168, align 8, !tbaa !11
  %40035 = fsub double %40033, %40034
  %40036 = fmul double %40032, %40035
  %40037 = load double, ptr %1163, align 8, !tbaa !11
  %40038 = load double, ptr %1162, align 8, !tbaa !11
  %40039 = fsub double %40037, %40038
  %40040 = fdiv double %40036, %40039
  %40041 = load double, ptr %1168, align 8, !tbaa !11
  %40042 = fadd double %40040, %40041
  store double %40042, ptr %1170, align 8, !tbaa !11
  %40043 = load double, ptr %1168, align 8, !tbaa !11
  %40044 = load double, ptr %1170, align 8, !tbaa !11
  %40045 = fcmp ole double 0.000000e+00, %40044
  br i1 %40045, label %40046, label %40049

40046:                                            ; preds = %40020
  %40047 = load double, ptr %1170, align 8, !tbaa !11
  %40048 = fadd double %40047, 5.000000e-01
  br label %40052

40049:                                            ; preds = %40020
  %40050 = load double, ptr %1170, align 8, !tbaa !11
  %40051 = fsub double %40050, 5.000000e-01
  br label %40052

40052:                                            ; preds = %40049, %40046
  %40053 = phi double [ %40048, %40046 ], [ %40051, %40049 ]
  %40054 = fcmp olt double %40043, %40053
  br i1 %40054, label %40055, label %40109

40055:                                            ; preds = %40052
  %40056 = load double, ptr %1170, align 8, !tbaa !11
  %40057 = fcmp ole double 0.000000e+00, %40056
  br i1 %40057, label %40058, label %40061

40058:                                            ; preds = %40055
  %40059 = load double, ptr %1170, align 8, !tbaa !11
  %40060 = fadd double %40059, 5.000000e-01
  br label %40064

40061:                                            ; preds = %40055
  %40062 = load double, ptr %1170, align 8, !tbaa !11
  %40063 = fsub double %40062, 5.000000e-01
  br label %40064

40064:                                            ; preds = %40061, %40058
  %40065 = phi double [ %40060, %40058 ], [ %40063, %40061 ]
  %40066 = load double, ptr %1169, align 8, !tbaa !11
  %40067 = fcmp ole double %40065, %40066
  br i1 %40067, label %40068, label %40079

40068:                                            ; preds = %40064
  %40069 = load double, ptr %1170, align 8, !tbaa !11
  %40070 = fcmp ole double 0.000000e+00, %40069
  br i1 %40070, label %40071, label %40074

40071:                                            ; preds = %40068
  %40072 = load double, ptr %1170, align 8, !tbaa !11
  %40073 = fadd double %40072, 5.000000e-01
  br label %40077

40074:                                            ; preds = %40068
  %40075 = load double, ptr %1170, align 8, !tbaa !11
  %40076 = fsub double %40075, 5.000000e-01
  br label %40077

40077:                                            ; preds = %40074, %40071
  %40078 = phi double [ %40073, %40071 ], [ %40076, %40074 ]
  br label %40107

40079:                                            ; preds = %40064
  %40080 = load double, ptr %1170, align 8, !tbaa !11
  %40081 = fcmp ole double 0.000000e+00, %40080
  br i1 %40081, label %40082, label %40085

40082:                                            ; preds = %40079
  %40083 = load double, ptr %1170, align 8, !tbaa !11
  %40084 = fadd double %40083, 5.000000e-01
  br label %40088

40085:                                            ; preds = %40079
  %40086 = load double, ptr %1170, align 8, !tbaa !11
  %40087 = fsub double %40086, 5.000000e-01
  br label %40088

40088:                                            ; preds = %40085, %40082
  %40089 = phi double [ %40084, %40082 ], [ %40087, %40085 ]
  %40090 = load double, ptr %1169, align 8, !tbaa !11
  %40091 = fcmp olt double %40089, %40090
  br i1 %40091, label %40092, label %40103

40092:                                            ; preds = %40088
  %40093 = load double, ptr %1170, align 8, !tbaa !11
  %40094 = fcmp ole double 0.000000e+00, %40093
  br i1 %40094, label %40095, label %40098

40095:                                            ; preds = %40092
  %40096 = load double, ptr %1170, align 8, !tbaa !11
  %40097 = fadd double %40096, 5.000000e-01
  br label %40101

40098:                                            ; preds = %40092
  %40099 = load double, ptr %1170, align 8, !tbaa !11
  %40100 = fsub double %40099, 5.000000e-01
  br label %40101

40101:                                            ; preds = %40098, %40095
  %40102 = phi double [ %40097, %40095 ], [ %40100, %40098 ]
  br label %40105

40103:                                            ; preds = %40088
  %40104 = load double, ptr %1169, align 8, !tbaa !11
  br label %40105

40105:                                            ; preds = %40103, %40101
  %40106 = phi double [ %40102, %40101 ], [ %40104, %40103 ]
  br label %40107

40107:                                            ; preds = %40105, %40077
  %40108 = phi double [ %40078, %40077 ], [ %40106, %40105 ]
  br label %40137

40109:                                            ; preds = %40052
  %40110 = load double, ptr %1168, align 8, !tbaa !11
  %40111 = load double, ptr %1170, align 8, !tbaa !11
  %40112 = fcmp ole double 0.000000e+00, %40111
  br i1 %40112, label %40113, label %40116

40113:                                            ; preds = %40109
  %40114 = load double, ptr %1170, align 8, !tbaa !11
  %40115 = fadd double %40114, 5.000000e-01
  br label %40119

40116:                                            ; preds = %40109
  %40117 = load double, ptr %1170, align 8, !tbaa !11
  %40118 = fsub double %40117, 5.000000e-01
  br label %40119

40119:                                            ; preds = %40116, %40113
  %40120 = phi double [ %40115, %40113 ], [ %40118, %40116 ]
  %40121 = fcmp olt double %40110, %40120
  br i1 %40121, label %40122, label %40133

40122:                                            ; preds = %40119
  %40123 = load double, ptr %1170, align 8, !tbaa !11
  %40124 = fcmp ole double 0.000000e+00, %40123
  br i1 %40124, label %40125, label %40128

40125:                                            ; preds = %40122
  %40126 = load double, ptr %1170, align 8, !tbaa !11
  %40127 = fadd double %40126, 5.000000e-01
  br label %40131

40128:                                            ; preds = %40122
  %40129 = load double, ptr %1170, align 8, !tbaa !11
  %40130 = fsub double %40129, 5.000000e-01
  br label %40131

40131:                                            ; preds = %40128, %40125
  %40132 = phi double [ %40127, %40125 ], [ %40130, %40128 ]
  br label %40135

40133:                                            ; preds = %40119
  %40134 = load double, ptr %1168, align 8, !tbaa !11
  br label %40135

40135:                                            ; preds = %40133, %40131
  %40136 = phi double [ %40132, %40131 ], [ %40134, %40133 ]
  br label %40137

40137:                                            ; preds = %40135, %40107
  %40138 = phi double [ %40108, %40107 ], [ %40136, %40135 ]
  %40139 = fptoui double %40138 to i32
  %40140 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %40139, ptr %40140, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1170) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1169) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1168) #3
  br label %40225

40141:                                            ; preds = %39903, %39900
  %40142 = load i32, ptr %8, align 4, !tbaa !9
  %40143 = icmp ugt i32 6, %40142
  br i1 %40143, label %40172, label %40144

40144:                                            ; preds = %40141
  %40145 = load i32, ptr %8, align 4, !tbaa !9
  %40146 = icmp ugt i32 15, %40145
  br i1 %40146, label %40147, label %40158

40147:                                            ; preds = %40144
  %40148 = load i32, ptr %9, align 4, !tbaa !9
  %40149 = icmp ugt i32 15, %40148
  br i1 %40149, label %40150, label %40155

40150:                                            ; preds = %40147
  %40151 = load i32, ptr %9, align 4, !tbaa !9
  %40152 = load i32, ptr %8, align 4, !tbaa !9
  %40153 = icmp ugt i32 %40151, %40152
  %40154 = zext i1 %40153 to i32
  br label %40156

40155:                                            ; preds = %40147
  br label %40156

40156:                                            ; preds = %40155, %40150
  %40157 = phi i32 [ %40154, %40150 ], [ 0, %40155 ]
  br label %40169

40158:                                            ; preds = %40144
  %40159 = load i32, ptr %9, align 4, !tbaa !9
  %40160 = icmp ugt i32 15, %40159
  br i1 %40160, label %40161, label %40162

40161:                                            ; preds = %40158
  br label %40167

40162:                                            ; preds = %40158
  %40163 = load i32, ptr %9, align 4, !tbaa !9
  %40164 = load i32, ptr %8, align 4, !tbaa !9
  %40165 = icmp ugt i32 %40163, %40164
  %40166 = zext i1 %40165 to i32
  br label %40167

40167:                                            ; preds = %40162, %40161
  %40168 = phi i32 [ 0, %40161 ], [ %40166, %40162 ]
  br label %40169

40169:                                            ; preds = %40167, %40156
  %40170 = phi i32 [ %40157, %40156 ], [ %40168, %40167 ]
  %40171 = icmp ne i32 %40170, 0
  br label %40172

40172:                                            ; preds = %40169, %40141
  %40173 = phi i1 [ true, %40141 ], [ %40171, %40169 ]
  %40174 = zext i1 %40173 to i32
  %40175 = icmp eq i32 0, %40174
  br i1 %40175, label %40176, label %40220

40176:                                            ; preds = %40172
  %40177 = load i16, ptr %1161, align 2, !tbaa !15
  %40178 = zext i16 %40177 to i32
  %40179 = sitofp i32 %40178 to double
  %40180 = fcmp olt double 0.000000e+00, %40179
  br i1 %40180, label %40181, label %40204

40181:                                            ; preds = %40176
  %40182 = load i16, ptr %1161, align 2, !tbaa !15
  %40183 = zext i16 %40182 to i32
  %40184 = sitofp i32 %40183 to double
  %40185 = fcmp ole double %40184, 0x41EFFFFFFFE00000
  br i1 %40185, label %40186, label %40190

40186:                                            ; preds = %40181
  %40187 = load i16, ptr %1161, align 2, !tbaa !15
  %40188 = zext i16 %40187 to i32
  %40189 = sitofp i32 %40188 to double
  br label %40202

40190:                                            ; preds = %40181
  %40191 = load i16, ptr %1161, align 2, !tbaa !15
  %40192 = zext i16 %40191 to i32
  %40193 = sitofp i32 %40192 to double
  %40194 = fcmp olt double %40193, 0x41EFFFFFFFE00000
  br i1 %40194, label %40195, label %40199

40195:                                            ; preds = %40190
  %40196 = load i16, ptr %1161, align 2, !tbaa !15
  %40197 = zext i16 %40196 to i32
  %40198 = sitofp i32 %40197 to double
  br label %40200

40199:                                            ; preds = %40190
  br label %40200

40200:                                            ; preds = %40199, %40195
  %40201 = phi double [ %40198, %40195 ], [ 0x41EFFFFFFFE00000, %40199 ]
  br label %40202

40202:                                            ; preds = %40200, %40186
  %40203 = phi double [ %40189, %40186 ], [ %40201, %40200 ]
  br label %40216

40204:                                            ; preds = %40176
  %40205 = load i16, ptr %1161, align 2, !tbaa !15
  %40206 = zext i16 %40205 to i32
  %40207 = sitofp i32 %40206 to double
  %40208 = fcmp olt double 0.000000e+00, %40207
  br i1 %40208, label %40209, label %40213

40209:                                            ; preds = %40204
  %40210 = load i16, ptr %1161, align 2, !tbaa !15
  %40211 = zext i16 %40210 to i32
  %40212 = sitofp i32 %40211 to double
  br label %40214

40213:                                            ; preds = %40204
  br label %40214

40214:                                            ; preds = %40213, %40209
  %40215 = phi double [ %40212, %40209 ], [ 0.000000e+00, %40213 ]
  br label %40216

40216:                                            ; preds = %40214, %40202
  %40217 = phi double [ %40203, %40202 ], [ %40215, %40214 ]
  %40218 = fptoui double %40217 to i32
  %40219 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %40218, ptr %40219, align 4, !tbaa !9
  br label %40224

40220:                                            ; preds = %40172
  %40221 = load i16, ptr %1161, align 2, !tbaa !15
  %40222 = zext i16 %40221 to i32
  %40223 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %40222, ptr %40223, align 4, !tbaa !9
  br label %40224

40224:                                            ; preds = %40220, %40216
  br label %40225

40225:                                            ; preds = %40224, %40137
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1163) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1162) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %1161) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1160) #3
  br label %40226

40226:                                            ; preds = %40225
  br label %40227

40227:                                            ; preds = %40226
  br label %41383

40228:                                            ; preds = %37760
  br label %40229

40229:                                            ; preds = %40228
  call void @llvm.lifetime.start.p0(i64 8, ptr %1171) #3
  store double 5.000000e-01, ptr %1171, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %1172) #3
  %40230 = load ptr, ptr %10, align 8, !tbaa !5
  %40231 = load i8, ptr %40230, align 1, !tbaa !17
  store i8 %40231, ptr %1172, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %1173) #3
  store double 0.000000e+00, ptr %1173, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1174) #3
  store double 0.000000e+00, ptr %1174, align 8, !tbaa !11
  %40232 = load ptr, ptr %11, align 8, !tbaa !5
  %40233 = icmp ne ptr null, %40232
  br i1 %40233, label %40234, label %40260

40234:                                            ; preds = %40229
  %40235 = load ptr, ptr %12, align 8, !tbaa !5
  %40236 = icmp ne ptr null, %40235
  br i1 %40236, label %40237, label %40252

40237:                                            ; preds = %40234
  %40238 = load ptr, ptr %11, align 8, !tbaa !5
  %40239 = load i8, ptr %40238, align 1, !tbaa !17
  %40240 = zext i8 %40239 to i32
  %40241 = load i8, ptr %1172, align 1, !tbaa !17
  %40242 = zext i8 %40241 to i32
  %40243 = icmp sle i32 %40240, %40242
  br i1 %40243, label %40244, label %40252

40244:                                            ; preds = %40237
  %40245 = load i8, ptr %1172, align 1, !tbaa !17
  %40246 = zext i8 %40245 to i32
  %40247 = load ptr, ptr %12, align 8, !tbaa !5
  %40248 = load i8, ptr %40247, align 1, !tbaa !17
  %40249 = zext i8 %40248 to i32
  %40250 = icmp sle i32 %40246, %40249
  br i1 %40250, label %40251, label %40252

40251:                                            ; preds = %40244
  br label %40253

40252:                                            ; preds = %40244, %40237, %40234
  call void @__assert_fail(ptr noundef @.str.49, ptr noundef @.str.24, i32 noundef 497, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

40253:                                            ; preds = %40251
  %40254 = load ptr, ptr %11, align 8, !tbaa !5
  %40255 = load i8, ptr %40254, align 1, !tbaa !17
  %40256 = uitofp i8 %40255 to double
  store double %40256, ptr %1173, align 8, !tbaa !11
  %40257 = load ptr, ptr %12, align 8, !tbaa !5
  %40258 = load i8, ptr %40257, align 1, !tbaa !17
  %40259 = uitofp i8 %40258 to double
  store double %40259, ptr %1174, align 8, !tbaa !11
  br label %40260

40260:                                            ; preds = %40253, %40229
  %40261 = load i32, ptr %8, align 4, !tbaa !9
  %40262 = icmp ule i32 6, %40261
  br i1 %40262, label %40263, label %40501

40263:                                            ; preds = %40260
  %40264 = load double, ptr %1173, align 8, !tbaa !11
  %40265 = load double, ptr %1174, align 8, !tbaa !11
  %40266 = fcmp olt double %40264, %40265
  br i1 %40266, label %40267, label %40501

40267:                                            ; preds = %40263
  %40268 = load i32, ptr %8, align 4, !tbaa !9
  %40269 = icmp ule i32 15, %40268
  br i1 %40269, label %40270, label %40324

40270:                                            ; preds = %40267
  call void @llvm.lifetime.start.p0(i64 8, ptr %1175) #3
  %40271 = load double, ptr %1173, align 8, !tbaa !11
  %40272 = fcmp olt double 0.000000e+00, %40271
  br i1 %40272, label %40273, label %40275

40273:                                            ; preds = %40270
  %40274 = load double, ptr %1173, align 8, !tbaa !11
  br label %40276

40275:                                            ; preds = %40270
  br label %40276

40276:                                            ; preds = %40275, %40273
  %40277 = phi double [ %40274, %40273 ], [ 0.000000e+00, %40275 ]
  store double %40277, ptr %1175, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1176) #3
  %40278 = load double, ptr %1174, align 8, !tbaa !11
  %40279 = fcmp olt double 0.000000e+00, %40278
  br i1 %40279, label %40280, label %40282

40280:                                            ; preds = %40276
  %40281 = load double, ptr %1174, align 8, !tbaa !11
  br label %40283

40282:                                            ; preds = %40276
  br label %40283

40283:                                            ; preds = %40282, %40280
  %40284 = phi double [ %40281, %40280 ], [ 0.000000e+00, %40282 ]
  store double %40284, ptr %1176, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1177) #3
  %40285 = load double, ptr %1175, align 8, !tbaa !11
  %40286 = load double, ptr %1176, align 8, !tbaa !11
  %40287 = fcmp olt double %40285, %40286
  br i1 %40287, label %40288, label %40296

40288:                                            ; preds = %40283
  %40289 = load double, ptr %1174, align 8, !tbaa !11
  %40290 = load double, ptr %1173, align 8, !tbaa !11
  %40291 = fsub double %40289, %40290
  %40292 = load double, ptr %1176, align 8, !tbaa !11
  %40293 = load double, ptr %1175, align 8, !tbaa !11
  %40294 = fsub double %40292, %40293
  %40295 = fdiv double %40291, %40294
  br label %40297

40296:                                            ; preds = %40283
  br label %40297

40297:                                            ; preds = %40296, %40288
  %40298 = phi double [ %40295, %40288 ], [ 1.000000e+00, %40296 ]
  store double %40298, ptr %1177, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1178) #3
  %40299 = load double, ptr %1177, align 8, !tbaa !11
  %40300 = load i8, ptr %1172, align 1, !tbaa !17
  %40301 = zext i8 %40300 to i32
  %40302 = icmp slt i32 0, %40301
  br i1 %40302, label %40303, label %40306

40303:                                            ; preds = %40297
  %40304 = load i8, ptr %1172, align 1, !tbaa !17
  %40305 = zext i8 %40304 to i32
  br label %40307

40306:                                            ; preds = %40297
  br label %40307

40307:                                            ; preds = %40306, %40303
  %40308 = phi i32 [ %40305, %40303 ], [ 0, %40306 ]
  %40309 = sitofp i32 %40308 to double
  %40310 = fmul double %40299, %40309
  store double %40310, ptr %1178, align 8, !tbaa !11
  %40311 = load double, ptr %1178, align 8, !tbaa !11
  %40312 = fcmp ole double 0.000000e+00, %40311
  br i1 %40312, label %40313, label %40316

40313:                                            ; preds = %40307
  %40314 = load double, ptr %1178, align 8, !tbaa !11
  %40315 = fadd double %40314, 5.000000e-01
  br label %40319

40316:                                            ; preds = %40307
  %40317 = load double, ptr %1178, align 8, !tbaa !11
  %40318 = fsub double %40317, 5.000000e-01
  br label %40319

40319:                                            ; preds = %40316, %40313
  %40320 = phi double [ %40315, %40313 ], [ %40318, %40316 ]
  %40321 = fptoui double %40320 to i8
  store i8 %40321, ptr %1172, align 1, !tbaa !17
  %40322 = load double, ptr %1175, align 8, !tbaa !11
  store double %40322, ptr %1173, align 8, !tbaa !11
  %40323 = load double, ptr %1176, align 8, !tbaa !11
  store double %40323, ptr %1174, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1178) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1177) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1176) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1175) #3
  br label %40380

40324:                                            ; preds = %40267
  %40325 = load i32, ptr %8, align 4, !tbaa !9
  %40326 = icmp ugt i32 6, %40325
  br i1 %40326, label %40355, label %40327

40327:                                            ; preds = %40324
  %40328 = load i32, ptr %8, align 4, !tbaa !9
  %40329 = icmp ugt i32 15, %40328
  br i1 %40329, label %40330, label %40341

40330:                                            ; preds = %40327
  %40331 = load i32, ptr %9, align 4, !tbaa !9
  %40332 = icmp ugt i32 15, %40331
  br i1 %40332, label %40333, label %40338

40333:                                            ; preds = %40330
  %40334 = load i32, ptr %9, align 4, !tbaa !9
  %40335 = load i32, ptr %8, align 4, !tbaa !9
  %40336 = icmp ugt i32 %40334, %40335
  %40337 = zext i1 %40336 to i32
  br label %40339

40338:                                            ; preds = %40330
  br label %40339

40339:                                            ; preds = %40338, %40333
  %40340 = phi i32 [ %40337, %40333 ], [ 0, %40338 ]
  br label %40352

40341:                                            ; preds = %40327
  %40342 = load i32, ptr %9, align 4, !tbaa !9
  %40343 = icmp ugt i32 15, %40342
  br i1 %40343, label %40344, label %40345

40344:                                            ; preds = %40341
  br label %40350

40345:                                            ; preds = %40341
  %40346 = load i32, ptr %9, align 4, !tbaa !9
  %40347 = load i32, ptr %8, align 4, !tbaa !9
  %40348 = icmp ugt i32 %40346, %40347
  %40349 = zext i1 %40348 to i32
  br label %40350

40350:                                            ; preds = %40345, %40344
  %40351 = phi i32 [ 0, %40344 ], [ %40349, %40345 ]
  br label %40352

40352:                                            ; preds = %40350, %40339
  %40353 = phi i32 [ %40340, %40339 ], [ %40351, %40350 ]
  %40354 = icmp ne i32 %40353, 0
  br label %40355

40355:                                            ; preds = %40352, %40324
  %40356 = phi i1 [ true, %40324 ], [ %40354, %40352 ]
  %40357 = zext i1 %40356 to i32
  %40358 = icmp eq i32 0, %40357
  br i1 %40358, label %40359, label %40379

40359:                                            ; preds = %40355
  %40360 = load double, ptr %1173, align 8, !tbaa !11
  %40361 = fcmp ogt double 0.000000e+00, %40360
  br i1 %40361, label %40362, label %40379

40362:                                            ; preds = %40359
  %40363 = load double, ptr %1174, align 8, !tbaa !11
  %40364 = fcmp olt double 0.000000e+00, %40363
  br i1 %40364, label %40365, label %40379

40365:                                            ; preds = %40362
  %40366 = load double, ptr %1173, align 8, !tbaa !11
  %40367 = fneg double %40366
  %40368 = load double, ptr %1174, align 8, !tbaa !11
  %40369 = fcmp olt double %40367, %40368
  br i1 %40369, label %40370, label %40372

40370:                                            ; preds = %40365
  %40371 = load double, ptr %1174, align 8, !tbaa !11
  br label %40375

40372:                                            ; preds = %40365
  %40373 = load double, ptr %1173, align 8, !tbaa !11
  %40374 = fneg double %40373
  br label %40375

40375:                                            ; preds = %40372, %40370
  %40376 = phi double [ %40371, %40370 ], [ %40374, %40372 ]
  store double %40376, ptr %1174, align 8, !tbaa !11
  %40377 = load double, ptr %1174, align 8, !tbaa !11
  %40378 = fneg double %40377
  store double %40378, ptr %1173, align 8, !tbaa !11
  br label %40379

40379:                                            ; preds = %40375, %40362, %40359, %40355
  br label %40380

40380:                                            ; preds = %40379, %40319
  call void @llvm.lifetime.start.p0(i64 8, ptr %1179) #3
  %40381 = load double, ptr %1173, align 8, !tbaa !11
  %40382 = fcmp ole double 0.000000e+00, %40381
  %40383 = zext i1 %40382 to i64
  %40384 = select i1 %40382, double 0.000000e+00, double 0.000000e+00
  store double %40384, ptr %1179, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1180) #3
  %40385 = load double, ptr %1174, align 8, !tbaa !11
  %40386 = fcmp ole double 0.000000e+00, %40385
  %40387 = zext i1 %40386 to i64
  %40388 = select i1 %40386, double 0x41EFFFFFFFE00000, double 0.000000e+00
  store double %40388, ptr %1180, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1181) #3
  %40389 = load i8, ptr %1172, align 1, !tbaa !17
  %40390 = uitofp i8 %40389 to double
  %40391 = load double, ptr %1173, align 8, !tbaa !11
  %40392 = fsub double %40390, %40391
  %40393 = load double, ptr %1180, align 8, !tbaa !11
  %40394 = load double, ptr %1179, align 8, !tbaa !11
  %40395 = fsub double %40393, %40394
  %40396 = fmul double %40392, %40395
  %40397 = load double, ptr %1174, align 8, !tbaa !11
  %40398 = load double, ptr %1173, align 8, !tbaa !11
  %40399 = fsub double %40397, %40398
  %40400 = fdiv double %40396, %40399
  %40401 = load double, ptr %1179, align 8, !tbaa !11
  %40402 = fadd double %40400, %40401
  store double %40402, ptr %1181, align 8, !tbaa !11
  %40403 = load double, ptr %1179, align 8, !tbaa !11
  %40404 = load double, ptr %1181, align 8, !tbaa !11
  %40405 = fcmp ole double 0.000000e+00, %40404
  br i1 %40405, label %40406, label %40409

40406:                                            ; preds = %40380
  %40407 = load double, ptr %1181, align 8, !tbaa !11
  %40408 = fadd double %40407, 5.000000e-01
  br label %40412

40409:                                            ; preds = %40380
  %40410 = load double, ptr %1181, align 8, !tbaa !11
  %40411 = fsub double %40410, 5.000000e-01
  br label %40412

40412:                                            ; preds = %40409, %40406
  %40413 = phi double [ %40408, %40406 ], [ %40411, %40409 ]
  %40414 = fcmp olt double %40403, %40413
  br i1 %40414, label %40415, label %40469

40415:                                            ; preds = %40412
  %40416 = load double, ptr %1181, align 8, !tbaa !11
  %40417 = fcmp ole double 0.000000e+00, %40416
  br i1 %40417, label %40418, label %40421

40418:                                            ; preds = %40415
  %40419 = load double, ptr %1181, align 8, !tbaa !11
  %40420 = fadd double %40419, 5.000000e-01
  br label %40424

40421:                                            ; preds = %40415
  %40422 = load double, ptr %1181, align 8, !tbaa !11
  %40423 = fsub double %40422, 5.000000e-01
  br label %40424

40424:                                            ; preds = %40421, %40418
  %40425 = phi double [ %40420, %40418 ], [ %40423, %40421 ]
  %40426 = load double, ptr %1180, align 8, !tbaa !11
  %40427 = fcmp ole double %40425, %40426
  br i1 %40427, label %40428, label %40439

40428:                                            ; preds = %40424
  %40429 = load double, ptr %1181, align 8, !tbaa !11
  %40430 = fcmp ole double 0.000000e+00, %40429
  br i1 %40430, label %40431, label %40434

40431:                                            ; preds = %40428
  %40432 = load double, ptr %1181, align 8, !tbaa !11
  %40433 = fadd double %40432, 5.000000e-01
  br label %40437

40434:                                            ; preds = %40428
  %40435 = load double, ptr %1181, align 8, !tbaa !11
  %40436 = fsub double %40435, 5.000000e-01
  br label %40437

40437:                                            ; preds = %40434, %40431
  %40438 = phi double [ %40433, %40431 ], [ %40436, %40434 ]
  br label %40467

40439:                                            ; preds = %40424
  %40440 = load double, ptr %1181, align 8, !tbaa !11
  %40441 = fcmp ole double 0.000000e+00, %40440
  br i1 %40441, label %40442, label %40445

40442:                                            ; preds = %40439
  %40443 = load double, ptr %1181, align 8, !tbaa !11
  %40444 = fadd double %40443, 5.000000e-01
  br label %40448

40445:                                            ; preds = %40439
  %40446 = load double, ptr %1181, align 8, !tbaa !11
  %40447 = fsub double %40446, 5.000000e-01
  br label %40448

40448:                                            ; preds = %40445, %40442
  %40449 = phi double [ %40444, %40442 ], [ %40447, %40445 ]
  %40450 = load double, ptr %1180, align 8, !tbaa !11
  %40451 = fcmp olt double %40449, %40450
  br i1 %40451, label %40452, label %40463

40452:                                            ; preds = %40448
  %40453 = load double, ptr %1181, align 8, !tbaa !11
  %40454 = fcmp ole double 0.000000e+00, %40453
  br i1 %40454, label %40455, label %40458

40455:                                            ; preds = %40452
  %40456 = load double, ptr %1181, align 8, !tbaa !11
  %40457 = fadd double %40456, 5.000000e-01
  br label %40461

40458:                                            ; preds = %40452
  %40459 = load double, ptr %1181, align 8, !tbaa !11
  %40460 = fsub double %40459, 5.000000e-01
  br label %40461

40461:                                            ; preds = %40458, %40455
  %40462 = phi double [ %40457, %40455 ], [ %40460, %40458 ]
  br label %40465

40463:                                            ; preds = %40448
  %40464 = load double, ptr %1180, align 8, !tbaa !11
  br label %40465

40465:                                            ; preds = %40463, %40461
  %40466 = phi double [ %40462, %40461 ], [ %40464, %40463 ]
  br label %40467

40467:                                            ; preds = %40465, %40437
  %40468 = phi double [ %40438, %40437 ], [ %40466, %40465 ]
  br label %40497

40469:                                            ; preds = %40412
  %40470 = load double, ptr %1179, align 8, !tbaa !11
  %40471 = load double, ptr %1181, align 8, !tbaa !11
  %40472 = fcmp ole double 0.000000e+00, %40471
  br i1 %40472, label %40473, label %40476

40473:                                            ; preds = %40469
  %40474 = load double, ptr %1181, align 8, !tbaa !11
  %40475 = fadd double %40474, 5.000000e-01
  br label %40479

40476:                                            ; preds = %40469
  %40477 = load double, ptr %1181, align 8, !tbaa !11
  %40478 = fsub double %40477, 5.000000e-01
  br label %40479

40479:                                            ; preds = %40476, %40473
  %40480 = phi double [ %40475, %40473 ], [ %40478, %40476 ]
  %40481 = fcmp olt double %40470, %40480
  br i1 %40481, label %40482, label %40493

40482:                                            ; preds = %40479
  %40483 = load double, ptr %1181, align 8, !tbaa !11
  %40484 = fcmp ole double 0.000000e+00, %40483
  br i1 %40484, label %40485, label %40488

40485:                                            ; preds = %40482
  %40486 = load double, ptr %1181, align 8, !tbaa !11
  %40487 = fadd double %40486, 5.000000e-01
  br label %40491

40488:                                            ; preds = %40482
  %40489 = load double, ptr %1181, align 8, !tbaa !11
  %40490 = fsub double %40489, 5.000000e-01
  br label %40491

40491:                                            ; preds = %40488, %40485
  %40492 = phi double [ %40487, %40485 ], [ %40490, %40488 ]
  br label %40495

40493:                                            ; preds = %40479
  %40494 = load double, ptr %1179, align 8, !tbaa !11
  br label %40495

40495:                                            ; preds = %40493, %40491
  %40496 = phi double [ %40492, %40491 ], [ %40494, %40493 ]
  br label %40497

40497:                                            ; preds = %40495, %40467
  %40498 = phi double [ %40468, %40467 ], [ %40496, %40495 ]
  %40499 = fptoui double %40498 to i32
  %40500 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %40499, ptr %40500, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1181) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1180) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1179) #3
  br label %40585

40501:                                            ; preds = %40263, %40260
  %40502 = load i32, ptr %8, align 4, !tbaa !9
  %40503 = icmp ugt i32 6, %40502
  br i1 %40503, label %40532, label %40504

40504:                                            ; preds = %40501
  %40505 = load i32, ptr %8, align 4, !tbaa !9
  %40506 = icmp ugt i32 15, %40505
  br i1 %40506, label %40507, label %40518

40507:                                            ; preds = %40504
  %40508 = load i32, ptr %9, align 4, !tbaa !9
  %40509 = icmp ugt i32 15, %40508
  br i1 %40509, label %40510, label %40515

40510:                                            ; preds = %40507
  %40511 = load i32, ptr %9, align 4, !tbaa !9
  %40512 = load i32, ptr %8, align 4, !tbaa !9
  %40513 = icmp ugt i32 %40511, %40512
  %40514 = zext i1 %40513 to i32
  br label %40516

40515:                                            ; preds = %40507
  br label %40516

40516:                                            ; preds = %40515, %40510
  %40517 = phi i32 [ %40514, %40510 ], [ 0, %40515 ]
  br label %40529

40518:                                            ; preds = %40504
  %40519 = load i32, ptr %9, align 4, !tbaa !9
  %40520 = icmp ugt i32 15, %40519
  br i1 %40520, label %40521, label %40522

40521:                                            ; preds = %40518
  br label %40527

40522:                                            ; preds = %40518
  %40523 = load i32, ptr %9, align 4, !tbaa !9
  %40524 = load i32, ptr %8, align 4, !tbaa !9
  %40525 = icmp ugt i32 %40523, %40524
  %40526 = zext i1 %40525 to i32
  br label %40527

40527:                                            ; preds = %40522, %40521
  %40528 = phi i32 [ 0, %40521 ], [ %40526, %40522 ]
  br label %40529

40529:                                            ; preds = %40527, %40516
  %40530 = phi i32 [ %40517, %40516 ], [ %40528, %40527 ]
  %40531 = icmp ne i32 %40530, 0
  br label %40532

40532:                                            ; preds = %40529, %40501
  %40533 = phi i1 [ true, %40501 ], [ %40531, %40529 ]
  %40534 = zext i1 %40533 to i32
  %40535 = icmp eq i32 0, %40534
  br i1 %40535, label %40536, label %40580

40536:                                            ; preds = %40532
  %40537 = load i8, ptr %1172, align 1, !tbaa !17
  %40538 = zext i8 %40537 to i32
  %40539 = sitofp i32 %40538 to double
  %40540 = fcmp olt double 0.000000e+00, %40539
  br i1 %40540, label %40541, label %40564

40541:                                            ; preds = %40536
  %40542 = load i8, ptr %1172, align 1, !tbaa !17
  %40543 = zext i8 %40542 to i32
  %40544 = sitofp i32 %40543 to double
  %40545 = fcmp ole double %40544, 0x41EFFFFFFFE00000
  br i1 %40545, label %40546, label %40550

40546:                                            ; preds = %40541
  %40547 = load i8, ptr %1172, align 1, !tbaa !17
  %40548 = zext i8 %40547 to i32
  %40549 = sitofp i32 %40548 to double
  br label %40562

40550:                                            ; preds = %40541
  %40551 = load i8, ptr %1172, align 1, !tbaa !17
  %40552 = zext i8 %40551 to i32
  %40553 = sitofp i32 %40552 to double
  %40554 = fcmp olt double %40553, 0x41EFFFFFFFE00000
  br i1 %40554, label %40555, label %40559

40555:                                            ; preds = %40550
  %40556 = load i8, ptr %1172, align 1, !tbaa !17
  %40557 = zext i8 %40556 to i32
  %40558 = sitofp i32 %40557 to double
  br label %40560

40559:                                            ; preds = %40550
  br label %40560

40560:                                            ; preds = %40559, %40555
  %40561 = phi double [ %40558, %40555 ], [ 0x41EFFFFFFFE00000, %40559 ]
  br label %40562

40562:                                            ; preds = %40560, %40546
  %40563 = phi double [ %40549, %40546 ], [ %40561, %40560 ]
  br label %40576

40564:                                            ; preds = %40536
  %40565 = load i8, ptr %1172, align 1, !tbaa !17
  %40566 = zext i8 %40565 to i32
  %40567 = sitofp i32 %40566 to double
  %40568 = fcmp olt double 0.000000e+00, %40567
  br i1 %40568, label %40569, label %40573

40569:                                            ; preds = %40564
  %40570 = load i8, ptr %1172, align 1, !tbaa !17
  %40571 = zext i8 %40570 to i32
  %40572 = sitofp i32 %40571 to double
  br label %40574

40573:                                            ; preds = %40564
  br label %40574

40574:                                            ; preds = %40573, %40569
  %40575 = phi double [ %40572, %40569 ], [ 0.000000e+00, %40573 ]
  br label %40576

40576:                                            ; preds = %40574, %40562
  %40577 = phi double [ %40563, %40562 ], [ %40575, %40574 ]
  %40578 = fptoui double %40577 to i32
  %40579 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %40578, ptr %40579, align 4, !tbaa !9
  br label %40584

40580:                                            ; preds = %40532
  %40581 = load i8, ptr %1172, align 1, !tbaa !17
  %40582 = zext i8 %40581 to i32
  %40583 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %40582, ptr %40583, align 4, !tbaa !9
  br label %40584

40584:                                            ; preds = %40580, %40576
  br label %40585

40585:                                            ; preds = %40584, %40497
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1174) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1173) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %1172) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1171) #3
  br label %40586

40586:                                            ; preds = %40585
  br label %40587

40587:                                            ; preds = %40586
  br label %41383

40588:                                            ; preds = %37760
  br label %40589

40589:                                            ; preds = %40588
  call void @llvm.lifetime.start.p0(i64 8, ptr %1182) #3
  store double 5.000000e-01, ptr %1182, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1183) #3
  %40590 = load ptr, ptr %10, align 8, !tbaa !5
  %40591 = load double, ptr %40590, align 8, !tbaa !11
  store double %40591, ptr %1183, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1184) #3
  store double 0.000000e+00, ptr %1184, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1185) #3
  store double 0.000000e+00, ptr %1185, align 8, !tbaa !11
  %40592 = load ptr, ptr %11, align 8, !tbaa !5
  %40593 = icmp ne ptr null, %40592
  br i1 %40593, label %40594, label %40618

40594:                                            ; preds = %40589
  %40595 = load double, ptr %1183, align 8, !tbaa !11
  %40596 = load double, ptr %1183, align 8, !tbaa !11
  %40597 = fcmp oeq double %40595, %40596
  br i1 %40597, label %40598, label %40618

40598:                                            ; preds = %40594
  %40599 = load ptr, ptr %12, align 8, !tbaa !5
  %40600 = icmp ne ptr null, %40599
  br i1 %40600, label %40601, label %40612

40601:                                            ; preds = %40598
  %40602 = load ptr, ptr %11, align 8, !tbaa !5
  %40603 = load double, ptr %40602, align 8, !tbaa !11
  %40604 = load double, ptr %1183, align 8, !tbaa !11
  %40605 = fcmp ole double %40603, %40604
  br i1 %40605, label %40606, label %40612

40606:                                            ; preds = %40601
  %40607 = load double, ptr %1183, align 8, !tbaa !11
  %40608 = load ptr, ptr %12, align 8, !tbaa !5
  %40609 = load double, ptr %40608, align 8, !tbaa !11
  %40610 = fcmp ole double %40607, %40609
  br i1 %40610, label %40611, label %40612

40611:                                            ; preds = %40606
  br label %40613

40612:                                            ; preds = %40606, %40601, %40598
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.24, i32 noundef 497, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

40613:                                            ; preds = %40611
  %40614 = load ptr, ptr %11, align 8, !tbaa !5
  %40615 = load double, ptr %40614, align 8, !tbaa !11
  store double %40615, ptr %1184, align 8, !tbaa !11
  %40616 = load ptr, ptr %12, align 8, !tbaa !5
  %40617 = load double, ptr %40616, align 8, !tbaa !11
  store double %40617, ptr %1185, align 8, !tbaa !11
  br label %40618

40618:                                            ; preds = %40613, %40594, %40589
  %40619 = load i32, ptr %8, align 4, !tbaa !9
  %40620 = icmp ule i32 6, %40619
  br i1 %40620, label %40621, label %40844

40621:                                            ; preds = %40618
  %40622 = load double, ptr %1184, align 8, !tbaa !11
  %40623 = load double, ptr %1185, align 8, !tbaa !11
  %40624 = fcmp olt double %40622, %40623
  br i1 %40624, label %40625, label %40844

40625:                                            ; preds = %40621
  %40626 = load i32, ptr %8, align 4, !tbaa !9
  %40627 = icmp ule i32 15, %40626
  br i1 %40627, label %40628, label %40668

40628:                                            ; preds = %40625
  call void @llvm.lifetime.start.p0(i64 8, ptr %1186) #3
  %40629 = load double, ptr %1184, align 8, !tbaa !11
  %40630 = fcmp olt double 0.000000e+00, %40629
  br i1 %40630, label %40631, label %40633

40631:                                            ; preds = %40628
  %40632 = load double, ptr %1184, align 8, !tbaa !11
  br label %40634

40633:                                            ; preds = %40628
  br label %40634

40634:                                            ; preds = %40633, %40631
  %40635 = phi double [ %40632, %40631 ], [ 0.000000e+00, %40633 ]
  store double %40635, ptr %1186, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1187) #3
  %40636 = load double, ptr %1185, align 8, !tbaa !11
  %40637 = fcmp olt double 0.000000e+00, %40636
  br i1 %40637, label %40638, label %40640

40638:                                            ; preds = %40634
  %40639 = load double, ptr %1185, align 8, !tbaa !11
  br label %40641

40640:                                            ; preds = %40634
  br label %40641

40641:                                            ; preds = %40640, %40638
  %40642 = phi double [ %40639, %40638 ], [ 0.000000e+00, %40640 ]
  store double %40642, ptr %1187, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1188) #3
  %40643 = load double, ptr %1186, align 8, !tbaa !11
  %40644 = load double, ptr %1187, align 8, !tbaa !11
  %40645 = fcmp olt double %40643, %40644
  br i1 %40645, label %40646, label %40654

40646:                                            ; preds = %40641
  %40647 = load double, ptr %1185, align 8, !tbaa !11
  %40648 = load double, ptr %1184, align 8, !tbaa !11
  %40649 = fsub double %40647, %40648
  %40650 = load double, ptr %1187, align 8, !tbaa !11
  %40651 = load double, ptr %1186, align 8, !tbaa !11
  %40652 = fsub double %40650, %40651
  %40653 = fdiv double %40649, %40652
  br label %40655

40654:                                            ; preds = %40641
  br label %40655

40655:                                            ; preds = %40654, %40646
  %40656 = phi double [ %40653, %40646 ], [ 1.000000e+00, %40654 ]
  store double %40656, ptr %1188, align 8, !tbaa !11
  %40657 = load double, ptr %1188, align 8, !tbaa !11
  %40658 = load double, ptr %1183, align 8, !tbaa !11
  %40659 = fcmp olt double 0.000000e+00, %40658
  br i1 %40659, label %40660, label %40662

40660:                                            ; preds = %40655
  %40661 = load double, ptr %1183, align 8, !tbaa !11
  br label %40663

40662:                                            ; preds = %40655
  br label %40663

40663:                                            ; preds = %40662, %40660
  %40664 = phi double [ %40661, %40660 ], [ 0.000000e+00, %40662 ]
  %40665 = fmul double %40657, %40664
  store double %40665, ptr %1183, align 8, !tbaa !11
  %40666 = load double, ptr %1186, align 8, !tbaa !11
  store double %40666, ptr %1184, align 8, !tbaa !11
  %40667 = load double, ptr %1187, align 8, !tbaa !11
  store double %40667, ptr %1185, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1188) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1187) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1186) #3
  br label %40724

40668:                                            ; preds = %40625
  %40669 = load i32, ptr %8, align 4, !tbaa !9
  %40670 = icmp ugt i32 6, %40669
  br i1 %40670, label %40699, label %40671

40671:                                            ; preds = %40668
  %40672 = load i32, ptr %8, align 4, !tbaa !9
  %40673 = icmp ugt i32 15, %40672
  br i1 %40673, label %40674, label %40685

40674:                                            ; preds = %40671
  %40675 = load i32, ptr %9, align 4, !tbaa !9
  %40676 = icmp ugt i32 15, %40675
  br i1 %40676, label %40677, label %40682

40677:                                            ; preds = %40674
  %40678 = load i32, ptr %9, align 4, !tbaa !9
  %40679 = load i32, ptr %8, align 4, !tbaa !9
  %40680 = icmp ugt i32 %40678, %40679
  %40681 = zext i1 %40680 to i32
  br label %40683

40682:                                            ; preds = %40674
  br label %40683

40683:                                            ; preds = %40682, %40677
  %40684 = phi i32 [ %40681, %40677 ], [ 0, %40682 ]
  br label %40696

40685:                                            ; preds = %40671
  %40686 = load i32, ptr %9, align 4, !tbaa !9
  %40687 = icmp ugt i32 15, %40686
  br i1 %40687, label %40688, label %40689

40688:                                            ; preds = %40685
  br label %40694

40689:                                            ; preds = %40685
  %40690 = load i32, ptr %9, align 4, !tbaa !9
  %40691 = load i32, ptr %8, align 4, !tbaa !9
  %40692 = icmp ugt i32 %40690, %40691
  %40693 = zext i1 %40692 to i32
  br label %40694

40694:                                            ; preds = %40689, %40688
  %40695 = phi i32 [ 0, %40688 ], [ %40693, %40689 ]
  br label %40696

40696:                                            ; preds = %40694, %40683
  %40697 = phi i32 [ %40684, %40683 ], [ %40695, %40694 ]
  %40698 = icmp ne i32 %40697, 0
  br label %40699

40699:                                            ; preds = %40696, %40668
  %40700 = phi i1 [ true, %40668 ], [ %40698, %40696 ]
  %40701 = zext i1 %40700 to i32
  %40702 = icmp eq i32 0, %40701
  br i1 %40702, label %40703, label %40723

40703:                                            ; preds = %40699
  %40704 = load double, ptr %1184, align 8, !tbaa !11
  %40705 = fcmp ogt double 0.000000e+00, %40704
  br i1 %40705, label %40706, label %40723

40706:                                            ; preds = %40703
  %40707 = load double, ptr %1185, align 8, !tbaa !11
  %40708 = fcmp olt double 0.000000e+00, %40707
  br i1 %40708, label %40709, label %40723

40709:                                            ; preds = %40706
  %40710 = load double, ptr %1184, align 8, !tbaa !11
  %40711 = fneg double %40710
  %40712 = load double, ptr %1185, align 8, !tbaa !11
  %40713 = fcmp olt double %40711, %40712
  br i1 %40713, label %40714, label %40716

40714:                                            ; preds = %40709
  %40715 = load double, ptr %1185, align 8, !tbaa !11
  br label %40719

40716:                                            ; preds = %40709
  %40717 = load double, ptr %1184, align 8, !tbaa !11
  %40718 = fneg double %40717
  br label %40719

40719:                                            ; preds = %40716, %40714
  %40720 = phi double [ %40715, %40714 ], [ %40718, %40716 ]
  store double %40720, ptr %1185, align 8, !tbaa !11
  %40721 = load double, ptr %1185, align 8, !tbaa !11
  %40722 = fneg double %40721
  store double %40722, ptr %1184, align 8, !tbaa !11
  br label %40723

40723:                                            ; preds = %40719, %40706, %40703, %40699
  br label %40724

40724:                                            ; preds = %40723, %40663
  call void @llvm.lifetime.start.p0(i64 8, ptr %1189) #3
  %40725 = load double, ptr %1184, align 8, !tbaa !11
  %40726 = fcmp ole double 0.000000e+00, %40725
  %40727 = zext i1 %40726 to i64
  %40728 = select i1 %40726, double 0.000000e+00, double 0.000000e+00
  store double %40728, ptr %1189, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1190) #3
  %40729 = load double, ptr %1185, align 8, !tbaa !11
  %40730 = fcmp ole double 0.000000e+00, %40729
  %40731 = zext i1 %40730 to i64
  %40732 = select i1 %40730, double 0x41EFFFFFFFE00000, double 0.000000e+00
  store double %40732, ptr %1190, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1191) #3
  %40733 = load double, ptr %1183, align 8, !tbaa !11
  %40734 = load double, ptr %1184, align 8, !tbaa !11
  %40735 = fsub double %40733, %40734
  %40736 = load double, ptr %1190, align 8, !tbaa !11
  %40737 = load double, ptr %1189, align 8, !tbaa !11
  %40738 = fsub double %40736, %40737
  %40739 = fmul double %40735, %40738
  %40740 = load double, ptr %1185, align 8, !tbaa !11
  %40741 = load double, ptr %1184, align 8, !tbaa !11
  %40742 = fsub double %40740, %40741
  %40743 = fdiv double %40739, %40742
  %40744 = load double, ptr %1189, align 8, !tbaa !11
  %40745 = fadd double %40743, %40744
  store double %40745, ptr %1191, align 8, !tbaa !11
  %40746 = load double, ptr %1189, align 8, !tbaa !11
  %40747 = load double, ptr %1191, align 8, !tbaa !11
  %40748 = fcmp ole double 0.000000e+00, %40747
  br i1 %40748, label %40749, label %40752

40749:                                            ; preds = %40724
  %40750 = load double, ptr %1191, align 8, !tbaa !11
  %40751 = fadd double %40750, 5.000000e-01
  br label %40755

40752:                                            ; preds = %40724
  %40753 = load double, ptr %1191, align 8, !tbaa !11
  %40754 = fsub double %40753, 5.000000e-01
  br label %40755

40755:                                            ; preds = %40752, %40749
  %40756 = phi double [ %40751, %40749 ], [ %40754, %40752 ]
  %40757 = fcmp olt double %40746, %40756
  br i1 %40757, label %40758, label %40812

40758:                                            ; preds = %40755
  %40759 = load double, ptr %1191, align 8, !tbaa !11
  %40760 = fcmp ole double 0.000000e+00, %40759
  br i1 %40760, label %40761, label %40764

40761:                                            ; preds = %40758
  %40762 = load double, ptr %1191, align 8, !tbaa !11
  %40763 = fadd double %40762, 5.000000e-01
  br label %40767

40764:                                            ; preds = %40758
  %40765 = load double, ptr %1191, align 8, !tbaa !11
  %40766 = fsub double %40765, 5.000000e-01
  br label %40767

40767:                                            ; preds = %40764, %40761
  %40768 = phi double [ %40763, %40761 ], [ %40766, %40764 ]
  %40769 = load double, ptr %1190, align 8, !tbaa !11
  %40770 = fcmp ole double %40768, %40769
  br i1 %40770, label %40771, label %40782

40771:                                            ; preds = %40767
  %40772 = load double, ptr %1191, align 8, !tbaa !11
  %40773 = fcmp ole double 0.000000e+00, %40772
  br i1 %40773, label %40774, label %40777

40774:                                            ; preds = %40771
  %40775 = load double, ptr %1191, align 8, !tbaa !11
  %40776 = fadd double %40775, 5.000000e-01
  br label %40780

40777:                                            ; preds = %40771
  %40778 = load double, ptr %1191, align 8, !tbaa !11
  %40779 = fsub double %40778, 5.000000e-01
  br label %40780

40780:                                            ; preds = %40777, %40774
  %40781 = phi double [ %40776, %40774 ], [ %40779, %40777 ]
  br label %40810

40782:                                            ; preds = %40767
  %40783 = load double, ptr %1191, align 8, !tbaa !11
  %40784 = fcmp ole double 0.000000e+00, %40783
  br i1 %40784, label %40785, label %40788

40785:                                            ; preds = %40782
  %40786 = load double, ptr %1191, align 8, !tbaa !11
  %40787 = fadd double %40786, 5.000000e-01
  br label %40791

40788:                                            ; preds = %40782
  %40789 = load double, ptr %1191, align 8, !tbaa !11
  %40790 = fsub double %40789, 5.000000e-01
  br label %40791

40791:                                            ; preds = %40788, %40785
  %40792 = phi double [ %40787, %40785 ], [ %40790, %40788 ]
  %40793 = load double, ptr %1190, align 8, !tbaa !11
  %40794 = fcmp olt double %40792, %40793
  br i1 %40794, label %40795, label %40806

40795:                                            ; preds = %40791
  %40796 = load double, ptr %1191, align 8, !tbaa !11
  %40797 = fcmp ole double 0.000000e+00, %40796
  br i1 %40797, label %40798, label %40801

40798:                                            ; preds = %40795
  %40799 = load double, ptr %1191, align 8, !tbaa !11
  %40800 = fadd double %40799, 5.000000e-01
  br label %40804

40801:                                            ; preds = %40795
  %40802 = load double, ptr %1191, align 8, !tbaa !11
  %40803 = fsub double %40802, 5.000000e-01
  br label %40804

40804:                                            ; preds = %40801, %40798
  %40805 = phi double [ %40800, %40798 ], [ %40803, %40801 ]
  br label %40808

40806:                                            ; preds = %40791
  %40807 = load double, ptr %1190, align 8, !tbaa !11
  br label %40808

40808:                                            ; preds = %40806, %40804
  %40809 = phi double [ %40805, %40804 ], [ %40807, %40806 ]
  br label %40810

40810:                                            ; preds = %40808, %40780
  %40811 = phi double [ %40781, %40780 ], [ %40809, %40808 ]
  br label %40840

40812:                                            ; preds = %40755
  %40813 = load double, ptr %1189, align 8, !tbaa !11
  %40814 = load double, ptr %1191, align 8, !tbaa !11
  %40815 = fcmp ole double 0.000000e+00, %40814
  br i1 %40815, label %40816, label %40819

40816:                                            ; preds = %40812
  %40817 = load double, ptr %1191, align 8, !tbaa !11
  %40818 = fadd double %40817, 5.000000e-01
  br label %40822

40819:                                            ; preds = %40812
  %40820 = load double, ptr %1191, align 8, !tbaa !11
  %40821 = fsub double %40820, 5.000000e-01
  br label %40822

40822:                                            ; preds = %40819, %40816
  %40823 = phi double [ %40818, %40816 ], [ %40821, %40819 ]
  %40824 = fcmp olt double %40813, %40823
  br i1 %40824, label %40825, label %40836

40825:                                            ; preds = %40822
  %40826 = load double, ptr %1191, align 8, !tbaa !11
  %40827 = fcmp ole double 0.000000e+00, %40826
  br i1 %40827, label %40828, label %40831

40828:                                            ; preds = %40825
  %40829 = load double, ptr %1191, align 8, !tbaa !11
  %40830 = fadd double %40829, 5.000000e-01
  br label %40834

40831:                                            ; preds = %40825
  %40832 = load double, ptr %1191, align 8, !tbaa !11
  %40833 = fsub double %40832, 5.000000e-01
  br label %40834

40834:                                            ; preds = %40831, %40828
  %40835 = phi double [ %40830, %40828 ], [ %40833, %40831 ]
  br label %40838

40836:                                            ; preds = %40822
  %40837 = load double, ptr %1189, align 8, !tbaa !11
  br label %40838

40838:                                            ; preds = %40836, %40834
  %40839 = phi double [ %40835, %40834 ], [ %40837, %40836 ]
  br label %40840

40840:                                            ; preds = %40838, %40810
  %40841 = phi double [ %40811, %40810 ], [ %40839, %40838 ]
  %40842 = fptoui double %40841 to i32
  %40843 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %40842, ptr %40843, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1191) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1190) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1189) #3
  br label %40970

40844:                                            ; preds = %40621, %40618
  %40845 = load i32, ptr %8, align 4, !tbaa !9
  %40846 = icmp ugt i32 6, %40845
  br i1 %40846, label %40875, label %40847

40847:                                            ; preds = %40844
  %40848 = load i32, ptr %8, align 4, !tbaa !9
  %40849 = icmp ugt i32 15, %40848
  br i1 %40849, label %40850, label %40861

40850:                                            ; preds = %40847
  %40851 = load i32, ptr %9, align 4, !tbaa !9
  %40852 = icmp ugt i32 15, %40851
  br i1 %40852, label %40853, label %40858

40853:                                            ; preds = %40850
  %40854 = load i32, ptr %9, align 4, !tbaa !9
  %40855 = load i32, ptr %8, align 4, !tbaa !9
  %40856 = icmp ugt i32 %40854, %40855
  %40857 = zext i1 %40856 to i32
  br label %40859

40858:                                            ; preds = %40850
  br label %40859

40859:                                            ; preds = %40858, %40853
  %40860 = phi i32 [ %40857, %40853 ], [ 0, %40858 ]
  br label %40872

40861:                                            ; preds = %40847
  %40862 = load i32, ptr %9, align 4, !tbaa !9
  %40863 = icmp ugt i32 15, %40862
  br i1 %40863, label %40864, label %40865

40864:                                            ; preds = %40861
  br label %40870

40865:                                            ; preds = %40861
  %40866 = load i32, ptr %9, align 4, !tbaa !9
  %40867 = load i32, ptr %8, align 4, !tbaa !9
  %40868 = icmp ugt i32 %40866, %40867
  %40869 = zext i1 %40868 to i32
  br label %40870

40870:                                            ; preds = %40865, %40864
  %40871 = phi i32 [ 0, %40864 ], [ %40869, %40865 ]
  br label %40872

40872:                                            ; preds = %40870, %40859
  %40873 = phi i32 [ %40860, %40859 ], [ %40871, %40870 ]
  %40874 = icmp ne i32 %40873, 0
  br label %40875

40875:                                            ; preds = %40872, %40844
  %40876 = phi i1 [ true, %40844 ], [ %40874, %40872 ]
  %40877 = zext i1 %40876 to i32
  %40878 = icmp eq i32 0, %40877
  br i1 %40878, label %40879, label %40956

40879:                                            ; preds = %40875
  %40880 = load double, ptr %1183, align 8, !tbaa !11
  %40881 = fcmp ole double 0.000000e+00, %40880
  br i1 %40881, label %40882, label %40917

40882:                                            ; preds = %40879
  %40883 = load double, ptr %1183, align 8, !tbaa !11
  %40884 = fadd double %40883, 5.000000e-01
  %40885 = fcmp olt double 0.000000e+00, %40884
  br i1 %40885, label %40886, label %40905

40886:                                            ; preds = %40882
  %40887 = load double, ptr %1183, align 8, !tbaa !11
  %40888 = fadd double %40887, 5.000000e-01
  %40889 = fcmp ole double %40888, 0x41EFFFFFFFE00000
  br i1 %40889, label %40890, label %40893

40890:                                            ; preds = %40886
  %40891 = load double, ptr %1183, align 8, !tbaa !11
  %40892 = fadd double %40891, 5.000000e-01
  br label %40903

40893:                                            ; preds = %40886
  %40894 = load double, ptr %1183, align 8, !tbaa !11
  %40895 = fadd double %40894, 5.000000e-01
  %40896 = fcmp olt double %40895, 0x41EFFFFFFFE00000
  br i1 %40896, label %40897, label %40900

40897:                                            ; preds = %40893
  %40898 = load double, ptr %1183, align 8, !tbaa !11
  %40899 = fadd double %40898, 5.000000e-01
  br label %40901

40900:                                            ; preds = %40893
  br label %40901

40901:                                            ; preds = %40900, %40897
  %40902 = phi double [ %40899, %40897 ], [ 0x41EFFFFFFFE00000, %40900 ]
  br label %40903

40903:                                            ; preds = %40901, %40890
  %40904 = phi double [ %40892, %40890 ], [ %40902, %40901 ]
  br label %40915

40905:                                            ; preds = %40882
  %40906 = load double, ptr %1183, align 8, !tbaa !11
  %40907 = fadd double %40906, 5.000000e-01
  %40908 = fcmp olt double 0.000000e+00, %40907
  br i1 %40908, label %40909, label %40912

40909:                                            ; preds = %40905
  %40910 = load double, ptr %1183, align 8, !tbaa !11
  %40911 = fadd double %40910, 5.000000e-01
  br label %40913

40912:                                            ; preds = %40905
  br label %40913

40913:                                            ; preds = %40912, %40909
  %40914 = phi double [ %40911, %40909 ], [ 0.000000e+00, %40912 ]
  br label %40915

40915:                                            ; preds = %40913, %40903
  %40916 = phi double [ %40904, %40903 ], [ %40914, %40913 ]
  br label %40952

40917:                                            ; preds = %40879
  %40918 = load double, ptr %1183, align 8, !tbaa !11
  %40919 = fsub double %40918, 5.000000e-01
  %40920 = fcmp olt double 0.000000e+00, %40919
  br i1 %40920, label %40921, label %40940

40921:                                            ; preds = %40917
  %40922 = load double, ptr %1183, align 8, !tbaa !11
  %40923 = fsub double %40922, 5.000000e-01
  %40924 = fcmp ole double %40923, 0x41EFFFFFFFE00000
  br i1 %40924, label %40925, label %40928

40925:                                            ; preds = %40921
  %40926 = load double, ptr %1183, align 8, !tbaa !11
  %40927 = fsub double %40926, 5.000000e-01
  br label %40938

40928:                                            ; preds = %40921
  %40929 = load double, ptr %1183, align 8, !tbaa !11
  %40930 = fsub double %40929, 5.000000e-01
  %40931 = fcmp olt double %40930, 0x41EFFFFFFFE00000
  br i1 %40931, label %40932, label %40935

40932:                                            ; preds = %40928
  %40933 = load double, ptr %1183, align 8, !tbaa !11
  %40934 = fsub double %40933, 5.000000e-01
  br label %40936

40935:                                            ; preds = %40928
  br label %40936

40936:                                            ; preds = %40935, %40932
  %40937 = phi double [ %40934, %40932 ], [ 0x41EFFFFFFFE00000, %40935 ]
  br label %40938

40938:                                            ; preds = %40936, %40925
  %40939 = phi double [ %40927, %40925 ], [ %40937, %40936 ]
  br label %40950

40940:                                            ; preds = %40917
  %40941 = load double, ptr %1183, align 8, !tbaa !11
  %40942 = fsub double %40941, 5.000000e-01
  %40943 = fcmp olt double 0.000000e+00, %40942
  br i1 %40943, label %40944, label %40947

40944:                                            ; preds = %40940
  %40945 = load double, ptr %1183, align 8, !tbaa !11
  %40946 = fsub double %40945, 5.000000e-01
  br label %40948

40947:                                            ; preds = %40940
  br label %40948

40948:                                            ; preds = %40947, %40944
  %40949 = phi double [ %40946, %40944 ], [ 0.000000e+00, %40947 ]
  br label %40950

40950:                                            ; preds = %40948, %40938
  %40951 = phi double [ %40939, %40938 ], [ %40949, %40948 ]
  br label %40952

40952:                                            ; preds = %40950, %40915
  %40953 = phi double [ %40916, %40915 ], [ %40951, %40950 ]
  %40954 = fptoui double %40953 to i32
  %40955 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %40954, ptr %40955, align 4, !tbaa !9
  br label %40969

40956:                                            ; preds = %40875
  %40957 = load double, ptr %1183, align 8, !tbaa !11
  %40958 = fcmp ole double 0.000000e+00, %40957
  br i1 %40958, label %40959, label %40962

40959:                                            ; preds = %40956
  %40960 = load double, ptr %1183, align 8, !tbaa !11
  %40961 = fadd double %40960, 5.000000e-01
  br label %40965

40962:                                            ; preds = %40956
  %40963 = load double, ptr %1183, align 8, !tbaa !11
  %40964 = fsub double %40963, 5.000000e-01
  br label %40965

40965:                                            ; preds = %40962, %40959
  %40966 = phi double [ %40961, %40959 ], [ %40964, %40962 ]
  %40967 = fptoui double %40966 to i32
  %40968 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %40967, ptr %40968, align 4, !tbaa !9
  br label %40969

40969:                                            ; preds = %40965, %40952
  br label %40970

40970:                                            ; preds = %40969, %40840
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1185) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1184) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1183) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1182) #3
  br label %40971

40971:                                            ; preds = %40970
  br label %40972

40972:                                            ; preds = %40971
  br label %41383

40973:                                            ; preds = %37760
  br label %40974

40974:                                            ; preds = %40973
  call void @llvm.lifetime.start.p0(i64 8, ptr %1192) #3
  store double 5.000000e-01, ptr %1192, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %1193) #3
  %40975 = load ptr, ptr %10, align 8, !tbaa !5
  %40976 = load float, ptr %40975, align 4, !tbaa !18
  store float %40976, ptr %1193, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %1194) #3
  store double 0.000000e+00, ptr %1194, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1195) #3
  store double 0.000000e+00, ptr %1195, align 8, !tbaa !11
  %40977 = load ptr, ptr %11, align 8, !tbaa !5
  %40978 = icmp ne ptr null, %40977
  br i1 %40978, label %40979, label %41005

40979:                                            ; preds = %40974
  %40980 = load float, ptr %1193, align 4, !tbaa !18
  %40981 = load float, ptr %1193, align 4, !tbaa !18
  %40982 = fcmp oeq float %40980, %40981
  br i1 %40982, label %40983, label %41005

40983:                                            ; preds = %40979
  %40984 = load ptr, ptr %12, align 8, !tbaa !5
  %40985 = icmp ne ptr null, %40984
  br i1 %40985, label %40986, label %40997

40986:                                            ; preds = %40983
  %40987 = load ptr, ptr %11, align 8, !tbaa !5
  %40988 = load float, ptr %40987, align 4, !tbaa !18
  %40989 = load float, ptr %1193, align 4, !tbaa !18
  %40990 = fcmp ole float %40988, %40989
  br i1 %40990, label %40991, label %40997

40991:                                            ; preds = %40986
  %40992 = load float, ptr %1193, align 4, !tbaa !18
  %40993 = load ptr, ptr %12, align 8, !tbaa !5
  %40994 = load float, ptr %40993, align 4, !tbaa !18
  %40995 = fcmp ole float %40992, %40994
  br i1 %40995, label %40996, label %40997

40996:                                            ; preds = %40991
  br label %40998

40997:                                            ; preds = %40991, %40986, %40983
  call void @__assert_fail(ptr noundef @.str.51, ptr noundef @.str.24, i32 noundef 497, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

40998:                                            ; preds = %40996
  %40999 = load ptr, ptr %11, align 8, !tbaa !5
  %41000 = load float, ptr %40999, align 4, !tbaa !18
  %41001 = fpext float %41000 to double
  store double %41001, ptr %1194, align 8, !tbaa !11
  %41002 = load ptr, ptr %12, align 8, !tbaa !5
  %41003 = load float, ptr %41002, align 4, !tbaa !18
  %41004 = fpext float %41003 to double
  store double %41004, ptr %1195, align 8, !tbaa !11
  br label %41005

41005:                                            ; preds = %40998, %40979, %40974
  %41006 = load i32, ptr %8, align 4, !tbaa !9
  %41007 = icmp ule i32 6, %41006
  br i1 %41007, label %41008, label %41234

41008:                                            ; preds = %41005
  %41009 = load double, ptr %1194, align 8, !tbaa !11
  %41010 = load double, ptr %1195, align 8, !tbaa !11
  %41011 = fcmp olt double %41009, %41010
  br i1 %41011, label %41012, label %41234

41012:                                            ; preds = %41008
  %41013 = load i32, ptr %8, align 4, !tbaa !9
  %41014 = icmp ule i32 15, %41013
  br i1 %41014, label %41015, label %41057

41015:                                            ; preds = %41012
  call void @llvm.lifetime.start.p0(i64 8, ptr %1196) #3
  %41016 = load double, ptr %1194, align 8, !tbaa !11
  %41017 = fcmp olt double 0.000000e+00, %41016
  br i1 %41017, label %41018, label %41020

41018:                                            ; preds = %41015
  %41019 = load double, ptr %1194, align 8, !tbaa !11
  br label %41021

41020:                                            ; preds = %41015
  br label %41021

41021:                                            ; preds = %41020, %41018
  %41022 = phi double [ %41019, %41018 ], [ 0.000000e+00, %41020 ]
  store double %41022, ptr %1196, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1197) #3
  %41023 = load double, ptr %1195, align 8, !tbaa !11
  %41024 = fcmp olt double 0.000000e+00, %41023
  br i1 %41024, label %41025, label %41027

41025:                                            ; preds = %41021
  %41026 = load double, ptr %1195, align 8, !tbaa !11
  br label %41028

41027:                                            ; preds = %41021
  br label %41028

41028:                                            ; preds = %41027, %41025
  %41029 = phi double [ %41026, %41025 ], [ 0.000000e+00, %41027 ]
  store double %41029, ptr %1197, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1198) #3
  %41030 = load double, ptr %1196, align 8, !tbaa !11
  %41031 = load double, ptr %1197, align 8, !tbaa !11
  %41032 = fcmp olt double %41030, %41031
  br i1 %41032, label %41033, label %41041

41033:                                            ; preds = %41028
  %41034 = load double, ptr %1195, align 8, !tbaa !11
  %41035 = load double, ptr %1194, align 8, !tbaa !11
  %41036 = fsub double %41034, %41035
  %41037 = load double, ptr %1197, align 8, !tbaa !11
  %41038 = load double, ptr %1196, align 8, !tbaa !11
  %41039 = fsub double %41037, %41038
  %41040 = fdiv double %41036, %41039
  br label %41042

41041:                                            ; preds = %41028
  br label %41042

41042:                                            ; preds = %41041, %41033
  %41043 = phi double [ %41040, %41033 ], [ 1.000000e+00, %41041 ]
  store double %41043, ptr %1198, align 8, !tbaa !11
  %41044 = load double, ptr %1198, align 8, !tbaa !11
  %41045 = load float, ptr %1193, align 4, !tbaa !18
  %41046 = fcmp olt float 0.000000e+00, %41045
  br i1 %41046, label %41047, label %41049

41047:                                            ; preds = %41042
  %41048 = load float, ptr %1193, align 4, !tbaa !18
  br label %41050

41049:                                            ; preds = %41042
  br label %41050

41050:                                            ; preds = %41049, %41047
  %41051 = phi float [ %41048, %41047 ], [ 0.000000e+00, %41049 ]
  %41052 = fpext float %41051 to double
  %41053 = fmul double %41044, %41052
  %41054 = fptrunc double %41053 to float
  store float %41054, ptr %1193, align 4, !tbaa !18
  %41055 = load double, ptr %1196, align 8, !tbaa !11
  store double %41055, ptr %1194, align 8, !tbaa !11
  %41056 = load double, ptr %1197, align 8, !tbaa !11
  store double %41056, ptr %1195, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1198) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1197) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1196) #3
  br label %41113

41057:                                            ; preds = %41012
  %41058 = load i32, ptr %8, align 4, !tbaa !9
  %41059 = icmp ugt i32 6, %41058
  br i1 %41059, label %41088, label %41060

41060:                                            ; preds = %41057
  %41061 = load i32, ptr %8, align 4, !tbaa !9
  %41062 = icmp ugt i32 15, %41061
  br i1 %41062, label %41063, label %41074

41063:                                            ; preds = %41060
  %41064 = load i32, ptr %9, align 4, !tbaa !9
  %41065 = icmp ugt i32 15, %41064
  br i1 %41065, label %41066, label %41071

41066:                                            ; preds = %41063
  %41067 = load i32, ptr %9, align 4, !tbaa !9
  %41068 = load i32, ptr %8, align 4, !tbaa !9
  %41069 = icmp ugt i32 %41067, %41068
  %41070 = zext i1 %41069 to i32
  br label %41072

41071:                                            ; preds = %41063
  br label %41072

41072:                                            ; preds = %41071, %41066
  %41073 = phi i32 [ %41070, %41066 ], [ 0, %41071 ]
  br label %41085

41074:                                            ; preds = %41060
  %41075 = load i32, ptr %9, align 4, !tbaa !9
  %41076 = icmp ugt i32 15, %41075
  br i1 %41076, label %41077, label %41078

41077:                                            ; preds = %41074
  br label %41083

41078:                                            ; preds = %41074
  %41079 = load i32, ptr %9, align 4, !tbaa !9
  %41080 = load i32, ptr %8, align 4, !tbaa !9
  %41081 = icmp ugt i32 %41079, %41080
  %41082 = zext i1 %41081 to i32
  br label %41083

41083:                                            ; preds = %41078, %41077
  %41084 = phi i32 [ 0, %41077 ], [ %41082, %41078 ]
  br label %41085

41085:                                            ; preds = %41083, %41072
  %41086 = phi i32 [ %41073, %41072 ], [ %41084, %41083 ]
  %41087 = icmp ne i32 %41086, 0
  br label %41088

41088:                                            ; preds = %41085, %41057
  %41089 = phi i1 [ true, %41057 ], [ %41087, %41085 ]
  %41090 = zext i1 %41089 to i32
  %41091 = icmp eq i32 0, %41090
  br i1 %41091, label %41092, label %41112

41092:                                            ; preds = %41088
  %41093 = load double, ptr %1194, align 8, !tbaa !11
  %41094 = fcmp ogt double 0.000000e+00, %41093
  br i1 %41094, label %41095, label %41112

41095:                                            ; preds = %41092
  %41096 = load double, ptr %1195, align 8, !tbaa !11
  %41097 = fcmp olt double 0.000000e+00, %41096
  br i1 %41097, label %41098, label %41112

41098:                                            ; preds = %41095
  %41099 = load double, ptr %1194, align 8, !tbaa !11
  %41100 = fneg double %41099
  %41101 = load double, ptr %1195, align 8, !tbaa !11
  %41102 = fcmp olt double %41100, %41101
  br i1 %41102, label %41103, label %41105

41103:                                            ; preds = %41098
  %41104 = load double, ptr %1195, align 8, !tbaa !11
  br label %41108

41105:                                            ; preds = %41098
  %41106 = load double, ptr %1194, align 8, !tbaa !11
  %41107 = fneg double %41106
  br label %41108

41108:                                            ; preds = %41105, %41103
  %41109 = phi double [ %41104, %41103 ], [ %41107, %41105 ]
  store double %41109, ptr %1195, align 8, !tbaa !11
  %41110 = load double, ptr %1195, align 8, !tbaa !11
  %41111 = fneg double %41110
  store double %41111, ptr %1194, align 8, !tbaa !11
  br label %41112

41112:                                            ; preds = %41108, %41095, %41092, %41088
  br label %41113

41113:                                            ; preds = %41112, %41050
  call void @llvm.lifetime.start.p0(i64 8, ptr %1199) #3
  %41114 = load double, ptr %1194, align 8, !tbaa !11
  %41115 = fcmp ole double 0.000000e+00, %41114
  %41116 = zext i1 %41115 to i64
  %41117 = select i1 %41115, double 0.000000e+00, double 0.000000e+00
  store double %41117, ptr %1199, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1200) #3
  %41118 = load double, ptr %1195, align 8, !tbaa !11
  %41119 = fcmp ole double 0.000000e+00, %41118
  %41120 = zext i1 %41119 to i64
  %41121 = select i1 %41119, double 0x41EFFFFFFFE00000, double 0.000000e+00
  store double %41121, ptr %1200, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1201) #3
  %41122 = load float, ptr %1193, align 4, !tbaa !18
  %41123 = fpext float %41122 to double
  %41124 = load double, ptr %1194, align 8, !tbaa !11
  %41125 = fsub double %41123, %41124
  %41126 = load double, ptr %1200, align 8, !tbaa !11
  %41127 = load double, ptr %1199, align 8, !tbaa !11
  %41128 = fsub double %41126, %41127
  %41129 = fmul double %41125, %41128
  %41130 = load double, ptr %1195, align 8, !tbaa !11
  %41131 = load double, ptr %1194, align 8, !tbaa !11
  %41132 = fsub double %41130, %41131
  %41133 = fdiv double %41129, %41132
  %41134 = load double, ptr %1199, align 8, !tbaa !11
  %41135 = fadd double %41133, %41134
  store double %41135, ptr %1201, align 8, !tbaa !11
  %41136 = load double, ptr %1199, align 8, !tbaa !11
  %41137 = load double, ptr %1201, align 8, !tbaa !11
  %41138 = fcmp ole double 0.000000e+00, %41137
  br i1 %41138, label %41139, label %41142

41139:                                            ; preds = %41113
  %41140 = load double, ptr %1201, align 8, !tbaa !11
  %41141 = fadd double %41140, 5.000000e-01
  br label %41145

41142:                                            ; preds = %41113
  %41143 = load double, ptr %1201, align 8, !tbaa !11
  %41144 = fsub double %41143, 5.000000e-01
  br label %41145

41145:                                            ; preds = %41142, %41139
  %41146 = phi double [ %41141, %41139 ], [ %41144, %41142 ]
  %41147 = fcmp olt double %41136, %41146
  br i1 %41147, label %41148, label %41202

41148:                                            ; preds = %41145
  %41149 = load double, ptr %1201, align 8, !tbaa !11
  %41150 = fcmp ole double 0.000000e+00, %41149
  br i1 %41150, label %41151, label %41154

41151:                                            ; preds = %41148
  %41152 = load double, ptr %1201, align 8, !tbaa !11
  %41153 = fadd double %41152, 5.000000e-01
  br label %41157

41154:                                            ; preds = %41148
  %41155 = load double, ptr %1201, align 8, !tbaa !11
  %41156 = fsub double %41155, 5.000000e-01
  br label %41157

41157:                                            ; preds = %41154, %41151
  %41158 = phi double [ %41153, %41151 ], [ %41156, %41154 ]
  %41159 = load double, ptr %1200, align 8, !tbaa !11
  %41160 = fcmp ole double %41158, %41159
  br i1 %41160, label %41161, label %41172

41161:                                            ; preds = %41157
  %41162 = load double, ptr %1201, align 8, !tbaa !11
  %41163 = fcmp ole double 0.000000e+00, %41162
  br i1 %41163, label %41164, label %41167

41164:                                            ; preds = %41161
  %41165 = load double, ptr %1201, align 8, !tbaa !11
  %41166 = fadd double %41165, 5.000000e-01
  br label %41170

41167:                                            ; preds = %41161
  %41168 = load double, ptr %1201, align 8, !tbaa !11
  %41169 = fsub double %41168, 5.000000e-01
  br label %41170

41170:                                            ; preds = %41167, %41164
  %41171 = phi double [ %41166, %41164 ], [ %41169, %41167 ]
  br label %41200

41172:                                            ; preds = %41157
  %41173 = load double, ptr %1201, align 8, !tbaa !11
  %41174 = fcmp ole double 0.000000e+00, %41173
  br i1 %41174, label %41175, label %41178

41175:                                            ; preds = %41172
  %41176 = load double, ptr %1201, align 8, !tbaa !11
  %41177 = fadd double %41176, 5.000000e-01
  br label %41181

41178:                                            ; preds = %41172
  %41179 = load double, ptr %1201, align 8, !tbaa !11
  %41180 = fsub double %41179, 5.000000e-01
  br label %41181

41181:                                            ; preds = %41178, %41175
  %41182 = phi double [ %41177, %41175 ], [ %41180, %41178 ]
  %41183 = load double, ptr %1200, align 8, !tbaa !11
  %41184 = fcmp olt double %41182, %41183
  br i1 %41184, label %41185, label %41196

41185:                                            ; preds = %41181
  %41186 = load double, ptr %1201, align 8, !tbaa !11
  %41187 = fcmp ole double 0.000000e+00, %41186
  br i1 %41187, label %41188, label %41191

41188:                                            ; preds = %41185
  %41189 = load double, ptr %1201, align 8, !tbaa !11
  %41190 = fadd double %41189, 5.000000e-01
  br label %41194

41191:                                            ; preds = %41185
  %41192 = load double, ptr %1201, align 8, !tbaa !11
  %41193 = fsub double %41192, 5.000000e-01
  br label %41194

41194:                                            ; preds = %41191, %41188
  %41195 = phi double [ %41190, %41188 ], [ %41193, %41191 ]
  br label %41198

41196:                                            ; preds = %41181
  %41197 = load double, ptr %1200, align 8, !tbaa !11
  br label %41198

41198:                                            ; preds = %41196, %41194
  %41199 = phi double [ %41195, %41194 ], [ %41197, %41196 ]
  br label %41200

41200:                                            ; preds = %41198, %41170
  %41201 = phi double [ %41171, %41170 ], [ %41199, %41198 ]
  br label %41230

41202:                                            ; preds = %41145
  %41203 = load double, ptr %1199, align 8, !tbaa !11
  %41204 = load double, ptr %1201, align 8, !tbaa !11
  %41205 = fcmp ole double 0.000000e+00, %41204
  br i1 %41205, label %41206, label %41209

41206:                                            ; preds = %41202
  %41207 = load double, ptr %1201, align 8, !tbaa !11
  %41208 = fadd double %41207, 5.000000e-01
  br label %41212

41209:                                            ; preds = %41202
  %41210 = load double, ptr %1201, align 8, !tbaa !11
  %41211 = fsub double %41210, 5.000000e-01
  br label %41212

41212:                                            ; preds = %41209, %41206
  %41213 = phi double [ %41208, %41206 ], [ %41211, %41209 ]
  %41214 = fcmp olt double %41203, %41213
  br i1 %41214, label %41215, label %41226

41215:                                            ; preds = %41212
  %41216 = load double, ptr %1201, align 8, !tbaa !11
  %41217 = fcmp ole double 0.000000e+00, %41216
  br i1 %41217, label %41218, label %41221

41218:                                            ; preds = %41215
  %41219 = load double, ptr %1201, align 8, !tbaa !11
  %41220 = fadd double %41219, 5.000000e-01
  br label %41224

41221:                                            ; preds = %41215
  %41222 = load double, ptr %1201, align 8, !tbaa !11
  %41223 = fsub double %41222, 5.000000e-01
  br label %41224

41224:                                            ; preds = %41221, %41218
  %41225 = phi double [ %41220, %41218 ], [ %41223, %41221 ]
  br label %41228

41226:                                            ; preds = %41212
  %41227 = load double, ptr %1199, align 8, !tbaa !11
  br label %41228

41228:                                            ; preds = %41226, %41224
  %41229 = phi double [ %41225, %41224 ], [ %41227, %41226 ]
  br label %41230

41230:                                            ; preds = %41228, %41200
  %41231 = phi double [ %41201, %41200 ], [ %41229, %41228 ]
  %41232 = fptoui double %41231 to i32
  %41233 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %41232, ptr %41233, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1201) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1200) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1199) #3
  br label %41376

41234:                                            ; preds = %41008, %41005
  %41235 = load i32, ptr %8, align 4, !tbaa !9
  %41236 = icmp ugt i32 6, %41235
  br i1 %41236, label %41265, label %41237

41237:                                            ; preds = %41234
  %41238 = load i32, ptr %8, align 4, !tbaa !9
  %41239 = icmp ugt i32 15, %41238
  br i1 %41239, label %41240, label %41251

41240:                                            ; preds = %41237
  %41241 = load i32, ptr %9, align 4, !tbaa !9
  %41242 = icmp ugt i32 15, %41241
  br i1 %41242, label %41243, label %41248

41243:                                            ; preds = %41240
  %41244 = load i32, ptr %9, align 4, !tbaa !9
  %41245 = load i32, ptr %8, align 4, !tbaa !9
  %41246 = icmp ugt i32 %41244, %41245
  %41247 = zext i1 %41246 to i32
  br label %41249

41248:                                            ; preds = %41240
  br label %41249

41249:                                            ; preds = %41248, %41243
  %41250 = phi i32 [ %41247, %41243 ], [ 0, %41248 ]
  br label %41262

41251:                                            ; preds = %41237
  %41252 = load i32, ptr %9, align 4, !tbaa !9
  %41253 = icmp ugt i32 15, %41252
  br i1 %41253, label %41254, label %41255

41254:                                            ; preds = %41251
  br label %41260

41255:                                            ; preds = %41251
  %41256 = load i32, ptr %9, align 4, !tbaa !9
  %41257 = load i32, ptr %8, align 4, !tbaa !9
  %41258 = icmp ugt i32 %41256, %41257
  %41259 = zext i1 %41258 to i32
  br label %41260

41260:                                            ; preds = %41255, %41254
  %41261 = phi i32 [ 0, %41254 ], [ %41259, %41255 ]
  br label %41262

41262:                                            ; preds = %41260, %41249
  %41263 = phi i32 [ %41250, %41249 ], [ %41261, %41260 ]
  %41264 = icmp ne i32 %41263, 0
  br label %41265

41265:                                            ; preds = %41262, %41234
  %41266 = phi i1 [ true, %41234 ], [ %41264, %41262 ]
  %41267 = zext i1 %41266 to i32
  %41268 = icmp eq i32 0, %41267
  br i1 %41268, label %41269, label %41360

41269:                                            ; preds = %41265
  %41270 = load float, ptr %1193, align 4, !tbaa !18
  %41271 = fcmp ole float 0.000000e+00, %41270
  br i1 %41271, label %41272, label %41314

41272:                                            ; preds = %41269
  %41273 = load float, ptr %1193, align 4, !tbaa !18
  %41274 = fpext float %41273 to double
  %41275 = fadd double %41274, 5.000000e-01
  %41276 = fcmp olt double 0.000000e+00, %41275
  br i1 %41276, label %41277, label %41300

41277:                                            ; preds = %41272
  %41278 = load float, ptr %1193, align 4, !tbaa !18
  %41279 = fpext float %41278 to double
  %41280 = fadd double %41279, 5.000000e-01
  %41281 = fcmp ole double %41280, 0x41EFFFFFFFE00000
  br i1 %41281, label %41282, label %41286

41282:                                            ; preds = %41277
  %41283 = load float, ptr %1193, align 4, !tbaa !18
  %41284 = fpext float %41283 to double
  %41285 = fadd double %41284, 5.000000e-01
  br label %41298

41286:                                            ; preds = %41277
  %41287 = load float, ptr %1193, align 4, !tbaa !18
  %41288 = fpext float %41287 to double
  %41289 = fadd double %41288, 5.000000e-01
  %41290 = fcmp olt double %41289, 0x41EFFFFFFFE00000
  br i1 %41290, label %41291, label %41295

41291:                                            ; preds = %41286
  %41292 = load float, ptr %1193, align 4, !tbaa !18
  %41293 = fpext float %41292 to double
  %41294 = fadd double %41293, 5.000000e-01
  br label %41296

41295:                                            ; preds = %41286
  br label %41296

41296:                                            ; preds = %41295, %41291
  %41297 = phi double [ %41294, %41291 ], [ 0x41EFFFFFFFE00000, %41295 ]
  br label %41298

41298:                                            ; preds = %41296, %41282
  %41299 = phi double [ %41285, %41282 ], [ %41297, %41296 ]
  br label %41312

41300:                                            ; preds = %41272
  %41301 = load float, ptr %1193, align 4, !tbaa !18
  %41302 = fpext float %41301 to double
  %41303 = fadd double %41302, 5.000000e-01
  %41304 = fcmp olt double 0.000000e+00, %41303
  br i1 %41304, label %41305, label %41309

41305:                                            ; preds = %41300
  %41306 = load float, ptr %1193, align 4, !tbaa !18
  %41307 = fpext float %41306 to double
  %41308 = fadd double %41307, 5.000000e-01
  br label %41310

41309:                                            ; preds = %41300
  br label %41310

41310:                                            ; preds = %41309, %41305
  %41311 = phi double [ %41308, %41305 ], [ 0.000000e+00, %41309 ]
  br label %41312

41312:                                            ; preds = %41310, %41298
  %41313 = phi double [ %41299, %41298 ], [ %41311, %41310 ]
  br label %41356

41314:                                            ; preds = %41269
  %41315 = load float, ptr %1193, align 4, !tbaa !18
  %41316 = fpext float %41315 to double
  %41317 = fsub double %41316, 5.000000e-01
  %41318 = fcmp olt double 0.000000e+00, %41317
  br i1 %41318, label %41319, label %41342

41319:                                            ; preds = %41314
  %41320 = load float, ptr %1193, align 4, !tbaa !18
  %41321 = fpext float %41320 to double
  %41322 = fsub double %41321, 5.000000e-01
  %41323 = fcmp ole double %41322, 0x41EFFFFFFFE00000
  br i1 %41323, label %41324, label %41328

41324:                                            ; preds = %41319
  %41325 = load float, ptr %1193, align 4, !tbaa !18
  %41326 = fpext float %41325 to double
  %41327 = fsub double %41326, 5.000000e-01
  br label %41340

41328:                                            ; preds = %41319
  %41329 = load float, ptr %1193, align 4, !tbaa !18
  %41330 = fpext float %41329 to double
  %41331 = fsub double %41330, 5.000000e-01
  %41332 = fcmp olt double %41331, 0x41EFFFFFFFE00000
  br i1 %41332, label %41333, label %41337

41333:                                            ; preds = %41328
  %41334 = load float, ptr %1193, align 4, !tbaa !18
  %41335 = fpext float %41334 to double
  %41336 = fsub double %41335, 5.000000e-01
  br label %41338

41337:                                            ; preds = %41328
  br label %41338

41338:                                            ; preds = %41337, %41333
  %41339 = phi double [ %41336, %41333 ], [ 0x41EFFFFFFFE00000, %41337 ]
  br label %41340

41340:                                            ; preds = %41338, %41324
  %41341 = phi double [ %41327, %41324 ], [ %41339, %41338 ]
  br label %41354

41342:                                            ; preds = %41314
  %41343 = load float, ptr %1193, align 4, !tbaa !18
  %41344 = fpext float %41343 to double
  %41345 = fsub double %41344, 5.000000e-01
  %41346 = fcmp olt double 0.000000e+00, %41345
  br i1 %41346, label %41347, label %41351

41347:                                            ; preds = %41342
  %41348 = load float, ptr %1193, align 4, !tbaa !18
  %41349 = fpext float %41348 to double
  %41350 = fsub double %41349, 5.000000e-01
  br label %41352

41351:                                            ; preds = %41342
  br label %41352

41352:                                            ; preds = %41351, %41347
  %41353 = phi double [ %41350, %41347 ], [ 0.000000e+00, %41351 ]
  br label %41354

41354:                                            ; preds = %41352, %41340
  %41355 = phi double [ %41341, %41340 ], [ %41353, %41352 ]
  br label %41356

41356:                                            ; preds = %41354, %41312
  %41357 = phi double [ %41313, %41312 ], [ %41355, %41354 ]
  %41358 = fptoui double %41357 to i32
  %41359 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %41358, ptr %41359, align 4, !tbaa !9
  br label %41375

41360:                                            ; preds = %41265
  %41361 = load float, ptr %1193, align 4, !tbaa !18
  %41362 = fcmp ole float 0.000000e+00, %41361
  br i1 %41362, label %41363, label %41367

41363:                                            ; preds = %41360
  %41364 = load float, ptr %1193, align 4, !tbaa !18
  %41365 = fpext float %41364 to double
  %41366 = fadd double %41365, 5.000000e-01
  br label %41371

41367:                                            ; preds = %41360
  %41368 = load float, ptr %1193, align 4, !tbaa !18
  %41369 = fpext float %41368 to double
  %41370 = fsub double %41369, 5.000000e-01
  br label %41371

41371:                                            ; preds = %41367, %41363
  %41372 = phi double [ %41366, %41363 ], [ %41370, %41367 ]
  %41373 = fptoui double %41372 to i32
  %41374 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 %41373, ptr %41374, align 4, !tbaa !9
  br label %41375

41375:                                            ; preds = %41371, %41356
  br label %41376

41376:                                            ; preds = %41375, %41230
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1195) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1194) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %1193) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1192) #3
  br label %41377

41377:                                            ; preds = %41376
  br label %41378

41378:                                            ; preds = %41377
  br label %41383

41379:                                            ; preds = %37760
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 497, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

41380:                                            ; preds = %37760
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 497, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

41381:                                            ; preds = %37760
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 497, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

41382:                                            ; preds = %37760
  store i32 1, ptr %13, align 4, !tbaa !9
  br label %41383

41383:                                            ; preds = %41382, %41378, %40972, %40587, %40227, %39867, %39521, %39174, %38814, %38454, %38108
  br label %41384

41384:                                            ; preds = %41383
  br label %41385

41385:                                            ; preds = %41384
  br label %48657

41386:                                            ; preds = %6
  br label %41387

41387:                                            ; preds = %41386
  %41388 = load ptr, ptr %7, align 8, !tbaa !5
  %41389 = icmp ne ptr null, %41388
  br i1 %41389, label %41390, label %41394

41390:                                            ; preds = %41387
  %41391 = load ptr, ptr %10, align 8, !tbaa !5
  %41392 = icmp ne ptr null, %41391
  br i1 %41392, label %41393, label %41394

41393:                                            ; preds = %41390
  br label %41395

41394:                                            ; preds = %41390, %41387
  call void @__assert_fail(ptr noundef @.str.41, ptr noundef @.str.24, i32 noundef 500, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

41395:                                            ; preds = %41393
  %41396 = load i32, ptr %9, align 4, !tbaa !9
  switch i32 %41396, label %45017 [
    i32 6, label %41397
    i32 8, label %41744
    i32 10, label %42091
    i32 12, label %42450
    i32 15, label %42810
    i32 16, label %43157
    i32 17, label %43504
    i32 18, label %43863
    i32 0, label %44223
    i32 1, label %44608
    i32 3, label %45014
    i32 2, label %45015
    i32 4, label %45016
  ]

41397:                                            ; preds = %41395
  br label %41398

41398:                                            ; preds = %41397
  call void @llvm.lifetime.start.p0(i64 8, ptr %1202) #3
  store double 5.000000e-01, ptr %1202, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1203) #3
  %41399 = load ptr, ptr %10, align 8, !tbaa !5
  %41400 = load i64, ptr %41399, align 8, !tbaa !13
  store i64 %41400, ptr %1203, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %1204) #3
  store double 0.000000e+00, ptr %1204, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1205) #3
  store double 0.000000e+00, ptr %1205, align 8, !tbaa !11
  %41401 = load ptr, ptr %11, align 8, !tbaa !5
  %41402 = icmp ne ptr null, %41401
  br i1 %41402, label %41403, label %41425

41403:                                            ; preds = %41398
  %41404 = load ptr, ptr %12, align 8, !tbaa !5
  %41405 = icmp ne ptr null, %41404
  br i1 %41405, label %41406, label %41417

41406:                                            ; preds = %41403
  %41407 = load ptr, ptr %11, align 8, !tbaa !5
  %41408 = load i64, ptr %41407, align 8, !tbaa !13
  %41409 = load i64, ptr %1203, align 8, !tbaa !13
  %41410 = icmp sle i64 %41408, %41409
  br i1 %41410, label %41411, label %41417

41411:                                            ; preds = %41406
  %41412 = load i64, ptr %1203, align 8, !tbaa !13
  %41413 = load ptr, ptr %12, align 8, !tbaa !5
  %41414 = load i64, ptr %41413, align 8, !tbaa !13
  %41415 = icmp sle i64 %41412, %41414
  br i1 %41415, label %41416, label %41417

41416:                                            ; preds = %41411
  br label %41418

41417:                                            ; preds = %41411, %41406, %41403
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.24, i32 noundef 500, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

41418:                                            ; preds = %41416
  %41419 = load ptr, ptr %11, align 8, !tbaa !5
  %41420 = load i64, ptr %41419, align 8, !tbaa !13
  %41421 = sitofp i64 %41420 to double
  store double %41421, ptr %1204, align 8, !tbaa !11
  %41422 = load ptr, ptr %12, align 8, !tbaa !5
  %41423 = load i64, ptr %41422, align 8, !tbaa !13
  %41424 = sitofp i64 %41423 to double
  store double %41424, ptr %1205, align 8, !tbaa !11
  br label %41425

41425:                                            ; preds = %41418, %41398
  %41426 = load i32, ptr %8, align 4, !tbaa !9
  %41427 = icmp ule i32 6, %41426
  br i1 %41427, label %41428, label %41664

41428:                                            ; preds = %41425
  %41429 = load double, ptr %1204, align 8, !tbaa !11
  %41430 = load double, ptr %1205, align 8, !tbaa !11
  %41431 = fcmp olt double %41429, %41430
  br i1 %41431, label %41432, label %41664

41432:                                            ; preds = %41428
  %41433 = load i32, ptr %8, align 4, !tbaa !9
  %41434 = icmp ule i32 15, %41433
  br i1 %41434, label %41435, label %41487

41435:                                            ; preds = %41432
  call void @llvm.lifetime.start.p0(i64 8, ptr %1206) #3
  %41436 = load double, ptr %1204, align 8, !tbaa !11
  %41437 = fcmp olt double 0.000000e+00, %41436
  br i1 %41437, label %41438, label %41440

41438:                                            ; preds = %41435
  %41439 = load double, ptr %1204, align 8, !tbaa !11
  br label %41441

41440:                                            ; preds = %41435
  br label %41441

41441:                                            ; preds = %41440, %41438
  %41442 = phi double [ %41439, %41438 ], [ 0.000000e+00, %41440 ]
  store double %41442, ptr %1206, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1207) #3
  %41443 = load double, ptr %1205, align 8, !tbaa !11
  %41444 = fcmp olt double 0.000000e+00, %41443
  br i1 %41444, label %41445, label %41447

41445:                                            ; preds = %41441
  %41446 = load double, ptr %1205, align 8, !tbaa !11
  br label %41448

41447:                                            ; preds = %41441
  br label %41448

41448:                                            ; preds = %41447, %41445
  %41449 = phi double [ %41446, %41445 ], [ 0.000000e+00, %41447 ]
  store double %41449, ptr %1207, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1208) #3
  %41450 = load double, ptr %1206, align 8, !tbaa !11
  %41451 = load double, ptr %1207, align 8, !tbaa !11
  %41452 = fcmp olt double %41450, %41451
  br i1 %41452, label %41453, label %41461

41453:                                            ; preds = %41448
  %41454 = load double, ptr %1205, align 8, !tbaa !11
  %41455 = load double, ptr %1204, align 8, !tbaa !11
  %41456 = fsub double %41454, %41455
  %41457 = load double, ptr %1207, align 8, !tbaa !11
  %41458 = load double, ptr %1206, align 8, !tbaa !11
  %41459 = fsub double %41457, %41458
  %41460 = fdiv double %41456, %41459
  br label %41462

41461:                                            ; preds = %41448
  br label %41462

41462:                                            ; preds = %41461, %41453
  %41463 = phi double [ %41460, %41453 ], [ 1.000000e+00, %41461 ]
  store double %41463, ptr %1208, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1209) #3
  %41464 = load double, ptr %1208, align 8, !tbaa !11
  %41465 = load i64, ptr %1203, align 8, !tbaa !13
  %41466 = icmp slt i64 0, %41465
  br i1 %41466, label %41467, label %41469

41467:                                            ; preds = %41462
  %41468 = load i64, ptr %1203, align 8, !tbaa !13
  br label %41470

41469:                                            ; preds = %41462
  br label %41470

41470:                                            ; preds = %41469, %41467
  %41471 = phi i64 [ %41468, %41467 ], [ 0, %41469 ]
  %41472 = sitofp i64 %41471 to double
  %41473 = fmul double %41464, %41472
  store double %41473, ptr %1209, align 8, !tbaa !11
  %41474 = load double, ptr %1209, align 8, !tbaa !11
  %41475 = fcmp ole double 0.000000e+00, %41474
  br i1 %41475, label %41476, label %41479

41476:                                            ; preds = %41470
  %41477 = load double, ptr %1209, align 8, !tbaa !11
  %41478 = fadd double %41477, 5.000000e-01
  br label %41482

41479:                                            ; preds = %41470
  %41480 = load double, ptr %1209, align 8, !tbaa !11
  %41481 = fsub double %41480, 5.000000e-01
  br label %41482

41482:                                            ; preds = %41479, %41476
  %41483 = phi double [ %41478, %41476 ], [ %41481, %41479 ]
  %41484 = fptosi double %41483 to i64
  store i64 %41484, ptr %1203, align 8, !tbaa !13
  %41485 = load double, ptr %1206, align 8, !tbaa !11
  store double %41485, ptr %1204, align 8, !tbaa !11
  %41486 = load double, ptr %1207, align 8, !tbaa !11
  store double %41486, ptr %1205, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1209) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1208) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1207) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1206) #3
  br label %41543

41487:                                            ; preds = %41432
  %41488 = load i32, ptr %8, align 4, !tbaa !9
  %41489 = icmp ugt i32 6, %41488
  br i1 %41489, label %41518, label %41490

41490:                                            ; preds = %41487
  %41491 = load i32, ptr %8, align 4, !tbaa !9
  %41492 = icmp ugt i32 15, %41491
  br i1 %41492, label %41493, label %41504

41493:                                            ; preds = %41490
  %41494 = load i32, ptr %9, align 4, !tbaa !9
  %41495 = icmp ugt i32 15, %41494
  br i1 %41495, label %41496, label %41501

41496:                                            ; preds = %41493
  %41497 = load i32, ptr %9, align 4, !tbaa !9
  %41498 = load i32, ptr %8, align 4, !tbaa !9
  %41499 = icmp ugt i32 %41497, %41498
  %41500 = zext i1 %41499 to i32
  br label %41502

41501:                                            ; preds = %41493
  br label %41502

41502:                                            ; preds = %41501, %41496
  %41503 = phi i32 [ %41500, %41496 ], [ 0, %41501 ]
  br label %41515

41504:                                            ; preds = %41490
  %41505 = load i32, ptr %9, align 4, !tbaa !9
  %41506 = icmp ugt i32 15, %41505
  br i1 %41506, label %41507, label %41508

41507:                                            ; preds = %41504
  br label %41513

41508:                                            ; preds = %41504
  %41509 = load i32, ptr %9, align 4, !tbaa !9
  %41510 = load i32, ptr %8, align 4, !tbaa !9
  %41511 = icmp ugt i32 %41509, %41510
  %41512 = zext i1 %41511 to i32
  br label %41513

41513:                                            ; preds = %41508, %41507
  %41514 = phi i32 [ 0, %41507 ], [ %41512, %41508 ]
  br label %41515

41515:                                            ; preds = %41513, %41502
  %41516 = phi i32 [ %41503, %41502 ], [ %41514, %41513 ]
  %41517 = icmp ne i32 %41516, 0
  br label %41518

41518:                                            ; preds = %41515, %41487
  %41519 = phi i1 [ true, %41487 ], [ %41517, %41515 ]
  %41520 = zext i1 %41519 to i32
  %41521 = icmp eq i32 0, %41520
  br i1 %41521, label %41522, label %41542

41522:                                            ; preds = %41518
  %41523 = load double, ptr %1204, align 8, !tbaa !11
  %41524 = fcmp ogt double 0.000000e+00, %41523
  br i1 %41524, label %41525, label %41542

41525:                                            ; preds = %41522
  %41526 = load double, ptr %1205, align 8, !tbaa !11
  %41527 = fcmp olt double 0.000000e+00, %41526
  br i1 %41527, label %41528, label %41542

41528:                                            ; preds = %41525
  %41529 = load double, ptr %1204, align 8, !tbaa !11
  %41530 = fneg double %41529
  %41531 = load double, ptr %1205, align 8, !tbaa !11
  %41532 = fcmp olt double %41530, %41531
  br i1 %41532, label %41533, label %41535

41533:                                            ; preds = %41528
  %41534 = load double, ptr %1205, align 8, !tbaa !11
  br label %41538

41535:                                            ; preds = %41528
  %41536 = load double, ptr %1204, align 8, !tbaa !11
  %41537 = fneg double %41536
  br label %41538

41538:                                            ; preds = %41535, %41533
  %41539 = phi double [ %41534, %41533 ], [ %41537, %41535 ]
  store double %41539, ptr %1205, align 8, !tbaa !11
  %41540 = load double, ptr %1205, align 8, !tbaa !11
  %41541 = fneg double %41540
  store double %41541, ptr %1204, align 8, !tbaa !11
  br label %41542

41542:                                            ; preds = %41538, %41525, %41522, %41518
  br label %41543

41543:                                            ; preds = %41542, %41482
  call void @llvm.lifetime.start.p0(i64 8, ptr %1210) #3
  %41544 = load double, ptr %1204, align 8, !tbaa !11
  %41545 = fcmp ole double 0.000000e+00, %41544
  %41546 = zext i1 %41545 to i64
  %41547 = select i1 %41545, double 0.000000e+00, double 0.000000e+00
  store double %41547, ptr %1210, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1211) #3
  %41548 = load double, ptr %1205, align 8, !tbaa !11
  %41549 = fcmp ole double 0.000000e+00, %41548
  %41550 = zext i1 %41549 to i64
  %41551 = select i1 %41549, double 6.553500e+04, double 0.000000e+00
  store double %41551, ptr %1211, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1212) #3
  %41552 = load i64, ptr %1203, align 8, !tbaa !13
  %41553 = sitofp i64 %41552 to double
  %41554 = load double, ptr %1204, align 8, !tbaa !11
  %41555 = fsub double %41553, %41554
  %41556 = load double, ptr %1211, align 8, !tbaa !11
  %41557 = load double, ptr %1210, align 8, !tbaa !11
  %41558 = fsub double %41556, %41557
  %41559 = fmul double %41555, %41558
  %41560 = load double, ptr %1205, align 8, !tbaa !11
  %41561 = load double, ptr %1204, align 8, !tbaa !11
  %41562 = fsub double %41560, %41561
  %41563 = fdiv double %41559, %41562
  %41564 = load double, ptr %1210, align 8, !tbaa !11
  %41565 = fadd double %41563, %41564
  store double %41565, ptr %1212, align 8, !tbaa !11
  %41566 = load double, ptr %1210, align 8, !tbaa !11
  %41567 = load double, ptr %1212, align 8, !tbaa !11
  %41568 = fcmp ole double 0.000000e+00, %41567
  br i1 %41568, label %41569, label %41572

41569:                                            ; preds = %41543
  %41570 = load double, ptr %1212, align 8, !tbaa !11
  %41571 = fadd double %41570, 5.000000e-01
  br label %41575

41572:                                            ; preds = %41543
  %41573 = load double, ptr %1212, align 8, !tbaa !11
  %41574 = fsub double %41573, 5.000000e-01
  br label %41575

41575:                                            ; preds = %41572, %41569
  %41576 = phi double [ %41571, %41569 ], [ %41574, %41572 ]
  %41577 = fcmp olt double %41566, %41576
  br i1 %41577, label %41578, label %41632

41578:                                            ; preds = %41575
  %41579 = load double, ptr %1212, align 8, !tbaa !11
  %41580 = fcmp ole double 0.000000e+00, %41579
  br i1 %41580, label %41581, label %41584

41581:                                            ; preds = %41578
  %41582 = load double, ptr %1212, align 8, !tbaa !11
  %41583 = fadd double %41582, 5.000000e-01
  br label %41587

41584:                                            ; preds = %41578
  %41585 = load double, ptr %1212, align 8, !tbaa !11
  %41586 = fsub double %41585, 5.000000e-01
  br label %41587

41587:                                            ; preds = %41584, %41581
  %41588 = phi double [ %41583, %41581 ], [ %41586, %41584 ]
  %41589 = load double, ptr %1211, align 8, !tbaa !11
  %41590 = fcmp ole double %41588, %41589
  br i1 %41590, label %41591, label %41602

41591:                                            ; preds = %41587
  %41592 = load double, ptr %1212, align 8, !tbaa !11
  %41593 = fcmp ole double 0.000000e+00, %41592
  br i1 %41593, label %41594, label %41597

41594:                                            ; preds = %41591
  %41595 = load double, ptr %1212, align 8, !tbaa !11
  %41596 = fadd double %41595, 5.000000e-01
  br label %41600

41597:                                            ; preds = %41591
  %41598 = load double, ptr %1212, align 8, !tbaa !11
  %41599 = fsub double %41598, 5.000000e-01
  br label %41600

41600:                                            ; preds = %41597, %41594
  %41601 = phi double [ %41596, %41594 ], [ %41599, %41597 ]
  br label %41630

41602:                                            ; preds = %41587
  %41603 = load double, ptr %1212, align 8, !tbaa !11
  %41604 = fcmp ole double 0.000000e+00, %41603
  br i1 %41604, label %41605, label %41608

41605:                                            ; preds = %41602
  %41606 = load double, ptr %1212, align 8, !tbaa !11
  %41607 = fadd double %41606, 5.000000e-01
  br label %41611

41608:                                            ; preds = %41602
  %41609 = load double, ptr %1212, align 8, !tbaa !11
  %41610 = fsub double %41609, 5.000000e-01
  br label %41611

41611:                                            ; preds = %41608, %41605
  %41612 = phi double [ %41607, %41605 ], [ %41610, %41608 ]
  %41613 = load double, ptr %1211, align 8, !tbaa !11
  %41614 = fcmp olt double %41612, %41613
  br i1 %41614, label %41615, label %41626

41615:                                            ; preds = %41611
  %41616 = load double, ptr %1212, align 8, !tbaa !11
  %41617 = fcmp ole double 0.000000e+00, %41616
  br i1 %41617, label %41618, label %41621

41618:                                            ; preds = %41615
  %41619 = load double, ptr %1212, align 8, !tbaa !11
  %41620 = fadd double %41619, 5.000000e-01
  br label %41624

41621:                                            ; preds = %41615
  %41622 = load double, ptr %1212, align 8, !tbaa !11
  %41623 = fsub double %41622, 5.000000e-01
  br label %41624

41624:                                            ; preds = %41621, %41618
  %41625 = phi double [ %41620, %41618 ], [ %41623, %41621 ]
  br label %41628

41626:                                            ; preds = %41611
  %41627 = load double, ptr %1211, align 8, !tbaa !11
  br label %41628

41628:                                            ; preds = %41626, %41624
  %41629 = phi double [ %41625, %41624 ], [ %41627, %41626 ]
  br label %41630

41630:                                            ; preds = %41628, %41600
  %41631 = phi double [ %41601, %41600 ], [ %41629, %41628 ]
  br label %41660

41632:                                            ; preds = %41575
  %41633 = load double, ptr %1210, align 8, !tbaa !11
  %41634 = load double, ptr %1212, align 8, !tbaa !11
  %41635 = fcmp ole double 0.000000e+00, %41634
  br i1 %41635, label %41636, label %41639

41636:                                            ; preds = %41632
  %41637 = load double, ptr %1212, align 8, !tbaa !11
  %41638 = fadd double %41637, 5.000000e-01
  br label %41642

41639:                                            ; preds = %41632
  %41640 = load double, ptr %1212, align 8, !tbaa !11
  %41641 = fsub double %41640, 5.000000e-01
  br label %41642

41642:                                            ; preds = %41639, %41636
  %41643 = phi double [ %41638, %41636 ], [ %41641, %41639 ]
  %41644 = fcmp olt double %41633, %41643
  br i1 %41644, label %41645, label %41656

41645:                                            ; preds = %41642
  %41646 = load double, ptr %1212, align 8, !tbaa !11
  %41647 = fcmp ole double 0.000000e+00, %41646
  br i1 %41647, label %41648, label %41651

41648:                                            ; preds = %41645
  %41649 = load double, ptr %1212, align 8, !tbaa !11
  %41650 = fadd double %41649, 5.000000e-01
  br label %41654

41651:                                            ; preds = %41645
  %41652 = load double, ptr %1212, align 8, !tbaa !11
  %41653 = fsub double %41652, 5.000000e-01
  br label %41654

41654:                                            ; preds = %41651, %41648
  %41655 = phi double [ %41650, %41648 ], [ %41653, %41651 ]
  br label %41658

41656:                                            ; preds = %41642
  %41657 = load double, ptr %1210, align 8, !tbaa !11
  br label %41658

41658:                                            ; preds = %41656, %41654
  %41659 = phi double [ %41655, %41654 ], [ %41657, %41656 ]
  br label %41660

41660:                                            ; preds = %41658, %41630
  %41661 = phi double [ %41631, %41630 ], [ %41659, %41658 ]
  %41662 = fptoui double %41661 to i16
  %41663 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %41662, ptr %41663, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %1212) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1211) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1210) #3
  br label %41741

41664:                                            ; preds = %41428, %41425
  %41665 = load i32, ptr %8, align 4, !tbaa !9
  %41666 = icmp ugt i32 6, %41665
  br i1 %41666, label %41695, label %41667

41667:                                            ; preds = %41664
  %41668 = load i32, ptr %8, align 4, !tbaa !9
  %41669 = icmp ugt i32 15, %41668
  br i1 %41669, label %41670, label %41681

41670:                                            ; preds = %41667
  %41671 = load i32, ptr %9, align 4, !tbaa !9
  %41672 = icmp ugt i32 15, %41671
  br i1 %41672, label %41673, label %41678

41673:                                            ; preds = %41670
  %41674 = load i32, ptr %9, align 4, !tbaa !9
  %41675 = load i32, ptr %8, align 4, !tbaa !9
  %41676 = icmp ugt i32 %41674, %41675
  %41677 = zext i1 %41676 to i32
  br label %41679

41678:                                            ; preds = %41670
  br label %41679

41679:                                            ; preds = %41678, %41673
  %41680 = phi i32 [ %41677, %41673 ], [ 0, %41678 ]
  br label %41692

41681:                                            ; preds = %41667
  %41682 = load i32, ptr %9, align 4, !tbaa !9
  %41683 = icmp ugt i32 15, %41682
  br i1 %41683, label %41684, label %41685

41684:                                            ; preds = %41681
  br label %41690

41685:                                            ; preds = %41681
  %41686 = load i32, ptr %9, align 4, !tbaa !9
  %41687 = load i32, ptr %8, align 4, !tbaa !9
  %41688 = icmp ugt i32 %41686, %41687
  %41689 = zext i1 %41688 to i32
  br label %41690

41690:                                            ; preds = %41685, %41684
  %41691 = phi i32 [ 0, %41684 ], [ %41689, %41685 ]
  br label %41692

41692:                                            ; preds = %41690, %41679
  %41693 = phi i32 [ %41680, %41679 ], [ %41691, %41690 ]
  %41694 = icmp ne i32 %41693, 0
  br label %41695

41695:                                            ; preds = %41692, %41664
  %41696 = phi i1 [ true, %41664 ], [ %41694, %41692 ]
  %41697 = zext i1 %41696 to i32
  %41698 = icmp eq i32 0, %41697
  br i1 %41698, label %41699, label %41736

41699:                                            ; preds = %41695
  %41700 = load i64, ptr %1203, align 8, !tbaa !13
  %41701 = sitofp i64 %41700 to double
  %41702 = fcmp olt double 0.000000e+00, %41701
  br i1 %41702, label %41703, label %41722

41703:                                            ; preds = %41699
  %41704 = load i64, ptr %1203, align 8, !tbaa !13
  %41705 = sitofp i64 %41704 to double
  %41706 = fcmp ole double %41705, 6.553500e+04
  br i1 %41706, label %41707, label %41710

41707:                                            ; preds = %41703
  %41708 = load i64, ptr %1203, align 8, !tbaa !13
  %41709 = sitofp i64 %41708 to double
  br label %41720

41710:                                            ; preds = %41703
  %41711 = load i64, ptr %1203, align 8, !tbaa !13
  %41712 = sitofp i64 %41711 to double
  %41713 = fcmp olt double %41712, 6.553500e+04
  br i1 %41713, label %41714, label %41717

41714:                                            ; preds = %41710
  %41715 = load i64, ptr %1203, align 8, !tbaa !13
  %41716 = sitofp i64 %41715 to double
  br label %41718

41717:                                            ; preds = %41710
  br label %41718

41718:                                            ; preds = %41717, %41714
  %41719 = phi double [ %41716, %41714 ], [ 6.553500e+04, %41717 ]
  br label %41720

41720:                                            ; preds = %41718, %41707
  %41721 = phi double [ %41709, %41707 ], [ %41719, %41718 ]
  br label %41732

41722:                                            ; preds = %41699
  %41723 = load i64, ptr %1203, align 8, !tbaa !13
  %41724 = sitofp i64 %41723 to double
  %41725 = fcmp olt double 0.000000e+00, %41724
  br i1 %41725, label %41726, label %41729

41726:                                            ; preds = %41722
  %41727 = load i64, ptr %1203, align 8, !tbaa !13
  %41728 = sitofp i64 %41727 to double
  br label %41730

41729:                                            ; preds = %41722
  br label %41730

41730:                                            ; preds = %41729, %41726
  %41731 = phi double [ %41728, %41726 ], [ 0.000000e+00, %41729 ]
  br label %41732

41732:                                            ; preds = %41730, %41720
  %41733 = phi double [ %41721, %41720 ], [ %41731, %41730 ]
  %41734 = fptoui double %41733 to i16
  %41735 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %41734, ptr %41735, align 2, !tbaa !15
  br label %41740

41736:                                            ; preds = %41695
  %41737 = load i64, ptr %1203, align 8, !tbaa !13
  %41738 = trunc i64 %41737 to i16
  %41739 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %41738, ptr %41739, align 2, !tbaa !15
  br label %41740

41740:                                            ; preds = %41736, %41732
  br label %41741

41741:                                            ; preds = %41740, %41660
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1205) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1204) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1203) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1202) #3
  br label %41742

41742:                                            ; preds = %41741
  br label %41743

41743:                                            ; preds = %41742
  br label %45018

41744:                                            ; preds = %41395
  br label %41745

41745:                                            ; preds = %41744
  call void @llvm.lifetime.start.p0(i64 8, ptr %1213) #3
  store double 5.000000e-01, ptr %1213, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %1214) #3
  %41746 = load ptr, ptr %10, align 8, !tbaa !5
  %41747 = load i32, ptr %41746, align 4, !tbaa !9
  store i32 %41747, ptr %1214, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1215) #3
  store double 0.000000e+00, ptr %1215, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1216) #3
  store double 0.000000e+00, ptr %1216, align 8, !tbaa !11
  %41748 = load ptr, ptr %11, align 8, !tbaa !5
  %41749 = icmp ne ptr null, %41748
  br i1 %41749, label %41750, label %41772

41750:                                            ; preds = %41745
  %41751 = load ptr, ptr %12, align 8, !tbaa !5
  %41752 = icmp ne ptr null, %41751
  br i1 %41752, label %41753, label %41764

41753:                                            ; preds = %41750
  %41754 = load ptr, ptr %11, align 8, !tbaa !5
  %41755 = load i32, ptr %41754, align 4, !tbaa !9
  %41756 = load i32, ptr %1214, align 4, !tbaa !9
  %41757 = icmp sle i32 %41755, %41756
  br i1 %41757, label %41758, label %41764

41758:                                            ; preds = %41753
  %41759 = load i32, ptr %1214, align 4, !tbaa !9
  %41760 = load ptr, ptr %12, align 8, !tbaa !5
  %41761 = load i32, ptr %41760, align 4, !tbaa !9
  %41762 = icmp sle i32 %41759, %41761
  br i1 %41762, label %41763, label %41764

41763:                                            ; preds = %41758
  br label %41765

41764:                                            ; preds = %41758, %41753, %41750
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.24, i32 noundef 500, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

41765:                                            ; preds = %41763
  %41766 = load ptr, ptr %11, align 8, !tbaa !5
  %41767 = load i32, ptr %41766, align 4, !tbaa !9
  %41768 = sitofp i32 %41767 to double
  store double %41768, ptr %1215, align 8, !tbaa !11
  %41769 = load ptr, ptr %12, align 8, !tbaa !5
  %41770 = load i32, ptr %41769, align 4, !tbaa !9
  %41771 = sitofp i32 %41770 to double
  store double %41771, ptr %1216, align 8, !tbaa !11
  br label %41772

41772:                                            ; preds = %41765, %41745
  %41773 = load i32, ptr %8, align 4, !tbaa !9
  %41774 = icmp ule i32 6, %41773
  br i1 %41774, label %41775, label %42011

41775:                                            ; preds = %41772
  %41776 = load double, ptr %1215, align 8, !tbaa !11
  %41777 = load double, ptr %1216, align 8, !tbaa !11
  %41778 = fcmp olt double %41776, %41777
  br i1 %41778, label %41779, label %42011

41779:                                            ; preds = %41775
  %41780 = load i32, ptr %8, align 4, !tbaa !9
  %41781 = icmp ule i32 15, %41780
  br i1 %41781, label %41782, label %41834

41782:                                            ; preds = %41779
  call void @llvm.lifetime.start.p0(i64 8, ptr %1217) #3
  %41783 = load double, ptr %1215, align 8, !tbaa !11
  %41784 = fcmp olt double 0.000000e+00, %41783
  br i1 %41784, label %41785, label %41787

41785:                                            ; preds = %41782
  %41786 = load double, ptr %1215, align 8, !tbaa !11
  br label %41788

41787:                                            ; preds = %41782
  br label %41788

41788:                                            ; preds = %41787, %41785
  %41789 = phi double [ %41786, %41785 ], [ 0.000000e+00, %41787 ]
  store double %41789, ptr %1217, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1218) #3
  %41790 = load double, ptr %1216, align 8, !tbaa !11
  %41791 = fcmp olt double 0.000000e+00, %41790
  br i1 %41791, label %41792, label %41794

41792:                                            ; preds = %41788
  %41793 = load double, ptr %1216, align 8, !tbaa !11
  br label %41795

41794:                                            ; preds = %41788
  br label %41795

41795:                                            ; preds = %41794, %41792
  %41796 = phi double [ %41793, %41792 ], [ 0.000000e+00, %41794 ]
  store double %41796, ptr %1218, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1219) #3
  %41797 = load double, ptr %1217, align 8, !tbaa !11
  %41798 = load double, ptr %1218, align 8, !tbaa !11
  %41799 = fcmp olt double %41797, %41798
  br i1 %41799, label %41800, label %41808

41800:                                            ; preds = %41795
  %41801 = load double, ptr %1216, align 8, !tbaa !11
  %41802 = load double, ptr %1215, align 8, !tbaa !11
  %41803 = fsub double %41801, %41802
  %41804 = load double, ptr %1218, align 8, !tbaa !11
  %41805 = load double, ptr %1217, align 8, !tbaa !11
  %41806 = fsub double %41804, %41805
  %41807 = fdiv double %41803, %41806
  br label %41809

41808:                                            ; preds = %41795
  br label %41809

41809:                                            ; preds = %41808, %41800
  %41810 = phi double [ %41807, %41800 ], [ 1.000000e+00, %41808 ]
  store double %41810, ptr %1219, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1220) #3
  %41811 = load double, ptr %1219, align 8, !tbaa !11
  %41812 = load i32, ptr %1214, align 4, !tbaa !9
  %41813 = icmp slt i32 0, %41812
  br i1 %41813, label %41814, label %41816

41814:                                            ; preds = %41809
  %41815 = load i32, ptr %1214, align 4, !tbaa !9
  br label %41817

41816:                                            ; preds = %41809
  br label %41817

41817:                                            ; preds = %41816, %41814
  %41818 = phi i32 [ %41815, %41814 ], [ 0, %41816 ]
  %41819 = sitofp i32 %41818 to double
  %41820 = fmul double %41811, %41819
  store double %41820, ptr %1220, align 8, !tbaa !11
  %41821 = load double, ptr %1220, align 8, !tbaa !11
  %41822 = fcmp ole double 0.000000e+00, %41821
  br i1 %41822, label %41823, label %41826

41823:                                            ; preds = %41817
  %41824 = load double, ptr %1220, align 8, !tbaa !11
  %41825 = fadd double %41824, 5.000000e-01
  br label %41829

41826:                                            ; preds = %41817
  %41827 = load double, ptr %1220, align 8, !tbaa !11
  %41828 = fsub double %41827, 5.000000e-01
  br label %41829

41829:                                            ; preds = %41826, %41823
  %41830 = phi double [ %41825, %41823 ], [ %41828, %41826 ]
  %41831 = fptosi double %41830 to i32
  store i32 %41831, ptr %1214, align 4, !tbaa !9
  %41832 = load double, ptr %1217, align 8, !tbaa !11
  store double %41832, ptr %1215, align 8, !tbaa !11
  %41833 = load double, ptr %1218, align 8, !tbaa !11
  store double %41833, ptr %1216, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1220) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1219) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1218) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1217) #3
  br label %41890

41834:                                            ; preds = %41779
  %41835 = load i32, ptr %8, align 4, !tbaa !9
  %41836 = icmp ugt i32 6, %41835
  br i1 %41836, label %41865, label %41837

41837:                                            ; preds = %41834
  %41838 = load i32, ptr %8, align 4, !tbaa !9
  %41839 = icmp ugt i32 15, %41838
  br i1 %41839, label %41840, label %41851

41840:                                            ; preds = %41837
  %41841 = load i32, ptr %9, align 4, !tbaa !9
  %41842 = icmp ugt i32 15, %41841
  br i1 %41842, label %41843, label %41848

41843:                                            ; preds = %41840
  %41844 = load i32, ptr %9, align 4, !tbaa !9
  %41845 = load i32, ptr %8, align 4, !tbaa !9
  %41846 = icmp ugt i32 %41844, %41845
  %41847 = zext i1 %41846 to i32
  br label %41849

41848:                                            ; preds = %41840
  br label %41849

41849:                                            ; preds = %41848, %41843
  %41850 = phi i32 [ %41847, %41843 ], [ 0, %41848 ]
  br label %41862

41851:                                            ; preds = %41837
  %41852 = load i32, ptr %9, align 4, !tbaa !9
  %41853 = icmp ugt i32 15, %41852
  br i1 %41853, label %41854, label %41855

41854:                                            ; preds = %41851
  br label %41860

41855:                                            ; preds = %41851
  %41856 = load i32, ptr %9, align 4, !tbaa !9
  %41857 = load i32, ptr %8, align 4, !tbaa !9
  %41858 = icmp ugt i32 %41856, %41857
  %41859 = zext i1 %41858 to i32
  br label %41860

41860:                                            ; preds = %41855, %41854
  %41861 = phi i32 [ 0, %41854 ], [ %41859, %41855 ]
  br label %41862

41862:                                            ; preds = %41860, %41849
  %41863 = phi i32 [ %41850, %41849 ], [ %41861, %41860 ]
  %41864 = icmp ne i32 %41863, 0
  br label %41865

41865:                                            ; preds = %41862, %41834
  %41866 = phi i1 [ true, %41834 ], [ %41864, %41862 ]
  %41867 = zext i1 %41866 to i32
  %41868 = icmp eq i32 0, %41867
  br i1 %41868, label %41869, label %41889

41869:                                            ; preds = %41865
  %41870 = load double, ptr %1215, align 8, !tbaa !11
  %41871 = fcmp ogt double 0.000000e+00, %41870
  br i1 %41871, label %41872, label %41889

41872:                                            ; preds = %41869
  %41873 = load double, ptr %1216, align 8, !tbaa !11
  %41874 = fcmp olt double 0.000000e+00, %41873
  br i1 %41874, label %41875, label %41889

41875:                                            ; preds = %41872
  %41876 = load double, ptr %1215, align 8, !tbaa !11
  %41877 = fneg double %41876
  %41878 = load double, ptr %1216, align 8, !tbaa !11
  %41879 = fcmp olt double %41877, %41878
  br i1 %41879, label %41880, label %41882

41880:                                            ; preds = %41875
  %41881 = load double, ptr %1216, align 8, !tbaa !11
  br label %41885

41882:                                            ; preds = %41875
  %41883 = load double, ptr %1215, align 8, !tbaa !11
  %41884 = fneg double %41883
  br label %41885

41885:                                            ; preds = %41882, %41880
  %41886 = phi double [ %41881, %41880 ], [ %41884, %41882 ]
  store double %41886, ptr %1216, align 8, !tbaa !11
  %41887 = load double, ptr %1216, align 8, !tbaa !11
  %41888 = fneg double %41887
  store double %41888, ptr %1215, align 8, !tbaa !11
  br label %41889

41889:                                            ; preds = %41885, %41872, %41869, %41865
  br label %41890

41890:                                            ; preds = %41889, %41829
  call void @llvm.lifetime.start.p0(i64 8, ptr %1221) #3
  %41891 = load double, ptr %1215, align 8, !tbaa !11
  %41892 = fcmp ole double 0.000000e+00, %41891
  %41893 = zext i1 %41892 to i64
  %41894 = select i1 %41892, double 0.000000e+00, double 0.000000e+00
  store double %41894, ptr %1221, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1222) #3
  %41895 = load double, ptr %1216, align 8, !tbaa !11
  %41896 = fcmp ole double 0.000000e+00, %41895
  %41897 = zext i1 %41896 to i64
  %41898 = select i1 %41896, double 6.553500e+04, double 0.000000e+00
  store double %41898, ptr %1222, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1223) #3
  %41899 = load i32, ptr %1214, align 4, !tbaa !9
  %41900 = sitofp i32 %41899 to double
  %41901 = load double, ptr %1215, align 8, !tbaa !11
  %41902 = fsub double %41900, %41901
  %41903 = load double, ptr %1222, align 8, !tbaa !11
  %41904 = load double, ptr %1221, align 8, !tbaa !11
  %41905 = fsub double %41903, %41904
  %41906 = fmul double %41902, %41905
  %41907 = load double, ptr %1216, align 8, !tbaa !11
  %41908 = load double, ptr %1215, align 8, !tbaa !11
  %41909 = fsub double %41907, %41908
  %41910 = fdiv double %41906, %41909
  %41911 = load double, ptr %1221, align 8, !tbaa !11
  %41912 = fadd double %41910, %41911
  store double %41912, ptr %1223, align 8, !tbaa !11
  %41913 = load double, ptr %1221, align 8, !tbaa !11
  %41914 = load double, ptr %1223, align 8, !tbaa !11
  %41915 = fcmp ole double 0.000000e+00, %41914
  br i1 %41915, label %41916, label %41919

41916:                                            ; preds = %41890
  %41917 = load double, ptr %1223, align 8, !tbaa !11
  %41918 = fadd double %41917, 5.000000e-01
  br label %41922

41919:                                            ; preds = %41890
  %41920 = load double, ptr %1223, align 8, !tbaa !11
  %41921 = fsub double %41920, 5.000000e-01
  br label %41922

41922:                                            ; preds = %41919, %41916
  %41923 = phi double [ %41918, %41916 ], [ %41921, %41919 ]
  %41924 = fcmp olt double %41913, %41923
  br i1 %41924, label %41925, label %41979

41925:                                            ; preds = %41922
  %41926 = load double, ptr %1223, align 8, !tbaa !11
  %41927 = fcmp ole double 0.000000e+00, %41926
  br i1 %41927, label %41928, label %41931

41928:                                            ; preds = %41925
  %41929 = load double, ptr %1223, align 8, !tbaa !11
  %41930 = fadd double %41929, 5.000000e-01
  br label %41934

41931:                                            ; preds = %41925
  %41932 = load double, ptr %1223, align 8, !tbaa !11
  %41933 = fsub double %41932, 5.000000e-01
  br label %41934

41934:                                            ; preds = %41931, %41928
  %41935 = phi double [ %41930, %41928 ], [ %41933, %41931 ]
  %41936 = load double, ptr %1222, align 8, !tbaa !11
  %41937 = fcmp ole double %41935, %41936
  br i1 %41937, label %41938, label %41949

41938:                                            ; preds = %41934
  %41939 = load double, ptr %1223, align 8, !tbaa !11
  %41940 = fcmp ole double 0.000000e+00, %41939
  br i1 %41940, label %41941, label %41944

41941:                                            ; preds = %41938
  %41942 = load double, ptr %1223, align 8, !tbaa !11
  %41943 = fadd double %41942, 5.000000e-01
  br label %41947

41944:                                            ; preds = %41938
  %41945 = load double, ptr %1223, align 8, !tbaa !11
  %41946 = fsub double %41945, 5.000000e-01
  br label %41947

41947:                                            ; preds = %41944, %41941
  %41948 = phi double [ %41943, %41941 ], [ %41946, %41944 ]
  br label %41977

41949:                                            ; preds = %41934
  %41950 = load double, ptr %1223, align 8, !tbaa !11
  %41951 = fcmp ole double 0.000000e+00, %41950
  br i1 %41951, label %41952, label %41955

41952:                                            ; preds = %41949
  %41953 = load double, ptr %1223, align 8, !tbaa !11
  %41954 = fadd double %41953, 5.000000e-01
  br label %41958

41955:                                            ; preds = %41949
  %41956 = load double, ptr %1223, align 8, !tbaa !11
  %41957 = fsub double %41956, 5.000000e-01
  br label %41958

41958:                                            ; preds = %41955, %41952
  %41959 = phi double [ %41954, %41952 ], [ %41957, %41955 ]
  %41960 = load double, ptr %1222, align 8, !tbaa !11
  %41961 = fcmp olt double %41959, %41960
  br i1 %41961, label %41962, label %41973

41962:                                            ; preds = %41958
  %41963 = load double, ptr %1223, align 8, !tbaa !11
  %41964 = fcmp ole double 0.000000e+00, %41963
  br i1 %41964, label %41965, label %41968

41965:                                            ; preds = %41962
  %41966 = load double, ptr %1223, align 8, !tbaa !11
  %41967 = fadd double %41966, 5.000000e-01
  br label %41971

41968:                                            ; preds = %41962
  %41969 = load double, ptr %1223, align 8, !tbaa !11
  %41970 = fsub double %41969, 5.000000e-01
  br label %41971

41971:                                            ; preds = %41968, %41965
  %41972 = phi double [ %41967, %41965 ], [ %41970, %41968 ]
  br label %41975

41973:                                            ; preds = %41958
  %41974 = load double, ptr %1222, align 8, !tbaa !11
  br label %41975

41975:                                            ; preds = %41973, %41971
  %41976 = phi double [ %41972, %41971 ], [ %41974, %41973 ]
  br label %41977

41977:                                            ; preds = %41975, %41947
  %41978 = phi double [ %41948, %41947 ], [ %41976, %41975 ]
  br label %42007

41979:                                            ; preds = %41922
  %41980 = load double, ptr %1221, align 8, !tbaa !11
  %41981 = load double, ptr %1223, align 8, !tbaa !11
  %41982 = fcmp ole double 0.000000e+00, %41981
  br i1 %41982, label %41983, label %41986

41983:                                            ; preds = %41979
  %41984 = load double, ptr %1223, align 8, !tbaa !11
  %41985 = fadd double %41984, 5.000000e-01
  br label %41989

41986:                                            ; preds = %41979
  %41987 = load double, ptr %1223, align 8, !tbaa !11
  %41988 = fsub double %41987, 5.000000e-01
  br label %41989

41989:                                            ; preds = %41986, %41983
  %41990 = phi double [ %41985, %41983 ], [ %41988, %41986 ]
  %41991 = fcmp olt double %41980, %41990
  br i1 %41991, label %41992, label %42003

41992:                                            ; preds = %41989
  %41993 = load double, ptr %1223, align 8, !tbaa !11
  %41994 = fcmp ole double 0.000000e+00, %41993
  br i1 %41994, label %41995, label %41998

41995:                                            ; preds = %41992
  %41996 = load double, ptr %1223, align 8, !tbaa !11
  %41997 = fadd double %41996, 5.000000e-01
  br label %42001

41998:                                            ; preds = %41992
  %41999 = load double, ptr %1223, align 8, !tbaa !11
  %42000 = fsub double %41999, 5.000000e-01
  br label %42001

42001:                                            ; preds = %41998, %41995
  %42002 = phi double [ %41997, %41995 ], [ %42000, %41998 ]
  br label %42005

42003:                                            ; preds = %41989
  %42004 = load double, ptr %1221, align 8, !tbaa !11
  br label %42005

42005:                                            ; preds = %42003, %42001
  %42006 = phi double [ %42002, %42001 ], [ %42004, %42003 ]
  br label %42007

42007:                                            ; preds = %42005, %41977
  %42008 = phi double [ %41978, %41977 ], [ %42006, %42005 ]
  %42009 = fptoui double %42008 to i16
  %42010 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %42009, ptr %42010, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %1223) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1222) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1221) #3
  br label %42088

42011:                                            ; preds = %41775, %41772
  %42012 = load i32, ptr %8, align 4, !tbaa !9
  %42013 = icmp ugt i32 6, %42012
  br i1 %42013, label %42042, label %42014

42014:                                            ; preds = %42011
  %42015 = load i32, ptr %8, align 4, !tbaa !9
  %42016 = icmp ugt i32 15, %42015
  br i1 %42016, label %42017, label %42028

42017:                                            ; preds = %42014
  %42018 = load i32, ptr %9, align 4, !tbaa !9
  %42019 = icmp ugt i32 15, %42018
  br i1 %42019, label %42020, label %42025

42020:                                            ; preds = %42017
  %42021 = load i32, ptr %9, align 4, !tbaa !9
  %42022 = load i32, ptr %8, align 4, !tbaa !9
  %42023 = icmp ugt i32 %42021, %42022
  %42024 = zext i1 %42023 to i32
  br label %42026

42025:                                            ; preds = %42017
  br label %42026

42026:                                            ; preds = %42025, %42020
  %42027 = phi i32 [ %42024, %42020 ], [ 0, %42025 ]
  br label %42039

42028:                                            ; preds = %42014
  %42029 = load i32, ptr %9, align 4, !tbaa !9
  %42030 = icmp ugt i32 15, %42029
  br i1 %42030, label %42031, label %42032

42031:                                            ; preds = %42028
  br label %42037

42032:                                            ; preds = %42028
  %42033 = load i32, ptr %9, align 4, !tbaa !9
  %42034 = load i32, ptr %8, align 4, !tbaa !9
  %42035 = icmp ugt i32 %42033, %42034
  %42036 = zext i1 %42035 to i32
  br label %42037

42037:                                            ; preds = %42032, %42031
  %42038 = phi i32 [ 0, %42031 ], [ %42036, %42032 ]
  br label %42039

42039:                                            ; preds = %42037, %42026
  %42040 = phi i32 [ %42027, %42026 ], [ %42038, %42037 ]
  %42041 = icmp ne i32 %42040, 0
  br label %42042

42042:                                            ; preds = %42039, %42011
  %42043 = phi i1 [ true, %42011 ], [ %42041, %42039 ]
  %42044 = zext i1 %42043 to i32
  %42045 = icmp eq i32 0, %42044
  br i1 %42045, label %42046, label %42083

42046:                                            ; preds = %42042
  %42047 = load i32, ptr %1214, align 4, !tbaa !9
  %42048 = sitofp i32 %42047 to double
  %42049 = fcmp olt double 0.000000e+00, %42048
  br i1 %42049, label %42050, label %42069

42050:                                            ; preds = %42046
  %42051 = load i32, ptr %1214, align 4, !tbaa !9
  %42052 = sitofp i32 %42051 to double
  %42053 = fcmp ole double %42052, 6.553500e+04
  br i1 %42053, label %42054, label %42057

42054:                                            ; preds = %42050
  %42055 = load i32, ptr %1214, align 4, !tbaa !9
  %42056 = sitofp i32 %42055 to double
  br label %42067

42057:                                            ; preds = %42050
  %42058 = load i32, ptr %1214, align 4, !tbaa !9
  %42059 = sitofp i32 %42058 to double
  %42060 = fcmp olt double %42059, 6.553500e+04
  br i1 %42060, label %42061, label %42064

42061:                                            ; preds = %42057
  %42062 = load i32, ptr %1214, align 4, !tbaa !9
  %42063 = sitofp i32 %42062 to double
  br label %42065

42064:                                            ; preds = %42057
  br label %42065

42065:                                            ; preds = %42064, %42061
  %42066 = phi double [ %42063, %42061 ], [ 6.553500e+04, %42064 ]
  br label %42067

42067:                                            ; preds = %42065, %42054
  %42068 = phi double [ %42056, %42054 ], [ %42066, %42065 ]
  br label %42079

42069:                                            ; preds = %42046
  %42070 = load i32, ptr %1214, align 4, !tbaa !9
  %42071 = sitofp i32 %42070 to double
  %42072 = fcmp olt double 0.000000e+00, %42071
  br i1 %42072, label %42073, label %42076

42073:                                            ; preds = %42069
  %42074 = load i32, ptr %1214, align 4, !tbaa !9
  %42075 = sitofp i32 %42074 to double
  br label %42077

42076:                                            ; preds = %42069
  br label %42077

42077:                                            ; preds = %42076, %42073
  %42078 = phi double [ %42075, %42073 ], [ 0.000000e+00, %42076 ]
  br label %42079

42079:                                            ; preds = %42077, %42067
  %42080 = phi double [ %42068, %42067 ], [ %42078, %42077 ]
  %42081 = fptoui double %42080 to i16
  %42082 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %42081, ptr %42082, align 2, !tbaa !15
  br label %42087

42083:                                            ; preds = %42042
  %42084 = load i32, ptr %1214, align 4, !tbaa !9
  %42085 = trunc i32 %42084 to i16
  %42086 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %42085, ptr %42086, align 2, !tbaa !15
  br label %42087

42087:                                            ; preds = %42083, %42079
  br label %42088

42088:                                            ; preds = %42087, %42007
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1216) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1215) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %1214) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1213) #3
  br label %42089

42089:                                            ; preds = %42088
  br label %42090

42090:                                            ; preds = %42089
  br label %45018

42091:                                            ; preds = %41395
  br label %42092

42092:                                            ; preds = %42091
  call void @llvm.lifetime.start.p0(i64 8, ptr %1224) #3
  store double 5.000000e-01, ptr %1224, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %1225) #3
  %42093 = load ptr, ptr %10, align 8, !tbaa !5
  %42094 = load i16, ptr %42093, align 2, !tbaa !15
  store i16 %42094, ptr %1225, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %1226) #3
  store double 0.000000e+00, ptr %1226, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1227) #3
  store double 0.000000e+00, ptr %1227, align 8, !tbaa !11
  %42095 = load ptr, ptr %11, align 8, !tbaa !5
  %42096 = icmp ne ptr null, %42095
  br i1 %42096, label %42097, label %42123

42097:                                            ; preds = %42092
  %42098 = load ptr, ptr %12, align 8, !tbaa !5
  %42099 = icmp ne ptr null, %42098
  br i1 %42099, label %42100, label %42115

42100:                                            ; preds = %42097
  %42101 = load ptr, ptr %11, align 8, !tbaa !5
  %42102 = load i16, ptr %42101, align 2, !tbaa !15
  %42103 = sext i16 %42102 to i32
  %42104 = load i16, ptr %1225, align 2, !tbaa !15
  %42105 = sext i16 %42104 to i32
  %42106 = icmp sle i32 %42103, %42105
  br i1 %42106, label %42107, label %42115

42107:                                            ; preds = %42100
  %42108 = load i16, ptr %1225, align 2, !tbaa !15
  %42109 = sext i16 %42108 to i32
  %42110 = load ptr, ptr %12, align 8, !tbaa !5
  %42111 = load i16, ptr %42110, align 2, !tbaa !15
  %42112 = sext i16 %42111 to i32
  %42113 = icmp sle i32 %42109, %42112
  br i1 %42113, label %42114, label %42115

42114:                                            ; preds = %42107
  br label %42116

42115:                                            ; preds = %42107, %42100, %42097
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.24, i32 noundef 500, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

42116:                                            ; preds = %42114
  %42117 = load ptr, ptr %11, align 8, !tbaa !5
  %42118 = load i16, ptr %42117, align 2, !tbaa !15
  %42119 = sitofp i16 %42118 to double
  store double %42119, ptr %1226, align 8, !tbaa !11
  %42120 = load ptr, ptr %12, align 8, !tbaa !5
  %42121 = load i16, ptr %42120, align 2, !tbaa !15
  %42122 = sitofp i16 %42121 to double
  store double %42122, ptr %1227, align 8, !tbaa !11
  br label %42123

42123:                                            ; preds = %42116, %42092
  %42124 = load i32, ptr %8, align 4, !tbaa !9
  %42125 = icmp ule i32 6, %42124
  br i1 %42125, label %42126, label %42364

42126:                                            ; preds = %42123
  %42127 = load double, ptr %1226, align 8, !tbaa !11
  %42128 = load double, ptr %1227, align 8, !tbaa !11
  %42129 = fcmp olt double %42127, %42128
  br i1 %42129, label %42130, label %42364

42130:                                            ; preds = %42126
  %42131 = load i32, ptr %8, align 4, !tbaa !9
  %42132 = icmp ule i32 15, %42131
  br i1 %42132, label %42133, label %42187

42133:                                            ; preds = %42130
  call void @llvm.lifetime.start.p0(i64 8, ptr %1228) #3
  %42134 = load double, ptr %1226, align 8, !tbaa !11
  %42135 = fcmp olt double 0.000000e+00, %42134
  br i1 %42135, label %42136, label %42138

42136:                                            ; preds = %42133
  %42137 = load double, ptr %1226, align 8, !tbaa !11
  br label %42139

42138:                                            ; preds = %42133
  br label %42139

42139:                                            ; preds = %42138, %42136
  %42140 = phi double [ %42137, %42136 ], [ 0.000000e+00, %42138 ]
  store double %42140, ptr %1228, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1229) #3
  %42141 = load double, ptr %1227, align 8, !tbaa !11
  %42142 = fcmp olt double 0.000000e+00, %42141
  br i1 %42142, label %42143, label %42145

42143:                                            ; preds = %42139
  %42144 = load double, ptr %1227, align 8, !tbaa !11
  br label %42146

42145:                                            ; preds = %42139
  br label %42146

42146:                                            ; preds = %42145, %42143
  %42147 = phi double [ %42144, %42143 ], [ 0.000000e+00, %42145 ]
  store double %42147, ptr %1229, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1230) #3
  %42148 = load double, ptr %1228, align 8, !tbaa !11
  %42149 = load double, ptr %1229, align 8, !tbaa !11
  %42150 = fcmp olt double %42148, %42149
  br i1 %42150, label %42151, label %42159

42151:                                            ; preds = %42146
  %42152 = load double, ptr %1227, align 8, !tbaa !11
  %42153 = load double, ptr %1226, align 8, !tbaa !11
  %42154 = fsub double %42152, %42153
  %42155 = load double, ptr %1229, align 8, !tbaa !11
  %42156 = load double, ptr %1228, align 8, !tbaa !11
  %42157 = fsub double %42155, %42156
  %42158 = fdiv double %42154, %42157
  br label %42160

42159:                                            ; preds = %42146
  br label %42160

42160:                                            ; preds = %42159, %42151
  %42161 = phi double [ %42158, %42151 ], [ 1.000000e+00, %42159 ]
  store double %42161, ptr %1230, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1231) #3
  %42162 = load double, ptr %1230, align 8, !tbaa !11
  %42163 = load i16, ptr %1225, align 2, !tbaa !15
  %42164 = sext i16 %42163 to i32
  %42165 = icmp slt i32 0, %42164
  br i1 %42165, label %42166, label %42169

42166:                                            ; preds = %42160
  %42167 = load i16, ptr %1225, align 2, !tbaa !15
  %42168 = sext i16 %42167 to i32
  br label %42170

42169:                                            ; preds = %42160
  br label %42170

42170:                                            ; preds = %42169, %42166
  %42171 = phi i32 [ %42168, %42166 ], [ 0, %42169 ]
  %42172 = sitofp i32 %42171 to double
  %42173 = fmul double %42162, %42172
  store double %42173, ptr %1231, align 8, !tbaa !11
  %42174 = load double, ptr %1231, align 8, !tbaa !11
  %42175 = fcmp ole double 0.000000e+00, %42174
  br i1 %42175, label %42176, label %42179

42176:                                            ; preds = %42170
  %42177 = load double, ptr %1231, align 8, !tbaa !11
  %42178 = fadd double %42177, 5.000000e-01
  br label %42182

42179:                                            ; preds = %42170
  %42180 = load double, ptr %1231, align 8, !tbaa !11
  %42181 = fsub double %42180, 5.000000e-01
  br label %42182

42182:                                            ; preds = %42179, %42176
  %42183 = phi double [ %42178, %42176 ], [ %42181, %42179 ]
  %42184 = fptosi double %42183 to i16
  store i16 %42184, ptr %1225, align 2, !tbaa !15
  %42185 = load double, ptr %1228, align 8, !tbaa !11
  store double %42185, ptr %1226, align 8, !tbaa !11
  %42186 = load double, ptr %1229, align 8, !tbaa !11
  store double %42186, ptr %1227, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1231) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1230) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1229) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1228) #3
  br label %42243

42187:                                            ; preds = %42130
  %42188 = load i32, ptr %8, align 4, !tbaa !9
  %42189 = icmp ugt i32 6, %42188
  br i1 %42189, label %42218, label %42190

42190:                                            ; preds = %42187
  %42191 = load i32, ptr %8, align 4, !tbaa !9
  %42192 = icmp ugt i32 15, %42191
  br i1 %42192, label %42193, label %42204

42193:                                            ; preds = %42190
  %42194 = load i32, ptr %9, align 4, !tbaa !9
  %42195 = icmp ugt i32 15, %42194
  br i1 %42195, label %42196, label %42201

42196:                                            ; preds = %42193
  %42197 = load i32, ptr %9, align 4, !tbaa !9
  %42198 = load i32, ptr %8, align 4, !tbaa !9
  %42199 = icmp ugt i32 %42197, %42198
  %42200 = zext i1 %42199 to i32
  br label %42202

42201:                                            ; preds = %42193
  br label %42202

42202:                                            ; preds = %42201, %42196
  %42203 = phi i32 [ %42200, %42196 ], [ 0, %42201 ]
  br label %42215

42204:                                            ; preds = %42190
  %42205 = load i32, ptr %9, align 4, !tbaa !9
  %42206 = icmp ugt i32 15, %42205
  br i1 %42206, label %42207, label %42208

42207:                                            ; preds = %42204
  br label %42213

42208:                                            ; preds = %42204
  %42209 = load i32, ptr %9, align 4, !tbaa !9
  %42210 = load i32, ptr %8, align 4, !tbaa !9
  %42211 = icmp ugt i32 %42209, %42210
  %42212 = zext i1 %42211 to i32
  br label %42213

42213:                                            ; preds = %42208, %42207
  %42214 = phi i32 [ 0, %42207 ], [ %42212, %42208 ]
  br label %42215

42215:                                            ; preds = %42213, %42202
  %42216 = phi i32 [ %42203, %42202 ], [ %42214, %42213 ]
  %42217 = icmp ne i32 %42216, 0
  br label %42218

42218:                                            ; preds = %42215, %42187
  %42219 = phi i1 [ true, %42187 ], [ %42217, %42215 ]
  %42220 = zext i1 %42219 to i32
  %42221 = icmp eq i32 0, %42220
  br i1 %42221, label %42222, label %42242

42222:                                            ; preds = %42218
  %42223 = load double, ptr %1226, align 8, !tbaa !11
  %42224 = fcmp ogt double 0.000000e+00, %42223
  br i1 %42224, label %42225, label %42242

42225:                                            ; preds = %42222
  %42226 = load double, ptr %1227, align 8, !tbaa !11
  %42227 = fcmp olt double 0.000000e+00, %42226
  br i1 %42227, label %42228, label %42242

42228:                                            ; preds = %42225
  %42229 = load double, ptr %1226, align 8, !tbaa !11
  %42230 = fneg double %42229
  %42231 = load double, ptr %1227, align 8, !tbaa !11
  %42232 = fcmp olt double %42230, %42231
  br i1 %42232, label %42233, label %42235

42233:                                            ; preds = %42228
  %42234 = load double, ptr %1227, align 8, !tbaa !11
  br label %42238

42235:                                            ; preds = %42228
  %42236 = load double, ptr %1226, align 8, !tbaa !11
  %42237 = fneg double %42236
  br label %42238

42238:                                            ; preds = %42235, %42233
  %42239 = phi double [ %42234, %42233 ], [ %42237, %42235 ]
  store double %42239, ptr %1227, align 8, !tbaa !11
  %42240 = load double, ptr %1227, align 8, !tbaa !11
  %42241 = fneg double %42240
  store double %42241, ptr %1226, align 8, !tbaa !11
  br label %42242

42242:                                            ; preds = %42238, %42225, %42222, %42218
  br label %42243

42243:                                            ; preds = %42242, %42182
  call void @llvm.lifetime.start.p0(i64 8, ptr %1232) #3
  %42244 = load double, ptr %1226, align 8, !tbaa !11
  %42245 = fcmp ole double 0.000000e+00, %42244
  %42246 = zext i1 %42245 to i64
  %42247 = select i1 %42245, double 0.000000e+00, double 0.000000e+00
  store double %42247, ptr %1232, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1233) #3
  %42248 = load double, ptr %1227, align 8, !tbaa !11
  %42249 = fcmp ole double 0.000000e+00, %42248
  %42250 = zext i1 %42249 to i64
  %42251 = select i1 %42249, double 6.553500e+04, double 0.000000e+00
  store double %42251, ptr %1233, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1234) #3
  %42252 = load i16, ptr %1225, align 2, !tbaa !15
  %42253 = sitofp i16 %42252 to double
  %42254 = load double, ptr %1226, align 8, !tbaa !11
  %42255 = fsub double %42253, %42254
  %42256 = load double, ptr %1233, align 8, !tbaa !11
  %42257 = load double, ptr %1232, align 8, !tbaa !11
  %42258 = fsub double %42256, %42257
  %42259 = fmul double %42255, %42258
  %42260 = load double, ptr %1227, align 8, !tbaa !11
  %42261 = load double, ptr %1226, align 8, !tbaa !11
  %42262 = fsub double %42260, %42261
  %42263 = fdiv double %42259, %42262
  %42264 = load double, ptr %1232, align 8, !tbaa !11
  %42265 = fadd double %42263, %42264
  store double %42265, ptr %1234, align 8, !tbaa !11
  %42266 = load double, ptr %1232, align 8, !tbaa !11
  %42267 = load double, ptr %1234, align 8, !tbaa !11
  %42268 = fcmp ole double 0.000000e+00, %42267
  br i1 %42268, label %42269, label %42272

42269:                                            ; preds = %42243
  %42270 = load double, ptr %1234, align 8, !tbaa !11
  %42271 = fadd double %42270, 5.000000e-01
  br label %42275

42272:                                            ; preds = %42243
  %42273 = load double, ptr %1234, align 8, !tbaa !11
  %42274 = fsub double %42273, 5.000000e-01
  br label %42275

42275:                                            ; preds = %42272, %42269
  %42276 = phi double [ %42271, %42269 ], [ %42274, %42272 ]
  %42277 = fcmp olt double %42266, %42276
  br i1 %42277, label %42278, label %42332

42278:                                            ; preds = %42275
  %42279 = load double, ptr %1234, align 8, !tbaa !11
  %42280 = fcmp ole double 0.000000e+00, %42279
  br i1 %42280, label %42281, label %42284

42281:                                            ; preds = %42278
  %42282 = load double, ptr %1234, align 8, !tbaa !11
  %42283 = fadd double %42282, 5.000000e-01
  br label %42287

42284:                                            ; preds = %42278
  %42285 = load double, ptr %1234, align 8, !tbaa !11
  %42286 = fsub double %42285, 5.000000e-01
  br label %42287

42287:                                            ; preds = %42284, %42281
  %42288 = phi double [ %42283, %42281 ], [ %42286, %42284 ]
  %42289 = load double, ptr %1233, align 8, !tbaa !11
  %42290 = fcmp ole double %42288, %42289
  br i1 %42290, label %42291, label %42302

42291:                                            ; preds = %42287
  %42292 = load double, ptr %1234, align 8, !tbaa !11
  %42293 = fcmp ole double 0.000000e+00, %42292
  br i1 %42293, label %42294, label %42297

42294:                                            ; preds = %42291
  %42295 = load double, ptr %1234, align 8, !tbaa !11
  %42296 = fadd double %42295, 5.000000e-01
  br label %42300

42297:                                            ; preds = %42291
  %42298 = load double, ptr %1234, align 8, !tbaa !11
  %42299 = fsub double %42298, 5.000000e-01
  br label %42300

42300:                                            ; preds = %42297, %42294
  %42301 = phi double [ %42296, %42294 ], [ %42299, %42297 ]
  br label %42330

42302:                                            ; preds = %42287
  %42303 = load double, ptr %1234, align 8, !tbaa !11
  %42304 = fcmp ole double 0.000000e+00, %42303
  br i1 %42304, label %42305, label %42308

42305:                                            ; preds = %42302
  %42306 = load double, ptr %1234, align 8, !tbaa !11
  %42307 = fadd double %42306, 5.000000e-01
  br label %42311

42308:                                            ; preds = %42302
  %42309 = load double, ptr %1234, align 8, !tbaa !11
  %42310 = fsub double %42309, 5.000000e-01
  br label %42311

42311:                                            ; preds = %42308, %42305
  %42312 = phi double [ %42307, %42305 ], [ %42310, %42308 ]
  %42313 = load double, ptr %1233, align 8, !tbaa !11
  %42314 = fcmp olt double %42312, %42313
  br i1 %42314, label %42315, label %42326

42315:                                            ; preds = %42311
  %42316 = load double, ptr %1234, align 8, !tbaa !11
  %42317 = fcmp ole double 0.000000e+00, %42316
  br i1 %42317, label %42318, label %42321

42318:                                            ; preds = %42315
  %42319 = load double, ptr %1234, align 8, !tbaa !11
  %42320 = fadd double %42319, 5.000000e-01
  br label %42324

42321:                                            ; preds = %42315
  %42322 = load double, ptr %1234, align 8, !tbaa !11
  %42323 = fsub double %42322, 5.000000e-01
  br label %42324

42324:                                            ; preds = %42321, %42318
  %42325 = phi double [ %42320, %42318 ], [ %42323, %42321 ]
  br label %42328

42326:                                            ; preds = %42311
  %42327 = load double, ptr %1233, align 8, !tbaa !11
  br label %42328

42328:                                            ; preds = %42326, %42324
  %42329 = phi double [ %42325, %42324 ], [ %42327, %42326 ]
  br label %42330

42330:                                            ; preds = %42328, %42300
  %42331 = phi double [ %42301, %42300 ], [ %42329, %42328 ]
  br label %42360

42332:                                            ; preds = %42275
  %42333 = load double, ptr %1232, align 8, !tbaa !11
  %42334 = load double, ptr %1234, align 8, !tbaa !11
  %42335 = fcmp ole double 0.000000e+00, %42334
  br i1 %42335, label %42336, label %42339

42336:                                            ; preds = %42332
  %42337 = load double, ptr %1234, align 8, !tbaa !11
  %42338 = fadd double %42337, 5.000000e-01
  br label %42342

42339:                                            ; preds = %42332
  %42340 = load double, ptr %1234, align 8, !tbaa !11
  %42341 = fsub double %42340, 5.000000e-01
  br label %42342

42342:                                            ; preds = %42339, %42336
  %42343 = phi double [ %42338, %42336 ], [ %42341, %42339 ]
  %42344 = fcmp olt double %42333, %42343
  br i1 %42344, label %42345, label %42356

42345:                                            ; preds = %42342
  %42346 = load double, ptr %1234, align 8, !tbaa !11
  %42347 = fcmp ole double 0.000000e+00, %42346
  br i1 %42347, label %42348, label %42351

42348:                                            ; preds = %42345
  %42349 = load double, ptr %1234, align 8, !tbaa !11
  %42350 = fadd double %42349, 5.000000e-01
  br label %42354

42351:                                            ; preds = %42345
  %42352 = load double, ptr %1234, align 8, !tbaa !11
  %42353 = fsub double %42352, 5.000000e-01
  br label %42354

42354:                                            ; preds = %42351, %42348
  %42355 = phi double [ %42350, %42348 ], [ %42353, %42351 ]
  br label %42358

42356:                                            ; preds = %42342
  %42357 = load double, ptr %1232, align 8, !tbaa !11
  br label %42358

42358:                                            ; preds = %42356, %42354
  %42359 = phi double [ %42355, %42354 ], [ %42357, %42356 ]
  br label %42360

42360:                                            ; preds = %42358, %42330
  %42361 = phi double [ %42331, %42330 ], [ %42359, %42358 ]
  %42362 = fptoui double %42361 to i16
  %42363 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %42362, ptr %42363, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %1234) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1233) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1232) #3
  br label %42447

42364:                                            ; preds = %42126, %42123
  %42365 = load i32, ptr %8, align 4, !tbaa !9
  %42366 = icmp ugt i32 6, %42365
  br i1 %42366, label %42395, label %42367

42367:                                            ; preds = %42364
  %42368 = load i32, ptr %8, align 4, !tbaa !9
  %42369 = icmp ugt i32 15, %42368
  br i1 %42369, label %42370, label %42381

42370:                                            ; preds = %42367
  %42371 = load i32, ptr %9, align 4, !tbaa !9
  %42372 = icmp ugt i32 15, %42371
  br i1 %42372, label %42373, label %42378

42373:                                            ; preds = %42370
  %42374 = load i32, ptr %9, align 4, !tbaa !9
  %42375 = load i32, ptr %8, align 4, !tbaa !9
  %42376 = icmp ugt i32 %42374, %42375
  %42377 = zext i1 %42376 to i32
  br label %42379

42378:                                            ; preds = %42370
  br label %42379

42379:                                            ; preds = %42378, %42373
  %42380 = phi i32 [ %42377, %42373 ], [ 0, %42378 ]
  br label %42392

42381:                                            ; preds = %42367
  %42382 = load i32, ptr %9, align 4, !tbaa !9
  %42383 = icmp ugt i32 15, %42382
  br i1 %42383, label %42384, label %42385

42384:                                            ; preds = %42381
  br label %42390

42385:                                            ; preds = %42381
  %42386 = load i32, ptr %9, align 4, !tbaa !9
  %42387 = load i32, ptr %8, align 4, !tbaa !9
  %42388 = icmp ugt i32 %42386, %42387
  %42389 = zext i1 %42388 to i32
  br label %42390

42390:                                            ; preds = %42385, %42384
  %42391 = phi i32 [ 0, %42384 ], [ %42389, %42385 ]
  br label %42392

42392:                                            ; preds = %42390, %42379
  %42393 = phi i32 [ %42380, %42379 ], [ %42391, %42390 ]
  %42394 = icmp ne i32 %42393, 0
  br label %42395

42395:                                            ; preds = %42392, %42364
  %42396 = phi i1 [ true, %42364 ], [ %42394, %42392 ]
  %42397 = zext i1 %42396 to i32
  %42398 = icmp eq i32 0, %42397
  br i1 %42398, label %42399, label %42443

42399:                                            ; preds = %42395
  %42400 = load i16, ptr %1225, align 2, !tbaa !15
  %42401 = sext i16 %42400 to i32
  %42402 = sitofp i32 %42401 to double
  %42403 = fcmp olt double 0.000000e+00, %42402
  br i1 %42403, label %42404, label %42427

42404:                                            ; preds = %42399
  %42405 = load i16, ptr %1225, align 2, !tbaa !15
  %42406 = sext i16 %42405 to i32
  %42407 = sitofp i32 %42406 to double
  %42408 = fcmp ole double %42407, 6.553500e+04
  br i1 %42408, label %42409, label %42413

42409:                                            ; preds = %42404
  %42410 = load i16, ptr %1225, align 2, !tbaa !15
  %42411 = sext i16 %42410 to i32
  %42412 = sitofp i32 %42411 to double
  br label %42425

42413:                                            ; preds = %42404
  %42414 = load i16, ptr %1225, align 2, !tbaa !15
  %42415 = sext i16 %42414 to i32
  %42416 = sitofp i32 %42415 to double
  %42417 = fcmp olt double %42416, 6.553500e+04
  br i1 %42417, label %42418, label %42422

42418:                                            ; preds = %42413
  %42419 = load i16, ptr %1225, align 2, !tbaa !15
  %42420 = sext i16 %42419 to i32
  %42421 = sitofp i32 %42420 to double
  br label %42423

42422:                                            ; preds = %42413
  br label %42423

42423:                                            ; preds = %42422, %42418
  %42424 = phi double [ %42421, %42418 ], [ 6.553500e+04, %42422 ]
  br label %42425

42425:                                            ; preds = %42423, %42409
  %42426 = phi double [ %42412, %42409 ], [ %42424, %42423 ]
  br label %42439

42427:                                            ; preds = %42399
  %42428 = load i16, ptr %1225, align 2, !tbaa !15
  %42429 = sext i16 %42428 to i32
  %42430 = sitofp i32 %42429 to double
  %42431 = fcmp olt double 0.000000e+00, %42430
  br i1 %42431, label %42432, label %42436

42432:                                            ; preds = %42427
  %42433 = load i16, ptr %1225, align 2, !tbaa !15
  %42434 = sext i16 %42433 to i32
  %42435 = sitofp i32 %42434 to double
  br label %42437

42436:                                            ; preds = %42427
  br label %42437

42437:                                            ; preds = %42436, %42432
  %42438 = phi double [ %42435, %42432 ], [ 0.000000e+00, %42436 ]
  br label %42439

42439:                                            ; preds = %42437, %42425
  %42440 = phi double [ %42426, %42425 ], [ %42438, %42437 ]
  %42441 = fptoui double %42440 to i16
  %42442 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %42441, ptr %42442, align 2, !tbaa !15
  br label %42446

42443:                                            ; preds = %42395
  %42444 = load i16, ptr %1225, align 2, !tbaa !15
  %42445 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %42444, ptr %42445, align 2, !tbaa !15
  br label %42446

42446:                                            ; preds = %42443, %42439
  br label %42447

42447:                                            ; preds = %42446, %42360
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1227) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1226) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %1225) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1224) #3
  br label %42448

42448:                                            ; preds = %42447
  br label %42449

42449:                                            ; preds = %42448
  br label %45018

42450:                                            ; preds = %41395
  br label %42451

42451:                                            ; preds = %42450
  call void @llvm.lifetime.start.p0(i64 8, ptr %1235) #3
  store double 5.000000e-01, ptr %1235, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %1236) #3
  %42452 = load ptr, ptr %10, align 8, !tbaa !5
  %42453 = load i8, ptr %42452, align 1, !tbaa !17
  store i8 %42453, ptr %1236, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %1237) #3
  store double 0.000000e+00, ptr %1237, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1238) #3
  store double 0.000000e+00, ptr %1238, align 8, !tbaa !11
  %42454 = load ptr, ptr %11, align 8, !tbaa !5
  %42455 = icmp ne ptr null, %42454
  br i1 %42455, label %42456, label %42482

42456:                                            ; preds = %42451
  %42457 = load ptr, ptr %12, align 8, !tbaa !5
  %42458 = icmp ne ptr null, %42457
  br i1 %42458, label %42459, label %42474

42459:                                            ; preds = %42456
  %42460 = load ptr, ptr %11, align 8, !tbaa !5
  %42461 = load i8, ptr %42460, align 1, !tbaa !17
  %42462 = sext i8 %42461 to i32
  %42463 = load i8, ptr %1236, align 1, !tbaa !17
  %42464 = sext i8 %42463 to i32
  %42465 = icmp sle i32 %42462, %42464
  br i1 %42465, label %42466, label %42474

42466:                                            ; preds = %42459
  %42467 = load i8, ptr %1236, align 1, !tbaa !17
  %42468 = sext i8 %42467 to i32
  %42469 = load ptr, ptr %12, align 8, !tbaa !5
  %42470 = load i8, ptr %42469, align 1, !tbaa !17
  %42471 = sext i8 %42470 to i32
  %42472 = icmp sle i32 %42468, %42471
  br i1 %42472, label %42473, label %42474

42473:                                            ; preds = %42466
  br label %42475

42474:                                            ; preds = %42466, %42459, %42456
  call void @__assert_fail(ptr noundef @.str.45, ptr noundef @.str.24, i32 noundef 500, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

42475:                                            ; preds = %42473
  %42476 = load ptr, ptr %11, align 8, !tbaa !5
  %42477 = load i8, ptr %42476, align 1, !tbaa !17
  %42478 = sitofp i8 %42477 to double
  store double %42478, ptr %1237, align 8, !tbaa !11
  %42479 = load ptr, ptr %12, align 8, !tbaa !5
  %42480 = load i8, ptr %42479, align 1, !tbaa !17
  %42481 = sitofp i8 %42480 to double
  store double %42481, ptr %1238, align 8, !tbaa !11
  br label %42482

42482:                                            ; preds = %42475, %42451
  %42483 = load i32, ptr %8, align 4, !tbaa !9
  %42484 = icmp ule i32 6, %42483
  br i1 %42484, label %42485, label %42723

42485:                                            ; preds = %42482
  %42486 = load double, ptr %1237, align 8, !tbaa !11
  %42487 = load double, ptr %1238, align 8, !tbaa !11
  %42488 = fcmp olt double %42486, %42487
  br i1 %42488, label %42489, label %42723

42489:                                            ; preds = %42485
  %42490 = load i32, ptr %8, align 4, !tbaa !9
  %42491 = icmp ule i32 15, %42490
  br i1 %42491, label %42492, label %42546

42492:                                            ; preds = %42489
  call void @llvm.lifetime.start.p0(i64 8, ptr %1239) #3
  %42493 = load double, ptr %1237, align 8, !tbaa !11
  %42494 = fcmp olt double 0.000000e+00, %42493
  br i1 %42494, label %42495, label %42497

42495:                                            ; preds = %42492
  %42496 = load double, ptr %1237, align 8, !tbaa !11
  br label %42498

42497:                                            ; preds = %42492
  br label %42498

42498:                                            ; preds = %42497, %42495
  %42499 = phi double [ %42496, %42495 ], [ 0.000000e+00, %42497 ]
  store double %42499, ptr %1239, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1240) #3
  %42500 = load double, ptr %1238, align 8, !tbaa !11
  %42501 = fcmp olt double 0.000000e+00, %42500
  br i1 %42501, label %42502, label %42504

42502:                                            ; preds = %42498
  %42503 = load double, ptr %1238, align 8, !tbaa !11
  br label %42505

42504:                                            ; preds = %42498
  br label %42505

42505:                                            ; preds = %42504, %42502
  %42506 = phi double [ %42503, %42502 ], [ 0.000000e+00, %42504 ]
  store double %42506, ptr %1240, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1241) #3
  %42507 = load double, ptr %1239, align 8, !tbaa !11
  %42508 = load double, ptr %1240, align 8, !tbaa !11
  %42509 = fcmp olt double %42507, %42508
  br i1 %42509, label %42510, label %42518

42510:                                            ; preds = %42505
  %42511 = load double, ptr %1238, align 8, !tbaa !11
  %42512 = load double, ptr %1237, align 8, !tbaa !11
  %42513 = fsub double %42511, %42512
  %42514 = load double, ptr %1240, align 8, !tbaa !11
  %42515 = load double, ptr %1239, align 8, !tbaa !11
  %42516 = fsub double %42514, %42515
  %42517 = fdiv double %42513, %42516
  br label %42519

42518:                                            ; preds = %42505
  br label %42519

42519:                                            ; preds = %42518, %42510
  %42520 = phi double [ %42517, %42510 ], [ 1.000000e+00, %42518 ]
  store double %42520, ptr %1241, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1242) #3
  %42521 = load double, ptr %1241, align 8, !tbaa !11
  %42522 = load i8, ptr %1236, align 1, !tbaa !17
  %42523 = sext i8 %42522 to i32
  %42524 = icmp slt i32 0, %42523
  br i1 %42524, label %42525, label %42528

42525:                                            ; preds = %42519
  %42526 = load i8, ptr %1236, align 1, !tbaa !17
  %42527 = sext i8 %42526 to i32
  br label %42529

42528:                                            ; preds = %42519
  br label %42529

42529:                                            ; preds = %42528, %42525
  %42530 = phi i32 [ %42527, %42525 ], [ 0, %42528 ]
  %42531 = sitofp i32 %42530 to double
  %42532 = fmul double %42521, %42531
  store double %42532, ptr %1242, align 8, !tbaa !11
  %42533 = load double, ptr %1242, align 8, !tbaa !11
  %42534 = fcmp ole double 0.000000e+00, %42533
  br i1 %42534, label %42535, label %42538

42535:                                            ; preds = %42529
  %42536 = load double, ptr %1242, align 8, !tbaa !11
  %42537 = fadd double %42536, 5.000000e-01
  br label %42541

42538:                                            ; preds = %42529
  %42539 = load double, ptr %1242, align 8, !tbaa !11
  %42540 = fsub double %42539, 5.000000e-01
  br label %42541

42541:                                            ; preds = %42538, %42535
  %42542 = phi double [ %42537, %42535 ], [ %42540, %42538 ]
  %42543 = fptosi double %42542 to i8
  store i8 %42543, ptr %1236, align 1, !tbaa !17
  %42544 = load double, ptr %1239, align 8, !tbaa !11
  store double %42544, ptr %1237, align 8, !tbaa !11
  %42545 = load double, ptr %1240, align 8, !tbaa !11
  store double %42545, ptr %1238, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1242) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1241) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1240) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1239) #3
  br label %42602

42546:                                            ; preds = %42489
  %42547 = load i32, ptr %8, align 4, !tbaa !9
  %42548 = icmp ugt i32 6, %42547
  br i1 %42548, label %42577, label %42549

42549:                                            ; preds = %42546
  %42550 = load i32, ptr %8, align 4, !tbaa !9
  %42551 = icmp ugt i32 15, %42550
  br i1 %42551, label %42552, label %42563

42552:                                            ; preds = %42549
  %42553 = load i32, ptr %9, align 4, !tbaa !9
  %42554 = icmp ugt i32 15, %42553
  br i1 %42554, label %42555, label %42560

42555:                                            ; preds = %42552
  %42556 = load i32, ptr %9, align 4, !tbaa !9
  %42557 = load i32, ptr %8, align 4, !tbaa !9
  %42558 = icmp ugt i32 %42556, %42557
  %42559 = zext i1 %42558 to i32
  br label %42561

42560:                                            ; preds = %42552
  br label %42561

42561:                                            ; preds = %42560, %42555
  %42562 = phi i32 [ %42559, %42555 ], [ 0, %42560 ]
  br label %42574

42563:                                            ; preds = %42549
  %42564 = load i32, ptr %9, align 4, !tbaa !9
  %42565 = icmp ugt i32 15, %42564
  br i1 %42565, label %42566, label %42567

42566:                                            ; preds = %42563
  br label %42572

42567:                                            ; preds = %42563
  %42568 = load i32, ptr %9, align 4, !tbaa !9
  %42569 = load i32, ptr %8, align 4, !tbaa !9
  %42570 = icmp ugt i32 %42568, %42569
  %42571 = zext i1 %42570 to i32
  br label %42572

42572:                                            ; preds = %42567, %42566
  %42573 = phi i32 [ 0, %42566 ], [ %42571, %42567 ]
  br label %42574

42574:                                            ; preds = %42572, %42561
  %42575 = phi i32 [ %42562, %42561 ], [ %42573, %42572 ]
  %42576 = icmp ne i32 %42575, 0
  br label %42577

42577:                                            ; preds = %42574, %42546
  %42578 = phi i1 [ true, %42546 ], [ %42576, %42574 ]
  %42579 = zext i1 %42578 to i32
  %42580 = icmp eq i32 0, %42579
  br i1 %42580, label %42581, label %42601

42581:                                            ; preds = %42577
  %42582 = load double, ptr %1237, align 8, !tbaa !11
  %42583 = fcmp ogt double 0.000000e+00, %42582
  br i1 %42583, label %42584, label %42601

42584:                                            ; preds = %42581
  %42585 = load double, ptr %1238, align 8, !tbaa !11
  %42586 = fcmp olt double 0.000000e+00, %42585
  br i1 %42586, label %42587, label %42601

42587:                                            ; preds = %42584
  %42588 = load double, ptr %1237, align 8, !tbaa !11
  %42589 = fneg double %42588
  %42590 = load double, ptr %1238, align 8, !tbaa !11
  %42591 = fcmp olt double %42589, %42590
  br i1 %42591, label %42592, label %42594

42592:                                            ; preds = %42587
  %42593 = load double, ptr %1238, align 8, !tbaa !11
  br label %42597

42594:                                            ; preds = %42587
  %42595 = load double, ptr %1237, align 8, !tbaa !11
  %42596 = fneg double %42595
  br label %42597

42597:                                            ; preds = %42594, %42592
  %42598 = phi double [ %42593, %42592 ], [ %42596, %42594 ]
  store double %42598, ptr %1238, align 8, !tbaa !11
  %42599 = load double, ptr %1238, align 8, !tbaa !11
  %42600 = fneg double %42599
  store double %42600, ptr %1237, align 8, !tbaa !11
  br label %42601

42601:                                            ; preds = %42597, %42584, %42581, %42577
  br label %42602

42602:                                            ; preds = %42601, %42541
  call void @llvm.lifetime.start.p0(i64 8, ptr %1243) #3
  %42603 = load double, ptr %1237, align 8, !tbaa !11
  %42604 = fcmp ole double 0.000000e+00, %42603
  %42605 = zext i1 %42604 to i64
  %42606 = select i1 %42604, double 0.000000e+00, double 0.000000e+00
  store double %42606, ptr %1243, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1244) #3
  %42607 = load double, ptr %1238, align 8, !tbaa !11
  %42608 = fcmp ole double 0.000000e+00, %42607
  %42609 = zext i1 %42608 to i64
  %42610 = select i1 %42608, double 6.553500e+04, double 0.000000e+00
  store double %42610, ptr %1244, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1245) #3
  %42611 = load i8, ptr %1236, align 1, !tbaa !17
  %42612 = sitofp i8 %42611 to double
  %42613 = load double, ptr %1237, align 8, !tbaa !11
  %42614 = fsub double %42612, %42613
  %42615 = load double, ptr %1244, align 8, !tbaa !11
  %42616 = load double, ptr %1243, align 8, !tbaa !11
  %42617 = fsub double %42615, %42616
  %42618 = fmul double %42614, %42617
  %42619 = load double, ptr %1238, align 8, !tbaa !11
  %42620 = load double, ptr %1237, align 8, !tbaa !11
  %42621 = fsub double %42619, %42620
  %42622 = fdiv double %42618, %42621
  %42623 = load double, ptr %1243, align 8, !tbaa !11
  %42624 = fadd double %42622, %42623
  store double %42624, ptr %1245, align 8, !tbaa !11
  %42625 = load double, ptr %1243, align 8, !tbaa !11
  %42626 = load double, ptr %1245, align 8, !tbaa !11
  %42627 = fcmp ole double 0.000000e+00, %42626
  br i1 %42627, label %42628, label %42631

42628:                                            ; preds = %42602
  %42629 = load double, ptr %1245, align 8, !tbaa !11
  %42630 = fadd double %42629, 5.000000e-01
  br label %42634

42631:                                            ; preds = %42602
  %42632 = load double, ptr %1245, align 8, !tbaa !11
  %42633 = fsub double %42632, 5.000000e-01
  br label %42634

42634:                                            ; preds = %42631, %42628
  %42635 = phi double [ %42630, %42628 ], [ %42633, %42631 ]
  %42636 = fcmp olt double %42625, %42635
  br i1 %42636, label %42637, label %42691

42637:                                            ; preds = %42634
  %42638 = load double, ptr %1245, align 8, !tbaa !11
  %42639 = fcmp ole double 0.000000e+00, %42638
  br i1 %42639, label %42640, label %42643

42640:                                            ; preds = %42637
  %42641 = load double, ptr %1245, align 8, !tbaa !11
  %42642 = fadd double %42641, 5.000000e-01
  br label %42646

42643:                                            ; preds = %42637
  %42644 = load double, ptr %1245, align 8, !tbaa !11
  %42645 = fsub double %42644, 5.000000e-01
  br label %42646

42646:                                            ; preds = %42643, %42640
  %42647 = phi double [ %42642, %42640 ], [ %42645, %42643 ]
  %42648 = load double, ptr %1244, align 8, !tbaa !11
  %42649 = fcmp ole double %42647, %42648
  br i1 %42649, label %42650, label %42661

42650:                                            ; preds = %42646
  %42651 = load double, ptr %1245, align 8, !tbaa !11
  %42652 = fcmp ole double 0.000000e+00, %42651
  br i1 %42652, label %42653, label %42656

42653:                                            ; preds = %42650
  %42654 = load double, ptr %1245, align 8, !tbaa !11
  %42655 = fadd double %42654, 5.000000e-01
  br label %42659

42656:                                            ; preds = %42650
  %42657 = load double, ptr %1245, align 8, !tbaa !11
  %42658 = fsub double %42657, 5.000000e-01
  br label %42659

42659:                                            ; preds = %42656, %42653
  %42660 = phi double [ %42655, %42653 ], [ %42658, %42656 ]
  br label %42689

42661:                                            ; preds = %42646
  %42662 = load double, ptr %1245, align 8, !tbaa !11
  %42663 = fcmp ole double 0.000000e+00, %42662
  br i1 %42663, label %42664, label %42667

42664:                                            ; preds = %42661
  %42665 = load double, ptr %1245, align 8, !tbaa !11
  %42666 = fadd double %42665, 5.000000e-01
  br label %42670

42667:                                            ; preds = %42661
  %42668 = load double, ptr %1245, align 8, !tbaa !11
  %42669 = fsub double %42668, 5.000000e-01
  br label %42670

42670:                                            ; preds = %42667, %42664
  %42671 = phi double [ %42666, %42664 ], [ %42669, %42667 ]
  %42672 = load double, ptr %1244, align 8, !tbaa !11
  %42673 = fcmp olt double %42671, %42672
  br i1 %42673, label %42674, label %42685

42674:                                            ; preds = %42670
  %42675 = load double, ptr %1245, align 8, !tbaa !11
  %42676 = fcmp ole double 0.000000e+00, %42675
  br i1 %42676, label %42677, label %42680

42677:                                            ; preds = %42674
  %42678 = load double, ptr %1245, align 8, !tbaa !11
  %42679 = fadd double %42678, 5.000000e-01
  br label %42683

42680:                                            ; preds = %42674
  %42681 = load double, ptr %1245, align 8, !tbaa !11
  %42682 = fsub double %42681, 5.000000e-01
  br label %42683

42683:                                            ; preds = %42680, %42677
  %42684 = phi double [ %42679, %42677 ], [ %42682, %42680 ]
  br label %42687

42685:                                            ; preds = %42670
  %42686 = load double, ptr %1244, align 8, !tbaa !11
  br label %42687

42687:                                            ; preds = %42685, %42683
  %42688 = phi double [ %42684, %42683 ], [ %42686, %42685 ]
  br label %42689

42689:                                            ; preds = %42687, %42659
  %42690 = phi double [ %42660, %42659 ], [ %42688, %42687 ]
  br label %42719

42691:                                            ; preds = %42634
  %42692 = load double, ptr %1243, align 8, !tbaa !11
  %42693 = load double, ptr %1245, align 8, !tbaa !11
  %42694 = fcmp ole double 0.000000e+00, %42693
  br i1 %42694, label %42695, label %42698

42695:                                            ; preds = %42691
  %42696 = load double, ptr %1245, align 8, !tbaa !11
  %42697 = fadd double %42696, 5.000000e-01
  br label %42701

42698:                                            ; preds = %42691
  %42699 = load double, ptr %1245, align 8, !tbaa !11
  %42700 = fsub double %42699, 5.000000e-01
  br label %42701

42701:                                            ; preds = %42698, %42695
  %42702 = phi double [ %42697, %42695 ], [ %42700, %42698 ]
  %42703 = fcmp olt double %42692, %42702
  br i1 %42703, label %42704, label %42715

42704:                                            ; preds = %42701
  %42705 = load double, ptr %1245, align 8, !tbaa !11
  %42706 = fcmp ole double 0.000000e+00, %42705
  br i1 %42706, label %42707, label %42710

42707:                                            ; preds = %42704
  %42708 = load double, ptr %1245, align 8, !tbaa !11
  %42709 = fadd double %42708, 5.000000e-01
  br label %42713

42710:                                            ; preds = %42704
  %42711 = load double, ptr %1245, align 8, !tbaa !11
  %42712 = fsub double %42711, 5.000000e-01
  br label %42713

42713:                                            ; preds = %42710, %42707
  %42714 = phi double [ %42709, %42707 ], [ %42712, %42710 ]
  br label %42717

42715:                                            ; preds = %42701
  %42716 = load double, ptr %1243, align 8, !tbaa !11
  br label %42717

42717:                                            ; preds = %42715, %42713
  %42718 = phi double [ %42714, %42713 ], [ %42716, %42715 ]
  br label %42719

42719:                                            ; preds = %42717, %42689
  %42720 = phi double [ %42690, %42689 ], [ %42718, %42717 ]
  %42721 = fptoui double %42720 to i16
  %42722 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %42721, ptr %42722, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %1245) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1244) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1243) #3
  br label %42807

42723:                                            ; preds = %42485, %42482
  %42724 = load i32, ptr %8, align 4, !tbaa !9
  %42725 = icmp ugt i32 6, %42724
  br i1 %42725, label %42754, label %42726

42726:                                            ; preds = %42723
  %42727 = load i32, ptr %8, align 4, !tbaa !9
  %42728 = icmp ugt i32 15, %42727
  br i1 %42728, label %42729, label %42740

42729:                                            ; preds = %42726
  %42730 = load i32, ptr %9, align 4, !tbaa !9
  %42731 = icmp ugt i32 15, %42730
  br i1 %42731, label %42732, label %42737

42732:                                            ; preds = %42729
  %42733 = load i32, ptr %9, align 4, !tbaa !9
  %42734 = load i32, ptr %8, align 4, !tbaa !9
  %42735 = icmp ugt i32 %42733, %42734
  %42736 = zext i1 %42735 to i32
  br label %42738

42737:                                            ; preds = %42729
  br label %42738

42738:                                            ; preds = %42737, %42732
  %42739 = phi i32 [ %42736, %42732 ], [ 0, %42737 ]
  br label %42751

42740:                                            ; preds = %42726
  %42741 = load i32, ptr %9, align 4, !tbaa !9
  %42742 = icmp ugt i32 15, %42741
  br i1 %42742, label %42743, label %42744

42743:                                            ; preds = %42740
  br label %42749

42744:                                            ; preds = %42740
  %42745 = load i32, ptr %9, align 4, !tbaa !9
  %42746 = load i32, ptr %8, align 4, !tbaa !9
  %42747 = icmp ugt i32 %42745, %42746
  %42748 = zext i1 %42747 to i32
  br label %42749

42749:                                            ; preds = %42744, %42743
  %42750 = phi i32 [ 0, %42743 ], [ %42748, %42744 ]
  br label %42751

42751:                                            ; preds = %42749, %42738
  %42752 = phi i32 [ %42739, %42738 ], [ %42750, %42749 ]
  %42753 = icmp ne i32 %42752, 0
  br label %42754

42754:                                            ; preds = %42751, %42723
  %42755 = phi i1 [ true, %42723 ], [ %42753, %42751 ]
  %42756 = zext i1 %42755 to i32
  %42757 = icmp eq i32 0, %42756
  br i1 %42757, label %42758, label %42802

42758:                                            ; preds = %42754
  %42759 = load i8, ptr %1236, align 1, !tbaa !17
  %42760 = sext i8 %42759 to i32
  %42761 = sitofp i32 %42760 to double
  %42762 = fcmp olt double 0.000000e+00, %42761
  br i1 %42762, label %42763, label %42786

42763:                                            ; preds = %42758
  %42764 = load i8, ptr %1236, align 1, !tbaa !17
  %42765 = sext i8 %42764 to i32
  %42766 = sitofp i32 %42765 to double
  %42767 = fcmp ole double %42766, 6.553500e+04
  br i1 %42767, label %42768, label %42772

42768:                                            ; preds = %42763
  %42769 = load i8, ptr %1236, align 1, !tbaa !17
  %42770 = sext i8 %42769 to i32
  %42771 = sitofp i32 %42770 to double
  br label %42784

42772:                                            ; preds = %42763
  %42773 = load i8, ptr %1236, align 1, !tbaa !17
  %42774 = sext i8 %42773 to i32
  %42775 = sitofp i32 %42774 to double
  %42776 = fcmp olt double %42775, 6.553500e+04
  br i1 %42776, label %42777, label %42781

42777:                                            ; preds = %42772
  %42778 = load i8, ptr %1236, align 1, !tbaa !17
  %42779 = sext i8 %42778 to i32
  %42780 = sitofp i32 %42779 to double
  br label %42782

42781:                                            ; preds = %42772
  br label %42782

42782:                                            ; preds = %42781, %42777
  %42783 = phi double [ %42780, %42777 ], [ 6.553500e+04, %42781 ]
  br label %42784

42784:                                            ; preds = %42782, %42768
  %42785 = phi double [ %42771, %42768 ], [ %42783, %42782 ]
  br label %42798

42786:                                            ; preds = %42758
  %42787 = load i8, ptr %1236, align 1, !tbaa !17
  %42788 = sext i8 %42787 to i32
  %42789 = sitofp i32 %42788 to double
  %42790 = fcmp olt double 0.000000e+00, %42789
  br i1 %42790, label %42791, label %42795

42791:                                            ; preds = %42786
  %42792 = load i8, ptr %1236, align 1, !tbaa !17
  %42793 = sext i8 %42792 to i32
  %42794 = sitofp i32 %42793 to double
  br label %42796

42795:                                            ; preds = %42786
  br label %42796

42796:                                            ; preds = %42795, %42791
  %42797 = phi double [ %42794, %42791 ], [ 0.000000e+00, %42795 ]
  br label %42798

42798:                                            ; preds = %42796, %42784
  %42799 = phi double [ %42785, %42784 ], [ %42797, %42796 ]
  %42800 = fptoui double %42799 to i16
  %42801 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %42800, ptr %42801, align 2, !tbaa !15
  br label %42806

42802:                                            ; preds = %42754
  %42803 = load i8, ptr %1236, align 1, !tbaa !17
  %42804 = sext i8 %42803 to i16
  %42805 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %42804, ptr %42805, align 2, !tbaa !15
  br label %42806

42806:                                            ; preds = %42802, %42798
  br label %42807

42807:                                            ; preds = %42806, %42719
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1238) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1237) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %1236) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1235) #3
  br label %42808

42808:                                            ; preds = %42807
  br label %42809

42809:                                            ; preds = %42808
  br label %45018

42810:                                            ; preds = %41395
  br label %42811

42811:                                            ; preds = %42810
  call void @llvm.lifetime.start.p0(i64 8, ptr %1246) #3
  store double 5.000000e-01, ptr %1246, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1247) #3
  %42812 = load ptr, ptr %10, align 8, !tbaa !5
  %42813 = load i64, ptr %42812, align 8, !tbaa !13
  store i64 %42813, ptr %1247, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %1248) #3
  store double 0.000000e+00, ptr %1248, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1249) #3
  store double 0.000000e+00, ptr %1249, align 8, !tbaa !11
  %42814 = load ptr, ptr %11, align 8, !tbaa !5
  %42815 = icmp ne ptr null, %42814
  br i1 %42815, label %42816, label %42838

42816:                                            ; preds = %42811
  %42817 = load ptr, ptr %12, align 8, !tbaa !5
  %42818 = icmp ne ptr null, %42817
  br i1 %42818, label %42819, label %42830

42819:                                            ; preds = %42816
  %42820 = load ptr, ptr %11, align 8, !tbaa !5
  %42821 = load i64, ptr %42820, align 8, !tbaa !13
  %42822 = load i64, ptr %1247, align 8, !tbaa !13
  %42823 = icmp ule i64 %42821, %42822
  br i1 %42823, label %42824, label %42830

42824:                                            ; preds = %42819
  %42825 = load i64, ptr %1247, align 8, !tbaa !13
  %42826 = load ptr, ptr %12, align 8, !tbaa !5
  %42827 = load i64, ptr %42826, align 8, !tbaa !13
  %42828 = icmp ule i64 %42825, %42827
  br i1 %42828, label %42829, label %42830

42829:                                            ; preds = %42824
  br label %42831

42830:                                            ; preds = %42824, %42819, %42816
  call void @__assert_fail(ptr noundef @.str.46, ptr noundef @.str.24, i32 noundef 500, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

42831:                                            ; preds = %42829
  %42832 = load ptr, ptr %11, align 8, !tbaa !5
  %42833 = load i64, ptr %42832, align 8, !tbaa !13
  %42834 = uitofp i64 %42833 to double
  store double %42834, ptr %1248, align 8, !tbaa !11
  %42835 = load ptr, ptr %12, align 8, !tbaa !5
  %42836 = load i64, ptr %42835, align 8, !tbaa !13
  %42837 = uitofp i64 %42836 to double
  store double %42837, ptr %1249, align 8, !tbaa !11
  br label %42838

42838:                                            ; preds = %42831, %42811
  %42839 = load i32, ptr %8, align 4, !tbaa !9
  %42840 = icmp ule i32 6, %42839
  br i1 %42840, label %42841, label %43077

42841:                                            ; preds = %42838
  %42842 = load double, ptr %1248, align 8, !tbaa !11
  %42843 = load double, ptr %1249, align 8, !tbaa !11
  %42844 = fcmp olt double %42842, %42843
  br i1 %42844, label %42845, label %43077

42845:                                            ; preds = %42841
  %42846 = load i32, ptr %8, align 4, !tbaa !9
  %42847 = icmp ule i32 15, %42846
  br i1 %42847, label %42848, label %42900

42848:                                            ; preds = %42845
  call void @llvm.lifetime.start.p0(i64 8, ptr %1250) #3
  %42849 = load double, ptr %1248, align 8, !tbaa !11
  %42850 = fcmp olt double 0.000000e+00, %42849
  br i1 %42850, label %42851, label %42853

42851:                                            ; preds = %42848
  %42852 = load double, ptr %1248, align 8, !tbaa !11
  br label %42854

42853:                                            ; preds = %42848
  br label %42854

42854:                                            ; preds = %42853, %42851
  %42855 = phi double [ %42852, %42851 ], [ 0.000000e+00, %42853 ]
  store double %42855, ptr %1250, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1251) #3
  %42856 = load double, ptr %1249, align 8, !tbaa !11
  %42857 = fcmp olt double 0.000000e+00, %42856
  br i1 %42857, label %42858, label %42860

42858:                                            ; preds = %42854
  %42859 = load double, ptr %1249, align 8, !tbaa !11
  br label %42861

42860:                                            ; preds = %42854
  br label %42861

42861:                                            ; preds = %42860, %42858
  %42862 = phi double [ %42859, %42858 ], [ 0.000000e+00, %42860 ]
  store double %42862, ptr %1251, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1252) #3
  %42863 = load double, ptr %1250, align 8, !tbaa !11
  %42864 = load double, ptr %1251, align 8, !tbaa !11
  %42865 = fcmp olt double %42863, %42864
  br i1 %42865, label %42866, label %42874

42866:                                            ; preds = %42861
  %42867 = load double, ptr %1249, align 8, !tbaa !11
  %42868 = load double, ptr %1248, align 8, !tbaa !11
  %42869 = fsub double %42867, %42868
  %42870 = load double, ptr %1251, align 8, !tbaa !11
  %42871 = load double, ptr %1250, align 8, !tbaa !11
  %42872 = fsub double %42870, %42871
  %42873 = fdiv double %42869, %42872
  br label %42875

42874:                                            ; preds = %42861
  br label %42875

42875:                                            ; preds = %42874, %42866
  %42876 = phi double [ %42873, %42866 ], [ 1.000000e+00, %42874 ]
  store double %42876, ptr %1252, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1253) #3
  %42877 = load double, ptr %1252, align 8, !tbaa !11
  %42878 = load i64, ptr %1247, align 8, !tbaa !13
  %42879 = icmp ult i64 0, %42878
  br i1 %42879, label %42880, label %42882

42880:                                            ; preds = %42875
  %42881 = load i64, ptr %1247, align 8, !tbaa !13
  br label %42883

42882:                                            ; preds = %42875
  br label %42883

42883:                                            ; preds = %42882, %42880
  %42884 = phi i64 [ %42881, %42880 ], [ 0, %42882 ]
  %42885 = uitofp i64 %42884 to double
  %42886 = fmul double %42877, %42885
  store double %42886, ptr %1253, align 8, !tbaa !11
  %42887 = load double, ptr %1253, align 8, !tbaa !11
  %42888 = fcmp ole double 0.000000e+00, %42887
  br i1 %42888, label %42889, label %42892

42889:                                            ; preds = %42883
  %42890 = load double, ptr %1253, align 8, !tbaa !11
  %42891 = fadd double %42890, 5.000000e-01
  br label %42895

42892:                                            ; preds = %42883
  %42893 = load double, ptr %1253, align 8, !tbaa !11
  %42894 = fsub double %42893, 5.000000e-01
  br label %42895

42895:                                            ; preds = %42892, %42889
  %42896 = phi double [ %42891, %42889 ], [ %42894, %42892 ]
  %42897 = fptoui double %42896 to i64
  store i64 %42897, ptr %1247, align 8, !tbaa !13
  %42898 = load double, ptr %1250, align 8, !tbaa !11
  store double %42898, ptr %1248, align 8, !tbaa !11
  %42899 = load double, ptr %1251, align 8, !tbaa !11
  store double %42899, ptr %1249, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1253) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1252) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1251) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1250) #3
  br label %42956

42900:                                            ; preds = %42845
  %42901 = load i32, ptr %8, align 4, !tbaa !9
  %42902 = icmp ugt i32 6, %42901
  br i1 %42902, label %42931, label %42903

42903:                                            ; preds = %42900
  %42904 = load i32, ptr %8, align 4, !tbaa !9
  %42905 = icmp ugt i32 15, %42904
  br i1 %42905, label %42906, label %42917

42906:                                            ; preds = %42903
  %42907 = load i32, ptr %9, align 4, !tbaa !9
  %42908 = icmp ugt i32 15, %42907
  br i1 %42908, label %42909, label %42914

42909:                                            ; preds = %42906
  %42910 = load i32, ptr %9, align 4, !tbaa !9
  %42911 = load i32, ptr %8, align 4, !tbaa !9
  %42912 = icmp ugt i32 %42910, %42911
  %42913 = zext i1 %42912 to i32
  br label %42915

42914:                                            ; preds = %42906
  br label %42915

42915:                                            ; preds = %42914, %42909
  %42916 = phi i32 [ %42913, %42909 ], [ 0, %42914 ]
  br label %42928

42917:                                            ; preds = %42903
  %42918 = load i32, ptr %9, align 4, !tbaa !9
  %42919 = icmp ugt i32 15, %42918
  br i1 %42919, label %42920, label %42921

42920:                                            ; preds = %42917
  br label %42926

42921:                                            ; preds = %42917
  %42922 = load i32, ptr %9, align 4, !tbaa !9
  %42923 = load i32, ptr %8, align 4, !tbaa !9
  %42924 = icmp ugt i32 %42922, %42923
  %42925 = zext i1 %42924 to i32
  br label %42926

42926:                                            ; preds = %42921, %42920
  %42927 = phi i32 [ 0, %42920 ], [ %42925, %42921 ]
  br label %42928

42928:                                            ; preds = %42926, %42915
  %42929 = phi i32 [ %42916, %42915 ], [ %42927, %42926 ]
  %42930 = icmp ne i32 %42929, 0
  br label %42931

42931:                                            ; preds = %42928, %42900
  %42932 = phi i1 [ true, %42900 ], [ %42930, %42928 ]
  %42933 = zext i1 %42932 to i32
  %42934 = icmp eq i32 0, %42933
  br i1 %42934, label %42935, label %42955

42935:                                            ; preds = %42931
  %42936 = load double, ptr %1248, align 8, !tbaa !11
  %42937 = fcmp ogt double 0.000000e+00, %42936
  br i1 %42937, label %42938, label %42955

42938:                                            ; preds = %42935
  %42939 = load double, ptr %1249, align 8, !tbaa !11
  %42940 = fcmp olt double 0.000000e+00, %42939
  br i1 %42940, label %42941, label %42955

42941:                                            ; preds = %42938
  %42942 = load double, ptr %1248, align 8, !tbaa !11
  %42943 = fneg double %42942
  %42944 = load double, ptr %1249, align 8, !tbaa !11
  %42945 = fcmp olt double %42943, %42944
  br i1 %42945, label %42946, label %42948

42946:                                            ; preds = %42941
  %42947 = load double, ptr %1249, align 8, !tbaa !11
  br label %42951

42948:                                            ; preds = %42941
  %42949 = load double, ptr %1248, align 8, !tbaa !11
  %42950 = fneg double %42949
  br label %42951

42951:                                            ; preds = %42948, %42946
  %42952 = phi double [ %42947, %42946 ], [ %42950, %42948 ]
  store double %42952, ptr %1249, align 8, !tbaa !11
  %42953 = load double, ptr %1249, align 8, !tbaa !11
  %42954 = fneg double %42953
  store double %42954, ptr %1248, align 8, !tbaa !11
  br label %42955

42955:                                            ; preds = %42951, %42938, %42935, %42931
  br label %42956

42956:                                            ; preds = %42955, %42895
  call void @llvm.lifetime.start.p0(i64 8, ptr %1254) #3
  %42957 = load double, ptr %1248, align 8, !tbaa !11
  %42958 = fcmp ole double 0.000000e+00, %42957
  %42959 = zext i1 %42958 to i64
  %42960 = select i1 %42958, double 0.000000e+00, double 0.000000e+00
  store double %42960, ptr %1254, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1255) #3
  %42961 = load double, ptr %1249, align 8, !tbaa !11
  %42962 = fcmp ole double 0.000000e+00, %42961
  %42963 = zext i1 %42962 to i64
  %42964 = select i1 %42962, double 6.553500e+04, double 0.000000e+00
  store double %42964, ptr %1255, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1256) #3
  %42965 = load i64, ptr %1247, align 8, !tbaa !13
  %42966 = uitofp i64 %42965 to double
  %42967 = load double, ptr %1248, align 8, !tbaa !11
  %42968 = fsub double %42966, %42967
  %42969 = load double, ptr %1255, align 8, !tbaa !11
  %42970 = load double, ptr %1254, align 8, !tbaa !11
  %42971 = fsub double %42969, %42970
  %42972 = fmul double %42968, %42971
  %42973 = load double, ptr %1249, align 8, !tbaa !11
  %42974 = load double, ptr %1248, align 8, !tbaa !11
  %42975 = fsub double %42973, %42974
  %42976 = fdiv double %42972, %42975
  %42977 = load double, ptr %1254, align 8, !tbaa !11
  %42978 = fadd double %42976, %42977
  store double %42978, ptr %1256, align 8, !tbaa !11
  %42979 = load double, ptr %1254, align 8, !tbaa !11
  %42980 = load double, ptr %1256, align 8, !tbaa !11
  %42981 = fcmp ole double 0.000000e+00, %42980
  br i1 %42981, label %42982, label %42985

42982:                                            ; preds = %42956
  %42983 = load double, ptr %1256, align 8, !tbaa !11
  %42984 = fadd double %42983, 5.000000e-01
  br label %42988

42985:                                            ; preds = %42956
  %42986 = load double, ptr %1256, align 8, !tbaa !11
  %42987 = fsub double %42986, 5.000000e-01
  br label %42988

42988:                                            ; preds = %42985, %42982
  %42989 = phi double [ %42984, %42982 ], [ %42987, %42985 ]
  %42990 = fcmp olt double %42979, %42989
  br i1 %42990, label %42991, label %43045

42991:                                            ; preds = %42988
  %42992 = load double, ptr %1256, align 8, !tbaa !11
  %42993 = fcmp ole double 0.000000e+00, %42992
  br i1 %42993, label %42994, label %42997

42994:                                            ; preds = %42991
  %42995 = load double, ptr %1256, align 8, !tbaa !11
  %42996 = fadd double %42995, 5.000000e-01
  br label %43000

42997:                                            ; preds = %42991
  %42998 = load double, ptr %1256, align 8, !tbaa !11
  %42999 = fsub double %42998, 5.000000e-01
  br label %43000

43000:                                            ; preds = %42997, %42994
  %43001 = phi double [ %42996, %42994 ], [ %42999, %42997 ]
  %43002 = load double, ptr %1255, align 8, !tbaa !11
  %43003 = fcmp ole double %43001, %43002
  br i1 %43003, label %43004, label %43015

43004:                                            ; preds = %43000
  %43005 = load double, ptr %1256, align 8, !tbaa !11
  %43006 = fcmp ole double 0.000000e+00, %43005
  br i1 %43006, label %43007, label %43010

43007:                                            ; preds = %43004
  %43008 = load double, ptr %1256, align 8, !tbaa !11
  %43009 = fadd double %43008, 5.000000e-01
  br label %43013

43010:                                            ; preds = %43004
  %43011 = load double, ptr %1256, align 8, !tbaa !11
  %43012 = fsub double %43011, 5.000000e-01
  br label %43013

43013:                                            ; preds = %43010, %43007
  %43014 = phi double [ %43009, %43007 ], [ %43012, %43010 ]
  br label %43043

43015:                                            ; preds = %43000
  %43016 = load double, ptr %1256, align 8, !tbaa !11
  %43017 = fcmp ole double 0.000000e+00, %43016
  br i1 %43017, label %43018, label %43021

43018:                                            ; preds = %43015
  %43019 = load double, ptr %1256, align 8, !tbaa !11
  %43020 = fadd double %43019, 5.000000e-01
  br label %43024

43021:                                            ; preds = %43015
  %43022 = load double, ptr %1256, align 8, !tbaa !11
  %43023 = fsub double %43022, 5.000000e-01
  br label %43024

43024:                                            ; preds = %43021, %43018
  %43025 = phi double [ %43020, %43018 ], [ %43023, %43021 ]
  %43026 = load double, ptr %1255, align 8, !tbaa !11
  %43027 = fcmp olt double %43025, %43026
  br i1 %43027, label %43028, label %43039

43028:                                            ; preds = %43024
  %43029 = load double, ptr %1256, align 8, !tbaa !11
  %43030 = fcmp ole double 0.000000e+00, %43029
  br i1 %43030, label %43031, label %43034

43031:                                            ; preds = %43028
  %43032 = load double, ptr %1256, align 8, !tbaa !11
  %43033 = fadd double %43032, 5.000000e-01
  br label %43037

43034:                                            ; preds = %43028
  %43035 = load double, ptr %1256, align 8, !tbaa !11
  %43036 = fsub double %43035, 5.000000e-01
  br label %43037

43037:                                            ; preds = %43034, %43031
  %43038 = phi double [ %43033, %43031 ], [ %43036, %43034 ]
  br label %43041

43039:                                            ; preds = %43024
  %43040 = load double, ptr %1255, align 8, !tbaa !11
  br label %43041

43041:                                            ; preds = %43039, %43037
  %43042 = phi double [ %43038, %43037 ], [ %43040, %43039 ]
  br label %43043

43043:                                            ; preds = %43041, %43013
  %43044 = phi double [ %43014, %43013 ], [ %43042, %43041 ]
  br label %43073

43045:                                            ; preds = %42988
  %43046 = load double, ptr %1254, align 8, !tbaa !11
  %43047 = load double, ptr %1256, align 8, !tbaa !11
  %43048 = fcmp ole double 0.000000e+00, %43047
  br i1 %43048, label %43049, label %43052

43049:                                            ; preds = %43045
  %43050 = load double, ptr %1256, align 8, !tbaa !11
  %43051 = fadd double %43050, 5.000000e-01
  br label %43055

43052:                                            ; preds = %43045
  %43053 = load double, ptr %1256, align 8, !tbaa !11
  %43054 = fsub double %43053, 5.000000e-01
  br label %43055

43055:                                            ; preds = %43052, %43049
  %43056 = phi double [ %43051, %43049 ], [ %43054, %43052 ]
  %43057 = fcmp olt double %43046, %43056
  br i1 %43057, label %43058, label %43069

43058:                                            ; preds = %43055
  %43059 = load double, ptr %1256, align 8, !tbaa !11
  %43060 = fcmp ole double 0.000000e+00, %43059
  br i1 %43060, label %43061, label %43064

43061:                                            ; preds = %43058
  %43062 = load double, ptr %1256, align 8, !tbaa !11
  %43063 = fadd double %43062, 5.000000e-01
  br label %43067

43064:                                            ; preds = %43058
  %43065 = load double, ptr %1256, align 8, !tbaa !11
  %43066 = fsub double %43065, 5.000000e-01
  br label %43067

43067:                                            ; preds = %43064, %43061
  %43068 = phi double [ %43063, %43061 ], [ %43066, %43064 ]
  br label %43071

43069:                                            ; preds = %43055
  %43070 = load double, ptr %1254, align 8, !tbaa !11
  br label %43071

43071:                                            ; preds = %43069, %43067
  %43072 = phi double [ %43068, %43067 ], [ %43070, %43069 ]
  br label %43073

43073:                                            ; preds = %43071, %43043
  %43074 = phi double [ %43044, %43043 ], [ %43072, %43071 ]
  %43075 = fptoui double %43074 to i16
  %43076 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %43075, ptr %43076, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %1256) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1255) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1254) #3
  br label %43154

43077:                                            ; preds = %42841, %42838
  %43078 = load i32, ptr %8, align 4, !tbaa !9
  %43079 = icmp ugt i32 6, %43078
  br i1 %43079, label %43108, label %43080

43080:                                            ; preds = %43077
  %43081 = load i32, ptr %8, align 4, !tbaa !9
  %43082 = icmp ugt i32 15, %43081
  br i1 %43082, label %43083, label %43094

43083:                                            ; preds = %43080
  %43084 = load i32, ptr %9, align 4, !tbaa !9
  %43085 = icmp ugt i32 15, %43084
  br i1 %43085, label %43086, label %43091

43086:                                            ; preds = %43083
  %43087 = load i32, ptr %9, align 4, !tbaa !9
  %43088 = load i32, ptr %8, align 4, !tbaa !9
  %43089 = icmp ugt i32 %43087, %43088
  %43090 = zext i1 %43089 to i32
  br label %43092

43091:                                            ; preds = %43083
  br label %43092

43092:                                            ; preds = %43091, %43086
  %43093 = phi i32 [ %43090, %43086 ], [ 0, %43091 ]
  br label %43105

43094:                                            ; preds = %43080
  %43095 = load i32, ptr %9, align 4, !tbaa !9
  %43096 = icmp ugt i32 15, %43095
  br i1 %43096, label %43097, label %43098

43097:                                            ; preds = %43094
  br label %43103

43098:                                            ; preds = %43094
  %43099 = load i32, ptr %9, align 4, !tbaa !9
  %43100 = load i32, ptr %8, align 4, !tbaa !9
  %43101 = icmp ugt i32 %43099, %43100
  %43102 = zext i1 %43101 to i32
  br label %43103

43103:                                            ; preds = %43098, %43097
  %43104 = phi i32 [ 0, %43097 ], [ %43102, %43098 ]
  br label %43105

43105:                                            ; preds = %43103, %43092
  %43106 = phi i32 [ %43093, %43092 ], [ %43104, %43103 ]
  %43107 = icmp ne i32 %43106, 0
  br label %43108

43108:                                            ; preds = %43105, %43077
  %43109 = phi i1 [ true, %43077 ], [ %43107, %43105 ]
  %43110 = zext i1 %43109 to i32
  %43111 = icmp eq i32 0, %43110
  br i1 %43111, label %43112, label %43149

43112:                                            ; preds = %43108
  %43113 = load i64, ptr %1247, align 8, !tbaa !13
  %43114 = uitofp i64 %43113 to double
  %43115 = fcmp olt double 0.000000e+00, %43114
  br i1 %43115, label %43116, label %43135

43116:                                            ; preds = %43112
  %43117 = load i64, ptr %1247, align 8, !tbaa !13
  %43118 = uitofp i64 %43117 to double
  %43119 = fcmp ole double %43118, 6.553500e+04
  br i1 %43119, label %43120, label %43123

43120:                                            ; preds = %43116
  %43121 = load i64, ptr %1247, align 8, !tbaa !13
  %43122 = uitofp i64 %43121 to double
  br label %43133

43123:                                            ; preds = %43116
  %43124 = load i64, ptr %1247, align 8, !tbaa !13
  %43125 = uitofp i64 %43124 to double
  %43126 = fcmp olt double %43125, 6.553500e+04
  br i1 %43126, label %43127, label %43130

43127:                                            ; preds = %43123
  %43128 = load i64, ptr %1247, align 8, !tbaa !13
  %43129 = uitofp i64 %43128 to double
  br label %43131

43130:                                            ; preds = %43123
  br label %43131

43131:                                            ; preds = %43130, %43127
  %43132 = phi double [ %43129, %43127 ], [ 6.553500e+04, %43130 ]
  br label %43133

43133:                                            ; preds = %43131, %43120
  %43134 = phi double [ %43122, %43120 ], [ %43132, %43131 ]
  br label %43145

43135:                                            ; preds = %43112
  %43136 = load i64, ptr %1247, align 8, !tbaa !13
  %43137 = uitofp i64 %43136 to double
  %43138 = fcmp olt double 0.000000e+00, %43137
  br i1 %43138, label %43139, label %43142

43139:                                            ; preds = %43135
  %43140 = load i64, ptr %1247, align 8, !tbaa !13
  %43141 = uitofp i64 %43140 to double
  br label %43143

43142:                                            ; preds = %43135
  br label %43143

43143:                                            ; preds = %43142, %43139
  %43144 = phi double [ %43141, %43139 ], [ 0.000000e+00, %43142 ]
  br label %43145

43145:                                            ; preds = %43143, %43133
  %43146 = phi double [ %43134, %43133 ], [ %43144, %43143 ]
  %43147 = fptoui double %43146 to i16
  %43148 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %43147, ptr %43148, align 2, !tbaa !15
  br label %43153

43149:                                            ; preds = %43108
  %43150 = load i64, ptr %1247, align 8, !tbaa !13
  %43151 = trunc i64 %43150 to i16
  %43152 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %43151, ptr %43152, align 2, !tbaa !15
  br label %43153

43153:                                            ; preds = %43149, %43145
  br label %43154

43154:                                            ; preds = %43153, %43073
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1249) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1248) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1247) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1246) #3
  br label %43155

43155:                                            ; preds = %43154
  br label %43156

43156:                                            ; preds = %43155
  br label %45018

43157:                                            ; preds = %41395
  br label %43158

43158:                                            ; preds = %43157
  call void @llvm.lifetime.start.p0(i64 8, ptr %1257) #3
  store double 5.000000e-01, ptr %1257, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %1258) #3
  %43159 = load ptr, ptr %10, align 8, !tbaa !5
  %43160 = load i32, ptr %43159, align 4, !tbaa !9
  store i32 %43160, ptr %1258, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1259) #3
  store double 0.000000e+00, ptr %1259, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1260) #3
  store double 0.000000e+00, ptr %1260, align 8, !tbaa !11
  %43161 = load ptr, ptr %11, align 8, !tbaa !5
  %43162 = icmp ne ptr null, %43161
  br i1 %43162, label %43163, label %43185

43163:                                            ; preds = %43158
  %43164 = load ptr, ptr %12, align 8, !tbaa !5
  %43165 = icmp ne ptr null, %43164
  br i1 %43165, label %43166, label %43177

43166:                                            ; preds = %43163
  %43167 = load ptr, ptr %11, align 8, !tbaa !5
  %43168 = load i32, ptr %43167, align 4, !tbaa !9
  %43169 = load i32, ptr %1258, align 4, !tbaa !9
  %43170 = icmp ule i32 %43168, %43169
  br i1 %43170, label %43171, label %43177

43171:                                            ; preds = %43166
  %43172 = load i32, ptr %1258, align 4, !tbaa !9
  %43173 = load ptr, ptr %12, align 8, !tbaa !5
  %43174 = load i32, ptr %43173, align 4, !tbaa !9
  %43175 = icmp ule i32 %43172, %43174
  br i1 %43175, label %43176, label %43177

43176:                                            ; preds = %43171
  br label %43178

43177:                                            ; preds = %43171, %43166, %43163
  call void @__assert_fail(ptr noundef @.str.47, ptr noundef @.str.24, i32 noundef 500, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

43178:                                            ; preds = %43176
  %43179 = load ptr, ptr %11, align 8, !tbaa !5
  %43180 = load i32, ptr %43179, align 4, !tbaa !9
  %43181 = uitofp i32 %43180 to double
  store double %43181, ptr %1259, align 8, !tbaa !11
  %43182 = load ptr, ptr %12, align 8, !tbaa !5
  %43183 = load i32, ptr %43182, align 4, !tbaa !9
  %43184 = uitofp i32 %43183 to double
  store double %43184, ptr %1260, align 8, !tbaa !11
  br label %43185

43185:                                            ; preds = %43178, %43158
  %43186 = load i32, ptr %8, align 4, !tbaa !9
  %43187 = icmp ule i32 6, %43186
  br i1 %43187, label %43188, label %43424

43188:                                            ; preds = %43185
  %43189 = load double, ptr %1259, align 8, !tbaa !11
  %43190 = load double, ptr %1260, align 8, !tbaa !11
  %43191 = fcmp olt double %43189, %43190
  br i1 %43191, label %43192, label %43424

43192:                                            ; preds = %43188
  %43193 = load i32, ptr %8, align 4, !tbaa !9
  %43194 = icmp ule i32 15, %43193
  br i1 %43194, label %43195, label %43247

43195:                                            ; preds = %43192
  call void @llvm.lifetime.start.p0(i64 8, ptr %1261) #3
  %43196 = load double, ptr %1259, align 8, !tbaa !11
  %43197 = fcmp olt double 0.000000e+00, %43196
  br i1 %43197, label %43198, label %43200

43198:                                            ; preds = %43195
  %43199 = load double, ptr %1259, align 8, !tbaa !11
  br label %43201

43200:                                            ; preds = %43195
  br label %43201

43201:                                            ; preds = %43200, %43198
  %43202 = phi double [ %43199, %43198 ], [ 0.000000e+00, %43200 ]
  store double %43202, ptr %1261, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1262) #3
  %43203 = load double, ptr %1260, align 8, !tbaa !11
  %43204 = fcmp olt double 0.000000e+00, %43203
  br i1 %43204, label %43205, label %43207

43205:                                            ; preds = %43201
  %43206 = load double, ptr %1260, align 8, !tbaa !11
  br label %43208

43207:                                            ; preds = %43201
  br label %43208

43208:                                            ; preds = %43207, %43205
  %43209 = phi double [ %43206, %43205 ], [ 0.000000e+00, %43207 ]
  store double %43209, ptr %1262, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1263) #3
  %43210 = load double, ptr %1261, align 8, !tbaa !11
  %43211 = load double, ptr %1262, align 8, !tbaa !11
  %43212 = fcmp olt double %43210, %43211
  br i1 %43212, label %43213, label %43221

43213:                                            ; preds = %43208
  %43214 = load double, ptr %1260, align 8, !tbaa !11
  %43215 = load double, ptr %1259, align 8, !tbaa !11
  %43216 = fsub double %43214, %43215
  %43217 = load double, ptr %1262, align 8, !tbaa !11
  %43218 = load double, ptr %1261, align 8, !tbaa !11
  %43219 = fsub double %43217, %43218
  %43220 = fdiv double %43216, %43219
  br label %43222

43221:                                            ; preds = %43208
  br label %43222

43222:                                            ; preds = %43221, %43213
  %43223 = phi double [ %43220, %43213 ], [ 1.000000e+00, %43221 ]
  store double %43223, ptr %1263, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1264) #3
  %43224 = load double, ptr %1263, align 8, !tbaa !11
  %43225 = load i32, ptr %1258, align 4, !tbaa !9
  %43226 = icmp ult i32 0, %43225
  br i1 %43226, label %43227, label %43229

43227:                                            ; preds = %43222
  %43228 = load i32, ptr %1258, align 4, !tbaa !9
  br label %43230

43229:                                            ; preds = %43222
  br label %43230

43230:                                            ; preds = %43229, %43227
  %43231 = phi i32 [ %43228, %43227 ], [ 0, %43229 ]
  %43232 = uitofp i32 %43231 to double
  %43233 = fmul double %43224, %43232
  store double %43233, ptr %1264, align 8, !tbaa !11
  %43234 = load double, ptr %1264, align 8, !tbaa !11
  %43235 = fcmp ole double 0.000000e+00, %43234
  br i1 %43235, label %43236, label %43239

43236:                                            ; preds = %43230
  %43237 = load double, ptr %1264, align 8, !tbaa !11
  %43238 = fadd double %43237, 5.000000e-01
  br label %43242

43239:                                            ; preds = %43230
  %43240 = load double, ptr %1264, align 8, !tbaa !11
  %43241 = fsub double %43240, 5.000000e-01
  br label %43242

43242:                                            ; preds = %43239, %43236
  %43243 = phi double [ %43238, %43236 ], [ %43241, %43239 ]
  %43244 = fptoui double %43243 to i32
  store i32 %43244, ptr %1258, align 4, !tbaa !9
  %43245 = load double, ptr %1261, align 8, !tbaa !11
  store double %43245, ptr %1259, align 8, !tbaa !11
  %43246 = load double, ptr %1262, align 8, !tbaa !11
  store double %43246, ptr %1260, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1264) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1263) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1262) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1261) #3
  br label %43303

43247:                                            ; preds = %43192
  %43248 = load i32, ptr %8, align 4, !tbaa !9
  %43249 = icmp ugt i32 6, %43248
  br i1 %43249, label %43278, label %43250

43250:                                            ; preds = %43247
  %43251 = load i32, ptr %8, align 4, !tbaa !9
  %43252 = icmp ugt i32 15, %43251
  br i1 %43252, label %43253, label %43264

43253:                                            ; preds = %43250
  %43254 = load i32, ptr %9, align 4, !tbaa !9
  %43255 = icmp ugt i32 15, %43254
  br i1 %43255, label %43256, label %43261

43256:                                            ; preds = %43253
  %43257 = load i32, ptr %9, align 4, !tbaa !9
  %43258 = load i32, ptr %8, align 4, !tbaa !9
  %43259 = icmp ugt i32 %43257, %43258
  %43260 = zext i1 %43259 to i32
  br label %43262

43261:                                            ; preds = %43253
  br label %43262

43262:                                            ; preds = %43261, %43256
  %43263 = phi i32 [ %43260, %43256 ], [ 0, %43261 ]
  br label %43275

43264:                                            ; preds = %43250
  %43265 = load i32, ptr %9, align 4, !tbaa !9
  %43266 = icmp ugt i32 15, %43265
  br i1 %43266, label %43267, label %43268

43267:                                            ; preds = %43264
  br label %43273

43268:                                            ; preds = %43264
  %43269 = load i32, ptr %9, align 4, !tbaa !9
  %43270 = load i32, ptr %8, align 4, !tbaa !9
  %43271 = icmp ugt i32 %43269, %43270
  %43272 = zext i1 %43271 to i32
  br label %43273

43273:                                            ; preds = %43268, %43267
  %43274 = phi i32 [ 0, %43267 ], [ %43272, %43268 ]
  br label %43275

43275:                                            ; preds = %43273, %43262
  %43276 = phi i32 [ %43263, %43262 ], [ %43274, %43273 ]
  %43277 = icmp ne i32 %43276, 0
  br label %43278

43278:                                            ; preds = %43275, %43247
  %43279 = phi i1 [ true, %43247 ], [ %43277, %43275 ]
  %43280 = zext i1 %43279 to i32
  %43281 = icmp eq i32 0, %43280
  br i1 %43281, label %43282, label %43302

43282:                                            ; preds = %43278
  %43283 = load double, ptr %1259, align 8, !tbaa !11
  %43284 = fcmp ogt double 0.000000e+00, %43283
  br i1 %43284, label %43285, label %43302

43285:                                            ; preds = %43282
  %43286 = load double, ptr %1260, align 8, !tbaa !11
  %43287 = fcmp olt double 0.000000e+00, %43286
  br i1 %43287, label %43288, label %43302

43288:                                            ; preds = %43285
  %43289 = load double, ptr %1259, align 8, !tbaa !11
  %43290 = fneg double %43289
  %43291 = load double, ptr %1260, align 8, !tbaa !11
  %43292 = fcmp olt double %43290, %43291
  br i1 %43292, label %43293, label %43295

43293:                                            ; preds = %43288
  %43294 = load double, ptr %1260, align 8, !tbaa !11
  br label %43298

43295:                                            ; preds = %43288
  %43296 = load double, ptr %1259, align 8, !tbaa !11
  %43297 = fneg double %43296
  br label %43298

43298:                                            ; preds = %43295, %43293
  %43299 = phi double [ %43294, %43293 ], [ %43297, %43295 ]
  store double %43299, ptr %1260, align 8, !tbaa !11
  %43300 = load double, ptr %1260, align 8, !tbaa !11
  %43301 = fneg double %43300
  store double %43301, ptr %1259, align 8, !tbaa !11
  br label %43302

43302:                                            ; preds = %43298, %43285, %43282, %43278
  br label %43303

43303:                                            ; preds = %43302, %43242
  call void @llvm.lifetime.start.p0(i64 8, ptr %1265) #3
  %43304 = load double, ptr %1259, align 8, !tbaa !11
  %43305 = fcmp ole double 0.000000e+00, %43304
  %43306 = zext i1 %43305 to i64
  %43307 = select i1 %43305, double 0.000000e+00, double 0.000000e+00
  store double %43307, ptr %1265, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1266) #3
  %43308 = load double, ptr %1260, align 8, !tbaa !11
  %43309 = fcmp ole double 0.000000e+00, %43308
  %43310 = zext i1 %43309 to i64
  %43311 = select i1 %43309, double 6.553500e+04, double 0.000000e+00
  store double %43311, ptr %1266, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1267) #3
  %43312 = load i32, ptr %1258, align 4, !tbaa !9
  %43313 = uitofp i32 %43312 to double
  %43314 = load double, ptr %1259, align 8, !tbaa !11
  %43315 = fsub double %43313, %43314
  %43316 = load double, ptr %1266, align 8, !tbaa !11
  %43317 = load double, ptr %1265, align 8, !tbaa !11
  %43318 = fsub double %43316, %43317
  %43319 = fmul double %43315, %43318
  %43320 = load double, ptr %1260, align 8, !tbaa !11
  %43321 = load double, ptr %1259, align 8, !tbaa !11
  %43322 = fsub double %43320, %43321
  %43323 = fdiv double %43319, %43322
  %43324 = load double, ptr %1265, align 8, !tbaa !11
  %43325 = fadd double %43323, %43324
  store double %43325, ptr %1267, align 8, !tbaa !11
  %43326 = load double, ptr %1265, align 8, !tbaa !11
  %43327 = load double, ptr %1267, align 8, !tbaa !11
  %43328 = fcmp ole double 0.000000e+00, %43327
  br i1 %43328, label %43329, label %43332

43329:                                            ; preds = %43303
  %43330 = load double, ptr %1267, align 8, !tbaa !11
  %43331 = fadd double %43330, 5.000000e-01
  br label %43335

43332:                                            ; preds = %43303
  %43333 = load double, ptr %1267, align 8, !tbaa !11
  %43334 = fsub double %43333, 5.000000e-01
  br label %43335

43335:                                            ; preds = %43332, %43329
  %43336 = phi double [ %43331, %43329 ], [ %43334, %43332 ]
  %43337 = fcmp olt double %43326, %43336
  br i1 %43337, label %43338, label %43392

43338:                                            ; preds = %43335
  %43339 = load double, ptr %1267, align 8, !tbaa !11
  %43340 = fcmp ole double 0.000000e+00, %43339
  br i1 %43340, label %43341, label %43344

43341:                                            ; preds = %43338
  %43342 = load double, ptr %1267, align 8, !tbaa !11
  %43343 = fadd double %43342, 5.000000e-01
  br label %43347

43344:                                            ; preds = %43338
  %43345 = load double, ptr %1267, align 8, !tbaa !11
  %43346 = fsub double %43345, 5.000000e-01
  br label %43347

43347:                                            ; preds = %43344, %43341
  %43348 = phi double [ %43343, %43341 ], [ %43346, %43344 ]
  %43349 = load double, ptr %1266, align 8, !tbaa !11
  %43350 = fcmp ole double %43348, %43349
  br i1 %43350, label %43351, label %43362

43351:                                            ; preds = %43347
  %43352 = load double, ptr %1267, align 8, !tbaa !11
  %43353 = fcmp ole double 0.000000e+00, %43352
  br i1 %43353, label %43354, label %43357

43354:                                            ; preds = %43351
  %43355 = load double, ptr %1267, align 8, !tbaa !11
  %43356 = fadd double %43355, 5.000000e-01
  br label %43360

43357:                                            ; preds = %43351
  %43358 = load double, ptr %1267, align 8, !tbaa !11
  %43359 = fsub double %43358, 5.000000e-01
  br label %43360

43360:                                            ; preds = %43357, %43354
  %43361 = phi double [ %43356, %43354 ], [ %43359, %43357 ]
  br label %43390

43362:                                            ; preds = %43347
  %43363 = load double, ptr %1267, align 8, !tbaa !11
  %43364 = fcmp ole double 0.000000e+00, %43363
  br i1 %43364, label %43365, label %43368

43365:                                            ; preds = %43362
  %43366 = load double, ptr %1267, align 8, !tbaa !11
  %43367 = fadd double %43366, 5.000000e-01
  br label %43371

43368:                                            ; preds = %43362
  %43369 = load double, ptr %1267, align 8, !tbaa !11
  %43370 = fsub double %43369, 5.000000e-01
  br label %43371

43371:                                            ; preds = %43368, %43365
  %43372 = phi double [ %43367, %43365 ], [ %43370, %43368 ]
  %43373 = load double, ptr %1266, align 8, !tbaa !11
  %43374 = fcmp olt double %43372, %43373
  br i1 %43374, label %43375, label %43386

43375:                                            ; preds = %43371
  %43376 = load double, ptr %1267, align 8, !tbaa !11
  %43377 = fcmp ole double 0.000000e+00, %43376
  br i1 %43377, label %43378, label %43381

43378:                                            ; preds = %43375
  %43379 = load double, ptr %1267, align 8, !tbaa !11
  %43380 = fadd double %43379, 5.000000e-01
  br label %43384

43381:                                            ; preds = %43375
  %43382 = load double, ptr %1267, align 8, !tbaa !11
  %43383 = fsub double %43382, 5.000000e-01
  br label %43384

43384:                                            ; preds = %43381, %43378
  %43385 = phi double [ %43380, %43378 ], [ %43383, %43381 ]
  br label %43388

43386:                                            ; preds = %43371
  %43387 = load double, ptr %1266, align 8, !tbaa !11
  br label %43388

43388:                                            ; preds = %43386, %43384
  %43389 = phi double [ %43385, %43384 ], [ %43387, %43386 ]
  br label %43390

43390:                                            ; preds = %43388, %43360
  %43391 = phi double [ %43361, %43360 ], [ %43389, %43388 ]
  br label %43420

43392:                                            ; preds = %43335
  %43393 = load double, ptr %1265, align 8, !tbaa !11
  %43394 = load double, ptr %1267, align 8, !tbaa !11
  %43395 = fcmp ole double 0.000000e+00, %43394
  br i1 %43395, label %43396, label %43399

43396:                                            ; preds = %43392
  %43397 = load double, ptr %1267, align 8, !tbaa !11
  %43398 = fadd double %43397, 5.000000e-01
  br label %43402

43399:                                            ; preds = %43392
  %43400 = load double, ptr %1267, align 8, !tbaa !11
  %43401 = fsub double %43400, 5.000000e-01
  br label %43402

43402:                                            ; preds = %43399, %43396
  %43403 = phi double [ %43398, %43396 ], [ %43401, %43399 ]
  %43404 = fcmp olt double %43393, %43403
  br i1 %43404, label %43405, label %43416

43405:                                            ; preds = %43402
  %43406 = load double, ptr %1267, align 8, !tbaa !11
  %43407 = fcmp ole double 0.000000e+00, %43406
  br i1 %43407, label %43408, label %43411

43408:                                            ; preds = %43405
  %43409 = load double, ptr %1267, align 8, !tbaa !11
  %43410 = fadd double %43409, 5.000000e-01
  br label %43414

43411:                                            ; preds = %43405
  %43412 = load double, ptr %1267, align 8, !tbaa !11
  %43413 = fsub double %43412, 5.000000e-01
  br label %43414

43414:                                            ; preds = %43411, %43408
  %43415 = phi double [ %43410, %43408 ], [ %43413, %43411 ]
  br label %43418

43416:                                            ; preds = %43402
  %43417 = load double, ptr %1265, align 8, !tbaa !11
  br label %43418

43418:                                            ; preds = %43416, %43414
  %43419 = phi double [ %43415, %43414 ], [ %43417, %43416 ]
  br label %43420

43420:                                            ; preds = %43418, %43390
  %43421 = phi double [ %43391, %43390 ], [ %43419, %43418 ]
  %43422 = fptoui double %43421 to i16
  %43423 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %43422, ptr %43423, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %1267) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1266) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1265) #3
  br label %43501

43424:                                            ; preds = %43188, %43185
  %43425 = load i32, ptr %8, align 4, !tbaa !9
  %43426 = icmp ugt i32 6, %43425
  br i1 %43426, label %43455, label %43427

43427:                                            ; preds = %43424
  %43428 = load i32, ptr %8, align 4, !tbaa !9
  %43429 = icmp ugt i32 15, %43428
  br i1 %43429, label %43430, label %43441

43430:                                            ; preds = %43427
  %43431 = load i32, ptr %9, align 4, !tbaa !9
  %43432 = icmp ugt i32 15, %43431
  br i1 %43432, label %43433, label %43438

43433:                                            ; preds = %43430
  %43434 = load i32, ptr %9, align 4, !tbaa !9
  %43435 = load i32, ptr %8, align 4, !tbaa !9
  %43436 = icmp ugt i32 %43434, %43435
  %43437 = zext i1 %43436 to i32
  br label %43439

43438:                                            ; preds = %43430
  br label %43439

43439:                                            ; preds = %43438, %43433
  %43440 = phi i32 [ %43437, %43433 ], [ 0, %43438 ]
  br label %43452

43441:                                            ; preds = %43427
  %43442 = load i32, ptr %9, align 4, !tbaa !9
  %43443 = icmp ugt i32 15, %43442
  br i1 %43443, label %43444, label %43445

43444:                                            ; preds = %43441
  br label %43450

43445:                                            ; preds = %43441
  %43446 = load i32, ptr %9, align 4, !tbaa !9
  %43447 = load i32, ptr %8, align 4, !tbaa !9
  %43448 = icmp ugt i32 %43446, %43447
  %43449 = zext i1 %43448 to i32
  br label %43450

43450:                                            ; preds = %43445, %43444
  %43451 = phi i32 [ 0, %43444 ], [ %43449, %43445 ]
  br label %43452

43452:                                            ; preds = %43450, %43439
  %43453 = phi i32 [ %43440, %43439 ], [ %43451, %43450 ]
  %43454 = icmp ne i32 %43453, 0
  br label %43455

43455:                                            ; preds = %43452, %43424
  %43456 = phi i1 [ true, %43424 ], [ %43454, %43452 ]
  %43457 = zext i1 %43456 to i32
  %43458 = icmp eq i32 0, %43457
  br i1 %43458, label %43459, label %43496

43459:                                            ; preds = %43455
  %43460 = load i32, ptr %1258, align 4, !tbaa !9
  %43461 = uitofp i32 %43460 to double
  %43462 = fcmp olt double 0.000000e+00, %43461
  br i1 %43462, label %43463, label %43482

43463:                                            ; preds = %43459
  %43464 = load i32, ptr %1258, align 4, !tbaa !9
  %43465 = uitofp i32 %43464 to double
  %43466 = fcmp ole double %43465, 6.553500e+04
  br i1 %43466, label %43467, label %43470

43467:                                            ; preds = %43463
  %43468 = load i32, ptr %1258, align 4, !tbaa !9
  %43469 = uitofp i32 %43468 to double
  br label %43480

43470:                                            ; preds = %43463
  %43471 = load i32, ptr %1258, align 4, !tbaa !9
  %43472 = uitofp i32 %43471 to double
  %43473 = fcmp olt double %43472, 6.553500e+04
  br i1 %43473, label %43474, label %43477

43474:                                            ; preds = %43470
  %43475 = load i32, ptr %1258, align 4, !tbaa !9
  %43476 = uitofp i32 %43475 to double
  br label %43478

43477:                                            ; preds = %43470
  br label %43478

43478:                                            ; preds = %43477, %43474
  %43479 = phi double [ %43476, %43474 ], [ 6.553500e+04, %43477 ]
  br label %43480

43480:                                            ; preds = %43478, %43467
  %43481 = phi double [ %43469, %43467 ], [ %43479, %43478 ]
  br label %43492

43482:                                            ; preds = %43459
  %43483 = load i32, ptr %1258, align 4, !tbaa !9
  %43484 = uitofp i32 %43483 to double
  %43485 = fcmp olt double 0.000000e+00, %43484
  br i1 %43485, label %43486, label %43489

43486:                                            ; preds = %43482
  %43487 = load i32, ptr %1258, align 4, !tbaa !9
  %43488 = uitofp i32 %43487 to double
  br label %43490

43489:                                            ; preds = %43482
  br label %43490

43490:                                            ; preds = %43489, %43486
  %43491 = phi double [ %43488, %43486 ], [ 0.000000e+00, %43489 ]
  br label %43492

43492:                                            ; preds = %43490, %43480
  %43493 = phi double [ %43481, %43480 ], [ %43491, %43490 ]
  %43494 = fptoui double %43493 to i16
  %43495 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %43494, ptr %43495, align 2, !tbaa !15
  br label %43500

43496:                                            ; preds = %43455
  %43497 = load i32, ptr %1258, align 4, !tbaa !9
  %43498 = trunc i32 %43497 to i16
  %43499 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %43498, ptr %43499, align 2, !tbaa !15
  br label %43500

43500:                                            ; preds = %43496, %43492
  br label %43501

43501:                                            ; preds = %43500, %43420
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1260) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1259) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %1258) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1257) #3
  br label %43502

43502:                                            ; preds = %43501
  br label %43503

43503:                                            ; preds = %43502
  br label %45018

43504:                                            ; preds = %41395
  br label %43505

43505:                                            ; preds = %43504
  call void @llvm.lifetime.start.p0(i64 8, ptr %1268) #3
  store double 5.000000e-01, ptr %1268, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %1269) #3
  %43506 = load ptr, ptr %10, align 8, !tbaa !5
  %43507 = load i16, ptr %43506, align 2, !tbaa !15
  store i16 %43507, ptr %1269, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %1270) #3
  store double 0.000000e+00, ptr %1270, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1271) #3
  store double 0.000000e+00, ptr %1271, align 8, !tbaa !11
  %43508 = load ptr, ptr %11, align 8, !tbaa !5
  %43509 = icmp ne ptr null, %43508
  br i1 %43509, label %43510, label %43536

43510:                                            ; preds = %43505
  %43511 = load ptr, ptr %12, align 8, !tbaa !5
  %43512 = icmp ne ptr null, %43511
  br i1 %43512, label %43513, label %43528

43513:                                            ; preds = %43510
  %43514 = load ptr, ptr %11, align 8, !tbaa !5
  %43515 = load i16, ptr %43514, align 2, !tbaa !15
  %43516 = zext i16 %43515 to i32
  %43517 = load i16, ptr %1269, align 2, !tbaa !15
  %43518 = zext i16 %43517 to i32
  %43519 = icmp sle i32 %43516, %43518
  br i1 %43519, label %43520, label %43528

43520:                                            ; preds = %43513
  %43521 = load i16, ptr %1269, align 2, !tbaa !15
  %43522 = zext i16 %43521 to i32
  %43523 = load ptr, ptr %12, align 8, !tbaa !5
  %43524 = load i16, ptr %43523, align 2, !tbaa !15
  %43525 = zext i16 %43524 to i32
  %43526 = icmp sle i32 %43522, %43525
  br i1 %43526, label %43527, label %43528

43527:                                            ; preds = %43520
  br label %43529

43528:                                            ; preds = %43520, %43513, %43510
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.24, i32 noundef 500, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

43529:                                            ; preds = %43527
  %43530 = load ptr, ptr %11, align 8, !tbaa !5
  %43531 = load i16, ptr %43530, align 2, !tbaa !15
  %43532 = uitofp i16 %43531 to double
  store double %43532, ptr %1270, align 8, !tbaa !11
  %43533 = load ptr, ptr %12, align 8, !tbaa !5
  %43534 = load i16, ptr %43533, align 2, !tbaa !15
  %43535 = uitofp i16 %43534 to double
  store double %43535, ptr %1271, align 8, !tbaa !11
  br label %43536

43536:                                            ; preds = %43529, %43505
  %43537 = load i32, ptr %8, align 4, !tbaa !9
  %43538 = icmp ule i32 6, %43537
  br i1 %43538, label %43539, label %43777

43539:                                            ; preds = %43536
  %43540 = load double, ptr %1270, align 8, !tbaa !11
  %43541 = load double, ptr %1271, align 8, !tbaa !11
  %43542 = fcmp olt double %43540, %43541
  br i1 %43542, label %43543, label %43777

43543:                                            ; preds = %43539
  %43544 = load i32, ptr %8, align 4, !tbaa !9
  %43545 = icmp ule i32 15, %43544
  br i1 %43545, label %43546, label %43600

43546:                                            ; preds = %43543
  call void @llvm.lifetime.start.p0(i64 8, ptr %1272) #3
  %43547 = load double, ptr %1270, align 8, !tbaa !11
  %43548 = fcmp olt double 0.000000e+00, %43547
  br i1 %43548, label %43549, label %43551

43549:                                            ; preds = %43546
  %43550 = load double, ptr %1270, align 8, !tbaa !11
  br label %43552

43551:                                            ; preds = %43546
  br label %43552

43552:                                            ; preds = %43551, %43549
  %43553 = phi double [ %43550, %43549 ], [ 0.000000e+00, %43551 ]
  store double %43553, ptr %1272, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1273) #3
  %43554 = load double, ptr %1271, align 8, !tbaa !11
  %43555 = fcmp olt double 0.000000e+00, %43554
  br i1 %43555, label %43556, label %43558

43556:                                            ; preds = %43552
  %43557 = load double, ptr %1271, align 8, !tbaa !11
  br label %43559

43558:                                            ; preds = %43552
  br label %43559

43559:                                            ; preds = %43558, %43556
  %43560 = phi double [ %43557, %43556 ], [ 0.000000e+00, %43558 ]
  store double %43560, ptr %1273, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1274) #3
  %43561 = load double, ptr %1272, align 8, !tbaa !11
  %43562 = load double, ptr %1273, align 8, !tbaa !11
  %43563 = fcmp olt double %43561, %43562
  br i1 %43563, label %43564, label %43572

43564:                                            ; preds = %43559
  %43565 = load double, ptr %1271, align 8, !tbaa !11
  %43566 = load double, ptr %1270, align 8, !tbaa !11
  %43567 = fsub double %43565, %43566
  %43568 = load double, ptr %1273, align 8, !tbaa !11
  %43569 = load double, ptr %1272, align 8, !tbaa !11
  %43570 = fsub double %43568, %43569
  %43571 = fdiv double %43567, %43570
  br label %43573

43572:                                            ; preds = %43559
  br label %43573

43573:                                            ; preds = %43572, %43564
  %43574 = phi double [ %43571, %43564 ], [ 1.000000e+00, %43572 ]
  store double %43574, ptr %1274, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1275) #3
  %43575 = load double, ptr %1274, align 8, !tbaa !11
  %43576 = load i16, ptr %1269, align 2, !tbaa !15
  %43577 = zext i16 %43576 to i32
  %43578 = icmp slt i32 0, %43577
  br i1 %43578, label %43579, label %43582

43579:                                            ; preds = %43573
  %43580 = load i16, ptr %1269, align 2, !tbaa !15
  %43581 = zext i16 %43580 to i32
  br label %43583

43582:                                            ; preds = %43573
  br label %43583

43583:                                            ; preds = %43582, %43579
  %43584 = phi i32 [ %43581, %43579 ], [ 0, %43582 ]
  %43585 = sitofp i32 %43584 to double
  %43586 = fmul double %43575, %43585
  store double %43586, ptr %1275, align 8, !tbaa !11
  %43587 = load double, ptr %1275, align 8, !tbaa !11
  %43588 = fcmp ole double 0.000000e+00, %43587
  br i1 %43588, label %43589, label %43592

43589:                                            ; preds = %43583
  %43590 = load double, ptr %1275, align 8, !tbaa !11
  %43591 = fadd double %43590, 5.000000e-01
  br label %43595

43592:                                            ; preds = %43583
  %43593 = load double, ptr %1275, align 8, !tbaa !11
  %43594 = fsub double %43593, 5.000000e-01
  br label %43595

43595:                                            ; preds = %43592, %43589
  %43596 = phi double [ %43591, %43589 ], [ %43594, %43592 ]
  %43597 = fptoui double %43596 to i16
  store i16 %43597, ptr %1269, align 2, !tbaa !15
  %43598 = load double, ptr %1272, align 8, !tbaa !11
  store double %43598, ptr %1270, align 8, !tbaa !11
  %43599 = load double, ptr %1273, align 8, !tbaa !11
  store double %43599, ptr %1271, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1275) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1274) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1273) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1272) #3
  br label %43656

43600:                                            ; preds = %43543
  %43601 = load i32, ptr %8, align 4, !tbaa !9
  %43602 = icmp ugt i32 6, %43601
  br i1 %43602, label %43631, label %43603

43603:                                            ; preds = %43600
  %43604 = load i32, ptr %8, align 4, !tbaa !9
  %43605 = icmp ugt i32 15, %43604
  br i1 %43605, label %43606, label %43617

43606:                                            ; preds = %43603
  %43607 = load i32, ptr %9, align 4, !tbaa !9
  %43608 = icmp ugt i32 15, %43607
  br i1 %43608, label %43609, label %43614

43609:                                            ; preds = %43606
  %43610 = load i32, ptr %9, align 4, !tbaa !9
  %43611 = load i32, ptr %8, align 4, !tbaa !9
  %43612 = icmp ugt i32 %43610, %43611
  %43613 = zext i1 %43612 to i32
  br label %43615

43614:                                            ; preds = %43606
  br label %43615

43615:                                            ; preds = %43614, %43609
  %43616 = phi i32 [ %43613, %43609 ], [ 0, %43614 ]
  br label %43628

43617:                                            ; preds = %43603
  %43618 = load i32, ptr %9, align 4, !tbaa !9
  %43619 = icmp ugt i32 15, %43618
  br i1 %43619, label %43620, label %43621

43620:                                            ; preds = %43617
  br label %43626

43621:                                            ; preds = %43617
  %43622 = load i32, ptr %9, align 4, !tbaa !9
  %43623 = load i32, ptr %8, align 4, !tbaa !9
  %43624 = icmp ugt i32 %43622, %43623
  %43625 = zext i1 %43624 to i32
  br label %43626

43626:                                            ; preds = %43621, %43620
  %43627 = phi i32 [ 0, %43620 ], [ %43625, %43621 ]
  br label %43628

43628:                                            ; preds = %43626, %43615
  %43629 = phi i32 [ %43616, %43615 ], [ %43627, %43626 ]
  %43630 = icmp ne i32 %43629, 0
  br label %43631

43631:                                            ; preds = %43628, %43600
  %43632 = phi i1 [ true, %43600 ], [ %43630, %43628 ]
  %43633 = zext i1 %43632 to i32
  %43634 = icmp eq i32 0, %43633
  br i1 %43634, label %43635, label %43655

43635:                                            ; preds = %43631
  %43636 = load double, ptr %1270, align 8, !tbaa !11
  %43637 = fcmp ogt double 0.000000e+00, %43636
  br i1 %43637, label %43638, label %43655

43638:                                            ; preds = %43635
  %43639 = load double, ptr %1271, align 8, !tbaa !11
  %43640 = fcmp olt double 0.000000e+00, %43639
  br i1 %43640, label %43641, label %43655

43641:                                            ; preds = %43638
  %43642 = load double, ptr %1270, align 8, !tbaa !11
  %43643 = fneg double %43642
  %43644 = load double, ptr %1271, align 8, !tbaa !11
  %43645 = fcmp olt double %43643, %43644
  br i1 %43645, label %43646, label %43648

43646:                                            ; preds = %43641
  %43647 = load double, ptr %1271, align 8, !tbaa !11
  br label %43651

43648:                                            ; preds = %43641
  %43649 = load double, ptr %1270, align 8, !tbaa !11
  %43650 = fneg double %43649
  br label %43651

43651:                                            ; preds = %43648, %43646
  %43652 = phi double [ %43647, %43646 ], [ %43650, %43648 ]
  store double %43652, ptr %1271, align 8, !tbaa !11
  %43653 = load double, ptr %1271, align 8, !tbaa !11
  %43654 = fneg double %43653
  store double %43654, ptr %1270, align 8, !tbaa !11
  br label %43655

43655:                                            ; preds = %43651, %43638, %43635, %43631
  br label %43656

43656:                                            ; preds = %43655, %43595
  call void @llvm.lifetime.start.p0(i64 8, ptr %1276) #3
  %43657 = load double, ptr %1270, align 8, !tbaa !11
  %43658 = fcmp ole double 0.000000e+00, %43657
  %43659 = zext i1 %43658 to i64
  %43660 = select i1 %43658, double 0.000000e+00, double 0.000000e+00
  store double %43660, ptr %1276, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1277) #3
  %43661 = load double, ptr %1271, align 8, !tbaa !11
  %43662 = fcmp ole double 0.000000e+00, %43661
  %43663 = zext i1 %43662 to i64
  %43664 = select i1 %43662, double 6.553500e+04, double 0.000000e+00
  store double %43664, ptr %1277, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1278) #3
  %43665 = load i16, ptr %1269, align 2, !tbaa !15
  %43666 = uitofp i16 %43665 to double
  %43667 = load double, ptr %1270, align 8, !tbaa !11
  %43668 = fsub double %43666, %43667
  %43669 = load double, ptr %1277, align 8, !tbaa !11
  %43670 = load double, ptr %1276, align 8, !tbaa !11
  %43671 = fsub double %43669, %43670
  %43672 = fmul double %43668, %43671
  %43673 = load double, ptr %1271, align 8, !tbaa !11
  %43674 = load double, ptr %1270, align 8, !tbaa !11
  %43675 = fsub double %43673, %43674
  %43676 = fdiv double %43672, %43675
  %43677 = load double, ptr %1276, align 8, !tbaa !11
  %43678 = fadd double %43676, %43677
  store double %43678, ptr %1278, align 8, !tbaa !11
  %43679 = load double, ptr %1276, align 8, !tbaa !11
  %43680 = load double, ptr %1278, align 8, !tbaa !11
  %43681 = fcmp ole double 0.000000e+00, %43680
  br i1 %43681, label %43682, label %43685

43682:                                            ; preds = %43656
  %43683 = load double, ptr %1278, align 8, !tbaa !11
  %43684 = fadd double %43683, 5.000000e-01
  br label %43688

43685:                                            ; preds = %43656
  %43686 = load double, ptr %1278, align 8, !tbaa !11
  %43687 = fsub double %43686, 5.000000e-01
  br label %43688

43688:                                            ; preds = %43685, %43682
  %43689 = phi double [ %43684, %43682 ], [ %43687, %43685 ]
  %43690 = fcmp olt double %43679, %43689
  br i1 %43690, label %43691, label %43745

43691:                                            ; preds = %43688
  %43692 = load double, ptr %1278, align 8, !tbaa !11
  %43693 = fcmp ole double 0.000000e+00, %43692
  br i1 %43693, label %43694, label %43697

43694:                                            ; preds = %43691
  %43695 = load double, ptr %1278, align 8, !tbaa !11
  %43696 = fadd double %43695, 5.000000e-01
  br label %43700

43697:                                            ; preds = %43691
  %43698 = load double, ptr %1278, align 8, !tbaa !11
  %43699 = fsub double %43698, 5.000000e-01
  br label %43700

43700:                                            ; preds = %43697, %43694
  %43701 = phi double [ %43696, %43694 ], [ %43699, %43697 ]
  %43702 = load double, ptr %1277, align 8, !tbaa !11
  %43703 = fcmp ole double %43701, %43702
  br i1 %43703, label %43704, label %43715

43704:                                            ; preds = %43700
  %43705 = load double, ptr %1278, align 8, !tbaa !11
  %43706 = fcmp ole double 0.000000e+00, %43705
  br i1 %43706, label %43707, label %43710

43707:                                            ; preds = %43704
  %43708 = load double, ptr %1278, align 8, !tbaa !11
  %43709 = fadd double %43708, 5.000000e-01
  br label %43713

43710:                                            ; preds = %43704
  %43711 = load double, ptr %1278, align 8, !tbaa !11
  %43712 = fsub double %43711, 5.000000e-01
  br label %43713

43713:                                            ; preds = %43710, %43707
  %43714 = phi double [ %43709, %43707 ], [ %43712, %43710 ]
  br label %43743

43715:                                            ; preds = %43700
  %43716 = load double, ptr %1278, align 8, !tbaa !11
  %43717 = fcmp ole double 0.000000e+00, %43716
  br i1 %43717, label %43718, label %43721

43718:                                            ; preds = %43715
  %43719 = load double, ptr %1278, align 8, !tbaa !11
  %43720 = fadd double %43719, 5.000000e-01
  br label %43724

43721:                                            ; preds = %43715
  %43722 = load double, ptr %1278, align 8, !tbaa !11
  %43723 = fsub double %43722, 5.000000e-01
  br label %43724

43724:                                            ; preds = %43721, %43718
  %43725 = phi double [ %43720, %43718 ], [ %43723, %43721 ]
  %43726 = load double, ptr %1277, align 8, !tbaa !11
  %43727 = fcmp olt double %43725, %43726
  br i1 %43727, label %43728, label %43739

43728:                                            ; preds = %43724
  %43729 = load double, ptr %1278, align 8, !tbaa !11
  %43730 = fcmp ole double 0.000000e+00, %43729
  br i1 %43730, label %43731, label %43734

43731:                                            ; preds = %43728
  %43732 = load double, ptr %1278, align 8, !tbaa !11
  %43733 = fadd double %43732, 5.000000e-01
  br label %43737

43734:                                            ; preds = %43728
  %43735 = load double, ptr %1278, align 8, !tbaa !11
  %43736 = fsub double %43735, 5.000000e-01
  br label %43737

43737:                                            ; preds = %43734, %43731
  %43738 = phi double [ %43733, %43731 ], [ %43736, %43734 ]
  br label %43741

43739:                                            ; preds = %43724
  %43740 = load double, ptr %1277, align 8, !tbaa !11
  br label %43741

43741:                                            ; preds = %43739, %43737
  %43742 = phi double [ %43738, %43737 ], [ %43740, %43739 ]
  br label %43743

43743:                                            ; preds = %43741, %43713
  %43744 = phi double [ %43714, %43713 ], [ %43742, %43741 ]
  br label %43773

43745:                                            ; preds = %43688
  %43746 = load double, ptr %1276, align 8, !tbaa !11
  %43747 = load double, ptr %1278, align 8, !tbaa !11
  %43748 = fcmp ole double 0.000000e+00, %43747
  br i1 %43748, label %43749, label %43752

43749:                                            ; preds = %43745
  %43750 = load double, ptr %1278, align 8, !tbaa !11
  %43751 = fadd double %43750, 5.000000e-01
  br label %43755

43752:                                            ; preds = %43745
  %43753 = load double, ptr %1278, align 8, !tbaa !11
  %43754 = fsub double %43753, 5.000000e-01
  br label %43755

43755:                                            ; preds = %43752, %43749
  %43756 = phi double [ %43751, %43749 ], [ %43754, %43752 ]
  %43757 = fcmp olt double %43746, %43756
  br i1 %43757, label %43758, label %43769

43758:                                            ; preds = %43755
  %43759 = load double, ptr %1278, align 8, !tbaa !11
  %43760 = fcmp ole double 0.000000e+00, %43759
  br i1 %43760, label %43761, label %43764

43761:                                            ; preds = %43758
  %43762 = load double, ptr %1278, align 8, !tbaa !11
  %43763 = fadd double %43762, 5.000000e-01
  br label %43767

43764:                                            ; preds = %43758
  %43765 = load double, ptr %1278, align 8, !tbaa !11
  %43766 = fsub double %43765, 5.000000e-01
  br label %43767

43767:                                            ; preds = %43764, %43761
  %43768 = phi double [ %43763, %43761 ], [ %43766, %43764 ]
  br label %43771

43769:                                            ; preds = %43755
  %43770 = load double, ptr %1276, align 8, !tbaa !11
  br label %43771

43771:                                            ; preds = %43769, %43767
  %43772 = phi double [ %43768, %43767 ], [ %43770, %43769 ]
  br label %43773

43773:                                            ; preds = %43771, %43743
  %43774 = phi double [ %43744, %43743 ], [ %43772, %43771 ]
  %43775 = fptoui double %43774 to i16
  %43776 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %43775, ptr %43776, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %1278) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1277) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1276) #3
  br label %43860

43777:                                            ; preds = %43539, %43536
  %43778 = load i32, ptr %8, align 4, !tbaa !9
  %43779 = icmp ugt i32 6, %43778
  br i1 %43779, label %43808, label %43780

43780:                                            ; preds = %43777
  %43781 = load i32, ptr %8, align 4, !tbaa !9
  %43782 = icmp ugt i32 15, %43781
  br i1 %43782, label %43783, label %43794

43783:                                            ; preds = %43780
  %43784 = load i32, ptr %9, align 4, !tbaa !9
  %43785 = icmp ugt i32 15, %43784
  br i1 %43785, label %43786, label %43791

43786:                                            ; preds = %43783
  %43787 = load i32, ptr %9, align 4, !tbaa !9
  %43788 = load i32, ptr %8, align 4, !tbaa !9
  %43789 = icmp ugt i32 %43787, %43788
  %43790 = zext i1 %43789 to i32
  br label %43792

43791:                                            ; preds = %43783
  br label %43792

43792:                                            ; preds = %43791, %43786
  %43793 = phi i32 [ %43790, %43786 ], [ 0, %43791 ]
  br label %43805

43794:                                            ; preds = %43780
  %43795 = load i32, ptr %9, align 4, !tbaa !9
  %43796 = icmp ugt i32 15, %43795
  br i1 %43796, label %43797, label %43798

43797:                                            ; preds = %43794
  br label %43803

43798:                                            ; preds = %43794
  %43799 = load i32, ptr %9, align 4, !tbaa !9
  %43800 = load i32, ptr %8, align 4, !tbaa !9
  %43801 = icmp ugt i32 %43799, %43800
  %43802 = zext i1 %43801 to i32
  br label %43803

43803:                                            ; preds = %43798, %43797
  %43804 = phi i32 [ 0, %43797 ], [ %43802, %43798 ]
  br label %43805

43805:                                            ; preds = %43803, %43792
  %43806 = phi i32 [ %43793, %43792 ], [ %43804, %43803 ]
  %43807 = icmp ne i32 %43806, 0
  br label %43808

43808:                                            ; preds = %43805, %43777
  %43809 = phi i1 [ true, %43777 ], [ %43807, %43805 ]
  %43810 = zext i1 %43809 to i32
  %43811 = icmp eq i32 0, %43810
  br i1 %43811, label %43812, label %43856

43812:                                            ; preds = %43808
  %43813 = load i16, ptr %1269, align 2, !tbaa !15
  %43814 = zext i16 %43813 to i32
  %43815 = sitofp i32 %43814 to double
  %43816 = fcmp olt double 0.000000e+00, %43815
  br i1 %43816, label %43817, label %43840

43817:                                            ; preds = %43812
  %43818 = load i16, ptr %1269, align 2, !tbaa !15
  %43819 = zext i16 %43818 to i32
  %43820 = sitofp i32 %43819 to double
  %43821 = fcmp ole double %43820, 6.553500e+04
  br i1 %43821, label %43822, label %43826

43822:                                            ; preds = %43817
  %43823 = load i16, ptr %1269, align 2, !tbaa !15
  %43824 = zext i16 %43823 to i32
  %43825 = sitofp i32 %43824 to double
  br label %43838

43826:                                            ; preds = %43817
  %43827 = load i16, ptr %1269, align 2, !tbaa !15
  %43828 = zext i16 %43827 to i32
  %43829 = sitofp i32 %43828 to double
  %43830 = fcmp olt double %43829, 6.553500e+04
  br i1 %43830, label %43831, label %43835

43831:                                            ; preds = %43826
  %43832 = load i16, ptr %1269, align 2, !tbaa !15
  %43833 = zext i16 %43832 to i32
  %43834 = sitofp i32 %43833 to double
  br label %43836

43835:                                            ; preds = %43826
  br label %43836

43836:                                            ; preds = %43835, %43831
  %43837 = phi double [ %43834, %43831 ], [ 6.553500e+04, %43835 ]
  br label %43838

43838:                                            ; preds = %43836, %43822
  %43839 = phi double [ %43825, %43822 ], [ %43837, %43836 ]
  br label %43852

43840:                                            ; preds = %43812
  %43841 = load i16, ptr %1269, align 2, !tbaa !15
  %43842 = zext i16 %43841 to i32
  %43843 = sitofp i32 %43842 to double
  %43844 = fcmp olt double 0.000000e+00, %43843
  br i1 %43844, label %43845, label %43849

43845:                                            ; preds = %43840
  %43846 = load i16, ptr %1269, align 2, !tbaa !15
  %43847 = zext i16 %43846 to i32
  %43848 = sitofp i32 %43847 to double
  br label %43850

43849:                                            ; preds = %43840
  br label %43850

43850:                                            ; preds = %43849, %43845
  %43851 = phi double [ %43848, %43845 ], [ 0.000000e+00, %43849 ]
  br label %43852

43852:                                            ; preds = %43850, %43838
  %43853 = phi double [ %43839, %43838 ], [ %43851, %43850 ]
  %43854 = fptoui double %43853 to i16
  %43855 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %43854, ptr %43855, align 2, !tbaa !15
  br label %43859

43856:                                            ; preds = %43808
  %43857 = load i16, ptr %1269, align 2, !tbaa !15
  %43858 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %43857, ptr %43858, align 2, !tbaa !15
  br label %43859

43859:                                            ; preds = %43856, %43852
  br label %43860

43860:                                            ; preds = %43859, %43773
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1271) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1270) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %1269) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1268) #3
  br label %43861

43861:                                            ; preds = %43860
  br label %43862

43862:                                            ; preds = %43861
  br label %45018

43863:                                            ; preds = %41395
  br label %43864

43864:                                            ; preds = %43863
  call void @llvm.lifetime.start.p0(i64 8, ptr %1279) #3
  store double 5.000000e-01, ptr %1279, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %1280) #3
  %43865 = load ptr, ptr %10, align 8, !tbaa !5
  %43866 = load i8, ptr %43865, align 1, !tbaa !17
  store i8 %43866, ptr %1280, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %1281) #3
  store double 0.000000e+00, ptr %1281, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1282) #3
  store double 0.000000e+00, ptr %1282, align 8, !tbaa !11
  %43867 = load ptr, ptr %11, align 8, !tbaa !5
  %43868 = icmp ne ptr null, %43867
  br i1 %43868, label %43869, label %43895

43869:                                            ; preds = %43864
  %43870 = load ptr, ptr %12, align 8, !tbaa !5
  %43871 = icmp ne ptr null, %43870
  br i1 %43871, label %43872, label %43887

43872:                                            ; preds = %43869
  %43873 = load ptr, ptr %11, align 8, !tbaa !5
  %43874 = load i8, ptr %43873, align 1, !tbaa !17
  %43875 = zext i8 %43874 to i32
  %43876 = load i8, ptr %1280, align 1, !tbaa !17
  %43877 = zext i8 %43876 to i32
  %43878 = icmp sle i32 %43875, %43877
  br i1 %43878, label %43879, label %43887

43879:                                            ; preds = %43872
  %43880 = load i8, ptr %1280, align 1, !tbaa !17
  %43881 = zext i8 %43880 to i32
  %43882 = load ptr, ptr %12, align 8, !tbaa !5
  %43883 = load i8, ptr %43882, align 1, !tbaa !17
  %43884 = zext i8 %43883 to i32
  %43885 = icmp sle i32 %43881, %43884
  br i1 %43885, label %43886, label %43887

43886:                                            ; preds = %43879
  br label %43888

43887:                                            ; preds = %43879, %43872, %43869
  call void @__assert_fail(ptr noundef @.str.49, ptr noundef @.str.24, i32 noundef 500, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

43888:                                            ; preds = %43886
  %43889 = load ptr, ptr %11, align 8, !tbaa !5
  %43890 = load i8, ptr %43889, align 1, !tbaa !17
  %43891 = uitofp i8 %43890 to double
  store double %43891, ptr %1281, align 8, !tbaa !11
  %43892 = load ptr, ptr %12, align 8, !tbaa !5
  %43893 = load i8, ptr %43892, align 1, !tbaa !17
  %43894 = uitofp i8 %43893 to double
  store double %43894, ptr %1282, align 8, !tbaa !11
  br label %43895

43895:                                            ; preds = %43888, %43864
  %43896 = load i32, ptr %8, align 4, !tbaa !9
  %43897 = icmp ule i32 6, %43896
  br i1 %43897, label %43898, label %44136

43898:                                            ; preds = %43895
  %43899 = load double, ptr %1281, align 8, !tbaa !11
  %43900 = load double, ptr %1282, align 8, !tbaa !11
  %43901 = fcmp olt double %43899, %43900
  br i1 %43901, label %43902, label %44136

43902:                                            ; preds = %43898
  %43903 = load i32, ptr %8, align 4, !tbaa !9
  %43904 = icmp ule i32 15, %43903
  br i1 %43904, label %43905, label %43959

43905:                                            ; preds = %43902
  call void @llvm.lifetime.start.p0(i64 8, ptr %1283) #3
  %43906 = load double, ptr %1281, align 8, !tbaa !11
  %43907 = fcmp olt double 0.000000e+00, %43906
  br i1 %43907, label %43908, label %43910

43908:                                            ; preds = %43905
  %43909 = load double, ptr %1281, align 8, !tbaa !11
  br label %43911

43910:                                            ; preds = %43905
  br label %43911

43911:                                            ; preds = %43910, %43908
  %43912 = phi double [ %43909, %43908 ], [ 0.000000e+00, %43910 ]
  store double %43912, ptr %1283, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1284) #3
  %43913 = load double, ptr %1282, align 8, !tbaa !11
  %43914 = fcmp olt double 0.000000e+00, %43913
  br i1 %43914, label %43915, label %43917

43915:                                            ; preds = %43911
  %43916 = load double, ptr %1282, align 8, !tbaa !11
  br label %43918

43917:                                            ; preds = %43911
  br label %43918

43918:                                            ; preds = %43917, %43915
  %43919 = phi double [ %43916, %43915 ], [ 0.000000e+00, %43917 ]
  store double %43919, ptr %1284, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1285) #3
  %43920 = load double, ptr %1283, align 8, !tbaa !11
  %43921 = load double, ptr %1284, align 8, !tbaa !11
  %43922 = fcmp olt double %43920, %43921
  br i1 %43922, label %43923, label %43931

43923:                                            ; preds = %43918
  %43924 = load double, ptr %1282, align 8, !tbaa !11
  %43925 = load double, ptr %1281, align 8, !tbaa !11
  %43926 = fsub double %43924, %43925
  %43927 = load double, ptr %1284, align 8, !tbaa !11
  %43928 = load double, ptr %1283, align 8, !tbaa !11
  %43929 = fsub double %43927, %43928
  %43930 = fdiv double %43926, %43929
  br label %43932

43931:                                            ; preds = %43918
  br label %43932

43932:                                            ; preds = %43931, %43923
  %43933 = phi double [ %43930, %43923 ], [ 1.000000e+00, %43931 ]
  store double %43933, ptr %1285, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1286) #3
  %43934 = load double, ptr %1285, align 8, !tbaa !11
  %43935 = load i8, ptr %1280, align 1, !tbaa !17
  %43936 = zext i8 %43935 to i32
  %43937 = icmp slt i32 0, %43936
  br i1 %43937, label %43938, label %43941

43938:                                            ; preds = %43932
  %43939 = load i8, ptr %1280, align 1, !tbaa !17
  %43940 = zext i8 %43939 to i32
  br label %43942

43941:                                            ; preds = %43932
  br label %43942

43942:                                            ; preds = %43941, %43938
  %43943 = phi i32 [ %43940, %43938 ], [ 0, %43941 ]
  %43944 = sitofp i32 %43943 to double
  %43945 = fmul double %43934, %43944
  store double %43945, ptr %1286, align 8, !tbaa !11
  %43946 = load double, ptr %1286, align 8, !tbaa !11
  %43947 = fcmp ole double 0.000000e+00, %43946
  br i1 %43947, label %43948, label %43951

43948:                                            ; preds = %43942
  %43949 = load double, ptr %1286, align 8, !tbaa !11
  %43950 = fadd double %43949, 5.000000e-01
  br label %43954

43951:                                            ; preds = %43942
  %43952 = load double, ptr %1286, align 8, !tbaa !11
  %43953 = fsub double %43952, 5.000000e-01
  br label %43954

43954:                                            ; preds = %43951, %43948
  %43955 = phi double [ %43950, %43948 ], [ %43953, %43951 ]
  %43956 = fptoui double %43955 to i8
  store i8 %43956, ptr %1280, align 1, !tbaa !17
  %43957 = load double, ptr %1283, align 8, !tbaa !11
  store double %43957, ptr %1281, align 8, !tbaa !11
  %43958 = load double, ptr %1284, align 8, !tbaa !11
  store double %43958, ptr %1282, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1286) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1285) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1284) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1283) #3
  br label %44015

43959:                                            ; preds = %43902
  %43960 = load i32, ptr %8, align 4, !tbaa !9
  %43961 = icmp ugt i32 6, %43960
  br i1 %43961, label %43990, label %43962

43962:                                            ; preds = %43959
  %43963 = load i32, ptr %8, align 4, !tbaa !9
  %43964 = icmp ugt i32 15, %43963
  br i1 %43964, label %43965, label %43976

43965:                                            ; preds = %43962
  %43966 = load i32, ptr %9, align 4, !tbaa !9
  %43967 = icmp ugt i32 15, %43966
  br i1 %43967, label %43968, label %43973

43968:                                            ; preds = %43965
  %43969 = load i32, ptr %9, align 4, !tbaa !9
  %43970 = load i32, ptr %8, align 4, !tbaa !9
  %43971 = icmp ugt i32 %43969, %43970
  %43972 = zext i1 %43971 to i32
  br label %43974

43973:                                            ; preds = %43965
  br label %43974

43974:                                            ; preds = %43973, %43968
  %43975 = phi i32 [ %43972, %43968 ], [ 0, %43973 ]
  br label %43987

43976:                                            ; preds = %43962
  %43977 = load i32, ptr %9, align 4, !tbaa !9
  %43978 = icmp ugt i32 15, %43977
  br i1 %43978, label %43979, label %43980

43979:                                            ; preds = %43976
  br label %43985

43980:                                            ; preds = %43976
  %43981 = load i32, ptr %9, align 4, !tbaa !9
  %43982 = load i32, ptr %8, align 4, !tbaa !9
  %43983 = icmp ugt i32 %43981, %43982
  %43984 = zext i1 %43983 to i32
  br label %43985

43985:                                            ; preds = %43980, %43979
  %43986 = phi i32 [ 0, %43979 ], [ %43984, %43980 ]
  br label %43987

43987:                                            ; preds = %43985, %43974
  %43988 = phi i32 [ %43975, %43974 ], [ %43986, %43985 ]
  %43989 = icmp ne i32 %43988, 0
  br label %43990

43990:                                            ; preds = %43987, %43959
  %43991 = phi i1 [ true, %43959 ], [ %43989, %43987 ]
  %43992 = zext i1 %43991 to i32
  %43993 = icmp eq i32 0, %43992
  br i1 %43993, label %43994, label %44014

43994:                                            ; preds = %43990
  %43995 = load double, ptr %1281, align 8, !tbaa !11
  %43996 = fcmp ogt double 0.000000e+00, %43995
  br i1 %43996, label %43997, label %44014

43997:                                            ; preds = %43994
  %43998 = load double, ptr %1282, align 8, !tbaa !11
  %43999 = fcmp olt double 0.000000e+00, %43998
  br i1 %43999, label %44000, label %44014

44000:                                            ; preds = %43997
  %44001 = load double, ptr %1281, align 8, !tbaa !11
  %44002 = fneg double %44001
  %44003 = load double, ptr %1282, align 8, !tbaa !11
  %44004 = fcmp olt double %44002, %44003
  br i1 %44004, label %44005, label %44007

44005:                                            ; preds = %44000
  %44006 = load double, ptr %1282, align 8, !tbaa !11
  br label %44010

44007:                                            ; preds = %44000
  %44008 = load double, ptr %1281, align 8, !tbaa !11
  %44009 = fneg double %44008
  br label %44010

44010:                                            ; preds = %44007, %44005
  %44011 = phi double [ %44006, %44005 ], [ %44009, %44007 ]
  store double %44011, ptr %1282, align 8, !tbaa !11
  %44012 = load double, ptr %1282, align 8, !tbaa !11
  %44013 = fneg double %44012
  store double %44013, ptr %1281, align 8, !tbaa !11
  br label %44014

44014:                                            ; preds = %44010, %43997, %43994, %43990
  br label %44015

44015:                                            ; preds = %44014, %43954
  call void @llvm.lifetime.start.p0(i64 8, ptr %1287) #3
  %44016 = load double, ptr %1281, align 8, !tbaa !11
  %44017 = fcmp ole double 0.000000e+00, %44016
  %44018 = zext i1 %44017 to i64
  %44019 = select i1 %44017, double 0.000000e+00, double 0.000000e+00
  store double %44019, ptr %1287, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1288) #3
  %44020 = load double, ptr %1282, align 8, !tbaa !11
  %44021 = fcmp ole double 0.000000e+00, %44020
  %44022 = zext i1 %44021 to i64
  %44023 = select i1 %44021, double 6.553500e+04, double 0.000000e+00
  store double %44023, ptr %1288, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1289) #3
  %44024 = load i8, ptr %1280, align 1, !tbaa !17
  %44025 = uitofp i8 %44024 to double
  %44026 = load double, ptr %1281, align 8, !tbaa !11
  %44027 = fsub double %44025, %44026
  %44028 = load double, ptr %1288, align 8, !tbaa !11
  %44029 = load double, ptr %1287, align 8, !tbaa !11
  %44030 = fsub double %44028, %44029
  %44031 = fmul double %44027, %44030
  %44032 = load double, ptr %1282, align 8, !tbaa !11
  %44033 = load double, ptr %1281, align 8, !tbaa !11
  %44034 = fsub double %44032, %44033
  %44035 = fdiv double %44031, %44034
  %44036 = load double, ptr %1287, align 8, !tbaa !11
  %44037 = fadd double %44035, %44036
  store double %44037, ptr %1289, align 8, !tbaa !11
  %44038 = load double, ptr %1287, align 8, !tbaa !11
  %44039 = load double, ptr %1289, align 8, !tbaa !11
  %44040 = fcmp ole double 0.000000e+00, %44039
  br i1 %44040, label %44041, label %44044

44041:                                            ; preds = %44015
  %44042 = load double, ptr %1289, align 8, !tbaa !11
  %44043 = fadd double %44042, 5.000000e-01
  br label %44047

44044:                                            ; preds = %44015
  %44045 = load double, ptr %1289, align 8, !tbaa !11
  %44046 = fsub double %44045, 5.000000e-01
  br label %44047

44047:                                            ; preds = %44044, %44041
  %44048 = phi double [ %44043, %44041 ], [ %44046, %44044 ]
  %44049 = fcmp olt double %44038, %44048
  br i1 %44049, label %44050, label %44104

44050:                                            ; preds = %44047
  %44051 = load double, ptr %1289, align 8, !tbaa !11
  %44052 = fcmp ole double 0.000000e+00, %44051
  br i1 %44052, label %44053, label %44056

44053:                                            ; preds = %44050
  %44054 = load double, ptr %1289, align 8, !tbaa !11
  %44055 = fadd double %44054, 5.000000e-01
  br label %44059

44056:                                            ; preds = %44050
  %44057 = load double, ptr %1289, align 8, !tbaa !11
  %44058 = fsub double %44057, 5.000000e-01
  br label %44059

44059:                                            ; preds = %44056, %44053
  %44060 = phi double [ %44055, %44053 ], [ %44058, %44056 ]
  %44061 = load double, ptr %1288, align 8, !tbaa !11
  %44062 = fcmp ole double %44060, %44061
  br i1 %44062, label %44063, label %44074

44063:                                            ; preds = %44059
  %44064 = load double, ptr %1289, align 8, !tbaa !11
  %44065 = fcmp ole double 0.000000e+00, %44064
  br i1 %44065, label %44066, label %44069

44066:                                            ; preds = %44063
  %44067 = load double, ptr %1289, align 8, !tbaa !11
  %44068 = fadd double %44067, 5.000000e-01
  br label %44072

44069:                                            ; preds = %44063
  %44070 = load double, ptr %1289, align 8, !tbaa !11
  %44071 = fsub double %44070, 5.000000e-01
  br label %44072

44072:                                            ; preds = %44069, %44066
  %44073 = phi double [ %44068, %44066 ], [ %44071, %44069 ]
  br label %44102

44074:                                            ; preds = %44059
  %44075 = load double, ptr %1289, align 8, !tbaa !11
  %44076 = fcmp ole double 0.000000e+00, %44075
  br i1 %44076, label %44077, label %44080

44077:                                            ; preds = %44074
  %44078 = load double, ptr %1289, align 8, !tbaa !11
  %44079 = fadd double %44078, 5.000000e-01
  br label %44083

44080:                                            ; preds = %44074
  %44081 = load double, ptr %1289, align 8, !tbaa !11
  %44082 = fsub double %44081, 5.000000e-01
  br label %44083

44083:                                            ; preds = %44080, %44077
  %44084 = phi double [ %44079, %44077 ], [ %44082, %44080 ]
  %44085 = load double, ptr %1288, align 8, !tbaa !11
  %44086 = fcmp olt double %44084, %44085
  br i1 %44086, label %44087, label %44098

44087:                                            ; preds = %44083
  %44088 = load double, ptr %1289, align 8, !tbaa !11
  %44089 = fcmp ole double 0.000000e+00, %44088
  br i1 %44089, label %44090, label %44093

44090:                                            ; preds = %44087
  %44091 = load double, ptr %1289, align 8, !tbaa !11
  %44092 = fadd double %44091, 5.000000e-01
  br label %44096

44093:                                            ; preds = %44087
  %44094 = load double, ptr %1289, align 8, !tbaa !11
  %44095 = fsub double %44094, 5.000000e-01
  br label %44096

44096:                                            ; preds = %44093, %44090
  %44097 = phi double [ %44092, %44090 ], [ %44095, %44093 ]
  br label %44100

44098:                                            ; preds = %44083
  %44099 = load double, ptr %1288, align 8, !tbaa !11
  br label %44100

44100:                                            ; preds = %44098, %44096
  %44101 = phi double [ %44097, %44096 ], [ %44099, %44098 ]
  br label %44102

44102:                                            ; preds = %44100, %44072
  %44103 = phi double [ %44073, %44072 ], [ %44101, %44100 ]
  br label %44132

44104:                                            ; preds = %44047
  %44105 = load double, ptr %1287, align 8, !tbaa !11
  %44106 = load double, ptr %1289, align 8, !tbaa !11
  %44107 = fcmp ole double 0.000000e+00, %44106
  br i1 %44107, label %44108, label %44111

44108:                                            ; preds = %44104
  %44109 = load double, ptr %1289, align 8, !tbaa !11
  %44110 = fadd double %44109, 5.000000e-01
  br label %44114

44111:                                            ; preds = %44104
  %44112 = load double, ptr %1289, align 8, !tbaa !11
  %44113 = fsub double %44112, 5.000000e-01
  br label %44114

44114:                                            ; preds = %44111, %44108
  %44115 = phi double [ %44110, %44108 ], [ %44113, %44111 ]
  %44116 = fcmp olt double %44105, %44115
  br i1 %44116, label %44117, label %44128

44117:                                            ; preds = %44114
  %44118 = load double, ptr %1289, align 8, !tbaa !11
  %44119 = fcmp ole double 0.000000e+00, %44118
  br i1 %44119, label %44120, label %44123

44120:                                            ; preds = %44117
  %44121 = load double, ptr %1289, align 8, !tbaa !11
  %44122 = fadd double %44121, 5.000000e-01
  br label %44126

44123:                                            ; preds = %44117
  %44124 = load double, ptr %1289, align 8, !tbaa !11
  %44125 = fsub double %44124, 5.000000e-01
  br label %44126

44126:                                            ; preds = %44123, %44120
  %44127 = phi double [ %44122, %44120 ], [ %44125, %44123 ]
  br label %44130

44128:                                            ; preds = %44114
  %44129 = load double, ptr %1287, align 8, !tbaa !11
  br label %44130

44130:                                            ; preds = %44128, %44126
  %44131 = phi double [ %44127, %44126 ], [ %44129, %44128 ]
  br label %44132

44132:                                            ; preds = %44130, %44102
  %44133 = phi double [ %44103, %44102 ], [ %44131, %44130 ]
  %44134 = fptoui double %44133 to i16
  %44135 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %44134, ptr %44135, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %1289) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1288) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1287) #3
  br label %44220

44136:                                            ; preds = %43898, %43895
  %44137 = load i32, ptr %8, align 4, !tbaa !9
  %44138 = icmp ugt i32 6, %44137
  br i1 %44138, label %44167, label %44139

44139:                                            ; preds = %44136
  %44140 = load i32, ptr %8, align 4, !tbaa !9
  %44141 = icmp ugt i32 15, %44140
  br i1 %44141, label %44142, label %44153

44142:                                            ; preds = %44139
  %44143 = load i32, ptr %9, align 4, !tbaa !9
  %44144 = icmp ugt i32 15, %44143
  br i1 %44144, label %44145, label %44150

44145:                                            ; preds = %44142
  %44146 = load i32, ptr %9, align 4, !tbaa !9
  %44147 = load i32, ptr %8, align 4, !tbaa !9
  %44148 = icmp ugt i32 %44146, %44147
  %44149 = zext i1 %44148 to i32
  br label %44151

44150:                                            ; preds = %44142
  br label %44151

44151:                                            ; preds = %44150, %44145
  %44152 = phi i32 [ %44149, %44145 ], [ 0, %44150 ]
  br label %44164

44153:                                            ; preds = %44139
  %44154 = load i32, ptr %9, align 4, !tbaa !9
  %44155 = icmp ugt i32 15, %44154
  br i1 %44155, label %44156, label %44157

44156:                                            ; preds = %44153
  br label %44162

44157:                                            ; preds = %44153
  %44158 = load i32, ptr %9, align 4, !tbaa !9
  %44159 = load i32, ptr %8, align 4, !tbaa !9
  %44160 = icmp ugt i32 %44158, %44159
  %44161 = zext i1 %44160 to i32
  br label %44162

44162:                                            ; preds = %44157, %44156
  %44163 = phi i32 [ 0, %44156 ], [ %44161, %44157 ]
  br label %44164

44164:                                            ; preds = %44162, %44151
  %44165 = phi i32 [ %44152, %44151 ], [ %44163, %44162 ]
  %44166 = icmp ne i32 %44165, 0
  br label %44167

44167:                                            ; preds = %44164, %44136
  %44168 = phi i1 [ true, %44136 ], [ %44166, %44164 ]
  %44169 = zext i1 %44168 to i32
  %44170 = icmp eq i32 0, %44169
  br i1 %44170, label %44171, label %44215

44171:                                            ; preds = %44167
  %44172 = load i8, ptr %1280, align 1, !tbaa !17
  %44173 = zext i8 %44172 to i32
  %44174 = sitofp i32 %44173 to double
  %44175 = fcmp olt double 0.000000e+00, %44174
  br i1 %44175, label %44176, label %44199

44176:                                            ; preds = %44171
  %44177 = load i8, ptr %1280, align 1, !tbaa !17
  %44178 = zext i8 %44177 to i32
  %44179 = sitofp i32 %44178 to double
  %44180 = fcmp ole double %44179, 6.553500e+04
  br i1 %44180, label %44181, label %44185

44181:                                            ; preds = %44176
  %44182 = load i8, ptr %1280, align 1, !tbaa !17
  %44183 = zext i8 %44182 to i32
  %44184 = sitofp i32 %44183 to double
  br label %44197

44185:                                            ; preds = %44176
  %44186 = load i8, ptr %1280, align 1, !tbaa !17
  %44187 = zext i8 %44186 to i32
  %44188 = sitofp i32 %44187 to double
  %44189 = fcmp olt double %44188, 6.553500e+04
  br i1 %44189, label %44190, label %44194

44190:                                            ; preds = %44185
  %44191 = load i8, ptr %1280, align 1, !tbaa !17
  %44192 = zext i8 %44191 to i32
  %44193 = sitofp i32 %44192 to double
  br label %44195

44194:                                            ; preds = %44185
  br label %44195

44195:                                            ; preds = %44194, %44190
  %44196 = phi double [ %44193, %44190 ], [ 6.553500e+04, %44194 ]
  br label %44197

44197:                                            ; preds = %44195, %44181
  %44198 = phi double [ %44184, %44181 ], [ %44196, %44195 ]
  br label %44211

44199:                                            ; preds = %44171
  %44200 = load i8, ptr %1280, align 1, !tbaa !17
  %44201 = zext i8 %44200 to i32
  %44202 = sitofp i32 %44201 to double
  %44203 = fcmp olt double 0.000000e+00, %44202
  br i1 %44203, label %44204, label %44208

44204:                                            ; preds = %44199
  %44205 = load i8, ptr %1280, align 1, !tbaa !17
  %44206 = zext i8 %44205 to i32
  %44207 = sitofp i32 %44206 to double
  br label %44209

44208:                                            ; preds = %44199
  br label %44209

44209:                                            ; preds = %44208, %44204
  %44210 = phi double [ %44207, %44204 ], [ 0.000000e+00, %44208 ]
  br label %44211

44211:                                            ; preds = %44209, %44197
  %44212 = phi double [ %44198, %44197 ], [ %44210, %44209 ]
  %44213 = fptoui double %44212 to i16
  %44214 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %44213, ptr %44214, align 2, !tbaa !15
  br label %44219

44215:                                            ; preds = %44167
  %44216 = load i8, ptr %1280, align 1, !tbaa !17
  %44217 = zext i8 %44216 to i16
  %44218 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %44217, ptr %44218, align 2, !tbaa !15
  br label %44219

44219:                                            ; preds = %44215, %44211
  br label %44220

44220:                                            ; preds = %44219, %44132
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1282) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1281) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %1280) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1279) #3
  br label %44221

44221:                                            ; preds = %44220
  br label %44222

44222:                                            ; preds = %44221
  br label %45018

44223:                                            ; preds = %41395
  br label %44224

44224:                                            ; preds = %44223
  call void @llvm.lifetime.start.p0(i64 8, ptr %1290) #3
  store double 5.000000e-01, ptr %1290, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1291) #3
  %44225 = load ptr, ptr %10, align 8, !tbaa !5
  %44226 = load double, ptr %44225, align 8, !tbaa !11
  store double %44226, ptr %1291, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1292) #3
  store double 0.000000e+00, ptr %1292, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1293) #3
  store double 0.000000e+00, ptr %1293, align 8, !tbaa !11
  %44227 = load ptr, ptr %11, align 8, !tbaa !5
  %44228 = icmp ne ptr null, %44227
  br i1 %44228, label %44229, label %44253

44229:                                            ; preds = %44224
  %44230 = load double, ptr %1291, align 8, !tbaa !11
  %44231 = load double, ptr %1291, align 8, !tbaa !11
  %44232 = fcmp oeq double %44230, %44231
  br i1 %44232, label %44233, label %44253

44233:                                            ; preds = %44229
  %44234 = load ptr, ptr %12, align 8, !tbaa !5
  %44235 = icmp ne ptr null, %44234
  br i1 %44235, label %44236, label %44247

44236:                                            ; preds = %44233
  %44237 = load ptr, ptr %11, align 8, !tbaa !5
  %44238 = load double, ptr %44237, align 8, !tbaa !11
  %44239 = load double, ptr %1291, align 8, !tbaa !11
  %44240 = fcmp ole double %44238, %44239
  br i1 %44240, label %44241, label %44247

44241:                                            ; preds = %44236
  %44242 = load double, ptr %1291, align 8, !tbaa !11
  %44243 = load ptr, ptr %12, align 8, !tbaa !5
  %44244 = load double, ptr %44243, align 8, !tbaa !11
  %44245 = fcmp ole double %44242, %44244
  br i1 %44245, label %44246, label %44247

44246:                                            ; preds = %44241
  br label %44248

44247:                                            ; preds = %44241, %44236, %44233
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.24, i32 noundef 500, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

44248:                                            ; preds = %44246
  %44249 = load ptr, ptr %11, align 8, !tbaa !5
  %44250 = load double, ptr %44249, align 8, !tbaa !11
  store double %44250, ptr %1292, align 8, !tbaa !11
  %44251 = load ptr, ptr %12, align 8, !tbaa !5
  %44252 = load double, ptr %44251, align 8, !tbaa !11
  store double %44252, ptr %1293, align 8, !tbaa !11
  br label %44253

44253:                                            ; preds = %44248, %44229, %44224
  %44254 = load i32, ptr %8, align 4, !tbaa !9
  %44255 = icmp ule i32 6, %44254
  br i1 %44255, label %44256, label %44479

44256:                                            ; preds = %44253
  %44257 = load double, ptr %1292, align 8, !tbaa !11
  %44258 = load double, ptr %1293, align 8, !tbaa !11
  %44259 = fcmp olt double %44257, %44258
  br i1 %44259, label %44260, label %44479

44260:                                            ; preds = %44256
  %44261 = load i32, ptr %8, align 4, !tbaa !9
  %44262 = icmp ule i32 15, %44261
  br i1 %44262, label %44263, label %44303

44263:                                            ; preds = %44260
  call void @llvm.lifetime.start.p0(i64 8, ptr %1294) #3
  %44264 = load double, ptr %1292, align 8, !tbaa !11
  %44265 = fcmp olt double 0.000000e+00, %44264
  br i1 %44265, label %44266, label %44268

44266:                                            ; preds = %44263
  %44267 = load double, ptr %1292, align 8, !tbaa !11
  br label %44269

44268:                                            ; preds = %44263
  br label %44269

44269:                                            ; preds = %44268, %44266
  %44270 = phi double [ %44267, %44266 ], [ 0.000000e+00, %44268 ]
  store double %44270, ptr %1294, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1295) #3
  %44271 = load double, ptr %1293, align 8, !tbaa !11
  %44272 = fcmp olt double 0.000000e+00, %44271
  br i1 %44272, label %44273, label %44275

44273:                                            ; preds = %44269
  %44274 = load double, ptr %1293, align 8, !tbaa !11
  br label %44276

44275:                                            ; preds = %44269
  br label %44276

44276:                                            ; preds = %44275, %44273
  %44277 = phi double [ %44274, %44273 ], [ 0.000000e+00, %44275 ]
  store double %44277, ptr %1295, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1296) #3
  %44278 = load double, ptr %1294, align 8, !tbaa !11
  %44279 = load double, ptr %1295, align 8, !tbaa !11
  %44280 = fcmp olt double %44278, %44279
  br i1 %44280, label %44281, label %44289

44281:                                            ; preds = %44276
  %44282 = load double, ptr %1293, align 8, !tbaa !11
  %44283 = load double, ptr %1292, align 8, !tbaa !11
  %44284 = fsub double %44282, %44283
  %44285 = load double, ptr %1295, align 8, !tbaa !11
  %44286 = load double, ptr %1294, align 8, !tbaa !11
  %44287 = fsub double %44285, %44286
  %44288 = fdiv double %44284, %44287
  br label %44290

44289:                                            ; preds = %44276
  br label %44290

44290:                                            ; preds = %44289, %44281
  %44291 = phi double [ %44288, %44281 ], [ 1.000000e+00, %44289 ]
  store double %44291, ptr %1296, align 8, !tbaa !11
  %44292 = load double, ptr %1296, align 8, !tbaa !11
  %44293 = load double, ptr %1291, align 8, !tbaa !11
  %44294 = fcmp olt double 0.000000e+00, %44293
  br i1 %44294, label %44295, label %44297

44295:                                            ; preds = %44290
  %44296 = load double, ptr %1291, align 8, !tbaa !11
  br label %44298

44297:                                            ; preds = %44290
  br label %44298

44298:                                            ; preds = %44297, %44295
  %44299 = phi double [ %44296, %44295 ], [ 0.000000e+00, %44297 ]
  %44300 = fmul double %44292, %44299
  store double %44300, ptr %1291, align 8, !tbaa !11
  %44301 = load double, ptr %1294, align 8, !tbaa !11
  store double %44301, ptr %1292, align 8, !tbaa !11
  %44302 = load double, ptr %1295, align 8, !tbaa !11
  store double %44302, ptr %1293, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1296) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1295) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1294) #3
  br label %44359

44303:                                            ; preds = %44260
  %44304 = load i32, ptr %8, align 4, !tbaa !9
  %44305 = icmp ugt i32 6, %44304
  br i1 %44305, label %44334, label %44306

44306:                                            ; preds = %44303
  %44307 = load i32, ptr %8, align 4, !tbaa !9
  %44308 = icmp ugt i32 15, %44307
  br i1 %44308, label %44309, label %44320

44309:                                            ; preds = %44306
  %44310 = load i32, ptr %9, align 4, !tbaa !9
  %44311 = icmp ugt i32 15, %44310
  br i1 %44311, label %44312, label %44317

44312:                                            ; preds = %44309
  %44313 = load i32, ptr %9, align 4, !tbaa !9
  %44314 = load i32, ptr %8, align 4, !tbaa !9
  %44315 = icmp ugt i32 %44313, %44314
  %44316 = zext i1 %44315 to i32
  br label %44318

44317:                                            ; preds = %44309
  br label %44318

44318:                                            ; preds = %44317, %44312
  %44319 = phi i32 [ %44316, %44312 ], [ 0, %44317 ]
  br label %44331

44320:                                            ; preds = %44306
  %44321 = load i32, ptr %9, align 4, !tbaa !9
  %44322 = icmp ugt i32 15, %44321
  br i1 %44322, label %44323, label %44324

44323:                                            ; preds = %44320
  br label %44329

44324:                                            ; preds = %44320
  %44325 = load i32, ptr %9, align 4, !tbaa !9
  %44326 = load i32, ptr %8, align 4, !tbaa !9
  %44327 = icmp ugt i32 %44325, %44326
  %44328 = zext i1 %44327 to i32
  br label %44329

44329:                                            ; preds = %44324, %44323
  %44330 = phi i32 [ 0, %44323 ], [ %44328, %44324 ]
  br label %44331

44331:                                            ; preds = %44329, %44318
  %44332 = phi i32 [ %44319, %44318 ], [ %44330, %44329 ]
  %44333 = icmp ne i32 %44332, 0
  br label %44334

44334:                                            ; preds = %44331, %44303
  %44335 = phi i1 [ true, %44303 ], [ %44333, %44331 ]
  %44336 = zext i1 %44335 to i32
  %44337 = icmp eq i32 0, %44336
  br i1 %44337, label %44338, label %44358

44338:                                            ; preds = %44334
  %44339 = load double, ptr %1292, align 8, !tbaa !11
  %44340 = fcmp ogt double 0.000000e+00, %44339
  br i1 %44340, label %44341, label %44358

44341:                                            ; preds = %44338
  %44342 = load double, ptr %1293, align 8, !tbaa !11
  %44343 = fcmp olt double 0.000000e+00, %44342
  br i1 %44343, label %44344, label %44358

44344:                                            ; preds = %44341
  %44345 = load double, ptr %1292, align 8, !tbaa !11
  %44346 = fneg double %44345
  %44347 = load double, ptr %1293, align 8, !tbaa !11
  %44348 = fcmp olt double %44346, %44347
  br i1 %44348, label %44349, label %44351

44349:                                            ; preds = %44344
  %44350 = load double, ptr %1293, align 8, !tbaa !11
  br label %44354

44351:                                            ; preds = %44344
  %44352 = load double, ptr %1292, align 8, !tbaa !11
  %44353 = fneg double %44352
  br label %44354

44354:                                            ; preds = %44351, %44349
  %44355 = phi double [ %44350, %44349 ], [ %44353, %44351 ]
  store double %44355, ptr %1293, align 8, !tbaa !11
  %44356 = load double, ptr %1293, align 8, !tbaa !11
  %44357 = fneg double %44356
  store double %44357, ptr %1292, align 8, !tbaa !11
  br label %44358

44358:                                            ; preds = %44354, %44341, %44338, %44334
  br label %44359

44359:                                            ; preds = %44358, %44298
  call void @llvm.lifetime.start.p0(i64 8, ptr %1297) #3
  %44360 = load double, ptr %1292, align 8, !tbaa !11
  %44361 = fcmp ole double 0.000000e+00, %44360
  %44362 = zext i1 %44361 to i64
  %44363 = select i1 %44361, double 0.000000e+00, double 0.000000e+00
  store double %44363, ptr %1297, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1298) #3
  %44364 = load double, ptr %1293, align 8, !tbaa !11
  %44365 = fcmp ole double 0.000000e+00, %44364
  %44366 = zext i1 %44365 to i64
  %44367 = select i1 %44365, double 6.553500e+04, double 0.000000e+00
  store double %44367, ptr %1298, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1299) #3
  %44368 = load double, ptr %1291, align 8, !tbaa !11
  %44369 = load double, ptr %1292, align 8, !tbaa !11
  %44370 = fsub double %44368, %44369
  %44371 = load double, ptr %1298, align 8, !tbaa !11
  %44372 = load double, ptr %1297, align 8, !tbaa !11
  %44373 = fsub double %44371, %44372
  %44374 = fmul double %44370, %44373
  %44375 = load double, ptr %1293, align 8, !tbaa !11
  %44376 = load double, ptr %1292, align 8, !tbaa !11
  %44377 = fsub double %44375, %44376
  %44378 = fdiv double %44374, %44377
  %44379 = load double, ptr %1297, align 8, !tbaa !11
  %44380 = fadd double %44378, %44379
  store double %44380, ptr %1299, align 8, !tbaa !11
  %44381 = load double, ptr %1297, align 8, !tbaa !11
  %44382 = load double, ptr %1299, align 8, !tbaa !11
  %44383 = fcmp ole double 0.000000e+00, %44382
  br i1 %44383, label %44384, label %44387

44384:                                            ; preds = %44359
  %44385 = load double, ptr %1299, align 8, !tbaa !11
  %44386 = fadd double %44385, 5.000000e-01
  br label %44390

44387:                                            ; preds = %44359
  %44388 = load double, ptr %1299, align 8, !tbaa !11
  %44389 = fsub double %44388, 5.000000e-01
  br label %44390

44390:                                            ; preds = %44387, %44384
  %44391 = phi double [ %44386, %44384 ], [ %44389, %44387 ]
  %44392 = fcmp olt double %44381, %44391
  br i1 %44392, label %44393, label %44447

44393:                                            ; preds = %44390
  %44394 = load double, ptr %1299, align 8, !tbaa !11
  %44395 = fcmp ole double 0.000000e+00, %44394
  br i1 %44395, label %44396, label %44399

44396:                                            ; preds = %44393
  %44397 = load double, ptr %1299, align 8, !tbaa !11
  %44398 = fadd double %44397, 5.000000e-01
  br label %44402

44399:                                            ; preds = %44393
  %44400 = load double, ptr %1299, align 8, !tbaa !11
  %44401 = fsub double %44400, 5.000000e-01
  br label %44402

44402:                                            ; preds = %44399, %44396
  %44403 = phi double [ %44398, %44396 ], [ %44401, %44399 ]
  %44404 = load double, ptr %1298, align 8, !tbaa !11
  %44405 = fcmp ole double %44403, %44404
  br i1 %44405, label %44406, label %44417

44406:                                            ; preds = %44402
  %44407 = load double, ptr %1299, align 8, !tbaa !11
  %44408 = fcmp ole double 0.000000e+00, %44407
  br i1 %44408, label %44409, label %44412

44409:                                            ; preds = %44406
  %44410 = load double, ptr %1299, align 8, !tbaa !11
  %44411 = fadd double %44410, 5.000000e-01
  br label %44415

44412:                                            ; preds = %44406
  %44413 = load double, ptr %1299, align 8, !tbaa !11
  %44414 = fsub double %44413, 5.000000e-01
  br label %44415

44415:                                            ; preds = %44412, %44409
  %44416 = phi double [ %44411, %44409 ], [ %44414, %44412 ]
  br label %44445

44417:                                            ; preds = %44402
  %44418 = load double, ptr %1299, align 8, !tbaa !11
  %44419 = fcmp ole double 0.000000e+00, %44418
  br i1 %44419, label %44420, label %44423

44420:                                            ; preds = %44417
  %44421 = load double, ptr %1299, align 8, !tbaa !11
  %44422 = fadd double %44421, 5.000000e-01
  br label %44426

44423:                                            ; preds = %44417
  %44424 = load double, ptr %1299, align 8, !tbaa !11
  %44425 = fsub double %44424, 5.000000e-01
  br label %44426

44426:                                            ; preds = %44423, %44420
  %44427 = phi double [ %44422, %44420 ], [ %44425, %44423 ]
  %44428 = load double, ptr %1298, align 8, !tbaa !11
  %44429 = fcmp olt double %44427, %44428
  br i1 %44429, label %44430, label %44441

44430:                                            ; preds = %44426
  %44431 = load double, ptr %1299, align 8, !tbaa !11
  %44432 = fcmp ole double 0.000000e+00, %44431
  br i1 %44432, label %44433, label %44436

44433:                                            ; preds = %44430
  %44434 = load double, ptr %1299, align 8, !tbaa !11
  %44435 = fadd double %44434, 5.000000e-01
  br label %44439

44436:                                            ; preds = %44430
  %44437 = load double, ptr %1299, align 8, !tbaa !11
  %44438 = fsub double %44437, 5.000000e-01
  br label %44439

44439:                                            ; preds = %44436, %44433
  %44440 = phi double [ %44435, %44433 ], [ %44438, %44436 ]
  br label %44443

44441:                                            ; preds = %44426
  %44442 = load double, ptr %1298, align 8, !tbaa !11
  br label %44443

44443:                                            ; preds = %44441, %44439
  %44444 = phi double [ %44440, %44439 ], [ %44442, %44441 ]
  br label %44445

44445:                                            ; preds = %44443, %44415
  %44446 = phi double [ %44416, %44415 ], [ %44444, %44443 ]
  br label %44475

44447:                                            ; preds = %44390
  %44448 = load double, ptr %1297, align 8, !tbaa !11
  %44449 = load double, ptr %1299, align 8, !tbaa !11
  %44450 = fcmp ole double 0.000000e+00, %44449
  br i1 %44450, label %44451, label %44454

44451:                                            ; preds = %44447
  %44452 = load double, ptr %1299, align 8, !tbaa !11
  %44453 = fadd double %44452, 5.000000e-01
  br label %44457

44454:                                            ; preds = %44447
  %44455 = load double, ptr %1299, align 8, !tbaa !11
  %44456 = fsub double %44455, 5.000000e-01
  br label %44457

44457:                                            ; preds = %44454, %44451
  %44458 = phi double [ %44453, %44451 ], [ %44456, %44454 ]
  %44459 = fcmp olt double %44448, %44458
  br i1 %44459, label %44460, label %44471

44460:                                            ; preds = %44457
  %44461 = load double, ptr %1299, align 8, !tbaa !11
  %44462 = fcmp ole double 0.000000e+00, %44461
  br i1 %44462, label %44463, label %44466

44463:                                            ; preds = %44460
  %44464 = load double, ptr %1299, align 8, !tbaa !11
  %44465 = fadd double %44464, 5.000000e-01
  br label %44469

44466:                                            ; preds = %44460
  %44467 = load double, ptr %1299, align 8, !tbaa !11
  %44468 = fsub double %44467, 5.000000e-01
  br label %44469

44469:                                            ; preds = %44466, %44463
  %44470 = phi double [ %44465, %44463 ], [ %44468, %44466 ]
  br label %44473

44471:                                            ; preds = %44457
  %44472 = load double, ptr %1297, align 8, !tbaa !11
  br label %44473

44473:                                            ; preds = %44471, %44469
  %44474 = phi double [ %44470, %44469 ], [ %44472, %44471 ]
  br label %44475

44475:                                            ; preds = %44473, %44445
  %44476 = phi double [ %44446, %44445 ], [ %44474, %44473 ]
  %44477 = fptoui double %44476 to i16
  %44478 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %44477, ptr %44478, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %1299) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1298) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1297) #3
  br label %44605

44479:                                            ; preds = %44256, %44253
  %44480 = load i32, ptr %8, align 4, !tbaa !9
  %44481 = icmp ugt i32 6, %44480
  br i1 %44481, label %44510, label %44482

44482:                                            ; preds = %44479
  %44483 = load i32, ptr %8, align 4, !tbaa !9
  %44484 = icmp ugt i32 15, %44483
  br i1 %44484, label %44485, label %44496

44485:                                            ; preds = %44482
  %44486 = load i32, ptr %9, align 4, !tbaa !9
  %44487 = icmp ugt i32 15, %44486
  br i1 %44487, label %44488, label %44493

44488:                                            ; preds = %44485
  %44489 = load i32, ptr %9, align 4, !tbaa !9
  %44490 = load i32, ptr %8, align 4, !tbaa !9
  %44491 = icmp ugt i32 %44489, %44490
  %44492 = zext i1 %44491 to i32
  br label %44494

44493:                                            ; preds = %44485
  br label %44494

44494:                                            ; preds = %44493, %44488
  %44495 = phi i32 [ %44492, %44488 ], [ 0, %44493 ]
  br label %44507

44496:                                            ; preds = %44482
  %44497 = load i32, ptr %9, align 4, !tbaa !9
  %44498 = icmp ugt i32 15, %44497
  br i1 %44498, label %44499, label %44500

44499:                                            ; preds = %44496
  br label %44505

44500:                                            ; preds = %44496
  %44501 = load i32, ptr %9, align 4, !tbaa !9
  %44502 = load i32, ptr %8, align 4, !tbaa !9
  %44503 = icmp ugt i32 %44501, %44502
  %44504 = zext i1 %44503 to i32
  br label %44505

44505:                                            ; preds = %44500, %44499
  %44506 = phi i32 [ 0, %44499 ], [ %44504, %44500 ]
  br label %44507

44507:                                            ; preds = %44505, %44494
  %44508 = phi i32 [ %44495, %44494 ], [ %44506, %44505 ]
  %44509 = icmp ne i32 %44508, 0
  br label %44510

44510:                                            ; preds = %44507, %44479
  %44511 = phi i1 [ true, %44479 ], [ %44509, %44507 ]
  %44512 = zext i1 %44511 to i32
  %44513 = icmp eq i32 0, %44512
  br i1 %44513, label %44514, label %44591

44514:                                            ; preds = %44510
  %44515 = load double, ptr %1291, align 8, !tbaa !11
  %44516 = fcmp ole double 0.000000e+00, %44515
  br i1 %44516, label %44517, label %44552

44517:                                            ; preds = %44514
  %44518 = load double, ptr %1291, align 8, !tbaa !11
  %44519 = fadd double %44518, 5.000000e-01
  %44520 = fcmp olt double 0.000000e+00, %44519
  br i1 %44520, label %44521, label %44540

44521:                                            ; preds = %44517
  %44522 = load double, ptr %1291, align 8, !tbaa !11
  %44523 = fadd double %44522, 5.000000e-01
  %44524 = fcmp ole double %44523, 6.553500e+04
  br i1 %44524, label %44525, label %44528

44525:                                            ; preds = %44521
  %44526 = load double, ptr %1291, align 8, !tbaa !11
  %44527 = fadd double %44526, 5.000000e-01
  br label %44538

44528:                                            ; preds = %44521
  %44529 = load double, ptr %1291, align 8, !tbaa !11
  %44530 = fadd double %44529, 5.000000e-01
  %44531 = fcmp olt double %44530, 6.553500e+04
  br i1 %44531, label %44532, label %44535

44532:                                            ; preds = %44528
  %44533 = load double, ptr %1291, align 8, !tbaa !11
  %44534 = fadd double %44533, 5.000000e-01
  br label %44536

44535:                                            ; preds = %44528
  br label %44536

44536:                                            ; preds = %44535, %44532
  %44537 = phi double [ %44534, %44532 ], [ 6.553500e+04, %44535 ]
  br label %44538

44538:                                            ; preds = %44536, %44525
  %44539 = phi double [ %44527, %44525 ], [ %44537, %44536 ]
  br label %44550

44540:                                            ; preds = %44517
  %44541 = load double, ptr %1291, align 8, !tbaa !11
  %44542 = fadd double %44541, 5.000000e-01
  %44543 = fcmp olt double 0.000000e+00, %44542
  br i1 %44543, label %44544, label %44547

44544:                                            ; preds = %44540
  %44545 = load double, ptr %1291, align 8, !tbaa !11
  %44546 = fadd double %44545, 5.000000e-01
  br label %44548

44547:                                            ; preds = %44540
  br label %44548

44548:                                            ; preds = %44547, %44544
  %44549 = phi double [ %44546, %44544 ], [ 0.000000e+00, %44547 ]
  br label %44550

44550:                                            ; preds = %44548, %44538
  %44551 = phi double [ %44539, %44538 ], [ %44549, %44548 ]
  br label %44587

44552:                                            ; preds = %44514
  %44553 = load double, ptr %1291, align 8, !tbaa !11
  %44554 = fsub double %44553, 5.000000e-01
  %44555 = fcmp olt double 0.000000e+00, %44554
  br i1 %44555, label %44556, label %44575

44556:                                            ; preds = %44552
  %44557 = load double, ptr %1291, align 8, !tbaa !11
  %44558 = fsub double %44557, 5.000000e-01
  %44559 = fcmp ole double %44558, 6.553500e+04
  br i1 %44559, label %44560, label %44563

44560:                                            ; preds = %44556
  %44561 = load double, ptr %1291, align 8, !tbaa !11
  %44562 = fsub double %44561, 5.000000e-01
  br label %44573

44563:                                            ; preds = %44556
  %44564 = load double, ptr %1291, align 8, !tbaa !11
  %44565 = fsub double %44564, 5.000000e-01
  %44566 = fcmp olt double %44565, 6.553500e+04
  br i1 %44566, label %44567, label %44570

44567:                                            ; preds = %44563
  %44568 = load double, ptr %1291, align 8, !tbaa !11
  %44569 = fsub double %44568, 5.000000e-01
  br label %44571

44570:                                            ; preds = %44563
  br label %44571

44571:                                            ; preds = %44570, %44567
  %44572 = phi double [ %44569, %44567 ], [ 6.553500e+04, %44570 ]
  br label %44573

44573:                                            ; preds = %44571, %44560
  %44574 = phi double [ %44562, %44560 ], [ %44572, %44571 ]
  br label %44585

44575:                                            ; preds = %44552
  %44576 = load double, ptr %1291, align 8, !tbaa !11
  %44577 = fsub double %44576, 5.000000e-01
  %44578 = fcmp olt double 0.000000e+00, %44577
  br i1 %44578, label %44579, label %44582

44579:                                            ; preds = %44575
  %44580 = load double, ptr %1291, align 8, !tbaa !11
  %44581 = fsub double %44580, 5.000000e-01
  br label %44583

44582:                                            ; preds = %44575
  br label %44583

44583:                                            ; preds = %44582, %44579
  %44584 = phi double [ %44581, %44579 ], [ 0.000000e+00, %44582 ]
  br label %44585

44585:                                            ; preds = %44583, %44573
  %44586 = phi double [ %44574, %44573 ], [ %44584, %44583 ]
  br label %44587

44587:                                            ; preds = %44585, %44550
  %44588 = phi double [ %44551, %44550 ], [ %44586, %44585 ]
  %44589 = fptoui double %44588 to i16
  %44590 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %44589, ptr %44590, align 2, !tbaa !15
  br label %44604

44591:                                            ; preds = %44510
  %44592 = load double, ptr %1291, align 8, !tbaa !11
  %44593 = fcmp ole double 0.000000e+00, %44592
  br i1 %44593, label %44594, label %44597

44594:                                            ; preds = %44591
  %44595 = load double, ptr %1291, align 8, !tbaa !11
  %44596 = fadd double %44595, 5.000000e-01
  br label %44600

44597:                                            ; preds = %44591
  %44598 = load double, ptr %1291, align 8, !tbaa !11
  %44599 = fsub double %44598, 5.000000e-01
  br label %44600

44600:                                            ; preds = %44597, %44594
  %44601 = phi double [ %44596, %44594 ], [ %44599, %44597 ]
  %44602 = fptoui double %44601 to i16
  %44603 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %44602, ptr %44603, align 2, !tbaa !15
  br label %44604

44604:                                            ; preds = %44600, %44587
  br label %44605

44605:                                            ; preds = %44604, %44475
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1293) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1292) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1291) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1290) #3
  br label %44606

44606:                                            ; preds = %44605
  br label %44607

44607:                                            ; preds = %44606
  br label %45018

44608:                                            ; preds = %41395
  br label %44609

44609:                                            ; preds = %44608
  call void @llvm.lifetime.start.p0(i64 8, ptr %1300) #3
  store double 5.000000e-01, ptr %1300, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %1301) #3
  %44610 = load ptr, ptr %10, align 8, !tbaa !5
  %44611 = load float, ptr %44610, align 4, !tbaa !18
  store float %44611, ptr %1301, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %1302) #3
  store double 0.000000e+00, ptr %1302, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1303) #3
  store double 0.000000e+00, ptr %1303, align 8, !tbaa !11
  %44612 = load ptr, ptr %11, align 8, !tbaa !5
  %44613 = icmp ne ptr null, %44612
  br i1 %44613, label %44614, label %44640

44614:                                            ; preds = %44609
  %44615 = load float, ptr %1301, align 4, !tbaa !18
  %44616 = load float, ptr %1301, align 4, !tbaa !18
  %44617 = fcmp oeq float %44615, %44616
  br i1 %44617, label %44618, label %44640

44618:                                            ; preds = %44614
  %44619 = load ptr, ptr %12, align 8, !tbaa !5
  %44620 = icmp ne ptr null, %44619
  br i1 %44620, label %44621, label %44632

44621:                                            ; preds = %44618
  %44622 = load ptr, ptr %11, align 8, !tbaa !5
  %44623 = load float, ptr %44622, align 4, !tbaa !18
  %44624 = load float, ptr %1301, align 4, !tbaa !18
  %44625 = fcmp ole float %44623, %44624
  br i1 %44625, label %44626, label %44632

44626:                                            ; preds = %44621
  %44627 = load float, ptr %1301, align 4, !tbaa !18
  %44628 = load ptr, ptr %12, align 8, !tbaa !5
  %44629 = load float, ptr %44628, align 4, !tbaa !18
  %44630 = fcmp ole float %44627, %44629
  br i1 %44630, label %44631, label %44632

44631:                                            ; preds = %44626
  br label %44633

44632:                                            ; preds = %44626, %44621, %44618
  call void @__assert_fail(ptr noundef @.str.51, ptr noundef @.str.24, i32 noundef 500, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

44633:                                            ; preds = %44631
  %44634 = load ptr, ptr %11, align 8, !tbaa !5
  %44635 = load float, ptr %44634, align 4, !tbaa !18
  %44636 = fpext float %44635 to double
  store double %44636, ptr %1302, align 8, !tbaa !11
  %44637 = load ptr, ptr %12, align 8, !tbaa !5
  %44638 = load float, ptr %44637, align 4, !tbaa !18
  %44639 = fpext float %44638 to double
  store double %44639, ptr %1303, align 8, !tbaa !11
  br label %44640

44640:                                            ; preds = %44633, %44614, %44609
  %44641 = load i32, ptr %8, align 4, !tbaa !9
  %44642 = icmp ule i32 6, %44641
  br i1 %44642, label %44643, label %44869

44643:                                            ; preds = %44640
  %44644 = load double, ptr %1302, align 8, !tbaa !11
  %44645 = load double, ptr %1303, align 8, !tbaa !11
  %44646 = fcmp olt double %44644, %44645
  br i1 %44646, label %44647, label %44869

44647:                                            ; preds = %44643
  %44648 = load i32, ptr %8, align 4, !tbaa !9
  %44649 = icmp ule i32 15, %44648
  br i1 %44649, label %44650, label %44692

44650:                                            ; preds = %44647
  call void @llvm.lifetime.start.p0(i64 8, ptr %1304) #3
  %44651 = load double, ptr %1302, align 8, !tbaa !11
  %44652 = fcmp olt double 0.000000e+00, %44651
  br i1 %44652, label %44653, label %44655

44653:                                            ; preds = %44650
  %44654 = load double, ptr %1302, align 8, !tbaa !11
  br label %44656

44655:                                            ; preds = %44650
  br label %44656

44656:                                            ; preds = %44655, %44653
  %44657 = phi double [ %44654, %44653 ], [ 0.000000e+00, %44655 ]
  store double %44657, ptr %1304, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1305) #3
  %44658 = load double, ptr %1303, align 8, !tbaa !11
  %44659 = fcmp olt double 0.000000e+00, %44658
  br i1 %44659, label %44660, label %44662

44660:                                            ; preds = %44656
  %44661 = load double, ptr %1303, align 8, !tbaa !11
  br label %44663

44662:                                            ; preds = %44656
  br label %44663

44663:                                            ; preds = %44662, %44660
  %44664 = phi double [ %44661, %44660 ], [ 0.000000e+00, %44662 ]
  store double %44664, ptr %1305, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1306) #3
  %44665 = load double, ptr %1304, align 8, !tbaa !11
  %44666 = load double, ptr %1305, align 8, !tbaa !11
  %44667 = fcmp olt double %44665, %44666
  br i1 %44667, label %44668, label %44676

44668:                                            ; preds = %44663
  %44669 = load double, ptr %1303, align 8, !tbaa !11
  %44670 = load double, ptr %1302, align 8, !tbaa !11
  %44671 = fsub double %44669, %44670
  %44672 = load double, ptr %1305, align 8, !tbaa !11
  %44673 = load double, ptr %1304, align 8, !tbaa !11
  %44674 = fsub double %44672, %44673
  %44675 = fdiv double %44671, %44674
  br label %44677

44676:                                            ; preds = %44663
  br label %44677

44677:                                            ; preds = %44676, %44668
  %44678 = phi double [ %44675, %44668 ], [ 1.000000e+00, %44676 ]
  store double %44678, ptr %1306, align 8, !tbaa !11
  %44679 = load double, ptr %1306, align 8, !tbaa !11
  %44680 = load float, ptr %1301, align 4, !tbaa !18
  %44681 = fcmp olt float 0.000000e+00, %44680
  br i1 %44681, label %44682, label %44684

44682:                                            ; preds = %44677
  %44683 = load float, ptr %1301, align 4, !tbaa !18
  br label %44685

44684:                                            ; preds = %44677
  br label %44685

44685:                                            ; preds = %44684, %44682
  %44686 = phi float [ %44683, %44682 ], [ 0.000000e+00, %44684 ]
  %44687 = fpext float %44686 to double
  %44688 = fmul double %44679, %44687
  %44689 = fptrunc double %44688 to float
  store float %44689, ptr %1301, align 4, !tbaa !18
  %44690 = load double, ptr %1304, align 8, !tbaa !11
  store double %44690, ptr %1302, align 8, !tbaa !11
  %44691 = load double, ptr %1305, align 8, !tbaa !11
  store double %44691, ptr %1303, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1306) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1305) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1304) #3
  br label %44748

44692:                                            ; preds = %44647
  %44693 = load i32, ptr %8, align 4, !tbaa !9
  %44694 = icmp ugt i32 6, %44693
  br i1 %44694, label %44723, label %44695

44695:                                            ; preds = %44692
  %44696 = load i32, ptr %8, align 4, !tbaa !9
  %44697 = icmp ugt i32 15, %44696
  br i1 %44697, label %44698, label %44709

44698:                                            ; preds = %44695
  %44699 = load i32, ptr %9, align 4, !tbaa !9
  %44700 = icmp ugt i32 15, %44699
  br i1 %44700, label %44701, label %44706

44701:                                            ; preds = %44698
  %44702 = load i32, ptr %9, align 4, !tbaa !9
  %44703 = load i32, ptr %8, align 4, !tbaa !9
  %44704 = icmp ugt i32 %44702, %44703
  %44705 = zext i1 %44704 to i32
  br label %44707

44706:                                            ; preds = %44698
  br label %44707

44707:                                            ; preds = %44706, %44701
  %44708 = phi i32 [ %44705, %44701 ], [ 0, %44706 ]
  br label %44720

44709:                                            ; preds = %44695
  %44710 = load i32, ptr %9, align 4, !tbaa !9
  %44711 = icmp ugt i32 15, %44710
  br i1 %44711, label %44712, label %44713

44712:                                            ; preds = %44709
  br label %44718

44713:                                            ; preds = %44709
  %44714 = load i32, ptr %9, align 4, !tbaa !9
  %44715 = load i32, ptr %8, align 4, !tbaa !9
  %44716 = icmp ugt i32 %44714, %44715
  %44717 = zext i1 %44716 to i32
  br label %44718

44718:                                            ; preds = %44713, %44712
  %44719 = phi i32 [ 0, %44712 ], [ %44717, %44713 ]
  br label %44720

44720:                                            ; preds = %44718, %44707
  %44721 = phi i32 [ %44708, %44707 ], [ %44719, %44718 ]
  %44722 = icmp ne i32 %44721, 0
  br label %44723

44723:                                            ; preds = %44720, %44692
  %44724 = phi i1 [ true, %44692 ], [ %44722, %44720 ]
  %44725 = zext i1 %44724 to i32
  %44726 = icmp eq i32 0, %44725
  br i1 %44726, label %44727, label %44747

44727:                                            ; preds = %44723
  %44728 = load double, ptr %1302, align 8, !tbaa !11
  %44729 = fcmp ogt double 0.000000e+00, %44728
  br i1 %44729, label %44730, label %44747

44730:                                            ; preds = %44727
  %44731 = load double, ptr %1303, align 8, !tbaa !11
  %44732 = fcmp olt double 0.000000e+00, %44731
  br i1 %44732, label %44733, label %44747

44733:                                            ; preds = %44730
  %44734 = load double, ptr %1302, align 8, !tbaa !11
  %44735 = fneg double %44734
  %44736 = load double, ptr %1303, align 8, !tbaa !11
  %44737 = fcmp olt double %44735, %44736
  br i1 %44737, label %44738, label %44740

44738:                                            ; preds = %44733
  %44739 = load double, ptr %1303, align 8, !tbaa !11
  br label %44743

44740:                                            ; preds = %44733
  %44741 = load double, ptr %1302, align 8, !tbaa !11
  %44742 = fneg double %44741
  br label %44743

44743:                                            ; preds = %44740, %44738
  %44744 = phi double [ %44739, %44738 ], [ %44742, %44740 ]
  store double %44744, ptr %1303, align 8, !tbaa !11
  %44745 = load double, ptr %1303, align 8, !tbaa !11
  %44746 = fneg double %44745
  store double %44746, ptr %1302, align 8, !tbaa !11
  br label %44747

44747:                                            ; preds = %44743, %44730, %44727, %44723
  br label %44748

44748:                                            ; preds = %44747, %44685
  call void @llvm.lifetime.start.p0(i64 8, ptr %1307) #3
  %44749 = load double, ptr %1302, align 8, !tbaa !11
  %44750 = fcmp ole double 0.000000e+00, %44749
  %44751 = zext i1 %44750 to i64
  %44752 = select i1 %44750, double 0.000000e+00, double 0.000000e+00
  store double %44752, ptr %1307, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1308) #3
  %44753 = load double, ptr %1303, align 8, !tbaa !11
  %44754 = fcmp ole double 0.000000e+00, %44753
  %44755 = zext i1 %44754 to i64
  %44756 = select i1 %44754, double 6.553500e+04, double 0.000000e+00
  store double %44756, ptr %1308, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1309) #3
  %44757 = load float, ptr %1301, align 4, !tbaa !18
  %44758 = fpext float %44757 to double
  %44759 = load double, ptr %1302, align 8, !tbaa !11
  %44760 = fsub double %44758, %44759
  %44761 = load double, ptr %1308, align 8, !tbaa !11
  %44762 = load double, ptr %1307, align 8, !tbaa !11
  %44763 = fsub double %44761, %44762
  %44764 = fmul double %44760, %44763
  %44765 = load double, ptr %1303, align 8, !tbaa !11
  %44766 = load double, ptr %1302, align 8, !tbaa !11
  %44767 = fsub double %44765, %44766
  %44768 = fdiv double %44764, %44767
  %44769 = load double, ptr %1307, align 8, !tbaa !11
  %44770 = fadd double %44768, %44769
  store double %44770, ptr %1309, align 8, !tbaa !11
  %44771 = load double, ptr %1307, align 8, !tbaa !11
  %44772 = load double, ptr %1309, align 8, !tbaa !11
  %44773 = fcmp ole double 0.000000e+00, %44772
  br i1 %44773, label %44774, label %44777

44774:                                            ; preds = %44748
  %44775 = load double, ptr %1309, align 8, !tbaa !11
  %44776 = fadd double %44775, 5.000000e-01
  br label %44780

44777:                                            ; preds = %44748
  %44778 = load double, ptr %1309, align 8, !tbaa !11
  %44779 = fsub double %44778, 5.000000e-01
  br label %44780

44780:                                            ; preds = %44777, %44774
  %44781 = phi double [ %44776, %44774 ], [ %44779, %44777 ]
  %44782 = fcmp olt double %44771, %44781
  br i1 %44782, label %44783, label %44837

44783:                                            ; preds = %44780
  %44784 = load double, ptr %1309, align 8, !tbaa !11
  %44785 = fcmp ole double 0.000000e+00, %44784
  br i1 %44785, label %44786, label %44789

44786:                                            ; preds = %44783
  %44787 = load double, ptr %1309, align 8, !tbaa !11
  %44788 = fadd double %44787, 5.000000e-01
  br label %44792

44789:                                            ; preds = %44783
  %44790 = load double, ptr %1309, align 8, !tbaa !11
  %44791 = fsub double %44790, 5.000000e-01
  br label %44792

44792:                                            ; preds = %44789, %44786
  %44793 = phi double [ %44788, %44786 ], [ %44791, %44789 ]
  %44794 = load double, ptr %1308, align 8, !tbaa !11
  %44795 = fcmp ole double %44793, %44794
  br i1 %44795, label %44796, label %44807

44796:                                            ; preds = %44792
  %44797 = load double, ptr %1309, align 8, !tbaa !11
  %44798 = fcmp ole double 0.000000e+00, %44797
  br i1 %44798, label %44799, label %44802

44799:                                            ; preds = %44796
  %44800 = load double, ptr %1309, align 8, !tbaa !11
  %44801 = fadd double %44800, 5.000000e-01
  br label %44805

44802:                                            ; preds = %44796
  %44803 = load double, ptr %1309, align 8, !tbaa !11
  %44804 = fsub double %44803, 5.000000e-01
  br label %44805

44805:                                            ; preds = %44802, %44799
  %44806 = phi double [ %44801, %44799 ], [ %44804, %44802 ]
  br label %44835

44807:                                            ; preds = %44792
  %44808 = load double, ptr %1309, align 8, !tbaa !11
  %44809 = fcmp ole double 0.000000e+00, %44808
  br i1 %44809, label %44810, label %44813

44810:                                            ; preds = %44807
  %44811 = load double, ptr %1309, align 8, !tbaa !11
  %44812 = fadd double %44811, 5.000000e-01
  br label %44816

44813:                                            ; preds = %44807
  %44814 = load double, ptr %1309, align 8, !tbaa !11
  %44815 = fsub double %44814, 5.000000e-01
  br label %44816

44816:                                            ; preds = %44813, %44810
  %44817 = phi double [ %44812, %44810 ], [ %44815, %44813 ]
  %44818 = load double, ptr %1308, align 8, !tbaa !11
  %44819 = fcmp olt double %44817, %44818
  br i1 %44819, label %44820, label %44831

44820:                                            ; preds = %44816
  %44821 = load double, ptr %1309, align 8, !tbaa !11
  %44822 = fcmp ole double 0.000000e+00, %44821
  br i1 %44822, label %44823, label %44826

44823:                                            ; preds = %44820
  %44824 = load double, ptr %1309, align 8, !tbaa !11
  %44825 = fadd double %44824, 5.000000e-01
  br label %44829

44826:                                            ; preds = %44820
  %44827 = load double, ptr %1309, align 8, !tbaa !11
  %44828 = fsub double %44827, 5.000000e-01
  br label %44829

44829:                                            ; preds = %44826, %44823
  %44830 = phi double [ %44825, %44823 ], [ %44828, %44826 ]
  br label %44833

44831:                                            ; preds = %44816
  %44832 = load double, ptr %1308, align 8, !tbaa !11
  br label %44833

44833:                                            ; preds = %44831, %44829
  %44834 = phi double [ %44830, %44829 ], [ %44832, %44831 ]
  br label %44835

44835:                                            ; preds = %44833, %44805
  %44836 = phi double [ %44806, %44805 ], [ %44834, %44833 ]
  br label %44865

44837:                                            ; preds = %44780
  %44838 = load double, ptr %1307, align 8, !tbaa !11
  %44839 = load double, ptr %1309, align 8, !tbaa !11
  %44840 = fcmp ole double 0.000000e+00, %44839
  br i1 %44840, label %44841, label %44844

44841:                                            ; preds = %44837
  %44842 = load double, ptr %1309, align 8, !tbaa !11
  %44843 = fadd double %44842, 5.000000e-01
  br label %44847

44844:                                            ; preds = %44837
  %44845 = load double, ptr %1309, align 8, !tbaa !11
  %44846 = fsub double %44845, 5.000000e-01
  br label %44847

44847:                                            ; preds = %44844, %44841
  %44848 = phi double [ %44843, %44841 ], [ %44846, %44844 ]
  %44849 = fcmp olt double %44838, %44848
  br i1 %44849, label %44850, label %44861

44850:                                            ; preds = %44847
  %44851 = load double, ptr %1309, align 8, !tbaa !11
  %44852 = fcmp ole double 0.000000e+00, %44851
  br i1 %44852, label %44853, label %44856

44853:                                            ; preds = %44850
  %44854 = load double, ptr %1309, align 8, !tbaa !11
  %44855 = fadd double %44854, 5.000000e-01
  br label %44859

44856:                                            ; preds = %44850
  %44857 = load double, ptr %1309, align 8, !tbaa !11
  %44858 = fsub double %44857, 5.000000e-01
  br label %44859

44859:                                            ; preds = %44856, %44853
  %44860 = phi double [ %44855, %44853 ], [ %44858, %44856 ]
  br label %44863

44861:                                            ; preds = %44847
  %44862 = load double, ptr %1307, align 8, !tbaa !11
  br label %44863

44863:                                            ; preds = %44861, %44859
  %44864 = phi double [ %44860, %44859 ], [ %44862, %44861 ]
  br label %44865

44865:                                            ; preds = %44863, %44835
  %44866 = phi double [ %44836, %44835 ], [ %44864, %44863 ]
  %44867 = fptoui double %44866 to i16
  %44868 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %44867, ptr %44868, align 2, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %1309) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1308) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1307) #3
  br label %45011

44869:                                            ; preds = %44643, %44640
  %44870 = load i32, ptr %8, align 4, !tbaa !9
  %44871 = icmp ugt i32 6, %44870
  br i1 %44871, label %44900, label %44872

44872:                                            ; preds = %44869
  %44873 = load i32, ptr %8, align 4, !tbaa !9
  %44874 = icmp ugt i32 15, %44873
  br i1 %44874, label %44875, label %44886

44875:                                            ; preds = %44872
  %44876 = load i32, ptr %9, align 4, !tbaa !9
  %44877 = icmp ugt i32 15, %44876
  br i1 %44877, label %44878, label %44883

44878:                                            ; preds = %44875
  %44879 = load i32, ptr %9, align 4, !tbaa !9
  %44880 = load i32, ptr %8, align 4, !tbaa !9
  %44881 = icmp ugt i32 %44879, %44880
  %44882 = zext i1 %44881 to i32
  br label %44884

44883:                                            ; preds = %44875
  br label %44884

44884:                                            ; preds = %44883, %44878
  %44885 = phi i32 [ %44882, %44878 ], [ 0, %44883 ]
  br label %44897

44886:                                            ; preds = %44872
  %44887 = load i32, ptr %9, align 4, !tbaa !9
  %44888 = icmp ugt i32 15, %44887
  br i1 %44888, label %44889, label %44890

44889:                                            ; preds = %44886
  br label %44895

44890:                                            ; preds = %44886
  %44891 = load i32, ptr %9, align 4, !tbaa !9
  %44892 = load i32, ptr %8, align 4, !tbaa !9
  %44893 = icmp ugt i32 %44891, %44892
  %44894 = zext i1 %44893 to i32
  br label %44895

44895:                                            ; preds = %44890, %44889
  %44896 = phi i32 [ 0, %44889 ], [ %44894, %44890 ]
  br label %44897

44897:                                            ; preds = %44895, %44884
  %44898 = phi i32 [ %44885, %44884 ], [ %44896, %44895 ]
  %44899 = icmp ne i32 %44898, 0
  br label %44900

44900:                                            ; preds = %44897, %44869
  %44901 = phi i1 [ true, %44869 ], [ %44899, %44897 ]
  %44902 = zext i1 %44901 to i32
  %44903 = icmp eq i32 0, %44902
  br i1 %44903, label %44904, label %44995

44904:                                            ; preds = %44900
  %44905 = load float, ptr %1301, align 4, !tbaa !18
  %44906 = fcmp ole float 0.000000e+00, %44905
  br i1 %44906, label %44907, label %44949

44907:                                            ; preds = %44904
  %44908 = load float, ptr %1301, align 4, !tbaa !18
  %44909 = fpext float %44908 to double
  %44910 = fadd double %44909, 5.000000e-01
  %44911 = fcmp olt double 0.000000e+00, %44910
  br i1 %44911, label %44912, label %44935

44912:                                            ; preds = %44907
  %44913 = load float, ptr %1301, align 4, !tbaa !18
  %44914 = fpext float %44913 to double
  %44915 = fadd double %44914, 5.000000e-01
  %44916 = fcmp ole double %44915, 6.553500e+04
  br i1 %44916, label %44917, label %44921

44917:                                            ; preds = %44912
  %44918 = load float, ptr %1301, align 4, !tbaa !18
  %44919 = fpext float %44918 to double
  %44920 = fadd double %44919, 5.000000e-01
  br label %44933

44921:                                            ; preds = %44912
  %44922 = load float, ptr %1301, align 4, !tbaa !18
  %44923 = fpext float %44922 to double
  %44924 = fadd double %44923, 5.000000e-01
  %44925 = fcmp olt double %44924, 6.553500e+04
  br i1 %44925, label %44926, label %44930

44926:                                            ; preds = %44921
  %44927 = load float, ptr %1301, align 4, !tbaa !18
  %44928 = fpext float %44927 to double
  %44929 = fadd double %44928, 5.000000e-01
  br label %44931

44930:                                            ; preds = %44921
  br label %44931

44931:                                            ; preds = %44930, %44926
  %44932 = phi double [ %44929, %44926 ], [ 6.553500e+04, %44930 ]
  br label %44933

44933:                                            ; preds = %44931, %44917
  %44934 = phi double [ %44920, %44917 ], [ %44932, %44931 ]
  br label %44947

44935:                                            ; preds = %44907
  %44936 = load float, ptr %1301, align 4, !tbaa !18
  %44937 = fpext float %44936 to double
  %44938 = fadd double %44937, 5.000000e-01
  %44939 = fcmp olt double 0.000000e+00, %44938
  br i1 %44939, label %44940, label %44944

44940:                                            ; preds = %44935
  %44941 = load float, ptr %1301, align 4, !tbaa !18
  %44942 = fpext float %44941 to double
  %44943 = fadd double %44942, 5.000000e-01
  br label %44945

44944:                                            ; preds = %44935
  br label %44945

44945:                                            ; preds = %44944, %44940
  %44946 = phi double [ %44943, %44940 ], [ 0.000000e+00, %44944 ]
  br label %44947

44947:                                            ; preds = %44945, %44933
  %44948 = phi double [ %44934, %44933 ], [ %44946, %44945 ]
  br label %44991

44949:                                            ; preds = %44904
  %44950 = load float, ptr %1301, align 4, !tbaa !18
  %44951 = fpext float %44950 to double
  %44952 = fsub double %44951, 5.000000e-01
  %44953 = fcmp olt double 0.000000e+00, %44952
  br i1 %44953, label %44954, label %44977

44954:                                            ; preds = %44949
  %44955 = load float, ptr %1301, align 4, !tbaa !18
  %44956 = fpext float %44955 to double
  %44957 = fsub double %44956, 5.000000e-01
  %44958 = fcmp ole double %44957, 6.553500e+04
  br i1 %44958, label %44959, label %44963

44959:                                            ; preds = %44954
  %44960 = load float, ptr %1301, align 4, !tbaa !18
  %44961 = fpext float %44960 to double
  %44962 = fsub double %44961, 5.000000e-01
  br label %44975

44963:                                            ; preds = %44954
  %44964 = load float, ptr %1301, align 4, !tbaa !18
  %44965 = fpext float %44964 to double
  %44966 = fsub double %44965, 5.000000e-01
  %44967 = fcmp olt double %44966, 6.553500e+04
  br i1 %44967, label %44968, label %44972

44968:                                            ; preds = %44963
  %44969 = load float, ptr %1301, align 4, !tbaa !18
  %44970 = fpext float %44969 to double
  %44971 = fsub double %44970, 5.000000e-01
  br label %44973

44972:                                            ; preds = %44963
  br label %44973

44973:                                            ; preds = %44972, %44968
  %44974 = phi double [ %44971, %44968 ], [ 6.553500e+04, %44972 ]
  br label %44975

44975:                                            ; preds = %44973, %44959
  %44976 = phi double [ %44962, %44959 ], [ %44974, %44973 ]
  br label %44989

44977:                                            ; preds = %44949
  %44978 = load float, ptr %1301, align 4, !tbaa !18
  %44979 = fpext float %44978 to double
  %44980 = fsub double %44979, 5.000000e-01
  %44981 = fcmp olt double 0.000000e+00, %44980
  br i1 %44981, label %44982, label %44986

44982:                                            ; preds = %44977
  %44983 = load float, ptr %1301, align 4, !tbaa !18
  %44984 = fpext float %44983 to double
  %44985 = fsub double %44984, 5.000000e-01
  br label %44987

44986:                                            ; preds = %44977
  br label %44987

44987:                                            ; preds = %44986, %44982
  %44988 = phi double [ %44985, %44982 ], [ 0.000000e+00, %44986 ]
  br label %44989

44989:                                            ; preds = %44987, %44975
  %44990 = phi double [ %44976, %44975 ], [ %44988, %44987 ]
  br label %44991

44991:                                            ; preds = %44989, %44947
  %44992 = phi double [ %44948, %44947 ], [ %44990, %44989 ]
  %44993 = fptoui double %44992 to i16
  %44994 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %44993, ptr %44994, align 2, !tbaa !15
  br label %45010

44995:                                            ; preds = %44900
  %44996 = load float, ptr %1301, align 4, !tbaa !18
  %44997 = fcmp ole float 0.000000e+00, %44996
  br i1 %44997, label %44998, label %45002

44998:                                            ; preds = %44995
  %44999 = load float, ptr %1301, align 4, !tbaa !18
  %45000 = fpext float %44999 to double
  %45001 = fadd double %45000, 5.000000e-01
  br label %45006

45002:                                            ; preds = %44995
  %45003 = load float, ptr %1301, align 4, !tbaa !18
  %45004 = fpext float %45003 to double
  %45005 = fsub double %45004, 5.000000e-01
  br label %45006

45006:                                            ; preds = %45002, %44998
  %45007 = phi double [ %45001, %44998 ], [ %45005, %45002 ]
  %45008 = fptoui double %45007 to i16
  %45009 = load ptr, ptr %7, align 8, !tbaa !5
  store i16 %45008, ptr %45009, align 2, !tbaa !15
  br label %45010

45010:                                            ; preds = %45006, %44991
  br label %45011

45011:                                            ; preds = %45010, %44865
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1303) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1302) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %1301) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1300) #3
  br label %45012

45012:                                            ; preds = %45011
  br label %45013

45013:                                            ; preds = %45012
  br label %45018

45014:                                            ; preds = %41395
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 500, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

45015:                                            ; preds = %41395
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 500, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

45016:                                            ; preds = %41395
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 500, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

45017:                                            ; preds = %41395
  store i32 1, ptr %13, align 4, !tbaa !9
  br label %45018

45018:                                            ; preds = %45017, %45013, %44607, %44222, %43862, %43503, %43156, %42809, %42449, %42090, %41743
  br label %45019

45019:                                            ; preds = %45018
  br label %45020

45020:                                            ; preds = %45019
  br label %48657

45021:                                            ; preds = %6
  br label %45022

45022:                                            ; preds = %45021
  %45023 = load ptr, ptr %7, align 8, !tbaa !5
  %45024 = icmp ne ptr null, %45023
  br i1 %45024, label %45025, label %45029

45025:                                            ; preds = %45022
  %45026 = load ptr, ptr %10, align 8, !tbaa !5
  %45027 = icmp ne ptr null, %45026
  br i1 %45027, label %45028, label %45029

45028:                                            ; preds = %45025
  br label %45030

45029:                                            ; preds = %45025, %45022
  call void @__assert_fail(ptr noundef @.str.41, ptr noundef @.str.24, i32 noundef 503, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

45030:                                            ; preds = %45028
  %45031 = load i32, ptr %9, align 4, !tbaa !9
  switch i32 %45031, label %48652 [
    i32 6, label %45032
    i32 8, label %45379
    i32 10, label %45726
    i32 12, label %46086
    i32 15, label %46445
    i32 16, label %46792
    i32 17, label %47139
    i32 18, label %47499
    i32 0, label %47858
    i32 1, label %48243
    i32 3, label %48649
    i32 2, label %48650
    i32 4, label %48651
  ]

45032:                                            ; preds = %45030
  br label %45033

45033:                                            ; preds = %45032
  call void @llvm.lifetime.start.p0(i64 8, ptr %1310) #3
  store double 5.000000e-01, ptr %1310, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1311) #3
  %45034 = load ptr, ptr %10, align 8, !tbaa !5
  %45035 = load i64, ptr %45034, align 8, !tbaa !13
  store i64 %45035, ptr %1311, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %1312) #3
  store double 0.000000e+00, ptr %1312, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1313) #3
  store double 0.000000e+00, ptr %1313, align 8, !tbaa !11
  %45036 = load ptr, ptr %11, align 8, !tbaa !5
  %45037 = icmp ne ptr null, %45036
  br i1 %45037, label %45038, label %45060

45038:                                            ; preds = %45033
  %45039 = load ptr, ptr %12, align 8, !tbaa !5
  %45040 = icmp ne ptr null, %45039
  br i1 %45040, label %45041, label %45052

45041:                                            ; preds = %45038
  %45042 = load ptr, ptr %11, align 8, !tbaa !5
  %45043 = load i64, ptr %45042, align 8, !tbaa !13
  %45044 = load i64, ptr %1311, align 8, !tbaa !13
  %45045 = icmp sle i64 %45043, %45044
  br i1 %45045, label %45046, label %45052

45046:                                            ; preds = %45041
  %45047 = load i64, ptr %1311, align 8, !tbaa !13
  %45048 = load ptr, ptr %12, align 8, !tbaa !5
  %45049 = load i64, ptr %45048, align 8, !tbaa !13
  %45050 = icmp sle i64 %45047, %45049
  br i1 %45050, label %45051, label %45052

45051:                                            ; preds = %45046
  br label %45053

45052:                                            ; preds = %45046, %45041, %45038
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.24, i32 noundef 503, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

45053:                                            ; preds = %45051
  %45054 = load ptr, ptr %11, align 8, !tbaa !5
  %45055 = load i64, ptr %45054, align 8, !tbaa !13
  %45056 = sitofp i64 %45055 to double
  store double %45056, ptr %1312, align 8, !tbaa !11
  %45057 = load ptr, ptr %12, align 8, !tbaa !5
  %45058 = load i64, ptr %45057, align 8, !tbaa !13
  %45059 = sitofp i64 %45058 to double
  store double %45059, ptr %1313, align 8, !tbaa !11
  br label %45060

45060:                                            ; preds = %45053, %45033
  %45061 = load i32, ptr %8, align 4, !tbaa !9
  %45062 = icmp ule i32 6, %45061
  br i1 %45062, label %45063, label %45299

45063:                                            ; preds = %45060
  %45064 = load double, ptr %1312, align 8, !tbaa !11
  %45065 = load double, ptr %1313, align 8, !tbaa !11
  %45066 = fcmp olt double %45064, %45065
  br i1 %45066, label %45067, label %45299

45067:                                            ; preds = %45063
  %45068 = load i32, ptr %8, align 4, !tbaa !9
  %45069 = icmp ule i32 15, %45068
  br i1 %45069, label %45070, label %45122

45070:                                            ; preds = %45067
  call void @llvm.lifetime.start.p0(i64 8, ptr %1314) #3
  %45071 = load double, ptr %1312, align 8, !tbaa !11
  %45072 = fcmp olt double 0.000000e+00, %45071
  br i1 %45072, label %45073, label %45075

45073:                                            ; preds = %45070
  %45074 = load double, ptr %1312, align 8, !tbaa !11
  br label %45076

45075:                                            ; preds = %45070
  br label %45076

45076:                                            ; preds = %45075, %45073
  %45077 = phi double [ %45074, %45073 ], [ 0.000000e+00, %45075 ]
  store double %45077, ptr %1314, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1315) #3
  %45078 = load double, ptr %1313, align 8, !tbaa !11
  %45079 = fcmp olt double 0.000000e+00, %45078
  br i1 %45079, label %45080, label %45082

45080:                                            ; preds = %45076
  %45081 = load double, ptr %1313, align 8, !tbaa !11
  br label %45083

45082:                                            ; preds = %45076
  br label %45083

45083:                                            ; preds = %45082, %45080
  %45084 = phi double [ %45081, %45080 ], [ 0.000000e+00, %45082 ]
  store double %45084, ptr %1315, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1316) #3
  %45085 = load double, ptr %1314, align 8, !tbaa !11
  %45086 = load double, ptr %1315, align 8, !tbaa !11
  %45087 = fcmp olt double %45085, %45086
  br i1 %45087, label %45088, label %45096

45088:                                            ; preds = %45083
  %45089 = load double, ptr %1313, align 8, !tbaa !11
  %45090 = load double, ptr %1312, align 8, !tbaa !11
  %45091 = fsub double %45089, %45090
  %45092 = load double, ptr %1315, align 8, !tbaa !11
  %45093 = load double, ptr %1314, align 8, !tbaa !11
  %45094 = fsub double %45092, %45093
  %45095 = fdiv double %45091, %45094
  br label %45097

45096:                                            ; preds = %45083
  br label %45097

45097:                                            ; preds = %45096, %45088
  %45098 = phi double [ %45095, %45088 ], [ 1.000000e+00, %45096 ]
  store double %45098, ptr %1316, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1317) #3
  %45099 = load double, ptr %1316, align 8, !tbaa !11
  %45100 = load i64, ptr %1311, align 8, !tbaa !13
  %45101 = icmp slt i64 0, %45100
  br i1 %45101, label %45102, label %45104

45102:                                            ; preds = %45097
  %45103 = load i64, ptr %1311, align 8, !tbaa !13
  br label %45105

45104:                                            ; preds = %45097
  br label %45105

45105:                                            ; preds = %45104, %45102
  %45106 = phi i64 [ %45103, %45102 ], [ 0, %45104 ]
  %45107 = sitofp i64 %45106 to double
  %45108 = fmul double %45099, %45107
  store double %45108, ptr %1317, align 8, !tbaa !11
  %45109 = load double, ptr %1317, align 8, !tbaa !11
  %45110 = fcmp ole double 0.000000e+00, %45109
  br i1 %45110, label %45111, label %45114

45111:                                            ; preds = %45105
  %45112 = load double, ptr %1317, align 8, !tbaa !11
  %45113 = fadd double %45112, 5.000000e-01
  br label %45117

45114:                                            ; preds = %45105
  %45115 = load double, ptr %1317, align 8, !tbaa !11
  %45116 = fsub double %45115, 5.000000e-01
  br label %45117

45117:                                            ; preds = %45114, %45111
  %45118 = phi double [ %45113, %45111 ], [ %45116, %45114 ]
  %45119 = fptosi double %45118 to i64
  store i64 %45119, ptr %1311, align 8, !tbaa !13
  %45120 = load double, ptr %1314, align 8, !tbaa !11
  store double %45120, ptr %1312, align 8, !tbaa !11
  %45121 = load double, ptr %1315, align 8, !tbaa !11
  store double %45121, ptr %1313, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1317) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1316) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1315) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1314) #3
  br label %45178

45122:                                            ; preds = %45067
  %45123 = load i32, ptr %8, align 4, !tbaa !9
  %45124 = icmp ugt i32 6, %45123
  br i1 %45124, label %45153, label %45125

45125:                                            ; preds = %45122
  %45126 = load i32, ptr %8, align 4, !tbaa !9
  %45127 = icmp ugt i32 15, %45126
  br i1 %45127, label %45128, label %45139

45128:                                            ; preds = %45125
  %45129 = load i32, ptr %9, align 4, !tbaa !9
  %45130 = icmp ugt i32 15, %45129
  br i1 %45130, label %45131, label %45136

45131:                                            ; preds = %45128
  %45132 = load i32, ptr %9, align 4, !tbaa !9
  %45133 = load i32, ptr %8, align 4, !tbaa !9
  %45134 = icmp ugt i32 %45132, %45133
  %45135 = zext i1 %45134 to i32
  br label %45137

45136:                                            ; preds = %45128
  br label %45137

45137:                                            ; preds = %45136, %45131
  %45138 = phi i32 [ %45135, %45131 ], [ 0, %45136 ]
  br label %45150

45139:                                            ; preds = %45125
  %45140 = load i32, ptr %9, align 4, !tbaa !9
  %45141 = icmp ugt i32 15, %45140
  br i1 %45141, label %45142, label %45143

45142:                                            ; preds = %45139
  br label %45148

45143:                                            ; preds = %45139
  %45144 = load i32, ptr %9, align 4, !tbaa !9
  %45145 = load i32, ptr %8, align 4, !tbaa !9
  %45146 = icmp ugt i32 %45144, %45145
  %45147 = zext i1 %45146 to i32
  br label %45148

45148:                                            ; preds = %45143, %45142
  %45149 = phi i32 [ 0, %45142 ], [ %45147, %45143 ]
  br label %45150

45150:                                            ; preds = %45148, %45137
  %45151 = phi i32 [ %45138, %45137 ], [ %45149, %45148 ]
  %45152 = icmp ne i32 %45151, 0
  br label %45153

45153:                                            ; preds = %45150, %45122
  %45154 = phi i1 [ true, %45122 ], [ %45152, %45150 ]
  %45155 = zext i1 %45154 to i32
  %45156 = icmp eq i32 0, %45155
  br i1 %45156, label %45157, label %45177

45157:                                            ; preds = %45153
  %45158 = load double, ptr %1312, align 8, !tbaa !11
  %45159 = fcmp ogt double 0.000000e+00, %45158
  br i1 %45159, label %45160, label %45177

45160:                                            ; preds = %45157
  %45161 = load double, ptr %1313, align 8, !tbaa !11
  %45162 = fcmp olt double 0.000000e+00, %45161
  br i1 %45162, label %45163, label %45177

45163:                                            ; preds = %45160
  %45164 = load double, ptr %1312, align 8, !tbaa !11
  %45165 = fneg double %45164
  %45166 = load double, ptr %1313, align 8, !tbaa !11
  %45167 = fcmp olt double %45165, %45166
  br i1 %45167, label %45168, label %45170

45168:                                            ; preds = %45163
  %45169 = load double, ptr %1313, align 8, !tbaa !11
  br label %45173

45170:                                            ; preds = %45163
  %45171 = load double, ptr %1312, align 8, !tbaa !11
  %45172 = fneg double %45171
  br label %45173

45173:                                            ; preds = %45170, %45168
  %45174 = phi double [ %45169, %45168 ], [ %45172, %45170 ]
  store double %45174, ptr %1313, align 8, !tbaa !11
  %45175 = load double, ptr %1313, align 8, !tbaa !11
  %45176 = fneg double %45175
  store double %45176, ptr %1312, align 8, !tbaa !11
  br label %45177

45177:                                            ; preds = %45173, %45160, %45157, %45153
  br label %45178

45178:                                            ; preds = %45177, %45117
  call void @llvm.lifetime.start.p0(i64 8, ptr %1318) #3
  %45179 = load double, ptr %1312, align 8, !tbaa !11
  %45180 = fcmp ole double 0.000000e+00, %45179
  %45181 = zext i1 %45180 to i64
  %45182 = select i1 %45180, double 0.000000e+00, double 0.000000e+00
  store double %45182, ptr %1318, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1319) #3
  %45183 = load double, ptr %1313, align 8, !tbaa !11
  %45184 = fcmp ole double 0.000000e+00, %45183
  %45185 = zext i1 %45184 to i64
  %45186 = select i1 %45184, double 2.550000e+02, double 0.000000e+00
  store double %45186, ptr %1319, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1320) #3
  %45187 = load i64, ptr %1311, align 8, !tbaa !13
  %45188 = sitofp i64 %45187 to double
  %45189 = load double, ptr %1312, align 8, !tbaa !11
  %45190 = fsub double %45188, %45189
  %45191 = load double, ptr %1319, align 8, !tbaa !11
  %45192 = load double, ptr %1318, align 8, !tbaa !11
  %45193 = fsub double %45191, %45192
  %45194 = fmul double %45190, %45193
  %45195 = load double, ptr %1313, align 8, !tbaa !11
  %45196 = load double, ptr %1312, align 8, !tbaa !11
  %45197 = fsub double %45195, %45196
  %45198 = fdiv double %45194, %45197
  %45199 = load double, ptr %1318, align 8, !tbaa !11
  %45200 = fadd double %45198, %45199
  store double %45200, ptr %1320, align 8, !tbaa !11
  %45201 = load double, ptr %1318, align 8, !tbaa !11
  %45202 = load double, ptr %1320, align 8, !tbaa !11
  %45203 = fcmp ole double 0.000000e+00, %45202
  br i1 %45203, label %45204, label %45207

45204:                                            ; preds = %45178
  %45205 = load double, ptr %1320, align 8, !tbaa !11
  %45206 = fadd double %45205, 5.000000e-01
  br label %45210

45207:                                            ; preds = %45178
  %45208 = load double, ptr %1320, align 8, !tbaa !11
  %45209 = fsub double %45208, 5.000000e-01
  br label %45210

45210:                                            ; preds = %45207, %45204
  %45211 = phi double [ %45206, %45204 ], [ %45209, %45207 ]
  %45212 = fcmp olt double %45201, %45211
  br i1 %45212, label %45213, label %45267

45213:                                            ; preds = %45210
  %45214 = load double, ptr %1320, align 8, !tbaa !11
  %45215 = fcmp ole double 0.000000e+00, %45214
  br i1 %45215, label %45216, label %45219

45216:                                            ; preds = %45213
  %45217 = load double, ptr %1320, align 8, !tbaa !11
  %45218 = fadd double %45217, 5.000000e-01
  br label %45222

45219:                                            ; preds = %45213
  %45220 = load double, ptr %1320, align 8, !tbaa !11
  %45221 = fsub double %45220, 5.000000e-01
  br label %45222

45222:                                            ; preds = %45219, %45216
  %45223 = phi double [ %45218, %45216 ], [ %45221, %45219 ]
  %45224 = load double, ptr %1319, align 8, !tbaa !11
  %45225 = fcmp ole double %45223, %45224
  br i1 %45225, label %45226, label %45237

45226:                                            ; preds = %45222
  %45227 = load double, ptr %1320, align 8, !tbaa !11
  %45228 = fcmp ole double 0.000000e+00, %45227
  br i1 %45228, label %45229, label %45232

45229:                                            ; preds = %45226
  %45230 = load double, ptr %1320, align 8, !tbaa !11
  %45231 = fadd double %45230, 5.000000e-01
  br label %45235

45232:                                            ; preds = %45226
  %45233 = load double, ptr %1320, align 8, !tbaa !11
  %45234 = fsub double %45233, 5.000000e-01
  br label %45235

45235:                                            ; preds = %45232, %45229
  %45236 = phi double [ %45231, %45229 ], [ %45234, %45232 ]
  br label %45265

45237:                                            ; preds = %45222
  %45238 = load double, ptr %1320, align 8, !tbaa !11
  %45239 = fcmp ole double 0.000000e+00, %45238
  br i1 %45239, label %45240, label %45243

45240:                                            ; preds = %45237
  %45241 = load double, ptr %1320, align 8, !tbaa !11
  %45242 = fadd double %45241, 5.000000e-01
  br label %45246

45243:                                            ; preds = %45237
  %45244 = load double, ptr %1320, align 8, !tbaa !11
  %45245 = fsub double %45244, 5.000000e-01
  br label %45246

45246:                                            ; preds = %45243, %45240
  %45247 = phi double [ %45242, %45240 ], [ %45245, %45243 ]
  %45248 = load double, ptr %1319, align 8, !tbaa !11
  %45249 = fcmp olt double %45247, %45248
  br i1 %45249, label %45250, label %45261

45250:                                            ; preds = %45246
  %45251 = load double, ptr %1320, align 8, !tbaa !11
  %45252 = fcmp ole double 0.000000e+00, %45251
  br i1 %45252, label %45253, label %45256

45253:                                            ; preds = %45250
  %45254 = load double, ptr %1320, align 8, !tbaa !11
  %45255 = fadd double %45254, 5.000000e-01
  br label %45259

45256:                                            ; preds = %45250
  %45257 = load double, ptr %1320, align 8, !tbaa !11
  %45258 = fsub double %45257, 5.000000e-01
  br label %45259

45259:                                            ; preds = %45256, %45253
  %45260 = phi double [ %45255, %45253 ], [ %45258, %45256 ]
  br label %45263

45261:                                            ; preds = %45246
  %45262 = load double, ptr %1319, align 8, !tbaa !11
  br label %45263

45263:                                            ; preds = %45261, %45259
  %45264 = phi double [ %45260, %45259 ], [ %45262, %45261 ]
  br label %45265

45265:                                            ; preds = %45263, %45235
  %45266 = phi double [ %45236, %45235 ], [ %45264, %45263 ]
  br label %45295

45267:                                            ; preds = %45210
  %45268 = load double, ptr %1318, align 8, !tbaa !11
  %45269 = load double, ptr %1320, align 8, !tbaa !11
  %45270 = fcmp ole double 0.000000e+00, %45269
  br i1 %45270, label %45271, label %45274

45271:                                            ; preds = %45267
  %45272 = load double, ptr %1320, align 8, !tbaa !11
  %45273 = fadd double %45272, 5.000000e-01
  br label %45277

45274:                                            ; preds = %45267
  %45275 = load double, ptr %1320, align 8, !tbaa !11
  %45276 = fsub double %45275, 5.000000e-01
  br label %45277

45277:                                            ; preds = %45274, %45271
  %45278 = phi double [ %45273, %45271 ], [ %45276, %45274 ]
  %45279 = fcmp olt double %45268, %45278
  br i1 %45279, label %45280, label %45291

45280:                                            ; preds = %45277
  %45281 = load double, ptr %1320, align 8, !tbaa !11
  %45282 = fcmp ole double 0.000000e+00, %45281
  br i1 %45282, label %45283, label %45286

45283:                                            ; preds = %45280
  %45284 = load double, ptr %1320, align 8, !tbaa !11
  %45285 = fadd double %45284, 5.000000e-01
  br label %45289

45286:                                            ; preds = %45280
  %45287 = load double, ptr %1320, align 8, !tbaa !11
  %45288 = fsub double %45287, 5.000000e-01
  br label %45289

45289:                                            ; preds = %45286, %45283
  %45290 = phi double [ %45285, %45283 ], [ %45288, %45286 ]
  br label %45293

45291:                                            ; preds = %45277
  %45292 = load double, ptr %1318, align 8, !tbaa !11
  br label %45293

45293:                                            ; preds = %45291, %45289
  %45294 = phi double [ %45290, %45289 ], [ %45292, %45291 ]
  br label %45295

45295:                                            ; preds = %45293, %45265
  %45296 = phi double [ %45266, %45265 ], [ %45294, %45293 ]
  %45297 = fptoui double %45296 to i8
  %45298 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %45297, ptr %45298, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %1320) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1319) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1318) #3
  br label %45376

45299:                                            ; preds = %45063, %45060
  %45300 = load i32, ptr %8, align 4, !tbaa !9
  %45301 = icmp ugt i32 6, %45300
  br i1 %45301, label %45330, label %45302

45302:                                            ; preds = %45299
  %45303 = load i32, ptr %8, align 4, !tbaa !9
  %45304 = icmp ugt i32 15, %45303
  br i1 %45304, label %45305, label %45316

45305:                                            ; preds = %45302
  %45306 = load i32, ptr %9, align 4, !tbaa !9
  %45307 = icmp ugt i32 15, %45306
  br i1 %45307, label %45308, label %45313

45308:                                            ; preds = %45305
  %45309 = load i32, ptr %9, align 4, !tbaa !9
  %45310 = load i32, ptr %8, align 4, !tbaa !9
  %45311 = icmp ugt i32 %45309, %45310
  %45312 = zext i1 %45311 to i32
  br label %45314

45313:                                            ; preds = %45305
  br label %45314

45314:                                            ; preds = %45313, %45308
  %45315 = phi i32 [ %45312, %45308 ], [ 0, %45313 ]
  br label %45327

45316:                                            ; preds = %45302
  %45317 = load i32, ptr %9, align 4, !tbaa !9
  %45318 = icmp ugt i32 15, %45317
  br i1 %45318, label %45319, label %45320

45319:                                            ; preds = %45316
  br label %45325

45320:                                            ; preds = %45316
  %45321 = load i32, ptr %9, align 4, !tbaa !9
  %45322 = load i32, ptr %8, align 4, !tbaa !9
  %45323 = icmp ugt i32 %45321, %45322
  %45324 = zext i1 %45323 to i32
  br label %45325

45325:                                            ; preds = %45320, %45319
  %45326 = phi i32 [ 0, %45319 ], [ %45324, %45320 ]
  br label %45327

45327:                                            ; preds = %45325, %45314
  %45328 = phi i32 [ %45315, %45314 ], [ %45326, %45325 ]
  %45329 = icmp ne i32 %45328, 0
  br label %45330

45330:                                            ; preds = %45327, %45299
  %45331 = phi i1 [ true, %45299 ], [ %45329, %45327 ]
  %45332 = zext i1 %45331 to i32
  %45333 = icmp eq i32 0, %45332
  br i1 %45333, label %45334, label %45371

45334:                                            ; preds = %45330
  %45335 = load i64, ptr %1311, align 8, !tbaa !13
  %45336 = sitofp i64 %45335 to double
  %45337 = fcmp olt double 0.000000e+00, %45336
  br i1 %45337, label %45338, label %45357

45338:                                            ; preds = %45334
  %45339 = load i64, ptr %1311, align 8, !tbaa !13
  %45340 = sitofp i64 %45339 to double
  %45341 = fcmp ole double %45340, 2.550000e+02
  br i1 %45341, label %45342, label %45345

45342:                                            ; preds = %45338
  %45343 = load i64, ptr %1311, align 8, !tbaa !13
  %45344 = sitofp i64 %45343 to double
  br label %45355

45345:                                            ; preds = %45338
  %45346 = load i64, ptr %1311, align 8, !tbaa !13
  %45347 = sitofp i64 %45346 to double
  %45348 = fcmp olt double %45347, 2.550000e+02
  br i1 %45348, label %45349, label %45352

45349:                                            ; preds = %45345
  %45350 = load i64, ptr %1311, align 8, !tbaa !13
  %45351 = sitofp i64 %45350 to double
  br label %45353

45352:                                            ; preds = %45345
  br label %45353

45353:                                            ; preds = %45352, %45349
  %45354 = phi double [ %45351, %45349 ], [ 2.550000e+02, %45352 ]
  br label %45355

45355:                                            ; preds = %45353, %45342
  %45356 = phi double [ %45344, %45342 ], [ %45354, %45353 ]
  br label %45367

45357:                                            ; preds = %45334
  %45358 = load i64, ptr %1311, align 8, !tbaa !13
  %45359 = sitofp i64 %45358 to double
  %45360 = fcmp olt double 0.000000e+00, %45359
  br i1 %45360, label %45361, label %45364

45361:                                            ; preds = %45357
  %45362 = load i64, ptr %1311, align 8, !tbaa !13
  %45363 = sitofp i64 %45362 to double
  br label %45365

45364:                                            ; preds = %45357
  br label %45365

45365:                                            ; preds = %45364, %45361
  %45366 = phi double [ %45363, %45361 ], [ 0.000000e+00, %45364 ]
  br label %45367

45367:                                            ; preds = %45365, %45355
  %45368 = phi double [ %45356, %45355 ], [ %45366, %45365 ]
  %45369 = fptoui double %45368 to i8
  %45370 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %45369, ptr %45370, align 1, !tbaa !17
  br label %45375

45371:                                            ; preds = %45330
  %45372 = load i64, ptr %1311, align 8, !tbaa !13
  %45373 = trunc i64 %45372 to i8
  %45374 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %45373, ptr %45374, align 1, !tbaa !17
  br label %45375

45375:                                            ; preds = %45371, %45367
  br label %45376

45376:                                            ; preds = %45375, %45295
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1313) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1312) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1311) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1310) #3
  br label %45377

45377:                                            ; preds = %45376
  br label %45378

45378:                                            ; preds = %45377
  br label %48653

45379:                                            ; preds = %45030
  br label %45380

45380:                                            ; preds = %45379
  call void @llvm.lifetime.start.p0(i64 8, ptr %1321) #3
  store double 5.000000e-01, ptr %1321, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %1322) #3
  %45381 = load ptr, ptr %10, align 8, !tbaa !5
  %45382 = load i32, ptr %45381, align 4, !tbaa !9
  store i32 %45382, ptr %1322, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1323) #3
  store double 0.000000e+00, ptr %1323, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1324) #3
  store double 0.000000e+00, ptr %1324, align 8, !tbaa !11
  %45383 = load ptr, ptr %11, align 8, !tbaa !5
  %45384 = icmp ne ptr null, %45383
  br i1 %45384, label %45385, label %45407

45385:                                            ; preds = %45380
  %45386 = load ptr, ptr %12, align 8, !tbaa !5
  %45387 = icmp ne ptr null, %45386
  br i1 %45387, label %45388, label %45399

45388:                                            ; preds = %45385
  %45389 = load ptr, ptr %11, align 8, !tbaa !5
  %45390 = load i32, ptr %45389, align 4, !tbaa !9
  %45391 = load i32, ptr %1322, align 4, !tbaa !9
  %45392 = icmp sle i32 %45390, %45391
  br i1 %45392, label %45393, label %45399

45393:                                            ; preds = %45388
  %45394 = load i32, ptr %1322, align 4, !tbaa !9
  %45395 = load ptr, ptr %12, align 8, !tbaa !5
  %45396 = load i32, ptr %45395, align 4, !tbaa !9
  %45397 = icmp sle i32 %45394, %45396
  br i1 %45397, label %45398, label %45399

45398:                                            ; preds = %45393
  br label %45400

45399:                                            ; preds = %45393, %45388, %45385
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.24, i32 noundef 503, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

45400:                                            ; preds = %45398
  %45401 = load ptr, ptr %11, align 8, !tbaa !5
  %45402 = load i32, ptr %45401, align 4, !tbaa !9
  %45403 = sitofp i32 %45402 to double
  store double %45403, ptr %1323, align 8, !tbaa !11
  %45404 = load ptr, ptr %12, align 8, !tbaa !5
  %45405 = load i32, ptr %45404, align 4, !tbaa !9
  %45406 = sitofp i32 %45405 to double
  store double %45406, ptr %1324, align 8, !tbaa !11
  br label %45407

45407:                                            ; preds = %45400, %45380
  %45408 = load i32, ptr %8, align 4, !tbaa !9
  %45409 = icmp ule i32 6, %45408
  br i1 %45409, label %45410, label %45646

45410:                                            ; preds = %45407
  %45411 = load double, ptr %1323, align 8, !tbaa !11
  %45412 = load double, ptr %1324, align 8, !tbaa !11
  %45413 = fcmp olt double %45411, %45412
  br i1 %45413, label %45414, label %45646

45414:                                            ; preds = %45410
  %45415 = load i32, ptr %8, align 4, !tbaa !9
  %45416 = icmp ule i32 15, %45415
  br i1 %45416, label %45417, label %45469

45417:                                            ; preds = %45414
  call void @llvm.lifetime.start.p0(i64 8, ptr %1325) #3
  %45418 = load double, ptr %1323, align 8, !tbaa !11
  %45419 = fcmp olt double 0.000000e+00, %45418
  br i1 %45419, label %45420, label %45422

45420:                                            ; preds = %45417
  %45421 = load double, ptr %1323, align 8, !tbaa !11
  br label %45423

45422:                                            ; preds = %45417
  br label %45423

45423:                                            ; preds = %45422, %45420
  %45424 = phi double [ %45421, %45420 ], [ 0.000000e+00, %45422 ]
  store double %45424, ptr %1325, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1326) #3
  %45425 = load double, ptr %1324, align 8, !tbaa !11
  %45426 = fcmp olt double 0.000000e+00, %45425
  br i1 %45426, label %45427, label %45429

45427:                                            ; preds = %45423
  %45428 = load double, ptr %1324, align 8, !tbaa !11
  br label %45430

45429:                                            ; preds = %45423
  br label %45430

45430:                                            ; preds = %45429, %45427
  %45431 = phi double [ %45428, %45427 ], [ 0.000000e+00, %45429 ]
  store double %45431, ptr %1326, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1327) #3
  %45432 = load double, ptr %1325, align 8, !tbaa !11
  %45433 = load double, ptr %1326, align 8, !tbaa !11
  %45434 = fcmp olt double %45432, %45433
  br i1 %45434, label %45435, label %45443

45435:                                            ; preds = %45430
  %45436 = load double, ptr %1324, align 8, !tbaa !11
  %45437 = load double, ptr %1323, align 8, !tbaa !11
  %45438 = fsub double %45436, %45437
  %45439 = load double, ptr %1326, align 8, !tbaa !11
  %45440 = load double, ptr %1325, align 8, !tbaa !11
  %45441 = fsub double %45439, %45440
  %45442 = fdiv double %45438, %45441
  br label %45444

45443:                                            ; preds = %45430
  br label %45444

45444:                                            ; preds = %45443, %45435
  %45445 = phi double [ %45442, %45435 ], [ 1.000000e+00, %45443 ]
  store double %45445, ptr %1327, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1328) #3
  %45446 = load double, ptr %1327, align 8, !tbaa !11
  %45447 = load i32, ptr %1322, align 4, !tbaa !9
  %45448 = icmp slt i32 0, %45447
  br i1 %45448, label %45449, label %45451

45449:                                            ; preds = %45444
  %45450 = load i32, ptr %1322, align 4, !tbaa !9
  br label %45452

45451:                                            ; preds = %45444
  br label %45452

45452:                                            ; preds = %45451, %45449
  %45453 = phi i32 [ %45450, %45449 ], [ 0, %45451 ]
  %45454 = sitofp i32 %45453 to double
  %45455 = fmul double %45446, %45454
  store double %45455, ptr %1328, align 8, !tbaa !11
  %45456 = load double, ptr %1328, align 8, !tbaa !11
  %45457 = fcmp ole double 0.000000e+00, %45456
  br i1 %45457, label %45458, label %45461

45458:                                            ; preds = %45452
  %45459 = load double, ptr %1328, align 8, !tbaa !11
  %45460 = fadd double %45459, 5.000000e-01
  br label %45464

45461:                                            ; preds = %45452
  %45462 = load double, ptr %1328, align 8, !tbaa !11
  %45463 = fsub double %45462, 5.000000e-01
  br label %45464

45464:                                            ; preds = %45461, %45458
  %45465 = phi double [ %45460, %45458 ], [ %45463, %45461 ]
  %45466 = fptosi double %45465 to i32
  store i32 %45466, ptr %1322, align 4, !tbaa !9
  %45467 = load double, ptr %1325, align 8, !tbaa !11
  store double %45467, ptr %1323, align 8, !tbaa !11
  %45468 = load double, ptr %1326, align 8, !tbaa !11
  store double %45468, ptr %1324, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1328) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1327) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1326) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1325) #3
  br label %45525

45469:                                            ; preds = %45414
  %45470 = load i32, ptr %8, align 4, !tbaa !9
  %45471 = icmp ugt i32 6, %45470
  br i1 %45471, label %45500, label %45472

45472:                                            ; preds = %45469
  %45473 = load i32, ptr %8, align 4, !tbaa !9
  %45474 = icmp ugt i32 15, %45473
  br i1 %45474, label %45475, label %45486

45475:                                            ; preds = %45472
  %45476 = load i32, ptr %9, align 4, !tbaa !9
  %45477 = icmp ugt i32 15, %45476
  br i1 %45477, label %45478, label %45483

45478:                                            ; preds = %45475
  %45479 = load i32, ptr %9, align 4, !tbaa !9
  %45480 = load i32, ptr %8, align 4, !tbaa !9
  %45481 = icmp ugt i32 %45479, %45480
  %45482 = zext i1 %45481 to i32
  br label %45484

45483:                                            ; preds = %45475
  br label %45484

45484:                                            ; preds = %45483, %45478
  %45485 = phi i32 [ %45482, %45478 ], [ 0, %45483 ]
  br label %45497

45486:                                            ; preds = %45472
  %45487 = load i32, ptr %9, align 4, !tbaa !9
  %45488 = icmp ugt i32 15, %45487
  br i1 %45488, label %45489, label %45490

45489:                                            ; preds = %45486
  br label %45495

45490:                                            ; preds = %45486
  %45491 = load i32, ptr %9, align 4, !tbaa !9
  %45492 = load i32, ptr %8, align 4, !tbaa !9
  %45493 = icmp ugt i32 %45491, %45492
  %45494 = zext i1 %45493 to i32
  br label %45495

45495:                                            ; preds = %45490, %45489
  %45496 = phi i32 [ 0, %45489 ], [ %45494, %45490 ]
  br label %45497

45497:                                            ; preds = %45495, %45484
  %45498 = phi i32 [ %45485, %45484 ], [ %45496, %45495 ]
  %45499 = icmp ne i32 %45498, 0
  br label %45500

45500:                                            ; preds = %45497, %45469
  %45501 = phi i1 [ true, %45469 ], [ %45499, %45497 ]
  %45502 = zext i1 %45501 to i32
  %45503 = icmp eq i32 0, %45502
  br i1 %45503, label %45504, label %45524

45504:                                            ; preds = %45500
  %45505 = load double, ptr %1323, align 8, !tbaa !11
  %45506 = fcmp ogt double 0.000000e+00, %45505
  br i1 %45506, label %45507, label %45524

45507:                                            ; preds = %45504
  %45508 = load double, ptr %1324, align 8, !tbaa !11
  %45509 = fcmp olt double 0.000000e+00, %45508
  br i1 %45509, label %45510, label %45524

45510:                                            ; preds = %45507
  %45511 = load double, ptr %1323, align 8, !tbaa !11
  %45512 = fneg double %45511
  %45513 = load double, ptr %1324, align 8, !tbaa !11
  %45514 = fcmp olt double %45512, %45513
  br i1 %45514, label %45515, label %45517

45515:                                            ; preds = %45510
  %45516 = load double, ptr %1324, align 8, !tbaa !11
  br label %45520

45517:                                            ; preds = %45510
  %45518 = load double, ptr %1323, align 8, !tbaa !11
  %45519 = fneg double %45518
  br label %45520

45520:                                            ; preds = %45517, %45515
  %45521 = phi double [ %45516, %45515 ], [ %45519, %45517 ]
  store double %45521, ptr %1324, align 8, !tbaa !11
  %45522 = load double, ptr %1324, align 8, !tbaa !11
  %45523 = fneg double %45522
  store double %45523, ptr %1323, align 8, !tbaa !11
  br label %45524

45524:                                            ; preds = %45520, %45507, %45504, %45500
  br label %45525

45525:                                            ; preds = %45524, %45464
  call void @llvm.lifetime.start.p0(i64 8, ptr %1329) #3
  %45526 = load double, ptr %1323, align 8, !tbaa !11
  %45527 = fcmp ole double 0.000000e+00, %45526
  %45528 = zext i1 %45527 to i64
  %45529 = select i1 %45527, double 0.000000e+00, double 0.000000e+00
  store double %45529, ptr %1329, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1330) #3
  %45530 = load double, ptr %1324, align 8, !tbaa !11
  %45531 = fcmp ole double 0.000000e+00, %45530
  %45532 = zext i1 %45531 to i64
  %45533 = select i1 %45531, double 2.550000e+02, double 0.000000e+00
  store double %45533, ptr %1330, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1331) #3
  %45534 = load i32, ptr %1322, align 4, !tbaa !9
  %45535 = sitofp i32 %45534 to double
  %45536 = load double, ptr %1323, align 8, !tbaa !11
  %45537 = fsub double %45535, %45536
  %45538 = load double, ptr %1330, align 8, !tbaa !11
  %45539 = load double, ptr %1329, align 8, !tbaa !11
  %45540 = fsub double %45538, %45539
  %45541 = fmul double %45537, %45540
  %45542 = load double, ptr %1324, align 8, !tbaa !11
  %45543 = load double, ptr %1323, align 8, !tbaa !11
  %45544 = fsub double %45542, %45543
  %45545 = fdiv double %45541, %45544
  %45546 = load double, ptr %1329, align 8, !tbaa !11
  %45547 = fadd double %45545, %45546
  store double %45547, ptr %1331, align 8, !tbaa !11
  %45548 = load double, ptr %1329, align 8, !tbaa !11
  %45549 = load double, ptr %1331, align 8, !tbaa !11
  %45550 = fcmp ole double 0.000000e+00, %45549
  br i1 %45550, label %45551, label %45554

45551:                                            ; preds = %45525
  %45552 = load double, ptr %1331, align 8, !tbaa !11
  %45553 = fadd double %45552, 5.000000e-01
  br label %45557

45554:                                            ; preds = %45525
  %45555 = load double, ptr %1331, align 8, !tbaa !11
  %45556 = fsub double %45555, 5.000000e-01
  br label %45557

45557:                                            ; preds = %45554, %45551
  %45558 = phi double [ %45553, %45551 ], [ %45556, %45554 ]
  %45559 = fcmp olt double %45548, %45558
  br i1 %45559, label %45560, label %45614

45560:                                            ; preds = %45557
  %45561 = load double, ptr %1331, align 8, !tbaa !11
  %45562 = fcmp ole double 0.000000e+00, %45561
  br i1 %45562, label %45563, label %45566

45563:                                            ; preds = %45560
  %45564 = load double, ptr %1331, align 8, !tbaa !11
  %45565 = fadd double %45564, 5.000000e-01
  br label %45569

45566:                                            ; preds = %45560
  %45567 = load double, ptr %1331, align 8, !tbaa !11
  %45568 = fsub double %45567, 5.000000e-01
  br label %45569

45569:                                            ; preds = %45566, %45563
  %45570 = phi double [ %45565, %45563 ], [ %45568, %45566 ]
  %45571 = load double, ptr %1330, align 8, !tbaa !11
  %45572 = fcmp ole double %45570, %45571
  br i1 %45572, label %45573, label %45584

45573:                                            ; preds = %45569
  %45574 = load double, ptr %1331, align 8, !tbaa !11
  %45575 = fcmp ole double 0.000000e+00, %45574
  br i1 %45575, label %45576, label %45579

45576:                                            ; preds = %45573
  %45577 = load double, ptr %1331, align 8, !tbaa !11
  %45578 = fadd double %45577, 5.000000e-01
  br label %45582

45579:                                            ; preds = %45573
  %45580 = load double, ptr %1331, align 8, !tbaa !11
  %45581 = fsub double %45580, 5.000000e-01
  br label %45582

45582:                                            ; preds = %45579, %45576
  %45583 = phi double [ %45578, %45576 ], [ %45581, %45579 ]
  br label %45612

45584:                                            ; preds = %45569
  %45585 = load double, ptr %1331, align 8, !tbaa !11
  %45586 = fcmp ole double 0.000000e+00, %45585
  br i1 %45586, label %45587, label %45590

45587:                                            ; preds = %45584
  %45588 = load double, ptr %1331, align 8, !tbaa !11
  %45589 = fadd double %45588, 5.000000e-01
  br label %45593

45590:                                            ; preds = %45584
  %45591 = load double, ptr %1331, align 8, !tbaa !11
  %45592 = fsub double %45591, 5.000000e-01
  br label %45593

45593:                                            ; preds = %45590, %45587
  %45594 = phi double [ %45589, %45587 ], [ %45592, %45590 ]
  %45595 = load double, ptr %1330, align 8, !tbaa !11
  %45596 = fcmp olt double %45594, %45595
  br i1 %45596, label %45597, label %45608

45597:                                            ; preds = %45593
  %45598 = load double, ptr %1331, align 8, !tbaa !11
  %45599 = fcmp ole double 0.000000e+00, %45598
  br i1 %45599, label %45600, label %45603

45600:                                            ; preds = %45597
  %45601 = load double, ptr %1331, align 8, !tbaa !11
  %45602 = fadd double %45601, 5.000000e-01
  br label %45606

45603:                                            ; preds = %45597
  %45604 = load double, ptr %1331, align 8, !tbaa !11
  %45605 = fsub double %45604, 5.000000e-01
  br label %45606

45606:                                            ; preds = %45603, %45600
  %45607 = phi double [ %45602, %45600 ], [ %45605, %45603 ]
  br label %45610

45608:                                            ; preds = %45593
  %45609 = load double, ptr %1330, align 8, !tbaa !11
  br label %45610

45610:                                            ; preds = %45608, %45606
  %45611 = phi double [ %45607, %45606 ], [ %45609, %45608 ]
  br label %45612

45612:                                            ; preds = %45610, %45582
  %45613 = phi double [ %45583, %45582 ], [ %45611, %45610 ]
  br label %45642

45614:                                            ; preds = %45557
  %45615 = load double, ptr %1329, align 8, !tbaa !11
  %45616 = load double, ptr %1331, align 8, !tbaa !11
  %45617 = fcmp ole double 0.000000e+00, %45616
  br i1 %45617, label %45618, label %45621

45618:                                            ; preds = %45614
  %45619 = load double, ptr %1331, align 8, !tbaa !11
  %45620 = fadd double %45619, 5.000000e-01
  br label %45624

45621:                                            ; preds = %45614
  %45622 = load double, ptr %1331, align 8, !tbaa !11
  %45623 = fsub double %45622, 5.000000e-01
  br label %45624

45624:                                            ; preds = %45621, %45618
  %45625 = phi double [ %45620, %45618 ], [ %45623, %45621 ]
  %45626 = fcmp olt double %45615, %45625
  br i1 %45626, label %45627, label %45638

45627:                                            ; preds = %45624
  %45628 = load double, ptr %1331, align 8, !tbaa !11
  %45629 = fcmp ole double 0.000000e+00, %45628
  br i1 %45629, label %45630, label %45633

45630:                                            ; preds = %45627
  %45631 = load double, ptr %1331, align 8, !tbaa !11
  %45632 = fadd double %45631, 5.000000e-01
  br label %45636

45633:                                            ; preds = %45627
  %45634 = load double, ptr %1331, align 8, !tbaa !11
  %45635 = fsub double %45634, 5.000000e-01
  br label %45636

45636:                                            ; preds = %45633, %45630
  %45637 = phi double [ %45632, %45630 ], [ %45635, %45633 ]
  br label %45640

45638:                                            ; preds = %45624
  %45639 = load double, ptr %1329, align 8, !tbaa !11
  br label %45640

45640:                                            ; preds = %45638, %45636
  %45641 = phi double [ %45637, %45636 ], [ %45639, %45638 ]
  br label %45642

45642:                                            ; preds = %45640, %45612
  %45643 = phi double [ %45613, %45612 ], [ %45641, %45640 ]
  %45644 = fptoui double %45643 to i8
  %45645 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %45644, ptr %45645, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %1331) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1330) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1329) #3
  br label %45723

45646:                                            ; preds = %45410, %45407
  %45647 = load i32, ptr %8, align 4, !tbaa !9
  %45648 = icmp ugt i32 6, %45647
  br i1 %45648, label %45677, label %45649

45649:                                            ; preds = %45646
  %45650 = load i32, ptr %8, align 4, !tbaa !9
  %45651 = icmp ugt i32 15, %45650
  br i1 %45651, label %45652, label %45663

45652:                                            ; preds = %45649
  %45653 = load i32, ptr %9, align 4, !tbaa !9
  %45654 = icmp ugt i32 15, %45653
  br i1 %45654, label %45655, label %45660

45655:                                            ; preds = %45652
  %45656 = load i32, ptr %9, align 4, !tbaa !9
  %45657 = load i32, ptr %8, align 4, !tbaa !9
  %45658 = icmp ugt i32 %45656, %45657
  %45659 = zext i1 %45658 to i32
  br label %45661

45660:                                            ; preds = %45652
  br label %45661

45661:                                            ; preds = %45660, %45655
  %45662 = phi i32 [ %45659, %45655 ], [ 0, %45660 ]
  br label %45674

45663:                                            ; preds = %45649
  %45664 = load i32, ptr %9, align 4, !tbaa !9
  %45665 = icmp ugt i32 15, %45664
  br i1 %45665, label %45666, label %45667

45666:                                            ; preds = %45663
  br label %45672

45667:                                            ; preds = %45663
  %45668 = load i32, ptr %9, align 4, !tbaa !9
  %45669 = load i32, ptr %8, align 4, !tbaa !9
  %45670 = icmp ugt i32 %45668, %45669
  %45671 = zext i1 %45670 to i32
  br label %45672

45672:                                            ; preds = %45667, %45666
  %45673 = phi i32 [ 0, %45666 ], [ %45671, %45667 ]
  br label %45674

45674:                                            ; preds = %45672, %45661
  %45675 = phi i32 [ %45662, %45661 ], [ %45673, %45672 ]
  %45676 = icmp ne i32 %45675, 0
  br label %45677

45677:                                            ; preds = %45674, %45646
  %45678 = phi i1 [ true, %45646 ], [ %45676, %45674 ]
  %45679 = zext i1 %45678 to i32
  %45680 = icmp eq i32 0, %45679
  br i1 %45680, label %45681, label %45718

45681:                                            ; preds = %45677
  %45682 = load i32, ptr %1322, align 4, !tbaa !9
  %45683 = sitofp i32 %45682 to double
  %45684 = fcmp olt double 0.000000e+00, %45683
  br i1 %45684, label %45685, label %45704

45685:                                            ; preds = %45681
  %45686 = load i32, ptr %1322, align 4, !tbaa !9
  %45687 = sitofp i32 %45686 to double
  %45688 = fcmp ole double %45687, 2.550000e+02
  br i1 %45688, label %45689, label %45692

45689:                                            ; preds = %45685
  %45690 = load i32, ptr %1322, align 4, !tbaa !9
  %45691 = sitofp i32 %45690 to double
  br label %45702

45692:                                            ; preds = %45685
  %45693 = load i32, ptr %1322, align 4, !tbaa !9
  %45694 = sitofp i32 %45693 to double
  %45695 = fcmp olt double %45694, 2.550000e+02
  br i1 %45695, label %45696, label %45699

45696:                                            ; preds = %45692
  %45697 = load i32, ptr %1322, align 4, !tbaa !9
  %45698 = sitofp i32 %45697 to double
  br label %45700

45699:                                            ; preds = %45692
  br label %45700

45700:                                            ; preds = %45699, %45696
  %45701 = phi double [ %45698, %45696 ], [ 2.550000e+02, %45699 ]
  br label %45702

45702:                                            ; preds = %45700, %45689
  %45703 = phi double [ %45691, %45689 ], [ %45701, %45700 ]
  br label %45714

45704:                                            ; preds = %45681
  %45705 = load i32, ptr %1322, align 4, !tbaa !9
  %45706 = sitofp i32 %45705 to double
  %45707 = fcmp olt double 0.000000e+00, %45706
  br i1 %45707, label %45708, label %45711

45708:                                            ; preds = %45704
  %45709 = load i32, ptr %1322, align 4, !tbaa !9
  %45710 = sitofp i32 %45709 to double
  br label %45712

45711:                                            ; preds = %45704
  br label %45712

45712:                                            ; preds = %45711, %45708
  %45713 = phi double [ %45710, %45708 ], [ 0.000000e+00, %45711 ]
  br label %45714

45714:                                            ; preds = %45712, %45702
  %45715 = phi double [ %45703, %45702 ], [ %45713, %45712 ]
  %45716 = fptoui double %45715 to i8
  %45717 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %45716, ptr %45717, align 1, !tbaa !17
  br label %45722

45718:                                            ; preds = %45677
  %45719 = load i32, ptr %1322, align 4, !tbaa !9
  %45720 = trunc i32 %45719 to i8
  %45721 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %45720, ptr %45721, align 1, !tbaa !17
  br label %45722

45722:                                            ; preds = %45718, %45714
  br label %45723

45723:                                            ; preds = %45722, %45642
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1324) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1323) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %1322) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1321) #3
  br label %45724

45724:                                            ; preds = %45723
  br label %45725

45725:                                            ; preds = %45724
  br label %48653

45726:                                            ; preds = %45030
  br label %45727

45727:                                            ; preds = %45726
  call void @llvm.lifetime.start.p0(i64 8, ptr %1332) #3
  store double 5.000000e-01, ptr %1332, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %1333) #3
  %45728 = load ptr, ptr %10, align 8, !tbaa !5
  %45729 = load i16, ptr %45728, align 2, !tbaa !15
  store i16 %45729, ptr %1333, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %1334) #3
  store double 0.000000e+00, ptr %1334, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1335) #3
  store double 0.000000e+00, ptr %1335, align 8, !tbaa !11
  %45730 = load ptr, ptr %11, align 8, !tbaa !5
  %45731 = icmp ne ptr null, %45730
  br i1 %45731, label %45732, label %45758

45732:                                            ; preds = %45727
  %45733 = load ptr, ptr %12, align 8, !tbaa !5
  %45734 = icmp ne ptr null, %45733
  br i1 %45734, label %45735, label %45750

45735:                                            ; preds = %45732
  %45736 = load ptr, ptr %11, align 8, !tbaa !5
  %45737 = load i16, ptr %45736, align 2, !tbaa !15
  %45738 = sext i16 %45737 to i32
  %45739 = load i16, ptr %1333, align 2, !tbaa !15
  %45740 = sext i16 %45739 to i32
  %45741 = icmp sle i32 %45738, %45740
  br i1 %45741, label %45742, label %45750

45742:                                            ; preds = %45735
  %45743 = load i16, ptr %1333, align 2, !tbaa !15
  %45744 = sext i16 %45743 to i32
  %45745 = load ptr, ptr %12, align 8, !tbaa !5
  %45746 = load i16, ptr %45745, align 2, !tbaa !15
  %45747 = sext i16 %45746 to i32
  %45748 = icmp sle i32 %45744, %45747
  br i1 %45748, label %45749, label %45750

45749:                                            ; preds = %45742
  br label %45751

45750:                                            ; preds = %45742, %45735, %45732
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.24, i32 noundef 503, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

45751:                                            ; preds = %45749
  %45752 = load ptr, ptr %11, align 8, !tbaa !5
  %45753 = load i16, ptr %45752, align 2, !tbaa !15
  %45754 = sitofp i16 %45753 to double
  store double %45754, ptr %1334, align 8, !tbaa !11
  %45755 = load ptr, ptr %12, align 8, !tbaa !5
  %45756 = load i16, ptr %45755, align 2, !tbaa !15
  %45757 = sitofp i16 %45756 to double
  store double %45757, ptr %1335, align 8, !tbaa !11
  br label %45758

45758:                                            ; preds = %45751, %45727
  %45759 = load i32, ptr %8, align 4, !tbaa !9
  %45760 = icmp ule i32 6, %45759
  br i1 %45760, label %45761, label %45999

45761:                                            ; preds = %45758
  %45762 = load double, ptr %1334, align 8, !tbaa !11
  %45763 = load double, ptr %1335, align 8, !tbaa !11
  %45764 = fcmp olt double %45762, %45763
  br i1 %45764, label %45765, label %45999

45765:                                            ; preds = %45761
  %45766 = load i32, ptr %8, align 4, !tbaa !9
  %45767 = icmp ule i32 15, %45766
  br i1 %45767, label %45768, label %45822

45768:                                            ; preds = %45765
  call void @llvm.lifetime.start.p0(i64 8, ptr %1336) #3
  %45769 = load double, ptr %1334, align 8, !tbaa !11
  %45770 = fcmp olt double 0.000000e+00, %45769
  br i1 %45770, label %45771, label %45773

45771:                                            ; preds = %45768
  %45772 = load double, ptr %1334, align 8, !tbaa !11
  br label %45774

45773:                                            ; preds = %45768
  br label %45774

45774:                                            ; preds = %45773, %45771
  %45775 = phi double [ %45772, %45771 ], [ 0.000000e+00, %45773 ]
  store double %45775, ptr %1336, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1337) #3
  %45776 = load double, ptr %1335, align 8, !tbaa !11
  %45777 = fcmp olt double 0.000000e+00, %45776
  br i1 %45777, label %45778, label %45780

45778:                                            ; preds = %45774
  %45779 = load double, ptr %1335, align 8, !tbaa !11
  br label %45781

45780:                                            ; preds = %45774
  br label %45781

45781:                                            ; preds = %45780, %45778
  %45782 = phi double [ %45779, %45778 ], [ 0.000000e+00, %45780 ]
  store double %45782, ptr %1337, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1338) #3
  %45783 = load double, ptr %1336, align 8, !tbaa !11
  %45784 = load double, ptr %1337, align 8, !tbaa !11
  %45785 = fcmp olt double %45783, %45784
  br i1 %45785, label %45786, label %45794

45786:                                            ; preds = %45781
  %45787 = load double, ptr %1335, align 8, !tbaa !11
  %45788 = load double, ptr %1334, align 8, !tbaa !11
  %45789 = fsub double %45787, %45788
  %45790 = load double, ptr %1337, align 8, !tbaa !11
  %45791 = load double, ptr %1336, align 8, !tbaa !11
  %45792 = fsub double %45790, %45791
  %45793 = fdiv double %45789, %45792
  br label %45795

45794:                                            ; preds = %45781
  br label %45795

45795:                                            ; preds = %45794, %45786
  %45796 = phi double [ %45793, %45786 ], [ 1.000000e+00, %45794 ]
  store double %45796, ptr %1338, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1339) #3
  %45797 = load double, ptr %1338, align 8, !tbaa !11
  %45798 = load i16, ptr %1333, align 2, !tbaa !15
  %45799 = sext i16 %45798 to i32
  %45800 = icmp slt i32 0, %45799
  br i1 %45800, label %45801, label %45804

45801:                                            ; preds = %45795
  %45802 = load i16, ptr %1333, align 2, !tbaa !15
  %45803 = sext i16 %45802 to i32
  br label %45805

45804:                                            ; preds = %45795
  br label %45805

45805:                                            ; preds = %45804, %45801
  %45806 = phi i32 [ %45803, %45801 ], [ 0, %45804 ]
  %45807 = sitofp i32 %45806 to double
  %45808 = fmul double %45797, %45807
  store double %45808, ptr %1339, align 8, !tbaa !11
  %45809 = load double, ptr %1339, align 8, !tbaa !11
  %45810 = fcmp ole double 0.000000e+00, %45809
  br i1 %45810, label %45811, label %45814

45811:                                            ; preds = %45805
  %45812 = load double, ptr %1339, align 8, !tbaa !11
  %45813 = fadd double %45812, 5.000000e-01
  br label %45817

45814:                                            ; preds = %45805
  %45815 = load double, ptr %1339, align 8, !tbaa !11
  %45816 = fsub double %45815, 5.000000e-01
  br label %45817

45817:                                            ; preds = %45814, %45811
  %45818 = phi double [ %45813, %45811 ], [ %45816, %45814 ]
  %45819 = fptosi double %45818 to i16
  store i16 %45819, ptr %1333, align 2, !tbaa !15
  %45820 = load double, ptr %1336, align 8, !tbaa !11
  store double %45820, ptr %1334, align 8, !tbaa !11
  %45821 = load double, ptr %1337, align 8, !tbaa !11
  store double %45821, ptr %1335, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1339) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1338) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1337) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1336) #3
  br label %45878

45822:                                            ; preds = %45765
  %45823 = load i32, ptr %8, align 4, !tbaa !9
  %45824 = icmp ugt i32 6, %45823
  br i1 %45824, label %45853, label %45825

45825:                                            ; preds = %45822
  %45826 = load i32, ptr %8, align 4, !tbaa !9
  %45827 = icmp ugt i32 15, %45826
  br i1 %45827, label %45828, label %45839

45828:                                            ; preds = %45825
  %45829 = load i32, ptr %9, align 4, !tbaa !9
  %45830 = icmp ugt i32 15, %45829
  br i1 %45830, label %45831, label %45836

45831:                                            ; preds = %45828
  %45832 = load i32, ptr %9, align 4, !tbaa !9
  %45833 = load i32, ptr %8, align 4, !tbaa !9
  %45834 = icmp ugt i32 %45832, %45833
  %45835 = zext i1 %45834 to i32
  br label %45837

45836:                                            ; preds = %45828
  br label %45837

45837:                                            ; preds = %45836, %45831
  %45838 = phi i32 [ %45835, %45831 ], [ 0, %45836 ]
  br label %45850

45839:                                            ; preds = %45825
  %45840 = load i32, ptr %9, align 4, !tbaa !9
  %45841 = icmp ugt i32 15, %45840
  br i1 %45841, label %45842, label %45843

45842:                                            ; preds = %45839
  br label %45848

45843:                                            ; preds = %45839
  %45844 = load i32, ptr %9, align 4, !tbaa !9
  %45845 = load i32, ptr %8, align 4, !tbaa !9
  %45846 = icmp ugt i32 %45844, %45845
  %45847 = zext i1 %45846 to i32
  br label %45848

45848:                                            ; preds = %45843, %45842
  %45849 = phi i32 [ 0, %45842 ], [ %45847, %45843 ]
  br label %45850

45850:                                            ; preds = %45848, %45837
  %45851 = phi i32 [ %45838, %45837 ], [ %45849, %45848 ]
  %45852 = icmp ne i32 %45851, 0
  br label %45853

45853:                                            ; preds = %45850, %45822
  %45854 = phi i1 [ true, %45822 ], [ %45852, %45850 ]
  %45855 = zext i1 %45854 to i32
  %45856 = icmp eq i32 0, %45855
  br i1 %45856, label %45857, label %45877

45857:                                            ; preds = %45853
  %45858 = load double, ptr %1334, align 8, !tbaa !11
  %45859 = fcmp ogt double 0.000000e+00, %45858
  br i1 %45859, label %45860, label %45877

45860:                                            ; preds = %45857
  %45861 = load double, ptr %1335, align 8, !tbaa !11
  %45862 = fcmp olt double 0.000000e+00, %45861
  br i1 %45862, label %45863, label %45877

45863:                                            ; preds = %45860
  %45864 = load double, ptr %1334, align 8, !tbaa !11
  %45865 = fneg double %45864
  %45866 = load double, ptr %1335, align 8, !tbaa !11
  %45867 = fcmp olt double %45865, %45866
  br i1 %45867, label %45868, label %45870

45868:                                            ; preds = %45863
  %45869 = load double, ptr %1335, align 8, !tbaa !11
  br label %45873

45870:                                            ; preds = %45863
  %45871 = load double, ptr %1334, align 8, !tbaa !11
  %45872 = fneg double %45871
  br label %45873

45873:                                            ; preds = %45870, %45868
  %45874 = phi double [ %45869, %45868 ], [ %45872, %45870 ]
  store double %45874, ptr %1335, align 8, !tbaa !11
  %45875 = load double, ptr %1335, align 8, !tbaa !11
  %45876 = fneg double %45875
  store double %45876, ptr %1334, align 8, !tbaa !11
  br label %45877

45877:                                            ; preds = %45873, %45860, %45857, %45853
  br label %45878

45878:                                            ; preds = %45877, %45817
  call void @llvm.lifetime.start.p0(i64 8, ptr %1340) #3
  %45879 = load double, ptr %1334, align 8, !tbaa !11
  %45880 = fcmp ole double 0.000000e+00, %45879
  %45881 = zext i1 %45880 to i64
  %45882 = select i1 %45880, double 0.000000e+00, double 0.000000e+00
  store double %45882, ptr %1340, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1341) #3
  %45883 = load double, ptr %1335, align 8, !tbaa !11
  %45884 = fcmp ole double 0.000000e+00, %45883
  %45885 = zext i1 %45884 to i64
  %45886 = select i1 %45884, double 2.550000e+02, double 0.000000e+00
  store double %45886, ptr %1341, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1342) #3
  %45887 = load i16, ptr %1333, align 2, !tbaa !15
  %45888 = sitofp i16 %45887 to double
  %45889 = load double, ptr %1334, align 8, !tbaa !11
  %45890 = fsub double %45888, %45889
  %45891 = load double, ptr %1341, align 8, !tbaa !11
  %45892 = load double, ptr %1340, align 8, !tbaa !11
  %45893 = fsub double %45891, %45892
  %45894 = fmul double %45890, %45893
  %45895 = load double, ptr %1335, align 8, !tbaa !11
  %45896 = load double, ptr %1334, align 8, !tbaa !11
  %45897 = fsub double %45895, %45896
  %45898 = fdiv double %45894, %45897
  %45899 = load double, ptr %1340, align 8, !tbaa !11
  %45900 = fadd double %45898, %45899
  store double %45900, ptr %1342, align 8, !tbaa !11
  %45901 = load double, ptr %1340, align 8, !tbaa !11
  %45902 = load double, ptr %1342, align 8, !tbaa !11
  %45903 = fcmp ole double 0.000000e+00, %45902
  br i1 %45903, label %45904, label %45907

45904:                                            ; preds = %45878
  %45905 = load double, ptr %1342, align 8, !tbaa !11
  %45906 = fadd double %45905, 5.000000e-01
  br label %45910

45907:                                            ; preds = %45878
  %45908 = load double, ptr %1342, align 8, !tbaa !11
  %45909 = fsub double %45908, 5.000000e-01
  br label %45910

45910:                                            ; preds = %45907, %45904
  %45911 = phi double [ %45906, %45904 ], [ %45909, %45907 ]
  %45912 = fcmp olt double %45901, %45911
  br i1 %45912, label %45913, label %45967

45913:                                            ; preds = %45910
  %45914 = load double, ptr %1342, align 8, !tbaa !11
  %45915 = fcmp ole double 0.000000e+00, %45914
  br i1 %45915, label %45916, label %45919

45916:                                            ; preds = %45913
  %45917 = load double, ptr %1342, align 8, !tbaa !11
  %45918 = fadd double %45917, 5.000000e-01
  br label %45922

45919:                                            ; preds = %45913
  %45920 = load double, ptr %1342, align 8, !tbaa !11
  %45921 = fsub double %45920, 5.000000e-01
  br label %45922

45922:                                            ; preds = %45919, %45916
  %45923 = phi double [ %45918, %45916 ], [ %45921, %45919 ]
  %45924 = load double, ptr %1341, align 8, !tbaa !11
  %45925 = fcmp ole double %45923, %45924
  br i1 %45925, label %45926, label %45937

45926:                                            ; preds = %45922
  %45927 = load double, ptr %1342, align 8, !tbaa !11
  %45928 = fcmp ole double 0.000000e+00, %45927
  br i1 %45928, label %45929, label %45932

45929:                                            ; preds = %45926
  %45930 = load double, ptr %1342, align 8, !tbaa !11
  %45931 = fadd double %45930, 5.000000e-01
  br label %45935

45932:                                            ; preds = %45926
  %45933 = load double, ptr %1342, align 8, !tbaa !11
  %45934 = fsub double %45933, 5.000000e-01
  br label %45935

45935:                                            ; preds = %45932, %45929
  %45936 = phi double [ %45931, %45929 ], [ %45934, %45932 ]
  br label %45965

45937:                                            ; preds = %45922
  %45938 = load double, ptr %1342, align 8, !tbaa !11
  %45939 = fcmp ole double 0.000000e+00, %45938
  br i1 %45939, label %45940, label %45943

45940:                                            ; preds = %45937
  %45941 = load double, ptr %1342, align 8, !tbaa !11
  %45942 = fadd double %45941, 5.000000e-01
  br label %45946

45943:                                            ; preds = %45937
  %45944 = load double, ptr %1342, align 8, !tbaa !11
  %45945 = fsub double %45944, 5.000000e-01
  br label %45946

45946:                                            ; preds = %45943, %45940
  %45947 = phi double [ %45942, %45940 ], [ %45945, %45943 ]
  %45948 = load double, ptr %1341, align 8, !tbaa !11
  %45949 = fcmp olt double %45947, %45948
  br i1 %45949, label %45950, label %45961

45950:                                            ; preds = %45946
  %45951 = load double, ptr %1342, align 8, !tbaa !11
  %45952 = fcmp ole double 0.000000e+00, %45951
  br i1 %45952, label %45953, label %45956

45953:                                            ; preds = %45950
  %45954 = load double, ptr %1342, align 8, !tbaa !11
  %45955 = fadd double %45954, 5.000000e-01
  br label %45959

45956:                                            ; preds = %45950
  %45957 = load double, ptr %1342, align 8, !tbaa !11
  %45958 = fsub double %45957, 5.000000e-01
  br label %45959

45959:                                            ; preds = %45956, %45953
  %45960 = phi double [ %45955, %45953 ], [ %45958, %45956 ]
  br label %45963

45961:                                            ; preds = %45946
  %45962 = load double, ptr %1341, align 8, !tbaa !11
  br label %45963

45963:                                            ; preds = %45961, %45959
  %45964 = phi double [ %45960, %45959 ], [ %45962, %45961 ]
  br label %45965

45965:                                            ; preds = %45963, %45935
  %45966 = phi double [ %45936, %45935 ], [ %45964, %45963 ]
  br label %45995

45967:                                            ; preds = %45910
  %45968 = load double, ptr %1340, align 8, !tbaa !11
  %45969 = load double, ptr %1342, align 8, !tbaa !11
  %45970 = fcmp ole double 0.000000e+00, %45969
  br i1 %45970, label %45971, label %45974

45971:                                            ; preds = %45967
  %45972 = load double, ptr %1342, align 8, !tbaa !11
  %45973 = fadd double %45972, 5.000000e-01
  br label %45977

45974:                                            ; preds = %45967
  %45975 = load double, ptr %1342, align 8, !tbaa !11
  %45976 = fsub double %45975, 5.000000e-01
  br label %45977

45977:                                            ; preds = %45974, %45971
  %45978 = phi double [ %45973, %45971 ], [ %45976, %45974 ]
  %45979 = fcmp olt double %45968, %45978
  br i1 %45979, label %45980, label %45991

45980:                                            ; preds = %45977
  %45981 = load double, ptr %1342, align 8, !tbaa !11
  %45982 = fcmp ole double 0.000000e+00, %45981
  br i1 %45982, label %45983, label %45986

45983:                                            ; preds = %45980
  %45984 = load double, ptr %1342, align 8, !tbaa !11
  %45985 = fadd double %45984, 5.000000e-01
  br label %45989

45986:                                            ; preds = %45980
  %45987 = load double, ptr %1342, align 8, !tbaa !11
  %45988 = fsub double %45987, 5.000000e-01
  br label %45989

45989:                                            ; preds = %45986, %45983
  %45990 = phi double [ %45985, %45983 ], [ %45988, %45986 ]
  br label %45993

45991:                                            ; preds = %45977
  %45992 = load double, ptr %1340, align 8, !tbaa !11
  br label %45993

45993:                                            ; preds = %45991, %45989
  %45994 = phi double [ %45990, %45989 ], [ %45992, %45991 ]
  br label %45995

45995:                                            ; preds = %45993, %45965
  %45996 = phi double [ %45966, %45965 ], [ %45994, %45993 ]
  %45997 = fptoui double %45996 to i8
  %45998 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %45997, ptr %45998, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %1342) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1341) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1340) #3
  br label %46083

45999:                                            ; preds = %45761, %45758
  %46000 = load i32, ptr %8, align 4, !tbaa !9
  %46001 = icmp ugt i32 6, %46000
  br i1 %46001, label %46030, label %46002

46002:                                            ; preds = %45999
  %46003 = load i32, ptr %8, align 4, !tbaa !9
  %46004 = icmp ugt i32 15, %46003
  br i1 %46004, label %46005, label %46016

46005:                                            ; preds = %46002
  %46006 = load i32, ptr %9, align 4, !tbaa !9
  %46007 = icmp ugt i32 15, %46006
  br i1 %46007, label %46008, label %46013

46008:                                            ; preds = %46005
  %46009 = load i32, ptr %9, align 4, !tbaa !9
  %46010 = load i32, ptr %8, align 4, !tbaa !9
  %46011 = icmp ugt i32 %46009, %46010
  %46012 = zext i1 %46011 to i32
  br label %46014

46013:                                            ; preds = %46005
  br label %46014

46014:                                            ; preds = %46013, %46008
  %46015 = phi i32 [ %46012, %46008 ], [ 0, %46013 ]
  br label %46027

46016:                                            ; preds = %46002
  %46017 = load i32, ptr %9, align 4, !tbaa !9
  %46018 = icmp ugt i32 15, %46017
  br i1 %46018, label %46019, label %46020

46019:                                            ; preds = %46016
  br label %46025

46020:                                            ; preds = %46016
  %46021 = load i32, ptr %9, align 4, !tbaa !9
  %46022 = load i32, ptr %8, align 4, !tbaa !9
  %46023 = icmp ugt i32 %46021, %46022
  %46024 = zext i1 %46023 to i32
  br label %46025

46025:                                            ; preds = %46020, %46019
  %46026 = phi i32 [ 0, %46019 ], [ %46024, %46020 ]
  br label %46027

46027:                                            ; preds = %46025, %46014
  %46028 = phi i32 [ %46015, %46014 ], [ %46026, %46025 ]
  %46029 = icmp ne i32 %46028, 0
  br label %46030

46030:                                            ; preds = %46027, %45999
  %46031 = phi i1 [ true, %45999 ], [ %46029, %46027 ]
  %46032 = zext i1 %46031 to i32
  %46033 = icmp eq i32 0, %46032
  br i1 %46033, label %46034, label %46078

46034:                                            ; preds = %46030
  %46035 = load i16, ptr %1333, align 2, !tbaa !15
  %46036 = sext i16 %46035 to i32
  %46037 = sitofp i32 %46036 to double
  %46038 = fcmp olt double 0.000000e+00, %46037
  br i1 %46038, label %46039, label %46062

46039:                                            ; preds = %46034
  %46040 = load i16, ptr %1333, align 2, !tbaa !15
  %46041 = sext i16 %46040 to i32
  %46042 = sitofp i32 %46041 to double
  %46043 = fcmp ole double %46042, 2.550000e+02
  br i1 %46043, label %46044, label %46048

46044:                                            ; preds = %46039
  %46045 = load i16, ptr %1333, align 2, !tbaa !15
  %46046 = sext i16 %46045 to i32
  %46047 = sitofp i32 %46046 to double
  br label %46060

46048:                                            ; preds = %46039
  %46049 = load i16, ptr %1333, align 2, !tbaa !15
  %46050 = sext i16 %46049 to i32
  %46051 = sitofp i32 %46050 to double
  %46052 = fcmp olt double %46051, 2.550000e+02
  br i1 %46052, label %46053, label %46057

46053:                                            ; preds = %46048
  %46054 = load i16, ptr %1333, align 2, !tbaa !15
  %46055 = sext i16 %46054 to i32
  %46056 = sitofp i32 %46055 to double
  br label %46058

46057:                                            ; preds = %46048
  br label %46058

46058:                                            ; preds = %46057, %46053
  %46059 = phi double [ %46056, %46053 ], [ 2.550000e+02, %46057 ]
  br label %46060

46060:                                            ; preds = %46058, %46044
  %46061 = phi double [ %46047, %46044 ], [ %46059, %46058 ]
  br label %46074

46062:                                            ; preds = %46034
  %46063 = load i16, ptr %1333, align 2, !tbaa !15
  %46064 = sext i16 %46063 to i32
  %46065 = sitofp i32 %46064 to double
  %46066 = fcmp olt double 0.000000e+00, %46065
  br i1 %46066, label %46067, label %46071

46067:                                            ; preds = %46062
  %46068 = load i16, ptr %1333, align 2, !tbaa !15
  %46069 = sext i16 %46068 to i32
  %46070 = sitofp i32 %46069 to double
  br label %46072

46071:                                            ; preds = %46062
  br label %46072

46072:                                            ; preds = %46071, %46067
  %46073 = phi double [ %46070, %46067 ], [ 0.000000e+00, %46071 ]
  br label %46074

46074:                                            ; preds = %46072, %46060
  %46075 = phi double [ %46061, %46060 ], [ %46073, %46072 ]
  %46076 = fptoui double %46075 to i8
  %46077 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %46076, ptr %46077, align 1, !tbaa !17
  br label %46082

46078:                                            ; preds = %46030
  %46079 = load i16, ptr %1333, align 2, !tbaa !15
  %46080 = trunc i16 %46079 to i8
  %46081 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %46080, ptr %46081, align 1, !tbaa !17
  br label %46082

46082:                                            ; preds = %46078, %46074
  br label %46083

46083:                                            ; preds = %46082, %45995
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1335) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1334) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %1333) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1332) #3
  br label %46084

46084:                                            ; preds = %46083
  br label %46085

46085:                                            ; preds = %46084
  br label %48653

46086:                                            ; preds = %45030
  br label %46087

46087:                                            ; preds = %46086
  call void @llvm.lifetime.start.p0(i64 8, ptr %1343) #3
  store double 5.000000e-01, ptr %1343, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %1344) #3
  %46088 = load ptr, ptr %10, align 8, !tbaa !5
  %46089 = load i8, ptr %46088, align 1, !tbaa !17
  store i8 %46089, ptr %1344, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %1345) #3
  store double 0.000000e+00, ptr %1345, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1346) #3
  store double 0.000000e+00, ptr %1346, align 8, !tbaa !11
  %46090 = load ptr, ptr %11, align 8, !tbaa !5
  %46091 = icmp ne ptr null, %46090
  br i1 %46091, label %46092, label %46118

46092:                                            ; preds = %46087
  %46093 = load ptr, ptr %12, align 8, !tbaa !5
  %46094 = icmp ne ptr null, %46093
  br i1 %46094, label %46095, label %46110

46095:                                            ; preds = %46092
  %46096 = load ptr, ptr %11, align 8, !tbaa !5
  %46097 = load i8, ptr %46096, align 1, !tbaa !17
  %46098 = sext i8 %46097 to i32
  %46099 = load i8, ptr %1344, align 1, !tbaa !17
  %46100 = sext i8 %46099 to i32
  %46101 = icmp sle i32 %46098, %46100
  br i1 %46101, label %46102, label %46110

46102:                                            ; preds = %46095
  %46103 = load i8, ptr %1344, align 1, !tbaa !17
  %46104 = sext i8 %46103 to i32
  %46105 = load ptr, ptr %12, align 8, !tbaa !5
  %46106 = load i8, ptr %46105, align 1, !tbaa !17
  %46107 = sext i8 %46106 to i32
  %46108 = icmp sle i32 %46104, %46107
  br i1 %46108, label %46109, label %46110

46109:                                            ; preds = %46102
  br label %46111

46110:                                            ; preds = %46102, %46095, %46092
  call void @__assert_fail(ptr noundef @.str.45, ptr noundef @.str.24, i32 noundef 503, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

46111:                                            ; preds = %46109
  %46112 = load ptr, ptr %11, align 8, !tbaa !5
  %46113 = load i8, ptr %46112, align 1, !tbaa !17
  %46114 = sitofp i8 %46113 to double
  store double %46114, ptr %1345, align 8, !tbaa !11
  %46115 = load ptr, ptr %12, align 8, !tbaa !5
  %46116 = load i8, ptr %46115, align 1, !tbaa !17
  %46117 = sitofp i8 %46116 to double
  store double %46117, ptr %1346, align 8, !tbaa !11
  br label %46118

46118:                                            ; preds = %46111, %46087
  %46119 = load i32, ptr %8, align 4, !tbaa !9
  %46120 = icmp ule i32 6, %46119
  br i1 %46120, label %46121, label %46359

46121:                                            ; preds = %46118
  %46122 = load double, ptr %1345, align 8, !tbaa !11
  %46123 = load double, ptr %1346, align 8, !tbaa !11
  %46124 = fcmp olt double %46122, %46123
  br i1 %46124, label %46125, label %46359

46125:                                            ; preds = %46121
  %46126 = load i32, ptr %8, align 4, !tbaa !9
  %46127 = icmp ule i32 15, %46126
  br i1 %46127, label %46128, label %46182

46128:                                            ; preds = %46125
  call void @llvm.lifetime.start.p0(i64 8, ptr %1347) #3
  %46129 = load double, ptr %1345, align 8, !tbaa !11
  %46130 = fcmp olt double 0.000000e+00, %46129
  br i1 %46130, label %46131, label %46133

46131:                                            ; preds = %46128
  %46132 = load double, ptr %1345, align 8, !tbaa !11
  br label %46134

46133:                                            ; preds = %46128
  br label %46134

46134:                                            ; preds = %46133, %46131
  %46135 = phi double [ %46132, %46131 ], [ 0.000000e+00, %46133 ]
  store double %46135, ptr %1347, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1348) #3
  %46136 = load double, ptr %1346, align 8, !tbaa !11
  %46137 = fcmp olt double 0.000000e+00, %46136
  br i1 %46137, label %46138, label %46140

46138:                                            ; preds = %46134
  %46139 = load double, ptr %1346, align 8, !tbaa !11
  br label %46141

46140:                                            ; preds = %46134
  br label %46141

46141:                                            ; preds = %46140, %46138
  %46142 = phi double [ %46139, %46138 ], [ 0.000000e+00, %46140 ]
  store double %46142, ptr %1348, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1349) #3
  %46143 = load double, ptr %1347, align 8, !tbaa !11
  %46144 = load double, ptr %1348, align 8, !tbaa !11
  %46145 = fcmp olt double %46143, %46144
  br i1 %46145, label %46146, label %46154

46146:                                            ; preds = %46141
  %46147 = load double, ptr %1346, align 8, !tbaa !11
  %46148 = load double, ptr %1345, align 8, !tbaa !11
  %46149 = fsub double %46147, %46148
  %46150 = load double, ptr %1348, align 8, !tbaa !11
  %46151 = load double, ptr %1347, align 8, !tbaa !11
  %46152 = fsub double %46150, %46151
  %46153 = fdiv double %46149, %46152
  br label %46155

46154:                                            ; preds = %46141
  br label %46155

46155:                                            ; preds = %46154, %46146
  %46156 = phi double [ %46153, %46146 ], [ 1.000000e+00, %46154 ]
  store double %46156, ptr %1349, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1350) #3
  %46157 = load double, ptr %1349, align 8, !tbaa !11
  %46158 = load i8, ptr %1344, align 1, !tbaa !17
  %46159 = sext i8 %46158 to i32
  %46160 = icmp slt i32 0, %46159
  br i1 %46160, label %46161, label %46164

46161:                                            ; preds = %46155
  %46162 = load i8, ptr %1344, align 1, !tbaa !17
  %46163 = sext i8 %46162 to i32
  br label %46165

46164:                                            ; preds = %46155
  br label %46165

46165:                                            ; preds = %46164, %46161
  %46166 = phi i32 [ %46163, %46161 ], [ 0, %46164 ]
  %46167 = sitofp i32 %46166 to double
  %46168 = fmul double %46157, %46167
  store double %46168, ptr %1350, align 8, !tbaa !11
  %46169 = load double, ptr %1350, align 8, !tbaa !11
  %46170 = fcmp ole double 0.000000e+00, %46169
  br i1 %46170, label %46171, label %46174

46171:                                            ; preds = %46165
  %46172 = load double, ptr %1350, align 8, !tbaa !11
  %46173 = fadd double %46172, 5.000000e-01
  br label %46177

46174:                                            ; preds = %46165
  %46175 = load double, ptr %1350, align 8, !tbaa !11
  %46176 = fsub double %46175, 5.000000e-01
  br label %46177

46177:                                            ; preds = %46174, %46171
  %46178 = phi double [ %46173, %46171 ], [ %46176, %46174 ]
  %46179 = fptosi double %46178 to i8
  store i8 %46179, ptr %1344, align 1, !tbaa !17
  %46180 = load double, ptr %1347, align 8, !tbaa !11
  store double %46180, ptr %1345, align 8, !tbaa !11
  %46181 = load double, ptr %1348, align 8, !tbaa !11
  store double %46181, ptr %1346, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1350) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1349) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1348) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1347) #3
  br label %46238

46182:                                            ; preds = %46125
  %46183 = load i32, ptr %8, align 4, !tbaa !9
  %46184 = icmp ugt i32 6, %46183
  br i1 %46184, label %46213, label %46185

46185:                                            ; preds = %46182
  %46186 = load i32, ptr %8, align 4, !tbaa !9
  %46187 = icmp ugt i32 15, %46186
  br i1 %46187, label %46188, label %46199

46188:                                            ; preds = %46185
  %46189 = load i32, ptr %9, align 4, !tbaa !9
  %46190 = icmp ugt i32 15, %46189
  br i1 %46190, label %46191, label %46196

46191:                                            ; preds = %46188
  %46192 = load i32, ptr %9, align 4, !tbaa !9
  %46193 = load i32, ptr %8, align 4, !tbaa !9
  %46194 = icmp ugt i32 %46192, %46193
  %46195 = zext i1 %46194 to i32
  br label %46197

46196:                                            ; preds = %46188
  br label %46197

46197:                                            ; preds = %46196, %46191
  %46198 = phi i32 [ %46195, %46191 ], [ 0, %46196 ]
  br label %46210

46199:                                            ; preds = %46185
  %46200 = load i32, ptr %9, align 4, !tbaa !9
  %46201 = icmp ugt i32 15, %46200
  br i1 %46201, label %46202, label %46203

46202:                                            ; preds = %46199
  br label %46208

46203:                                            ; preds = %46199
  %46204 = load i32, ptr %9, align 4, !tbaa !9
  %46205 = load i32, ptr %8, align 4, !tbaa !9
  %46206 = icmp ugt i32 %46204, %46205
  %46207 = zext i1 %46206 to i32
  br label %46208

46208:                                            ; preds = %46203, %46202
  %46209 = phi i32 [ 0, %46202 ], [ %46207, %46203 ]
  br label %46210

46210:                                            ; preds = %46208, %46197
  %46211 = phi i32 [ %46198, %46197 ], [ %46209, %46208 ]
  %46212 = icmp ne i32 %46211, 0
  br label %46213

46213:                                            ; preds = %46210, %46182
  %46214 = phi i1 [ true, %46182 ], [ %46212, %46210 ]
  %46215 = zext i1 %46214 to i32
  %46216 = icmp eq i32 0, %46215
  br i1 %46216, label %46217, label %46237

46217:                                            ; preds = %46213
  %46218 = load double, ptr %1345, align 8, !tbaa !11
  %46219 = fcmp ogt double 0.000000e+00, %46218
  br i1 %46219, label %46220, label %46237

46220:                                            ; preds = %46217
  %46221 = load double, ptr %1346, align 8, !tbaa !11
  %46222 = fcmp olt double 0.000000e+00, %46221
  br i1 %46222, label %46223, label %46237

46223:                                            ; preds = %46220
  %46224 = load double, ptr %1345, align 8, !tbaa !11
  %46225 = fneg double %46224
  %46226 = load double, ptr %1346, align 8, !tbaa !11
  %46227 = fcmp olt double %46225, %46226
  br i1 %46227, label %46228, label %46230

46228:                                            ; preds = %46223
  %46229 = load double, ptr %1346, align 8, !tbaa !11
  br label %46233

46230:                                            ; preds = %46223
  %46231 = load double, ptr %1345, align 8, !tbaa !11
  %46232 = fneg double %46231
  br label %46233

46233:                                            ; preds = %46230, %46228
  %46234 = phi double [ %46229, %46228 ], [ %46232, %46230 ]
  store double %46234, ptr %1346, align 8, !tbaa !11
  %46235 = load double, ptr %1346, align 8, !tbaa !11
  %46236 = fneg double %46235
  store double %46236, ptr %1345, align 8, !tbaa !11
  br label %46237

46237:                                            ; preds = %46233, %46220, %46217, %46213
  br label %46238

46238:                                            ; preds = %46237, %46177
  call void @llvm.lifetime.start.p0(i64 8, ptr %1351) #3
  %46239 = load double, ptr %1345, align 8, !tbaa !11
  %46240 = fcmp ole double 0.000000e+00, %46239
  %46241 = zext i1 %46240 to i64
  %46242 = select i1 %46240, double 0.000000e+00, double 0.000000e+00
  store double %46242, ptr %1351, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1352) #3
  %46243 = load double, ptr %1346, align 8, !tbaa !11
  %46244 = fcmp ole double 0.000000e+00, %46243
  %46245 = zext i1 %46244 to i64
  %46246 = select i1 %46244, double 2.550000e+02, double 0.000000e+00
  store double %46246, ptr %1352, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1353) #3
  %46247 = load i8, ptr %1344, align 1, !tbaa !17
  %46248 = sitofp i8 %46247 to double
  %46249 = load double, ptr %1345, align 8, !tbaa !11
  %46250 = fsub double %46248, %46249
  %46251 = load double, ptr %1352, align 8, !tbaa !11
  %46252 = load double, ptr %1351, align 8, !tbaa !11
  %46253 = fsub double %46251, %46252
  %46254 = fmul double %46250, %46253
  %46255 = load double, ptr %1346, align 8, !tbaa !11
  %46256 = load double, ptr %1345, align 8, !tbaa !11
  %46257 = fsub double %46255, %46256
  %46258 = fdiv double %46254, %46257
  %46259 = load double, ptr %1351, align 8, !tbaa !11
  %46260 = fadd double %46258, %46259
  store double %46260, ptr %1353, align 8, !tbaa !11
  %46261 = load double, ptr %1351, align 8, !tbaa !11
  %46262 = load double, ptr %1353, align 8, !tbaa !11
  %46263 = fcmp ole double 0.000000e+00, %46262
  br i1 %46263, label %46264, label %46267

46264:                                            ; preds = %46238
  %46265 = load double, ptr %1353, align 8, !tbaa !11
  %46266 = fadd double %46265, 5.000000e-01
  br label %46270

46267:                                            ; preds = %46238
  %46268 = load double, ptr %1353, align 8, !tbaa !11
  %46269 = fsub double %46268, 5.000000e-01
  br label %46270

46270:                                            ; preds = %46267, %46264
  %46271 = phi double [ %46266, %46264 ], [ %46269, %46267 ]
  %46272 = fcmp olt double %46261, %46271
  br i1 %46272, label %46273, label %46327

46273:                                            ; preds = %46270
  %46274 = load double, ptr %1353, align 8, !tbaa !11
  %46275 = fcmp ole double 0.000000e+00, %46274
  br i1 %46275, label %46276, label %46279

46276:                                            ; preds = %46273
  %46277 = load double, ptr %1353, align 8, !tbaa !11
  %46278 = fadd double %46277, 5.000000e-01
  br label %46282

46279:                                            ; preds = %46273
  %46280 = load double, ptr %1353, align 8, !tbaa !11
  %46281 = fsub double %46280, 5.000000e-01
  br label %46282

46282:                                            ; preds = %46279, %46276
  %46283 = phi double [ %46278, %46276 ], [ %46281, %46279 ]
  %46284 = load double, ptr %1352, align 8, !tbaa !11
  %46285 = fcmp ole double %46283, %46284
  br i1 %46285, label %46286, label %46297

46286:                                            ; preds = %46282
  %46287 = load double, ptr %1353, align 8, !tbaa !11
  %46288 = fcmp ole double 0.000000e+00, %46287
  br i1 %46288, label %46289, label %46292

46289:                                            ; preds = %46286
  %46290 = load double, ptr %1353, align 8, !tbaa !11
  %46291 = fadd double %46290, 5.000000e-01
  br label %46295

46292:                                            ; preds = %46286
  %46293 = load double, ptr %1353, align 8, !tbaa !11
  %46294 = fsub double %46293, 5.000000e-01
  br label %46295

46295:                                            ; preds = %46292, %46289
  %46296 = phi double [ %46291, %46289 ], [ %46294, %46292 ]
  br label %46325

46297:                                            ; preds = %46282
  %46298 = load double, ptr %1353, align 8, !tbaa !11
  %46299 = fcmp ole double 0.000000e+00, %46298
  br i1 %46299, label %46300, label %46303

46300:                                            ; preds = %46297
  %46301 = load double, ptr %1353, align 8, !tbaa !11
  %46302 = fadd double %46301, 5.000000e-01
  br label %46306

46303:                                            ; preds = %46297
  %46304 = load double, ptr %1353, align 8, !tbaa !11
  %46305 = fsub double %46304, 5.000000e-01
  br label %46306

46306:                                            ; preds = %46303, %46300
  %46307 = phi double [ %46302, %46300 ], [ %46305, %46303 ]
  %46308 = load double, ptr %1352, align 8, !tbaa !11
  %46309 = fcmp olt double %46307, %46308
  br i1 %46309, label %46310, label %46321

46310:                                            ; preds = %46306
  %46311 = load double, ptr %1353, align 8, !tbaa !11
  %46312 = fcmp ole double 0.000000e+00, %46311
  br i1 %46312, label %46313, label %46316

46313:                                            ; preds = %46310
  %46314 = load double, ptr %1353, align 8, !tbaa !11
  %46315 = fadd double %46314, 5.000000e-01
  br label %46319

46316:                                            ; preds = %46310
  %46317 = load double, ptr %1353, align 8, !tbaa !11
  %46318 = fsub double %46317, 5.000000e-01
  br label %46319

46319:                                            ; preds = %46316, %46313
  %46320 = phi double [ %46315, %46313 ], [ %46318, %46316 ]
  br label %46323

46321:                                            ; preds = %46306
  %46322 = load double, ptr %1352, align 8, !tbaa !11
  br label %46323

46323:                                            ; preds = %46321, %46319
  %46324 = phi double [ %46320, %46319 ], [ %46322, %46321 ]
  br label %46325

46325:                                            ; preds = %46323, %46295
  %46326 = phi double [ %46296, %46295 ], [ %46324, %46323 ]
  br label %46355

46327:                                            ; preds = %46270
  %46328 = load double, ptr %1351, align 8, !tbaa !11
  %46329 = load double, ptr %1353, align 8, !tbaa !11
  %46330 = fcmp ole double 0.000000e+00, %46329
  br i1 %46330, label %46331, label %46334

46331:                                            ; preds = %46327
  %46332 = load double, ptr %1353, align 8, !tbaa !11
  %46333 = fadd double %46332, 5.000000e-01
  br label %46337

46334:                                            ; preds = %46327
  %46335 = load double, ptr %1353, align 8, !tbaa !11
  %46336 = fsub double %46335, 5.000000e-01
  br label %46337

46337:                                            ; preds = %46334, %46331
  %46338 = phi double [ %46333, %46331 ], [ %46336, %46334 ]
  %46339 = fcmp olt double %46328, %46338
  br i1 %46339, label %46340, label %46351

46340:                                            ; preds = %46337
  %46341 = load double, ptr %1353, align 8, !tbaa !11
  %46342 = fcmp ole double 0.000000e+00, %46341
  br i1 %46342, label %46343, label %46346

46343:                                            ; preds = %46340
  %46344 = load double, ptr %1353, align 8, !tbaa !11
  %46345 = fadd double %46344, 5.000000e-01
  br label %46349

46346:                                            ; preds = %46340
  %46347 = load double, ptr %1353, align 8, !tbaa !11
  %46348 = fsub double %46347, 5.000000e-01
  br label %46349

46349:                                            ; preds = %46346, %46343
  %46350 = phi double [ %46345, %46343 ], [ %46348, %46346 ]
  br label %46353

46351:                                            ; preds = %46337
  %46352 = load double, ptr %1351, align 8, !tbaa !11
  br label %46353

46353:                                            ; preds = %46351, %46349
  %46354 = phi double [ %46350, %46349 ], [ %46352, %46351 ]
  br label %46355

46355:                                            ; preds = %46353, %46325
  %46356 = phi double [ %46326, %46325 ], [ %46354, %46353 ]
  %46357 = fptoui double %46356 to i8
  %46358 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %46357, ptr %46358, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %1353) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1352) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1351) #3
  br label %46442

46359:                                            ; preds = %46121, %46118
  %46360 = load i32, ptr %8, align 4, !tbaa !9
  %46361 = icmp ugt i32 6, %46360
  br i1 %46361, label %46390, label %46362

46362:                                            ; preds = %46359
  %46363 = load i32, ptr %8, align 4, !tbaa !9
  %46364 = icmp ugt i32 15, %46363
  br i1 %46364, label %46365, label %46376

46365:                                            ; preds = %46362
  %46366 = load i32, ptr %9, align 4, !tbaa !9
  %46367 = icmp ugt i32 15, %46366
  br i1 %46367, label %46368, label %46373

46368:                                            ; preds = %46365
  %46369 = load i32, ptr %9, align 4, !tbaa !9
  %46370 = load i32, ptr %8, align 4, !tbaa !9
  %46371 = icmp ugt i32 %46369, %46370
  %46372 = zext i1 %46371 to i32
  br label %46374

46373:                                            ; preds = %46365
  br label %46374

46374:                                            ; preds = %46373, %46368
  %46375 = phi i32 [ %46372, %46368 ], [ 0, %46373 ]
  br label %46387

46376:                                            ; preds = %46362
  %46377 = load i32, ptr %9, align 4, !tbaa !9
  %46378 = icmp ugt i32 15, %46377
  br i1 %46378, label %46379, label %46380

46379:                                            ; preds = %46376
  br label %46385

46380:                                            ; preds = %46376
  %46381 = load i32, ptr %9, align 4, !tbaa !9
  %46382 = load i32, ptr %8, align 4, !tbaa !9
  %46383 = icmp ugt i32 %46381, %46382
  %46384 = zext i1 %46383 to i32
  br label %46385

46385:                                            ; preds = %46380, %46379
  %46386 = phi i32 [ 0, %46379 ], [ %46384, %46380 ]
  br label %46387

46387:                                            ; preds = %46385, %46374
  %46388 = phi i32 [ %46375, %46374 ], [ %46386, %46385 ]
  %46389 = icmp ne i32 %46388, 0
  br label %46390

46390:                                            ; preds = %46387, %46359
  %46391 = phi i1 [ true, %46359 ], [ %46389, %46387 ]
  %46392 = zext i1 %46391 to i32
  %46393 = icmp eq i32 0, %46392
  br i1 %46393, label %46394, label %46438

46394:                                            ; preds = %46390
  %46395 = load i8, ptr %1344, align 1, !tbaa !17
  %46396 = sext i8 %46395 to i32
  %46397 = sitofp i32 %46396 to double
  %46398 = fcmp olt double 0.000000e+00, %46397
  br i1 %46398, label %46399, label %46422

46399:                                            ; preds = %46394
  %46400 = load i8, ptr %1344, align 1, !tbaa !17
  %46401 = sext i8 %46400 to i32
  %46402 = sitofp i32 %46401 to double
  %46403 = fcmp ole double %46402, 2.550000e+02
  br i1 %46403, label %46404, label %46408

46404:                                            ; preds = %46399
  %46405 = load i8, ptr %1344, align 1, !tbaa !17
  %46406 = sext i8 %46405 to i32
  %46407 = sitofp i32 %46406 to double
  br label %46420

46408:                                            ; preds = %46399
  %46409 = load i8, ptr %1344, align 1, !tbaa !17
  %46410 = sext i8 %46409 to i32
  %46411 = sitofp i32 %46410 to double
  %46412 = fcmp olt double %46411, 2.550000e+02
  br i1 %46412, label %46413, label %46417

46413:                                            ; preds = %46408
  %46414 = load i8, ptr %1344, align 1, !tbaa !17
  %46415 = sext i8 %46414 to i32
  %46416 = sitofp i32 %46415 to double
  br label %46418

46417:                                            ; preds = %46408
  br label %46418

46418:                                            ; preds = %46417, %46413
  %46419 = phi double [ %46416, %46413 ], [ 2.550000e+02, %46417 ]
  br label %46420

46420:                                            ; preds = %46418, %46404
  %46421 = phi double [ %46407, %46404 ], [ %46419, %46418 ]
  br label %46434

46422:                                            ; preds = %46394
  %46423 = load i8, ptr %1344, align 1, !tbaa !17
  %46424 = sext i8 %46423 to i32
  %46425 = sitofp i32 %46424 to double
  %46426 = fcmp olt double 0.000000e+00, %46425
  br i1 %46426, label %46427, label %46431

46427:                                            ; preds = %46422
  %46428 = load i8, ptr %1344, align 1, !tbaa !17
  %46429 = sext i8 %46428 to i32
  %46430 = sitofp i32 %46429 to double
  br label %46432

46431:                                            ; preds = %46422
  br label %46432

46432:                                            ; preds = %46431, %46427
  %46433 = phi double [ %46430, %46427 ], [ 0.000000e+00, %46431 ]
  br label %46434

46434:                                            ; preds = %46432, %46420
  %46435 = phi double [ %46421, %46420 ], [ %46433, %46432 ]
  %46436 = fptoui double %46435 to i8
  %46437 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %46436, ptr %46437, align 1, !tbaa !17
  br label %46441

46438:                                            ; preds = %46390
  %46439 = load i8, ptr %1344, align 1, !tbaa !17
  %46440 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %46439, ptr %46440, align 1, !tbaa !17
  br label %46441

46441:                                            ; preds = %46438, %46434
  br label %46442

46442:                                            ; preds = %46441, %46355
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1346) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1345) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %1344) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1343) #3
  br label %46443

46443:                                            ; preds = %46442
  br label %46444

46444:                                            ; preds = %46443
  br label %48653

46445:                                            ; preds = %45030
  br label %46446

46446:                                            ; preds = %46445
  call void @llvm.lifetime.start.p0(i64 8, ptr %1354) #3
  store double 5.000000e-01, ptr %1354, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1355) #3
  %46447 = load ptr, ptr %10, align 8, !tbaa !5
  %46448 = load i64, ptr %46447, align 8, !tbaa !13
  store i64 %46448, ptr %1355, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %1356) #3
  store double 0.000000e+00, ptr %1356, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1357) #3
  store double 0.000000e+00, ptr %1357, align 8, !tbaa !11
  %46449 = load ptr, ptr %11, align 8, !tbaa !5
  %46450 = icmp ne ptr null, %46449
  br i1 %46450, label %46451, label %46473

46451:                                            ; preds = %46446
  %46452 = load ptr, ptr %12, align 8, !tbaa !5
  %46453 = icmp ne ptr null, %46452
  br i1 %46453, label %46454, label %46465

46454:                                            ; preds = %46451
  %46455 = load ptr, ptr %11, align 8, !tbaa !5
  %46456 = load i64, ptr %46455, align 8, !tbaa !13
  %46457 = load i64, ptr %1355, align 8, !tbaa !13
  %46458 = icmp ule i64 %46456, %46457
  br i1 %46458, label %46459, label %46465

46459:                                            ; preds = %46454
  %46460 = load i64, ptr %1355, align 8, !tbaa !13
  %46461 = load ptr, ptr %12, align 8, !tbaa !5
  %46462 = load i64, ptr %46461, align 8, !tbaa !13
  %46463 = icmp ule i64 %46460, %46462
  br i1 %46463, label %46464, label %46465

46464:                                            ; preds = %46459
  br label %46466

46465:                                            ; preds = %46459, %46454, %46451
  call void @__assert_fail(ptr noundef @.str.46, ptr noundef @.str.24, i32 noundef 503, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

46466:                                            ; preds = %46464
  %46467 = load ptr, ptr %11, align 8, !tbaa !5
  %46468 = load i64, ptr %46467, align 8, !tbaa !13
  %46469 = uitofp i64 %46468 to double
  store double %46469, ptr %1356, align 8, !tbaa !11
  %46470 = load ptr, ptr %12, align 8, !tbaa !5
  %46471 = load i64, ptr %46470, align 8, !tbaa !13
  %46472 = uitofp i64 %46471 to double
  store double %46472, ptr %1357, align 8, !tbaa !11
  br label %46473

46473:                                            ; preds = %46466, %46446
  %46474 = load i32, ptr %8, align 4, !tbaa !9
  %46475 = icmp ule i32 6, %46474
  br i1 %46475, label %46476, label %46712

46476:                                            ; preds = %46473
  %46477 = load double, ptr %1356, align 8, !tbaa !11
  %46478 = load double, ptr %1357, align 8, !tbaa !11
  %46479 = fcmp olt double %46477, %46478
  br i1 %46479, label %46480, label %46712

46480:                                            ; preds = %46476
  %46481 = load i32, ptr %8, align 4, !tbaa !9
  %46482 = icmp ule i32 15, %46481
  br i1 %46482, label %46483, label %46535

46483:                                            ; preds = %46480
  call void @llvm.lifetime.start.p0(i64 8, ptr %1358) #3
  %46484 = load double, ptr %1356, align 8, !tbaa !11
  %46485 = fcmp olt double 0.000000e+00, %46484
  br i1 %46485, label %46486, label %46488

46486:                                            ; preds = %46483
  %46487 = load double, ptr %1356, align 8, !tbaa !11
  br label %46489

46488:                                            ; preds = %46483
  br label %46489

46489:                                            ; preds = %46488, %46486
  %46490 = phi double [ %46487, %46486 ], [ 0.000000e+00, %46488 ]
  store double %46490, ptr %1358, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1359) #3
  %46491 = load double, ptr %1357, align 8, !tbaa !11
  %46492 = fcmp olt double 0.000000e+00, %46491
  br i1 %46492, label %46493, label %46495

46493:                                            ; preds = %46489
  %46494 = load double, ptr %1357, align 8, !tbaa !11
  br label %46496

46495:                                            ; preds = %46489
  br label %46496

46496:                                            ; preds = %46495, %46493
  %46497 = phi double [ %46494, %46493 ], [ 0.000000e+00, %46495 ]
  store double %46497, ptr %1359, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1360) #3
  %46498 = load double, ptr %1358, align 8, !tbaa !11
  %46499 = load double, ptr %1359, align 8, !tbaa !11
  %46500 = fcmp olt double %46498, %46499
  br i1 %46500, label %46501, label %46509

46501:                                            ; preds = %46496
  %46502 = load double, ptr %1357, align 8, !tbaa !11
  %46503 = load double, ptr %1356, align 8, !tbaa !11
  %46504 = fsub double %46502, %46503
  %46505 = load double, ptr %1359, align 8, !tbaa !11
  %46506 = load double, ptr %1358, align 8, !tbaa !11
  %46507 = fsub double %46505, %46506
  %46508 = fdiv double %46504, %46507
  br label %46510

46509:                                            ; preds = %46496
  br label %46510

46510:                                            ; preds = %46509, %46501
  %46511 = phi double [ %46508, %46501 ], [ 1.000000e+00, %46509 ]
  store double %46511, ptr %1360, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1361) #3
  %46512 = load double, ptr %1360, align 8, !tbaa !11
  %46513 = load i64, ptr %1355, align 8, !tbaa !13
  %46514 = icmp ult i64 0, %46513
  br i1 %46514, label %46515, label %46517

46515:                                            ; preds = %46510
  %46516 = load i64, ptr %1355, align 8, !tbaa !13
  br label %46518

46517:                                            ; preds = %46510
  br label %46518

46518:                                            ; preds = %46517, %46515
  %46519 = phi i64 [ %46516, %46515 ], [ 0, %46517 ]
  %46520 = uitofp i64 %46519 to double
  %46521 = fmul double %46512, %46520
  store double %46521, ptr %1361, align 8, !tbaa !11
  %46522 = load double, ptr %1361, align 8, !tbaa !11
  %46523 = fcmp ole double 0.000000e+00, %46522
  br i1 %46523, label %46524, label %46527

46524:                                            ; preds = %46518
  %46525 = load double, ptr %1361, align 8, !tbaa !11
  %46526 = fadd double %46525, 5.000000e-01
  br label %46530

46527:                                            ; preds = %46518
  %46528 = load double, ptr %1361, align 8, !tbaa !11
  %46529 = fsub double %46528, 5.000000e-01
  br label %46530

46530:                                            ; preds = %46527, %46524
  %46531 = phi double [ %46526, %46524 ], [ %46529, %46527 ]
  %46532 = fptoui double %46531 to i64
  store i64 %46532, ptr %1355, align 8, !tbaa !13
  %46533 = load double, ptr %1358, align 8, !tbaa !11
  store double %46533, ptr %1356, align 8, !tbaa !11
  %46534 = load double, ptr %1359, align 8, !tbaa !11
  store double %46534, ptr %1357, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1361) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1360) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1359) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1358) #3
  br label %46591

46535:                                            ; preds = %46480
  %46536 = load i32, ptr %8, align 4, !tbaa !9
  %46537 = icmp ugt i32 6, %46536
  br i1 %46537, label %46566, label %46538

46538:                                            ; preds = %46535
  %46539 = load i32, ptr %8, align 4, !tbaa !9
  %46540 = icmp ugt i32 15, %46539
  br i1 %46540, label %46541, label %46552

46541:                                            ; preds = %46538
  %46542 = load i32, ptr %9, align 4, !tbaa !9
  %46543 = icmp ugt i32 15, %46542
  br i1 %46543, label %46544, label %46549

46544:                                            ; preds = %46541
  %46545 = load i32, ptr %9, align 4, !tbaa !9
  %46546 = load i32, ptr %8, align 4, !tbaa !9
  %46547 = icmp ugt i32 %46545, %46546
  %46548 = zext i1 %46547 to i32
  br label %46550

46549:                                            ; preds = %46541
  br label %46550

46550:                                            ; preds = %46549, %46544
  %46551 = phi i32 [ %46548, %46544 ], [ 0, %46549 ]
  br label %46563

46552:                                            ; preds = %46538
  %46553 = load i32, ptr %9, align 4, !tbaa !9
  %46554 = icmp ugt i32 15, %46553
  br i1 %46554, label %46555, label %46556

46555:                                            ; preds = %46552
  br label %46561

46556:                                            ; preds = %46552
  %46557 = load i32, ptr %9, align 4, !tbaa !9
  %46558 = load i32, ptr %8, align 4, !tbaa !9
  %46559 = icmp ugt i32 %46557, %46558
  %46560 = zext i1 %46559 to i32
  br label %46561

46561:                                            ; preds = %46556, %46555
  %46562 = phi i32 [ 0, %46555 ], [ %46560, %46556 ]
  br label %46563

46563:                                            ; preds = %46561, %46550
  %46564 = phi i32 [ %46551, %46550 ], [ %46562, %46561 ]
  %46565 = icmp ne i32 %46564, 0
  br label %46566

46566:                                            ; preds = %46563, %46535
  %46567 = phi i1 [ true, %46535 ], [ %46565, %46563 ]
  %46568 = zext i1 %46567 to i32
  %46569 = icmp eq i32 0, %46568
  br i1 %46569, label %46570, label %46590

46570:                                            ; preds = %46566
  %46571 = load double, ptr %1356, align 8, !tbaa !11
  %46572 = fcmp ogt double 0.000000e+00, %46571
  br i1 %46572, label %46573, label %46590

46573:                                            ; preds = %46570
  %46574 = load double, ptr %1357, align 8, !tbaa !11
  %46575 = fcmp olt double 0.000000e+00, %46574
  br i1 %46575, label %46576, label %46590

46576:                                            ; preds = %46573
  %46577 = load double, ptr %1356, align 8, !tbaa !11
  %46578 = fneg double %46577
  %46579 = load double, ptr %1357, align 8, !tbaa !11
  %46580 = fcmp olt double %46578, %46579
  br i1 %46580, label %46581, label %46583

46581:                                            ; preds = %46576
  %46582 = load double, ptr %1357, align 8, !tbaa !11
  br label %46586

46583:                                            ; preds = %46576
  %46584 = load double, ptr %1356, align 8, !tbaa !11
  %46585 = fneg double %46584
  br label %46586

46586:                                            ; preds = %46583, %46581
  %46587 = phi double [ %46582, %46581 ], [ %46585, %46583 ]
  store double %46587, ptr %1357, align 8, !tbaa !11
  %46588 = load double, ptr %1357, align 8, !tbaa !11
  %46589 = fneg double %46588
  store double %46589, ptr %1356, align 8, !tbaa !11
  br label %46590

46590:                                            ; preds = %46586, %46573, %46570, %46566
  br label %46591

46591:                                            ; preds = %46590, %46530
  call void @llvm.lifetime.start.p0(i64 8, ptr %1362) #3
  %46592 = load double, ptr %1356, align 8, !tbaa !11
  %46593 = fcmp ole double 0.000000e+00, %46592
  %46594 = zext i1 %46593 to i64
  %46595 = select i1 %46593, double 0.000000e+00, double 0.000000e+00
  store double %46595, ptr %1362, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1363) #3
  %46596 = load double, ptr %1357, align 8, !tbaa !11
  %46597 = fcmp ole double 0.000000e+00, %46596
  %46598 = zext i1 %46597 to i64
  %46599 = select i1 %46597, double 2.550000e+02, double 0.000000e+00
  store double %46599, ptr %1363, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1364) #3
  %46600 = load i64, ptr %1355, align 8, !tbaa !13
  %46601 = uitofp i64 %46600 to double
  %46602 = load double, ptr %1356, align 8, !tbaa !11
  %46603 = fsub double %46601, %46602
  %46604 = load double, ptr %1363, align 8, !tbaa !11
  %46605 = load double, ptr %1362, align 8, !tbaa !11
  %46606 = fsub double %46604, %46605
  %46607 = fmul double %46603, %46606
  %46608 = load double, ptr %1357, align 8, !tbaa !11
  %46609 = load double, ptr %1356, align 8, !tbaa !11
  %46610 = fsub double %46608, %46609
  %46611 = fdiv double %46607, %46610
  %46612 = load double, ptr %1362, align 8, !tbaa !11
  %46613 = fadd double %46611, %46612
  store double %46613, ptr %1364, align 8, !tbaa !11
  %46614 = load double, ptr %1362, align 8, !tbaa !11
  %46615 = load double, ptr %1364, align 8, !tbaa !11
  %46616 = fcmp ole double 0.000000e+00, %46615
  br i1 %46616, label %46617, label %46620

46617:                                            ; preds = %46591
  %46618 = load double, ptr %1364, align 8, !tbaa !11
  %46619 = fadd double %46618, 5.000000e-01
  br label %46623

46620:                                            ; preds = %46591
  %46621 = load double, ptr %1364, align 8, !tbaa !11
  %46622 = fsub double %46621, 5.000000e-01
  br label %46623

46623:                                            ; preds = %46620, %46617
  %46624 = phi double [ %46619, %46617 ], [ %46622, %46620 ]
  %46625 = fcmp olt double %46614, %46624
  br i1 %46625, label %46626, label %46680

46626:                                            ; preds = %46623
  %46627 = load double, ptr %1364, align 8, !tbaa !11
  %46628 = fcmp ole double 0.000000e+00, %46627
  br i1 %46628, label %46629, label %46632

46629:                                            ; preds = %46626
  %46630 = load double, ptr %1364, align 8, !tbaa !11
  %46631 = fadd double %46630, 5.000000e-01
  br label %46635

46632:                                            ; preds = %46626
  %46633 = load double, ptr %1364, align 8, !tbaa !11
  %46634 = fsub double %46633, 5.000000e-01
  br label %46635

46635:                                            ; preds = %46632, %46629
  %46636 = phi double [ %46631, %46629 ], [ %46634, %46632 ]
  %46637 = load double, ptr %1363, align 8, !tbaa !11
  %46638 = fcmp ole double %46636, %46637
  br i1 %46638, label %46639, label %46650

46639:                                            ; preds = %46635
  %46640 = load double, ptr %1364, align 8, !tbaa !11
  %46641 = fcmp ole double 0.000000e+00, %46640
  br i1 %46641, label %46642, label %46645

46642:                                            ; preds = %46639
  %46643 = load double, ptr %1364, align 8, !tbaa !11
  %46644 = fadd double %46643, 5.000000e-01
  br label %46648

46645:                                            ; preds = %46639
  %46646 = load double, ptr %1364, align 8, !tbaa !11
  %46647 = fsub double %46646, 5.000000e-01
  br label %46648

46648:                                            ; preds = %46645, %46642
  %46649 = phi double [ %46644, %46642 ], [ %46647, %46645 ]
  br label %46678

46650:                                            ; preds = %46635
  %46651 = load double, ptr %1364, align 8, !tbaa !11
  %46652 = fcmp ole double 0.000000e+00, %46651
  br i1 %46652, label %46653, label %46656

46653:                                            ; preds = %46650
  %46654 = load double, ptr %1364, align 8, !tbaa !11
  %46655 = fadd double %46654, 5.000000e-01
  br label %46659

46656:                                            ; preds = %46650
  %46657 = load double, ptr %1364, align 8, !tbaa !11
  %46658 = fsub double %46657, 5.000000e-01
  br label %46659

46659:                                            ; preds = %46656, %46653
  %46660 = phi double [ %46655, %46653 ], [ %46658, %46656 ]
  %46661 = load double, ptr %1363, align 8, !tbaa !11
  %46662 = fcmp olt double %46660, %46661
  br i1 %46662, label %46663, label %46674

46663:                                            ; preds = %46659
  %46664 = load double, ptr %1364, align 8, !tbaa !11
  %46665 = fcmp ole double 0.000000e+00, %46664
  br i1 %46665, label %46666, label %46669

46666:                                            ; preds = %46663
  %46667 = load double, ptr %1364, align 8, !tbaa !11
  %46668 = fadd double %46667, 5.000000e-01
  br label %46672

46669:                                            ; preds = %46663
  %46670 = load double, ptr %1364, align 8, !tbaa !11
  %46671 = fsub double %46670, 5.000000e-01
  br label %46672

46672:                                            ; preds = %46669, %46666
  %46673 = phi double [ %46668, %46666 ], [ %46671, %46669 ]
  br label %46676

46674:                                            ; preds = %46659
  %46675 = load double, ptr %1363, align 8, !tbaa !11
  br label %46676

46676:                                            ; preds = %46674, %46672
  %46677 = phi double [ %46673, %46672 ], [ %46675, %46674 ]
  br label %46678

46678:                                            ; preds = %46676, %46648
  %46679 = phi double [ %46649, %46648 ], [ %46677, %46676 ]
  br label %46708

46680:                                            ; preds = %46623
  %46681 = load double, ptr %1362, align 8, !tbaa !11
  %46682 = load double, ptr %1364, align 8, !tbaa !11
  %46683 = fcmp ole double 0.000000e+00, %46682
  br i1 %46683, label %46684, label %46687

46684:                                            ; preds = %46680
  %46685 = load double, ptr %1364, align 8, !tbaa !11
  %46686 = fadd double %46685, 5.000000e-01
  br label %46690

46687:                                            ; preds = %46680
  %46688 = load double, ptr %1364, align 8, !tbaa !11
  %46689 = fsub double %46688, 5.000000e-01
  br label %46690

46690:                                            ; preds = %46687, %46684
  %46691 = phi double [ %46686, %46684 ], [ %46689, %46687 ]
  %46692 = fcmp olt double %46681, %46691
  br i1 %46692, label %46693, label %46704

46693:                                            ; preds = %46690
  %46694 = load double, ptr %1364, align 8, !tbaa !11
  %46695 = fcmp ole double 0.000000e+00, %46694
  br i1 %46695, label %46696, label %46699

46696:                                            ; preds = %46693
  %46697 = load double, ptr %1364, align 8, !tbaa !11
  %46698 = fadd double %46697, 5.000000e-01
  br label %46702

46699:                                            ; preds = %46693
  %46700 = load double, ptr %1364, align 8, !tbaa !11
  %46701 = fsub double %46700, 5.000000e-01
  br label %46702

46702:                                            ; preds = %46699, %46696
  %46703 = phi double [ %46698, %46696 ], [ %46701, %46699 ]
  br label %46706

46704:                                            ; preds = %46690
  %46705 = load double, ptr %1362, align 8, !tbaa !11
  br label %46706

46706:                                            ; preds = %46704, %46702
  %46707 = phi double [ %46703, %46702 ], [ %46705, %46704 ]
  br label %46708

46708:                                            ; preds = %46706, %46678
  %46709 = phi double [ %46679, %46678 ], [ %46707, %46706 ]
  %46710 = fptoui double %46709 to i8
  %46711 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %46710, ptr %46711, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %1364) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1363) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1362) #3
  br label %46789

46712:                                            ; preds = %46476, %46473
  %46713 = load i32, ptr %8, align 4, !tbaa !9
  %46714 = icmp ugt i32 6, %46713
  br i1 %46714, label %46743, label %46715

46715:                                            ; preds = %46712
  %46716 = load i32, ptr %8, align 4, !tbaa !9
  %46717 = icmp ugt i32 15, %46716
  br i1 %46717, label %46718, label %46729

46718:                                            ; preds = %46715
  %46719 = load i32, ptr %9, align 4, !tbaa !9
  %46720 = icmp ugt i32 15, %46719
  br i1 %46720, label %46721, label %46726

46721:                                            ; preds = %46718
  %46722 = load i32, ptr %9, align 4, !tbaa !9
  %46723 = load i32, ptr %8, align 4, !tbaa !9
  %46724 = icmp ugt i32 %46722, %46723
  %46725 = zext i1 %46724 to i32
  br label %46727

46726:                                            ; preds = %46718
  br label %46727

46727:                                            ; preds = %46726, %46721
  %46728 = phi i32 [ %46725, %46721 ], [ 0, %46726 ]
  br label %46740

46729:                                            ; preds = %46715
  %46730 = load i32, ptr %9, align 4, !tbaa !9
  %46731 = icmp ugt i32 15, %46730
  br i1 %46731, label %46732, label %46733

46732:                                            ; preds = %46729
  br label %46738

46733:                                            ; preds = %46729
  %46734 = load i32, ptr %9, align 4, !tbaa !9
  %46735 = load i32, ptr %8, align 4, !tbaa !9
  %46736 = icmp ugt i32 %46734, %46735
  %46737 = zext i1 %46736 to i32
  br label %46738

46738:                                            ; preds = %46733, %46732
  %46739 = phi i32 [ 0, %46732 ], [ %46737, %46733 ]
  br label %46740

46740:                                            ; preds = %46738, %46727
  %46741 = phi i32 [ %46728, %46727 ], [ %46739, %46738 ]
  %46742 = icmp ne i32 %46741, 0
  br label %46743

46743:                                            ; preds = %46740, %46712
  %46744 = phi i1 [ true, %46712 ], [ %46742, %46740 ]
  %46745 = zext i1 %46744 to i32
  %46746 = icmp eq i32 0, %46745
  br i1 %46746, label %46747, label %46784

46747:                                            ; preds = %46743
  %46748 = load i64, ptr %1355, align 8, !tbaa !13
  %46749 = uitofp i64 %46748 to double
  %46750 = fcmp olt double 0.000000e+00, %46749
  br i1 %46750, label %46751, label %46770

46751:                                            ; preds = %46747
  %46752 = load i64, ptr %1355, align 8, !tbaa !13
  %46753 = uitofp i64 %46752 to double
  %46754 = fcmp ole double %46753, 2.550000e+02
  br i1 %46754, label %46755, label %46758

46755:                                            ; preds = %46751
  %46756 = load i64, ptr %1355, align 8, !tbaa !13
  %46757 = uitofp i64 %46756 to double
  br label %46768

46758:                                            ; preds = %46751
  %46759 = load i64, ptr %1355, align 8, !tbaa !13
  %46760 = uitofp i64 %46759 to double
  %46761 = fcmp olt double %46760, 2.550000e+02
  br i1 %46761, label %46762, label %46765

46762:                                            ; preds = %46758
  %46763 = load i64, ptr %1355, align 8, !tbaa !13
  %46764 = uitofp i64 %46763 to double
  br label %46766

46765:                                            ; preds = %46758
  br label %46766

46766:                                            ; preds = %46765, %46762
  %46767 = phi double [ %46764, %46762 ], [ 2.550000e+02, %46765 ]
  br label %46768

46768:                                            ; preds = %46766, %46755
  %46769 = phi double [ %46757, %46755 ], [ %46767, %46766 ]
  br label %46780

46770:                                            ; preds = %46747
  %46771 = load i64, ptr %1355, align 8, !tbaa !13
  %46772 = uitofp i64 %46771 to double
  %46773 = fcmp olt double 0.000000e+00, %46772
  br i1 %46773, label %46774, label %46777

46774:                                            ; preds = %46770
  %46775 = load i64, ptr %1355, align 8, !tbaa !13
  %46776 = uitofp i64 %46775 to double
  br label %46778

46777:                                            ; preds = %46770
  br label %46778

46778:                                            ; preds = %46777, %46774
  %46779 = phi double [ %46776, %46774 ], [ 0.000000e+00, %46777 ]
  br label %46780

46780:                                            ; preds = %46778, %46768
  %46781 = phi double [ %46769, %46768 ], [ %46779, %46778 ]
  %46782 = fptoui double %46781 to i8
  %46783 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %46782, ptr %46783, align 1, !tbaa !17
  br label %46788

46784:                                            ; preds = %46743
  %46785 = load i64, ptr %1355, align 8, !tbaa !13
  %46786 = trunc i64 %46785 to i8
  %46787 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %46786, ptr %46787, align 1, !tbaa !17
  br label %46788

46788:                                            ; preds = %46784, %46780
  br label %46789

46789:                                            ; preds = %46788, %46708
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1357) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1356) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1355) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1354) #3
  br label %46790

46790:                                            ; preds = %46789
  br label %46791

46791:                                            ; preds = %46790
  br label %48653

46792:                                            ; preds = %45030
  br label %46793

46793:                                            ; preds = %46792
  call void @llvm.lifetime.start.p0(i64 8, ptr %1365) #3
  store double 5.000000e-01, ptr %1365, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %1366) #3
  %46794 = load ptr, ptr %10, align 8, !tbaa !5
  %46795 = load i32, ptr %46794, align 4, !tbaa !9
  store i32 %46795, ptr %1366, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1367) #3
  store double 0.000000e+00, ptr %1367, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1368) #3
  store double 0.000000e+00, ptr %1368, align 8, !tbaa !11
  %46796 = load ptr, ptr %11, align 8, !tbaa !5
  %46797 = icmp ne ptr null, %46796
  br i1 %46797, label %46798, label %46820

46798:                                            ; preds = %46793
  %46799 = load ptr, ptr %12, align 8, !tbaa !5
  %46800 = icmp ne ptr null, %46799
  br i1 %46800, label %46801, label %46812

46801:                                            ; preds = %46798
  %46802 = load ptr, ptr %11, align 8, !tbaa !5
  %46803 = load i32, ptr %46802, align 4, !tbaa !9
  %46804 = load i32, ptr %1366, align 4, !tbaa !9
  %46805 = icmp ule i32 %46803, %46804
  br i1 %46805, label %46806, label %46812

46806:                                            ; preds = %46801
  %46807 = load i32, ptr %1366, align 4, !tbaa !9
  %46808 = load ptr, ptr %12, align 8, !tbaa !5
  %46809 = load i32, ptr %46808, align 4, !tbaa !9
  %46810 = icmp ule i32 %46807, %46809
  br i1 %46810, label %46811, label %46812

46811:                                            ; preds = %46806
  br label %46813

46812:                                            ; preds = %46806, %46801, %46798
  call void @__assert_fail(ptr noundef @.str.47, ptr noundef @.str.24, i32 noundef 503, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

46813:                                            ; preds = %46811
  %46814 = load ptr, ptr %11, align 8, !tbaa !5
  %46815 = load i32, ptr %46814, align 4, !tbaa !9
  %46816 = uitofp i32 %46815 to double
  store double %46816, ptr %1367, align 8, !tbaa !11
  %46817 = load ptr, ptr %12, align 8, !tbaa !5
  %46818 = load i32, ptr %46817, align 4, !tbaa !9
  %46819 = uitofp i32 %46818 to double
  store double %46819, ptr %1368, align 8, !tbaa !11
  br label %46820

46820:                                            ; preds = %46813, %46793
  %46821 = load i32, ptr %8, align 4, !tbaa !9
  %46822 = icmp ule i32 6, %46821
  br i1 %46822, label %46823, label %47059

46823:                                            ; preds = %46820
  %46824 = load double, ptr %1367, align 8, !tbaa !11
  %46825 = load double, ptr %1368, align 8, !tbaa !11
  %46826 = fcmp olt double %46824, %46825
  br i1 %46826, label %46827, label %47059

46827:                                            ; preds = %46823
  %46828 = load i32, ptr %8, align 4, !tbaa !9
  %46829 = icmp ule i32 15, %46828
  br i1 %46829, label %46830, label %46882

46830:                                            ; preds = %46827
  call void @llvm.lifetime.start.p0(i64 8, ptr %1369) #3
  %46831 = load double, ptr %1367, align 8, !tbaa !11
  %46832 = fcmp olt double 0.000000e+00, %46831
  br i1 %46832, label %46833, label %46835

46833:                                            ; preds = %46830
  %46834 = load double, ptr %1367, align 8, !tbaa !11
  br label %46836

46835:                                            ; preds = %46830
  br label %46836

46836:                                            ; preds = %46835, %46833
  %46837 = phi double [ %46834, %46833 ], [ 0.000000e+00, %46835 ]
  store double %46837, ptr %1369, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1370) #3
  %46838 = load double, ptr %1368, align 8, !tbaa !11
  %46839 = fcmp olt double 0.000000e+00, %46838
  br i1 %46839, label %46840, label %46842

46840:                                            ; preds = %46836
  %46841 = load double, ptr %1368, align 8, !tbaa !11
  br label %46843

46842:                                            ; preds = %46836
  br label %46843

46843:                                            ; preds = %46842, %46840
  %46844 = phi double [ %46841, %46840 ], [ 0.000000e+00, %46842 ]
  store double %46844, ptr %1370, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1371) #3
  %46845 = load double, ptr %1369, align 8, !tbaa !11
  %46846 = load double, ptr %1370, align 8, !tbaa !11
  %46847 = fcmp olt double %46845, %46846
  br i1 %46847, label %46848, label %46856

46848:                                            ; preds = %46843
  %46849 = load double, ptr %1368, align 8, !tbaa !11
  %46850 = load double, ptr %1367, align 8, !tbaa !11
  %46851 = fsub double %46849, %46850
  %46852 = load double, ptr %1370, align 8, !tbaa !11
  %46853 = load double, ptr %1369, align 8, !tbaa !11
  %46854 = fsub double %46852, %46853
  %46855 = fdiv double %46851, %46854
  br label %46857

46856:                                            ; preds = %46843
  br label %46857

46857:                                            ; preds = %46856, %46848
  %46858 = phi double [ %46855, %46848 ], [ 1.000000e+00, %46856 ]
  store double %46858, ptr %1371, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1372) #3
  %46859 = load double, ptr %1371, align 8, !tbaa !11
  %46860 = load i32, ptr %1366, align 4, !tbaa !9
  %46861 = icmp ult i32 0, %46860
  br i1 %46861, label %46862, label %46864

46862:                                            ; preds = %46857
  %46863 = load i32, ptr %1366, align 4, !tbaa !9
  br label %46865

46864:                                            ; preds = %46857
  br label %46865

46865:                                            ; preds = %46864, %46862
  %46866 = phi i32 [ %46863, %46862 ], [ 0, %46864 ]
  %46867 = uitofp i32 %46866 to double
  %46868 = fmul double %46859, %46867
  store double %46868, ptr %1372, align 8, !tbaa !11
  %46869 = load double, ptr %1372, align 8, !tbaa !11
  %46870 = fcmp ole double 0.000000e+00, %46869
  br i1 %46870, label %46871, label %46874

46871:                                            ; preds = %46865
  %46872 = load double, ptr %1372, align 8, !tbaa !11
  %46873 = fadd double %46872, 5.000000e-01
  br label %46877

46874:                                            ; preds = %46865
  %46875 = load double, ptr %1372, align 8, !tbaa !11
  %46876 = fsub double %46875, 5.000000e-01
  br label %46877

46877:                                            ; preds = %46874, %46871
  %46878 = phi double [ %46873, %46871 ], [ %46876, %46874 ]
  %46879 = fptoui double %46878 to i32
  store i32 %46879, ptr %1366, align 4, !tbaa !9
  %46880 = load double, ptr %1369, align 8, !tbaa !11
  store double %46880, ptr %1367, align 8, !tbaa !11
  %46881 = load double, ptr %1370, align 8, !tbaa !11
  store double %46881, ptr %1368, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1372) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1371) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1370) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1369) #3
  br label %46938

46882:                                            ; preds = %46827
  %46883 = load i32, ptr %8, align 4, !tbaa !9
  %46884 = icmp ugt i32 6, %46883
  br i1 %46884, label %46913, label %46885

46885:                                            ; preds = %46882
  %46886 = load i32, ptr %8, align 4, !tbaa !9
  %46887 = icmp ugt i32 15, %46886
  br i1 %46887, label %46888, label %46899

46888:                                            ; preds = %46885
  %46889 = load i32, ptr %9, align 4, !tbaa !9
  %46890 = icmp ugt i32 15, %46889
  br i1 %46890, label %46891, label %46896

46891:                                            ; preds = %46888
  %46892 = load i32, ptr %9, align 4, !tbaa !9
  %46893 = load i32, ptr %8, align 4, !tbaa !9
  %46894 = icmp ugt i32 %46892, %46893
  %46895 = zext i1 %46894 to i32
  br label %46897

46896:                                            ; preds = %46888
  br label %46897

46897:                                            ; preds = %46896, %46891
  %46898 = phi i32 [ %46895, %46891 ], [ 0, %46896 ]
  br label %46910

46899:                                            ; preds = %46885
  %46900 = load i32, ptr %9, align 4, !tbaa !9
  %46901 = icmp ugt i32 15, %46900
  br i1 %46901, label %46902, label %46903

46902:                                            ; preds = %46899
  br label %46908

46903:                                            ; preds = %46899
  %46904 = load i32, ptr %9, align 4, !tbaa !9
  %46905 = load i32, ptr %8, align 4, !tbaa !9
  %46906 = icmp ugt i32 %46904, %46905
  %46907 = zext i1 %46906 to i32
  br label %46908

46908:                                            ; preds = %46903, %46902
  %46909 = phi i32 [ 0, %46902 ], [ %46907, %46903 ]
  br label %46910

46910:                                            ; preds = %46908, %46897
  %46911 = phi i32 [ %46898, %46897 ], [ %46909, %46908 ]
  %46912 = icmp ne i32 %46911, 0
  br label %46913

46913:                                            ; preds = %46910, %46882
  %46914 = phi i1 [ true, %46882 ], [ %46912, %46910 ]
  %46915 = zext i1 %46914 to i32
  %46916 = icmp eq i32 0, %46915
  br i1 %46916, label %46917, label %46937

46917:                                            ; preds = %46913
  %46918 = load double, ptr %1367, align 8, !tbaa !11
  %46919 = fcmp ogt double 0.000000e+00, %46918
  br i1 %46919, label %46920, label %46937

46920:                                            ; preds = %46917
  %46921 = load double, ptr %1368, align 8, !tbaa !11
  %46922 = fcmp olt double 0.000000e+00, %46921
  br i1 %46922, label %46923, label %46937

46923:                                            ; preds = %46920
  %46924 = load double, ptr %1367, align 8, !tbaa !11
  %46925 = fneg double %46924
  %46926 = load double, ptr %1368, align 8, !tbaa !11
  %46927 = fcmp olt double %46925, %46926
  br i1 %46927, label %46928, label %46930

46928:                                            ; preds = %46923
  %46929 = load double, ptr %1368, align 8, !tbaa !11
  br label %46933

46930:                                            ; preds = %46923
  %46931 = load double, ptr %1367, align 8, !tbaa !11
  %46932 = fneg double %46931
  br label %46933

46933:                                            ; preds = %46930, %46928
  %46934 = phi double [ %46929, %46928 ], [ %46932, %46930 ]
  store double %46934, ptr %1368, align 8, !tbaa !11
  %46935 = load double, ptr %1368, align 8, !tbaa !11
  %46936 = fneg double %46935
  store double %46936, ptr %1367, align 8, !tbaa !11
  br label %46937

46937:                                            ; preds = %46933, %46920, %46917, %46913
  br label %46938

46938:                                            ; preds = %46937, %46877
  call void @llvm.lifetime.start.p0(i64 8, ptr %1373) #3
  %46939 = load double, ptr %1367, align 8, !tbaa !11
  %46940 = fcmp ole double 0.000000e+00, %46939
  %46941 = zext i1 %46940 to i64
  %46942 = select i1 %46940, double 0.000000e+00, double 0.000000e+00
  store double %46942, ptr %1373, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1374) #3
  %46943 = load double, ptr %1368, align 8, !tbaa !11
  %46944 = fcmp ole double 0.000000e+00, %46943
  %46945 = zext i1 %46944 to i64
  %46946 = select i1 %46944, double 2.550000e+02, double 0.000000e+00
  store double %46946, ptr %1374, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1375) #3
  %46947 = load i32, ptr %1366, align 4, !tbaa !9
  %46948 = uitofp i32 %46947 to double
  %46949 = load double, ptr %1367, align 8, !tbaa !11
  %46950 = fsub double %46948, %46949
  %46951 = load double, ptr %1374, align 8, !tbaa !11
  %46952 = load double, ptr %1373, align 8, !tbaa !11
  %46953 = fsub double %46951, %46952
  %46954 = fmul double %46950, %46953
  %46955 = load double, ptr %1368, align 8, !tbaa !11
  %46956 = load double, ptr %1367, align 8, !tbaa !11
  %46957 = fsub double %46955, %46956
  %46958 = fdiv double %46954, %46957
  %46959 = load double, ptr %1373, align 8, !tbaa !11
  %46960 = fadd double %46958, %46959
  store double %46960, ptr %1375, align 8, !tbaa !11
  %46961 = load double, ptr %1373, align 8, !tbaa !11
  %46962 = load double, ptr %1375, align 8, !tbaa !11
  %46963 = fcmp ole double 0.000000e+00, %46962
  br i1 %46963, label %46964, label %46967

46964:                                            ; preds = %46938
  %46965 = load double, ptr %1375, align 8, !tbaa !11
  %46966 = fadd double %46965, 5.000000e-01
  br label %46970

46967:                                            ; preds = %46938
  %46968 = load double, ptr %1375, align 8, !tbaa !11
  %46969 = fsub double %46968, 5.000000e-01
  br label %46970

46970:                                            ; preds = %46967, %46964
  %46971 = phi double [ %46966, %46964 ], [ %46969, %46967 ]
  %46972 = fcmp olt double %46961, %46971
  br i1 %46972, label %46973, label %47027

46973:                                            ; preds = %46970
  %46974 = load double, ptr %1375, align 8, !tbaa !11
  %46975 = fcmp ole double 0.000000e+00, %46974
  br i1 %46975, label %46976, label %46979

46976:                                            ; preds = %46973
  %46977 = load double, ptr %1375, align 8, !tbaa !11
  %46978 = fadd double %46977, 5.000000e-01
  br label %46982

46979:                                            ; preds = %46973
  %46980 = load double, ptr %1375, align 8, !tbaa !11
  %46981 = fsub double %46980, 5.000000e-01
  br label %46982

46982:                                            ; preds = %46979, %46976
  %46983 = phi double [ %46978, %46976 ], [ %46981, %46979 ]
  %46984 = load double, ptr %1374, align 8, !tbaa !11
  %46985 = fcmp ole double %46983, %46984
  br i1 %46985, label %46986, label %46997

46986:                                            ; preds = %46982
  %46987 = load double, ptr %1375, align 8, !tbaa !11
  %46988 = fcmp ole double 0.000000e+00, %46987
  br i1 %46988, label %46989, label %46992

46989:                                            ; preds = %46986
  %46990 = load double, ptr %1375, align 8, !tbaa !11
  %46991 = fadd double %46990, 5.000000e-01
  br label %46995

46992:                                            ; preds = %46986
  %46993 = load double, ptr %1375, align 8, !tbaa !11
  %46994 = fsub double %46993, 5.000000e-01
  br label %46995

46995:                                            ; preds = %46992, %46989
  %46996 = phi double [ %46991, %46989 ], [ %46994, %46992 ]
  br label %47025

46997:                                            ; preds = %46982
  %46998 = load double, ptr %1375, align 8, !tbaa !11
  %46999 = fcmp ole double 0.000000e+00, %46998
  br i1 %46999, label %47000, label %47003

47000:                                            ; preds = %46997
  %47001 = load double, ptr %1375, align 8, !tbaa !11
  %47002 = fadd double %47001, 5.000000e-01
  br label %47006

47003:                                            ; preds = %46997
  %47004 = load double, ptr %1375, align 8, !tbaa !11
  %47005 = fsub double %47004, 5.000000e-01
  br label %47006

47006:                                            ; preds = %47003, %47000
  %47007 = phi double [ %47002, %47000 ], [ %47005, %47003 ]
  %47008 = load double, ptr %1374, align 8, !tbaa !11
  %47009 = fcmp olt double %47007, %47008
  br i1 %47009, label %47010, label %47021

47010:                                            ; preds = %47006
  %47011 = load double, ptr %1375, align 8, !tbaa !11
  %47012 = fcmp ole double 0.000000e+00, %47011
  br i1 %47012, label %47013, label %47016

47013:                                            ; preds = %47010
  %47014 = load double, ptr %1375, align 8, !tbaa !11
  %47015 = fadd double %47014, 5.000000e-01
  br label %47019

47016:                                            ; preds = %47010
  %47017 = load double, ptr %1375, align 8, !tbaa !11
  %47018 = fsub double %47017, 5.000000e-01
  br label %47019

47019:                                            ; preds = %47016, %47013
  %47020 = phi double [ %47015, %47013 ], [ %47018, %47016 ]
  br label %47023

47021:                                            ; preds = %47006
  %47022 = load double, ptr %1374, align 8, !tbaa !11
  br label %47023

47023:                                            ; preds = %47021, %47019
  %47024 = phi double [ %47020, %47019 ], [ %47022, %47021 ]
  br label %47025

47025:                                            ; preds = %47023, %46995
  %47026 = phi double [ %46996, %46995 ], [ %47024, %47023 ]
  br label %47055

47027:                                            ; preds = %46970
  %47028 = load double, ptr %1373, align 8, !tbaa !11
  %47029 = load double, ptr %1375, align 8, !tbaa !11
  %47030 = fcmp ole double 0.000000e+00, %47029
  br i1 %47030, label %47031, label %47034

47031:                                            ; preds = %47027
  %47032 = load double, ptr %1375, align 8, !tbaa !11
  %47033 = fadd double %47032, 5.000000e-01
  br label %47037

47034:                                            ; preds = %47027
  %47035 = load double, ptr %1375, align 8, !tbaa !11
  %47036 = fsub double %47035, 5.000000e-01
  br label %47037

47037:                                            ; preds = %47034, %47031
  %47038 = phi double [ %47033, %47031 ], [ %47036, %47034 ]
  %47039 = fcmp olt double %47028, %47038
  br i1 %47039, label %47040, label %47051

47040:                                            ; preds = %47037
  %47041 = load double, ptr %1375, align 8, !tbaa !11
  %47042 = fcmp ole double 0.000000e+00, %47041
  br i1 %47042, label %47043, label %47046

47043:                                            ; preds = %47040
  %47044 = load double, ptr %1375, align 8, !tbaa !11
  %47045 = fadd double %47044, 5.000000e-01
  br label %47049

47046:                                            ; preds = %47040
  %47047 = load double, ptr %1375, align 8, !tbaa !11
  %47048 = fsub double %47047, 5.000000e-01
  br label %47049

47049:                                            ; preds = %47046, %47043
  %47050 = phi double [ %47045, %47043 ], [ %47048, %47046 ]
  br label %47053

47051:                                            ; preds = %47037
  %47052 = load double, ptr %1373, align 8, !tbaa !11
  br label %47053

47053:                                            ; preds = %47051, %47049
  %47054 = phi double [ %47050, %47049 ], [ %47052, %47051 ]
  br label %47055

47055:                                            ; preds = %47053, %47025
  %47056 = phi double [ %47026, %47025 ], [ %47054, %47053 ]
  %47057 = fptoui double %47056 to i8
  %47058 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %47057, ptr %47058, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %1375) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1374) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1373) #3
  br label %47136

47059:                                            ; preds = %46823, %46820
  %47060 = load i32, ptr %8, align 4, !tbaa !9
  %47061 = icmp ugt i32 6, %47060
  br i1 %47061, label %47090, label %47062

47062:                                            ; preds = %47059
  %47063 = load i32, ptr %8, align 4, !tbaa !9
  %47064 = icmp ugt i32 15, %47063
  br i1 %47064, label %47065, label %47076

47065:                                            ; preds = %47062
  %47066 = load i32, ptr %9, align 4, !tbaa !9
  %47067 = icmp ugt i32 15, %47066
  br i1 %47067, label %47068, label %47073

47068:                                            ; preds = %47065
  %47069 = load i32, ptr %9, align 4, !tbaa !9
  %47070 = load i32, ptr %8, align 4, !tbaa !9
  %47071 = icmp ugt i32 %47069, %47070
  %47072 = zext i1 %47071 to i32
  br label %47074

47073:                                            ; preds = %47065
  br label %47074

47074:                                            ; preds = %47073, %47068
  %47075 = phi i32 [ %47072, %47068 ], [ 0, %47073 ]
  br label %47087

47076:                                            ; preds = %47062
  %47077 = load i32, ptr %9, align 4, !tbaa !9
  %47078 = icmp ugt i32 15, %47077
  br i1 %47078, label %47079, label %47080

47079:                                            ; preds = %47076
  br label %47085

47080:                                            ; preds = %47076
  %47081 = load i32, ptr %9, align 4, !tbaa !9
  %47082 = load i32, ptr %8, align 4, !tbaa !9
  %47083 = icmp ugt i32 %47081, %47082
  %47084 = zext i1 %47083 to i32
  br label %47085

47085:                                            ; preds = %47080, %47079
  %47086 = phi i32 [ 0, %47079 ], [ %47084, %47080 ]
  br label %47087

47087:                                            ; preds = %47085, %47074
  %47088 = phi i32 [ %47075, %47074 ], [ %47086, %47085 ]
  %47089 = icmp ne i32 %47088, 0
  br label %47090

47090:                                            ; preds = %47087, %47059
  %47091 = phi i1 [ true, %47059 ], [ %47089, %47087 ]
  %47092 = zext i1 %47091 to i32
  %47093 = icmp eq i32 0, %47092
  br i1 %47093, label %47094, label %47131

47094:                                            ; preds = %47090
  %47095 = load i32, ptr %1366, align 4, !tbaa !9
  %47096 = uitofp i32 %47095 to double
  %47097 = fcmp olt double 0.000000e+00, %47096
  br i1 %47097, label %47098, label %47117

47098:                                            ; preds = %47094
  %47099 = load i32, ptr %1366, align 4, !tbaa !9
  %47100 = uitofp i32 %47099 to double
  %47101 = fcmp ole double %47100, 2.550000e+02
  br i1 %47101, label %47102, label %47105

47102:                                            ; preds = %47098
  %47103 = load i32, ptr %1366, align 4, !tbaa !9
  %47104 = uitofp i32 %47103 to double
  br label %47115

47105:                                            ; preds = %47098
  %47106 = load i32, ptr %1366, align 4, !tbaa !9
  %47107 = uitofp i32 %47106 to double
  %47108 = fcmp olt double %47107, 2.550000e+02
  br i1 %47108, label %47109, label %47112

47109:                                            ; preds = %47105
  %47110 = load i32, ptr %1366, align 4, !tbaa !9
  %47111 = uitofp i32 %47110 to double
  br label %47113

47112:                                            ; preds = %47105
  br label %47113

47113:                                            ; preds = %47112, %47109
  %47114 = phi double [ %47111, %47109 ], [ 2.550000e+02, %47112 ]
  br label %47115

47115:                                            ; preds = %47113, %47102
  %47116 = phi double [ %47104, %47102 ], [ %47114, %47113 ]
  br label %47127

47117:                                            ; preds = %47094
  %47118 = load i32, ptr %1366, align 4, !tbaa !9
  %47119 = uitofp i32 %47118 to double
  %47120 = fcmp olt double 0.000000e+00, %47119
  br i1 %47120, label %47121, label %47124

47121:                                            ; preds = %47117
  %47122 = load i32, ptr %1366, align 4, !tbaa !9
  %47123 = uitofp i32 %47122 to double
  br label %47125

47124:                                            ; preds = %47117
  br label %47125

47125:                                            ; preds = %47124, %47121
  %47126 = phi double [ %47123, %47121 ], [ 0.000000e+00, %47124 ]
  br label %47127

47127:                                            ; preds = %47125, %47115
  %47128 = phi double [ %47116, %47115 ], [ %47126, %47125 ]
  %47129 = fptoui double %47128 to i8
  %47130 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %47129, ptr %47130, align 1, !tbaa !17
  br label %47135

47131:                                            ; preds = %47090
  %47132 = load i32, ptr %1366, align 4, !tbaa !9
  %47133 = trunc i32 %47132 to i8
  %47134 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %47133, ptr %47134, align 1, !tbaa !17
  br label %47135

47135:                                            ; preds = %47131, %47127
  br label %47136

47136:                                            ; preds = %47135, %47055
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1368) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1367) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %1366) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1365) #3
  br label %47137

47137:                                            ; preds = %47136
  br label %47138

47138:                                            ; preds = %47137
  br label %48653

47139:                                            ; preds = %45030
  br label %47140

47140:                                            ; preds = %47139
  call void @llvm.lifetime.start.p0(i64 8, ptr %1376) #3
  store double 5.000000e-01, ptr %1376, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %1377) #3
  %47141 = load ptr, ptr %10, align 8, !tbaa !5
  %47142 = load i16, ptr %47141, align 2, !tbaa !15
  store i16 %47142, ptr %1377, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %1378) #3
  store double 0.000000e+00, ptr %1378, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1379) #3
  store double 0.000000e+00, ptr %1379, align 8, !tbaa !11
  %47143 = load ptr, ptr %11, align 8, !tbaa !5
  %47144 = icmp ne ptr null, %47143
  br i1 %47144, label %47145, label %47171

47145:                                            ; preds = %47140
  %47146 = load ptr, ptr %12, align 8, !tbaa !5
  %47147 = icmp ne ptr null, %47146
  br i1 %47147, label %47148, label %47163

47148:                                            ; preds = %47145
  %47149 = load ptr, ptr %11, align 8, !tbaa !5
  %47150 = load i16, ptr %47149, align 2, !tbaa !15
  %47151 = zext i16 %47150 to i32
  %47152 = load i16, ptr %1377, align 2, !tbaa !15
  %47153 = zext i16 %47152 to i32
  %47154 = icmp sle i32 %47151, %47153
  br i1 %47154, label %47155, label %47163

47155:                                            ; preds = %47148
  %47156 = load i16, ptr %1377, align 2, !tbaa !15
  %47157 = zext i16 %47156 to i32
  %47158 = load ptr, ptr %12, align 8, !tbaa !5
  %47159 = load i16, ptr %47158, align 2, !tbaa !15
  %47160 = zext i16 %47159 to i32
  %47161 = icmp sle i32 %47157, %47160
  br i1 %47161, label %47162, label %47163

47162:                                            ; preds = %47155
  br label %47164

47163:                                            ; preds = %47155, %47148, %47145
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.24, i32 noundef 503, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

47164:                                            ; preds = %47162
  %47165 = load ptr, ptr %11, align 8, !tbaa !5
  %47166 = load i16, ptr %47165, align 2, !tbaa !15
  %47167 = uitofp i16 %47166 to double
  store double %47167, ptr %1378, align 8, !tbaa !11
  %47168 = load ptr, ptr %12, align 8, !tbaa !5
  %47169 = load i16, ptr %47168, align 2, !tbaa !15
  %47170 = uitofp i16 %47169 to double
  store double %47170, ptr %1379, align 8, !tbaa !11
  br label %47171

47171:                                            ; preds = %47164, %47140
  %47172 = load i32, ptr %8, align 4, !tbaa !9
  %47173 = icmp ule i32 6, %47172
  br i1 %47173, label %47174, label %47412

47174:                                            ; preds = %47171
  %47175 = load double, ptr %1378, align 8, !tbaa !11
  %47176 = load double, ptr %1379, align 8, !tbaa !11
  %47177 = fcmp olt double %47175, %47176
  br i1 %47177, label %47178, label %47412

47178:                                            ; preds = %47174
  %47179 = load i32, ptr %8, align 4, !tbaa !9
  %47180 = icmp ule i32 15, %47179
  br i1 %47180, label %47181, label %47235

47181:                                            ; preds = %47178
  call void @llvm.lifetime.start.p0(i64 8, ptr %1380) #3
  %47182 = load double, ptr %1378, align 8, !tbaa !11
  %47183 = fcmp olt double 0.000000e+00, %47182
  br i1 %47183, label %47184, label %47186

47184:                                            ; preds = %47181
  %47185 = load double, ptr %1378, align 8, !tbaa !11
  br label %47187

47186:                                            ; preds = %47181
  br label %47187

47187:                                            ; preds = %47186, %47184
  %47188 = phi double [ %47185, %47184 ], [ 0.000000e+00, %47186 ]
  store double %47188, ptr %1380, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1381) #3
  %47189 = load double, ptr %1379, align 8, !tbaa !11
  %47190 = fcmp olt double 0.000000e+00, %47189
  br i1 %47190, label %47191, label %47193

47191:                                            ; preds = %47187
  %47192 = load double, ptr %1379, align 8, !tbaa !11
  br label %47194

47193:                                            ; preds = %47187
  br label %47194

47194:                                            ; preds = %47193, %47191
  %47195 = phi double [ %47192, %47191 ], [ 0.000000e+00, %47193 ]
  store double %47195, ptr %1381, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1382) #3
  %47196 = load double, ptr %1380, align 8, !tbaa !11
  %47197 = load double, ptr %1381, align 8, !tbaa !11
  %47198 = fcmp olt double %47196, %47197
  br i1 %47198, label %47199, label %47207

47199:                                            ; preds = %47194
  %47200 = load double, ptr %1379, align 8, !tbaa !11
  %47201 = load double, ptr %1378, align 8, !tbaa !11
  %47202 = fsub double %47200, %47201
  %47203 = load double, ptr %1381, align 8, !tbaa !11
  %47204 = load double, ptr %1380, align 8, !tbaa !11
  %47205 = fsub double %47203, %47204
  %47206 = fdiv double %47202, %47205
  br label %47208

47207:                                            ; preds = %47194
  br label %47208

47208:                                            ; preds = %47207, %47199
  %47209 = phi double [ %47206, %47199 ], [ 1.000000e+00, %47207 ]
  store double %47209, ptr %1382, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1383) #3
  %47210 = load double, ptr %1382, align 8, !tbaa !11
  %47211 = load i16, ptr %1377, align 2, !tbaa !15
  %47212 = zext i16 %47211 to i32
  %47213 = icmp slt i32 0, %47212
  br i1 %47213, label %47214, label %47217

47214:                                            ; preds = %47208
  %47215 = load i16, ptr %1377, align 2, !tbaa !15
  %47216 = zext i16 %47215 to i32
  br label %47218

47217:                                            ; preds = %47208
  br label %47218

47218:                                            ; preds = %47217, %47214
  %47219 = phi i32 [ %47216, %47214 ], [ 0, %47217 ]
  %47220 = sitofp i32 %47219 to double
  %47221 = fmul double %47210, %47220
  store double %47221, ptr %1383, align 8, !tbaa !11
  %47222 = load double, ptr %1383, align 8, !tbaa !11
  %47223 = fcmp ole double 0.000000e+00, %47222
  br i1 %47223, label %47224, label %47227

47224:                                            ; preds = %47218
  %47225 = load double, ptr %1383, align 8, !tbaa !11
  %47226 = fadd double %47225, 5.000000e-01
  br label %47230

47227:                                            ; preds = %47218
  %47228 = load double, ptr %1383, align 8, !tbaa !11
  %47229 = fsub double %47228, 5.000000e-01
  br label %47230

47230:                                            ; preds = %47227, %47224
  %47231 = phi double [ %47226, %47224 ], [ %47229, %47227 ]
  %47232 = fptoui double %47231 to i16
  store i16 %47232, ptr %1377, align 2, !tbaa !15
  %47233 = load double, ptr %1380, align 8, !tbaa !11
  store double %47233, ptr %1378, align 8, !tbaa !11
  %47234 = load double, ptr %1381, align 8, !tbaa !11
  store double %47234, ptr %1379, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1383) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1382) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1381) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1380) #3
  br label %47291

47235:                                            ; preds = %47178
  %47236 = load i32, ptr %8, align 4, !tbaa !9
  %47237 = icmp ugt i32 6, %47236
  br i1 %47237, label %47266, label %47238

47238:                                            ; preds = %47235
  %47239 = load i32, ptr %8, align 4, !tbaa !9
  %47240 = icmp ugt i32 15, %47239
  br i1 %47240, label %47241, label %47252

47241:                                            ; preds = %47238
  %47242 = load i32, ptr %9, align 4, !tbaa !9
  %47243 = icmp ugt i32 15, %47242
  br i1 %47243, label %47244, label %47249

47244:                                            ; preds = %47241
  %47245 = load i32, ptr %9, align 4, !tbaa !9
  %47246 = load i32, ptr %8, align 4, !tbaa !9
  %47247 = icmp ugt i32 %47245, %47246
  %47248 = zext i1 %47247 to i32
  br label %47250

47249:                                            ; preds = %47241
  br label %47250

47250:                                            ; preds = %47249, %47244
  %47251 = phi i32 [ %47248, %47244 ], [ 0, %47249 ]
  br label %47263

47252:                                            ; preds = %47238
  %47253 = load i32, ptr %9, align 4, !tbaa !9
  %47254 = icmp ugt i32 15, %47253
  br i1 %47254, label %47255, label %47256

47255:                                            ; preds = %47252
  br label %47261

47256:                                            ; preds = %47252
  %47257 = load i32, ptr %9, align 4, !tbaa !9
  %47258 = load i32, ptr %8, align 4, !tbaa !9
  %47259 = icmp ugt i32 %47257, %47258
  %47260 = zext i1 %47259 to i32
  br label %47261

47261:                                            ; preds = %47256, %47255
  %47262 = phi i32 [ 0, %47255 ], [ %47260, %47256 ]
  br label %47263

47263:                                            ; preds = %47261, %47250
  %47264 = phi i32 [ %47251, %47250 ], [ %47262, %47261 ]
  %47265 = icmp ne i32 %47264, 0
  br label %47266

47266:                                            ; preds = %47263, %47235
  %47267 = phi i1 [ true, %47235 ], [ %47265, %47263 ]
  %47268 = zext i1 %47267 to i32
  %47269 = icmp eq i32 0, %47268
  br i1 %47269, label %47270, label %47290

47270:                                            ; preds = %47266
  %47271 = load double, ptr %1378, align 8, !tbaa !11
  %47272 = fcmp ogt double 0.000000e+00, %47271
  br i1 %47272, label %47273, label %47290

47273:                                            ; preds = %47270
  %47274 = load double, ptr %1379, align 8, !tbaa !11
  %47275 = fcmp olt double 0.000000e+00, %47274
  br i1 %47275, label %47276, label %47290

47276:                                            ; preds = %47273
  %47277 = load double, ptr %1378, align 8, !tbaa !11
  %47278 = fneg double %47277
  %47279 = load double, ptr %1379, align 8, !tbaa !11
  %47280 = fcmp olt double %47278, %47279
  br i1 %47280, label %47281, label %47283

47281:                                            ; preds = %47276
  %47282 = load double, ptr %1379, align 8, !tbaa !11
  br label %47286

47283:                                            ; preds = %47276
  %47284 = load double, ptr %1378, align 8, !tbaa !11
  %47285 = fneg double %47284
  br label %47286

47286:                                            ; preds = %47283, %47281
  %47287 = phi double [ %47282, %47281 ], [ %47285, %47283 ]
  store double %47287, ptr %1379, align 8, !tbaa !11
  %47288 = load double, ptr %1379, align 8, !tbaa !11
  %47289 = fneg double %47288
  store double %47289, ptr %1378, align 8, !tbaa !11
  br label %47290

47290:                                            ; preds = %47286, %47273, %47270, %47266
  br label %47291

47291:                                            ; preds = %47290, %47230
  call void @llvm.lifetime.start.p0(i64 8, ptr %1384) #3
  %47292 = load double, ptr %1378, align 8, !tbaa !11
  %47293 = fcmp ole double 0.000000e+00, %47292
  %47294 = zext i1 %47293 to i64
  %47295 = select i1 %47293, double 0.000000e+00, double 0.000000e+00
  store double %47295, ptr %1384, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1385) #3
  %47296 = load double, ptr %1379, align 8, !tbaa !11
  %47297 = fcmp ole double 0.000000e+00, %47296
  %47298 = zext i1 %47297 to i64
  %47299 = select i1 %47297, double 2.550000e+02, double 0.000000e+00
  store double %47299, ptr %1385, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1386) #3
  %47300 = load i16, ptr %1377, align 2, !tbaa !15
  %47301 = uitofp i16 %47300 to double
  %47302 = load double, ptr %1378, align 8, !tbaa !11
  %47303 = fsub double %47301, %47302
  %47304 = load double, ptr %1385, align 8, !tbaa !11
  %47305 = load double, ptr %1384, align 8, !tbaa !11
  %47306 = fsub double %47304, %47305
  %47307 = fmul double %47303, %47306
  %47308 = load double, ptr %1379, align 8, !tbaa !11
  %47309 = load double, ptr %1378, align 8, !tbaa !11
  %47310 = fsub double %47308, %47309
  %47311 = fdiv double %47307, %47310
  %47312 = load double, ptr %1384, align 8, !tbaa !11
  %47313 = fadd double %47311, %47312
  store double %47313, ptr %1386, align 8, !tbaa !11
  %47314 = load double, ptr %1384, align 8, !tbaa !11
  %47315 = load double, ptr %1386, align 8, !tbaa !11
  %47316 = fcmp ole double 0.000000e+00, %47315
  br i1 %47316, label %47317, label %47320

47317:                                            ; preds = %47291
  %47318 = load double, ptr %1386, align 8, !tbaa !11
  %47319 = fadd double %47318, 5.000000e-01
  br label %47323

47320:                                            ; preds = %47291
  %47321 = load double, ptr %1386, align 8, !tbaa !11
  %47322 = fsub double %47321, 5.000000e-01
  br label %47323

47323:                                            ; preds = %47320, %47317
  %47324 = phi double [ %47319, %47317 ], [ %47322, %47320 ]
  %47325 = fcmp olt double %47314, %47324
  br i1 %47325, label %47326, label %47380

47326:                                            ; preds = %47323
  %47327 = load double, ptr %1386, align 8, !tbaa !11
  %47328 = fcmp ole double 0.000000e+00, %47327
  br i1 %47328, label %47329, label %47332

47329:                                            ; preds = %47326
  %47330 = load double, ptr %1386, align 8, !tbaa !11
  %47331 = fadd double %47330, 5.000000e-01
  br label %47335

47332:                                            ; preds = %47326
  %47333 = load double, ptr %1386, align 8, !tbaa !11
  %47334 = fsub double %47333, 5.000000e-01
  br label %47335

47335:                                            ; preds = %47332, %47329
  %47336 = phi double [ %47331, %47329 ], [ %47334, %47332 ]
  %47337 = load double, ptr %1385, align 8, !tbaa !11
  %47338 = fcmp ole double %47336, %47337
  br i1 %47338, label %47339, label %47350

47339:                                            ; preds = %47335
  %47340 = load double, ptr %1386, align 8, !tbaa !11
  %47341 = fcmp ole double 0.000000e+00, %47340
  br i1 %47341, label %47342, label %47345

47342:                                            ; preds = %47339
  %47343 = load double, ptr %1386, align 8, !tbaa !11
  %47344 = fadd double %47343, 5.000000e-01
  br label %47348

47345:                                            ; preds = %47339
  %47346 = load double, ptr %1386, align 8, !tbaa !11
  %47347 = fsub double %47346, 5.000000e-01
  br label %47348

47348:                                            ; preds = %47345, %47342
  %47349 = phi double [ %47344, %47342 ], [ %47347, %47345 ]
  br label %47378

47350:                                            ; preds = %47335
  %47351 = load double, ptr %1386, align 8, !tbaa !11
  %47352 = fcmp ole double 0.000000e+00, %47351
  br i1 %47352, label %47353, label %47356

47353:                                            ; preds = %47350
  %47354 = load double, ptr %1386, align 8, !tbaa !11
  %47355 = fadd double %47354, 5.000000e-01
  br label %47359

47356:                                            ; preds = %47350
  %47357 = load double, ptr %1386, align 8, !tbaa !11
  %47358 = fsub double %47357, 5.000000e-01
  br label %47359

47359:                                            ; preds = %47356, %47353
  %47360 = phi double [ %47355, %47353 ], [ %47358, %47356 ]
  %47361 = load double, ptr %1385, align 8, !tbaa !11
  %47362 = fcmp olt double %47360, %47361
  br i1 %47362, label %47363, label %47374

47363:                                            ; preds = %47359
  %47364 = load double, ptr %1386, align 8, !tbaa !11
  %47365 = fcmp ole double 0.000000e+00, %47364
  br i1 %47365, label %47366, label %47369

47366:                                            ; preds = %47363
  %47367 = load double, ptr %1386, align 8, !tbaa !11
  %47368 = fadd double %47367, 5.000000e-01
  br label %47372

47369:                                            ; preds = %47363
  %47370 = load double, ptr %1386, align 8, !tbaa !11
  %47371 = fsub double %47370, 5.000000e-01
  br label %47372

47372:                                            ; preds = %47369, %47366
  %47373 = phi double [ %47368, %47366 ], [ %47371, %47369 ]
  br label %47376

47374:                                            ; preds = %47359
  %47375 = load double, ptr %1385, align 8, !tbaa !11
  br label %47376

47376:                                            ; preds = %47374, %47372
  %47377 = phi double [ %47373, %47372 ], [ %47375, %47374 ]
  br label %47378

47378:                                            ; preds = %47376, %47348
  %47379 = phi double [ %47349, %47348 ], [ %47377, %47376 ]
  br label %47408

47380:                                            ; preds = %47323
  %47381 = load double, ptr %1384, align 8, !tbaa !11
  %47382 = load double, ptr %1386, align 8, !tbaa !11
  %47383 = fcmp ole double 0.000000e+00, %47382
  br i1 %47383, label %47384, label %47387

47384:                                            ; preds = %47380
  %47385 = load double, ptr %1386, align 8, !tbaa !11
  %47386 = fadd double %47385, 5.000000e-01
  br label %47390

47387:                                            ; preds = %47380
  %47388 = load double, ptr %1386, align 8, !tbaa !11
  %47389 = fsub double %47388, 5.000000e-01
  br label %47390

47390:                                            ; preds = %47387, %47384
  %47391 = phi double [ %47386, %47384 ], [ %47389, %47387 ]
  %47392 = fcmp olt double %47381, %47391
  br i1 %47392, label %47393, label %47404

47393:                                            ; preds = %47390
  %47394 = load double, ptr %1386, align 8, !tbaa !11
  %47395 = fcmp ole double 0.000000e+00, %47394
  br i1 %47395, label %47396, label %47399

47396:                                            ; preds = %47393
  %47397 = load double, ptr %1386, align 8, !tbaa !11
  %47398 = fadd double %47397, 5.000000e-01
  br label %47402

47399:                                            ; preds = %47393
  %47400 = load double, ptr %1386, align 8, !tbaa !11
  %47401 = fsub double %47400, 5.000000e-01
  br label %47402

47402:                                            ; preds = %47399, %47396
  %47403 = phi double [ %47398, %47396 ], [ %47401, %47399 ]
  br label %47406

47404:                                            ; preds = %47390
  %47405 = load double, ptr %1384, align 8, !tbaa !11
  br label %47406

47406:                                            ; preds = %47404, %47402
  %47407 = phi double [ %47403, %47402 ], [ %47405, %47404 ]
  br label %47408

47408:                                            ; preds = %47406, %47378
  %47409 = phi double [ %47379, %47378 ], [ %47407, %47406 ]
  %47410 = fptoui double %47409 to i8
  %47411 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %47410, ptr %47411, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %1386) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1385) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1384) #3
  br label %47496

47412:                                            ; preds = %47174, %47171
  %47413 = load i32, ptr %8, align 4, !tbaa !9
  %47414 = icmp ugt i32 6, %47413
  br i1 %47414, label %47443, label %47415

47415:                                            ; preds = %47412
  %47416 = load i32, ptr %8, align 4, !tbaa !9
  %47417 = icmp ugt i32 15, %47416
  br i1 %47417, label %47418, label %47429

47418:                                            ; preds = %47415
  %47419 = load i32, ptr %9, align 4, !tbaa !9
  %47420 = icmp ugt i32 15, %47419
  br i1 %47420, label %47421, label %47426

47421:                                            ; preds = %47418
  %47422 = load i32, ptr %9, align 4, !tbaa !9
  %47423 = load i32, ptr %8, align 4, !tbaa !9
  %47424 = icmp ugt i32 %47422, %47423
  %47425 = zext i1 %47424 to i32
  br label %47427

47426:                                            ; preds = %47418
  br label %47427

47427:                                            ; preds = %47426, %47421
  %47428 = phi i32 [ %47425, %47421 ], [ 0, %47426 ]
  br label %47440

47429:                                            ; preds = %47415
  %47430 = load i32, ptr %9, align 4, !tbaa !9
  %47431 = icmp ugt i32 15, %47430
  br i1 %47431, label %47432, label %47433

47432:                                            ; preds = %47429
  br label %47438

47433:                                            ; preds = %47429
  %47434 = load i32, ptr %9, align 4, !tbaa !9
  %47435 = load i32, ptr %8, align 4, !tbaa !9
  %47436 = icmp ugt i32 %47434, %47435
  %47437 = zext i1 %47436 to i32
  br label %47438

47438:                                            ; preds = %47433, %47432
  %47439 = phi i32 [ 0, %47432 ], [ %47437, %47433 ]
  br label %47440

47440:                                            ; preds = %47438, %47427
  %47441 = phi i32 [ %47428, %47427 ], [ %47439, %47438 ]
  %47442 = icmp ne i32 %47441, 0
  br label %47443

47443:                                            ; preds = %47440, %47412
  %47444 = phi i1 [ true, %47412 ], [ %47442, %47440 ]
  %47445 = zext i1 %47444 to i32
  %47446 = icmp eq i32 0, %47445
  br i1 %47446, label %47447, label %47491

47447:                                            ; preds = %47443
  %47448 = load i16, ptr %1377, align 2, !tbaa !15
  %47449 = zext i16 %47448 to i32
  %47450 = sitofp i32 %47449 to double
  %47451 = fcmp olt double 0.000000e+00, %47450
  br i1 %47451, label %47452, label %47475

47452:                                            ; preds = %47447
  %47453 = load i16, ptr %1377, align 2, !tbaa !15
  %47454 = zext i16 %47453 to i32
  %47455 = sitofp i32 %47454 to double
  %47456 = fcmp ole double %47455, 2.550000e+02
  br i1 %47456, label %47457, label %47461

47457:                                            ; preds = %47452
  %47458 = load i16, ptr %1377, align 2, !tbaa !15
  %47459 = zext i16 %47458 to i32
  %47460 = sitofp i32 %47459 to double
  br label %47473

47461:                                            ; preds = %47452
  %47462 = load i16, ptr %1377, align 2, !tbaa !15
  %47463 = zext i16 %47462 to i32
  %47464 = sitofp i32 %47463 to double
  %47465 = fcmp olt double %47464, 2.550000e+02
  br i1 %47465, label %47466, label %47470

47466:                                            ; preds = %47461
  %47467 = load i16, ptr %1377, align 2, !tbaa !15
  %47468 = zext i16 %47467 to i32
  %47469 = sitofp i32 %47468 to double
  br label %47471

47470:                                            ; preds = %47461
  br label %47471

47471:                                            ; preds = %47470, %47466
  %47472 = phi double [ %47469, %47466 ], [ 2.550000e+02, %47470 ]
  br label %47473

47473:                                            ; preds = %47471, %47457
  %47474 = phi double [ %47460, %47457 ], [ %47472, %47471 ]
  br label %47487

47475:                                            ; preds = %47447
  %47476 = load i16, ptr %1377, align 2, !tbaa !15
  %47477 = zext i16 %47476 to i32
  %47478 = sitofp i32 %47477 to double
  %47479 = fcmp olt double 0.000000e+00, %47478
  br i1 %47479, label %47480, label %47484

47480:                                            ; preds = %47475
  %47481 = load i16, ptr %1377, align 2, !tbaa !15
  %47482 = zext i16 %47481 to i32
  %47483 = sitofp i32 %47482 to double
  br label %47485

47484:                                            ; preds = %47475
  br label %47485

47485:                                            ; preds = %47484, %47480
  %47486 = phi double [ %47483, %47480 ], [ 0.000000e+00, %47484 ]
  br label %47487

47487:                                            ; preds = %47485, %47473
  %47488 = phi double [ %47474, %47473 ], [ %47486, %47485 ]
  %47489 = fptoui double %47488 to i8
  %47490 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %47489, ptr %47490, align 1, !tbaa !17
  br label %47495

47491:                                            ; preds = %47443
  %47492 = load i16, ptr %1377, align 2, !tbaa !15
  %47493 = trunc i16 %47492 to i8
  %47494 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %47493, ptr %47494, align 1, !tbaa !17
  br label %47495

47495:                                            ; preds = %47491, %47487
  br label %47496

47496:                                            ; preds = %47495, %47408
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1379) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1378) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %1377) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1376) #3
  br label %47497

47497:                                            ; preds = %47496
  br label %47498

47498:                                            ; preds = %47497
  br label %48653

47499:                                            ; preds = %45030
  br label %47500

47500:                                            ; preds = %47499
  call void @llvm.lifetime.start.p0(i64 8, ptr %1387) #3
  store double 5.000000e-01, ptr %1387, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %1388) #3
  %47501 = load ptr, ptr %10, align 8, !tbaa !5
  %47502 = load i8, ptr %47501, align 1, !tbaa !17
  store i8 %47502, ptr %1388, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %1389) #3
  store double 0.000000e+00, ptr %1389, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1390) #3
  store double 0.000000e+00, ptr %1390, align 8, !tbaa !11
  %47503 = load ptr, ptr %11, align 8, !tbaa !5
  %47504 = icmp ne ptr null, %47503
  br i1 %47504, label %47505, label %47531

47505:                                            ; preds = %47500
  %47506 = load ptr, ptr %12, align 8, !tbaa !5
  %47507 = icmp ne ptr null, %47506
  br i1 %47507, label %47508, label %47523

47508:                                            ; preds = %47505
  %47509 = load ptr, ptr %11, align 8, !tbaa !5
  %47510 = load i8, ptr %47509, align 1, !tbaa !17
  %47511 = zext i8 %47510 to i32
  %47512 = load i8, ptr %1388, align 1, !tbaa !17
  %47513 = zext i8 %47512 to i32
  %47514 = icmp sle i32 %47511, %47513
  br i1 %47514, label %47515, label %47523

47515:                                            ; preds = %47508
  %47516 = load i8, ptr %1388, align 1, !tbaa !17
  %47517 = zext i8 %47516 to i32
  %47518 = load ptr, ptr %12, align 8, !tbaa !5
  %47519 = load i8, ptr %47518, align 1, !tbaa !17
  %47520 = zext i8 %47519 to i32
  %47521 = icmp sle i32 %47517, %47520
  br i1 %47521, label %47522, label %47523

47522:                                            ; preds = %47515
  br label %47524

47523:                                            ; preds = %47515, %47508, %47505
  call void @__assert_fail(ptr noundef @.str.49, ptr noundef @.str.24, i32 noundef 503, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

47524:                                            ; preds = %47522
  %47525 = load ptr, ptr %11, align 8, !tbaa !5
  %47526 = load i8, ptr %47525, align 1, !tbaa !17
  %47527 = uitofp i8 %47526 to double
  store double %47527, ptr %1389, align 8, !tbaa !11
  %47528 = load ptr, ptr %12, align 8, !tbaa !5
  %47529 = load i8, ptr %47528, align 1, !tbaa !17
  %47530 = uitofp i8 %47529 to double
  store double %47530, ptr %1390, align 8, !tbaa !11
  br label %47531

47531:                                            ; preds = %47524, %47500
  %47532 = load i32, ptr %8, align 4, !tbaa !9
  %47533 = icmp ule i32 6, %47532
  br i1 %47533, label %47534, label %47772

47534:                                            ; preds = %47531
  %47535 = load double, ptr %1389, align 8, !tbaa !11
  %47536 = load double, ptr %1390, align 8, !tbaa !11
  %47537 = fcmp olt double %47535, %47536
  br i1 %47537, label %47538, label %47772

47538:                                            ; preds = %47534
  %47539 = load i32, ptr %8, align 4, !tbaa !9
  %47540 = icmp ule i32 15, %47539
  br i1 %47540, label %47541, label %47595

47541:                                            ; preds = %47538
  call void @llvm.lifetime.start.p0(i64 8, ptr %1391) #3
  %47542 = load double, ptr %1389, align 8, !tbaa !11
  %47543 = fcmp olt double 0.000000e+00, %47542
  br i1 %47543, label %47544, label %47546

47544:                                            ; preds = %47541
  %47545 = load double, ptr %1389, align 8, !tbaa !11
  br label %47547

47546:                                            ; preds = %47541
  br label %47547

47547:                                            ; preds = %47546, %47544
  %47548 = phi double [ %47545, %47544 ], [ 0.000000e+00, %47546 ]
  store double %47548, ptr %1391, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1392) #3
  %47549 = load double, ptr %1390, align 8, !tbaa !11
  %47550 = fcmp olt double 0.000000e+00, %47549
  br i1 %47550, label %47551, label %47553

47551:                                            ; preds = %47547
  %47552 = load double, ptr %1390, align 8, !tbaa !11
  br label %47554

47553:                                            ; preds = %47547
  br label %47554

47554:                                            ; preds = %47553, %47551
  %47555 = phi double [ %47552, %47551 ], [ 0.000000e+00, %47553 ]
  store double %47555, ptr %1392, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1393) #3
  %47556 = load double, ptr %1391, align 8, !tbaa !11
  %47557 = load double, ptr %1392, align 8, !tbaa !11
  %47558 = fcmp olt double %47556, %47557
  br i1 %47558, label %47559, label %47567

47559:                                            ; preds = %47554
  %47560 = load double, ptr %1390, align 8, !tbaa !11
  %47561 = load double, ptr %1389, align 8, !tbaa !11
  %47562 = fsub double %47560, %47561
  %47563 = load double, ptr %1392, align 8, !tbaa !11
  %47564 = load double, ptr %1391, align 8, !tbaa !11
  %47565 = fsub double %47563, %47564
  %47566 = fdiv double %47562, %47565
  br label %47568

47567:                                            ; preds = %47554
  br label %47568

47568:                                            ; preds = %47567, %47559
  %47569 = phi double [ %47566, %47559 ], [ 1.000000e+00, %47567 ]
  store double %47569, ptr %1393, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1394) #3
  %47570 = load double, ptr %1393, align 8, !tbaa !11
  %47571 = load i8, ptr %1388, align 1, !tbaa !17
  %47572 = zext i8 %47571 to i32
  %47573 = icmp slt i32 0, %47572
  br i1 %47573, label %47574, label %47577

47574:                                            ; preds = %47568
  %47575 = load i8, ptr %1388, align 1, !tbaa !17
  %47576 = zext i8 %47575 to i32
  br label %47578

47577:                                            ; preds = %47568
  br label %47578

47578:                                            ; preds = %47577, %47574
  %47579 = phi i32 [ %47576, %47574 ], [ 0, %47577 ]
  %47580 = sitofp i32 %47579 to double
  %47581 = fmul double %47570, %47580
  store double %47581, ptr %1394, align 8, !tbaa !11
  %47582 = load double, ptr %1394, align 8, !tbaa !11
  %47583 = fcmp ole double 0.000000e+00, %47582
  br i1 %47583, label %47584, label %47587

47584:                                            ; preds = %47578
  %47585 = load double, ptr %1394, align 8, !tbaa !11
  %47586 = fadd double %47585, 5.000000e-01
  br label %47590

47587:                                            ; preds = %47578
  %47588 = load double, ptr %1394, align 8, !tbaa !11
  %47589 = fsub double %47588, 5.000000e-01
  br label %47590

47590:                                            ; preds = %47587, %47584
  %47591 = phi double [ %47586, %47584 ], [ %47589, %47587 ]
  %47592 = fptoui double %47591 to i8
  store i8 %47592, ptr %1388, align 1, !tbaa !17
  %47593 = load double, ptr %1391, align 8, !tbaa !11
  store double %47593, ptr %1389, align 8, !tbaa !11
  %47594 = load double, ptr %1392, align 8, !tbaa !11
  store double %47594, ptr %1390, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1394) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1393) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1392) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1391) #3
  br label %47651

47595:                                            ; preds = %47538
  %47596 = load i32, ptr %8, align 4, !tbaa !9
  %47597 = icmp ugt i32 6, %47596
  br i1 %47597, label %47626, label %47598

47598:                                            ; preds = %47595
  %47599 = load i32, ptr %8, align 4, !tbaa !9
  %47600 = icmp ugt i32 15, %47599
  br i1 %47600, label %47601, label %47612

47601:                                            ; preds = %47598
  %47602 = load i32, ptr %9, align 4, !tbaa !9
  %47603 = icmp ugt i32 15, %47602
  br i1 %47603, label %47604, label %47609

47604:                                            ; preds = %47601
  %47605 = load i32, ptr %9, align 4, !tbaa !9
  %47606 = load i32, ptr %8, align 4, !tbaa !9
  %47607 = icmp ugt i32 %47605, %47606
  %47608 = zext i1 %47607 to i32
  br label %47610

47609:                                            ; preds = %47601
  br label %47610

47610:                                            ; preds = %47609, %47604
  %47611 = phi i32 [ %47608, %47604 ], [ 0, %47609 ]
  br label %47623

47612:                                            ; preds = %47598
  %47613 = load i32, ptr %9, align 4, !tbaa !9
  %47614 = icmp ugt i32 15, %47613
  br i1 %47614, label %47615, label %47616

47615:                                            ; preds = %47612
  br label %47621

47616:                                            ; preds = %47612
  %47617 = load i32, ptr %9, align 4, !tbaa !9
  %47618 = load i32, ptr %8, align 4, !tbaa !9
  %47619 = icmp ugt i32 %47617, %47618
  %47620 = zext i1 %47619 to i32
  br label %47621

47621:                                            ; preds = %47616, %47615
  %47622 = phi i32 [ 0, %47615 ], [ %47620, %47616 ]
  br label %47623

47623:                                            ; preds = %47621, %47610
  %47624 = phi i32 [ %47611, %47610 ], [ %47622, %47621 ]
  %47625 = icmp ne i32 %47624, 0
  br label %47626

47626:                                            ; preds = %47623, %47595
  %47627 = phi i1 [ true, %47595 ], [ %47625, %47623 ]
  %47628 = zext i1 %47627 to i32
  %47629 = icmp eq i32 0, %47628
  br i1 %47629, label %47630, label %47650

47630:                                            ; preds = %47626
  %47631 = load double, ptr %1389, align 8, !tbaa !11
  %47632 = fcmp ogt double 0.000000e+00, %47631
  br i1 %47632, label %47633, label %47650

47633:                                            ; preds = %47630
  %47634 = load double, ptr %1390, align 8, !tbaa !11
  %47635 = fcmp olt double 0.000000e+00, %47634
  br i1 %47635, label %47636, label %47650

47636:                                            ; preds = %47633
  %47637 = load double, ptr %1389, align 8, !tbaa !11
  %47638 = fneg double %47637
  %47639 = load double, ptr %1390, align 8, !tbaa !11
  %47640 = fcmp olt double %47638, %47639
  br i1 %47640, label %47641, label %47643

47641:                                            ; preds = %47636
  %47642 = load double, ptr %1390, align 8, !tbaa !11
  br label %47646

47643:                                            ; preds = %47636
  %47644 = load double, ptr %1389, align 8, !tbaa !11
  %47645 = fneg double %47644
  br label %47646

47646:                                            ; preds = %47643, %47641
  %47647 = phi double [ %47642, %47641 ], [ %47645, %47643 ]
  store double %47647, ptr %1390, align 8, !tbaa !11
  %47648 = load double, ptr %1390, align 8, !tbaa !11
  %47649 = fneg double %47648
  store double %47649, ptr %1389, align 8, !tbaa !11
  br label %47650

47650:                                            ; preds = %47646, %47633, %47630, %47626
  br label %47651

47651:                                            ; preds = %47650, %47590
  call void @llvm.lifetime.start.p0(i64 8, ptr %1395) #3
  %47652 = load double, ptr %1389, align 8, !tbaa !11
  %47653 = fcmp ole double 0.000000e+00, %47652
  %47654 = zext i1 %47653 to i64
  %47655 = select i1 %47653, double 0.000000e+00, double 0.000000e+00
  store double %47655, ptr %1395, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1396) #3
  %47656 = load double, ptr %1390, align 8, !tbaa !11
  %47657 = fcmp ole double 0.000000e+00, %47656
  %47658 = zext i1 %47657 to i64
  %47659 = select i1 %47657, double 2.550000e+02, double 0.000000e+00
  store double %47659, ptr %1396, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1397) #3
  %47660 = load i8, ptr %1388, align 1, !tbaa !17
  %47661 = uitofp i8 %47660 to double
  %47662 = load double, ptr %1389, align 8, !tbaa !11
  %47663 = fsub double %47661, %47662
  %47664 = load double, ptr %1396, align 8, !tbaa !11
  %47665 = load double, ptr %1395, align 8, !tbaa !11
  %47666 = fsub double %47664, %47665
  %47667 = fmul double %47663, %47666
  %47668 = load double, ptr %1390, align 8, !tbaa !11
  %47669 = load double, ptr %1389, align 8, !tbaa !11
  %47670 = fsub double %47668, %47669
  %47671 = fdiv double %47667, %47670
  %47672 = load double, ptr %1395, align 8, !tbaa !11
  %47673 = fadd double %47671, %47672
  store double %47673, ptr %1397, align 8, !tbaa !11
  %47674 = load double, ptr %1395, align 8, !tbaa !11
  %47675 = load double, ptr %1397, align 8, !tbaa !11
  %47676 = fcmp ole double 0.000000e+00, %47675
  br i1 %47676, label %47677, label %47680

47677:                                            ; preds = %47651
  %47678 = load double, ptr %1397, align 8, !tbaa !11
  %47679 = fadd double %47678, 5.000000e-01
  br label %47683

47680:                                            ; preds = %47651
  %47681 = load double, ptr %1397, align 8, !tbaa !11
  %47682 = fsub double %47681, 5.000000e-01
  br label %47683

47683:                                            ; preds = %47680, %47677
  %47684 = phi double [ %47679, %47677 ], [ %47682, %47680 ]
  %47685 = fcmp olt double %47674, %47684
  br i1 %47685, label %47686, label %47740

47686:                                            ; preds = %47683
  %47687 = load double, ptr %1397, align 8, !tbaa !11
  %47688 = fcmp ole double 0.000000e+00, %47687
  br i1 %47688, label %47689, label %47692

47689:                                            ; preds = %47686
  %47690 = load double, ptr %1397, align 8, !tbaa !11
  %47691 = fadd double %47690, 5.000000e-01
  br label %47695

47692:                                            ; preds = %47686
  %47693 = load double, ptr %1397, align 8, !tbaa !11
  %47694 = fsub double %47693, 5.000000e-01
  br label %47695

47695:                                            ; preds = %47692, %47689
  %47696 = phi double [ %47691, %47689 ], [ %47694, %47692 ]
  %47697 = load double, ptr %1396, align 8, !tbaa !11
  %47698 = fcmp ole double %47696, %47697
  br i1 %47698, label %47699, label %47710

47699:                                            ; preds = %47695
  %47700 = load double, ptr %1397, align 8, !tbaa !11
  %47701 = fcmp ole double 0.000000e+00, %47700
  br i1 %47701, label %47702, label %47705

47702:                                            ; preds = %47699
  %47703 = load double, ptr %1397, align 8, !tbaa !11
  %47704 = fadd double %47703, 5.000000e-01
  br label %47708

47705:                                            ; preds = %47699
  %47706 = load double, ptr %1397, align 8, !tbaa !11
  %47707 = fsub double %47706, 5.000000e-01
  br label %47708

47708:                                            ; preds = %47705, %47702
  %47709 = phi double [ %47704, %47702 ], [ %47707, %47705 ]
  br label %47738

47710:                                            ; preds = %47695
  %47711 = load double, ptr %1397, align 8, !tbaa !11
  %47712 = fcmp ole double 0.000000e+00, %47711
  br i1 %47712, label %47713, label %47716

47713:                                            ; preds = %47710
  %47714 = load double, ptr %1397, align 8, !tbaa !11
  %47715 = fadd double %47714, 5.000000e-01
  br label %47719

47716:                                            ; preds = %47710
  %47717 = load double, ptr %1397, align 8, !tbaa !11
  %47718 = fsub double %47717, 5.000000e-01
  br label %47719

47719:                                            ; preds = %47716, %47713
  %47720 = phi double [ %47715, %47713 ], [ %47718, %47716 ]
  %47721 = load double, ptr %1396, align 8, !tbaa !11
  %47722 = fcmp olt double %47720, %47721
  br i1 %47722, label %47723, label %47734

47723:                                            ; preds = %47719
  %47724 = load double, ptr %1397, align 8, !tbaa !11
  %47725 = fcmp ole double 0.000000e+00, %47724
  br i1 %47725, label %47726, label %47729

47726:                                            ; preds = %47723
  %47727 = load double, ptr %1397, align 8, !tbaa !11
  %47728 = fadd double %47727, 5.000000e-01
  br label %47732

47729:                                            ; preds = %47723
  %47730 = load double, ptr %1397, align 8, !tbaa !11
  %47731 = fsub double %47730, 5.000000e-01
  br label %47732

47732:                                            ; preds = %47729, %47726
  %47733 = phi double [ %47728, %47726 ], [ %47731, %47729 ]
  br label %47736

47734:                                            ; preds = %47719
  %47735 = load double, ptr %1396, align 8, !tbaa !11
  br label %47736

47736:                                            ; preds = %47734, %47732
  %47737 = phi double [ %47733, %47732 ], [ %47735, %47734 ]
  br label %47738

47738:                                            ; preds = %47736, %47708
  %47739 = phi double [ %47709, %47708 ], [ %47737, %47736 ]
  br label %47768

47740:                                            ; preds = %47683
  %47741 = load double, ptr %1395, align 8, !tbaa !11
  %47742 = load double, ptr %1397, align 8, !tbaa !11
  %47743 = fcmp ole double 0.000000e+00, %47742
  br i1 %47743, label %47744, label %47747

47744:                                            ; preds = %47740
  %47745 = load double, ptr %1397, align 8, !tbaa !11
  %47746 = fadd double %47745, 5.000000e-01
  br label %47750

47747:                                            ; preds = %47740
  %47748 = load double, ptr %1397, align 8, !tbaa !11
  %47749 = fsub double %47748, 5.000000e-01
  br label %47750

47750:                                            ; preds = %47747, %47744
  %47751 = phi double [ %47746, %47744 ], [ %47749, %47747 ]
  %47752 = fcmp olt double %47741, %47751
  br i1 %47752, label %47753, label %47764

47753:                                            ; preds = %47750
  %47754 = load double, ptr %1397, align 8, !tbaa !11
  %47755 = fcmp ole double 0.000000e+00, %47754
  br i1 %47755, label %47756, label %47759

47756:                                            ; preds = %47753
  %47757 = load double, ptr %1397, align 8, !tbaa !11
  %47758 = fadd double %47757, 5.000000e-01
  br label %47762

47759:                                            ; preds = %47753
  %47760 = load double, ptr %1397, align 8, !tbaa !11
  %47761 = fsub double %47760, 5.000000e-01
  br label %47762

47762:                                            ; preds = %47759, %47756
  %47763 = phi double [ %47758, %47756 ], [ %47761, %47759 ]
  br label %47766

47764:                                            ; preds = %47750
  %47765 = load double, ptr %1395, align 8, !tbaa !11
  br label %47766

47766:                                            ; preds = %47764, %47762
  %47767 = phi double [ %47763, %47762 ], [ %47765, %47764 ]
  br label %47768

47768:                                            ; preds = %47766, %47738
  %47769 = phi double [ %47739, %47738 ], [ %47767, %47766 ]
  %47770 = fptoui double %47769 to i8
  %47771 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %47770, ptr %47771, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %1397) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1396) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1395) #3
  br label %47855

47772:                                            ; preds = %47534, %47531
  %47773 = load i32, ptr %8, align 4, !tbaa !9
  %47774 = icmp ugt i32 6, %47773
  br i1 %47774, label %47803, label %47775

47775:                                            ; preds = %47772
  %47776 = load i32, ptr %8, align 4, !tbaa !9
  %47777 = icmp ugt i32 15, %47776
  br i1 %47777, label %47778, label %47789

47778:                                            ; preds = %47775
  %47779 = load i32, ptr %9, align 4, !tbaa !9
  %47780 = icmp ugt i32 15, %47779
  br i1 %47780, label %47781, label %47786

47781:                                            ; preds = %47778
  %47782 = load i32, ptr %9, align 4, !tbaa !9
  %47783 = load i32, ptr %8, align 4, !tbaa !9
  %47784 = icmp ugt i32 %47782, %47783
  %47785 = zext i1 %47784 to i32
  br label %47787

47786:                                            ; preds = %47778
  br label %47787

47787:                                            ; preds = %47786, %47781
  %47788 = phi i32 [ %47785, %47781 ], [ 0, %47786 ]
  br label %47800

47789:                                            ; preds = %47775
  %47790 = load i32, ptr %9, align 4, !tbaa !9
  %47791 = icmp ugt i32 15, %47790
  br i1 %47791, label %47792, label %47793

47792:                                            ; preds = %47789
  br label %47798

47793:                                            ; preds = %47789
  %47794 = load i32, ptr %9, align 4, !tbaa !9
  %47795 = load i32, ptr %8, align 4, !tbaa !9
  %47796 = icmp ugt i32 %47794, %47795
  %47797 = zext i1 %47796 to i32
  br label %47798

47798:                                            ; preds = %47793, %47792
  %47799 = phi i32 [ 0, %47792 ], [ %47797, %47793 ]
  br label %47800

47800:                                            ; preds = %47798, %47787
  %47801 = phi i32 [ %47788, %47787 ], [ %47799, %47798 ]
  %47802 = icmp ne i32 %47801, 0
  br label %47803

47803:                                            ; preds = %47800, %47772
  %47804 = phi i1 [ true, %47772 ], [ %47802, %47800 ]
  %47805 = zext i1 %47804 to i32
  %47806 = icmp eq i32 0, %47805
  br i1 %47806, label %47807, label %47851

47807:                                            ; preds = %47803
  %47808 = load i8, ptr %1388, align 1, !tbaa !17
  %47809 = zext i8 %47808 to i32
  %47810 = sitofp i32 %47809 to double
  %47811 = fcmp olt double 0.000000e+00, %47810
  br i1 %47811, label %47812, label %47835

47812:                                            ; preds = %47807
  %47813 = load i8, ptr %1388, align 1, !tbaa !17
  %47814 = zext i8 %47813 to i32
  %47815 = sitofp i32 %47814 to double
  %47816 = fcmp ole double %47815, 2.550000e+02
  br i1 %47816, label %47817, label %47821

47817:                                            ; preds = %47812
  %47818 = load i8, ptr %1388, align 1, !tbaa !17
  %47819 = zext i8 %47818 to i32
  %47820 = sitofp i32 %47819 to double
  br label %47833

47821:                                            ; preds = %47812
  %47822 = load i8, ptr %1388, align 1, !tbaa !17
  %47823 = zext i8 %47822 to i32
  %47824 = sitofp i32 %47823 to double
  %47825 = fcmp olt double %47824, 2.550000e+02
  br i1 %47825, label %47826, label %47830

47826:                                            ; preds = %47821
  %47827 = load i8, ptr %1388, align 1, !tbaa !17
  %47828 = zext i8 %47827 to i32
  %47829 = sitofp i32 %47828 to double
  br label %47831

47830:                                            ; preds = %47821
  br label %47831

47831:                                            ; preds = %47830, %47826
  %47832 = phi double [ %47829, %47826 ], [ 2.550000e+02, %47830 ]
  br label %47833

47833:                                            ; preds = %47831, %47817
  %47834 = phi double [ %47820, %47817 ], [ %47832, %47831 ]
  br label %47847

47835:                                            ; preds = %47807
  %47836 = load i8, ptr %1388, align 1, !tbaa !17
  %47837 = zext i8 %47836 to i32
  %47838 = sitofp i32 %47837 to double
  %47839 = fcmp olt double 0.000000e+00, %47838
  br i1 %47839, label %47840, label %47844

47840:                                            ; preds = %47835
  %47841 = load i8, ptr %1388, align 1, !tbaa !17
  %47842 = zext i8 %47841 to i32
  %47843 = sitofp i32 %47842 to double
  br label %47845

47844:                                            ; preds = %47835
  br label %47845

47845:                                            ; preds = %47844, %47840
  %47846 = phi double [ %47843, %47840 ], [ 0.000000e+00, %47844 ]
  br label %47847

47847:                                            ; preds = %47845, %47833
  %47848 = phi double [ %47834, %47833 ], [ %47846, %47845 ]
  %47849 = fptoui double %47848 to i8
  %47850 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %47849, ptr %47850, align 1, !tbaa !17
  br label %47854

47851:                                            ; preds = %47803
  %47852 = load i8, ptr %1388, align 1, !tbaa !17
  %47853 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %47852, ptr %47853, align 1, !tbaa !17
  br label %47854

47854:                                            ; preds = %47851, %47847
  br label %47855

47855:                                            ; preds = %47854, %47768
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1390) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1389) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %1388) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1387) #3
  br label %47856

47856:                                            ; preds = %47855
  br label %47857

47857:                                            ; preds = %47856
  br label %48653

47858:                                            ; preds = %45030
  br label %47859

47859:                                            ; preds = %47858
  call void @llvm.lifetime.start.p0(i64 8, ptr %1398) #3
  store double 5.000000e-01, ptr %1398, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1399) #3
  %47860 = load ptr, ptr %10, align 8, !tbaa !5
  %47861 = load double, ptr %47860, align 8, !tbaa !11
  store double %47861, ptr %1399, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1400) #3
  store double 0.000000e+00, ptr %1400, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1401) #3
  store double 0.000000e+00, ptr %1401, align 8, !tbaa !11
  %47862 = load ptr, ptr %11, align 8, !tbaa !5
  %47863 = icmp ne ptr null, %47862
  br i1 %47863, label %47864, label %47888

47864:                                            ; preds = %47859
  %47865 = load double, ptr %1399, align 8, !tbaa !11
  %47866 = load double, ptr %1399, align 8, !tbaa !11
  %47867 = fcmp oeq double %47865, %47866
  br i1 %47867, label %47868, label %47888

47868:                                            ; preds = %47864
  %47869 = load ptr, ptr %12, align 8, !tbaa !5
  %47870 = icmp ne ptr null, %47869
  br i1 %47870, label %47871, label %47882

47871:                                            ; preds = %47868
  %47872 = load ptr, ptr %11, align 8, !tbaa !5
  %47873 = load double, ptr %47872, align 8, !tbaa !11
  %47874 = load double, ptr %1399, align 8, !tbaa !11
  %47875 = fcmp ole double %47873, %47874
  br i1 %47875, label %47876, label %47882

47876:                                            ; preds = %47871
  %47877 = load double, ptr %1399, align 8, !tbaa !11
  %47878 = load ptr, ptr %12, align 8, !tbaa !5
  %47879 = load double, ptr %47878, align 8, !tbaa !11
  %47880 = fcmp ole double %47877, %47879
  br i1 %47880, label %47881, label %47882

47881:                                            ; preds = %47876
  br label %47883

47882:                                            ; preds = %47876, %47871, %47868
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.24, i32 noundef 503, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

47883:                                            ; preds = %47881
  %47884 = load ptr, ptr %11, align 8, !tbaa !5
  %47885 = load double, ptr %47884, align 8, !tbaa !11
  store double %47885, ptr %1400, align 8, !tbaa !11
  %47886 = load ptr, ptr %12, align 8, !tbaa !5
  %47887 = load double, ptr %47886, align 8, !tbaa !11
  store double %47887, ptr %1401, align 8, !tbaa !11
  br label %47888

47888:                                            ; preds = %47883, %47864, %47859
  %47889 = load i32, ptr %8, align 4, !tbaa !9
  %47890 = icmp ule i32 6, %47889
  br i1 %47890, label %47891, label %48114

47891:                                            ; preds = %47888
  %47892 = load double, ptr %1400, align 8, !tbaa !11
  %47893 = load double, ptr %1401, align 8, !tbaa !11
  %47894 = fcmp olt double %47892, %47893
  br i1 %47894, label %47895, label %48114

47895:                                            ; preds = %47891
  %47896 = load i32, ptr %8, align 4, !tbaa !9
  %47897 = icmp ule i32 15, %47896
  br i1 %47897, label %47898, label %47938

47898:                                            ; preds = %47895
  call void @llvm.lifetime.start.p0(i64 8, ptr %1402) #3
  %47899 = load double, ptr %1400, align 8, !tbaa !11
  %47900 = fcmp olt double 0.000000e+00, %47899
  br i1 %47900, label %47901, label %47903

47901:                                            ; preds = %47898
  %47902 = load double, ptr %1400, align 8, !tbaa !11
  br label %47904

47903:                                            ; preds = %47898
  br label %47904

47904:                                            ; preds = %47903, %47901
  %47905 = phi double [ %47902, %47901 ], [ 0.000000e+00, %47903 ]
  store double %47905, ptr %1402, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1403) #3
  %47906 = load double, ptr %1401, align 8, !tbaa !11
  %47907 = fcmp olt double 0.000000e+00, %47906
  br i1 %47907, label %47908, label %47910

47908:                                            ; preds = %47904
  %47909 = load double, ptr %1401, align 8, !tbaa !11
  br label %47911

47910:                                            ; preds = %47904
  br label %47911

47911:                                            ; preds = %47910, %47908
  %47912 = phi double [ %47909, %47908 ], [ 0.000000e+00, %47910 ]
  store double %47912, ptr %1403, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1404) #3
  %47913 = load double, ptr %1402, align 8, !tbaa !11
  %47914 = load double, ptr %1403, align 8, !tbaa !11
  %47915 = fcmp olt double %47913, %47914
  br i1 %47915, label %47916, label %47924

47916:                                            ; preds = %47911
  %47917 = load double, ptr %1401, align 8, !tbaa !11
  %47918 = load double, ptr %1400, align 8, !tbaa !11
  %47919 = fsub double %47917, %47918
  %47920 = load double, ptr %1403, align 8, !tbaa !11
  %47921 = load double, ptr %1402, align 8, !tbaa !11
  %47922 = fsub double %47920, %47921
  %47923 = fdiv double %47919, %47922
  br label %47925

47924:                                            ; preds = %47911
  br label %47925

47925:                                            ; preds = %47924, %47916
  %47926 = phi double [ %47923, %47916 ], [ 1.000000e+00, %47924 ]
  store double %47926, ptr %1404, align 8, !tbaa !11
  %47927 = load double, ptr %1404, align 8, !tbaa !11
  %47928 = load double, ptr %1399, align 8, !tbaa !11
  %47929 = fcmp olt double 0.000000e+00, %47928
  br i1 %47929, label %47930, label %47932

47930:                                            ; preds = %47925
  %47931 = load double, ptr %1399, align 8, !tbaa !11
  br label %47933

47932:                                            ; preds = %47925
  br label %47933

47933:                                            ; preds = %47932, %47930
  %47934 = phi double [ %47931, %47930 ], [ 0.000000e+00, %47932 ]
  %47935 = fmul double %47927, %47934
  store double %47935, ptr %1399, align 8, !tbaa !11
  %47936 = load double, ptr %1402, align 8, !tbaa !11
  store double %47936, ptr %1400, align 8, !tbaa !11
  %47937 = load double, ptr %1403, align 8, !tbaa !11
  store double %47937, ptr %1401, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1404) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1403) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1402) #3
  br label %47994

47938:                                            ; preds = %47895
  %47939 = load i32, ptr %8, align 4, !tbaa !9
  %47940 = icmp ugt i32 6, %47939
  br i1 %47940, label %47969, label %47941

47941:                                            ; preds = %47938
  %47942 = load i32, ptr %8, align 4, !tbaa !9
  %47943 = icmp ugt i32 15, %47942
  br i1 %47943, label %47944, label %47955

47944:                                            ; preds = %47941
  %47945 = load i32, ptr %9, align 4, !tbaa !9
  %47946 = icmp ugt i32 15, %47945
  br i1 %47946, label %47947, label %47952

47947:                                            ; preds = %47944
  %47948 = load i32, ptr %9, align 4, !tbaa !9
  %47949 = load i32, ptr %8, align 4, !tbaa !9
  %47950 = icmp ugt i32 %47948, %47949
  %47951 = zext i1 %47950 to i32
  br label %47953

47952:                                            ; preds = %47944
  br label %47953

47953:                                            ; preds = %47952, %47947
  %47954 = phi i32 [ %47951, %47947 ], [ 0, %47952 ]
  br label %47966

47955:                                            ; preds = %47941
  %47956 = load i32, ptr %9, align 4, !tbaa !9
  %47957 = icmp ugt i32 15, %47956
  br i1 %47957, label %47958, label %47959

47958:                                            ; preds = %47955
  br label %47964

47959:                                            ; preds = %47955
  %47960 = load i32, ptr %9, align 4, !tbaa !9
  %47961 = load i32, ptr %8, align 4, !tbaa !9
  %47962 = icmp ugt i32 %47960, %47961
  %47963 = zext i1 %47962 to i32
  br label %47964

47964:                                            ; preds = %47959, %47958
  %47965 = phi i32 [ 0, %47958 ], [ %47963, %47959 ]
  br label %47966

47966:                                            ; preds = %47964, %47953
  %47967 = phi i32 [ %47954, %47953 ], [ %47965, %47964 ]
  %47968 = icmp ne i32 %47967, 0
  br label %47969

47969:                                            ; preds = %47966, %47938
  %47970 = phi i1 [ true, %47938 ], [ %47968, %47966 ]
  %47971 = zext i1 %47970 to i32
  %47972 = icmp eq i32 0, %47971
  br i1 %47972, label %47973, label %47993

47973:                                            ; preds = %47969
  %47974 = load double, ptr %1400, align 8, !tbaa !11
  %47975 = fcmp ogt double 0.000000e+00, %47974
  br i1 %47975, label %47976, label %47993

47976:                                            ; preds = %47973
  %47977 = load double, ptr %1401, align 8, !tbaa !11
  %47978 = fcmp olt double 0.000000e+00, %47977
  br i1 %47978, label %47979, label %47993

47979:                                            ; preds = %47976
  %47980 = load double, ptr %1400, align 8, !tbaa !11
  %47981 = fneg double %47980
  %47982 = load double, ptr %1401, align 8, !tbaa !11
  %47983 = fcmp olt double %47981, %47982
  br i1 %47983, label %47984, label %47986

47984:                                            ; preds = %47979
  %47985 = load double, ptr %1401, align 8, !tbaa !11
  br label %47989

47986:                                            ; preds = %47979
  %47987 = load double, ptr %1400, align 8, !tbaa !11
  %47988 = fneg double %47987
  br label %47989

47989:                                            ; preds = %47986, %47984
  %47990 = phi double [ %47985, %47984 ], [ %47988, %47986 ]
  store double %47990, ptr %1401, align 8, !tbaa !11
  %47991 = load double, ptr %1401, align 8, !tbaa !11
  %47992 = fneg double %47991
  store double %47992, ptr %1400, align 8, !tbaa !11
  br label %47993

47993:                                            ; preds = %47989, %47976, %47973, %47969
  br label %47994

47994:                                            ; preds = %47993, %47933
  call void @llvm.lifetime.start.p0(i64 8, ptr %1405) #3
  %47995 = load double, ptr %1400, align 8, !tbaa !11
  %47996 = fcmp ole double 0.000000e+00, %47995
  %47997 = zext i1 %47996 to i64
  %47998 = select i1 %47996, double 0.000000e+00, double 0.000000e+00
  store double %47998, ptr %1405, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1406) #3
  %47999 = load double, ptr %1401, align 8, !tbaa !11
  %48000 = fcmp ole double 0.000000e+00, %47999
  %48001 = zext i1 %48000 to i64
  %48002 = select i1 %48000, double 2.550000e+02, double 0.000000e+00
  store double %48002, ptr %1406, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1407) #3
  %48003 = load double, ptr %1399, align 8, !tbaa !11
  %48004 = load double, ptr %1400, align 8, !tbaa !11
  %48005 = fsub double %48003, %48004
  %48006 = load double, ptr %1406, align 8, !tbaa !11
  %48007 = load double, ptr %1405, align 8, !tbaa !11
  %48008 = fsub double %48006, %48007
  %48009 = fmul double %48005, %48008
  %48010 = load double, ptr %1401, align 8, !tbaa !11
  %48011 = load double, ptr %1400, align 8, !tbaa !11
  %48012 = fsub double %48010, %48011
  %48013 = fdiv double %48009, %48012
  %48014 = load double, ptr %1405, align 8, !tbaa !11
  %48015 = fadd double %48013, %48014
  store double %48015, ptr %1407, align 8, !tbaa !11
  %48016 = load double, ptr %1405, align 8, !tbaa !11
  %48017 = load double, ptr %1407, align 8, !tbaa !11
  %48018 = fcmp ole double 0.000000e+00, %48017
  br i1 %48018, label %48019, label %48022

48019:                                            ; preds = %47994
  %48020 = load double, ptr %1407, align 8, !tbaa !11
  %48021 = fadd double %48020, 5.000000e-01
  br label %48025

48022:                                            ; preds = %47994
  %48023 = load double, ptr %1407, align 8, !tbaa !11
  %48024 = fsub double %48023, 5.000000e-01
  br label %48025

48025:                                            ; preds = %48022, %48019
  %48026 = phi double [ %48021, %48019 ], [ %48024, %48022 ]
  %48027 = fcmp olt double %48016, %48026
  br i1 %48027, label %48028, label %48082

48028:                                            ; preds = %48025
  %48029 = load double, ptr %1407, align 8, !tbaa !11
  %48030 = fcmp ole double 0.000000e+00, %48029
  br i1 %48030, label %48031, label %48034

48031:                                            ; preds = %48028
  %48032 = load double, ptr %1407, align 8, !tbaa !11
  %48033 = fadd double %48032, 5.000000e-01
  br label %48037

48034:                                            ; preds = %48028
  %48035 = load double, ptr %1407, align 8, !tbaa !11
  %48036 = fsub double %48035, 5.000000e-01
  br label %48037

48037:                                            ; preds = %48034, %48031
  %48038 = phi double [ %48033, %48031 ], [ %48036, %48034 ]
  %48039 = load double, ptr %1406, align 8, !tbaa !11
  %48040 = fcmp ole double %48038, %48039
  br i1 %48040, label %48041, label %48052

48041:                                            ; preds = %48037
  %48042 = load double, ptr %1407, align 8, !tbaa !11
  %48043 = fcmp ole double 0.000000e+00, %48042
  br i1 %48043, label %48044, label %48047

48044:                                            ; preds = %48041
  %48045 = load double, ptr %1407, align 8, !tbaa !11
  %48046 = fadd double %48045, 5.000000e-01
  br label %48050

48047:                                            ; preds = %48041
  %48048 = load double, ptr %1407, align 8, !tbaa !11
  %48049 = fsub double %48048, 5.000000e-01
  br label %48050

48050:                                            ; preds = %48047, %48044
  %48051 = phi double [ %48046, %48044 ], [ %48049, %48047 ]
  br label %48080

48052:                                            ; preds = %48037
  %48053 = load double, ptr %1407, align 8, !tbaa !11
  %48054 = fcmp ole double 0.000000e+00, %48053
  br i1 %48054, label %48055, label %48058

48055:                                            ; preds = %48052
  %48056 = load double, ptr %1407, align 8, !tbaa !11
  %48057 = fadd double %48056, 5.000000e-01
  br label %48061

48058:                                            ; preds = %48052
  %48059 = load double, ptr %1407, align 8, !tbaa !11
  %48060 = fsub double %48059, 5.000000e-01
  br label %48061

48061:                                            ; preds = %48058, %48055
  %48062 = phi double [ %48057, %48055 ], [ %48060, %48058 ]
  %48063 = load double, ptr %1406, align 8, !tbaa !11
  %48064 = fcmp olt double %48062, %48063
  br i1 %48064, label %48065, label %48076

48065:                                            ; preds = %48061
  %48066 = load double, ptr %1407, align 8, !tbaa !11
  %48067 = fcmp ole double 0.000000e+00, %48066
  br i1 %48067, label %48068, label %48071

48068:                                            ; preds = %48065
  %48069 = load double, ptr %1407, align 8, !tbaa !11
  %48070 = fadd double %48069, 5.000000e-01
  br label %48074

48071:                                            ; preds = %48065
  %48072 = load double, ptr %1407, align 8, !tbaa !11
  %48073 = fsub double %48072, 5.000000e-01
  br label %48074

48074:                                            ; preds = %48071, %48068
  %48075 = phi double [ %48070, %48068 ], [ %48073, %48071 ]
  br label %48078

48076:                                            ; preds = %48061
  %48077 = load double, ptr %1406, align 8, !tbaa !11
  br label %48078

48078:                                            ; preds = %48076, %48074
  %48079 = phi double [ %48075, %48074 ], [ %48077, %48076 ]
  br label %48080

48080:                                            ; preds = %48078, %48050
  %48081 = phi double [ %48051, %48050 ], [ %48079, %48078 ]
  br label %48110

48082:                                            ; preds = %48025
  %48083 = load double, ptr %1405, align 8, !tbaa !11
  %48084 = load double, ptr %1407, align 8, !tbaa !11
  %48085 = fcmp ole double 0.000000e+00, %48084
  br i1 %48085, label %48086, label %48089

48086:                                            ; preds = %48082
  %48087 = load double, ptr %1407, align 8, !tbaa !11
  %48088 = fadd double %48087, 5.000000e-01
  br label %48092

48089:                                            ; preds = %48082
  %48090 = load double, ptr %1407, align 8, !tbaa !11
  %48091 = fsub double %48090, 5.000000e-01
  br label %48092

48092:                                            ; preds = %48089, %48086
  %48093 = phi double [ %48088, %48086 ], [ %48091, %48089 ]
  %48094 = fcmp olt double %48083, %48093
  br i1 %48094, label %48095, label %48106

48095:                                            ; preds = %48092
  %48096 = load double, ptr %1407, align 8, !tbaa !11
  %48097 = fcmp ole double 0.000000e+00, %48096
  br i1 %48097, label %48098, label %48101

48098:                                            ; preds = %48095
  %48099 = load double, ptr %1407, align 8, !tbaa !11
  %48100 = fadd double %48099, 5.000000e-01
  br label %48104

48101:                                            ; preds = %48095
  %48102 = load double, ptr %1407, align 8, !tbaa !11
  %48103 = fsub double %48102, 5.000000e-01
  br label %48104

48104:                                            ; preds = %48101, %48098
  %48105 = phi double [ %48100, %48098 ], [ %48103, %48101 ]
  br label %48108

48106:                                            ; preds = %48092
  %48107 = load double, ptr %1405, align 8, !tbaa !11
  br label %48108

48108:                                            ; preds = %48106, %48104
  %48109 = phi double [ %48105, %48104 ], [ %48107, %48106 ]
  br label %48110

48110:                                            ; preds = %48108, %48080
  %48111 = phi double [ %48081, %48080 ], [ %48109, %48108 ]
  %48112 = fptoui double %48111 to i8
  %48113 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %48112, ptr %48113, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %1407) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1406) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1405) #3
  br label %48240

48114:                                            ; preds = %47891, %47888
  %48115 = load i32, ptr %8, align 4, !tbaa !9
  %48116 = icmp ugt i32 6, %48115
  br i1 %48116, label %48145, label %48117

48117:                                            ; preds = %48114
  %48118 = load i32, ptr %8, align 4, !tbaa !9
  %48119 = icmp ugt i32 15, %48118
  br i1 %48119, label %48120, label %48131

48120:                                            ; preds = %48117
  %48121 = load i32, ptr %9, align 4, !tbaa !9
  %48122 = icmp ugt i32 15, %48121
  br i1 %48122, label %48123, label %48128

48123:                                            ; preds = %48120
  %48124 = load i32, ptr %9, align 4, !tbaa !9
  %48125 = load i32, ptr %8, align 4, !tbaa !9
  %48126 = icmp ugt i32 %48124, %48125
  %48127 = zext i1 %48126 to i32
  br label %48129

48128:                                            ; preds = %48120
  br label %48129

48129:                                            ; preds = %48128, %48123
  %48130 = phi i32 [ %48127, %48123 ], [ 0, %48128 ]
  br label %48142

48131:                                            ; preds = %48117
  %48132 = load i32, ptr %9, align 4, !tbaa !9
  %48133 = icmp ugt i32 15, %48132
  br i1 %48133, label %48134, label %48135

48134:                                            ; preds = %48131
  br label %48140

48135:                                            ; preds = %48131
  %48136 = load i32, ptr %9, align 4, !tbaa !9
  %48137 = load i32, ptr %8, align 4, !tbaa !9
  %48138 = icmp ugt i32 %48136, %48137
  %48139 = zext i1 %48138 to i32
  br label %48140

48140:                                            ; preds = %48135, %48134
  %48141 = phi i32 [ 0, %48134 ], [ %48139, %48135 ]
  br label %48142

48142:                                            ; preds = %48140, %48129
  %48143 = phi i32 [ %48130, %48129 ], [ %48141, %48140 ]
  %48144 = icmp ne i32 %48143, 0
  br label %48145

48145:                                            ; preds = %48142, %48114
  %48146 = phi i1 [ true, %48114 ], [ %48144, %48142 ]
  %48147 = zext i1 %48146 to i32
  %48148 = icmp eq i32 0, %48147
  br i1 %48148, label %48149, label %48226

48149:                                            ; preds = %48145
  %48150 = load double, ptr %1399, align 8, !tbaa !11
  %48151 = fcmp ole double 0.000000e+00, %48150
  br i1 %48151, label %48152, label %48187

48152:                                            ; preds = %48149
  %48153 = load double, ptr %1399, align 8, !tbaa !11
  %48154 = fadd double %48153, 5.000000e-01
  %48155 = fcmp olt double 0.000000e+00, %48154
  br i1 %48155, label %48156, label %48175

48156:                                            ; preds = %48152
  %48157 = load double, ptr %1399, align 8, !tbaa !11
  %48158 = fadd double %48157, 5.000000e-01
  %48159 = fcmp ole double %48158, 2.550000e+02
  br i1 %48159, label %48160, label %48163

48160:                                            ; preds = %48156
  %48161 = load double, ptr %1399, align 8, !tbaa !11
  %48162 = fadd double %48161, 5.000000e-01
  br label %48173

48163:                                            ; preds = %48156
  %48164 = load double, ptr %1399, align 8, !tbaa !11
  %48165 = fadd double %48164, 5.000000e-01
  %48166 = fcmp olt double %48165, 2.550000e+02
  br i1 %48166, label %48167, label %48170

48167:                                            ; preds = %48163
  %48168 = load double, ptr %1399, align 8, !tbaa !11
  %48169 = fadd double %48168, 5.000000e-01
  br label %48171

48170:                                            ; preds = %48163
  br label %48171

48171:                                            ; preds = %48170, %48167
  %48172 = phi double [ %48169, %48167 ], [ 2.550000e+02, %48170 ]
  br label %48173

48173:                                            ; preds = %48171, %48160
  %48174 = phi double [ %48162, %48160 ], [ %48172, %48171 ]
  br label %48185

48175:                                            ; preds = %48152
  %48176 = load double, ptr %1399, align 8, !tbaa !11
  %48177 = fadd double %48176, 5.000000e-01
  %48178 = fcmp olt double 0.000000e+00, %48177
  br i1 %48178, label %48179, label %48182

48179:                                            ; preds = %48175
  %48180 = load double, ptr %1399, align 8, !tbaa !11
  %48181 = fadd double %48180, 5.000000e-01
  br label %48183

48182:                                            ; preds = %48175
  br label %48183

48183:                                            ; preds = %48182, %48179
  %48184 = phi double [ %48181, %48179 ], [ 0.000000e+00, %48182 ]
  br label %48185

48185:                                            ; preds = %48183, %48173
  %48186 = phi double [ %48174, %48173 ], [ %48184, %48183 ]
  br label %48222

48187:                                            ; preds = %48149
  %48188 = load double, ptr %1399, align 8, !tbaa !11
  %48189 = fsub double %48188, 5.000000e-01
  %48190 = fcmp olt double 0.000000e+00, %48189
  br i1 %48190, label %48191, label %48210

48191:                                            ; preds = %48187
  %48192 = load double, ptr %1399, align 8, !tbaa !11
  %48193 = fsub double %48192, 5.000000e-01
  %48194 = fcmp ole double %48193, 2.550000e+02
  br i1 %48194, label %48195, label %48198

48195:                                            ; preds = %48191
  %48196 = load double, ptr %1399, align 8, !tbaa !11
  %48197 = fsub double %48196, 5.000000e-01
  br label %48208

48198:                                            ; preds = %48191
  %48199 = load double, ptr %1399, align 8, !tbaa !11
  %48200 = fsub double %48199, 5.000000e-01
  %48201 = fcmp olt double %48200, 2.550000e+02
  br i1 %48201, label %48202, label %48205

48202:                                            ; preds = %48198
  %48203 = load double, ptr %1399, align 8, !tbaa !11
  %48204 = fsub double %48203, 5.000000e-01
  br label %48206

48205:                                            ; preds = %48198
  br label %48206

48206:                                            ; preds = %48205, %48202
  %48207 = phi double [ %48204, %48202 ], [ 2.550000e+02, %48205 ]
  br label %48208

48208:                                            ; preds = %48206, %48195
  %48209 = phi double [ %48197, %48195 ], [ %48207, %48206 ]
  br label %48220

48210:                                            ; preds = %48187
  %48211 = load double, ptr %1399, align 8, !tbaa !11
  %48212 = fsub double %48211, 5.000000e-01
  %48213 = fcmp olt double 0.000000e+00, %48212
  br i1 %48213, label %48214, label %48217

48214:                                            ; preds = %48210
  %48215 = load double, ptr %1399, align 8, !tbaa !11
  %48216 = fsub double %48215, 5.000000e-01
  br label %48218

48217:                                            ; preds = %48210
  br label %48218

48218:                                            ; preds = %48217, %48214
  %48219 = phi double [ %48216, %48214 ], [ 0.000000e+00, %48217 ]
  br label %48220

48220:                                            ; preds = %48218, %48208
  %48221 = phi double [ %48209, %48208 ], [ %48219, %48218 ]
  br label %48222

48222:                                            ; preds = %48220, %48185
  %48223 = phi double [ %48186, %48185 ], [ %48221, %48220 ]
  %48224 = fptoui double %48223 to i8
  %48225 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %48224, ptr %48225, align 1, !tbaa !17
  br label %48239

48226:                                            ; preds = %48145
  %48227 = load double, ptr %1399, align 8, !tbaa !11
  %48228 = fcmp ole double 0.000000e+00, %48227
  br i1 %48228, label %48229, label %48232

48229:                                            ; preds = %48226
  %48230 = load double, ptr %1399, align 8, !tbaa !11
  %48231 = fadd double %48230, 5.000000e-01
  br label %48235

48232:                                            ; preds = %48226
  %48233 = load double, ptr %1399, align 8, !tbaa !11
  %48234 = fsub double %48233, 5.000000e-01
  br label %48235

48235:                                            ; preds = %48232, %48229
  %48236 = phi double [ %48231, %48229 ], [ %48234, %48232 ]
  %48237 = fptoui double %48236 to i8
  %48238 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %48237, ptr %48238, align 1, !tbaa !17
  br label %48239

48239:                                            ; preds = %48235, %48222
  br label %48240

48240:                                            ; preds = %48239, %48110
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1401) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1400) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1399) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1398) #3
  br label %48241

48241:                                            ; preds = %48240
  br label %48242

48242:                                            ; preds = %48241
  br label %48653

48243:                                            ; preds = %45030
  br label %48244

48244:                                            ; preds = %48243
  call void @llvm.lifetime.start.p0(i64 8, ptr %1408) #3
  store double 5.000000e-01, ptr %1408, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %1409) #3
  %48245 = load ptr, ptr %10, align 8, !tbaa !5
  %48246 = load float, ptr %48245, align 4, !tbaa !18
  store float %48246, ptr %1409, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %1410) #3
  store double 0.000000e+00, ptr %1410, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1411) #3
  store double 0.000000e+00, ptr %1411, align 8, !tbaa !11
  %48247 = load ptr, ptr %11, align 8, !tbaa !5
  %48248 = icmp ne ptr null, %48247
  br i1 %48248, label %48249, label %48275

48249:                                            ; preds = %48244
  %48250 = load float, ptr %1409, align 4, !tbaa !18
  %48251 = load float, ptr %1409, align 4, !tbaa !18
  %48252 = fcmp oeq float %48250, %48251
  br i1 %48252, label %48253, label %48275

48253:                                            ; preds = %48249
  %48254 = load ptr, ptr %12, align 8, !tbaa !5
  %48255 = icmp ne ptr null, %48254
  br i1 %48255, label %48256, label %48267

48256:                                            ; preds = %48253
  %48257 = load ptr, ptr %11, align 8, !tbaa !5
  %48258 = load float, ptr %48257, align 4, !tbaa !18
  %48259 = load float, ptr %1409, align 4, !tbaa !18
  %48260 = fcmp ole float %48258, %48259
  br i1 %48260, label %48261, label %48267

48261:                                            ; preds = %48256
  %48262 = load float, ptr %1409, align 4, !tbaa !18
  %48263 = load ptr, ptr %12, align 8, !tbaa !5
  %48264 = load float, ptr %48263, align 4, !tbaa !18
  %48265 = fcmp ole float %48262, %48264
  br i1 %48265, label %48266, label %48267

48266:                                            ; preds = %48261
  br label %48268

48267:                                            ; preds = %48261, %48256, %48253
  call void @__assert_fail(ptr noundef @.str.51, ptr noundef @.str.24, i32 noundef 503, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

48268:                                            ; preds = %48266
  %48269 = load ptr, ptr %11, align 8, !tbaa !5
  %48270 = load float, ptr %48269, align 4, !tbaa !18
  %48271 = fpext float %48270 to double
  store double %48271, ptr %1410, align 8, !tbaa !11
  %48272 = load ptr, ptr %12, align 8, !tbaa !5
  %48273 = load float, ptr %48272, align 4, !tbaa !18
  %48274 = fpext float %48273 to double
  store double %48274, ptr %1411, align 8, !tbaa !11
  br label %48275

48275:                                            ; preds = %48268, %48249, %48244
  %48276 = load i32, ptr %8, align 4, !tbaa !9
  %48277 = icmp ule i32 6, %48276
  br i1 %48277, label %48278, label %48504

48278:                                            ; preds = %48275
  %48279 = load double, ptr %1410, align 8, !tbaa !11
  %48280 = load double, ptr %1411, align 8, !tbaa !11
  %48281 = fcmp olt double %48279, %48280
  br i1 %48281, label %48282, label %48504

48282:                                            ; preds = %48278
  %48283 = load i32, ptr %8, align 4, !tbaa !9
  %48284 = icmp ule i32 15, %48283
  br i1 %48284, label %48285, label %48327

48285:                                            ; preds = %48282
  call void @llvm.lifetime.start.p0(i64 8, ptr %1412) #3
  %48286 = load double, ptr %1410, align 8, !tbaa !11
  %48287 = fcmp olt double 0.000000e+00, %48286
  br i1 %48287, label %48288, label %48290

48288:                                            ; preds = %48285
  %48289 = load double, ptr %1410, align 8, !tbaa !11
  br label %48291

48290:                                            ; preds = %48285
  br label %48291

48291:                                            ; preds = %48290, %48288
  %48292 = phi double [ %48289, %48288 ], [ 0.000000e+00, %48290 ]
  store double %48292, ptr %1412, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1413) #3
  %48293 = load double, ptr %1411, align 8, !tbaa !11
  %48294 = fcmp olt double 0.000000e+00, %48293
  br i1 %48294, label %48295, label %48297

48295:                                            ; preds = %48291
  %48296 = load double, ptr %1411, align 8, !tbaa !11
  br label %48298

48297:                                            ; preds = %48291
  br label %48298

48298:                                            ; preds = %48297, %48295
  %48299 = phi double [ %48296, %48295 ], [ 0.000000e+00, %48297 ]
  store double %48299, ptr %1413, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1414) #3
  %48300 = load double, ptr %1412, align 8, !tbaa !11
  %48301 = load double, ptr %1413, align 8, !tbaa !11
  %48302 = fcmp olt double %48300, %48301
  br i1 %48302, label %48303, label %48311

48303:                                            ; preds = %48298
  %48304 = load double, ptr %1411, align 8, !tbaa !11
  %48305 = load double, ptr %1410, align 8, !tbaa !11
  %48306 = fsub double %48304, %48305
  %48307 = load double, ptr %1413, align 8, !tbaa !11
  %48308 = load double, ptr %1412, align 8, !tbaa !11
  %48309 = fsub double %48307, %48308
  %48310 = fdiv double %48306, %48309
  br label %48312

48311:                                            ; preds = %48298
  br label %48312

48312:                                            ; preds = %48311, %48303
  %48313 = phi double [ %48310, %48303 ], [ 1.000000e+00, %48311 ]
  store double %48313, ptr %1414, align 8, !tbaa !11
  %48314 = load double, ptr %1414, align 8, !tbaa !11
  %48315 = load float, ptr %1409, align 4, !tbaa !18
  %48316 = fcmp olt float 0.000000e+00, %48315
  br i1 %48316, label %48317, label %48319

48317:                                            ; preds = %48312
  %48318 = load float, ptr %1409, align 4, !tbaa !18
  br label %48320

48319:                                            ; preds = %48312
  br label %48320

48320:                                            ; preds = %48319, %48317
  %48321 = phi float [ %48318, %48317 ], [ 0.000000e+00, %48319 ]
  %48322 = fpext float %48321 to double
  %48323 = fmul double %48314, %48322
  %48324 = fptrunc double %48323 to float
  store float %48324, ptr %1409, align 4, !tbaa !18
  %48325 = load double, ptr %1412, align 8, !tbaa !11
  store double %48325, ptr %1410, align 8, !tbaa !11
  %48326 = load double, ptr %1413, align 8, !tbaa !11
  store double %48326, ptr %1411, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1414) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1413) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1412) #3
  br label %48383

48327:                                            ; preds = %48282
  %48328 = load i32, ptr %8, align 4, !tbaa !9
  %48329 = icmp ugt i32 6, %48328
  br i1 %48329, label %48358, label %48330

48330:                                            ; preds = %48327
  %48331 = load i32, ptr %8, align 4, !tbaa !9
  %48332 = icmp ugt i32 15, %48331
  br i1 %48332, label %48333, label %48344

48333:                                            ; preds = %48330
  %48334 = load i32, ptr %9, align 4, !tbaa !9
  %48335 = icmp ugt i32 15, %48334
  br i1 %48335, label %48336, label %48341

48336:                                            ; preds = %48333
  %48337 = load i32, ptr %9, align 4, !tbaa !9
  %48338 = load i32, ptr %8, align 4, !tbaa !9
  %48339 = icmp ugt i32 %48337, %48338
  %48340 = zext i1 %48339 to i32
  br label %48342

48341:                                            ; preds = %48333
  br label %48342

48342:                                            ; preds = %48341, %48336
  %48343 = phi i32 [ %48340, %48336 ], [ 0, %48341 ]
  br label %48355

48344:                                            ; preds = %48330
  %48345 = load i32, ptr %9, align 4, !tbaa !9
  %48346 = icmp ugt i32 15, %48345
  br i1 %48346, label %48347, label %48348

48347:                                            ; preds = %48344
  br label %48353

48348:                                            ; preds = %48344
  %48349 = load i32, ptr %9, align 4, !tbaa !9
  %48350 = load i32, ptr %8, align 4, !tbaa !9
  %48351 = icmp ugt i32 %48349, %48350
  %48352 = zext i1 %48351 to i32
  br label %48353

48353:                                            ; preds = %48348, %48347
  %48354 = phi i32 [ 0, %48347 ], [ %48352, %48348 ]
  br label %48355

48355:                                            ; preds = %48353, %48342
  %48356 = phi i32 [ %48343, %48342 ], [ %48354, %48353 ]
  %48357 = icmp ne i32 %48356, 0
  br label %48358

48358:                                            ; preds = %48355, %48327
  %48359 = phi i1 [ true, %48327 ], [ %48357, %48355 ]
  %48360 = zext i1 %48359 to i32
  %48361 = icmp eq i32 0, %48360
  br i1 %48361, label %48362, label %48382

48362:                                            ; preds = %48358
  %48363 = load double, ptr %1410, align 8, !tbaa !11
  %48364 = fcmp ogt double 0.000000e+00, %48363
  br i1 %48364, label %48365, label %48382

48365:                                            ; preds = %48362
  %48366 = load double, ptr %1411, align 8, !tbaa !11
  %48367 = fcmp olt double 0.000000e+00, %48366
  br i1 %48367, label %48368, label %48382

48368:                                            ; preds = %48365
  %48369 = load double, ptr %1410, align 8, !tbaa !11
  %48370 = fneg double %48369
  %48371 = load double, ptr %1411, align 8, !tbaa !11
  %48372 = fcmp olt double %48370, %48371
  br i1 %48372, label %48373, label %48375

48373:                                            ; preds = %48368
  %48374 = load double, ptr %1411, align 8, !tbaa !11
  br label %48378

48375:                                            ; preds = %48368
  %48376 = load double, ptr %1410, align 8, !tbaa !11
  %48377 = fneg double %48376
  br label %48378

48378:                                            ; preds = %48375, %48373
  %48379 = phi double [ %48374, %48373 ], [ %48377, %48375 ]
  store double %48379, ptr %1411, align 8, !tbaa !11
  %48380 = load double, ptr %1411, align 8, !tbaa !11
  %48381 = fneg double %48380
  store double %48381, ptr %1410, align 8, !tbaa !11
  br label %48382

48382:                                            ; preds = %48378, %48365, %48362, %48358
  br label %48383

48383:                                            ; preds = %48382, %48320
  call void @llvm.lifetime.start.p0(i64 8, ptr %1415) #3
  %48384 = load double, ptr %1410, align 8, !tbaa !11
  %48385 = fcmp ole double 0.000000e+00, %48384
  %48386 = zext i1 %48385 to i64
  %48387 = select i1 %48385, double 0.000000e+00, double 0.000000e+00
  store double %48387, ptr %1415, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1416) #3
  %48388 = load double, ptr %1411, align 8, !tbaa !11
  %48389 = fcmp ole double 0.000000e+00, %48388
  %48390 = zext i1 %48389 to i64
  %48391 = select i1 %48389, double 2.550000e+02, double 0.000000e+00
  store double %48391, ptr %1416, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1417) #3
  %48392 = load float, ptr %1409, align 4, !tbaa !18
  %48393 = fpext float %48392 to double
  %48394 = load double, ptr %1410, align 8, !tbaa !11
  %48395 = fsub double %48393, %48394
  %48396 = load double, ptr %1416, align 8, !tbaa !11
  %48397 = load double, ptr %1415, align 8, !tbaa !11
  %48398 = fsub double %48396, %48397
  %48399 = fmul double %48395, %48398
  %48400 = load double, ptr %1411, align 8, !tbaa !11
  %48401 = load double, ptr %1410, align 8, !tbaa !11
  %48402 = fsub double %48400, %48401
  %48403 = fdiv double %48399, %48402
  %48404 = load double, ptr %1415, align 8, !tbaa !11
  %48405 = fadd double %48403, %48404
  store double %48405, ptr %1417, align 8, !tbaa !11
  %48406 = load double, ptr %1415, align 8, !tbaa !11
  %48407 = load double, ptr %1417, align 8, !tbaa !11
  %48408 = fcmp ole double 0.000000e+00, %48407
  br i1 %48408, label %48409, label %48412

48409:                                            ; preds = %48383
  %48410 = load double, ptr %1417, align 8, !tbaa !11
  %48411 = fadd double %48410, 5.000000e-01
  br label %48415

48412:                                            ; preds = %48383
  %48413 = load double, ptr %1417, align 8, !tbaa !11
  %48414 = fsub double %48413, 5.000000e-01
  br label %48415

48415:                                            ; preds = %48412, %48409
  %48416 = phi double [ %48411, %48409 ], [ %48414, %48412 ]
  %48417 = fcmp olt double %48406, %48416
  br i1 %48417, label %48418, label %48472

48418:                                            ; preds = %48415
  %48419 = load double, ptr %1417, align 8, !tbaa !11
  %48420 = fcmp ole double 0.000000e+00, %48419
  br i1 %48420, label %48421, label %48424

48421:                                            ; preds = %48418
  %48422 = load double, ptr %1417, align 8, !tbaa !11
  %48423 = fadd double %48422, 5.000000e-01
  br label %48427

48424:                                            ; preds = %48418
  %48425 = load double, ptr %1417, align 8, !tbaa !11
  %48426 = fsub double %48425, 5.000000e-01
  br label %48427

48427:                                            ; preds = %48424, %48421
  %48428 = phi double [ %48423, %48421 ], [ %48426, %48424 ]
  %48429 = load double, ptr %1416, align 8, !tbaa !11
  %48430 = fcmp ole double %48428, %48429
  br i1 %48430, label %48431, label %48442

48431:                                            ; preds = %48427
  %48432 = load double, ptr %1417, align 8, !tbaa !11
  %48433 = fcmp ole double 0.000000e+00, %48432
  br i1 %48433, label %48434, label %48437

48434:                                            ; preds = %48431
  %48435 = load double, ptr %1417, align 8, !tbaa !11
  %48436 = fadd double %48435, 5.000000e-01
  br label %48440

48437:                                            ; preds = %48431
  %48438 = load double, ptr %1417, align 8, !tbaa !11
  %48439 = fsub double %48438, 5.000000e-01
  br label %48440

48440:                                            ; preds = %48437, %48434
  %48441 = phi double [ %48436, %48434 ], [ %48439, %48437 ]
  br label %48470

48442:                                            ; preds = %48427
  %48443 = load double, ptr %1417, align 8, !tbaa !11
  %48444 = fcmp ole double 0.000000e+00, %48443
  br i1 %48444, label %48445, label %48448

48445:                                            ; preds = %48442
  %48446 = load double, ptr %1417, align 8, !tbaa !11
  %48447 = fadd double %48446, 5.000000e-01
  br label %48451

48448:                                            ; preds = %48442
  %48449 = load double, ptr %1417, align 8, !tbaa !11
  %48450 = fsub double %48449, 5.000000e-01
  br label %48451

48451:                                            ; preds = %48448, %48445
  %48452 = phi double [ %48447, %48445 ], [ %48450, %48448 ]
  %48453 = load double, ptr %1416, align 8, !tbaa !11
  %48454 = fcmp olt double %48452, %48453
  br i1 %48454, label %48455, label %48466

48455:                                            ; preds = %48451
  %48456 = load double, ptr %1417, align 8, !tbaa !11
  %48457 = fcmp ole double 0.000000e+00, %48456
  br i1 %48457, label %48458, label %48461

48458:                                            ; preds = %48455
  %48459 = load double, ptr %1417, align 8, !tbaa !11
  %48460 = fadd double %48459, 5.000000e-01
  br label %48464

48461:                                            ; preds = %48455
  %48462 = load double, ptr %1417, align 8, !tbaa !11
  %48463 = fsub double %48462, 5.000000e-01
  br label %48464

48464:                                            ; preds = %48461, %48458
  %48465 = phi double [ %48460, %48458 ], [ %48463, %48461 ]
  br label %48468

48466:                                            ; preds = %48451
  %48467 = load double, ptr %1416, align 8, !tbaa !11
  br label %48468

48468:                                            ; preds = %48466, %48464
  %48469 = phi double [ %48465, %48464 ], [ %48467, %48466 ]
  br label %48470

48470:                                            ; preds = %48468, %48440
  %48471 = phi double [ %48441, %48440 ], [ %48469, %48468 ]
  br label %48500

48472:                                            ; preds = %48415
  %48473 = load double, ptr %1415, align 8, !tbaa !11
  %48474 = load double, ptr %1417, align 8, !tbaa !11
  %48475 = fcmp ole double 0.000000e+00, %48474
  br i1 %48475, label %48476, label %48479

48476:                                            ; preds = %48472
  %48477 = load double, ptr %1417, align 8, !tbaa !11
  %48478 = fadd double %48477, 5.000000e-01
  br label %48482

48479:                                            ; preds = %48472
  %48480 = load double, ptr %1417, align 8, !tbaa !11
  %48481 = fsub double %48480, 5.000000e-01
  br label %48482

48482:                                            ; preds = %48479, %48476
  %48483 = phi double [ %48478, %48476 ], [ %48481, %48479 ]
  %48484 = fcmp olt double %48473, %48483
  br i1 %48484, label %48485, label %48496

48485:                                            ; preds = %48482
  %48486 = load double, ptr %1417, align 8, !tbaa !11
  %48487 = fcmp ole double 0.000000e+00, %48486
  br i1 %48487, label %48488, label %48491

48488:                                            ; preds = %48485
  %48489 = load double, ptr %1417, align 8, !tbaa !11
  %48490 = fadd double %48489, 5.000000e-01
  br label %48494

48491:                                            ; preds = %48485
  %48492 = load double, ptr %1417, align 8, !tbaa !11
  %48493 = fsub double %48492, 5.000000e-01
  br label %48494

48494:                                            ; preds = %48491, %48488
  %48495 = phi double [ %48490, %48488 ], [ %48493, %48491 ]
  br label %48498

48496:                                            ; preds = %48482
  %48497 = load double, ptr %1415, align 8, !tbaa !11
  br label %48498

48498:                                            ; preds = %48496, %48494
  %48499 = phi double [ %48495, %48494 ], [ %48497, %48496 ]
  br label %48500

48500:                                            ; preds = %48498, %48470
  %48501 = phi double [ %48471, %48470 ], [ %48499, %48498 ]
  %48502 = fptoui double %48501 to i8
  %48503 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %48502, ptr %48503, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %1417) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1416) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1415) #3
  br label %48646

48504:                                            ; preds = %48278, %48275
  %48505 = load i32, ptr %8, align 4, !tbaa !9
  %48506 = icmp ugt i32 6, %48505
  br i1 %48506, label %48535, label %48507

48507:                                            ; preds = %48504
  %48508 = load i32, ptr %8, align 4, !tbaa !9
  %48509 = icmp ugt i32 15, %48508
  br i1 %48509, label %48510, label %48521

48510:                                            ; preds = %48507
  %48511 = load i32, ptr %9, align 4, !tbaa !9
  %48512 = icmp ugt i32 15, %48511
  br i1 %48512, label %48513, label %48518

48513:                                            ; preds = %48510
  %48514 = load i32, ptr %9, align 4, !tbaa !9
  %48515 = load i32, ptr %8, align 4, !tbaa !9
  %48516 = icmp ugt i32 %48514, %48515
  %48517 = zext i1 %48516 to i32
  br label %48519

48518:                                            ; preds = %48510
  br label %48519

48519:                                            ; preds = %48518, %48513
  %48520 = phi i32 [ %48517, %48513 ], [ 0, %48518 ]
  br label %48532

48521:                                            ; preds = %48507
  %48522 = load i32, ptr %9, align 4, !tbaa !9
  %48523 = icmp ugt i32 15, %48522
  br i1 %48523, label %48524, label %48525

48524:                                            ; preds = %48521
  br label %48530

48525:                                            ; preds = %48521
  %48526 = load i32, ptr %9, align 4, !tbaa !9
  %48527 = load i32, ptr %8, align 4, !tbaa !9
  %48528 = icmp ugt i32 %48526, %48527
  %48529 = zext i1 %48528 to i32
  br label %48530

48530:                                            ; preds = %48525, %48524
  %48531 = phi i32 [ 0, %48524 ], [ %48529, %48525 ]
  br label %48532

48532:                                            ; preds = %48530, %48519
  %48533 = phi i32 [ %48520, %48519 ], [ %48531, %48530 ]
  %48534 = icmp ne i32 %48533, 0
  br label %48535

48535:                                            ; preds = %48532, %48504
  %48536 = phi i1 [ true, %48504 ], [ %48534, %48532 ]
  %48537 = zext i1 %48536 to i32
  %48538 = icmp eq i32 0, %48537
  br i1 %48538, label %48539, label %48630

48539:                                            ; preds = %48535
  %48540 = load float, ptr %1409, align 4, !tbaa !18
  %48541 = fcmp ole float 0.000000e+00, %48540
  br i1 %48541, label %48542, label %48584

48542:                                            ; preds = %48539
  %48543 = load float, ptr %1409, align 4, !tbaa !18
  %48544 = fpext float %48543 to double
  %48545 = fadd double %48544, 5.000000e-01
  %48546 = fcmp olt double 0.000000e+00, %48545
  br i1 %48546, label %48547, label %48570

48547:                                            ; preds = %48542
  %48548 = load float, ptr %1409, align 4, !tbaa !18
  %48549 = fpext float %48548 to double
  %48550 = fadd double %48549, 5.000000e-01
  %48551 = fcmp ole double %48550, 2.550000e+02
  br i1 %48551, label %48552, label %48556

48552:                                            ; preds = %48547
  %48553 = load float, ptr %1409, align 4, !tbaa !18
  %48554 = fpext float %48553 to double
  %48555 = fadd double %48554, 5.000000e-01
  br label %48568

48556:                                            ; preds = %48547
  %48557 = load float, ptr %1409, align 4, !tbaa !18
  %48558 = fpext float %48557 to double
  %48559 = fadd double %48558, 5.000000e-01
  %48560 = fcmp olt double %48559, 2.550000e+02
  br i1 %48560, label %48561, label %48565

48561:                                            ; preds = %48556
  %48562 = load float, ptr %1409, align 4, !tbaa !18
  %48563 = fpext float %48562 to double
  %48564 = fadd double %48563, 5.000000e-01
  br label %48566

48565:                                            ; preds = %48556
  br label %48566

48566:                                            ; preds = %48565, %48561
  %48567 = phi double [ %48564, %48561 ], [ 2.550000e+02, %48565 ]
  br label %48568

48568:                                            ; preds = %48566, %48552
  %48569 = phi double [ %48555, %48552 ], [ %48567, %48566 ]
  br label %48582

48570:                                            ; preds = %48542
  %48571 = load float, ptr %1409, align 4, !tbaa !18
  %48572 = fpext float %48571 to double
  %48573 = fadd double %48572, 5.000000e-01
  %48574 = fcmp olt double 0.000000e+00, %48573
  br i1 %48574, label %48575, label %48579

48575:                                            ; preds = %48570
  %48576 = load float, ptr %1409, align 4, !tbaa !18
  %48577 = fpext float %48576 to double
  %48578 = fadd double %48577, 5.000000e-01
  br label %48580

48579:                                            ; preds = %48570
  br label %48580

48580:                                            ; preds = %48579, %48575
  %48581 = phi double [ %48578, %48575 ], [ 0.000000e+00, %48579 ]
  br label %48582

48582:                                            ; preds = %48580, %48568
  %48583 = phi double [ %48569, %48568 ], [ %48581, %48580 ]
  br label %48626

48584:                                            ; preds = %48539
  %48585 = load float, ptr %1409, align 4, !tbaa !18
  %48586 = fpext float %48585 to double
  %48587 = fsub double %48586, 5.000000e-01
  %48588 = fcmp olt double 0.000000e+00, %48587
  br i1 %48588, label %48589, label %48612

48589:                                            ; preds = %48584
  %48590 = load float, ptr %1409, align 4, !tbaa !18
  %48591 = fpext float %48590 to double
  %48592 = fsub double %48591, 5.000000e-01
  %48593 = fcmp ole double %48592, 2.550000e+02
  br i1 %48593, label %48594, label %48598

48594:                                            ; preds = %48589
  %48595 = load float, ptr %1409, align 4, !tbaa !18
  %48596 = fpext float %48595 to double
  %48597 = fsub double %48596, 5.000000e-01
  br label %48610

48598:                                            ; preds = %48589
  %48599 = load float, ptr %1409, align 4, !tbaa !18
  %48600 = fpext float %48599 to double
  %48601 = fsub double %48600, 5.000000e-01
  %48602 = fcmp olt double %48601, 2.550000e+02
  br i1 %48602, label %48603, label %48607

48603:                                            ; preds = %48598
  %48604 = load float, ptr %1409, align 4, !tbaa !18
  %48605 = fpext float %48604 to double
  %48606 = fsub double %48605, 5.000000e-01
  br label %48608

48607:                                            ; preds = %48598
  br label %48608

48608:                                            ; preds = %48607, %48603
  %48609 = phi double [ %48606, %48603 ], [ 2.550000e+02, %48607 ]
  br label %48610

48610:                                            ; preds = %48608, %48594
  %48611 = phi double [ %48597, %48594 ], [ %48609, %48608 ]
  br label %48624

48612:                                            ; preds = %48584
  %48613 = load float, ptr %1409, align 4, !tbaa !18
  %48614 = fpext float %48613 to double
  %48615 = fsub double %48614, 5.000000e-01
  %48616 = fcmp olt double 0.000000e+00, %48615
  br i1 %48616, label %48617, label %48621

48617:                                            ; preds = %48612
  %48618 = load float, ptr %1409, align 4, !tbaa !18
  %48619 = fpext float %48618 to double
  %48620 = fsub double %48619, 5.000000e-01
  br label %48622

48621:                                            ; preds = %48612
  br label %48622

48622:                                            ; preds = %48621, %48617
  %48623 = phi double [ %48620, %48617 ], [ 0.000000e+00, %48621 ]
  br label %48624

48624:                                            ; preds = %48622, %48610
  %48625 = phi double [ %48611, %48610 ], [ %48623, %48622 ]
  br label %48626

48626:                                            ; preds = %48624, %48582
  %48627 = phi double [ %48583, %48582 ], [ %48625, %48624 ]
  %48628 = fptoui double %48627 to i8
  %48629 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %48628, ptr %48629, align 1, !tbaa !17
  br label %48645

48630:                                            ; preds = %48535
  %48631 = load float, ptr %1409, align 4, !tbaa !18
  %48632 = fcmp ole float 0.000000e+00, %48631
  br i1 %48632, label %48633, label %48637

48633:                                            ; preds = %48630
  %48634 = load float, ptr %1409, align 4, !tbaa !18
  %48635 = fpext float %48634 to double
  %48636 = fadd double %48635, 5.000000e-01
  br label %48641

48637:                                            ; preds = %48630
  %48638 = load float, ptr %1409, align 4, !tbaa !18
  %48639 = fpext float %48638 to double
  %48640 = fsub double %48639, 5.000000e-01
  br label %48641

48641:                                            ; preds = %48637, %48633
  %48642 = phi double [ %48636, %48633 ], [ %48640, %48637 ]
  %48643 = fptoui double %48642 to i8
  %48644 = load ptr, ptr %7, align 8, !tbaa !5
  store i8 %48643, ptr %48644, align 1, !tbaa !17
  br label %48645

48645:                                            ; preds = %48641, %48626
  br label %48646

48646:                                            ; preds = %48645, %48500
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1411) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1410) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %1409) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %1408) #3
  br label %48647

48647:                                            ; preds = %48646
  br label %48648

48648:                                            ; preds = %48647
  br label %48653

48649:                                            ; preds = %45030
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 503, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

48650:                                            ; preds = %45030
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 503, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

48651:                                            ; preds = %45030
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.24, i32 noundef 503, ptr noundef @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #4
  unreachable

48652:                                            ; preds = %45030
  store i32 1, ptr %13, align 4, !tbaa !9
  br label %48653

48653:                                            ; preds = %48652, %48648, %48242, %47857, %47498, %47138, %46791, %46444, %46085, %45725, %45378
  br label %48654

48654:                                            ; preds = %48653
  br label %48655

48655:                                            ; preds = %48654
  br label %48657

48656:                                            ; preds = %6
  store i32 1, ptr %13, align 4, !tbaa !9
  br label %48657

48657:                                            ; preds = %48656, %48655, %45020, %41385, %37750, %34115, %30480, %26845, %23210, %19575, %15940, %12305, %8670, %5033
  %48658 = load i32, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #3
  ret i32 %48658
}

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind }
attributes #4 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"long long", !7, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"short", !7, i64 0}
!17 = !{!7, !7, i64 0}
!18 = !{!19, !19, i64 0}
!19 = !{!"float", !7, i64 0}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@.str.24 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [75 x i8], align 1
@__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion = external hidden unnamed_addr constant [129 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [30 x i8], align 1

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @libxsmm_mhd_element_conversion(ptr noundef writeonly %0, i32 noundef %1, i32 noundef %2, ptr noundef readonly %3, ptr noundef readonly %4, ptr noundef readonly %5) local_unnamed_addr #1 {
  switch i32 %1, label %4216 [
    i32 0, label %7
    i32 1, label %126
    i32 3, label %245
    i32 2, label %362
    i32 4, label %479
    i32 6, label %596
    i32 8, label %1004
    i32 10, label %1415
    i32 12, label %1836
    i32 15, label %2267
    i32 16, label %2752
    i32 17, label %3235
    i32 18, label %3723
  ]

7:                                                ; preds = %6
  %8 = icmp ne ptr %0, null
  %9 = icmp ne ptr %3, null
  %or.cond = and i1 %8, %9
  br i1 %or.cond, label %11, label %10

10:                                               ; preds = %7
  tail call void @__assert_fail(ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.24, i32 noundef 467, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

11:                                               ; preds = %7
  switch i32 %2, label %4216 [
    i32 6, label %12
    i32 8, label %22
    i32 10, label %32
    i32 12, label %42
    i32 15, label %52
    i32 16, label %62
    i32 17, label %72
    i32 18, label %82
    i32 0, label %92
    i32 1, label %107
    i32 3, label %123
    i32 2, label %124
    i32 4, label %125
  ]

12:                                               ; preds = %11
  %13 = load i64, ptr %3, align 8, !tbaa !5
  %.not16831 = icmp eq ptr %4, null
  br i1 %.not16831, label %20, label %14

14:                                               ; preds = %12
  %.not16832 = icmp eq ptr %5, null
  br i1 %.not16832, label %19, label %15

15:                                               ; preds = %14
  %16 = load i64, ptr %4, align 8, !tbaa !5
  %.not16833 = icmp sgt i64 %16, %13
  br i1 %.not16833, label %19, label %17

17:                                               ; preds = %15
  %18 = load i64, ptr %5, align 8, !tbaa !5
  %.not16834 = icmp sgt i64 %13, %18
  br i1 %.not16834, label %19, label %20

19:                                               ; preds = %17, %15, %14
  tail call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.24, i32 noundef 467, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

20:                                               ; preds = %12, %17
  %21 = sitofp i64 %13 to double
  store double %21, ptr %0, align 8, !tbaa !9
  br label %4216

22:                                               ; preds = %11
  %23 = load i32, ptr %3, align 4, !tbaa !11
  %.not16827 = icmp eq ptr %4, null
  br i1 %.not16827, label %30, label %24

24:                                               ; preds = %22
  %.not16828 = icmp eq ptr %5, null
  br i1 %.not16828, label %29, label %25

25:                                               ; preds = %24
  %26 = load i32, ptr %4, align 4, !tbaa !11
  %.not16829 = icmp sgt i32 %26, %23
  br i1 %.not16829, label %29, label %27

27:                                               ; preds = %25
  %28 = load i32, ptr %5, align 4, !tbaa !11
  %.not16830 = icmp sgt i32 %23, %28
  br i1 %.not16830, label %29, label %30

29:                                               ; preds = %27, %25, %24
  tail call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.24, i32 noundef 467, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

30:                                               ; preds = %22, %27
  %31 = sitofp i32 %23 to double
  store double %31, ptr %0, align 8, !tbaa !9
  br label %4216

32:                                               ; preds = %11
  %33 = load i16, ptr %3, align 2, !tbaa !13
  %.not16823 = icmp eq ptr %4, null
  br i1 %.not16823, label %40, label %34

34:                                               ; preds = %32
  %.not16824 = icmp eq ptr %5, null
  br i1 %.not16824, label %39, label %35

35:                                               ; preds = %34
  %36 = load i16, ptr %4, align 2, !tbaa !13
  %.not16825 = icmp sgt i16 %36, %33
  br i1 %.not16825, label %39, label %37

37:                                               ; preds = %35
  %38 = load i16, ptr %5, align 2, !tbaa !13
  %.not16826 = icmp sgt i16 %33, %38
  br i1 %.not16826, label %39, label %40

39:                                               ; preds = %37, %35, %34
  tail call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.24, i32 noundef 467, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

40:                                               ; preds = %32, %37
  %41 = sitofp i16 %33 to double
  store double %41, ptr %0, align 8, !tbaa !9
  br label %4216

42:                                               ; preds = %11
  %43 = load i8, ptr %3, align 1, !tbaa !15
  %.not16819 = icmp eq ptr %4, null
  br i1 %.not16819, label %50, label %44

44:                                               ; preds = %42
  %.not16820 = icmp eq ptr %5, null
  br i1 %.not16820, label %49, label %45

45:                                               ; preds = %44
  %46 = load i8, ptr %4, align 1, !tbaa !15
  %.not16821 = icmp sgt i8 %46, %43
  br i1 %.not16821, label %49, label %47

47:                                               ; preds = %45
  %48 = load i8, ptr %5, align 1, !tbaa !15
  %.not16822 = icmp sgt i8 %43, %48
  br i1 %.not16822, label %49, label %50

49:                                               ; preds = %47, %45, %44
  tail call void @__assert_fail(ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.24, i32 noundef 467, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

50:                                               ; preds = %42, %47
  %51 = sitofp i8 %43 to double
  store double %51, ptr %0, align 8, !tbaa !9
  br label %4216

52:                                               ; preds = %11
  %53 = load i64, ptr %3, align 8, !tbaa !5
  %.not16815 = icmp eq ptr %4, null
  br i1 %.not16815, label %60, label %54

54:                                               ; preds = %52
  %.not16816 = icmp eq ptr %5, null
  br i1 %.not16816, label %59, label %55

55:                                               ; preds = %54
  %56 = load i64, ptr %4, align 8, !tbaa !5
  %.not16817 = icmp ugt i64 %56, %53
  br i1 %.not16817, label %59, label %57

57:                                               ; preds = %55
  %58 = load i64, ptr %5, align 8, !tbaa !5
  %.not16818 = icmp ugt i64 %53, %58
  br i1 %.not16818, label %59, label %60

59:                                               ; preds = %57, %55, %54
  tail call void @__assert_fail(ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.24, i32 noundef 467, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

60:                                               ; preds = %52, %57
  %61 = uitofp i64 %53 to double
  store double %61, ptr %0, align 8, !tbaa !9
  br label %4216

62:                                               ; preds = %11
  %63 = load i32, ptr %3, align 4, !tbaa !11
  %.not16811 = icmp eq ptr %4, null
  br i1 %.not16811, label %70, label %64

64:                                               ; preds = %62
  %.not16812 = icmp eq ptr %5, null
  br i1 %.not16812, label %69, label %65

65:                                               ; preds = %64
  %66 = load i32, ptr %4, align 4, !tbaa !11
  %.not16813 = icmp ugt i32 %66, %63
  br i1 %.not16813, label %69, label %67

67:                                               ; preds = %65
  %68 = load i32, ptr %5, align 4, !tbaa !11
  %.not16814 = icmp ugt i32 %63, %68
  br i1 %.not16814, label %69, label %70

69:                                               ; preds = %67, %65, %64
  tail call void @__assert_fail(ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.24, i32 noundef 467, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

70:                                               ; preds = %62, %67
  %71 = uitofp i32 %63 to double
  store double %71, ptr %0, align 8, !tbaa !9
  br label %4216

72:                                               ; preds = %11
  %73 = load i16, ptr %3, align 2, !tbaa !13
  %.not16807 = icmp eq ptr %4, null
  br i1 %.not16807, label %80, label %74

74:                                               ; preds = %72
  %.not16808 = icmp eq ptr %5, null
  br i1 %.not16808, label %79, label %75

75:                                               ; preds = %74
  %76 = load i16, ptr %4, align 2, !tbaa !13
  %.not16809 = icmp ugt i16 %76, %73
  br i1 %.not16809, label %79, label %77

77:                                               ; preds = %75
  %78 = load i16, ptr %5, align 2, !tbaa !13
  %.not16810 = icmp ugt i16 %73, %78
  br i1 %.not16810, label %79, label %80

79:                                               ; preds = %77, %75, %74
  tail call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.24, i32 noundef 467, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

80:                                               ; preds = %72, %77
  %81 = uitofp i16 %73 to double
  store double %81, ptr %0, align 8, !tbaa !9
  br label %4216

82:                                               ; preds = %11
  %83 = load i8, ptr %3, align 1, !tbaa !15
  %.not16803 = icmp eq ptr %4, null
  br i1 %.not16803, label %90, label %84

84:                                               ; preds = %82
  %.not16804 = icmp eq ptr %5, null
  br i1 %.not16804, label %89, label %85

85:                                               ; preds = %84
  %86 = load i8, ptr %4, align 1, !tbaa !15
  %.not16805 = icmp ugt i8 %86, %83
  br i1 %.not16805, label %89, label %87

87:                                               ; preds = %85
  %88 = load i8, ptr %5, align 1, !tbaa !15
  %.not16806 = icmp ugt i8 %83, %88
  br i1 %.not16806, label %89, label %90

89:                                               ; preds = %87, %85, %84
  tail call void @__assert_fail(ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.24, i32 noundef 467, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

90:                                               ; preds = %82, %87
  %91 = uitofp i8 %83 to double
  store double %91, ptr %0, align 8, !tbaa !9
  br label %4216

92:                                               ; preds = %11
  %93 = load double, ptr %3, align 8, !tbaa !9
  %.not16801 = icmp ne ptr %4, null
  %94 = fcmp ord double %93, 0.000000e+00
  %or.cond16835 = select i1 %.not16801, i1 %94, i1 false
  br i1 %or.cond16835, label %95, label %103

95:                                               ; preds = %92
  %.not16802 = icmp eq ptr %5, null
  br i1 %.not16802, label %102, label %96

96:                                               ; preds = %95
  %97 = load double, ptr %4, align 8, !tbaa !9
  %98 = fcmp ugt double %97, %93
  br i1 %98, label %102, label %99

99:                                               ; preds = %96
  %100 = load double, ptr %5, align 8, !tbaa !9
  %101 = fcmp ugt double %93, %100
  br i1 %101, label %102, label %103

102:                                              ; preds = %99, %96, %95
  tail call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.24, i32 noundef 467, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

103:                                              ; preds = %92, %99
  %104 = fcmp oge double %93, 0.000000e+00
  %105 = fadd double %93, 0.000000e+00
  %106 = select i1 %104, double %105, double %93
  store double %106, ptr %0, align 8, !tbaa !9
  br label %4216

107:                                              ; preds = %11
  %108 = load float, ptr %3, align 4, !tbaa !16
  %.not16799 = icmp ne ptr %4, null
  %109 = fcmp ord float %108, 0.000000e+00
  %or.cond16836 = select i1 %.not16799, i1 %109, i1 false
  br i1 %or.cond16836, label %110, label %118

110:                                              ; preds = %107
  %.not16800 = icmp eq ptr %5, null
  br i1 %.not16800, label %117, label %111

111:                                              ; preds = %110
  %112 = load float, ptr %4, align 4, !tbaa !16
  %113 = fcmp ugt float %112, %108
  br i1 %113, label %117, label %114

114:                                              ; preds = %111
  %115 = load float, ptr %5, align 4, !tbaa !16
  %116 = fcmp ugt float %108, %115
  br i1 %116, label %117, label %118

117:                                              ; preds = %114, %111, %110
  tail call void @__assert_fail(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.24, i32 noundef 467, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

118:                                              ; preds = %107, %114
  %119 = fcmp ult float %108, 0.000000e+00
  %120 = fpext float %108 to double
  %121 = fadd double %120, 0.000000e+00
  %122 = select i1 %119, double %120, double %121
  store double %122, ptr %0, align 8, !tbaa !9
  br label %4216

123:                                              ; preds = %11
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 467, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

124:                                              ; preds = %11
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 467, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

125:                                              ; preds = %11
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 467, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

126:                                              ; preds = %6
  %127 = icmp ne ptr %0, null
  %128 = icmp ne ptr %3, null
  %or.cond43 = and i1 %127, %128
  br i1 %or.cond43, label %130, label %129

129:                                              ; preds = %126
  tail call void @__assert_fail(ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.24, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

130:                                              ; preds = %126
  switch i32 %2, label %4216 [
    i32 6, label %131
    i32 8, label %141
    i32 10, label %151
    i32 12, label %161
    i32 15, label %171
    i32 16, label %181
    i32 17, label %191
    i32 18, label %201
    i32 0, label %211
    i32 1, label %227
    i32 3, label %242
    i32 2, label %243
    i32 4, label %244
  ]

131:                                              ; preds = %130
  %132 = load i64, ptr %3, align 8, !tbaa !5
  %.not16795 = icmp eq ptr %4, null
  br i1 %.not16795, label %139, label %133

133:                                              ; preds = %131
  %.not16796 = icmp eq ptr %5, null
  br i1 %.not16796, label %138, label %134

134:                                              ; preds = %133
  %135 = load i64, ptr %4, align 8, !tbaa !5
  %.not16797 = icmp sgt i64 %135, %132
  br i1 %.not16797, label %138, label %136

136:                                              ; preds = %134
  %137 = load i64, ptr %5, align 8, !tbaa !5
  %.not16798 = icmp sgt i64 %132, %137
  br i1 %.not16798, label %138, label %139

138:                                              ; preds = %136, %134, %133
  tail call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.24, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

139:                                              ; preds = %131, %136
  %140 = sitofp i64 %132 to float
  store float %140, ptr %0, align 4, !tbaa !16
  br label %4216

141:                                              ; preds = %130
  %142 = load i32, ptr %3, align 4, !tbaa !11
  %.not16791 = icmp eq ptr %4, null
  br i1 %.not16791, label %149, label %143

143:                                              ; preds = %141
  %.not16792 = icmp eq ptr %5, null
  br i1 %.not16792, label %148, label %144

144:                                              ; preds = %143
  %145 = load i32, ptr %4, align 4, !tbaa !11
  %.not16793 = icmp sgt i32 %145, %142
  br i1 %.not16793, label %148, label %146

146:                                              ; preds = %144
  %147 = load i32, ptr %5, align 4, !tbaa !11
  %.not16794 = icmp sgt i32 %142, %147
  br i1 %.not16794, label %148, label %149

148:                                              ; preds = %146, %144, %143
  tail call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.24, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

149:                                              ; preds = %141, %146
  %150 = sitofp i32 %142 to float
  store float %150, ptr %0, align 4, !tbaa !16
  br label %4216

151:                                              ; preds = %130
  %152 = load i16, ptr %3, align 2, !tbaa !13
  %.not16787 = icmp eq ptr %4, null
  br i1 %.not16787, label %159, label %153

153:                                              ; preds = %151
  %.not16788 = icmp eq ptr %5, null
  br i1 %.not16788, label %158, label %154

154:                                              ; preds = %153
  %155 = load i16, ptr %4, align 2, !tbaa !13
  %.not16789 = icmp sgt i16 %155, %152
  br i1 %.not16789, label %158, label %156

156:                                              ; preds = %154
  %157 = load i16, ptr %5, align 2, !tbaa !13
  %.not16790 = icmp sgt i16 %152, %157
  br i1 %.not16790, label %158, label %159

158:                                              ; preds = %156, %154, %153
  tail call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.24, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

159:                                              ; preds = %151, %156
  %160 = sitofp i16 %152 to float
  store float %160, ptr %0, align 4, !tbaa !16
  br label %4216

161:                                              ; preds = %130
  %162 = load i8, ptr %3, align 1, !tbaa !15
  %.not16783 = icmp eq ptr %4, null
  br i1 %.not16783, label %169, label %163

163:                                              ; preds = %161
  %.not16784 = icmp eq ptr %5, null
  br i1 %.not16784, label %168, label %164

164:                                              ; preds = %163
  %165 = load i8, ptr %4, align 1, !tbaa !15
  %.not16785 = icmp sgt i8 %165, %162
  br i1 %.not16785, label %168, label %166

166:                                              ; preds = %164
  %167 = load i8, ptr %5, align 1, !tbaa !15
  %.not16786 = icmp sgt i8 %162, %167
  br i1 %.not16786, label %168, label %169

168:                                              ; preds = %166, %164, %163
  tail call void @__assert_fail(ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.24, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

169:                                              ; preds = %161, %166
  %170 = sitofp i8 %162 to float
  store float %170, ptr %0, align 4, !tbaa !16
  br label %4216

171:                                              ; preds = %130
  %172 = load i64, ptr %3, align 8, !tbaa !5
  %.not16779 = icmp eq ptr %4, null
  br i1 %.not16779, label %179, label %173

173:                                              ; preds = %171
  %.not16780 = icmp eq ptr %5, null
  br i1 %.not16780, label %178, label %174

174:                                              ; preds = %173
  %175 = load i64, ptr %4, align 8, !tbaa !5
  %.not16781 = icmp ugt i64 %175, %172
  br i1 %.not16781, label %178, label %176

176:                                              ; preds = %174
  %177 = load i64, ptr %5, align 8, !tbaa !5
  %.not16782 = icmp ugt i64 %172, %177
  br i1 %.not16782, label %178, label %179

178:                                              ; preds = %176, %174, %173
  tail call void @__assert_fail(ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.24, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

179:                                              ; preds = %171, %176
  %180 = uitofp i64 %172 to float
  store float %180, ptr %0, align 4, !tbaa !16
  br label %4216

181:                                              ; preds = %130
  %182 = load i32, ptr %3, align 4, !tbaa !11
  %.not16775 = icmp eq ptr %4, null
  br i1 %.not16775, label %189, label %183

183:                                              ; preds = %181
  %.not16776 = icmp eq ptr %5, null
  br i1 %.not16776, label %188, label %184

184:                                              ; preds = %183
  %185 = load i32, ptr %4, align 4, !tbaa !11
  %.not16777 = icmp ugt i32 %185, %182
  br i1 %.not16777, label %188, label %186

186:                                              ; preds = %184
  %187 = load i32, ptr %5, align 4, !tbaa !11
  %.not16778 = icmp ugt i32 %182, %187
  br i1 %.not16778, label %188, label %189

188:                                              ; preds = %186, %184, %183
  tail call void @__assert_fail(ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.24, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

189:                                              ; preds = %181, %186
  %190 = uitofp i32 %182 to float
  store float %190, ptr %0, align 4, !tbaa !16
  br label %4216

191:                                              ; preds = %130
  %192 = load i16, ptr %3, align 2, !tbaa !13
  %.not16771 = icmp eq ptr %4, null
  br i1 %.not16771, label %199, label %193

193:                                              ; preds = %191
  %.not16772 = icmp eq ptr %5, null
  br i1 %.not16772, label %198, label %194

194:                                              ; preds = %193
  %195 = load i16, ptr %4, align 2, !tbaa !13
  %.not16773 = icmp ugt i16 %195, %192
  br i1 %.not16773, label %198, label %196

196:                                              ; preds = %194
  %197 = load i16, ptr %5, align 2, !tbaa !13
  %.not16774 = icmp ugt i16 %192, %197
  br i1 %.not16774, label %198, label %199

198:                                              ; preds = %196, %194, %193
  tail call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.24, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

199:                                              ; preds = %191, %196
  %200 = uitofp i16 %192 to float
  store float %200, ptr %0, align 4, !tbaa !16
  br label %4216

201:                                              ; preds = %130
  %202 = load i8, ptr %3, align 1, !tbaa !15
  %.not16767 = icmp eq ptr %4, null
  br i1 %.not16767, label %209, label %203

203:                                              ; preds = %201
  %.not16768 = icmp eq ptr %5, null
  br i1 %.not16768, label %208, label %204

204:                                              ; preds = %203
  %205 = load i8, ptr %4, align 1, !tbaa !15
  %.not16769 = icmp ugt i8 %205, %202
  br i1 %.not16769, label %208, label %206

206:                                              ; preds = %204
  %207 = load i8, ptr %5, align 1, !tbaa !15
  %.not16770 = icmp ugt i8 %202, %207
  br i1 %.not16770, label %208, label %209

208:                                              ; preds = %206, %204, %203
  tail call void @__assert_fail(ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.24, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

209:                                              ; preds = %201, %206
  %210 = uitofp i8 %202 to float
  store float %210, ptr %0, align 4, !tbaa !16
  br label %4216

211:                                              ; preds = %130
  %212 = load double, ptr %3, align 8, !tbaa !9
  %.not16765 = icmp ne ptr %4, null
  %213 = fcmp ord double %212, 0.000000e+00
  %or.cond16837 = select i1 %.not16765, i1 %213, i1 false
  br i1 %or.cond16837, label %214, label %222

214:                                              ; preds = %211
  %.not16766 = icmp eq ptr %5, null
  br i1 %.not16766, label %221, label %215

215:                                              ; preds = %214
  %216 = load double, ptr %4, align 8, !tbaa !9
  %217 = fcmp ugt double %216, %212
  br i1 %217, label %221, label %218

218:                                              ; preds = %215
  %219 = load double, ptr %5, align 8, !tbaa !9
  %220 = fcmp ugt double %212, %219
  br i1 %220, label %221, label %222

221:                                              ; preds = %218, %215, %214
  tail call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.24, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

222:                                              ; preds = %211, %218
  %223 = fcmp oge double %212, 0.000000e+00
  %224 = fadd double %212, 0.000000e+00
  %225 = select i1 %223, double %224, double %212
  %226 = fptrunc double %225 to float
  store float %226, ptr %0, align 4, !tbaa !16
  br label %4216

227:                                              ; preds = %130
  %228 = load float, ptr %3, align 4, !tbaa !16
  %.not16763 = icmp ne ptr %4, null
  %229 = fcmp ord float %228, 0.000000e+00
  %or.cond16838 = select i1 %.not16763, i1 %229, i1 false
  br i1 %or.cond16838, label %230, label %238

230:                                              ; preds = %227
  %.not16764 = icmp eq ptr %5, null
  br i1 %.not16764, label %237, label %231

231:                                              ; preds = %230
  %232 = load float, ptr %4, align 4, !tbaa !16
  %233 = fcmp ugt float %232, %228
  br i1 %233, label %237, label %234

234:                                              ; preds = %231
  %235 = load float, ptr %5, align 4, !tbaa !16
  %236 = fcmp ugt float %228, %235
  br i1 %236, label %237, label %238

237:                                              ; preds = %234, %231, %230
  tail call void @__assert_fail(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.24, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

238:                                              ; preds = %227, %234
  %239 = fcmp ult float %228, 0.000000e+00
  %240 = fadd float %228, 0.000000e+00
  %241 = select i1 %239, float %228, float %240
  store float %241, ptr %0, align 4, !tbaa !16
  br label %4216

242:                                              ; preds = %130
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

243:                                              ; preds = %130
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

244:                                              ; preds = %130
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

245:                                              ; preds = %6
  %246 = icmp ne ptr %0, null
  %247 = icmp ne ptr %3, null
  %or.cond85 = and i1 %246, %247
  br i1 %or.cond85, label %249, label %248

248:                                              ; preds = %245
  tail call void @__assert_fail(ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.24, i32 noundef 473, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

249:                                              ; preds = %245
  switch i32 %2, label %4216 [
    i32 6, label %250
    i32 8, label %260
    i32 10, label %270
    i32 12, label %279
    i32 15, label %289
    i32 16, label %299
    i32 17, label %309
    i32 18, label %318
    i32 0, label %328
    i32 1, label %343
    i32 3, label %359
    i32 2, label %360
    i32 4, label %361
  ]

250:                                              ; preds = %249
  %251 = load i64, ptr %3, align 8, !tbaa !5
  %.not16759 = icmp eq ptr %4, null
  br i1 %.not16759, label %258, label %252

252:                                              ; preds = %250
  %.not16760 = icmp eq ptr %5, null
  br i1 %.not16760, label %257, label %253

253:                                              ; preds = %252
  %254 = load i64, ptr %4, align 8, !tbaa !5
  %.not16761 = icmp sgt i64 %254, %251
  br i1 %.not16761, label %257, label %255

255:                                              ; preds = %253
  %256 = load i64, ptr %5, align 8, !tbaa !5
  %.not16762 = icmp sgt i64 %251, %256
  br i1 %.not16762, label %257, label %258

257:                                              ; preds = %255, %253, %252
  tail call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.24, i32 noundef 473, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

258:                                              ; preds = %250, %255
  %259 = trunc i64 %251 to i16
  store i16 %259, ptr %0, align 2, !tbaa !13
  br label %4216

260:                                              ; preds = %249
  %261 = load i32, ptr %3, align 4, !tbaa !11
  %.not16755 = icmp eq ptr %4, null
  br i1 %.not16755, label %268, label %262

262:                                              ; preds = %260
  %.not16756 = icmp eq ptr %5, null
  br i1 %.not16756, label %267, label %263

263:                                              ; preds = %262
  %264 = load i32, ptr %4, align 4, !tbaa !11
  %.not16757 = icmp sgt i32 %264, %261
  br i1 %.not16757, label %267, label %265

265:                                              ; preds = %263
  %266 = load i32, ptr %5, align 4, !tbaa !11
  %.not16758 = icmp sgt i32 %261, %266
  br i1 %.not16758, label %267, label %268

267:                                              ; preds = %265, %263, %262
  tail call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.24, i32 noundef 473, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

268:                                              ; preds = %260, %265
  %269 = trunc i32 %261 to i16
  store i16 %269, ptr %0, align 2, !tbaa !13
  br label %4216

270:                                              ; preds = %249
  %271 = load i16, ptr %3, align 2, !tbaa !13
  %.not16751 = icmp eq ptr %4, null
  br i1 %.not16751, label %278, label %272

272:                                              ; preds = %270
  %.not16752 = icmp eq ptr %5, null
  br i1 %.not16752, label %277, label %273

273:                                              ; preds = %272
  %274 = load i16, ptr %4, align 2, !tbaa !13
  %.not16753 = icmp sgt i16 %274, %271
  br i1 %.not16753, label %277, label %275

275:                                              ; preds = %273
  %276 = load i16, ptr %5, align 2, !tbaa !13
  %.not16754 = icmp sgt i16 %271, %276
  br i1 %.not16754, label %277, label %278

277:                                              ; preds = %275, %273, %272
  tail call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.24, i32 noundef 473, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

278:                                              ; preds = %270, %275
  store i16 %271, ptr %0, align 2, !tbaa !13
  br label %4216

279:                                              ; preds = %249
  %280 = load i8, ptr %3, align 1, !tbaa !15
  %.not16747 = icmp eq ptr %4, null
  br i1 %.not16747, label %287, label %281

281:                                              ; preds = %279
  %.not16748 = icmp eq ptr %5, null
  br i1 %.not16748, label %286, label %282

282:                                              ; preds = %281
  %283 = load i8, ptr %4, align 1, !tbaa !15
  %.not16749 = icmp sgt i8 %283, %280
  br i1 %.not16749, label %286, label %284

284:                                              ; preds = %282
  %285 = load i8, ptr %5, align 1, !tbaa !15
  %.not16750 = icmp sgt i8 %280, %285
  br i1 %.not16750, label %286, label %287

286:                                              ; preds = %284, %282, %281
  tail call void @__assert_fail(ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.24, i32 noundef 473, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

287:                                              ; preds = %279, %284
  %288 = sext i8 %280 to i16
  store i16 %288, ptr %0, align 2, !tbaa !13
  br label %4216

289:                                              ; preds = %249
  %290 = load i64, ptr %3, align 8, !tbaa !5
  %.not16743 = icmp eq ptr %4, null
  br i1 %.not16743, label %297, label %291

291:                                              ; preds = %289
  %.not16744 = icmp eq ptr %5, null
  br i1 %.not16744, label %296, label %292

292:                                              ; preds = %291
  %293 = load i64, ptr %4, align 8, !tbaa !5
  %.not16745 = icmp ugt i64 %293, %290
  br i1 %.not16745, label %296, label %294

294:                                              ; preds = %292
  %295 = load i64, ptr %5, align 8, !tbaa !5
  %.not16746 = icmp ugt i64 %290, %295
  br i1 %.not16746, label %296, label %297

296:                                              ; preds = %294, %292, %291
  tail call void @__assert_fail(ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.24, i32 noundef 473, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

297:                                              ; preds = %289, %294
  %298 = trunc i64 %290 to i16
  store i16 %298, ptr %0, align 2, !tbaa !13
  br label %4216

299:                                              ; preds = %249
  %300 = load i32, ptr %3, align 4, !tbaa !11
  %.not16739 = icmp eq ptr %4, null
  br i1 %.not16739, label %307, label %301

301:                                              ; preds = %299
  %.not16740 = icmp eq ptr %5, null
  br i1 %.not16740, label %306, label %302

302:                                              ; preds = %301
  %303 = load i32, ptr %4, align 4, !tbaa !11
  %.not16741 = icmp ugt i32 %303, %300
  br i1 %.not16741, label %306, label %304

304:                                              ; preds = %302
  %305 = load i32, ptr %5, align 4, !tbaa !11
  %.not16742 = icmp ugt i32 %300, %305
  br i1 %.not16742, label %306, label %307

306:                                              ; preds = %304, %302, %301
  tail call void @__assert_fail(ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.24, i32 noundef 473, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

307:                                              ; preds = %299, %304
  %308 = trunc i32 %300 to i16
  store i16 %308, ptr %0, align 2, !tbaa !13
  br label %4216

309:                                              ; preds = %249
  %310 = load i16, ptr %3, align 2, !tbaa !13
  %.not16735 = icmp eq ptr %4, null
  br i1 %.not16735, label %317, label %311

311:                                              ; preds = %309
  %.not16736 = icmp eq ptr %5, null
  br i1 %.not16736, label %316, label %312

312:                                              ; preds = %311
  %313 = load i16, ptr %4, align 2, !tbaa !13
  %.not16737 = icmp ugt i16 %313, %310
  br i1 %.not16737, label %316, label %314

314:                                              ; preds = %312
  %315 = load i16, ptr %5, align 2, !tbaa !13
  %.not16738 = icmp ugt i16 %310, %315
  br i1 %.not16738, label %316, label %317

316:                                              ; preds = %314, %312, %311
  tail call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.24, i32 noundef 473, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

317:                                              ; preds = %309, %314
  store i16 %310, ptr %0, align 2, !tbaa !13
  br label %4216

318:                                              ; preds = %249
  %319 = load i8, ptr %3, align 1, !tbaa !15
  %.not16731 = icmp eq ptr %4, null
  br i1 %.not16731, label %326, label %320

320:                                              ; preds = %318
  %.not16732 = icmp eq ptr %5, null
  br i1 %.not16732, label %325, label %321

321:                                              ; preds = %320
  %322 = load i8, ptr %4, align 1, !tbaa !15
  %.not16733 = icmp ugt i8 %322, %319
  br i1 %.not16733, label %325, label %323

323:                                              ; preds = %321
  %324 = load i8, ptr %5, align 1, !tbaa !15
  %.not16734 = icmp ugt i8 %319, %324
  br i1 %.not16734, label %325, label %326

325:                                              ; preds = %323, %321, %320
  tail call void @__assert_fail(ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.24, i32 noundef 473, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

326:                                              ; preds = %318, %323
  %327 = zext i8 %319 to i16
  store i16 %327, ptr %0, align 2, !tbaa !13
  br label %4216

328:                                              ; preds = %249
  %329 = load double, ptr %3, align 8, !tbaa !9
  %.not16728 = icmp ne ptr %4, null
  %330 = fcmp ord double %329, 0.000000e+00
  %or.cond16839 = select i1 %.not16728, i1 %330, i1 false
  br i1 %or.cond16839, label %331, label %339

331:                                              ; preds = %328
  %.not16729 = icmp eq ptr %5, null
  br i1 %.not16729, label %338, label %332

332:                                              ; preds = %331
  %333 = load double, ptr %4, align 8, !tbaa !9
  %334 = fcmp ugt double %333, %329
  br i1 %334, label %338, label %335

335:                                              ; preds = %332
  %336 = load double, ptr %5, align 8, !tbaa !9
  %337 = fcmp ugt double %329, %336
  br i1 %337, label %338, label %339

338:                                              ; preds = %335, %332, %331
  tail call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.24, i32 noundef 473, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

339:                                              ; preds = %328, %335
  %340 = fcmp oge double %329, 0.000000e+00
  %.v16730 = select i1 %340, double 5.000000e-01, double -5.000000e-01
  %341 = fadd double %329, %.v16730
  %342 = fptoui double %341 to i16
  store i16 %342, ptr %0, align 2, !tbaa !13
  br label %4216

343:                                              ; preds = %249
  %344 = load float, ptr %3, align 4, !tbaa !16
  %.not16726 = icmp ne ptr %4, null
  %345 = fcmp ord float %344, 0.000000e+00
  %or.cond16840 = select i1 %.not16726, i1 %345, i1 false
  br i1 %or.cond16840, label %346, label %354

346:                                              ; preds = %343
  %.not16727 = icmp eq ptr %5, null
  br i1 %.not16727, label %353, label %347

347:                                              ; preds = %346
  %348 = load float, ptr %4, align 4, !tbaa !16
  %349 = fcmp ugt float %348, %344
  br i1 %349, label %353, label %350

350:                                              ; preds = %347
  %351 = load float, ptr %5, align 4, !tbaa !16
  %352 = fcmp ugt float %344, %351
  br i1 %352, label %353, label %354

353:                                              ; preds = %350, %347, %346
  tail call void @__assert_fail(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.24, i32 noundef 473, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

354:                                              ; preds = %343, %350
  %355 = fcmp ult float %344, 0.000000e+00
  %356 = fpext float %344 to double
  %.v17186 = select i1 %355, double -5.000000e-01, double 5.000000e-01
  %357 = fadd double %.v17186, %356
  %358 = fptoui double %357 to i16
  store i16 %358, ptr %0, align 2, !tbaa !13
  br label %4216

359:                                              ; preds = %249
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 473, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

360:                                              ; preds = %249
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 473, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

361:                                              ; preds = %249
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 473, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

362:                                              ; preds = %6
  %363 = icmp ne ptr %0, null
  %364 = icmp ne ptr %3, null
  %or.cond127 = and i1 %363, %364
  br i1 %or.cond127, label %366, label %365

365:                                              ; preds = %362
  tail call void @__assert_fail(ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.24, i32 noundef 476, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

366:                                              ; preds = %362
  switch i32 %2, label %4216 [
    i32 6, label %367
    i32 8, label %377
    i32 10, label %387
    i32 12, label %396
    i32 15, label %406
    i32 16, label %416
    i32 17, label %426
    i32 18, label %435
    i32 0, label %445
    i32 1, label %460
    i32 3, label %476
    i32 2, label %477
    i32 4, label %478
  ]

367:                                              ; preds = %366
  %368 = load i64, ptr %3, align 8, !tbaa !5
  %.not16722 = icmp eq ptr %4, null
  br i1 %.not16722, label %375, label %369

369:                                              ; preds = %367
  %.not16723 = icmp eq ptr %5, null
  br i1 %.not16723, label %374, label %370

370:                                              ; preds = %369
  %371 = load i64, ptr %4, align 8, !tbaa !5
  %.not16724 = icmp sgt i64 %371, %368
  br i1 %.not16724, label %374, label %372

372:                                              ; preds = %370
  %373 = load i64, ptr %5, align 8, !tbaa !5
  %.not16725 = icmp sgt i64 %368, %373
  br i1 %.not16725, label %374, label %375

374:                                              ; preds = %372, %370, %369
  tail call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.24, i32 noundef 476, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

375:                                              ; preds = %367, %372
  %376 = trunc i64 %368 to i16
  store i16 %376, ptr %0, align 2, !tbaa !13
  br label %4216

377:                                              ; preds = %366
  %378 = load i32, ptr %3, align 4, !tbaa !11
  %.not16718 = icmp eq ptr %4, null
  br i1 %.not16718, label %385, label %379

379:                                              ; preds = %377
  %.not16719 = icmp eq ptr %5, null
  br i1 %.not16719, label %384, label %380

380:                                              ; preds = %379
  %381 = load i32, ptr %4, align 4, !tbaa !11
  %.not16720 = icmp sgt i32 %381, %378
  br i1 %.not16720, label %384, label %382

382:                                              ; preds = %380
  %383 = load i32, ptr %5, align 4, !tbaa !11
  %.not16721 = icmp sgt i32 %378, %383
  br i1 %.not16721, label %384, label %385

384:                                              ; preds = %382, %380, %379
  tail call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.24, i32 noundef 476, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

385:                                              ; preds = %377, %382
  %386 = trunc i32 %378 to i16
  store i16 %386, ptr %0, align 2, !tbaa !13
  br label %4216

387:                                              ; preds = %366
  %388 = load i16, ptr %3, align 2, !tbaa !13
  %.not16714 = icmp eq ptr %4, null
  br i1 %.not16714, label %395, label %389

389:                                              ; preds = %387
  %.not16715 = icmp eq ptr %5, null
  br i1 %.not16715, label %394, label %390

390:                                              ; preds = %389
  %391 = load i16, ptr %4, align 2, !tbaa !13
  %.not16716 = icmp sgt i16 %391, %388
  br i1 %.not16716, label %394, label %392

392:                                              ; preds = %390
  %393 = load i16, ptr %5, align 2, !tbaa !13
  %.not16717 = icmp sgt i16 %388, %393
  br i1 %.not16717, label %394, label %395

394:                                              ; preds = %392, %390, %389
  tail call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.24, i32 noundef 476, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

395:                                              ; preds = %387, %392
  store i16 %388, ptr %0, align 2, !tbaa !13
  br label %4216

396:                                              ; preds = %366
  %397 = load i8, ptr %3, align 1, !tbaa !15
  %.not16710 = icmp eq ptr %4, null
  br i1 %.not16710, label %404, label %398

398:                                              ; preds = %396
  %.not16711 = icmp eq ptr %5, null
  br i1 %.not16711, label %403, label %399

399:                                              ; preds = %398
  %400 = load i8, ptr %4, align 1, !tbaa !15
  %.not16712 = icmp sgt i8 %400, %397
  br i1 %.not16712, label %403, label %401

401:                                              ; preds = %399
  %402 = load i8, ptr %5, align 1, !tbaa !15
  %.not16713 = icmp sgt i8 %397, %402
  br i1 %.not16713, label %403, label %404

403:                                              ; preds = %401, %399, %398
  tail call void @__assert_fail(ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.24, i32 noundef 476, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

404:                                              ; preds = %396, %401
  %405 = sext i8 %397 to i16
  store i16 %405, ptr %0, align 2, !tbaa !13
  br label %4216

406:                                              ; preds = %366
  %407 = load i64, ptr %3, align 8, !tbaa !5
  %.not16706 = icmp eq ptr %4, null
  br i1 %.not16706, label %414, label %408

408:                                              ; preds = %406
  %.not16707 = icmp eq ptr %5, null
  br i1 %.not16707, label %413, label %409

409:                                              ; preds = %408
  %410 = load i64, ptr %4, align 8, !tbaa !5
  %.not16708 = icmp ugt i64 %410, %407
  br i1 %.not16708, label %413, label %411

411:                                              ; preds = %409
  %412 = load i64, ptr %5, align 8, !tbaa !5
  %.not16709 = icmp ugt i64 %407, %412
  br i1 %.not16709, label %413, label %414

413:                                              ; preds = %411, %409, %408
  tail call void @__assert_fail(ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.24, i32 noundef 476, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

414:                                              ; preds = %406, %411
  %415 = trunc i64 %407 to i16
  store i16 %415, ptr %0, align 2, !tbaa !13
  br label %4216

416:                                              ; preds = %366
  %417 = load i32, ptr %3, align 4, !tbaa !11
  %.not16702 = icmp eq ptr %4, null
  br i1 %.not16702, label %424, label %418

418:                                              ; preds = %416
  %.not16703 = icmp eq ptr %5, null
  br i1 %.not16703, label %423, label %419

419:                                              ; preds = %418
  %420 = load i32, ptr %4, align 4, !tbaa !11
  %.not16704 = icmp ugt i32 %420, %417
  br i1 %.not16704, label %423, label %421

421:                                              ; preds = %419
  %422 = load i32, ptr %5, align 4, !tbaa !11
  %.not16705 = icmp ugt i32 %417, %422
  br i1 %.not16705, label %423, label %424

423:                                              ; preds = %421, %419, %418
  tail call void @__assert_fail(ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.24, i32 noundef 476, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

424:                                              ; preds = %416, %421
  %425 = trunc i32 %417 to i16
  store i16 %425, ptr %0, align 2, !tbaa !13
  br label %4216

426:                                              ; preds = %366
  %427 = load i16, ptr %3, align 2, !tbaa !13
  %.not16698 = icmp eq ptr %4, null
  br i1 %.not16698, label %434, label %428

428:                                              ; preds = %426
  %.not16699 = icmp eq ptr %5, null
  br i1 %.not16699, label %433, label %429

429:                                              ; preds = %428
  %430 = load i16, ptr %4, align 2, !tbaa !13
  %.not16700 = icmp ugt i16 %430, %427
  br i1 %.not16700, label %433, label %431

431:                                              ; preds = %429
  %432 = load i16, ptr %5, align 2, !tbaa !13
  %.not16701 = icmp ugt i16 %427, %432
  br i1 %.not16701, label %433, label %434

433:                                              ; preds = %431, %429, %428
  tail call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.24, i32 noundef 476, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

434:                                              ; preds = %426, %431
  store i16 %427, ptr %0, align 2, !tbaa !13
  br label %4216

435:                                              ; preds = %366
  %436 = load i8, ptr %3, align 1, !tbaa !15
  %.not16694 = icmp eq ptr %4, null
  br i1 %.not16694, label %443, label %437

437:                                              ; preds = %435
  %.not16695 = icmp eq ptr %5, null
  br i1 %.not16695, label %442, label %438

438:                                              ; preds = %437
  %439 = load i8, ptr %4, align 1, !tbaa !15
  %.not16696 = icmp ugt i8 %439, %436
  br i1 %.not16696, label %442, label %440

440:                                              ; preds = %438
  %441 = load i8, ptr %5, align 1, !tbaa !15
  %.not16697 = icmp ugt i8 %436, %441
  br i1 %.not16697, label %442, label %443

442:                                              ; preds = %440, %438, %437
  tail call void @__assert_fail(ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.24, i32 noundef 476, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

443:                                              ; preds = %435, %440
  %444 = zext i8 %436 to i16
  store i16 %444, ptr %0, align 2, !tbaa !13
  br label %4216

445:                                              ; preds = %366
  %446 = load double, ptr %3, align 8, !tbaa !9
  %.not16691 = icmp ne ptr %4, null
  %447 = fcmp ord double %446, 0.000000e+00
  %or.cond16841 = select i1 %.not16691, i1 %447, i1 false
  br i1 %or.cond16841, label %448, label %456

448:                                              ; preds = %445
  %.not16692 = icmp eq ptr %5, null
  br i1 %.not16692, label %455, label %449

449:                                              ; preds = %448
  %450 = load double, ptr %4, align 8, !tbaa !9
  %451 = fcmp ugt double %450, %446
  br i1 %451, label %455, label %452

452:                                              ; preds = %449
  %453 = load double, ptr %5, align 8, !tbaa !9
  %454 = fcmp ugt double %446, %453
  br i1 %454, label %455, label %456

455:                                              ; preds = %452, %449, %448
  tail call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.24, i32 noundef 476, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

456:                                              ; preds = %445, %452
  %457 = fcmp oge double %446, 0.000000e+00
  %.v16693 = select i1 %457, double 5.000000e-01, double -5.000000e-01
  %458 = fadd double %446, %.v16693
  %459 = fptoui double %458 to i16
  store i16 %459, ptr %0, align 2, !tbaa !13
  br label %4216

460:                                              ; preds = %366
  %461 = load float, ptr %3, align 4, !tbaa !16
  %.not16689 = icmp ne ptr %4, null
  %462 = fcmp ord float %461, 0.000000e+00
  %or.cond16842 = select i1 %.not16689, i1 %462, i1 false
  br i1 %or.cond16842, label %463, label %471

463:                                              ; preds = %460
  %.not16690 = icmp eq ptr %5, null
  br i1 %.not16690, label %470, label %464

464:                                              ; preds = %463
  %465 = load float, ptr %4, align 4, !tbaa !16
  %466 = fcmp ugt float %465, %461
  br i1 %466, label %470, label %467

467:                                              ; preds = %464
  %468 = load float, ptr %5, align 4, !tbaa !16
  %469 = fcmp ugt float %461, %468
  br i1 %469, label %470, label %471

470:                                              ; preds = %467, %464, %463
  tail call void @__assert_fail(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.24, i32 noundef 476, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

471:                                              ; preds = %460, %467
  %472 = fcmp ult float %461, 0.000000e+00
  %473 = fpext float %461 to double
  %.v17185 = select i1 %472, double -5.000000e-01, double 5.000000e-01
  %474 = fadd double %.v17185, %473
  %475 = fptoui double %474 to i16
  store i16 %475, ptr %0, align 2, !tbaa !13
  br label %4216

476:                                              ; preds = %366
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 476, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

477:                                              ; preds = %366
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 476, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

478:                                              ; preds = %366
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 476, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

479:                                              ; preds = %6
  %480 = icmp ne ptr %0, null
  %481 = icmp ne ptr %3, null
  %or.cond169 = and i1 %480, %481
  br i1 %or.cond169, label %483, label %482

482:                                              ; preds = %479
  tail call void @__assert_fail(ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.24, i32 noundef 479, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

483:                                              ; preds = %479
  switch i32 %2, label %4216 [
    i32 6, label %484
    i32 8, label %494
    i32 10, label %504
    i32 12, label %514
    i32 15, label %523
    i32 16, label %533
    i32 17, label %543
    i32 18, label %553
    i32 0, label %562
    i32 1, label %577
    i32 3, label %593
    i32 2, label %594
    i32 4, label %595
  ]

484:                                              ; preds = %483
  %485 = load i64, ptr %3, align 8, !tbaa !5
  %.not16685 = icmp eq ptr %4, null
  br i1 %.not16685, label %492, label %486

486:                                              ; preds = %484
  %.not16686 = icmp eq ptr %5, null
  br i1 %.not16686, label %491, label %487

487:                                              ; preds = %486
  %488 = load i64, ptr %4, align 8, !tbaa !5
  %.not16687 = icmp sgt i64 %488, %485
  br i1 %.not16687, label %491, label %489

489:                                              ; preds = %487
  %490 = load i64, ptr %5, align 8, !tbaa !5
  %.not16688 = icmp sgt i64 %485, %490
  br i1 %.not16688, label %491, label %492

491:                                              ; preds = %489, %487, %486
  tail call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.24, i32 noundef 479, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

492:                                              ; preds = %484, %489
  %493 = trunc i64 %485 to i8
  store i8 %493, ptr %0, align 1, !tbaa !15
  br label %4216

494:                                              ; preds = %483
  %495 = load i32, ptr %3, align 4, !tbaa !11
  %.not16681 = icmp eq ptr %4, null
  br i1 %.not16681, label %502, label %496

496:                                              ; preds = %494
  %.not16682 = icmp eq ptr %5, null
  br i1 %.not16682, label %501, label %497

497:                                              ; preds = %496
  %498 = load i32, ptr %4, align 4, !tbaa !11
  %.not16683 = icmp sgt i32 %498, %495
  br i1 %.not16683, label %501, label %499

499:                                              ; preds = %497
  %500 = load i32, ptr %5, align 4, !tbaa !11
  %.not16684 = icmp sgt i32 %495, %500
  br i1 %.not16684, label %501, label %502

501:                                              ; preds = %499, %497, %496
  tail call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.24, i32 noundef 479, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

502:                                              ; preds = %494, %499
  %503 = trunc i32 %495 to i8
  store i8 %503, ptr %0, align 1, !tbaa !15
  br label %4216

504:                                              ; preds = %483
  %505 = load i16, ptr %3, align 2, !tbaa !13
  %.not16677 = icmp eq ptr %4, null
  br i1 %.not16677, label %512, label %506

506:                                              ; preds = %504
  %.not16678 = icmp eq ptr %5, null
  br i1 %.not16678, label %511, label %507

507:                                              ; preds = %506
  %508 = load i16, ptr %4, align 2, !tbaa !13
  %.not16679 = icmp sgt i16 %508, %505
  br i1 %.not16679, label %511, label %509

509:                                              ; preds = %507
  %510 = load i16, ptr %5, align 2, !tbaa !13
  %.not16680 = icmp sgt i16 %505, %510
  br i1 %.not16680, label %511, label %512

511:                                              ; preds = %509, %507, %506
  tail call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.24, i32 noundef 479, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

512:                                              ; preds = %504, %509
  %513 = trunc i16 %505 to i8
  store i8 %513, ptr %0, align 1, !tbaa !15
  br label %4216

514:                                              ; preds = %483
  %515 = load i8, ptr %3, align 1, !tbaa !15
  %.not16673 = icmp eq ptr %4, null
  br i1 %.not16673, label %522, label %516

516:                                              ; preds = %514
  %.not16674 = icmp eq ptr %5, null
  br i1 %.not16674, label %521, label %517

517:                                              ; preds = %516
  %518 = load i8, ptr %4, align 1, !tbaa !15
  %.not16675 = icmp sgt i8 %518, %515
  br i1 %.not16675, label %521, label %519

519:                                              ; preds = %517
  %520 = load i8, ptr %5, align 1, !tbaa !15
  %.not16676 = icmp sgt i8 %515, %520
  br i1 %.not16676, label %521, label %522

521:                                              ; preds = %519, %517, %516
  tail call void @__assert_fail(ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.24, i32 noundef 479, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

522:                                              ; preds = %514, %519
  store i8 %515, ptr %0, align 1, !tbaa !15
  br label %4216

523:                                              ; preds = %483
  %524 = load i64, ptr %3, align 8, !tbaa !5
  %.not16669 = icmp eq ptr %4, null
  br i1 %.not16669, label %531, label %525

525:                                              ; preds = %523
  %.not16670 = icmp eq ptr %5, null
  br i1 %.not16670, label %530, label %526

526:                                              ; preds = %525
  %527 = load i64, ptr %4, align 8, !tbaa !5
  %.not16671 = icmp ugt i64 %527, %524
  br i1 %.not16671, label %530, label %528

528:                                              ; preds = %526
  %529 = load i64, ptr %5, align 8, !tbaa !5
  %.not16672 = icmp ugt i64 %524, %529
  br i1 %.not16672, label %530, label %531

530:                                              ; preds = %528, %526, %525
  tail call void @__assert_fail(ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.24, i32 noundef 479, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

531:                                              ; preds = %523, %528
  %532 = trunc i64 %524 to i8
  store i8 %532, ptr %0, align 1, !tbaa !15
  br label %4216

533:                                              ; preds = %483
  %534 = load i32, ptr %3, align 4, !tbaa !11
  %.not16665 = icmp eq ptr %4, null
  br i1 %.not16665, label %541, label %535

535:                                              ; preds = %533
  %.not16666 = icmp eq ptr %5, null
  br i1 %.not16666, label %540, label %536

536:                                              ; preds = %535
  %537 = load i32, ptr %4, align 4, !tbaa !11
  %.not16667 = icmp ugt i32 %537, %534
  br i1 %.not16667, label %540, label %538

538:                                              ; preds = %536
  %539 = load i32, ptr %5, align 4, !tbaa !11
  %.not16668 = icmp ugt i32 %534, %539
  br i1 %.not16668, label %540, label %541

540:                                              ; preds = %538, %536, %535
  tail call void @__assert_fail(ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.24, i32 noundef 479, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

541:                                              ; preds = %533, %538
  %542 = trunc i32 %534 to i8
  store i8 %542, ptr %0, align 1, !tbaa !15
  br label %4216

543:                                              ; preds = %483
  %544 = load i16, ptr %3, align 2, !tbaa !13
  %.not16661 = icmp eq ptr %4, null
  br i1 %.not16661, label %551, label %545

545:                                              ; preds = %543
  %.not16662 = icmp eq ptr %5, null
  br i1 %.not16662, label %550, label %546

546:                                              ; preds = %545
  %547 = load i16, ptr %4, align 2, !tbaa !13
  %.not16663 = icmp ugt i16 %547, %544
  br i1 %.not16663, label %550, label %548

548:                                              ; preds = %546
  %549 = load i16, ptr %5, align 2, !tbaa !13
  %.not16664 = icmp ugt i16 %544, %549
  br i1 %.not16664, label %550, label %551

550:                                              ; preds = %548, %546, %545
  tail call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.24, i32 noundef 479, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

551:                                              ; preds = %543, %548
  %552 = trunc i16 %544 to i8
  store i8 %552, ptr %0, align 1, !tbaa !15
  br label %4216

553:                                              ; preds = %483
  %554 = load i8, ptr %3, align 1, !tbaa !15
  %.not16657 = icmp eq ptr %4, null
  br i1 %.not16657, label %561, label %555

555:                                              ; preds = %553
  %.not16658 = icmp eq ptr %5, null
  br i1 %.not16658, label %560, label %556

556:                                              ; preds = %555
  %557 = load i8, ptr %4, align 1, !tbaa !15
  %.not16659 = icmp ugt i8 %557, %554
  br i1 %.not16659, label %560, label %558

558:                                              ; preds = %556
  %559 = load i8, ptr %5, align 1, !tbaa !15
  %.not16660 = icmp ugt i8 %554, %559
  br i1 %.not16660, label %560, label %561

560:                                              ; preds = %558, %556, %555
  tail call void @__assert_fail(ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.24, i32 noundef 479, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

561:                                              ; preds = %553, %558
  store i8 %554, ptr %0, align 1, !tbaa !15
  br label %4216

562:                                              ; preds = %483
  %563 = load double, ptr %3, align 8, !tbaa !9
  %.not16654 = icmp ne ptr %4, null
  %564 = fcmp ord double %563, 0.000000e+00
  %or.cond16843 = select i1 %.not16654, i1 %564, i1 false
  br i1 %or.cond16843, label %565, label %573

565:                                              ; preds = %562
  %.not16655 = icmp eq ptr %5, null
  br i1 %.not16655, label %572, label %566

566:                                              ; preds = %565
  %567 = load double, ptr %4, align 8, !tbaa !9
  %568 = fcmp ugt double %567, %563
  br i1 %568, label %572, label %569

569:                                              ; preds = %566
  %570 = load double, ptr %5, align 8, !tbaa !9
  %571 = fcmp ugt double %563, %570
  br i1 %571, label %572, label %573

572:                                              ; preds = %569, %566, %565
  tail call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.24, i32 noundef 479, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

573:                                              ; preds = %562, %569
  %574 = fcmp oge double %563, 0.000000e+00
  %.v16656 = select i1 %574, double 5.000000e-01, double -5.000000e-01
  %575 = fadd double %563, %.v16656
  %576 = fptoui double %575 to i8
  store i8 %576, ptr %0, align 1, !tbaa !15
  br label %4216

577:                                              ; preds = %483
  %578 = load float, ptr %3, align 4, !tbaa !16
  %.not16652 = icmp ne ptr %4, null
  %579 = fcmp ord float %578, 0.000000e+00
  %or.cond16844 = select i1 %.not16652, i1 %579, i1 false
  br i1 %or.cond16844, label %580, label %588

580:                                              ; preds = %577
  %.not16653 = icmp eq ptr %5, null
  br i1 %.not16653, label %587, label %581

581:                                              ; preds = %580
  %582 = load float, ptr %4, align 4, !tbaa !16
  %583 = fcmp ugt float %582, %578
  br i1 %583, label %587, label %584

584:                                              ; preds = %581
  %585 = load float, ptr %5, align 4, !tbaa !16
  %586 = fcmp ugt float %578, %585
  br i1 %586, label %587, label %588

587:                                              ; preds = %584, %581, %580
  tail call void @__assert_fail(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.24, i32 noundef 479, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

588:                                              ; preds = %577, %584
  %589 = fcmp ult float %578, 0.000000e+00
  %590 = fpext float %578 to double
  %.v17184 = select i1 %589, double -5.000000e-01, double 5.000000e-01
  %591 = fadd double %.v17184, %590
  %592 = fptoui double %591 to i8
  store i8 %592, ptr %0, align 1, !tbaa !15
  br label %4216

593:                                              ; preds = %483
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 479, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

594:                                              ; preds = %483
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 479, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

595:                                              ; preds = %483
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 479, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

596:                                              ; preds = %6
  %597 = icmp ne ptr %0, null
  %598 = icmp ne ptr %3, null
  %or.cond211 = and i1 %597, %598
  br i1 %or.cond211, label %600, label %599

599:                                              ; preds = %596
  tail call void @__assert_fail(ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.24, i32 noundef 482, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

600:                                              ; preds = %596
  switch i32 %2, label %4216 [
    i32 6, label %601
    i32 8, label %648
    i32 10, label %684
    i32 12, label %720
    i32 15, label %756
    i32 16, label %790
    i32 17, label %821
    i32 18, label %852
    i32 0, label %883
    i32 1, label %940
    i32 3, label %1001
    i32 2, label %1002
    i32 4, label %1003
  ]

601:                                              ; preds = %600
  %602 = load i64, ptr %3, align 8, !tbaa !5
  %.not16646 = icmp eq ptr %4, null
  br i1 %.not16646, label %.thread, label %603

603:                                              ; preds = %601
  %.not16647 = icmp eq ptr %5, null
  br i1 %.not16647, label %608, label %604

604:                                              ; preds = %603
  %605 = load i64, ptr %4, align 8, !tbaa !5
  %.not16648 = icmp sgt i64 %605, %602
  br i1 %.not16648, label %608, label %606

606:                                              ; preds = %604
  %607 = load i64, ptr %5, align 8, !tbaa !5
  %.not16649 = icmp sgt i64 %602, %607
  br i1 %.not16649, label %608, label %609

608:                                              ; preds = %606, %604, %603
  tail call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.24, i32 noundef 482, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

609:                                              ; preds = %606
  %610 = sitofp i64 %605 to double
  %611 = sitofp i64 %607 to double
  %612 = fcmp olt double %610, %611
  br i1 %612, label %613, label %.thread

613:                                              ; preds = %609
  %614 = icmp slt i64 %605, 0
  %615 = icmp sgt i64 %607, 0
  %or.cond215 = and i1 %614, %615
  br i1 %or.cond215, label %616, label %621

616:                                              ; preds = %613
  %617 = fneg double %610
  %618 = fcmp ogt double %611, %617
  %619 = select i1 %618, double %611, double %617
  %620 = fneg double %619
  br label %621

621:                                              ; preds = %613, %616
  %.114297 = phi double [ %619, %616 ], [ %611, %613 ]
  %.114295 = phi double [ %620, %616 ], [ %610, %613 ]
  %622 = fcmp oge double %.114295, 0.000000e+00
  %623 = select i1 %622, double 0.000000e+00, double 0xC3E0000000000000
  %624 = fcmp oge double %.114297, 0.000000e+00
  %625 = select i1 %624, double 0x43E0000000000000, double 0.000000e+00
  %626 = sitofp i64 %602 to double
  %627 = fsub double %626, %.114295
  %628 = fsub double %625, %623
  %629 = fmul double %627, %628
  %630 = fsub double %.114297, %.114295
  %631 = fdiv double %629, %630
  %632 = fadd double %623, %631
  %633 = fcmp oge double %632, 0.000000e+00
  %.v16651 = select i1 %633, double 5.000000e-01, double -5.000000e-01
  %634 = fadd double %632, %.v16651
  %635 = fcmp olt double %623, %634
  br i1 %635, label %636, label %647

636:                                              ; preds = %621
  %637 = fcmp ugt double %634, %625
  br i1 %637, label %638, label %647

638:                                              ; preds = %636
  %639 = fcmp olt double %634, %625
  %. = select i1 %639, double %634, double %625
  br label %647

.thread:                                          ; preds = %601, %609
  %640 = sitofp i64 %602 to double
  %641 = fcmp ogt double %640, 0xC3E0000000000000
  br i1 %641, label %642, label %647

642:                                              ; preds = %.thread
  %643 = fcmp ugt double %640, 0x43E0000000000000
  br i1 %643, label %644, label %647

644:                                              ; preds = %642
  %645 = fcmp olt double %640, 0x43E0000000000000
  %646 = select i1 %645, double %640, double 0x43E0000000000000
  br label %647

647:                                              ; preds = %644, %642, %.thread, %636, %638, %621
  %storemerge16650.in = phi double [ %634, %636 ], [ %., %638 ], [ %623, %621 ], [ %646, %644 ], [ %640, %642 ], [ 0xC3E0000000000000, %.thread ]
  %storemerge16650 = fptosi double %storemerge16650.in to i64
  store i64 %storemerge16650, ptr %0, align 8, !tbaa !5
  br label %4216

648:                                              ; preds = %600
  %649 = load i32, ptr %3, align 4, !tbaa !11
  %.not16640 = icmp eq ptr %4, null
  br i1 %.not16640, label %.thread16942, label %650

650:                                              ; preds = %648
  %.not16641 = icmp eq ptr %5, null
  br i1 %.not16641, label %655, label %651

651:                                              ; preds = %650
  %652 = load i32, ptr %4, align 4, !tbaa !11
  %.not16642 = icmp sgt i32 %652, %649
  br i1 %.not16642, label %655, label %653

653:                                              ; preds = %651
  %654 = load i32, ptr %5, align 4, !tbaa !11
  %.not16643 = icmp sgt i32 %649, %654
  br i1 %.not16643, label %655, label %656

655:                                              ; preds = %653, %651, %650
  tail call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.24, i32 noundef 482, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

656:                                              ; preds = %653
  %657 = sitofp i32 %652 to double
  %658 = sitofp i32 %654 to double
  %659 = fcmp olt double %657, %658
  br i1 %659, label %660, label %.thread16942

660:                                              ; preds = %656
  %661 = icmp sgt i32 %652, -1
  %662 = select i1 %661, double 0.000000e+00, double 0xC3E0000000000000
  %663 = icmp sgt i32 %654, -1
  %664 = select i1 %663, double 0x43E0000000000000, double 0.000000e+00
  %665 = sitofp i32 %649 to double
  %666 = fsub double %665, %657
  %667 = fsub double %664, %662
  %668 = fmul double %666, %667
  %669 = fsub double %658, %657
  %670 = fdiv double %668, %669
  %671 = fadd double %662, %670
  %672 = fcmp oge double %671, 0.000000e+00
  %.v16645 = select i1 %672, double 5.000000e-01, double -5.000000e-01
  %673 = fadd double %671, %.v16645
  %674 = fcmp olt double %662, %673
  br i1 %674, label %675, label %679

675:                                              ; preds = %660
  %676 = fcmp ugt double %673, %664
  br i1 %676, label %677, label %679

677:                                              ; preds = %675
  %678 = fcmp olt double %673, %664
  %.16845 = select i1 %678, double %673, double %664
  br label %679

679:                                              ; preds = %660, %677, %675
  %680 = phi double [ %673, %675 ], [ %.16845, %677 ], [ %662, %660 ]
  %681 = fptosi double %680 to i64
  br label %683

.thread16942:                                     ; preds = %648, %656
  %682 = sext i32 %649 to i64
  br label %683

683:                                              ; preds = %.thread16942, %679
  %storemerge16644 = phi i64 [ %682, %.thread16942 ], [ %681, %679 ]
  store i64 %storemerge16644, ptr %0, align 8, !tbaa !5
  br label %4216

684:                                              ; preds = %600
  %685 = load i16, ptr %3, align 2, !tbaa !13
  %.not16634 = icmp eq ptr %4, null
  br i1 %.not16634, label %.thread16945, label %686

686:                                              ; preds = %684
  %.not16635 = icmp eq ptr %5, null
  br i1 %.not16635, label %691, label %687

687:                                              ; preds = %686
  %688 = load i16, ptr %4, align 2, !tbaa !13
  %.not16636 = icmp sgt i16 %688, %685
  br i1 %.not16636, label %691, label %689

689:                                              ; preds = %687
  %690 = load i16, ptr %5, align 2, !tbaa !13
  %.not16637 = icmp sgt i16 %685, %690
  br i1 %.not16637, label %691, label %692

691:                                              ; preds = %689, %687, %686
  tail call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.24, i32 noundef 482, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

692:                                              ; preds = %689
  %693 = sitofp i16 %688 to double
  %694 = sitofp i16 %690 to double
  %695 = fcmp olt double %693, %694
  br i1 %695, label %696, label %.thread16945

696:                                              ; preds = %692
  %697 = icmp sgt i16 %688, -1
  %698 = select i1 %697, double 0.000000e+00, double 0xC3E0000000000000
  %699 = icmp sgt i16 %690, -1
  %700 = select i1 %699, double 0x43E0000000000000, double 0.000000e+00
  %701 = sitofp i16 %685 to double
  %702 = fsub double %701, %693
  %703 = fsub double %700, %698
  %704 = fmul double %702, %703
  %705 = fsub double %694, %693
  %706 = fdiv double %704, %705
  %707 = fadd double %698, %706
  %708 = fcmp oge double %707, 0.000000e+00
  %.v16639 = select i1 %708, double 5.000000e-01, double -5.000000e-01
  %709 = fadd double %707, %.v16639
  %710 = fcmp olt double %698, %709
  br i1 %710, label %711, label %715

711:                                              ; preds = %696
  %712 = fcmp ugt double %709, %700
  br i1 %712, label %713, label %715

713:                                              ; preds = %711
  %714 = fcmp olt double %709, %700
  %.16846 = select i1 %714, double %709, double %700
  br label %715

715:                                              ; preds = %696, %713, %711
  %716 = phi double [ %709, %711 ], [ %.16846, %713 ], [ %698, %696 ]
  %717 = fptosi double %716 to i64
  br label %719

.thread16945:                                     ; preds = %684, %692
  %718 = sext i16 %685 to i64
  br label %719

719:                                              ; preds = %.thread16945, %715
  %storemerge16638 = phi i64 [ %718, %.thread16945 ], [ %717, %715 ]
  store i64 %storemerge16638, ptr %0, align 8, !tbaa !5
  br label %4216

720:                                              ; preds = %600
  %721 = load i8, ptr %3, align 1, !tbaa !15
  %.not16628 = icmp eq ptr %4, null
  br i1 %.not16628, label %.thread16948, label %722

722:                                              ; preds = %720
  %.not16629 = icmp eq ptr %5, null
  br i1 %.not16629, label %727, label %723

723:                                              ; preds = %722
  %724 = load i8, ptr %4, align 1, !tbaa !15
  %.not16630 = icmp sgt i8 %724, %721
  br i1 %.not16630, label %727, label %725

725:                                              ; preds = %723
  %726 = load i8, ptr %5, align 1, !tbaa !15
  %.not16631 = icmp sgt i8 %721, %726
  br i1 %.not16631, label %727, label %728

727:                                              ; preds = %725, %723, %722
  tail call void @__assert_fail(ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.24, i32 noundef 482, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

728:                                              ; preds = %725
  %729 = sitofp i8 %724 to double
  %730 = sitofp i8 %726 to double
  %731 = fcmp olt double %729, %730
  br i1 %731, label %732, label %.thread16948

732:                                              ; preds = %728
  %733 = icmp sgt i8 %724, -1
  %734 = select i1 %733, double 0.000000e+00, double 0xC3E0000000000000
  %735 = icmp sgt i8 %726, -1
  %736 = select i1 %735, double 0x43E0000000000000, double 0.000000e+00
  %737 = sitofp i8 %721 to double
  %738 = fsub double %737, %729
  %739 = fsub double %736, %734
  %740 = fmul double %738, %739
  %741 = fsub double %730, %729
  %742 = fdiv double %740, %741
  %743 = fadd double %734, %742
  %744 = fcmp oge double %743, 0.000000e+00
  %.v16633 = select i1 %744, double 5.000000e-01, double -5.000000e-01
  %745 = fadd double %743, %.v16633
  %746 = fcmp olt double %734, %745
  br i1 %746, label %747, label %751

747:                                              ; preds = %732
  %748 = fcmp ugt double %745, %736
  br i1 %748, label %749, label %751

749:                                              ; preds = %747
  %750 = fcmp olt double %745, %736
  %.16847 = select i1 %750, double %745, double %736
  br label %751

751:                                              ; preds = %732, %749, %747
  %752 = phi double [ %745, %747 ], [ %.16847, %749 ], [ %734, %732 ]
  %753 = fptosi double %752 to i64
  br label %755

.thread16948:                                     ; preds = %720, %728
  %754 = sext i8 %721 to i64
  br label %755

755:                                              ; preds = %.thread16948, %751
  %storemerge16632 = phi i64 [ %754, %.thread16948 ], [ %753, %751 ]
  store i64 %storemerge16632, ptr %0, align 8, !tbaa !5
  br label %4216

756:                                              ; preds = %600
  %757 = load i64, ptr %3, align 8, !tbaa !5
  %.not16622 = icmp eq ptr %4, null
  br i1 %.not16622, label %.thread16951, label %758

758:                                              ; preds = %756
  %.not16623 = icmp eq ptr %5, null
  br i1 %.not16623, label %763, label %759

759:                                              ; preds = %758
  %760 = load i64, ptr %4, align 8, !tbaa !5
  %.not16624 = icmp ugt i64 %760, %757
  br i1 %.not16624, label %763, label %761

761:                                              ; preds = %759
  %762 = load i64, ptr %5, align 8, !tbaa !5
  %.not16625 = icmp ugt i64 %757, %762
  br i1 %.not16625, label %763, label %764

763:                                              ; preds = %761, %759, %758
  tail call void @__assert_fail(ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.24, i32 noundef 482, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

764:                                              ; preds = %761
  %765 = uitofp i64 %760 to double
  %766 = uitofp i64 %762 to double
  %767 = fcmp olt double %765, %766
  br i1 %767, label %768, label %.thread16951

768:                                              ; preds = %764
  %769 = uitofp i64 %757 to double
  %770 = fsub double %769, %765
  %771 = fmul double %770, 0x43E0000000000000
  %772 = fsub double %766, %765
  %773 = fdiv double %771, %772
  %774 = fadd double %773, 0.000000e+00
  %775 = fcmp oge double %773, 0.000000e+00
  %.v16627 = select i1 %775, double 5.000000e-01, double -5.000000e-01
  %776 = fadd double %774, %.v16627
  %777 = fcmp ogt double %776, 0.000000e+00
  br i1 %777, label %778, label %789

778:                                              ; preds = %768
  %779 = fcmp ugt double %776, 0x43E0000000000000
  br i1 %779, label %780, label %789

780:                                              ; preds = %778
  %781 = fcmp olt double %776, 0x43E0000000000000
  %.16848 = select i1 %781, double %776, double 0x43E0000000000000
  br label %789

.thread16951:                                     ; preds = %756, %764
  %782 = uitofp i64 %757 to double
  %783 = fcmp ogt double %782, 0xC3E0000000000000
  br i1 %783, label %784, label %789

784:                                              ; preds = %.thread16951
  %785 = fcmp ugt double %782, 0x43E0000000000000
  br i1 %785, label %786, label %789

786:                                              ; preds = %784
  %787 = fcmp olt double %782, 0x43E0000000000000
  %788 = select i1 %787, double %782, double 0x43E0000000000000
  br label %789

789:                                              ; preds = %786, %784, %.thread16951, %778, %780, %768
  %storemerge16626.in = phi double [ %776, %778 ], [ %.16848, %780 ], [ 0.000000e+00, %768 ], [ %788, %786 ], [ %782, %784 ], [ 0xC3E0000000000000, %.thread16951 ]
  %storemerge16626 = fptosi double %storemerge16626.in to i64
  store i64 %storemerge16626, ptr %0, align 8, !tbaa !5
  br label %4216

790:                                              ; preds = %600
  %791 = load i32, ptr %3, align 4, !tbaa !11
  %.not16616 = icmp eq ptr %4, null
  br i1 %.not16616, label %.thread16954, label %792

792:                                              ; preds = %790
  %.not16617 = icmp eq ptr %5, null
  br i1 %.not16617, label %797, label %793

793:                                              ; preds = %792
  %794 = load i32, ptr %4, align 4, !tbaa !11
  %.not16618 = icmp ugt i32 %794, %791
  br i1 %.not16618, label %797, label %795

795:                                              ; preds = %793
  %796 = load i32, ptr %5, align 4, !tbaa !11
  %.not16619 = icmp ugt i32 %791, %796
  br i1 %.not16619, label %797, label %798

797:                                              ; preds = %795, %793, %792
  tail call void @__assert_fail(ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.24, i32 noundef 482, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

798:                                              ; preds = %795
  %799 = uitofp i32 %794 to double
  %800 = uitofp i32 %796 to double
  %801 = fcmp olt double %799, %800
  br i1 %801, label %802, label %.thread16954

802:                                              ; preds = %798
  %803 = uitofp i32 %791 to double
  %804 = fsub double %803, %799
  %805 = fmul double %804, 0x43E0000000000000
  %806 = fsub double %800, %799
  %807 = fdiv double %805, %806
  %808 = fadd double %807, 0.000000e+00
  %809 = fcmp oge double %807, 0.000000e+00
  %.v16621 = select i1 %809, double 5.000000e-01, double -5.000000e-01
  %810 = fadd double %808, %.v16621
  %811 = fcmp ogt double %810, 0.000000e+00
  br i1 %811, label %812, label %816

812:                                              ; preds = %802
  %813 = fcmp ugt double %810, 0x43E0000000000000
  br i1 %813, label %814, label %816

814:                                              ; preds = %812
  %815 = fcmp olt double %810, 0x43E0000000000000
  %.16849 = select i1 %815, double %810, double 0x43E0000000000000
  br label %816

816:                                              ; preds = %802, %814, %812
  %817 = phi double [ %810, %812 ], [ %.16849, %814 ], [ 0.000000e+00, %802 ]
  %818 = fptosi double %817 to i64
  br label %820

.thread16954:                                     ; preds = %790, %798
  %819 = zext i32 %791 to i64
  br label %820

820:                                              ; preds = %.thread16954, %816
  %storemerge16620 = phi i64 [ %819, %.thread16954 ], [ %818, %816 ]
  store i64 %storemerge16620, ptr %0, align 8, !tbaa !5
  br label %4216

821:                                              ; preds = %600
  %822 = load i16, ptr %3, align 2, !tbaa !13
  %.not16610 = icmp eq ptr %4, null
  br i1 %.not16610, label %.thread16957, label %823

823:                                              ; preds = %821
  %.not16611 = icmp eq ptr %5, null
  br i1 %.not16611, label %828, label %824

824:                                              ; preds = %823
  %825 = load i16, ptr %4, align 2, !tbaa !13
  %.not16612 = icmp ugt i16 %825, %822
  br i1 %.not16612, label %828, label %826

826:                                              ; preds = %824
  %827 = load i16, ptr %5, align 2, !tbaa !13
  %.not16613 = icmp ugt i16 %822, %827
  br i1 %.not16613, label %828, label %829

828:                                              ; preds = %826, %824, %823
  tail call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.24, i32 noundef 482, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

829:                                              ; preds = %826
  %830 = uitofp i16 %825 to double
  %831 = uitofp i16 %827 to double
  %832 = fcmp olt double %830, %831
  br i1 %832, label %833, label %.thread16957

833:                                              ; preds = %829
  %834 = uitofp i16 %822 to double
  %835 = fsub double %834, %830
  %836 = fmul double %835, 0x43E0000000000000
  %837 = fsub double %831, %830
  %838 = fdiv double %836, %837
  %839 = fadd double %838, 0.000000e+00
  %840 = fcmp oge double %838, 0.000000e+00
  %.v16615 = select i1 %840, double 5.000000e-01, double -5.000000e-01
  %841 = fadd double %839, %.v16615
  %842 = fcmp ogt double %841, 0.000000e+00
  br i1 %842, label %843, label %847

843:                                              ; preds = %833
  %844 = fcmp ugt double %841, 0x43E0000000000000
  br i1 %844, label %845, label %847

845:                                              ; preds = %843
  %846 = fcmp olt double %841, 0x43E0000000000000
  %.16850 = select i1 %846, double %841, double 0x43E0000000000000
  br label %847

847:                                              ; preds = %833, %845, %843
  %848 = phi double [ %841, %843 ], [ %.16850, %845 ], [ 0.000000e+00, %833 ]
  %849 = fptosi double %848 to i64
  br label %851

.thread16957:                                     ; preds = %821, %829
  %850 = zext i16 %822 to i64
  br label %851

851:                                              ; preds = %.thread16957, %847
  %storemerge16614 = phi i64 [ %850, %.thread16957 ], [ %849, %847 ]
  store i64 %storemerge16614, ptr %0, align 8, !tbaa !5
  br label %4216

852:                                              ; preds = %600
  %853 = load i8, ptr %3, align 1, !tbaa !15
  %.not16604 = icmp eq ptr %4, null
  br i1 %.not16604, label %.thread16960, label %854

854:                                              ; preds = %852
  %.not16605 = icmp eq ptr %5, null
  br i1 %.not16605, label %859, label %855

855:                                              ; preds = %854
  %856 = load i8, ptr %4, align 1, !tbaa !15
  %.not16606 = icmp ugt i8 %856, %853
  br i1 %.not16606, label %859, label %857

857:                                              ; preds = %855
  %858 = load i8, ptr %5, align 1, !tbaa !15
  %.not16607 = icmp ugt i8 %853, %858
  br i1 %.not16607, label %859, label %860

859:                                              ; preds = %857, %855, %854
  tail call void @__assert_fail(ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.24, i32 noundef 482, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

860:                                              ; preds = %857
  %861 = uitofp i8 %856 to double
  %862 = uitofp i8 %858 to double
  %863 = fcmp olt double %861, %862
  br i1 %863, label %864, label %.thread16960

864:                                              ; preds = %860
  %865 = uitofp i8 %853 to double
  %866 = fsub double %865, %861
  %867 = fmul double %866, 0x43E0000000000000
  %868 = fsub double %862, %861
  %869 = fdiv double %867, %868
  %870 = fadd double %869, 0.000000e+00
  %871 = fcmp oge double %869, 0.000000e+00
  %.v16609 = select i1 %871, double 5.000000e-01, double -5.000000e-01
  %872 = fadd double %870, %.v16609
  %873 = fcmp ogt double %872, 0.000000e+00
  br i1 %873, label %874, label %878

874:                                              ; preds = %864
  %875 = fcmp ugt double %872, 0x43E0000000000000
  br i1 %875, label %876, label %878

876:                                              ; preds = %874
  %877 = fcmp olt double %872, 0x43E0000000000000
  %.16851 = select i1 %877, double %872, double 0x43E0000000000000
  br label %878

878:                                              ; preds = %864, %876, %874
  %879 = phi double [ %872, %874 ], [ %.16851, %876 ], [ 0.000000e+00, %864 ]
  %880 = fptosi double %879 to i64
  br label %882

.thread16960:                                     ; preds = %852, %860
  %881 = zext i8 %853 to i64
  br label %882

882:                                              ; preds = %.thread16960, %878
  %storemerge16608 = phi i64 [ %881, %.thread16960 ], [ %880, %878 ]
  store i64 %storemerge16608, ptr %0, align 8, !tbaa !5
  br label %4216

883:                                              ; preds = %600
  %884 = load double, ptr %3, align 8, !tbaa !9
  %.not16600 = icmp ne ptr %4, null
  %885 = fcmp ord double %884, 0.000000e+00
  %or.cond16852 = select i1 %.not16600, i1 %885, i1 false
  br i1 %or.cond16852, label %886, label %.thread16963

886:                                              ; preds = %883
  %.not16601 = icmp eq ptr %5, null
  br i1 %.not16601, label %893, label %887

887:                                              ; preds = %886
  %888 = load double, ptr %4, align 8, !tbaa !9
  %889 = fcmp ugt double %888, %884
  br i1 %889, label %893, label %890

890:                                              ; preds = %887
  %891 = load double, ptr %5, align 8, !tbaa !9
  %892 = fcmp ugt double %884, %891
  br i1 %892, label %893, label %894

893:                                              ; preds = %890, %887, %886
  tail call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.24, i32 noundef 482, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

894:                                              ; preds = %890
  %895 = fcmp olt double %888, %891
  br i1 %895, label %896, label %.thread16963

896:                                              ; preds = %894
  %897 = fcmp olt double %888, 0.000000e+00
  %898 = fcmp ogt double %891, 0.000000e+00
  %or.cond247 = and i1 %897, %898
  br i1 %or.cond247, label %899, label %904

899:                                              ; preds = %896
  %900 = fneg double %888
  %901 = fcmp ogt double %891, %900
  %902 = select i1 %901, double %891, double %900
  %903 = fneg double %902
  br label %904

904:                                              ; preds = %896, %899
  %.114357 = phi double [ %902, %899 ], [ %891, %896 ]
  %.114350 = phi double [ %903, %899 ], [ %888, %896 ]
  %905 = fcmp oge double %.114350, 0.000000e+00
  %906 = select i1 %905, double 0.000000e+00, double 0xC3E0000000000000
  %907 = fcmp oge double %.114357, 0.000000e+00
  %908 = select i1 %907, double 0x43E0000000000000, double 0.000000e+00
  %909 = fsub double %884, %.114350
  %910 = fsub double %908, %906
  %911 = fmul double %909, %910
  %912 = fsub double %.114357, %.114350
  %913 = fdiv double %911, %912
  %914 = fadd double %906, %913
  %915 = fcmp oge double %914, 0.000000e+00
  %.v16603 = select i1 %915, double 5.000000e-01, double -5.000000e-01
  %916 = fadd double %914, %.v16603
  %917 = fcmp olt double %906, %916
  br i1 %917, label %918, label %939

918:                                              ; preds = %904
  %919 = fcmp ugt double %916, %908
  br i1 %919, label %920, label %939

920:                                              ; preds = %918
  %921 = fcmp olt double %916, %908
  %.16853 = select i1 %921, double %916, double %908
  br label %939

.thread16963:                                     ; preds = %883, %894
  %922 = fcmp ult double %884, 0.000000e+00
  br i1 %922, label %931, label %923

923:                                              ; preds = %.thread16963
  %924 = fadd double %884, 5.000000e-01
  %925 = fcmp ogt double %924, 0xC3E0000000000000
  br i1 %925, label %926, label %939

926:                                              ; preds = %923
  %927 = fcmp ugt double %924, 0x43E0000000000000
  br i1 %927, label %928, label %939

928:                                              ; preds = %926
  %929 = fcmp olt double %924, 0x43E0000000000000
  %930 = select i1 %929, double %924, double 0x43E0000000000000
  br label %939

931:                                              ; preds = %.thread16963
  %932 = fadd double %884, -5.000000e-01
  %933 = fcmp ogt double %932, 0xC3E0000000000000
  br i1 %933, label %934, label %939

934:                                              ; preds = %931
  %935 = fcmp ugt double %932, 0x43E0000000000000
  br i1 %935, label %936, label %939

936:                                              ; preds = %934
  %937 = fcmp olt double %932, 0x43E0000000000000
  %938 = select i1 %937, double %932, double 0x43E0000000000000
  br label %939

939:                                              ; preds = %928, %936, %926, %923, %934, %931, %918, %920, %904
  %storemerge16602.in = phi double [ %916, %918 ], [ %.16853, %920 ], [ %906, %904 ], [ %930, %928 ], [ %938, %936 ], [ %924, %926 ], [ 0xC3E0000000000000, %923 ], [ %932, %934 ], [ 0xC3E0000000000000, %931 ]
  %storemerge16602 = fptosi double %storemerge16602.in to i64
  store i64 %storemerge16602, ptr %0, align 8, !tbaa !5
  br label %4216

940:                                              ; preds = %600
  %941 = load float, ptr %3, align 4, !tbaa !16
  %.not16596 = icmp ne ptr %4, null
  %942 = fcmp ord float %941, 0.000000e+00
  %or.cond16854 = select i1 %.not16596, i1 %942, i1 false
  br i1 %or.cond16854, label %943, label %.thread16966

943:                                              ; preds = %940
  %.not16597 = icmp eq ptr %5, null
  br i1 %.not16597, label %950, label %944

944:                                              ; preds = %943
  %945 = load float, ptr %4, align 4, !tbaa !16
  %946 = fcmp ugt float %945, %941
  br i1 %946, label %950, label %947

947:                                              ; preds = %944
  %948 = load float, ptr %5, align 4, !tbaa !16
  %949 = fcmp ugt float %941, %948
  br i1 %949, label %950, label %951

950:                                              ; preds = %947, %944, %943
  tail call void @__assert_fail(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.24, i32 noundef 482, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

951:                                              ; preds = %947
  %952 = fpext float %945 to double
  %953 = fpext float %948 to double
  %954 = fcmp olt float %945, %948
  br i1 %954, label %955, label %.thread16966

955:                                              ; preds = %951
  %956 = fcmp olt float %945, 0.000000e+00
  %957 = fcmp ogt float %948, 0.000000e+00
  %or.cond251 = and i1 %956, %957
  br i1 %or.cond251, label %958, label %963

958:                                              ; preds = %955
  %959 = fneg double %952
  %960 = fcmp ogt double %953, %959
  %961 = select i1 %960, double %953, double %959
  %962 = fneg double %961
  br label %963

963:                                              ; preds = %955, %958
  %.114362 = phi double [ %961, %958 ], [ %953, %955 ]
  %.114360 = phi double [ %962, %958 ], [ %952, %955 ]
  %964 = fcmp oge double %.114360, 0.000000e+00
  %965 = select i1 %964, double 0.000000e+00, double 0xC3E0000000000000
  %966 = fcmp oge double %.114362, 0.000000e+00
  %967 = select i1 %966, double 0x43E0000000000000, double 0.000000e+00
  %968 = fpext float %941 to double
  %969 = fsub double %968, %.114360
  %970 = fsub double %967, %965
  %971 = fmul double %969, %970
  %972 = fsub double %.114362, %.114360
  %973 = fdiv double %971, %972
  %974 = fadd double %965, %973
  %975 = fcmp oge double %974, 0.000000e+00
  %.v16599 = select i1 %975, double 5.000000e-01, double -5.000000e-01
  %976 = fadd double %974, %.v16599
  %977 = fcmp olt double %965, %976
  br i1 %977, label %978, label %1000

978:                                              ; preds = %963
  %979 = fcmp ugt double %976, %967
  br i1 %979, label %980, label %1000

980:                                              ; preds = %978
  %981 = fcmp olt double %976, %967
  %.16855 = select i1 %981, double %976, double %967
  br label %1000

.thread16966:                                     ; preds = %940, %951
  %982 = fcmp ult float %941, 0.000000e+00
  %983 = fpext float %941 to double
  br i1 %982, label %992, label %984

984:                                              ; preds = %.thread16966
  %985 = fadd double %983, 5.000000e-01
  %986 = fcmp ogt double %985, 0xC3E0000000000000
  br i1 %986, label %987, label %1000

987:                                              ; preds = %984
  %988 = fcmp ugt double %985, 0x43E0000000000000
  br i1 %988, label %989, label %1000

989:                                              ; preds = %987
  %990 = fcmp olt double %985, 0x43E0000000000000
  %991 = select i1 %990, double %985, double 0x43E0000000000000
  br label %1000

992:                                              ; preds = %.thread16966
  %993 = fadd double %983, -5.000000e-01
  %994 = fcmp ogt double %993, 0xC3E0000000000000
  br i1 %994, label %995, label %1000

995:                                              ; preds = %992
  %996 = fcmp ugt double %993, 0x43E0000000000000
  br i1 %996, label %997, label %1000

997:                                              ; preds = %995
  %998 = fcmp olt double %993, 0x43E0000000000000
  %999 = select i1 %998, double %993, double 0x43E0000000000000
  br label %1000

1000:                                             ; preds = %989, %997, %987, %984, %995, %992, %978, %980, %963
  %storemerge16598.in = phi double [ %976, %978 ], [ %.16855, %980 ], [ %965, %963 ], [ %991, %989 ], [ %999, %997 ], [ %985, %987 ], [ 0xC3E0000000000000, %984 ], [ %993, %995 ], [ 0xC3E0000000000000, %992 ]
  %storemerge16598 = fptosi double %storemerge16598.in to i64
  store i64 %storemerge16598, ptr %0, align 8, !tbaa !5
  br label %4216

1001:                                             ; preds = %600
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 482, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1002:                                             ; preds = %600
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 482, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1003:                                             ; preds = %600
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 482, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1004:                                             ; preds = %6
  %1005 = icmp ne ptr %0, null
  %1006 = icmp ne ptr %3, null
  %or.cond253 = and i1 %1005, %1006
  br i1 %or.cond253, label %1008, label %1007

1007:                                             ; preds = %1004
  tail call void @__assert_fail(ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.24, i32 noundef 485, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1008:                                             ; preds = %1004
  switch i32 %2, label %4216 [
    i32 6, label %1009
    i32 8, label %1056
    i32 10, label %1098
    i32 12, label %1134
    i32 15, label %1170
    i32 16, label %1200
    i32 17, label %1232
    i32 18, label %1263
    i32 0, label %1294
    i32 1, label %1351
    i32 3, label %1412
    i32 2, label %1413
    i32 4, label %1414
  ]

1009:                                             ; preds = %1008
  %1010 = load i64, ptr %3, align 8, !tbaa !5
  %.not16590 = icmp eq ptr %4, null
  br i1 %.not16590, label %.thread16969, label %1011

1011:                                             ; preds = %1009
  %.not16591 = icmp eq ptr %5, null
  br i1 %.not16591, label %1016, label %1012

1012:                                             ; preds = %1011
  %1013 = load i64, ptr %4, align 8, !tbaa !5
  %.not16592 = icmp sgt i64 %1013, %1010
  br i1 %.not16592, label %1016, label %1014

1014:                                             ; preds = %1012
  %1015 = load i64, ptr %5, align 8, !tbaa !5
  %.not16593 = icmp sgt i64 %1010, %1015
  br i1 %.not16593, label %1016, label %1017

1016:                                             ; preds = %1014, %1012, %1011
  tail call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.24, i32 noundef 485, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1017:                                             ; preds = %1014
  %1018 = sitofp i64 %1013 to double
  %1019 = sitofp i64 %1015 to double
  %1020 = fcmp olt double %1018, %1019
  br i1 %1020, label %1021, label %.thread16969

1021:                                             ; preds = %1017
  %1022 = icmp slt i64 %1013, 0
  %1023 = icmp sgt i64 %1015, 0
  %or.cond257 = and i1 %1022, %1023
  br i1 %or.cond257, label %1024, label %1029

1024:                                             ; preds = %1021
  %1025 = fneg double %1018
  %1026 = fcmp ogt double %1019, %1025
  %1027 = select i1 %1026, double %1019, double %1025
  %1028 = fneg double %1027
  br label %1029

1029:                                             ; preds = %1021, %1024
  %.114367 = phi double [ %1027, %1024 ], [ %1019, %1021 ]
  %.114365 = phi double [ %1028, %1024 ], [ %1018, %1021 ]
  %1030 = fcmp oge double %.114365, 0.000000e+00
  %1031 = select i1 %1030, double 0.000000e+00, double 0xC1E0000000000000
  %1032 = fcmp oge double %.114367, 0.000000e+00
  %1033 = select i1 %1032, double 0x41DFFFFFFFC00000, double 0.000000e+00
  %1034 = sitofp i64 %1010 to double
  %1035 = fsub double %1034, %.114365
  %1036 = fsub double %1033, %1031
  %1037 = fmul double %1035, %1036
  %1038 = fsub double %.114367, %.114365
  %1039 = fdiv double %1037, %1038
  %1040 = fadd double %1031, %1039
  %1041 = fcmp oge double %1040, 0.000000e+00
  %.v16595 = select i1 %1041, double 5.000000e-01, double -5.000000e-01
  %1042 = fadd double %1040, %.v16595
  %1043 = fcmp olt double %1031, %1042
  br i1 %1043, label %1044, label %1055

1044:                                             ; preds = %1029
  %1045 = fcmp ugt double %1042, %1033
  br i1 %1045, label %1046, label %1055

1046:                                             ; preds = %1044
  %1047 = fcmp olt double %1042, %1033
  %.16856 = select i1 %1047, double %1042, double %1033
  br label %1055

.thread16969:                                     ; preds = %1009, %1017
  %1048 = sitofp i64 %1010 to double
  %1049 = icmp sgt i64 %1010, -2147483648
  br i1 %1049, label %1050, label %1055

1050:                                             ; preds = %.thread16969
  %1051 = icmp slt i64 %1010, 2147483648
  br i1 %1051, label %1055, label %1052

1052:                                             ; preds = %1050
  %1053 = fcmp olt double %1048, 0x41DFFFFFFFC00000
  %1054 = select i1 %1053, double %1048, double 0x41DFFFFFFFC00000
  br label %1055

1055:                                             ; preds = %1052, %1050, %.thread16969, %1044, %1046, %1029
  %storemerge16594.in = phi double [ %1042, %1044 ], [ %.16856, %1046 ], [ %1031, %1029 ], [ %1054, %1052 ], [ %1048, %1050 ], [ 0xC1E0000000000000, %.thread16969 ]
  %storemerge16594 = fptosi double %storemerge16594.in to i32
  store i32 %storemerge16594, ptr %0, align 4, !tbaa !11
  br label %4216

1056:                                             ; preds = %1008
  %1057 = load i32, ptr %3, align 4, !tbaa !11
  %.not16583 = icmp eq ptr %4, null
  br i1 %.not16583, label %.thread16972, label %1058

1058:                                             ; preds = %1056
  %.not16584 = icmp eq ptr %5, null
  br i1 %.not16584, label %1063, label %1059

1059:                                             ; preds = %1058
  %1060 = load i32, ptr %4, align 4, !tbaa !11
  %.not16585 = icmp sgt i32 %1060, %1057
  br i1 %.not16585, label %1063, label %1061

1061:                                             ; preds = %1059
  %1062 = load i32, ptr %5, align 4, !tbaa !11
  %.not16586 = icmp sgt i32 %1057, %1062
  br i1 %.not16586, label %1063, label %1064

1063:                                             ; preds = %1061, %1059, %1058
  tail call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.24, i32 noundef 485, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1064:                                             ; preds = %1061
  %1065 = sitofp i32 %1060 to double
  %1066 = sitofp i32 %1062 to double
  %1067 = fcmp olt double %1065, %1066
  br i1 %1067, label %1068, label %.thread16972

1068:                                             ; preds = %1064
  %1069 = icmp slt i32 %1060, 0
  %1070 = icmp sgt i32 %1062, 0
  %or.cond261 = and i1 %1069, %1070
  br i1 %or.cond261, label %1071, label %1076

1071:                                             ; preds = %1068
  %1072 = fneg double %1065
  %1073 = fcmp ogt double %1066, %1072
  %1074 = select i1 %1073, double %1066, double %1072
  %1075 = fneg double %1074
  br label %1076

1076:                                             ; preds = %1068, %1071
  %.114377 = phi double [ %1074, %1071 ], [ %1066, %1068 ]
  %.114375 = phi double [ %1075, %1071 ], [ %1065, %1068 ]
  %1077 = fcmp oge double %.114375, 0.000000e+00
  %1078 = select i1 %1077, double 0.000000e+00, double 0xC1E0000000000000
  %1079 = fcmp oge double %.114377, 0.000000e+00
  %1080 = select i1 %1079, double 0x41DFFFFFFFC00000, double 0.000000e+00
  %1081 = sitofp i32 %1057 to double
  %1082 = fsub double %1081, %.114375
  %1083 = fsub double %1080, %1078
  %1084 = fmul double %1082, %1083
  %1085 = fsub double %.114377, %.114375
  %1086 = fdiv double %1084, %1085
  %1087 = fadd double %1078, %1086
  %1088 = fcmp oge double %1087, 0.000000e+00
  %.v16589 = select i1 %1088, double 5.000000e-01, double -5.000000e-01
  %1089 = fadd double %1087, %.v16589
  %1090 = fcmp olt double %1078, %1089
  br i1 %1090, label %1091, label %1095

1091:                                             ; preds = %1076
  %1092 = fcmp ugt double %1089, %1080
  br i1 %1092, label %1093, label %1095

1093:                                             ; preds = %1091
  %1094 = fcmp olt double %1089, %1080
  %.16857 = select i1 %1094, double %1089, double %1080
  br label %1095

1095:                                             ; preds = %1076, %1093, %1091
  %1096 = phi double [ %1089, %1091 ], [ %.16857, %1093 ], [ %1078, %1076 ]
  %1097 = fptosi double %1096 to i32
  br label %.thread16972

.thread16972:                                     ; preds = %1064, %1056, %1095
  %storemerge16588 = phi i32 [ %1097, %1095 ], [ %1057, %1056 ], [ %1057, %1064 ]
  store i32 %storemerge16588, ptr %0, align 4, !tbaa !11
  br label %4216

1098:                                             ; preds = %1008
  %1099 = load i16, ptr %3, align 2, !tbaa !13
  %.not16577 = icmp eq ptr %4, null
  br i1 %.not16577, label %.thread16975, label %1100

1100:                                             ; preds = %1098
  %.not16578 = icmp eq ptr %5, null
  br i1 %.not16578, label %1105, label %1101

1101:                                             ; preds = %1100
  %1102 = load i16, ptr %4, align 2, !tbaa !13
  %.not16579 = icmp sgt i16 %1102, %1099
  br i1 %.not16579, label %1105, label %1103

1103:                                             ; preds = %1101
  %1104 = load i16, ptr %5, align 2, !tbaa !13
  %.not16580 = icmp sgt i16 %1099, %1104
  br i1 %.not16580, label %1105, label %1106

1105:                                             ; preds = %1103, %1101, %1100
  tail call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.24, i32 noundef 485, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1106:                                             ; preds = %1103
  %1107 = sitofp i16 %1102 to double
  %1108 = sitofp i16 %1104 to double
  %1109 = fcmp olt double %1107, %1108
  br i1 %1109, label %1110, label %.thread16975

1110:                                             ; preds = %1106
  %1111 = icmp sgt i16 %1102, -1
  %1112 = select i1 %1111, double 0.000000e+00, double 0xC1E0000000000000
  %1113 = icmp sgt i16 %1104, -1
  %1114 = select i1 %1113, double 0x41DFFFFFFFC00000, double 0.000000e+00
  %1115 = sitofp i16 %1099 to double
  %1116 = fsub double %1115, %1107
  %1117 = fsub double %1114, %1112
  %1118 = fmul double %1116, %1117
  %1119 = fsub double %1108, %1107
  %1120 = fdiv double %1118, %1119
  %1121 = fadd double %1112, %1120
  %1122 = fcmp oge double %1121, 0.000000e+00
  %.v16582 = select i1 %1122, double 5.000000e-01, double -5.000000e-01
  %1123 = fadd double %1121, %.v16582
  %1124 = fcmp olt double %1112, %1123
  br i1 %1124, label %1125, label %1129

1125:                                             ; preds = %1110
  %1126 = fcmp ugt double %1123, %1114
  br i1 %1126, label %1127, label %1129

1127:                                             ; preds = %1125
  %1128 = fcmp olt double %1123, %1114
  %.16858 = select i1 %1128, double %1123, double %1114
  br label %1129

1129:                                             ; preds = %1110, %1127, %1125
  %1130 = phi double [ %1123, %1125 ], [ %.16858, %1127 ], [ %1112, %1110 ]
  %1131 = fptosi double %1130 to i32
  br label %1133

.thread16975:                                     ; preds = %1098, %1106
  %1132 = sext i16 %1099 to i32
  br label %1133

1133:                                             ; preds = %.thread16975, %1129
  %storemerge16581 = phi i32 [ %1132, %.thread16975 ], [ %1131, %1129 ]
  store i32 %storemerge16581, ptr %0, align 4, !tbaa !11
  br label %4216

1134:                                             ; preds = %1008
  %1135 = load i8, ptr %3, align 1, !tbaa !15
  %.not16571 = icmp eq ptr %4, null
  br i1 %.not16571, label %.thread16978, label %1136

1136:                                             ; preds = %1134
  %.not16572 = icmp eq ptr %5, null
  br i1 %.not16572, label %1141, label %1137

1137:                                             ; preds = %1136
  %1138 = load i8, ptr %4, align 1, !tbaa !15
  %.not16573 = icmp sgt i8 %1138, %1135
  br i1 %.not16573, label %1141, label %1139

1139:                                             ; preds = %1137
  %1140 = load i8, ptr %5, align 1, !tbaa !15
  %.not16574 = icmp sgt i8 %1135, %1140
  br i1 %.not16574, label %1141, label %1142

1141:                                             ; preds = %1139, %1137, %1136
  tail call void @__assert_fail(ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.24, i32 noundef 485, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1142:                                             ; preds = %1139
  %1143 = sitofp i8 %1138 to double
  %1144 = sitofp i8 %1140 to double
  %1145 = fcmp olt double %1143, %1144
  br i1 %1145, label %1146, label %.thread16978

1146:                                             ; preds = %1142
  %1147 = icmp sgt i8 %1138, -1
  %1148 = select i1 %1147, double 0.000000e+00, double 0xC1E0000000000000
  %1149 = icmp sgt i8 %1140, -1
  %1150 = select i1 %1149, double 0x41DFFFFFFFC00000, double 0.000000e+00
  %1151 = sitofp i8 %1135 to double
  %1152 = fsub double %1151, %1143
  %1153 = fsub double %1150, %1148
  %1154 = fmul double %1152, %1153
  %1155 = fsub double %1144, %1143
  %1156 = fdiv double %1154, %1155
  %1157 = fadd double %1148, %1156
  %1158 = fcmp oge double %1157, 0.000000e+00
  %.v16576 = select i1 %1158, double 5.000000e-01, double -5.000000e-01
  %1159 = fadd double %1157, %.v16576
  %1160 = fcmp olt double %1148, %1159
  br i1 %1160, label %1161, label %1165

1161:                                             ; preds = %1146
  %1162 = fcmp ugt double %1159, %1150
  br i1 %1162, label %1163, label %1165

1163:                                             ; preds = %1161
  %1164 = fcmp olt double %1159, %1150
  %.16859 = select i1 %1164, double %1159, double %1150
  br label %1165

1165:                                             ; preds = %1146, %1163, %1161
  %1166 = phi double [ %1159, %1161 ], [ %.16859, %1163 ], [ %1148, %1146 ]
  %1167 = fptosi double %1166 to i32
  br label %1169

.thread16978:                                     ; preds = %1134, %1142
  %1168 = sext i8 %1135 to i32
  br label %1169

1169:                                             ; preds = %.thread16978, %1165
  %storemerge16575 = phi i32 [ %1168, %.thread16978 ], [ %1167, %1165 ]
  store i32 %storemerge16575, ptr %0, align 4, !tbaa !11
  br label %4216

1170:                                             ; preds = %1008
  %1171 = load i64, ptr %3, align 8, !tbaa !5
  %.not16565 = icmp eq ptr %4, null
  br i1 %.not16565, label %.thread16981, label %1172

1172:                                             ; preds = %1170
  %.not16566 = icmp eq ptr %5, null
  br i1 %.not16566, label %1177, label %1173

1173:                                             ; preds = %1172
  %1174 = load i64, ptr %4, align 8, !tbaa !5
  %.not16567 = icmp ugt i64 %1174, %1171
  br i1 %.not16567, label %1177, label %1175

1175:                                             ; preds = %1173
  %1176 = load i64, ptr %5, align 8, !tbaa !5
  %.not16568 = icmp ugt i64 %1171, %1176
  br i1 %.not16568, label %1177, label %1178

1177:                                             ; preds = %1175, %1173, %1172
  tail call void @__assert_fail(ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.24, i32 noundef 485, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1178:                                             ; preds = %1175
  %1179 = uitofp i64 %1174 to double
  %1180 = uitofp i64 %1176 to double
  %1181 = fcmp olt double %1179, %1180
  br i1 %1181, label %1182, label %.thread16981

1182:                                             ; preds = %1178
  %1183 = uitofp i64 %1171 to double
  %1184 = fsub double %1183, %1179
  %1185 = fmul double %1184, 0x41DFFFFFFFC00000
  %1186 = fsub double %1180, %1179
  %1187 = fdiv double %1185, %1186
  %1188 = fadd double %1187, 0.000000e+00
  %1189 = fcmp oge double %1187, 0.000000e+00
  %.v16570 = select i1 %1189, double 5.000000e-01, double -5.000000e-01
  %1190 = fadd double %1188, %.v16570
  %1191 = fcmp ogt double %1190, 0.000000e+00
  br i1 %1191, label %1192, label %1199

1192:                                             ; preds = %1182
  %1193 = fcmp ugt double %1190, 0x41DFFFFFFFC00000
  br i1 %1193, label %1194, label %1199

1194:                                             ; preds = %1192
  %1195 = fcmp olt double %1190, 0x41DFFFFFFFC00000
  %.16860 = select i1 %1195, double %1190, double 0x41DFFFFFFFC00000
  br label %1199

.thread16981:                                     ; preds = %1170, %1178
  %1196 = uitofp i64 %1171 to double
  %1197 = icmp ult i64 %1171, 2147483648
  %1198 = select i1 %1197, double %1196, double 0x41DFFFFFFFC00000
  br label %1199

1199:                                             ; preds = %1192, %1194, %1182, %.thread16981
  %storemerge16569.in = phi double [ %1198, %.thread16981 ], [ %1190, %1192 ], [ %.16860, %1194 ], [ 0.000000e+00, %1182 ]
  %storemerge16569 = fptosi double %storemerge16569.in to i32
  store i32 %storemerge16569, ptr %0, align 4, !tbaa !11
  br label %4216

1200:                                             ; preds = %1008
  %1201 = load i32, ptr %3, align 4, !tbaa !11
  %.not16559 = icmp eq ptr %4, null
  br i1 %.not16559, label %.thread16984, label %1202

1202:                                             ; preds = %1200
  %.not16560 = icmp eq ptr %5, null
  br i1 %.not16560, label %1207, label %1203

1203:                                             ; preds = %1202
  %1204 = load i32, ptr %4, align 4, !tbaa !11
  %.not16561 = icmp ugt i32 %1204, %1201
  br i1 %.not16561, label %1207, label %1205

1205:                                             ; preds = %1203
  %1206 = load i32, ptr %5, align 4, !tbaa !11
  %.not16562 = icmp ugt i32 %1201, %1206
  br i1 %.not16562, label %1207, label %1208

1207:                                             ; preds = %1205, %1203, %1202
  tail call void @__assert_fail(ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.24, i32 noundef 485, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1208:                                             ; preds = %1205
  %1209 = uitofp i32 %1204 to double
  %1210 = uitofp i32 %1206 to double
  %1211 = fcmp olt double %1209, %1210
  br i1 %1211, label %1212, label %.thread16984

1212:                                             ; preds = %1208
  %1213 = uitofp i32 %1201 to double
  %1214 = fsub double %1213, %1209
  %1215 = fmul double %1214, 0x41DFFFFFFFC00000
  %1216 = fsub double %1210, %1209
  %1217 = fdiv double %1215, %1216
  %1218 = fadd double %1217, 0.000000e+00
  %1219 = fcmp oge double %1217, 0.000000e+00
  %.v16564 = select i1 %1219, double 5.000000e-01, double -5.000000e-01
  %1220 = fadd double %1218, %.v16564
  %1221 = fcmp ogt double %1220, 0.000000e+00
  br i1 %1221, label %1222, label %1231

1222:                                             ; preds = %1212
  %1223 = fcmp ugt double %1220, 0x41DFFFFFFFC00000
  br i1 %1223, label %1224, label %1231

1224:                                             ; preds = %1222
  %1225 = fcmp olt double %1220, 0x41DFFFFFFFC00000
  %.16861 = select i1 %1225, double %1220, double 0x41DFFFFFFFC00000
  br label %1231

.thread16984:                                     ; preds = %1200, %1208
  %1226 = uitofp i32 %1201 to double
  %1227 = fcmp olt double %1226, 0x41DFFFFFFFC00000
  %1228 = select i1 %1227, double %1226, double 0x41DFFFFFFFC00000
  %1229 = icmp slt i32 %1201, 0
  %1230 = select i1 %1229, double %1228, double %1226
  br label %1231

1231:                                             ; preds = %1222, %1224, %1212, %.thread16984
  %storemerge16563.in = phi double [ %1230, %.thread16984 ], [ %1220, %1222 ], [ %.16861, %1224 ], [ 0.000000e+00, %1212 ]
  %storemerge16563 = fptosi double %storemerge16563.in to i32
  store i32 %storemerge16563, ptr %0, align 4, !tbaa !11
  br label %4216

1232:                                             ; preds = %1008
  %1233 = load i16, ptr %3, align 2, !tbaa !13
  %.not16553 = icmp eq ptr %4, null
  br i1 %.not16553, label %.thread16987, label %1234

1234:                                             ; preds = %1232
  %.not16554 = icmp eq ptr %5, null
  br i1 %.not16554, label %1239, label %1235

1235:                                             ; preds = %1234
  %1236 = load i16, ptr %4, align 2, !tbaa !13
  %.not16555 = icmp ugt i16 %1236, %1233
  br i1 %.not16555, label %1239, label %1237

1237:                                             ; preds = %1235
  %1238 = load i16, ptr %5, align 2, !tbaa !13
  %.not16556 = icmp ugt i16 %1233, %1238
  br i1 %.not16556, label %1239, label %1240

1239:                                             ; preds = %1237, %1235, %1234
  tail call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.24, i32 noundef 485, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1240:                                             ; preds = %1237
  %1241 = uitofp i16 %1236 to double
  %1242 = uitofp i16 %1238 to double
  %1243 = fcmp olt double %1241, %1242
  br i1 %1243, label %1244, label %.thread16987

1244:                                             ; preds = %1240
  %1245 = uitofp i16 %1233 to double
  %1246 = fsub double %1245, %1241
  %1247 = fmul double %1246, 0x41DFFFFFFFC00000
  %1248 = fsub double %1242, %1241
  %1249 = fdiv double %1247, %1248
  %1250 = fadd double %1249, 0.000000e+00
  %1251 = fcmp oge double %1249, 0.000000e+00
  %.v16558 = select i1 %1251, double 5.000000e-01, double -5.000000e-01
  %1252 = fadd double %1250, %.v16558
  %1253 = fcmp ogt double %1252, 0.000000e+00
  br i1 %1253, label %1254, label %1258

1254:                                             ; preds = %1244
  %1255 = fcmp ugt double %1252, 0x41DFFFFFFFC00000
  br i1 %1255, label %1256, label %1258

1256:                                             ; preds = %1254
  %1257 = fcmp olt double %1252, 0x41DFFFFFFFC00000
  %.16862 = select i1 %1257, double %1252, double 0x41DFFFFFFFC00000
  br label %1258

1258:                                             ; preds = %1244, %1256, %1254
  %1259 = phi double [ %1252, %1254 ], [ %.16862, %1256 ], [ 0.000000e+00, %1244 ]
  %1260 = fptosi double %1259 to i32
  br label %1262

.thread16987:                                     ; preds = %1232, %1240
  %1261 = zext i16 %1233 to i32
  br label %1262

1262:                                             ; preds = %.thread16987, %1258
  %storemerge16557 = phi i32 [ %1261, %.thread16987 ], [ %1260, %1258 ]
  store i32 %storemerge16557, ptr %0, align 4, !tbaa !11
  br label %4216

1263:                                             ; preds = %1008
  %1264 = load i8, ptr %3, align 1, !tbaa !15
  %.not16547 = icmp eq ptr %4, null
  br i1 %.not16547, label %.thread16990, label %1265

1265:                                             ; preds = %1263
  %.not16548 = icmp eq ptr %5, null
  br i1 %.not16548, label %1270, label %1266

1266:                                             ; preds = %1265
  %1267 = load i8, ptr %4, align 1, !tbaa !15
  %.not16549 = icmp ugt i8 %1267, %1264
  br i1 %.not16549, label %1270, label %1268

1268:                                             ; preds = %1266
  %1269 = load i8, ptr %5, align 1, !tbaa !15
  %.not16550 = icmp ugt i8 %1264, %1269
  br i1 %.not16550, label %1270, label %1271

1270:                                             ; preds = %1268, %1266, %1265
  tail call void @__assert_fail(ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.24, i32 noundef 485, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1271:                                             ; preds = %1268
  %1272 = uitofp i8 %1267 to double
  %1273 = uitofp i8 %1269 to double
  %1274 = fcmp olt double %1272, %1273
  br i1 %1274, label %1275, label %.thread16990

1275:                                             ; preds = %1271
  %1276 = uitofp i8 %1264 to double
  %1277 = fsub double %1276, %1272
  %1278 = fmul double %1277, 0x41DFFFFFFFC00000
  %1279 = fsub double %1273, %1272
  %1280 = fdiv double %1278, %1279
  %1281 = fadd double %1280, 0.000000e+00
  %1282 = fcmp oge double %1280, 0.000000e+00
  %.v16552 = select i1 %1282, double 5.000000e-01, double -5.000000e-01
  %1283 = fadd double %1281, %.v16552
  %1284 = fcmp ogt double %1283, 0.000000e+00
  br i1 %1284, label %1285, label %1289

1285:                                             ; preds = %1275
  %1286 = fcmp ugt double %1283, 0x41DFFFFFFFC00000
  br i1 %1286, label %1287, label %1289

1287:                                             ; preds = %1285
  %1288 = fcmp olt double %1283, 0x41DFFFFFFFC00000
  %.16863 = select i1 %1288, double %1283, double 0x41DFFFFFFFC00000
  br label %1289

1289:                                             ; preds = %1275, %1287, %1285
  %1290 = phi double [ %1283, %1285 ], [ %.16863, %1287 ], [ 0.000000e+00, %1275 ]
  %1291 = fptosi double %1290 to i32
  br label %1293

.thread16990:                                     ; preds = %1263, %1271
  %1292 = zext i8 %1264 to i32
  br label %1293

1293:                                             ; preds = %.thread16990, %1289
  %storemerge16551 = phi i32 [ %1292, %.thread16990 ], [ %1291, %1289 ]
  store i32 %storemerge16551, ptr %0, align 4, !tbaa !11
  br label %4216

1294:                                             ; preds = %1008
  %1295 = load double, ptr %3, align 8, !tbaa !9
  %.not16543 = icmp ne ptr %4, null
  %1296 = fcmp ord double %1295, 0.000000e+00
  %or.cond16864 = select i1 %.not16543, i1 %1296, i1 false
  br i1 %or.cond16864, label %1297, label %.thread16993

1297:                                             ; preds = %1294
  %.not16544 = icmp eq ptr %5, null
  br i1 %.not16544, label %1304, label %1298

1298:                                             ; preds = %1297
  %1299 = load double, ptr %4, align 8, !tbaa !9
  %1300 = fcmp ugt double %1299, %1295
  br i1 %1300, label %1304, label %1301

1301:                                             ; preds = %1298
  %1302 = load double, ptr %5, align 8, !tbaa !9
  %1303 = fcmp ugt double %1295, %1302
  br i1 %1303, label %1304, label %1305

1304:                                             ; preds = %1301, %1298, %1297
  tail call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.24, i32 noundef 485, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1305:                                             ; preds = %1301
  %1306 = fcmp olt double %1299, %1302
  br i1 %1306, label %1307, label %.thread16993

1307:                                             ; preds = %1305
  %1308 = fcmp olt double %1299, 0.000000e+00
  %1309 = fcmp ogt double %1302, 0.000000e+00
  %or.cond289 = and i1 %1308, %1309
  br i1 %or.cond289, label %1310, label %1315

1310:                                             ; preds = %1307
  %1311 = fneg double %1299
  %1312 = fcmp ogt double %1302, %1311
  %1313 = select i1 %1312, double %1302, double %1311
  %1314 = fneg double %1313
  br label %1315

1315:                                             ; preds = %1307, %1310
  %.114422 = phi double [ %1313, %1310 ], [ %1302, %1307 ]
  %.114420 = phi double [ %1314, %1310 ], [ %1299, %1307 ]
  %1316 = fcmp oge double %.114420, 0.000000e+00
  %1317 = select i1 %1316, double 0.000000e+00, double 0xC1E0000000000000
  %1318 = fcmp oge double %.114422, 0.000000e+00
  %1319 = select i1 %1318, double 0x41DFFFFFFFC00000, double 0.000000e+00
  %1320 = fsub double %1295, %.114420
  %1321 = fsub double %1319, %1317
  %1322 = fmul double %1320, %1321
  %1323 = fsub double %.114422, %.114420
  %1324 = fdiv double %1322, %1323
  %1325 = fadd double %1317, %1324
  %1326 = fcmp oge double %1325, 0.000000e+00
  %.v16546 = select i1 %1326, double 5.000000e-01, double -5.000000e-01
  %1327 = fadd double %1325, %.v16546
  %1328 = fcmp olt double %1317, %1327
  br i1 %1328, label %1329, label %1350

1329:                                             ; preds = %1315
  %1330 = fcmp ugt double %1327, %1319
  br i1 %1330, label %1331, label %1350

1331:                                             ; preds = %1329
  %1332 = fcmp olt double %1327, %1319
  %.16865 = select i1 %1332, double %1327, double %1319
  br label %1350

.thread16993:                                     ; preds = %1294, %1305
  %1333 = fcmp ult double %1295, 0.000000e+00
  br i1 %1333, label %1342, label %1334

1334:                                             ; preds = %.thread16993
  %1335 = fadd double %1295, 5.000000e-01
  %1336 = fcmp ogt double %1335, 0xC1E0000000000000
  br i1 %1336, label %1337, label %1350

1337:                                             ; preds = %1334
  %1338 = fcmp ugt double %1335, 0x41DFFFFFFFC00000
  br i1 %1338, label %1339, label %1350

1339:                                             ; preds = %1337
  %1340 = fcmp olt double %1335, 0x41DFFFFFFFC00000
  %1341 = select i1 %1340, double %1335, double 0x41DFFFFFFFC00000
  br label %1350

1342:                                             ; preds = %.thread16993
  %1343 = fadd double %1295, -5.000000e-01
  %1344 = fcmp ogt double %1343, 0xC1E0000000000000
  br i1 %1344, label %1345, label %1350

1345:                                             ; preds = %1342
  %1346 = fcmp ugt double %1343, 0x41DFFFFFFFC00000
  br i1 %1346, label %1347, label %1350

1347:                                             ; preds = %1345
  %1348 = fcmp olt double %1343, 0x41DFFFFFFFC00000
  %1349 = select i1 %1348, double %1343, double 0x41DFFFFFFFC00000
  br label %1350

1350:                                             ; preds = %1339, %1347, %1337, %1334, %1345, %1342, %1329, %1331, %1315
  %storemerge16545.in = phi double [ %1327, %1329 ], [ %.16865, %1331 ], [ %1317, %1315 ], [ %1341, %1339 ], [ %1349, %1347 ], [ %1335, %1337 ], [ 0xC1E0000000000000, %1334 ], [ %1343, %1345 ], [ 0xC1E0000000000000, %1342 ]
  %storemerge16545 = fptosi double %storemerge16545.in to i32
  store i32 %storemerge16545, ptr %0, align 4, !tbaa !11
  br label %4216

1351:                                             ; preds = %1008
  %1352 = load float, ptr %3, align 4, !tbaa !16
  %.not16539 = icmp ne ptr %4, null
  %1353 = fcmp ord float %1352, 0.000000e+00
  %or.cond16866 = select i1 %.not16539, i1 %1353, i1 false
  br i1 %or.cond16866, label %1354, label %.thread16996

1354:                                             ; preds = %1351
  %.not16540 = icmp eq ptr %5, null
  br i1 %.not16540, label %1361, label %1355

1355:                                             ; preds = %1354
  %1356 = load float, ptr %4, align 4, !tbaa !16
  %1357 = fcmp ugt float %1356, %1352
  br i1 %1357, label %1361, label %1358

1358:                                             ; preds = %1355
  %1359 = load float, ptr %5, align 4, !tbaa !16
  %1360 = fcmp ugt float %1352, %1359
  br i1 %1360, label %1361, label %1362

1361:                                             ; preds = %1358, %1355, %1354
  tail call void @__assert_fail(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.24, i32 noundef 485, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1362:                                             ; preds = %1358
  %1363 = fpext float %1356 to double
  %1364 = fpext float %1359 to double
  %1365 = fcmp olt float %1356, %1359
  br i1 %1365, label %1366, label %.thread16996

1366:                                             ; preds = %1362
  %1367 = fcmp olt float %1356, 0.000000e+00
  %1368 = fcmp ogt float %1359, 0.000000e+00
  %or.cond293 = and i1 %1367, %1368
  br i1 %or.cond293, label %1369, label %1374

1369:                                             ; preds = %1366
  %1370 = fneg double %1363
  %1371 = fcmp ogt double %1364, %1370
  %1372 = select i1 %1371, double %1364, double %1370
  %1373 = fneg double %1372
  br label %1374

1374:                                             ; preds = %1366, %1369
  %.114432 = phi double [ %1372, %1369 ], [ %1364, %1366 ]
  %.114430 = phi double [ %1373, %1369 ], [ %1363, %1366 ]
  %1375 = fcmp oge double %.114430, 0.000000e+00
  %1376 = select i1 %1375, double 0.000000e+00, double 0xC1E0000000000000
  %1377 = fcmp oge double %.114432, 0.000000e+00
  %1378 = select i1 %1377, double 0x41DFFFFFFFC00000, double 0.000000e+00
  %1379 = fpext float %1352 to double
  %1380 = fsub double %1379, %.114430
  %1381 = fsub double %1378, %1376
  %1382 = fmul double %1380, %1381
  %1383 = fsub double %.114432, %.114430
  %1384 = fdiv double %1382, %1383
  %1385 = fadd double %1376, %1384
  %1386 = fcmp oge double %1385, 0.000000e+00
  %.v16542 = select i1 %1386, double 5.000000e-01, double -5.000000e-01
  %1387 = fadd double %1385, %.v16542
  %1388 = fcmp olt double %1376, %1387
  br i1 %1388, label %1389, label %1411

1389:                                             ; preds = %1374
  %1390 = fcmp ugt double %1387, %1378
  br i1 %1390, label %1391, label %1411

1391:                                             ; preds = %1389
  %1392 = fcmp olt double %1387, %1378
  %.16867 = select i1 %1392, double %1387, double %1378
  br label %1411

.thread16996:                                     ; preds = %1351, %1362
  %1393 = fcmp ult float %1352, 0.000000e+00
  %1394 = fpext float %1352 to double
  br i1 %1393, label %1403, label %1395

1395:                                             ; preds = %.thread16996
  %1396 = fadd double %1394, 5.000000e-01
  %1397 = fcmp ogt double %1396, 0xC1E0000000000000
  br i1 %1397, label %1398, label %1411

1398:                                             ; preds = %1395
  %1399 = fcmp ugt double %1396, 0x41DFFFFFFFC00000
  br i1 %1399, label %1400, label %1411

1400:                                             ; preds = %1398
  %1401 = fcmp olt double %1396, 0x41DFFFFFFFC00000
  %1402 = select i1 %1401, double %1396, double 0x41DFFFFFFFC00000
  br label %1411

1403:                                             ; preds = %.thread16996
  %1404 = fadd double %1394, -5.000000e-01
  %1405 = fcmp ogt double %1404, 0xC1E0000000000000
  br i1 %1405, label %1406, label %1411

1406:                                             ; preds = %1403
  %1407 = fcmp ugt double %1404, 0x41DFFFFFFFC00000
  br i1 %1407, label %1408, label %1411

1408:                                             ; preds = %1406
  %1409 = fcmp olt double %1404, 0x41DFFFFFFFC00000
  %1410 = select i1 %1409, double %1404, double 0x41DFFFFFFFC00000
  br label %1411

1411:                                             ; preds = %1400, %1408, %1398, %1395, %1406, %1403, %1389, %1391, %1374
  %storemerge16541.in = phi double [ %1387, %1389 ], [ %.16867, %1391 ], [ %1376, %1374 ], [ %1402, %1400 ], [ %1410, %1408 ], [ %1396, %1398 ], [ 0xC1E0000000000000, %1395 ], [ %1404, %1406 ], [ 0xC1E0000000000000, %1403 ]
  %storemerge16541 = fptosi double %storemerge16541.in to i32
  store i32 %storemerge16541, ptr %0, align 4, !tbaa !11
  br label %4216

1412:                                             ; preds = %1008
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 485, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1413:                                             ; preds = %1008
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 485, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1414:                                             ; preds = %1008
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 485, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1415:                                             ; preds = %6
  %1416 = icmp ne ptr %0, null
  %1417 = icmp ne ptr %3, null
  %or.cond295 = and i1 %1416, %1417
  br i1 %or.cond295, label %1419, label %1418

1418:                                             ; preds = %1415
  tail call void @__assert_fail(ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.24, i32 noundef 488, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1419:                                             ; preds = %1415
  switch i32 %2, label %4216 [
    i32 6, label %1420
    i32 8, label %1467
    i32 10, label %1514
    i32 12, label %1556
    i32 15, label %1592
    i32 16, label %1622
    i32 17, label %1652
    i32 18, label %1684
    i32 0, label %1715
    i32 1, label %1772
    i32 3, label %1833
    i32 2, label %1834
    i32 4, label %1835
  ]

1420:                                             ; preds = %1419
  %1421 = load i64, ptr %3, align 8, !tbaa !5
  %.not16533 = icmp eq ptr %4, null
  br i1 %.not16533, label %.thread16999, label %1422

1422:                                             ; preds = %1420
  %.not16534 = icmp eq ptr %5, null
  br i1 %.not16534, label %1427, label %1423

1423:                                             ; preds = %1422
  %1424 = load i64, ptr %4, align 8, !tbaa !5
  %.not16535 = icmp sgt i64 %1424, %1421
  br i1 %.not16535, label %1427, label %1425

1425:                                             ; preds = %1423
  %1426 = load i64, ptr %5, align 8, !tbaa !5
  %.not16536 = icmp sgt i64 %1421, %1426
  br i1 %.not16536, label %1427, label %1428

1427:                                             ; preds = %1425, %1423, %1422
  tail call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.24, i32 noundef 488, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1428:                                             ; preds = %1425
  %1429 = sitofp i64 %1424 to double
  %1430 = sitofp i64 %1426 to double
  %1431 = fcmp olt double %1429, %1430
  br i1 %1431, label %1432, label %.thread16999

1432:                                             ; preds = %1428
  %1433 = icmp slt i64 %1424, 0
  %1434 = icmp sgt i64 %1426, 0
  %or.cond299 = and i1 %1433, %1434
  br i1 %or.cond299, label %1435, label %1440

1435:                                             ; preds = %1432
  %1436 = fneg double %1429
  %1437 = fcmp ogt double %1430, %1436
  %1438 = select i1 %1437, double %1430, double %1436
  %1439 = fneg double %1438
  br label %1440

1440:                                             ; preds = %1432, %1435
  %.114437 = phi double [ %1438, %1435 ], [ %1430, %1432 ]
  %.114435 = phi double [ %1439, %1435 ], [ %1429, %1432 ]
  %1441 = fcmp oge double %.114435, 0.000000e+00
  %1442 = select i1 %1441, double 0.000000e+00, double -3.276800e+04
  %1443 = fcmp oge double %.114437, 0.000000e+00
  %1444 = select i1 %1443, double 3.276700e+04, double 0.000000e+00
  %1445 = sitofp i64 %1421 to double
  %1446 = fsub double %1445, %.114435
  %1447 = fsub double %1444, %1442
  %1448 = fmul double %1446, %1447
  %1449 = fsub double %.114437, %.114435
  %1450 = fdiv double %1448, %1449
  %1451 = fadd double %1442, %1450
  %1452 = fcmp oge double %1451, 0.000000e+00
  %.v16538 = select i1 %1452, double 5.000000e-01, double -5.000000e-01
  %1453 = fadd double %1451, %.v16538
  %1454 = fcmp olt double %1442, %1453
  br i1 %1454, label %1455, label %1466

1455:                                             ; preds = %1440
  %1456 = fcmp ugt double %1453, %1444
  br i1 %1456, label %1457, label %1466

1457:                                             ; preds = %1455
  %1458 = fcmp olt double %1453, %1444
  %.16868 = select i1 %1458, double %1453, double %1444
  br label %1466

.thread16999:                                     ; preds = %1420, %1428
  %1459 = sitofp i64 %1421 to double
  %1460 = icmp sgt i64 %1421, -32768
  br i1 %1460, label %1461, label %1466

1461:                                             ; preds = %.thread16999
  %1462 = icmp slt i64 %1421, 32768
  br i1 %1462, label %1466, label %1463

1463:                                             ; preds = %1461
  %1464 = fcmp olt double %1459, 3.276700e+04
  %1465 = select i1 %1464, double %1459, double 3.276700e+04
  br label %1466

1466:                                             ; preds = %1463, %1461, %.thread16999, %1455, %1457, %1440
  %storemerge16537.in = phi double [ %1453, %1455 ], [ %.16868, %1457 ], [ %1442, %1440 ], [ %1465, %1463 ], [ %1459, %1461 ], [ -3.276800e+04, %.thread16999 ]
  %storemerge16537 = fptosi double %storemerge16537.in to i16
  store i16 %storemerge16537, ptr %0, align 2, !tbaa !13
  br label %4216

1467:                                             ; preds = %1419
  %1468 = load i32, ptr %3, align 4, !tbaa !11
  %.not16527 = icmp eq ptr %4, null
  br i1 %.not16527, label %.thread17002, label %1469

1469:                                             ; preds = %1467
  %.not16528 = icmp eq ptr %5, null
  br i1 %.not16528, label %1474, label %1470

1470:                                             ; preds = %1469
  %1471 = load i32, ptr %4, align 4, !tbaa !11
  %.not16529 = icmp sgt i32 %1471, %1468
  br i1 %.not16529, label %1474, label %1472

1472:                                             ; preds = %1470
  %1473 = load i32, ptr %5, align 4, !tbaa !11
  %.not16530 = icmp sgt i32 %1468, %1473
  br i1 %.not16530, label %1474, label %1475

1474:                                             ; preds = %1472, %1470, %1469
  tail call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.24, i32 noundef 488, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1475:                                             ; preds = %1472
  %1476 = sitofp i32 %1471 to double
  %1477 = sitofp i32 %1473 to double
  %1478 = fcmp olt double %1476, %1477
  br i1 %1478, label %1479, label %.thread17002

1479:                                             ; preds = %1475
  %1480 = icmp slt i32 %1471, 0
  %1481 = icmp sgt i32 %1473, 0
  %or.cond303 = and i1 %1480, %1481
  br i1 %or.cond303, label %1482, label %1487

1482:                                             ; preds = %1479
  %1483 = fneg double %1476
  %1484 = fcmp ogt double %1477, %1483
  %1485 = select i1 %1484, double %1477, double %1483
  %1486 = fneg double %1485
  br label %1487

1487:                                             ; preds = %1479, %1482
  %.114442 = phi double [ %1485, %1482 ], [ %1477, %1479 ]
  %.114440 = phi double [ %1486, %1482 ], [ %1476, %1479 ]
  %1488 = fcmp oge double %.114440, 0.000000e+00
  %1489 = select i1 %1488, double 0.000000e+00, double -3.276800e+04
  %1490 = fcmp oge double %.114442, 0.000000e+00
  %1491 = select i1 %1490, double 3.276700e+04, double 0.000000e+00
  %1492 = sitofp i32 %1468 to double
  %1493 = fsub double %1492, %.114440
  %1494 = fsub double %1491, %1489
  %1495 = fmul double %1493, %1494
  %1496 = fsub double %.114442, %.114440
  %1497 = fdiv double %1495, %1496
  %1498 = fadd double %1489, %1497
  %1499 = fcmp oge double %1498, 0.000000e+00
  %.v16532 = select i1 %1499, double 5.000000e-01, double -5.000000e-01
  %1500 = fadd double %1498, %.v16532
  %1501 = fcmp olt double %1489, %1500
  br i1 %1501, label %1502, label %1513

1502:                                             ; preds = %1487
  %1503 = fcmp ugt double %1500, %1491
  br i1 %1503, label %1504, label %1513

1504:                                             ; preds = %1502
  %1505 = fcmp olt double %1500, %1491
  %.16869 = select i1 %1505, double %1500, double %1491
  br label %1513

.thread17002:                                     ; preds = %1467, %1475
  %1506 = sitofp i32 %1468 to double
  %1507 = icmp sgt i32 %1468, -32768
  br i1 %1507, label %1508, label %1513

1508:                                             ; preds = %.thread17002
  %1509 = icmp slt i32 %1468, 32768
  br i1 %1509, label %1513, label %1510

1510:                                             ; preds = %1508
  %1511 = fcmp olt double %1506, 3.276700e+04
  %1512 = select i1 %1511, double %1506, double 3.276700e+04
  br label %1513

1513:                                             ; preds = %1510, %1508, %.thread17002, %1502, %1504, %1487
  %storemerge16531.in = phi double [ %1500, %1502 ], [ %.16869, %1504 ], [ %1489, %1487 ], [ %1512, %1510 ], [ %1506, %1508 ], [ -3.276800e+04, %.thread17002 ]
  %storemerge16531 = fptosi double %storemerge16531.in to i16
  store i16 %storemerge16531, ptr %0, align 2, !tbaa !13
  br label %4216

1514:                                             ; preds = %1419
  %1515 = load i16, ptr %3, align 2, !tbaa !13
  %.not16520 = icmp eq ptr %4, null
  br i1 %.not16520, label %.thread17005, label %1516

1516:                                             ; preds = %1514
  %.not16521 = icmp eq ptr %5, null
  br i1 %.not16521, label %1521, label %1517

1517:                                             ; preds = %1516
  %1518 = load i16, ptr %4, align 2, !tbaa !13
  %.not16522 = icmp sgt i16 %1518, %1515
  br i1 %.not16522, label %1521, label %1519

1519:                                             ; preds = %1517
  %1520 = load i16, ptr %5, align 2, !tbaa !13
  %.not16523 = icmp sgt i16 %1515, %1520
  br i1 %.not16523, label %1521, label %1522

1521:                                             ; preds = %1519, %1517, %1516
  tail call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.24, i32 noundef 488, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1522:                                             ; preds = %1519
  %1523 = sitofp i16 %1518 to double
  %1524 = sitofp i16 %1520 to double
  %1525 = fcmp olt double %1523, %1524
  br i1 %1525, label %1526, label %.thread17005

1526:                                             ; preds = %1522
  %1527 = icmp slt i16 %1518, 0
  %1528 = icmp sgt i16 %1520, 0
  %or.cond307 = and i1 %1527, %1528
  br i1 %or.cond307, label %1529, label %1534

1529:                                             ; preds = %1526
  %1530 = fneg double %1523
  %1531 = fcmp ogt double %1524, %1530
  %1532 = select i1 %1531, double %1524, double %1530
  %1533 = fneg double %1532
  br label %1534

1534:                                             ; preds = %1526, %1529
  %.114452 = phi double [ %1532, %1529 ], [ %1524, %1526 ]
  %.114450 = phi double [ %1533, %1529 ], [ %1523, %1526 ]
  %1535 = fcmp oge double %.114450, 0.000000e+00
  %1536 = select i1 %1535, double 0.000000e+00, double -3.276800e+04
  %1537 = fcmp oge double %.114452, 0.000000e+00
  %1538 = select i1 %1537, double 3.276700e+04, double 0.000000e+00
  %1539 = sitofp i16 %1515 to double
  %1540 = fsub double %1539, %.114450
  %1541 = fsub double %1538, %1536
  %1542 = fmul double %1540, %1541
  %1543 = fsub double %.114452, %.114450
  %1544 = fdiv double %1542, %1543
  %1545 = fadd double %1536, %1544
  %1546 = fcmp oge double %1545, 0.000000e+00
  %.v16526 = select i1 %1546, double 5.000000e-01, double -5.000000e-01
  %1547 = fadd double %1545, %.v16526
  %1548 = fcmp olt double %1536, %1547
  br i1 %1548, label %1549, label %1553

1549:                                             ; preds = %1534
  %1550 = fcmp ugt double %1547, %1538
  br i1 %1550, label %1551, label %1553

1551:                                             ; preds = %1549
  %1552 = fcmp olt double %1547, %1538
  %.16870 = select i1 %1552, double %1547, double %1538
  br label %1553

1553:                                             ; preds = %1534, %1551, %1549
  %1554 = phi double [ %1547, %1549 ], [ %.16870, %1551 ], [ %1536, %1534 ]
  %1555 = fptosi double %1554 to i16
  br label %.thread17005

.thread17005:                                     ; preds = %1522, %1514, %1553
  %storemerge16525 = phi i16 [ %1555, %1553 ], [ %1515, %1514 ], [ %1515, %1522 ]
  store i16 %storemerge16525, ptr %0, align 2, !tbaa !13
  br label %4216

1556:                                             ; preds = %1419
  %1557 = load i8, ptr %3, align 1, !tbaa !15
  %.not16514 = icmp eq ptr %4, null
  br i1 %.not16514, label %.thread17008, label %1558

1558:                                             ; preds = %1556
  %.not16515 = icmp eq ptr %5, null
  br i1 %.not16515, label %1563, label %1559

1559:                                             ; preds = %1558
  %1560 = load i8, ptr %4, align 1, !tbaa !15
  %.not16516 = icmp sgt i8 %1560, %1557
  br i1 %.not16516, label %1563, label %1561

1561:                                             ; preds = %1559
  %1562 = load i8, ptr %5, align 1, !tbaa !15
  %.not16517 = icmp sgt i8 %1557, %1562
  br i1 %.not16517, label %1563, label %1564

1563:                                             ; preds = %1561, %1559, %1558
  tail call void @__assert_fail(ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.24, i32 noundef 488, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1564:                                             ; preds = %1561
  %1565 = sitofp i8 %1560 to double
  %1566 = sitofp i8 %1562 to double
  %1567 = fcmp olt double %1565, %1566
  br i1 %1567, label %1568, label %.thread17008

1568:                                             ; preds = %1564
  %1569 = icmp sgt i8 %1560, -1
  %1570 = select i1 %1569, double 0.000000e+00, double -3.276800e+04
  %1571 = icmp sgt i8 %1562, -1
  %1572 = select i1 %1571, double 3.276700e+04, double 0.000000e+00
  %1573 = sitofp i8 %1557 to double
  %1574 = fsub double %1573, %1565
  %1575 = fsub double %1572, %1570
  %1576 = fmul double %1574, %1575
  %1577 = fsub double %1566, %1565
  %1578 = fdiv double %1576, %1577
  %1579 = fadd double %1570, %1578
  %1580 = fcmp oge double %1579, 0.000000e+00
  %.v16519 = select i1 %1580, double 5.000000e-01, double -5.000000e-01
  %1581 = fadd double %1579, %.v16519
  %1582 = fcmp olt double %1570, %1581
  br i1 %1582, label %1583, label %1587

1583:                                             ; preds = %1568
  %1584 = fcmp ugt double %1581, %1572
  br i1 %1584, label %1585, label %1587

1585:                                             ; preds = %1583
  %1586 = fcmp olt double %1581, %1572
  %.16871 = select i1 %1586, double %1581, double %1572
  br label %1587

1587:                                             ; preds = %1568, %1585, %1583
  %1588 = phi double [ %1581, %1583 ], [ %.16871, %1585 ], [ %1570, %1568 ]
  %1589 = fptosi double %1588 to i16
  br label %1591

.thread17008:                                     ; preds = %1556, %1564
  %1590 = sext i8 %1557 to i16
  br label %1591

1591:                                             ; preds = %.thread17008, %1587
  %storemerge16518 = phi i16 [ %1590, %.thread17008 ], [ %1589, %1587 ]
  store i16 %storemerge16518, ptr %0, align 2, !tbaa !13
  br label %4216

1592:                                             ; preds = %1419
  %1593 = load i64, ptr %3, align 8, !tbaa !5
  %.not16508 = icmp eq ptr %4, null
  br i1 %.not16508, label %.thread17011, label %1594

1594:                                             ; preds = %1592
  %.not16509 = icmp eq ptr %5, null
  br i1 %.not16509, label %1599, label %1595

1595:                                             ; preds = %1594
  %1596 = load i64, ptr %4, align 8, !tbaa !5
  %.not16510 = icmp ugt i64 %1596, %1593
  br i1 %.not16510, label %1599, label %1597

1597:                                             ; preds = %1595
  %1598 = load i64, ptr %5, align 8, !tbaa !5
  %.not16511 = icmp ugt i64 %1593, %1598
  br i1 %.not16511, label %1599, label %1600

1599:                                             ; preds = %1597, %1595, %1594
  tail call void @__assert_fail(ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.24, i32 noundef 488, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1600:                                             ; preds = %1597
  %1601 = uitofp i64 %1596 to double
  %1602 = uitofp i64 %1598 to double
  %1603 = fcmp olt double %1601, %1602
  br i1 %1603, label %1604, label %.thread17011

1604:                                             ; preds = %1600
  %1605 = uitofp i64 %1593 to double
  %1606 = fsub double %1605, %1601
  %1607 = fmul double %1606, 3.276700e+04
  %1608 = fsub double %1602, %1601
  %1609 = fdiv double %1607, %1608
  %1610 = fadd double %1609, 0.000000e+00
  %1611 = fcmp oge double %1609, 0.000000e+00
  %.v16513 = select i1 %1611, double 5.000000e-01, double -5.000000e-01
  %1612 = fadd double %1610, %.v16513
  %1613 = fcmp ogt double %1612, 0.000000e+00
  br i1 %1613, label %1614, label %1621

1614:                                             ; preds = %1604
  %1615 = fcmp ugt double %1612, 3.276700e+04
  br i1 %1615, label %1616, label %1621

1616:                                             ; preds = %1614
  %1617 = fcmp olt double %1612, 3.276700e+04
  %.16872 = select i1 %1617, double %1612, double 3.276700e+04
  br label %1621

.thread17011:                                     ; preds = %1592, %1600
  %1618 = uitofp i64 %1593 to double
  %1619 = icmp ult i64 %1593, 32768
  %1620 = select i1 %1619, double %1618, double 3.276700e+04
  br label %1621

1621:                                             ; preds = %1614, %1616, %1604, %.thread17011
  %storemerge16512.in = phi double [ %1620, %.thread17011 ], [ %1612, %1614 ], [ %.16872, %1616 ], [ 0.000000e+00, %1604 ]
  %storemerge16512 = fptosi double %storemerge16512.in to i16
  store i16 %storemerge16512, ptr %0, align 2, !tbaa !13
  br label %4216

1622:                                             ; preds = %1419
  %1623 = load i32, ptr %3, align 4, !tbaa !11
  %.not16502 = icmp eq ptr %4, null
  br i1 %.not16502, label %.thread17014, label %1624

1624:                                             ; preds = %1622
  %.not16503 = icmp eq ptr %5, null
  br i1 %.not16503, label %1629, label %1625

1625:                                             ; preds = %1624
  %1626 = load i32, ptr %4, align 4, !tbaa !11
  %.not16504 = icmp ugt i32 %1626, %1623
  br i1 %.not16504, label %1629, label %1627

1627:                                             ; preds = %1625
  %1628 = load i32, ptr %5, align 4, !tbaa !11
  %.not16505 = icmp ugt i32 %1623, %1628
  br i1 %.not16505, label %1629, label %1630

1629:                                             ; preds = %1627, %1625, %1624
  tail call void @__assert_fail(ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.24, i32 noundef 488, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1630:                                             ; preds = %1627
  %1631 = uitofp i32 %1626 to double
  %1632 = uitofp i32 %1628 to double
  %1633 = fcmp olt double %1631, %1632
  br i1 %1633, label %1634, label %.thread17014

1634:                                             ; preds = %1630
  %1635 = uitofp i32 %1623 to double
  %1636 = fsub double %1635, %1631
  %1637 = fmul double %1636, 3.276700e+04
  %1638 = fsub double %1632, %1631
  %1639 = fdiv double %1637, %1638
  %1640 = fadd double %1639, 0.000000e+00
  %1641 = fcmp oge double %1639, 0.000000e+00
  %.v16507 = select i1 %1641, double 5.000000e-01, double -5.000000e-01
  %1642 = fadd double %1640, %.v16507
  %1643 = fcmp ogt double %1642, 0.000000e+00
  br i1 %1643, label %1644, label %1651

1644:                                             ; preds = %1634
  %1645 = fcmp ugt double %1642, 3.276700e+04
  br i1 %1645, label %1646, label %1651

1646:                                             ; preds = %1644
  %1647 = fcmp olt double %1642, 3.276700e+04
  %.16873 = select i1 %1647, double %1642, double 3.276700e+04
  br label %1651

.thread17014:                                     ; preds = %1622, %1630
  %1648 = uitofp i32 %1623 to double
  %1649 = icmp ult i32 %1623, 32768
  %1650 = select i1 %1649, double %1648, double 3.276700e+04
  br label %1651

1651:                                             ; preds = %1644, %1646, %1634, %.thread17014
  %storemerge16506.in = phi double [ %1650, %.thread17014 ], [ %1642, %1644 ], [ %.16873, %1646 ], [ 0.000000e+00, %1634 ]
  %storemerge16506 = fptosi double %storemerge16506.in to i16
  store i16 %storemerge16506, ptr %0, align 2, !tbaa !13
  br label %4216

1652:                                             ; preds = %1419
  %1653 = load i16, ptr %3, align 2, !tbaa !13
  %.not16496 = icmp eq ptr %4, null
  br i1 %.not16496, label %.thread17017, label %1654

1654:                                             ; preds = %1652
  %.not16497 = icmp eq ptr %5, null
  br i1 %.not16497, label %1659, label %1655

1655:                                             ; preds = %1654
  %1656 = load i16, ptr %4, align 2, !tbaa !13
  %.not16498 = icmp ugt i16 %1656, %1653
  br i1 %.not16498, label %1659, label %1657

1657:                                             ; preds = %1655
  %1658 = load i16, ptr %5, align 2, !tbaa !13
  %.not16499 = icmp ugt i16 %1653, %1658
  br i1 %.not16499, label %1659, label %1660

1659:                                             ; preds = %1657, %1655, %1654
  tail call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.24, i32 noundef 488, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1660:                                             ; preds = %1657
  %1661 = uitofp i16 %1656 to double
  %1662 = uitofp i16 %1658 to double
  %1663 = fcmp olt double %1661, %1662
  br i1 %1663, label %1664, label %.thread17017

1664:                                             ; preds = %1660
  %1665 = uitofp i16 %1653 to double
  %1666 = fsub double %1665, %1661
  %1667 = fmul double %1666, 3.276700e+04
  %1668 = fsub double %1662, %1661
  %1669 = fdiv double %1667, %1668
  %1670 = fadd double %1669, 0.000000e+00
  %1671 = fcmp oge double %1669, 0.000000e+00
  %.v16501 = select i1 %1671, double 5.000000e-01, double -5.000000e-01
  %1672 = fadd double %1670, %.v16501
  %1673 = fcmp ogt double %1672, 0.000000e+00
  br i1 %1673, label %1674, label %1683

1674:                                             ; preds = %1664
  %1675 = fcmp ugt double %1672, 3.276700e+04
  br i1 %1675, label %1676, label %1683

1676:                                             ; preds = %1674
  %1677 = fcmp olt double %1672, 3.276700e+04
  %.16874 = select i1 %1677, double %1672, double 3.276700e+04
  br label %1683

.thread17017:                                     ; preds = %1652, %1660
  %1678 = uitofp i16 %1653 to double
  %1679 = fcmp olt double %1678, 3.276700e+04
  %1680 = select i1 %1679, double %1678, double 3.276700e+04
  %1681 = icmp slt i16 %1653, 0
  %1682 = select i1 %1681, double %1680, double %1678
  br label %1683

1683:                                             ; preds = %1674, %1676, %1664, %.thread17017
  %storemerge16500.in = phi double [ %1682, %.thread17017 ], [ %1672, %1674 ], [ %.16874, %1676 ], [ 0.000000e+00, %1664 ]
  %storemerge16500 = fptosi double %storemerge16500.in to i16
  store i16 %storemerge16500, ptr %0, align 2, !tbaa !13
  br label %4216

1684:                                             ; preds = %1419
  %1685 = load i8, ptr %3, align 1, !tbaa !15
  %.not16490 = icmp eq ptr %4, null
  br i1 %.not16490, label %.thread17020, label %1686

1686:                                             ; preds = %1684
  %.not16491 = icmp eq ptr %5, null
  br i1 %.not16491, label %1691, label %1687

1687:                                             ; preds = %1686
  %1688 = load i8, ptr %4, align 1, !tbaa !15
  %.not16492 = icmp ugt i8 %1688, %1685
  br i1 %.not16492, label %1691, label %1689

1689:                                             ; preds = %1687
  %1690 = load i8, ptr %5, align 1, !tbaa !15
  %.not16493 = icmp ugt i8 %1685, %1690
  br i1 %.not16493, label %1691, label %1692

1691:                                             ; preds = %1689, %1687, %1686
  tail call void @__assert_fail(ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.24, i32 noundef 488, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1692:                                             ; preds = %1689
  %1693 = uitofp i8 %1688 to double
  %1694 = uitofp i8 %1690 to double
  %1695 = fcmp olt double %1693, %1694
  br i1 %1695, label %1696, label %.thread17020

1696:                                             ; preds = %1692
  %1697 = uitofp i8 %1685 to double
  %1698 = fsub double %1697, %1693
  %1699 = fmul double %1698, 3.276700e+04
  %1700 = fsub double %1694, %1693
  %1701 = fdiv double %1699, %1700
  %1702 = fadd double %1701, 0.000000e+00
  %1703 = fcmp oge double %1701, 0.000000e+00
  %.v16495 = select i1 %1703, double 5.000000e-01, double -5.000000e-01
  %1704 = fadd double %1702, %.v16495
  %1705 = fcmp ogt double %1704, 0.000000e+00
  br i1 %1705, label %1706, label %1710

1706:                                             ; preds = %1696
  %1707 = fcmp ugt double %1704, 3.276700e+04
  br i1 %1707, label %1708, label %1710

1708:                                             ; preds = %1706
  %1709 = fcmp olt double %1704, 3.276700e+04
  %.16875 = select i1 %1709, double %1704, double 3.276700e+04
  br label %1710

1710:                                             ; preds = %1696, %1708, %1706
  %1711 = phi double [ %1704, %1706 ], [ %.16875, %1708 ], [ 0.000000e+00, %1696 ]
  %1712 = fptosi double %1711 to i16
  br label %1714

.thread17020:                                     ; preds = %1684, %1692
  %1713 = zext i8 %1685 to i16
  br label %1714

1714:                                             ; preds = %.thread17020, %1710
  %storemerge16494 = phi i16 [ %1713, %.thread17020 ], [ %1712, %1710 ]
  store i16 %storemerge16494, ptr %0, align 2, !tbaa !13
  br label %4216

1715:                                             ; preds = %1419
  %1716 = load double, ptr %3, align 8, !tbaa !9
  %.not16486 = icmp ne ptr %4, null
  %1717 = fcmp ord double %1716, 0.000000e+00
  %or.cond16876 = select i1 %.not16486, i1 %1717, i1 false
  br i1 %or.cond16876, label %1718, label %.thread17023

1718:                                             ; preds = %1715
  %.not16487 = icmp eq ptr %5, null
  br i1 %.not16487, label %1725, label %1719

1719:                                             ; preds = %1718
  %1720 = load double, ptr %4, align 8, !tbaa !9
  %1721 = fcmp ugt double %1720, %1716
  br i1 %1721, label %1725, label %1722

1722:                                             ; preds = %1719
  %1723 = load double, ptr %5, align 8, !tbaa !9
  %1724 = fcmp ugt double %1716, %1723
  br i1 %1724, label %1725, label %1726

1725:                                             ; preds = %1722, %1719, %1718
  tail call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.24, i32 noundef 488, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1726:                                             ; preds = %1722
  %1727 = fcmp olt double %1720, %1723
  br i1 %1727, label %1728, label %.thread17023

1728:                                             ; preds = %1726
  %1729 = fcmp olt double %1720, 0.000000e+00
  %1730 = fcmp ogt double %1723, 0.000000e+00
  %or.cond331 = and i1 %1729, %1730
  br i1 %or.cond331, label %1731, label %1736

1731:                                             ; preds = %1728
  %1732 = fneg double %1720
  %1733 = fcmp ogt double %1723, %1732
  %1734 = select i1 %1733, double %1723, double %1732
  %1735 = fneg double %1734
  br label %1736

1736:                                             ; preds = %1728, %1731
  %.114492 = phi double [ %1734, %1731 ], [ %1723, %1728 ]
  %.114490 = phi double [ %1735, %1731 ], [ %1720, %1728 ]
  %1737 = fcmp oge double %.114490, 0.000000e+00
  %1738 = select i1 %1737, double 0.000000e+00, double -3.276800e+04
  %1739 = fcmp oge double %.114492, 0.000000e+00
  %1740 = select i1 %1739, double 3.276700e+04, double 0.000000e+00
  %1741 = fsub double %1716, %.114490
  %1742 = fsub double %1740, %1738
  %1743 = fmul double %1741, %1742
  %1744 = fsub double %.114492, %.114490
  %1745 = fdiv double %1743, %1744
  %1746 = fadd double %1738, %1745
  %1747 = fcmp oge double %1746, 0.000000e+00
  %.v16489 = select i1 %1747, double 5.000000e-01, double -5.000000e-01
  %1748 = fadd double %1746, %.v16489
  %1749 = fcmp olt double %1738, %1748
  br i1 %1749, label %1750, label %1771

1750:                                             ; preds = %1736
  %1751 = fcmp ugt double %1748, %1740
  br i1 %1751, label %1752, label %1771

1752:                                             ; preds = %1750
  %1753 = fcmp olt double %1748, %1740
  %.16877 = select i1 %1753, double %1748, double %1740
  br label %1771

.thread17023:                                     ; preds = %1715, %1726
  %1754 = fcmp ult double %1716, 0.000000e+00
  br i1 %1754, label %1763, label %1755

1755:                                             ; preds = %.thread17023
  %1756 = fadd double %1716, 5.000000e-01
  %1757 = fcmp ogt double %1756, -3.276800e+04
  br i1 %1757, label %1758, label %1771

1758:                                             ; preds = %1755
  %1759 = fcmp ugt double %1756, 3.276700e+04
  br i1 %1759, label %1760, label %1771

1760:                                             ; preds = %1758
  %1761 = fcmp olt double %1756, 3.276700e+04
  %1762 = select i1 %1761, double %1756, double 3.276700e+04
  br label %1771

1763:                                             ; preds = %.thread17023
  %1764 = fadd double %1716, -5.000000e-01
  %1765 = fcmp ogt double %1764, -3.276800e+04
  br i1 %1765, label %1766, label %1771

1766:                                             ; preds = %1763
  %1767 = fcmp ugt double %1764, 3.276700e+04
  br i1 %1767, label %1768, label %1771

1768:                                             ; preds = %1766
  %1769 = fcmp olt double %1764, 3.276700e+04
  %1770 = select i1 %1769, double %1764, double 3.276700e+04
  br label %1771

1771:                                             ; preds = %1760, %1768, %1758, %1755, %1766, %1763, %1750, %1752, %1736
  %storemerge16488.in = phi double [ %1748, %1750 ], [ %.16877, %1752 ], [ %1738, %1736 ], [ %1762, %1760 ], [ %1770, %1768 ], [ %1756, %1758 ], [ -3.276800e+04, %1755 ], [ %1764, %1766 ], [ -3.276800e+04, %1763 ]
  %storemerge16488 = fptosi double %storemerge16488.in to i16
  store i16 %storemerge16488, ptr %0, align 2, !tbaa !13
  br label %4216

1772:                                             ; preds = %1419
  %1773 = load float, ptr %3, align 4, !tbaa !16
  %.not16482 = icmp ne ptr %4, null
  %1774 = fcmp ord float %1773, 0.000000e+00
  %or.cond16878 = select i1 %.not16482, i1 %1774, i1 false
  br i1 %or.cond16878, label %1775, label %.thread17026

1775:                                             ; preds = %1772
  %.not16483 = icmp eq ptr %5, null
  br i1 %.not16483, label %1782, label %1776

1776:                                             ; preds = %1775
  %1777 = load float, ptr %4, align 4, !tbaa !16
  %1778 = fcmp ugt float %1777, %1773
  br i1 %1778, label %1782, label %1779

1779:                                             ; preds = %1776
  %1780 = load float, ptr %5, align 4, !tbaa !16
  %1781 = fcmp ugt float %1773, %1780
  br i1 %1781, label %1782, label %1783

1782:                                             ; preds = %1779, %1776, %1775
  tail call void @__assert_fail(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.24, i32 noundef 488, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1783:                                             ; preds = %1779
  %1784 = fpext float %1777 to double
  %1785 = fpext float %1780 to double
  %1786 = fcmp olt float %1777, %1780
  br i1 %1786, label %1787, label %.thread17026

1787:                                             ; preds = %1783
  %1788 = fcmp olt float %1777, 0.000000e+00
  %1789 = fcmp ogt float %1780, 0.000000e+00
  %or.cond335 = and i1 %1788, %1789
  br i1 %or.cond335, label %1790, label %1795

1790:                                             ; preds = %1787
  %1791 = fneg double %1784
  %1792 = fcmp ogt double %1785, %1791
  %1793 = select i1 %1792, double %1785, double %1791
  %1794 = fneg double %1793
  br label %1795

1795:                                             ; preds = %1787, %1790
  %.114502 = phi double [ %1793, %1790 ], [ %1785, %1787 ]
  %.114495 = phi double [ %1794, %1790 ], [ %1784, %1787 ]
  %1796 = fcmp oge double %.114495, 0.000000e+00
  %1797 = select i1 %1796, double 0.000000e+00, double -3.276800e+04
  %1798 = fcmp oge double %.114502, 0.000000e+00
  %1799 = select i1 %1798, double 3.276700e+04, double 0.000000e+00
  %1800 = fpext float %1773 to double
  %1801 = fsub double %1800, %.114495
  %1802 = fsub double %1799, %1797
  %1803 = fmul double %1801, %1802
  %1804 = fsub double %.114502, %.114495
  %1805 = fdiv double %1803, %1804
  %1806 = fadd double %1797, %1805
  %1807 = fcmp oge double %1806, 0.000000e+00
  %.v16485 = select i1 %1807, double 5.000000e-01, double -5.000000e-01
  %1808 = fadd double %1806, %.v16485
  %1809 = fcmp olt double %1797, %1808
  br i1 %1809, label %1810, label %1832

1810:                                             ; preds = %1795
  %1811 = fcmp ugt double %1808, %1799
  br i1 %1811, label %1812, label %1832

1812:                                             ; preds = %1810
  %1813 = fcmp olt double %1808, %1799
  %.16879 = select i1 %1813, double %1808, double %1799
  br label %1832

.thread17026:                                     ; preds = %1772, %1783
  %1814 = fcmp ult float %1773, 0.000000e+00
  %1815 = fpext float %1773 to double
  br i1 %1814, label %1824, label %1816

1816:                                             ; preds = %.thread17026
  %1817 = fadd double %1815, 5.000000e-01
  %1818 = fcmp ogt double %1817, -3.276800e+04
  br i1 %1818, label %1819, label %1832

1819:                                             ; preds = %1816
  %1820 = fcmp ugt double %1817, 3.276700e+04
  br i1 %1820, label %1821, label %1832

1821:                                             ; preds = %1819
  %1822 = fcmp olt double %1817, 3.276700e+04
  %1823 = select i1 %1822, double %1817, double 3.276700e+04
  br label %1832

1824:                                             ; preds = %.thread17026
  %1825 = fadd double %1815, -5.000000e-01
  %1826 = fcmp ogt double %1825, -3.276800e+04
  br i1 %1826, label %1827, label %1832

1827:                                             ; preds = %1824
  %1828 = fcmp ugt double %1825, 3.276700e+04
  br i1 %1828, label %1829, label %1832

1829:                                             ; preds = %1827
  %1830 = fcmp olt double %1825, 3.276700e+04
  %1831 = select i1 %1830, double %1825, double 3.276700e+04
  br label %1832

1832:                                             ; preds = %1821, %1829, %1819, %1816, %1827, %1824, %1810, %1812, %1795
  %storemerge16484.in = phi double [ %1808, %1810 ], [ %.16879, %1812 ], [ %1797, %1795 ], [ %1823, %1821 ], [ %1831, %1829 ], [ %1817, %1819 ], [ -3.276800e+04, %1816 ], [ %1825, %1827 ], [ -3.276800e+04, %1824 ]
  %storemerge16484 = fptosi double %storemerge16484.in to i16
  store i16 %storemerge16484, ptr %0, align 2, !tbaa !13
  br label %4216

1833:                                             ; preds = %1419
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 488, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1834:                                             ; preds = %1419
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 488, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1835:                                             ; preds = %1419
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 488, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1836:                                             ; preds = %6
  %1837 = icmp ne ptr %0, null
  %1838 = icmp ne ptr %3, null
  %or.cond337 = and i1 %1837, %1838
  br i1 %or.cond337, label %1840, label %1839

1839:                                             ; preds = %1836
  tail call void @__assert_fail(ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.24, i32 noundef 491, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1840:                                             ; preds = %1836
  switch i32 %2, label %4216 [
    i32 6, label %1841
    i32 8, label %1888
    i32 10, label %1935
    i32 12, label %1982
    i32 15, label %2024
    i32 16, label %2054
    i32 17, label %2084
    i32 18, label %2114
    i32 0, label %2146
    i32 1, label %2203
    i32 3, label %2264
    i32 2, label %2265
    i32 4, label %2266
  ]

1841:                                             ; preds = %1840
  %1842 = load i64, ptr %3, align 8, !tbaa !5
  %.not16476 = icmp eq ptr %4, null
  br i1 %.not16476, label %.thread17029, label %1843

1843:                                             ; preds = %1841
  %.not16477 = icmp eq ptr %5, null
  br i1 %.not16477, label %1848, label %1844

1844:                                             ; preds = %1843
  %1845 = load i64, ptr %4, align 8, !tbaa !5
  %.not16478 = icmp sgt i64 %1845, %1842
  br i1 %.not16478, label %1848, label %1846

1846:                                             ; preds = %1844
  %1847 = load i64, ptr %5, align 8, !tbaa !5
  %.not16479 = icmp sgt i64 %1842, %1847
  br i1 %.not16479, label %1848, label %1849

1848:                                             ; preds = %1846, %1844, %1843
  tail call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.24, i32 noundef 491, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1849:                                             ; preds = %1846
  %1850 = sitofp i64 %1845 to double
  %1851 = sitofp i64 %1847 to double
  %1852 = fcmp olt double %1850, %1851
  br i1 %1852, label %1853, label %.thread17029

1853:                                             ; preds = %1849
  %1854 = icmp slt i64 %1845, 0
  %1855 = icmp sgt i64 %1847, 0
  %or.cond341 = and i1 %1854, %1855
  br i1 %or.cond341, label %1856, label %1861

1856:                                             ; preds = %1853
  %1857 = fneg double %1850
  %1858 = fcmp ogt double %1851, %1857
  %1859 = select i1 %1858, double %1851, double %1857
  %1860 = fneg double %1859
  br label %1861

1861:                                             ; preds = %1853, %1856
  %.114507 = phi double [ %1859, %1856 ], [ %1851, %1853 ]
  %.114505 = phi double [ %1860, %1856 ], [ %1850, %1853 ]
  %1862 = fcmp oge double %.114505, 0.000000e+00
  %1863 = select i1 %1862, double 0.000000e+00, double -1.280000e+02
  %1864 = fcmp oge double %.114507, 0.000000e+00
  %1865 = select i1 %1864, double 1.270000e+02, double 0.000000e+00
  %1866 = sitofp i64 %1842 to double
  %1867 = fsub double %1866, %.114505
  %1868 = fsub double %1865, %1863
  %1869 = fmul double %1867, %1868
  %1870 = fsub double %.114507, %.114505
  %1871 = fdiv double %1869, %1870
  %1872 = fadd double %1863, %1871
  %1873 = fcmp oge double %1872, 0.000000e+00
  %.v16481 = select i1 %1873, double 5.000000e-01, double -5.000000e-01
  %1874 = fadd double %1872, %.v16481
  %1875 = fcmp olt double %1863, %1874
  br i1 %1875, label %1876, label %1887

1876:                                             ; preds = %1861
  %1877 = fcmp ugt double %1874, %1865
  br i1 %1877, label %1878, label %1887

1878:                                             ; preds = %1876
  %1879 = fcmp olt double %1874, %1865
  %.16880 = select i1 %1879, double %1874, double %1865
  br label %1887

.thread17029:                                     ; preds = %1841, %1849
  %1880 = sitofp i64 %1842 to double
  %1881 = icmp sgt i64 %1842, -128
  br i1 %1881, label %1882, label %1887

1882:                                             ; preds = %.thread17029
  %1883 = icmp slt i64 %1842, 128
  br i1 %1883, label %1887, label %1884

1884:                                             ; preds = %1882
  %1885 = fcmp olt double %1880, 1.270000e+02
  %1886 = select i1 %1885, double %1880, double 1.270000e+02
  br label %1887

1887:                                             ; preds = %1884, %1882, %.thread17029, %1876, %1878, %1861
  %storemerge16480.in = phi double [ %1874, %1876 ], [ %.16880, %1878 ], [ %1863, %1861 ], [ %1886, %1884 ], [ %1880, %1882 ], [ -1.280000e+02, %.thread17029 ]
  %storemerge16480 = fptosi double %storemerge16480.in to i8
  store i8 %storemerge16480, ptr %0, align 1, !tbaa !15
  br label %4216

1888:                                             ; preds = %1840
  %1889 = load i32, ptr %3, align 4, !tbaa !11
  %.not16470 = icmp eq ptr %4, null
  br i1 %.not16470, label %.thread17032, label %1890

1890:                                             ; preds = %1888
  %.not16471 = icmp eq ptr %5, null
  br i1 %.not16471, label %1895, label %1891

1891:                                             ; preds = %1890
  %1892 = load i32, ptr %4, align 4, !tbaa !11
  %.not16472 = icmp sgt i32 %1892, %1889
  br i1 %.not16472, label %1895, label %1893

1893:                                             ; preds = %1891
  %1894 = load i32, ptr %5, align 4, !tbaa !11
  %.not16473 = icmp sgt i32 %1889, %1894
  br i1 %.not16473, label %1895, label %1896

1895:                                             ; preds = %1893, %1891, %1890
  tail call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.24, i32 noundef 491, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1896:                                             ; preds = %1893
  %1897 = sitofp i32 %1892 to double
  %1898 = sitofp i32 %1894 to double
  %1899 = fcmp olt double %1897, %1898
  br i1 %1899, label %1900, label %.thread17032

1900:                                             ; preds = %1896
  %1901 = icmp slt i32 %1892, 0
  %1902 = icmp sgt i32 %1894, 0
  %or.cond345 = and i1 %1901, %1902
  br i1 %or.cond345, label %1903, label %1908

1903:                                             ; preds = %1900
  %1904 = fneg double %1897
  %1905 = fcmp ogt double %1898, %1904
  %1906 = select i1 %1905, double %1898, double %1904
  %1907 = fneg double %1906
  br label %1908

1908:                                             ; preds = %1900, %1903
  %.114512 = phi double [ %1906, %1903 ], [ %1898, %1900 ]
  %.114510 = phi double [ %1907, %1903 ], [ %1897, %1900 ]
  %1909 = fcmp oge double %.114510, 0.000000e+00
  %1910 = select i1 %1909, double 0.000000e+00, double -1.280000e+02
  %1911 = fcmp oge double %.114512, 0.000000e+00
  %1912 = select i1 %1911, double 1.270000e+02, double 0.000000e+00
  %1913 = sitofp i32 %1889 to double
  %1914 = fsub double %1913, %.114510
  %1915 = fsub double %1912, %1910
  %1916 = fmul double %1914, %1915
  %1917 = fsub double %.114512, %.114510
  %1918 = fdiv double %1916, %1917
  %1919 = fadd double %1910, %1918
  %1920 = fcmp oge double %1919, 0.000000e+00
  %.v16475 = select i1 %1920, double 5.000000e-01, double -5.000000e-01
  %1921 = fadd double %1919, %.v16475
  %1922 = fcmp olt double %1910, %1921
  br i1 %1922, label %1923, label %1934

1923:                                             ; preds = %1908
  %1924 = fcmp ugt double %1921, %1912
  br i1 %1924, label %1925, label %1934

1925:                                             ; preds = %1923
  %1926 = fcmp olt double %1921, %1912
  %.16881 = select i1 %1926, double %1921, double %1912
  br label %1934

.thread17032:                                     ; preds = %1888, %1896
  %1927 = sitofp i32 %1889 to double
  %1928 = icmp sgt i32 %1889, -128
  br i1 %1928, label %1929, label %1934

1929:                                             ; preds = %.thread17032
  %1930 = icmp slt i32 %1889, 128
  br i1 %1930, label %1934, label %1931

1931:                                             ; preds = %1929
  %1932 = fcmp olt double %1927, 1.270000e+02
  %1933 = select i1 %1932, double %1927, double 1.270000e+02
  br label %1934

1934:                                             ; preds = %1931, %1929, %.thread17032, %1923, %1925, %1908
  %storemerge16474.in = phi double [ %1921, %1923 ], [ %.16881, %1925 ], [ %1910, %1908 ], [ %1933, %1931 ], [ %1927, %1929 ], [ -1.280000e+02, %.thread17032 ]
  %storemerge16474 = fptosi double %storemerge16474.in to i8
  store i8 %storemerge16474, ptr %0, align 1, !tbaa !15
  br label %4216

1935:                                             ; preds = %1840
  %1936 = load i16, ptr %3, align 2, !tbaa !13
  %.not16464 = icmp eq ptr %4, null
  br i1 %.not16464, label %.thread17035, label %1937

1937:                                             ; preds = %1935
  %.not16465 = icmp eq ptr %5, null
  br i1 %.not16465, label %1942, label %1938

1938:                                             ; preds = %1937
  %1939 = load i16, ptr %4, align 2, !tbaa !13
  %.not16466 = icmp sgt i16 %1939, %1936
  br i1 %.not16466, label %1942, label %1940

1940:                                             ; preds = %1938
  %1941 = load i16, ptr %5, align 2, !tbaa !13
  %.not16467 = icmp sgt i16 %1936, %1941
  br i1 %.not16467, label %1942, label %1943

1942:                                             ; preds = %1940, %1938, %1937
  tail call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.24, i32 noundef 491, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1943:                                             ; preds = %1940
  %1944 = sitofp i16 %1939 to double
  %1945 = sitofp i16 %1941 to double
  %1946 = fcmp olt double %1944, %1945
  br i1 %1946, label %1947, label %.thread17035

1947:                                             ; preds = %1943
  %1948 = icmp slt i16 %1939, 0
  %1949 = icmp sgt i16 %1941, 0
  %or.cond349 = and i1 %1948, %1949
  br i1 %or.cond349, label %1950, label %1955

1950:                                             ; preds = %1947
  %1951 = fneg double %1944
  %1952 = fcmp ogt double %1945, %1951
  %1953 = select i1 %1952, double %1945, double %1951
  %1954 = fneg double %1953
  br label %1955

1955:                                             ; preds = %1947, %1950
  %.114522 = phi double [ %1953, %1950 ], [ %1945, %1947 ]
  %.114520 = phi double [ %1954, %1950 ], [ %1944, %1947 ]
  %1956 = fcmp oge double %.114520, 0.000000e+00
  %1957 = select i1 %1956, double 0.000000e+00, double -1.280000e+02
  %1958 = fcmp oge double %.114522, 0.000000e+00
  %1959 = select i1 %1958, double 1.270000e+02, double 0.000000e+00
  %1960 = sitofp i16 %1936 to double
  %1961 = fsub double %1960, %.114520
  %1962 = fsub double %1959, %1957
  %1963 = fmul double %1961, %1962
  %1964 = fsub double %.114522, %.114520
  %1965 = fdiv double %1963, %1964
  %1966 = fadd double %1957, %1965
  %1967 = fcmp oge double %1966, 0.000000e+00
  %.v16469 = select i1 %1967, double 5.000000e-01, double -5.000000e-01
  %1968 = fadd double %1966, %.v16469
  %1969 = fcmp olt double %1957, %1968
  br i1 %1969, label %1970, label %1981

1970:                                             ; preds = %1955
  %1971 = fcmp ugt double %1968, %1959
  br i1 %1971, label %1972, label %1981

1972:                                             ; preds = %1970
  %1973 = fcmp olt double %1968, %1959
  %.16882 = select i1 %1973, double %1968, double %1959
  br label %1981

.thread17035:                                     ; preds = %1935, %1943
  %1974 = sitofp i16 %1936 to double
  %1975 = icmp sgt i16 %1936, -128
  br i1 %1975, label %1976, label %1981

1976:                                             ; preds = %.thread17035
  %1977 = icmp slt i16 %1936, 128
  br i1 %1977, label %1981, label %1978

1978:                                             ; preds = %1976
  %1979 = fcmp olt double %1974, 1.270000e+02
  %1980 = select i1 %1979, double %1974, double 1.270000e+02
  br label %1981

1981:                                             ; preds = %1978, %1976, %.thread17035, %1970, %1972, %1955
  %storemerge16468.in = phi double [ %1968, %1970 ], [ %.16882, %1972 ], [ %1957, %1955 ], [ %1980, %1978 ], [ %1974, %1976 ], [ -1.280000e+02, %.thread17035 ]
  %storemerge16468 = fptosi double %storemerge16468.in to i8
  store i8 %storemerge16468, ptr %0, align 1, !tbaa !15
  br label %4216

1982:                                             ; preds = %1840
  %1983 = load i8, ptr %3, align 1, !tbaa !15
  %.not16457 = icmp eq ptr %4, null
  br i1 %.not16457, label %.thread17038, label %1984

1984:                                             ; preds = %1982
  %.not16458 = icmp eq ptr %5, null
  br i1 %.not16458, label %1989, label %1985

1985:                                             ; preds = %1984
  %1986 = load i8, ptr %4, align 1, !tbaa !15
  %.not16459 = icmp sgt i8 %1986, %1983
  br i1 %.not16459, label %1989, label %1987

1987:                                             ; preds = %1985
  %1988 = load i8, ptr %5, align 1, !tbaa !15
  %.not16460 = icmp sgt i8 %1983, %1988
  br i1 %.not16460, label %1989, label %1990

1989:                                             ; preds = %1987, %1985, %1984
  tail call void @__assert_fail(ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.24, i32 noundef 491, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

1990:                                             ; preds = %1987
  %1991 = sitofp i8 %1986 to double
  %1992 = sitofp i8 %1988 to double
  %1993 = fcmp olt double %1991, %1992
  br i1 %1993, label %1994, label %.thread17038

1994:                                             ; preds = %1990
  %1995 = icmp slt i8 %1986, 0
  %1996 = icmp sgt i8 %1988, 0
  %or.cond353 = and i1 %1995, %1996
  br i1 %or.cond353, label %1997, label %2002

1997:                                             ; preds = %1994
  %1998 = fneg double %1991
  %1999 = fcmp ogt double %1992, %1998
  %2000 = select i1 %1999, double %1992, double %1998
  %2001 = fneg double %2000
  br label %2002

2002:                                             ; preds = %1994, %1997
  %.114527 = phi double [ %2000, %1997 ], [ %1992, %1994 ]
  %.114525 = phi double [ %2001, %1997 ], [ %1991, %1994 ]
  %2003 = fcmp oge double %.114525, 0.000000e+00
  %2004 = select i1 %2003, double 0.000000e+00, double -1.280000e+02
  %2005 = fcmp oge double %.114527, 0.000000e+00
  %2006 = select i1 %2005, double 1.270000e+02, double 0.000000e+00
  %2007 = sitofp i8 %1983 to double
  %2008 = fsub double %2007, %.114525
  %2009 = fsub double %2006, %2004
  %2010 = fmul double %2008, %2009
  %2011 = fsub double %.114527, %.114525
  %2012 = fdiv double %2010, %2011
  %2013 = fadd double %2004, %2012
  %2014 = fcmp oge double %2013, 0.000000e+00
  %.v16463 = select i1 %2014, double 5.000000e-01, double -5.000000e-01
  %2015 = fadd double %2013, %.v16463
  %2016 = fcmp olt double %2004, %2015
  br i1 %2016, label %2017, label %2021

2017:                                             ; preds = %2002
  %2018 = fcmp ugt double %2015, %2006
  br i1 %2018, label %2019, label %2021

2019:                                             ; preds = %2017
  %2020 = fcmp olt double %2015, %2006
  %.16883 = select i1 %2020, double %2015, double %2006
  br label %2021

2021:                                             ; preds = %2002, %2019, %2017
  %2022 = phi double [ %2015, %2017 ], [ %.16883, %2019 ], [ %2004, %2002 ]
  %2023 = fptosi double %2022 to i8
  br label %.thread17038

.thread17038:                                     ; preds = %1990, %1982, %2021
  %storemerge16462 = phi i8 [ %2023, %2021 ], [ %1983, %1982 ], [ %1983, %1990 ]
  store i8 %storemerge16462, ptr %0, align 1, !tbaa !15
  br label %4216

2024:                                             ; preds = %1840
  %2025 = load i64, ptr %3, align 8, !tbaa !5
  %.not16451 = icmp eq ptr %4, null
  br i1 %.not16451, label %.thread17041, label %2026

2026:                                             ; preds = %2024
  %.not16452 = icmp eq ptr %5, null
  br i1 %.not16452, label %2031, label %2027

2027:                                             ; preds = %2026
  %2028 = load i64, ptr %4, align 8, !tbaa !5
  %.not16453 = icmp ugt i64 %2028, %2025
  br i1 %.not16453, label %2031, label %2029

2029:                                             ; preds = %2027
  %2030 = load i64, ptr %5, align 8, !tbaa !5
  %.not16454 = icmp ugt i64 %2025, %2030
  br i1 %.not16454, label %2031, label %2032

2031:                                             ; preds = %2029, %2027, %2026
  tail call void @__assert_fail(ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.24, i32 noundef 491, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2032:                                             ; preds = %2029
  %2033 = uitofp i64 %2028 to double
  %2034 = uitofp i64 %2030 to double
  %2035 = fcmp olt double %2033, %2034
  br i1 %2035, label %2036, label %.thread17041

2036:                                             ; preds = %2032
  %2037 = uitofp i64 %2025 to double
  %2038 = fsub double %2037, %2033
  %2039 = fmul double %2038, 1.270000e+02
  %2040 = fsub double %2034, %2033
  %2041 = fdiv double %2039, %2040
  %2042 = fadd double %2041, 0.000000e+00
  %2043 = fcmp oge double %2041, 0.000000e+00
  %.v16456 = select i1 %2043, double 5.000000e-01, double -5.000000e-01
  %2044 = fadd double %2042, %.v16456
  %2045 = fcmp ogt double %2044, 0.000000e+00
  br i1 %2045, label %2046, label %2053

2046:                                             ; preds = %2036
  %2047 = fcmp ugt double %2044, 1.270000e+02
  br i1 %2047, label %2048, label %2053

2048:                                             ; preds = %2046
  %2049 = fcmp olt double %2044, 1.270000e+02
  %.16884 = select i1 %2049, double %2044, double 1.270000e+02
  br label %2053

.thread17041:                                     ; preds = %2024, %2032
  %2050 = uitofp i64 %2025 to double
  %2051 = icmp ult i64 %2025, 128
  %2052 = select i1 %2051, double %2050, double 1.270000e+02
  br label %2053

2053:                                             ; preds = %2046, %2048, %2036, %.thread17041
  %storemerge16455.in = phi double [ %2052, %.thread17041 ], [ %2044, %2046 ], [ %.16884, %2048 ], [ 0.000000e+00, %2036 ]
  %storemerge16455 = fptosi double %storemerge16455.in to i8
  store i8 %storemerge16455, ptr %0, align 1, !tbaa !15
  br label %4216

2054:                                             ; preds = %1840
  %2055 = load i32, ptr %3, align 4, !tbaa !11
  %.not16445 = icmp eq ptr %4, null
  br i1 %.not16445, label %.thread17044, label %2056

2056:                                             ; preds = %2054
  %.not16446 = icmp eq ptr %5, null
  br i1 %.not16446, label %2061, label %2057

2057:                                             ; preds = %2056
  %2058 = load i32, ptr %4, align 4, !tbaa !11
  %.not16447 = icmp ugt i32 %2058, %2055
  br i1 %.not16447, label %2061, label %2059

2059:                                             ; preds = %2057
  %2060 = load i32, ptr %5, align 4, !tbaa !11
  %.not16448 = icmp ugt i32 %2055, %2060
  br i1 %.not16448, label %2061, label %2062

2061:                                             ; preds = %2059, %2057, %2056
  tail call void @__assert_fail(ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.24, i32 noundef 491, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2062:                                             ; preds = %2059
  %2063 = uitofp i32 %2058 to double
  %2064 = uitofp i32 %2060 to double
  %2065 = fcmp olt double %2063, %2064
  br i1 %2065, label %2066, label %.thread17044

2066:                                             ; preds = %2062
  %2067 = uitofp i32 %2055 to double
  %2068 = fsub double %2067, %2063
  %2069 = fmul double %2068, 1.270000e+02
  %2070 = fsub double %2064, %2063
  %2071 = fdiv double %2069, %2070
  %2072 = fadd double %2071, 0.000000e+00
  %2073 = fcmp oge double %2071, 0.000000e+00
  %.v16450 = select i1 %2073, double 5.000000e-01, double -5.000000e-01
  %2074 = fadd double %2072, %.v16450
  %2075 = fcmp ogt double %2074, 0.000000e+00
  br i1 %2075, label %2076, label %2083

2076:                                             ; preds = %2066
  %2077 = fcmp ugt double %2074, 1.270000e+02
  br i1 %2077, label %2078, label %2083

2078:                                             ; preds = %2076
  %2079 = fcmp olt double %2074, 1.270000e+02
  %.16885 = select i1 %2079, double %2074, double 1.270000e+02
  br label %2083

.thread17044:                                     ; preds = %2054, %2062
  %2080 = uitofp i32 %2055 to double
  %2081 = icmp ult i32 %2055, 128
  %2082 = select i1 %2081, double %2080, double 1.270000e+02
  br label %2083

2083:                                             ; preds = %2076, %2078, %2066, %.thread17044
  %storemerge16449.in = phi double [ %2082, %.thread17044 ], [ %2074, %2076 ], [ %.16885, %2078 ], [ 0.000000e+00, %2066 ]
  %storemerge16449 = fptosi double %storemerge16449.in to i8
  store i8 %storemerge16449, ptr %0, align 1, !tbaa !15
  br label %4216

2084:                                             ; preds = %1840
  %2085 = load i16, ptr %3, align 2, !tbaa !13
  %.not16439 = icmp eq ptr %4, null
  br i1 %.not16439, label %.thread17047, label %2086

2086:                                             ; preds = %2084
  %.not16440 = icmp eq ptr %5, null
  br i1 %.not16440, label %2091, label %2087

2087:                                             ; preds = %2086
  %2088 = load i16, ptr %4, align 2, !tbaa !13
  %.not16441 = icmp ugt i16 %2088, %2085
  br i1 %.not16441, label %2091, label %2089

2089:                                             ; preds = %2087
  %2090 = load i16, ptr %5, align 2, !tbaa !13
  %.not16442 = icmp ugt i16 %2085, %2090
  br i1 %.not16442, label %2091, label %2092

2091:                                             ; preds = %2089, %2087, %2086
  tail call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.24, i32 noundef 491, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2092:                                             ; preds = %2089
  %2093 = uitofp i16 %2088 to double
  %2094 = uitofp i16 %2090 to double
  %2095 = fcmp olt double %2093, %2094
  br i1 %2095, label %2096, label %.thread17047

2096:                                             ; preds = %2092
  %2097 = uitofp i16 %2085 to double
  %2098 = fsub double %2097, %2093
  %2099 = fmul double %2098, 1.270000e+02
  %2100 = fsub double %2094, %2093
  %2101 = fdiv double %2099, %2100
  %2102 = fadd double %2101, 0.000000e+00
  %2103 = fcmp oge double %2101, 0.000000e+00
  %.v16444 = select i1 %2103, double 5.000000e-01, double -5.000000e-01
  %2104 = fadd double %2102, %.v16444
  %2105 = fcmp ogt double %2104, 0.000000e+00
  br i1 %2105, label %2106, label %2113

2106:                                             ; preds = %2096
  %2107 = fcmp ugt double %2104, 1.270000e+02
  br i1 %2107, label %2108, label %2113

2108:                                             ; preds = %2106
  %2109 = fcmp olt double %2104, 1.270000e+02
  %.16886 = select i1 %2109, double %2104, double 1.270000e+02
  br label %2113

.thread17047:                                     ; preds = %2084, %2092
  %2110 = uitofp i16 %2085 to double
  %2111 = icmp ult i16 %2085, 128
  %2112 = select i1 %2111, double %2110, double 1.270000e+02
  br label %2113

2113:                                             ; preds = %2106, %2108, %2096, %.thread17047
  %storemerge16443.in = phi double [ %2112, %.thread17047 ], [ %2104, %2106 ], [ %.16886, %2108 ], [ 0.000000e+00, %2096 ]
  %storemerge16443 = fptosi double %storemerge16443.in to i8
  store i8 %storemerge16443, ptr %0, align 1, !tbaa !15
  br label %4216

2114:                                             ; preds = %1840
  %2115 = load i8, ptr %3, align 1, !tbaa !15
  %.not16433 = icmp eq ptr %4, null
  br i1 %.not16433, label %.thread17050, label %2116

2116:                                             ; preds = %2114
  %.not16434 = icmp eq ptr %5, null
  br i1 %.not16434, label %2121, label %2117

2117:                                             ; preds = %2116
  %2118 = load i8, ptr %4, align 1, !tbaa !15
  %.not16435 = icmp ugt i8 %2118, %2115
  br i1 %.not16435, label %2121, label %2119

2119:                                             ; preds = %2117
  %2120 = load i8, ptr %5, align 1, !tbaa !15
  %.not16436 = icmp ugt i8 %2115, %2120
  br i1 %.not16436, label %2121, label %2122

2121:                                             ; preds = %2119, %2117, %2116
  tail call void @__assert_fail(ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.24, i32 noundef 491, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2122:                                             ; preds = %2119
  %2123 = uitofp i8 %2118 to double
  %2124 = uitofp i8 %2120 to double
  %2125 = fcmp olt double %2123, %2124
  br i1 %2125, label %2126, label %.thread17050

2126:                                             ; preds = %2122
  %2127 = uitofp i8 %2115 to double
  %2128 = fsub double %2127, %2123
  %2129 = fmul double %2128, 1.270000e+02
  %2130 = fsub double %2124, %2123
  %2131 = fdiv double %2129, %2130
  %2132 = fadd double %2131, 0.000000e+00
  %2133 = fcmp oge double %2131, 0.000000e+00
  %.v16438 = select i1 %2133, double 5.000000e-01, double -5.000000e-01
  %2134 = fadd double %2132, %.v16438
  %2135 = fcmp ogt double %2134, 0.000000e+00
  br i1 %2135, label %2136, label %2145

2136:                                             ; preds = %2126
  %2137 = fcmp ugt double %2134, 1.270000e+02
  br i1 %2137, label %2138, label %2145

2138:                                             ; preds = %2136
  %2139 = fcmp olt double %2134, 1.270000e+02
  %.16887 = select i1 %2139, double %2134, double 1.270000e+02
  br label %2145

.thread17050:                                     ; preds = %2114, %2122
  %2140 = uitofp i8 %2115 to double
  %2141 = fcmp olt double %2140, 1.270000e+02
  %2142 = select i1 %2141, double %2140, double 1.270000e+02
  %2143 = icmp slt i8 %2115, 0
  %2144 = select i1 %2143, double %2142, double %2140
  br label %2145

2145:                                             ; preds = %2136, %2138, %2126, %.thread17050
  %storemerge16437.in = phi double [ %2144, %.thread17050 ], [ %2134, %2136 ], [ %.16887, %2138 ], [ 0.000000e+00, %2126 ]
  %storemerge16437 = fptosi double %storemerge16437.in to i8
  store i8 %storemerge16437, ptr %0, align 1, !tbaa !15
  br label %4216

2146:                                             ; preds = %1840
  %2147 = load double, ptr %3, align 8, !tbaa !9
  %.not16429 = icmp ne ptr %4, null
  %2148 = fcmp ord double %2147, 0.000000e+00
  %or.cond16888 = select i1 %.not16429, i1 %2148, i1 false
  br i1 %or.cond16888, label %2149, label %.thread17053

2149:                                             ; preds = %2146
  %.not16430 = icmp eq ptr %5, null
  br i1 %.not16430, label %2156, label %2150

2150:                                             ; preds = %2149
  %2151 = load double, ptr %4, align 8, !tbaa !9
  %2152 = fcmp ugt double %2151, %2147
  br i1 %2152, label %2156, label %2153

2153:                                             ; preds = %2150
  %2154 = load double, ptr %5, align 8, !tbaa !9
  %2155 = fcmp ugt double %2147, %2154
  br i1 %2155, label %2156, label %2157

2156:                                             ; preds = %2153, %2150, %2149
  tail call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.24, i32 noundef 491, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2157:                                             ; preds = %2153
  %2158 = fcmp olt double %2151, %2154
  br i1 %2158, label %2159, label %.thread17053

2159:                                             ; preds = %2157
  %2160 = fcmp olt double %2151, 0.000000e+00
  %2161 = fcmp ogt double %2154, 0.000000e+00
  %or.cond373 = and i1 %2160, %2161
  br i1 %or.cond373, label %2162, label %2167

2162:                                             ; preds = %2159
  %2163 = fneg double %2151
  %2164 = fcmp ogt double %2154, %2163
  %2165 = select i1 %2164, double %2154, double %2163
  %2166 = fneg double %2165
  br label %2167

2167:                                             ; preds = %2159, %2162
  %.114562 = phi double [ %2165, %2162 ], [ %2154, %2159 ]
  %.114560 = phi double [ %2166, %2162 ], [ %2151, %2159 ]
  %2168 = fcmp oge double %.114560, 0.000000e+00
  %2169 = select i1 %2168, double 0.000000e+00, double -1.280000e+02
  %2170 = fcmp oge double %.114562, 0.000000e+00
  %2171 = select i1 %2170, double 1.270000e+02, double 0.000000e+00
  %2172 = fsub double %2147, %.114560
  %2173 = fsub double %2171, %2169
  %2174 = fmul double %2172, %2173
  %2175 = fsub double %.114562, %.114560
  %2176 = fdiv double %2174, %2175
  %2177 = fadd double %2169, %2176
  %2178 = fcmp oge double %2177, 0.000000e+00
  %.v16432 = select i1 %2178, double 5.000000e-01, double -5.000000e-01
  %2179 = fadd double %2177, %.v16432
  %2180 = fcmp olt double %2169, %2179
  br i1 %2180, label %2181, label %2202

2181:                                             ; preds = %2167
  %2182 = fcmp ugt double %2179, %2171
  br i1 %2182, label %2183, label %2202

2183:                                             ; preds = %2181
  %2184 = fcmp olt double %2179, %2171
  %.16889 = select i1 %2184, double %2179, double %2171
  br label %2202

.thread17053:                                     ; preds = %2146, %2157
  %2185 = fcmp ult double %2147, 0.000000e+00
  br i1 %2185, label %2194, label %2186

2186:                                             ; preds = %.thread17053
  %2187 = fadd double %2147, 5.000000e-01
  %2188 = fcmp ogt double %2187, -1.280000e+02
  br i1 %2188, label %2189, label %2202

2189:                                             ; preds = %2186
  %2190 = fcmp ugt double %2187, 1.270000e+02
  br i1 %2190, label %2191, label %2202

2191:                                             ; preds = %2189
  %2192 = fcmp olt double %2187, 1.270000e+02
  %2193 = select i1 %2192, double %2187, double 1.270000e+02
  br label %2202

2194:                                             ; preds = %.thread17053
  %2195 = fadd double %2147, -5.000000e-01
  %2196 = fcmp ogt double %2195, -1.280000e+02
  br i1 %2196, label %2197, label %2202

2197:                                             ; preds = %2194
  %2198 = fcmp ugt double %2195, 1.270000e+02
  br i1 %2198, label %2199, label %2202

2199:                                             ; preds = %2197
  %2200 = fcmp olt double %2195, 1.270000e+02
  %2201 = select i1 %2200, double %2195, double 1.270000e+02
  br label %2202

2202:                                             ; preds = %2191, %2199, %2189, %2186, %2197, %2194, %2181, %2183, %2167
  %storemerge16431.in = phi double [ %2179, %2181 ], [ %.16889, %2183 ], [ %2169, %2167 ], [ %2193, %2191 ], [ %2201, %2199 ], [ %2187, %2189 ], [ -1.280000e+02, %2186 ], [ %2195, %2197 ], [ -1.280000e+02, %2194 ]
  %storemerge16431 = fptosi double %storemerge16431.in to i8
  store i8 %storemerge16431, ptr %0, align 1, !tbaa !15
  br label %4216

2203:                                             ; preds = %1840
  %2204 = load float, ptr %3, align 4, !tbaa !16
  %.not16425 = icmp ne ptr %4, null
  %2205 = fcmp ord float %2204, 0.000000e+00
  %or.cond16890 = select i1 %.not16425, i1 %2205, i1 false
  br i1 %or.cond16890, label %2206, label %.thread17056

2206:                                             ; preds = %2203
  %.not16426 = icmp eq ptr %5, null
  br i1 %.not16426, label %2213, label %2207

2207:                                             ; preds = %2206
  %2208 = load float, ptr %4, align 4, !tbaa !16
  %2209 = fcmp ugt float %2208, %2204
  br i1 %2209, label %2213, label %2210

2210:                                             ; preds = %2207
  %2211 = load float, ptr %5, align 4, !tbaa !16
  %2212 = fcmp ugt float %2204, %2211
  br i1 %2212, label %2213, label %2214

2213:                                             ; preds = %2210, %2207, %2206
  tail call void @__assert_fail(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.24, i32 noundef 491, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2214:                                             ; preds = %2210
  %2215 = fpext float %2208 to double
  %2216 = fpext float %2211 to double
  %2217 = fcmp olt float %2208, %2211
  br i1 %2217, label %2218, label %.thread17056

2218:                                             ; preds = %2214
  %2219 = fcmp olt float %2208, 0.000000e+00
  %2220 = fcmp ogt float %2211, 0.000000e+00
  %or.cond377 = and i1 %2219, %2220
  br i1 %or.cond377, label %2221, label %2226

2221:                                             ; preds = %2218
  %2222 = fneg double %2215
  %2223 = fcmp ogt double %2216, %2222
  %2224 = select i1 %2223, double %2216, double %2222
  %2225 = fneg double %2224
  br label %2226

2226:                                             ; preds = %2218, %2221
  %.114567 = phi double [ %2224, %2221 ], [ %2216, %2218 ]
  %.114565 = phi double [ %2225, %2221 ], [ %2215, %2218 ]
  %2227 = fcmp oge double %.114565, 0.000000e+00
  %2228 = select i1 %2227, double 0.000000e+00, double -1.280000e+02
  %2229 = fcmp oge double %.114567, 0.000000e+00
  %2230 = select i1 %2229, double 1.270000e+02, double 0.000000e+00
  %2231 = fpext float %2204 to double
  %2232 = fsub double %2231, %.114565
  %2233 = fsub double %2230, %2228
  %2234 = fmul double %2232, %2233
  %2235 = fsub double %.114567, %.114565
  %2236 = fdiv double %2234, %2235
  %2237 = fadd double %2228, %2236
  %2238 = fcmp oge double %2237, 0.000000e+00
  %.v16428 = select i1 %2238, double 5.000000e-01, double -5.000000e-01
  %2239 = fadd double %2237, %.v16428
  %2240 = fcmp olt double %2228, %2239
  br i1 %2240, label %2241, label %2263

2241:                                             ; preds = %2226
  %2242 = fcmp ugt double %2239, %2230
  br i1 %2242, label %2243, label %2263

2243:                                             ; preds = %2241
  %2244 = fcmp olt double %2239, %2230
  %.16891 = select i1 %2244, double %2239, double %2230
  br label %2263

.thread17056:                                     ; preds = %2203, %2214
  %2245 = fcmp ult float %2204, 0.000000e+00
  %2246 = fpext float %2204 to double
  br i1 %2245, label %2255, label %2247

2247:                                             ; preds = %.thread17056
  %2248 = fadd double %2246, 5.000000e-01
  %2249 = fcmp ogt double %2248, -1.280000e+02
  br i1 %2249, label %2250, label %2263

2250:                                             ; preds = %2247
  %2251 = fcmp ugt double %2248, 1.270000e+02
  br i1 %2251, label %2252, label %2263

2252:                                             ; preds = %2250
  %2253 = fcmp olt double %2248, 1.270000e+02
  %2254 = select i1 %2253, double %2248, double 1.270000e+02
  br label %2263

2255:                                             ; preds = %.thread17056
  %2256 = fadd double %2246, -5.000000e-01
  %2257 = fcmp ogt double %2256, -1.280000e+02
  br i1 %2257, label %2258, label %2263

2258:                                             ; preds = %2255
  %2259 = fcmp ugt double %2256, 1.270000e+02
  br i1 %2259, label %2260, label %2263

2260:                                             ; preds = %2258
  %2261 = fcmp olt double %2256, 1.270000e+02
  %2262 = select i1 %2261, double %2256, double 1.270000e+02
  br label %2263

2263:                                             ; preds = %2252, %2260, %2250, %2247, %2258, %2255, %2241, %2243, %2226
  %storemerge16427.in = phi double [ %2239, %2241 ], [ %.16891, %2243 ], [ %2228, %2226 ], [ %2254, %2252 ], [ %2262, %2260 ], [ %2248, %2250 ], [ -1.280000e+02, %2247 ], [ %2256, %2258 ], [ -1.280000e+02, %2255 ]
  %storemerge16427 = fptosi double %storemerge16427.in to i8
  store i8 %storemerge16427, ptr %0, align 1, !tbaa !15
  br label %4216

2264:                                             ; preds = %1840
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 491, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2265:                                             ; preds = %1840
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 491, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2266:                                             ; preds = %1840
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 491, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2267:                                             ; preds = %6
  %2268 = icmp ne ptr %0, null
  %2269 = icmp ne ptr %3, null
  %or.cond379 = and i1 %2268, %2269
  br i1 %or.cond379, label %2271, label %2270

2270:                                             ; preds = %2267
  tail call void @__assert_fail(ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.24, i32 noundef 494, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2271:                                             ; preds = %2267
  switch i32 %2, label %4216 [
    i32 6, label %2272
    i32 8, label %2320
    i32 10, label %2365
    i32 12, label %2410
    i32 15, label %2455
    i32 16, label %2501
    i32 17, label %2545
    i32 18, label %2589
    i32 0, label %2633
    i32 1, label %2688
    i32 3, label %2749
    i32 2, label %2750
    i32 4, label %2751
  ]

2272:                                             ; preds = %2271
  %2273 = load i64, ptr %3, align 8, !tbaa !5
  %.not16418 = icmp eq ptr %4, null
  br i1 %.not16418, label %.thread17059, label %2274

2274:                                             ; preds = %2272
  %.not16419 = icmp eq ptr %5, null
  br i1 %.not16419, label %2279, label %2275

2275:                                             ; preds = %2274
  %2276 = load i64, ptr %4, align 8, !tbaa !5
  %.not16420 = icmp sgt i64 %2276, %2273
  br i1 %.not16420, label %2279, label %2277

2277:                                             ; preds = %2275
  %2278 = load i64, ptr %5, align 8, !tbaa !5
  %.not16421 = icmp sgt i64 %2273, %2278
  br i1 %.not16421, label %2279, label %2280

2279:                                             ; preds = %2277, %2275, %2274
  tail call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.24, i32 noundef 494, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2280:                                             ; preds = %2277
  %2281 = sitofp i64 %2276 to double
  %2282 = sitofp i64 %2278 to double
  %2283 = fcmp olt double %2281, %2282
  br i1 %2283, label %2284, label %.thread17059

2284:                                             ; preds = %2280
  %2285 = fcmp ogt double %2281, 0.000000e+00
  %2286 = select i1 %2285, double %2281, double 0.000000e+00
  %2287 = fcmp ogt double %2282, 0.000000e+00
  %2288 = select i1 %2287, double %2282, double 0.000000e+00
  %2289 = fcmp olt double %2286, %2288
  %2290 = fsub double %2282, %2281
  %2291 = fsub double %2288, %2286
  %2292 = fdiv double %2290, %2291
  %2293 = select i1 %2289, double %2292, double 1.000000e+00
  %2294 = tail call i64 @llvm.smax.i64(i64 %2273, i64 0)
  %2295 = uitofp nneg i64 %2294 to double
  %2296 = fmul double %2293, %2295
  %2297 = fcmp oge double %2296, 0.000000e+00
  %.v16423 = select i1 %2297, double 5.000000e-01, double -5.000000e-01
  %2298 = fadd double %2296, %.v16423
  %2299 = fptosi double %2298 to i64
  %2300 = sitofp i64 %2299 to double
  %2301 = fsub double %2300, %2286
  %2302 = fmul double %2301, 0x43F0000000000000
  %2303 = fdiv double %2302, %2291
  %2304 = fadd double %2303, 0.000000e+00
  %2305 = fcmp oge double %2303, 0.000000e+00
  %.v16424 = select i1 %2305, double 5.000000e-01, double -5.000000e-01
  %2306 = fadd double %2304, %.v16424
  %2307 = fcmp ogt double %2306, 0.000000e+00
  br i1 %2307, label %2308, label %2312

2308:                                             ; preds = %2284
  %2309 = fcmp ugt double %2306, 0x43F0000000000000
  br i1 %2309, label %2310, label %2312

2310:                                             ; preds = %2308
  %2311 = fcmp olt double %2306, 0x43F0000000000000
  %.16892 = select i1 %2311, double %2306, double 0x43F0000000000000
  br label %2312

2312:                                             ; preds = %2284, %2310, %2308
  %2313 = phi double [ %2306, %2308 ], [ %.16892, %2310 ], [ 0.000000e+00, %2284 ]
  %2314 = fptoui double %2313 to i64
  br label %2319

.thread17059:                                     ; preds = %2272, %2280
  %2315 = sitofp i64 %2273 to double
  %2316 = icmp sgt i64 %2273, 0
  %2317 = fptoui double %2315 to i64
  %2318 = select i1 %2316, i64 %2317, i64 0
  br label %2319

2319:                                             ; preds = %.thread17059, %2312
  %storemerge16422 = phi i64 [ %2318, %.thread17059 ], [ %2314, %2312 ]
  store i64 %storemerge16422, ptr %0, align 8, !tbaa !5
  br label %4216

2320:                                             ; preds = %2271
  %2321 = load i32, ptr %3, align 4, !tbaa !11
  %.not16411 = icmp eq ptr %4, null
  br i1 %.not16411, label %.thread17062, label %2322

2322:                                             ; preds = %2320
  %.not16412 = icmp eq ptr %5, null
  br i1 %.not16412, label %2327, label %2323

2323:                                             ; preds = %2322
  %2324 = load i32, ptr %4, align 4, !tbaa !11
  %.not16413 = icmp sgt i32 %2324, %2321
  br i1 %.not16413, label %2327, label %2325

2325:                                             ; preds = %2323
  %2326 = load i32, ptr %5, align 4, !tbaa !11
  %.not16414 = icmp sgt i32 %2321, %2326
  br i1 %.not16414, label %2327, label %2328

2327:                                             ; preds = %2325, %2323, %2322
  tail call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.24, i32 noundef 494, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2328:                                             ; preds = %2325
  %2329 = sitofp i32 %2324 to double
  %2330 = sitofp i32 %2326 to double
  %2331 = fcmp olt double %2329, %2330
  br i1 %2331, label %2332, label %.thread17062

2332:                                             ; preds = %2328
  %2333 = fcmp ogt double %2329, 0.000000e+00
  %2334 = select i1 %2333, double %2329, double 0.000000e+00
  %2335 = fcmp ogt double %2330, 0.000000e+00
  %2336 = select i1 %2335, double %2330, double 0.000000e+00
  %2337 = fcmp olt double %2334, %2336
  %2338 = fsub double %2330, %2329
  %2339 = fsub double %2336, %2334
  %2340 = fdiv double %2338, %2339
  %2341 = select i1 %2337, double %2340, double 1.000000e+00
  %2342 = tail call i32 @llvm.smax.i32(i32 %2321, i32 0)
  %2343 = uitofp nneg i32 %2342 to double
  %2344 = fmul double %2341, %2343
  %2345 = fcmp oge double %2344, 0.000000e+00
  %.v16416 = select i1 %2345, double 5.000000e-01, double -5.000000e-01
  %2346 = fadd double %2344, %.v16416
  %2347 = fptosi double %2346 to i32
  %2348 = sitofp i32 %2347 to double
  %2349 = fsub double %2348, %2334
  %2350 = fmul double %2349, 0x43F0000000000000
  %2351 = fdiv double %2350, %2339
  %2352 = fadd double %2351, 0.000000e+00
  %2353 = fcmp oge double %2351, 0.000000e+00
  %.v16417 = select i1 %2353, double 5.000000e-01, double -5.000000e-01
  %2354 = fadd double %2352, %.v16417
  %2355 = fcmp ogt double %2354, 0.000000e+00
  br i1 %2355, label %2356, label %2360

2356:                                             ; preds = %2332
  %2357 = fcmp ugt double %2354, 0x43F0000000000000
  br i1 %2357, label %2358, label %2360

2358:                                             ; preds = %2356
  %2359 = fcmp olt double %2354, 0x43F0000000000000
  %.16893 = select i1 %2359, double %2354, double 0x43F0000000000000
  br label %2360

2360:                                             ; preds = %2332, %2358, %2356
  %2361 = phi double [ %2354, %2356 ], [ %.16893, %2358 ], [ 0.000000e+00, %2332 ]
  %2362 = fptoui double %2361 to i64
  br label %2364

.thread17062:                                     ; preds = %2320, %2328
  %narrow17183 = tail call i32 @llvm.smax.i32(i32 %2321, i32 0)
  %2363 = zext nneg i32 %narrow17183 to i64
  br label %2364

2364:                                             ; preds = %.thread17062, %2360
  %storemerge16415 = phi i64 [ %2363, %.thread17062 ], [ %2362, %2360 ]
  store i64 %storemerge16415, ptr %0, align 8, !tbaa !5
  br label %4216

2365:                                             ; preds = %2271
  %2366 = load i16, ptr %3, align 2, !tbaa !13
  %.not16404 = icmp eq ptr %4, null
  br i1 %.not16404, label %.thread17065, label %2367

2367:                                             ; preds = %2365
  %.not16405 = icmp eq ptr %5, null
  br i1 %.not16405, label %2372, label %2368

2368:                                             ; preds = %2367
  %2369 = load i16, ptr %4, align 2, !tbaa !13
  %.not16406 = icmp sgt i16 %2369, %2366
  br i1 %.not16406, label %2372, label %2370

2370:                                             ; preds = %2368
  %2371 = load i16, ptr %5, align 2, !tbaa !13
  %.not16407 = icmp sgt i16 %2366, %2371
  br i1 %.not16407, label %2372, label %2373

2372:                                             ; preds = %2370, %2368, %2367
  tail call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.24, i32 noundef 494, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2373:                                             ; preds = %2370
  %2374 = sitofp i16 %2369 to double
  %2375 = sitofp i16 %2371 to double
  %2376 = fcmp olt double %2374, %2375
  br i1 %2376, label %2377, label %.thread17065

2377:                                             ; preds = %2373
  %2378 = fcmp ogt double %2374, 0.000000e+00
  %2379 = select i1 %2378, double %2374, double 0.000000e+00
  %2380 = fcmp ogt double %2375, 0.000000e+00
  %2381 = select i1 %2380, double %2375, double 0.000000e+00
  %2382 = fcmp olt double %2379, %2381
  %2383 = fsub double %2375, %2374
  %2384 = fsub double %2381, %2379
  %2385 = fdiv double %2383, %2384
  %2386 = select i1 %2382, double %2385, double 1.000000e+00
  %2387 = tail call i16 @llvm.smax.i16(i16 %2366, i16 0)
  %2388 = uitofp nneg i16 %2387 to double
  %2389 = fmul double %2386, %2388
  %2390 = fcmp oge double %2389, 0.000000e+00
  %.v16409 = select i1 %2390, double 5.000000e-01, double -5.000000e-01
  %2391 = fadd double %2389, %.v16409
  %2392 = fptosi double %2391 to i16
  %2393 = sitofp i16 %2392 to double
  %2394 = fsub double %2393, %2379
  %2395 = fmul double %2394, 0x43F0000000000000
  %2396 = fdiv double %2395, %2384
  %2397 = fadd double %2396, 0.000000e+00
  %2398 = fcmp oge double %2396, 0.000000e+00
  %.v16410 = select i1 %2398, double 5.000000e-01, double -5.000000e-01
  %2399 = fadd double %2397, %.v16410
  %2400 = fcmp ogt double %2399, 0.000000e+00
  br i1 %2400, label %2401, label %2405

2401:                                             ; preds = %2377
  %2402 = fcmp ugt double %2399, 0x43F0000000000000
  br i1 %2402, label %2403, label %2405

2403:                                             ; preds = %2401
  %2404 = fcmp olt double %2399, 0x43F0000000000000
  %.16894 = select i1 %2404, double %2399, double 0x43F0000000000000
  br label %2405

2405:                                             ; preds = %2377, %2403, %2401
  %2406 = phi double [ %2399, %2401 ], [ %.16894, %2403 ], [ 0.000000e+00, %2377 ]
  %2407 = fptoui double %2406 to i64
  br label %2409

.thread17065:                                     ; preds = %2365, %2373
  %narrow17182 = tail call i16 @llvm.smax.i16(i16 %2366, i16 0)
  %2408 = zext nneg i16 %narrow17182 to i64
  br label %2409

2409:                                             ; preds = %.thread17065, %2405
  %storemerge16408 = phi i64 [ %2408, %.thread17065 ], [ %2407, %2405 ]
  store i64 %storemerge16408, ptr %0, align 8, !tbaa !5
  br label %4216

2410:                                             ; preds = %2271
  %2411 = load i8, ptr %3, align 1, !tbaa !15
  %.not16397 = icmp eq ptr %4, null
  br i1 %.not16397, label %.thread17068, label %2412

2412:                                             ; preds = %2410
  %.not16398 = icmp eq ptr %5, null
  br i1 %.not16398, label %2417, label %2413

2413:                                             ; preds = %2412
  %2414 = load i8, ptr %4, align 1, !tbaa !15
  %.not16399 = icmp sgt i8 %2414, %2411
  br i1 %.not16399, label %2417, label %2415

2415:                                             ; preds = %2413
  %2416 = load i8, ptr %5, align 1, !tbaa !15
  %.not16400 = icmp sgt i8 %2411, %2416
  br i1 %.not16400, label %2417, label %2418

2417:                                             ; preds = %2415, %2413, %2412
  tail call void @__assert_fail(ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.24, i32 noundef 494, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2418:                                             ; preds = %2415
  %2419 = sitofp i8 %2414 to double
  %2420 = sitofp i8 %2416 to double
  %2421 = fcmp olt double %2419, %2420
  br i1 %2421, label %2422, label %.thread17068

2422:                                             ; preds = %2418
  %2423 = fcmp ogt double %2419, 0.000000e+00
  %2424 = select i1 %2423, double %2419, double 0.000000e+00
  %2425 = fcmp ogt double %2420, 0.000000e+00
  %2426 = select i1 %2425, double %2420, double 0.000000e+00
  %2427 = fcmp olt double %2424, %2426
  %2428 = fsub double %2420, %2419
  %2429 = fsub double %2426, %2424
  %2430 = fdiv double %2428, %2429
  %2431 = select i1 %2427, double %2430, double 1.000000e+00
  %2432 = tail call i8 @llvm.smax.i8(i8 %2411, i8 0)
  %2433 = uitofp nneg i8 %2432 to double
  %2434 = fmul double %2431, %2433
  %2435 = fcmp oge double %2434, 0.000000e+00
  %.v16402 = select i1 %2435, double 5.000000e-01, double -5.000000e-01
  %2436 = fadd double %2434, %.v16402
  %2437 = fptosi double %2436 to i8
  %2438 = sitofp i8 %2437 to double
  %2439 = fsub double %2438, %2424
  %2440 = fmul double %2439, 0x43F0000000000000
  %2441 = fdiv double %2440, %2429
  %2442 = fadd double %2441, 0.000000e+00
  %2443 = fcmp oge double %2441, 0.000000e+00
  %.v16403 = select i1 %2443, double 5.000000e-01, double -5.000000e-01
  %2444 = fadd double %2442, %.v16403
  %2445 = fcmp ogt double %2444, 0.000000e+00
  br i1 %2445, label %2446, label %2450

2446:                                             ; preds = %2422
  %2447 = fcmp ugt double %2444, 0x43F0000000000000
  br i1 %2447, label %2448, label %2450

2448:                                             ; preds = %2446
  %2449 = fcmp olt double %2444, 0x43F0000000000000
  %.16895 = select i1 %2449, double %2444, double 0x43F0000000000000
  br label %2450

2450:                                             ; preds = %2422, %2448, %2446
  %2451 = phi double [ %2444, %2446 ], [ %.16895, %2448 ], [ 0.000000e+00, %2422 ]
  %2452 = fptoui double %2451 to i64
  br label %2454

.thread17068:                                     ; preds = %2410, %2418
  %narrow17181 = tail call i8 @llvm.smax.i8(i8 %2411, i8 0)
  %2453 = zext nneg i8 %narrow17181 to i64
  br label %2454

2454:                                             ; preds = %.thread17068, %2450
  %storemerge16401 = phi i64 [ %2453, %.thread17068 ], [ %2452, %2450 ]
  store i64 %storemerge16401, ptr %0, align 8, !tbaa !5
  br label %4216

2455:                                             ; preds = %2271
  %2456 = load i64, ptr %3, align 8, !tbaa !5
  %.not16388 = icmp eq ptr %4, null
  br i1 %.not16388, label %.thread17071, label %2457

2457:                                             ; preds = %2455
  %.not16389 = icmp eq ptr %5, null
  br i1 %.not16389, label %2462, label %2458

2458:                                             ; preds = %2457
  %2459 = load i64, ptr %4, align 8, !tbaa !5
  %.not16390 = icmp ugt i64 %2459, %2456
  br i1 %.not16390, label %2462, label %2460

2460:                                             ; preds = %2458
  %2461 = load i64, ptr %5, align 8, !tbaa !5
  %.not16391 = icmp ugt i64 %2456, %2461
  br i1 %.not16391, label %2462, label %2463

2462:                                             ; preds = %2460, %2458, %2457
  tail call void @__assert_fail(ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.24, i32 noundef 494, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2463:                                             ; preds = %2460
  %2464 = uitofp i64 %2459 to double
  %2465 = uitofp i64 %2461 to double
  %2466 = fcmp olt double %2464, %2465
  br i1 %2466, label %2467, label %.thread17071

2467:                                             ; preds = %2463
  %2468 = fcmp ogt double %2464, 0.000000e+00
  %2469 = select i1 %2468, double %2464, double 0.000000e+00
  %2470 = fcmp ogt double %2465, 0.000000e+00
  %2471 = select i1 %2470, double %2465, double 0.000000e+00
  %2472 = fcmp olt double %2469, %2471
  %2473 = fsub double %2465, %2464
  %2474 = fsub double %2471, %2469
  %2475 = fdiv double %2473, %2474
  %2476 = select i1 %2472, double %2475, double 1.000000e+00
  %2477 = uitofp i64 %2456 to double
  %2478 = fmul double %2476, %2477
  %2479 = fcmp oge double %2478, 0.000000e+00
  %.v16395 = select i1 %2479, double 5.000000e-01, double -5.000000e-01
  %2480 = fadd double %2478, %.v16395
  %2481 = fptoui double %2480 to i64
  %2482 = uitofp i64 %2481 to double
  %2483 = fsub double %2482, %2469
  %2484 = fmul double %2483, 0x43F0000000000000
  %2485 = fdiv double %2484, %2474
  %2486 = fadd double %2485, 0.000000e+00
  %2487 = fcmp oge double %2485, 0.000000e+00
  %.v16396 = select i1 %2487, double 5.000000e-01, double -5.000000e-01
  %2488 = fadd double %2486, %.v16396
  %2489 = fcmp ogt double %2488, 0.000000e+00
  br i1 %2489, label %2490, label %2500

2490:                                             ; preds = %2467
  %2491 = fcmp ugt double %2488, 0x43F0000000000000
  br i1 %2491, label %2492, label %2500

2492:                                             ; preds = %2490
  %2493 = fcmp olt double %2488, 0x43F0000000000000
  %.16896 = select i1 %2493, double %2488, double 0x43F0000000000000
  br label %2500

.thread17071:                                     ; preds = %2455, %2463
  %2494 = uitofp i64 %2456 to double
  %.not16392 = icmp eq i64 %2456, 0
  br i1 %.not16392, label %2500, label %2495

2495:                                             ; preds = %.thread17071
  %2496 = fcmp ugt double %2494, 0x43F0000000000000
  br i1 %2496, label %2497, label %2500

2497:                                             ; preds = %2495
  %2498 = fcmp olt double %2494, 0x43F0000000000000
  %2499 = select i1 %2498, double %2494, double 0x43F0000000000000
  br label %2500

2500:                                             ; preds = %2497, %2495, %.thread17071, %2490, %2492, %2467
  %storemerge16393.in = phi double [ %2488, %2490 ], [ %.16896, %2492 ], [ 0.000000e+00, %2467 ], [ %2499, %2497 ], [ %2494, %2495 ], [ 0.000000e+00, %.thread17071 ]
  %storemerge16393 = fptoui double %storemerge16393.in to i64
  store i64 %storemerge16393, ptr %0, align 8, !tbaa !5
  br label %4216

2501:                                             ; preds = %2271
  %2502 = load i32, ptr %3, align 4, !tbaa !11
  %.not16380 = icmp eq ptr %4, null
  br i1 %.not16380, label %.thread17074, label %2503

2503:                                             ; preds = %2501
  %.not16381 = icmp eq ptr %5, null
  br i1 %.not16381, label %2508, label %2504

2504:                                             ; preds = %2503
  %2505 = load i32, ptr %4, align 4, !tbaa !11
  %.not16382 = icmp ugt i32 %2505, %2502
  br i1 %.not16382, label %2508, label %2506

2506:                                             ; preds = %2504
  %2507 = load i32, ptr %5, align 4, !tbaa !11
  %.not16383 = icmp ugt i32 %2502, %2507
  br i1 %.not16383, label %2508, label %2509

2508:                                             ; preds = %2506, %2504, %2503
  tail call void @__assert_fail(ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.24, i32 noundef 494, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2509:                                             ; preds = %2506
  %2510 = uitofp i32 %2505 to double
  %2511 = uitofp i32 %2507 to double
  %2512 = fcmp olt double %2510, %2511
  br i1 %2512, label %2513, label %.thread17074

2513:                                             ; preds = %2509
  %2514 = fcmp ogt double %2510, 0.000000e+00
  %2515 = select i1 %2514, double %2510, double 0.000000e+00
  %2516 = fcmp ogt double %2511, 0.000000e+00
  %2517 = select i1 %2516, double %2511, double 0.000000e+00
  %2518 = fcmp olt double %2515, %2517
  %2519 = fsub double %2511, %2510
  %2520 = fsub double %2517, %2515
  %2521 = fdiv double %2519, %2520
  %2522 = select i1 %2518, double %2521, double 1.000000e+00
  %2523 = uitofp i32 %2502 to double
  %2524 = fmul double %2522, %2523
  %2525 = fcmp oge double %2524, 0.000000e+00
  %.v16386 = select i1 %2525, double 5.000000e-01, double -5.000000e-01
  %2526 = fadd double %2524, %.v16386
  %2527 = fptoui double %2526 to i32
  %2528 = uitofp i32 %2527 to double
  %2529 = fsub double %2528, %2515
  %2530 = fmul double %2529, 0x43F0000000000000
  %2531 = fdiv double %2530, %2520
  %2532 = fadd double %2531, 0.000000e+00
  %2533 = fcmp oge double %2531, 0.000000e+00
  %.v16387 = select i1 %2533, double 5.000000e-01, double -5.000000e-01
  %2534 = fadd double %2532, %.v16387
  %2535 = fcmp ogt double %2534, 0.000000e+00
  br i1 %2535, label %2536, label %2540

2536:                                             ; preds = %2513
  %2537 = fcmp ugt double %2534, 0x43F0000000000000
  br i1 %2537, label %2538, label %2540

2538:                                             ; preds = %2536
  %2539 = fcmp olt double %2534, 0x43F0000000000000
  %.16897 = select i1 %2539, double %2534, double 0x43F0000000000000
  br label %2540

2540:                                             ; preds = %2513, %2538, %2536
  %2541 = phi double [ %2534, %2536 ], [ %.16897, %2538 ], [ 0.000000e+00, %2513 ]
  %2542 = fptoui double %2541 to i64
  br label %2544

.thread17074:                                     ; preds = %2501, %2509
  %2543 = zext i32 %2502 to i64
  br label %2544

2544:                                             ; preds = %.thread17074, %2540
  %storemerge16384 = phi i64 [ %2543, %.thread17074 ], [ %2542, %2540 ]
  store i64 %storemerge16384, ptr %0, align 8, !tbaa !5
  br label %4216

2545:                                             ; preds = %2271
  %2546 = load i16, ptr %3, align 2, !tbaa !13
  %.not16372 = icmp eq ptr %4, null
  br i1 %.not16372, label %.thread17077, label %2547

2547:                                             ; preds = %2545
  %.not16373 = icmp eq ptr %5, null
  br i1 %.not16373, label %2552, label %2548

2548:                                             ; preds = %2547
  %2549 = load i16, ptr %4, align 2, !tbaa !13
  %.not16374 = icmp ugt i16 %2549, %2546
  br i1 %.not16374, label %2552, label %2550

2550:                                             ; preds = %2548
  %2551 = load i16, ptr %5, align 2, !tbaa !13
  %.not16375 = icmp ugt i16 %2546, %2551
  br i1 %.not16375, label %2552, label %2553

2552:                                             ; preds = %2550, %2548, %2547
  tail call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.24, i32 noundef 494, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2553:                                             ; preds = %2550
  %2554 = uitofp i16 %2549 to double
  %2555 = uitofp i16 %2551 to double
  %2556 = fcmp olt double %2554, %2555
  br i1 %2556, label %2557, label %.thread17077

2557:                                             ; preds = %2553
  %2558 = fcmp ogt double %2554, 0.000000e+00
  %2559 = select i1 %2558, double %2554, double 0.000000e+00
  %2560 = fcmp ogt double %2555, 0.000000e+00
  %2561 = select i1 %2560, double %2555, double 0.000000e+00
  %2562 = fcmp olt double %2559, %2561
  %2563 = fsub double %2555, %2554
  %2564 = fsub double %2561, %2559
  %2565 = fdiv double %2563, %2564
  %2566 = select i1 %2562, double %2565, double 1.000000e+00
  %2567 = uitofp i16 %2546 to double
  %2568 = fmul double %2566, %2567
  %2569 = fcmp oge double %2568, 0.000000e+00
  %.v16378 = select i1 %2569, double 5.000000e-01, double -5.000000e-01
  %2570 = fadd double %2568, %.v16378
  %2571 = fptoui double %2570 to i16
  %2572 = uitofp i16 %2571 to double
  %2573 = fsub double %2572, %2559
  %2574 = fmul double %2573, 0x43F0000000000000
  %2575 = fdiv double %2574, %2564
  %2576 = fadd double %2575, 0.000000e+00
  %2577 = fcmp oge double %2575, 0.000000e+00
  %.v16379 = select i1 %2577, double 5.000000e-01, double -5.000000e-01
  %2578 = fadd double %2576, %.v16379
  %2579 = fcmp ogt double %2578, 0.000000e+00
  br i1 %2579, label %2580, label %2584

2580:                                             ; preds = %2557
  %2581 = fcmp ugt double %2578, 0x43F0000000000000
  br i1 %2581, label %2582, label %2584

2582:                                             ; preds = %2580
  %2583 = fcmp olt double %2578, 0x43F0000000000000
  %.16898 = select i1 %2583, double %2578, double 0x43F0000000000000
  br label %2584

2584:                                             ; preds = %2557, %2582, %2580
  %2585 = phi double [ %2578, %2580 ], [ %.16898, %2582 ], [ 0.000000e+00, %2557 ]
  %2586 = fptoui double %2585 to i64
  br label %2588

.thread17077:                                     ; preds = %2545, %2553
  %2587 = zext i16 %2546 to i64
  br label %2588

2588:                                             ; preds = %.thread17077, %2584
  %storemerge16376 = phi i64 [ %2587, %.thread17077 ], [ %2586, %2584 ]
  store i64 %storemerge16376, ptr %0, align 8, !tbaa !5
  br label %4216

2589:                                             ; preds = %2271
  %2590 = load i8, ptr %3, align 1, !tbaa !15
  %.not16364 = icmp eq ptr %4, null
  br i1 %.not16364, label %.thread17080, label %2591

2591:                                             ; preds = %2589
  %.not16365 = icmp eq ptr %5, null
  br i1 %.not16365, label %2596, label %2592

2592:                                             ; preds = %2591
  %2593 = load i8, ptr %4, align 1, !tbaa !15
  %.not16366 = icmp ugt i8 %2593, %2590
  br i1 %.not16366, label %2596, label %2594

2594:                                             ; preds = %2592
  %2595 = load i8, ptr %5, align 1, !tbaa !15
  %.not16367 = icmp ugt i8 %2590, %2595
  br i1 %.not16367, label %2596, label %2597

2596:                                             ; preds = %2594, %2592, %2591
  tail call void @__assert_fail(ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.24, i32 noundef 494, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2597:                                             ; preds = %2594
  %2598 = uitofp i8 %2593 to double
  %2599 = uitofp i8 %2595 to double
  %2600 = fcmp olt double %2598, %2599
  br i1 %2600, label %2601, label %.thread17080

2601:                                             ; preds = %2597
  %2602 = fcmp ogt double %2598, 0.000000e+00
  %2603 = select i1 %2602, double %2598, double 0.000000e+00
  %2604 = fcmp ogt double %2599, 0.000000e+00
  %2605 = select i1 %2604, double %2599, double 0.000000e+00
  %2606 = fcmp olt double %2603, %2605
  %2607 = fsub double %2599, %2598
  %2608 = fsub double %2605, %2603
  %2609 = fdiv double %2607, %2608
  %2610 = select i1 %2606, double %2609, double 1.000000e+00
  %2611 = uitofp i8 %2590 to double
  %2612 = fmul double %2610, %2611
  %2613 = fcmp oge double %2612, 0.000000e+00
  %.v16370 = select i1 %2613, double 5.000000e-01, double -5.000000e-01
  %2614 = fadd double %2612, %.v16370
  %2615 = fptoui double %2614 to i8
  %2616 = uitofp i8 %2615 to double
  %2617 = fsub double %2616, %2603
  %2618 = fmul double %2617, 0x43F0000000000000
  %2619 = fdiv double %2618, %2608
  %2620 = fadd double %2619, 0.000000e+00
  %2621 = fcmp oge double %2619, 0.000000e+00
  %.v16371 = select i1 %2621, double 5.000000e-01, double -5.000000e-01
  %2622 = fadd double %2620, %.v16371
  %2623 = fcmp ogt double %2622, 0.000000e+00
  br i1 %2623, label %2624, label %2628

2624:                                             ; preds = %2601
  %2625 = fcmp ugt double %2622, 0x43F0000000000000
  br i1 %2625, label %2626, label %2628

2626:                                             ; preds = %2624
  %2627 = fcmp olt double %2622, 0x43F0000000000000
  %.16899 = select i1 %2627, double %2622, double 0x43F0000000000000
  br label %2628

2628:                                             ; preds = %2601, %2626, %2624
  %2629 = phi double [ %2622, %2624 ], [ %.16899, %2626 ], [ 0.000000e+00, %2601 ]
  %2630 = fptoui double %2629 to i64
  br label %2632

.thread17080:                                     ; preds = %2589, %2597
  %2631 = zext i8 %2590 to i64
  br label %2632

2632:                                             ; preds = %.thread17080, %2628
  %storemerge16368 = phi i64 [ %2631, %.thread17080 ], [ %2630, %2628 ]
  store i64 %storemerge16368, ptr %0, align 8, !tbaa !5
  br label %4216

2633:                                             ; preds = %2271
  %2634 = load double, ptr %3, align 8, !tbaa !9
  %.not16360 = icmp ne ptr %4, null
  %2635 = fcmp ord double %2634, 0.000000e+00
  %or.cond16900 = select i1 %.not16360, i1 %2635, i1 false
  br i1 %or.cond16900, label %2636, label %.thread17083

2636:                                             ; preds = %2633
  %.not16361 = icmp eq ptr %5, null
  br i1 %.not16361, label %2643, label %2637

2637:                                             ; preds = %2636
  %2638 = load double, ptr %4, align 8, !tbaa !9
  %2639 = fcmp ugt double %2638, %2634
  br i1 %2639, label %2643, label %2640

2640:                                             ; preds = %2637
  %2641 = load double, ptr %5, align 8, !tbaa !9
  %2642 = fcmp ugt double %2634, %2641
  br i1 %2642, label %2643, label %2644

2643:                                             ; preds = %2640, %2637, %2636
  tail call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.24, i32 noundef 494, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2644:                                             ; preds = %2640
  %2645 = fcmp olt double %2638, %2641
  br i1 %2645, label %2646, label %.thread17083

2646:                                             ; preds = %2644
  %2647 = fcmp ogt double %2638, 0.000000e+00
  %2648 = select i1 %2647, double %2638, double 0.000000e+00
  %2649 = fcmp ogt double %2641, 0.000000e+00
  %2650 = select i1 %2649, double %2641, double 0.000000e+00
  %2651 = fcmp olt double %2648, %2650
  %2652 = fsub double %2641, %2638
  %2653 = fsub double %2650, %2648
  %2654 = fdiv double %2652, %2653
  %2655 = select i1 %2651, double %2654, double 1.000000e+00
  %2656 = fcmp ogt double %2634, 0.000000e+00
  %2657 = select i1 %2656, double %2634, double 0.000000e+00
  %2658 = fmul double %2657, %2655
  %2659 = fsub double %2658, %2648
  %2660 = fmul double %2659, 0x43F0000000000000
  %2661 = fdiv double %2660, %2653
  %2662 = fadd double %2661, 0.000000e+00
  %2663 = fcmp oge double %2661, 0.000000e+00
  %.v16363 = select i1 %2663, double 5.000000e-01, double -5.000000e-01
  %2664 = fadd double %2662, %.v16363
  %2665 = fcmp ogt double %2664, 0.000000e+00
  br i1 %2665, label %2666, label %2687

2666:                                             ; preds = %2646
  %2667 = fcmp ugt double %2664, 0x43F0000000000000
  br i1 %2667, label %2668, label %2687

2668:                                             ; preds = %2666
  %2669 = fcmp olt double %2664, 0x43F0000000000000
  %.16901 = select i1 %2669, double %2664, double 0x43F0000000000000
  br label %2687

.thread17083:                                     ; preds = %2633, %2644
  %2670 = fcmp ult double %2634, 0.000000e+00
  br i1 %2670, label %2679, label %2671

2671:                                             ; preds = %.thread17083
  %2672 = fadd double %2634, 5.000000e-01
  %2673 = fcmp ogt double %2672, 0.000000e+00
  br i1 %2673, label %2674, label %2687

2674:                                             ; preds = %2671
  %2675 = fcmp ugt double %2672, 0x43F0000000000000
  br i1 %2675, label %2676, label %2687

2676:                                             ; preds = %2674
  %2677 = fcmp olt double %2672, 0x43F0000000000000
  %2678 = select i1 %2677, double %2672, double 0x43F0000000000000
  br label %2687

2679:                                             ; preds = %.thread17083
  %2680 = fadd double %2634, -5.000000e-01
  %2681 = fcmp ogt double %2680, 0.000000e+00
  br i1 %2681, label %2682, label %2687

2682:                                             ; preds = %2679
  %2683 = fcmp ugt double %2680, 0x43F0000000000000
  br i1 %2683, label %2684, label %2687

2684:                                             ; preds = %2682
  %2685 = fcmp olt double %2680, 0x43F0000000000000
  %2686 = select i1 %2685, double %2680, double 0x43F0000000000000
  br label %2687

2687:                                             ; preds = %2676, %2684, %2674, %2671, %2682, %2679, %2666, %2668, %2646
  %storemerge16362.in = phi double [ %2664, %2666 ], [ %.16901, %2668 ], [ 0.000000e+00, %2646 ], [ %2678, %2676 ], [ %2686, %2684 ], [ %2672, %2674 ], [ 0.000000e+00, %2671 ], [ %2680, %2682 ], [ 0.000000e+00, %2679 ]
  %storemerge16362 = fptoui double %storemerge16362.in to i64
  store i64 %storemerge16362, ptr %0, align 8, !tbaa !5
  br label %4216

2688:                                             ; preds = %2271
  %2689 = load float, ptr %3, align 4, !tbaa !16
  %.not16356 = icmp ne ptr %4, null
  %2690 = fcmp ord float %2689, 0.000000e+00
  %or.cond16902 = select i1 %.not16356, i1 %2690, i1 false
  br i1 %or.cond16902, label %2691, label %.thread17086

2691:                                             ; preds = %2688
  %.not16357 = icmp eq ptr %5, null
  br i1 %.not16357, label %2698, label %2692

2692:                                             ; preds = %2691
  %2693 = load float, ptr %4, align 4, !tbaa !16
  %2694 = fcmp ugt float %2693, %2689
  br i1 %2694, label %2698, label %2695

2695:                                             ; preds = %2692
  %2696 = load float, ptr %5, align 4, !tbaa !16
  %2697 = fcmp ugt float %2689, %2696
  br i1 %2697, label %2698, label %2699

2698:                                             ; preds = %2695, %2692, %2691
  tail call void @__assert_fail(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.24, i32 noundef 494, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2699:                                             ; preds = %2695
  %2700 = fcmp olt float %2693, %2696
  br i1 %2700, label %2701, label %.thread17086

2701:                                             ; preds = %2699
  %2702 = fpext float %2696 to double
  %2703 = fpext float %2693 to double
  %2704 = fcmp ogt double %2703, 0.000000e+00
  %2705 = select i1 %2704, double %2703, double 0.000000e+00
  %2706 = fcmp ogt double %2702, 0.000000e+00
  %2707 = select i1 %2706, double %2702, double 0.000000e+00
  %2708 = fcmp olt double %2705, %2707
  %2709 = fsub double %2702, %2703
  %2710 = fsub double %2707, %2705
  %2711 = fdiv double %2709, %2710
  %2712 = select i1 %2708, double %2711, double 1.000000e+00
  %2713 = fcmp ogt float %2689, 0.000000e+00
  %2714 = select i1 %2713, float %2689, float 0.000000e+00
  %2715 = fpext float %2714 to double
  %2716 = fmul double %2712, %2715
  %2717 = fptrunc double %2716 to float
  %2718 = fpext float %2717 to double
  %2719 = fsub double %2718, %2705
  %2720 = fmul double %2719, 0x43F0000000000000
  %2721 = fdiv double %2720, %2710
  %2722 = fadd double %2721, 0.000000e+00
  %2723 = fcmp oge double %2721, 0.000000e+00
  %.v16359 = select i1 %2723, double 5.000000e-01, double -5.000000e-01
  %2724 = fadd double %2722, %.v16359
  %2725 = fcmp ogt double %2724, 0.000000e+00
  br i1 %2725, label %2726, label %2748

2726:                                             ; preds = %2701
  %2727 = fcmp ugt double %2724, 0x43F0000000000000
  br i1 %2727, label %2728, label %2748

2728:                                             ; preds = %2726
  %2729 = fcmp olt double %2724, 0x43F0000000000000
  %.16903 = select i1 %2729, double %2724, double 0x43F0000000000000
  br label %2748

.thread17086:                                     ; preds = %2688, %2699
  %2730 = fcmp ult float %2689, 0.000000e+00
  %2731 = fpext float %2689 to double
  br i1 %2730, label %2740, label %2732

2732:                                             ; preds = %.thread17086
  %2733 = fadd double %2731, 5.000000e-01
  %2734 = fcmp ogt double %2733, 0.000000e+00
  br i1 %2734, label %2735, label %2748

2735:                                             ; preds = %2732
  %2736 = fcmp ugt double %2733, 0x43F0000000000000
  br i1 %2736, label %2737, label %2748

2737:                                             ; preds = %2735
  %2738 = fcmp olt double %2733, 0x43F0000000000000
  %2739 = select i1 %2738, double %2733, double 0x43F0000000000000
  br label %2748

2740:                                             ; preds = %.thread17086
  %2741 = fadd double %2731, -5.000000e-01
  %2742 = fcmp ogt double %2741, 0.000000e+00
  br i1 %2742, label %2743, label %2748

2743:                                             ; preds = %2740
  %2744 = fcmp ugt double %2741, 0x43F0000000000000
  br i1 %2744, label %2745, label %2748

2745:                                             ; preds = %2743
  %2746 = fcmp olt double %2741, 0x43F0000000000000
  %2747 = select i1 %2746, double %2741, double 0x43F0000000000000
  br label %2748

2748:                                             ; preds = %2737, %2745, %2735, %2732, %2743, %2740, %2726, %2728, %2701
  %storemerge16358.in = phi double [ %2724, %2726 ], [ %.16903, %2728 ], [ 0.000000e+00, %2701 ], [ %2739, %2737 ], [ %2747, %2745 ], [ %2733, %2735 ], [ 0.000000e+00, %2732 ], [ %2741, %2743 ], [ 0.000000e+00, %2740 ]
  %storemerge16358 = fptoui double %storemerge16358.in to i64
  store i64 %storemerge16358, ptr %0, align 8, !tbaa !5
  br label %4216

2749:                                             ; preds = %2271
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 494, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2750:                                             ; preds = %2271
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 494, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2751:                                             ; preds = %2271
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 494, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2752:                                             ; preds = %6
  %2753 = icmp ne ptr %0, null
  %2754 = icmp ne ptr %3, null
  %or.cond421 = and i1 %2753, %2754
  br i1 %or.cond421, label %2756, label %2755

2755:                                             ; preds = %2752
  tail call void @__assert_fail(ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.24, i32 noundef 497, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2756:                                             ; preds = %2752
  switch i32 %2, label %4216 [
    i32 6, label %2757
    i32 8, label %2805
    i32 10, label %2850
    i32 12, label %2895
    i32 15, label %2940
    i32 16, label %2986
    i32 17, label %3028
    i32 18, label %3072
    i32 0, label %3116
    i32 1, label %3171
    i32 3, label %3232
    i32 2, label %3233
    i32 4, label %3234
  ]

2757:                                             ; preds = %2756
  %2758 = load i64, ptr %3, align 8, !tbaa !5
  %.not16349 = icmp eq ptr %4, null
  br i1 %.not16349, label %.thread17089, label %2759

2759:                                             ; preds = %2757
  %.not16350 = icmp eq ptr %5, null
  br i1 %.not16350, label %2764, label %2760

2760:                                             ; preds = %2759
  %2761 = load i64, ptr %4, align 8, !tbaa !5
  %.not16351 = icmp sgt i64 %2761, %2758
  br i1 %.not16351, label %2764, label %2762

2762:                                             ; preds = %2760
  %2763 = load i64, ptr %5, align 8, !tbaa !5
  %.not16352 = icmp sgt i64 %2758, %2763
  br i1 %.not16352, label %2764, label %2765

2764:                                             ; preds = %2762, %2760, %2759
  tail call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.24, i32 noundef 497, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2765:                                             ; preds = %2762
  %2766 = sitofp i64 %2761 to double
  %2767 = sitofp i64 %2763 to double
  %2768 = fcmp olt double %2766, %2767
  br i1 %2768, label %2769, label %.thread17089

2769:                                             ; preds = %2765
  %2770 = fcmp ogt double %2766, 0.000000e+00
  %2771 = select i1 %2770, double %2766, double 0.000000e+00
  %2772 = fcmp ogt double %2767, 0.000000e+00
  %2773 = select i1 %2772, double %2767, double 0.000000e+00
  %2774 = fcmp olt double %2771, %2773
  %2775 = fsub double %2767, %2766
  %2776 = fsub double %2773, %2771
  %2777 = fdiv double %2775, %2776
  %2778 = select i1 %2774, double %2777, double 1.000000e+00
  %2779 = tail call i64 @llvm.smax.i64(i64 %2758, i64 0)
  %2780 = uitofp nneg i64 %2779 to double
  %2781 = fmul double %2778, %2780
  %2782 = fcmp oge double %2781, 0.000000e+00
  %.v16354 = select i1 %2782, double 5.000000e-01, double -5.000000e-01
  %2783 = fadd double %2781, %.v16354
  %2784 = fptosi double %2783 to i64
  %2785 = sitofp i64 %2784 to double
  %2786 = fsub double %2785, %2771
  %2787 = fmul double %2786, 0x41EFFFFFFFE00000
  %2788 = fdiv double %2787, %2776
  %2789 = fadd double %2788, 0.000000e+00
  %2790 = fcmp oge double %2788, 0.000000e+00
  %.v16355 = select i1 %2790, double 5.000000e-01, double -5.000000e-01
  %2791 = fadd double %2789, %.v16355
  %2792 = fcmp ogt double %2791, 0.000000e+00
  br i1 %2792, label %2793, label %2804

2793:                                             ; preds = %2769
  %2794 = fcmp ugt double %2791, 0x41EFFFFFFFE00000
  br i1 %2794, label %2795, label %2804

2795:                                             ; preds = %2793
  %2796 = fcmp olt double %2791, 0x41EFFFFFFFE00000
  %.16904 = select i1 %2796, double %2791, double 0x41EFFFFFFFE00000
  br label %2804

.thread17089:                                     ; preds = %2757, %2765
  %2797 = sitofp i64 %2758 to double
  %2798 = icmp sgt i64 %2758, 0
  br i1 %2798, label %2799, label %2804

2799:                                             ; preds = %.thread17089
  %2800 = icmp ult i64 %2758, 4294967296
  br i1 %2800, label %2804, label %2801

2801:                                             ; preds = %2799
  %2802 = fcmp olt double %2797, 0x41EFFFFFFFE00000
  %2803 = select i1 %2802, double %2797, double 0x41EFFFFFFFE00000
  br label %2804

2804:                                             ; preds = %2801, %2799, %.thread17089, %2793, %2795, %2769
  %storemerge16353.in = phi double [ %2791, %2793 ], [ %.16904, %2795 ], [ 0.000000e+00, %2769 ], [ %2803, %2801 ], [ %2797, %2799 ], [ 0.000000e+00, %.thread17089 ]
  %storemerge16353 = fptoui double %storemerge16353.in to i32
  store i32 %storemerge16353, ptr %0, align 4, !tbaa !11
  br label %4216

2805:                                             ; preds = %2756
  %2806 = load i32, ptr %3, align 4, !tbaa !11
  %.not16342 = icmp eq ptr %4, null
  br i1 %.not16342, label %.thread17092, label %2807

2807:                                             ; preds = %2805
  %.not16343 = icmp eq ptr %5, null
  br i1 %.not16343, label %2812, label %2808

2808:                                             ; preds = %2807
  %2809 = load i32, ptr %4, align 4, !tbaa !11
  %.not16344 = icmp sgt i32 %2809, %2806
  br i1 %.not16344, label %2812, label %2810

2810:                                             ; preds = %2808
  %2811 = load i32, ptr %5, align 4, !tbaa !11
  %.not16345 = icmp sgt i32 %2806, %2811
  br i1 %.not16345, label %2812, label %2813

2812:                                             ; preds = %2810, %2808, %2807
  tail call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.24, i32 noundef 497, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2813:                                             ; preds = %2810
  %2814 = sitofp i32 %2809 to double
  %2815 = sitofp i32 %2811 to double
  %2816 = fcmp olt double %2814, %2815
  br i1 %2816, label %2817, label %.thread17092

2817:                                             ; preds = %2813
  %2818 = fcmp ogt double %2814, 0.000000e+00
  %2819 = select i1 %2818, double %2814, double 0.000000e+00
  %2820 = fcmp ogt double %2815, 0.000000e+00
  %2821 = select i1 %2820, double %2815, double 0.000000e+00
  %2822 = fcmp olt double %2819, %2821
  %2823 = fsub double %2815, %2814
  %2824 = fsub double %2821, %2819
  %2825 = fdiv double %2823, %2824
  %2826 = select i1 %2822, double %2825, double 1.000000e+00
  %2827 = tail call i32 @llvm.smax.i32(i32 %2806, i32 0)
  %2828 = uitofp nneg i32 %2827 to double
  %2829 = fmul double %2826, %2828
  %2830 = fcmp oge double %2829, 0.000000e+00
  %.v16347 = select i1 %2830, double 5.000000e-01, double -5.000000e-01
  %2831 = fadd double %2829, %.v16347
  %2832 = fptosi double %2831 to i32
  %2833 = sitofp i32 %2832 to double
  %2834 = fsub double %2833, %2819
  %2835 = fmul double %2834, 0x41EFFFFFFFE00000
  %2836 = fdiv double %2835, %2824
  %2837 = fadd double %2836, 0.000000e+00
  %2838 = fcmp oge double %2836, 0.000000e+00
  %.v16348 = select i1 %2838, double 5.000000e-01, double -5.000000e-01
  %2839 = fadd double %2837, %.v16348
  %2840 = fcmp ogt double %2839, 0.000000e+00
  br i1 %2840, label %2841, label %2845

2841:                                             ; preds = %2817
  %2842 = fcmp ugt double %2839, 0x41EFFFFFFFE00000
  br i1 %2842, label %2843, label %2845

2843:                                             ; preds = %2841
  %2844 = fcmp olt double %2839, 0x41EFFFFFFFE00000
  %.16905 = select i1 %2844, double %2839, double 0x41EFFFFFFFE00000
  br label %2845

2845:                                             ; preds = %2817, %2843, %2841
  %2846 = phi double [ %2839, %2841 ], [ %.16905, %2843 ], [ 0.000000e+00, %2817 ]
  %2847 = fptoui double %2846 to i32
  br label %2849

.thread17092:                                     ; preds = %2805, %2813
  %2848 = tail call i32 @llvm.smax.i32(i32 %2806, i32 0)
  br label %2849

2849:                                             ; preds = %.thread17092, %2845
  %storemerge16346 = phi i32 [ %2848, %.thread17092 ], [ %2847, %2845 ]
  store i32 %storemerge16346, ptr %0, align 4, !tbaa !11
  br label %4216

2850:                                             ; preds = %2756
  %2851 = load i16, ptr %3, align 2, !tbaa !13
  %.not16335 = icmp eq ptr %4, null
  br i1 %.not16335, label %.thread17095, label %2852

2852:                                             ; preds = %2850
  %.not16336 = icmp eq ptr %5, null
  br i1 %.not16336, label %2857, label %2853

2853:                                             ; preds = %2852
  %2854 = load i16, ptr %4, align 2, !tbaa !13
  %.not16337 = icmp sgt i16 %2854, %2851
  br i1 %.not16337, label %2857, label %2855

2855:                                             ; preds = %2853
  %2856 = load i16, ptr %5, align 2, !tbaa !13
  %.not16338 = icmp sgt i16 %2851, %2856
  br i1 %.not16338, label %2857, label %2858

2857:                                             ; preds = %2855, %2853, %2852
  tail call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.24, i32 noundef 497, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2858:                                             ; preds = %2855
  %2859 = sitofp i16 %2854 to double
  %2860 = sitofp i16 %2856 to double
  %2861 = fcmp olt double %2859, %2860
  br i1 %2861, label %2862, label %.thread17095

2862:                                             ; preds = %2858
  %2863 = fcmp ogt double %2859, 0.000000e+00
  %2864 = select i1 %2863, double %2859, double 0.000000e+00
  %2865 = fcmp ogt double %2860, 0.000000e+00
  %2866 = select i1 %2865, double %2860, double 0.000000e+00
  %2867 = fcmp olt double %2864, %2866
  %2868 = fsub double %2860, %2859
  %2869 = fsub double %2866, %2864
  %2870 = fdiv double %2868, %2869
  %2871 = select i1 %2867, double %2870, double 1.000000e+00
  %2872 = tail call i16 @llvm.smax.i16(i16 %2851, i16 0)
  %2873 = uitofp nneg i16 %2872 to double
  %2874 = fmul double %2871, %2873
  %2875 = fcmp oge double %2874, 0.000000e+00
  %.v16340 = select i1 %2875, double 5.000000e-01, double -5.000000e-01
  %2876 = fadd double %2874, %.v16340
  %2877 = fptosi double %2876 to i16
  %2878 = sitofp i16 %2877 to double
  %2879 = fsub double %2878, %2864
  %2880 = fmul double %2879, 0x41EFFFFFFFE00000
  %2881 = fdiv double %2880, %2869
  %2882 = fadd double %2881, 0.000000e+00
  %2883 = fcmp oge double %2881, 0.000000e+00
  %.v16341 = select i1 %2883, double 5.000000e-01, double -5.000000e-01
  %2884 = fadd double %2882, %.v16341
  %2885 = fcmp ogt double %2884, 0.000000e+00
  br i1 %2885, label %2886, label %2890

2886:                                             ; preds = %2862
  %2887 = fcmp ugt double %2884, 0x41EFFFFFFFE00000
  br i1 %2887, label %2888, label %2890

2888:                                             ; preds = %2886
  %2889 = fcmp olt double %2884, 0x41EFFFFFFFE00000
  %.16906 = select i1 %2889, double %2884, double 0x41EFFFFFFFE00000
  br label %2890

2890:                                             ; preds = %2862, %2888, %2886
  %2891 = phi double [ %2884, %2886 ], [ %.16906, %2888 ], [ 0.000000e+00, %2862 ]
  %2892 = fptoui double %2891 to i32
  br label %2894

.thread17095:                                     ; preds = %2850, %2858
  %narrow17180 = tail call i16 @llvm.smax.i16(i16 %2851, i16 0)
  %2893 = zext nneg i16 %narrow17180 to i32
  br label %2894

2894:                                             ; preds = %.thread17095, %2890
  %storemerge16339 = phi i32 [ %2893, %.thread17095 ], [ %2892, %2890 ]
  store i32 %storemerge16339, ptr %0, align 4, !tbaa !11
  br label %4216

2895:                                             ; preds = %2756
  %2896 = load i8, ptr %3, align 1, !tbaa !15
  %.not16328 = icmp eq ptr %4, null
  br i1 %.not16328, label %.thread17098, label %2897

2897:                                             ; preds = %2895
  %.not16329 = icmp eq ptr %5, null
  br i1 %.not16329, label %2902, label %2898

2898:                                             ; preds = %2897
  %2899 = load i8, ptr %4, align 1, !tbaa !15
  %.not16330 = icmp sgt i8 %2899, %2896
  br i1 %.not16330, label %2902, label %2900

2900:                                             ; preds = %2898
  %2901 = load i8, ptr %5, align 1, !tbaa !15
  %.not16331 = icmp sgt i8 %2896, %2901
  br i1 %.not16331, label %2902, label %2903

2902:                                             ; preds = %2900, %2898, %2897
  tail call void @__assert_fail(ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.24, i32 noundef 497, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2903:                                             ; preds = %2900
  %2904 = sitofp i8 %2899 to double
  %2905 = sitofp i8 %2901 to double
  %2906 = fcmp olt double %2904, %2905
  br i1 %2906, label %2907, label %.thread17098

2907:                                             ; preds = %2903
  %2908 = fcmp ogt double %2904, 0.000000e+00
  %2909 = select i1 %2908, double %2904, double 0.000000e+00
  %2910 = fcmp ogt double %2905, 0.000000e+00
  %2911 = select i1 %2910, double %2905, double 0.000000e+00
  %2912 = fcmp olt double %2909, %2911
  %2913 = fsub double %2905, %2904
  %2914 = fsub double %2911, %2909
  %2915 = fdiv double %2913, %2914
  %2916 = select i1 %2912, double %2915, double 1.000000e+00
  %2917 = tail call i8 @llvm.smax.i8(i8 %2896, i8 0)
  %2918 = uitofp nneg i8 %2917 to double
  %2919 = fmul double %2916, %2918
  %2920 = fcmp oge double %2919, 0.000000e+00
  %.v16333 = select i1 %2920, double 5.000000e-01, double -5.000000e-01
  %2921 = fadd double %2919, %.v16333
  %2922 = fptosi double %2921 to i8
  %2923 = sitofp i8 %2922 to double
  %2924 = fsub double %2923, %2909
  %2925 = fmul double %2924, 0x41EFFFFFFFE00000
  %2926 = fdiv double %2925, %2914
  %2927 = fadd double %2926, 0.000000e+00
  %2928 = fcmp oge double %2926, 0.000000e+00
  %.v16334 = select i1 %2928, double 5.000000e-01, double -5.000000e-01
  %2929 = fadd double %2927, %.v16334
  %2930 = fcmp ogt double %2929, 0.000000e+00
  br i1 %2930, label %2931, label %2935

2931:                                             ; preds = %2907
  %2932 = fcmp ugt double %2929, 0x41EFFFFFFFE00000
  br i1 %2932, label %2933, label %2935

2933:                                             ; preds = %2931
  %2934 = fcmp olt double %2929, 0x41EFFFFFFFE00000
  %.16907 = select i1 %2934, double %2929, double 0x41EFFFFFFFE00000
  br label %2935

2935:                                             ; preds = %2907, %2933, %2931
  %2936 = phi double [ %2929, %2931 ], [ %.16907, %2933 ], [ 0.000000e+00, %2907 ]
  %2937 = fptoui double %2936 to i32
  br label %2939

.thread17098:                                     ; preds = %2895, %2903
  %narrow17179 = tail call i8 @llvm.smax.i8(i8 %2896, i8 0)
  %2938 = zext nneg i8 %narrow17179 to i32
  br label %2939

2939:                                             ; preds = %.thread17098, %2935
  %storemerge16332 = phi i32 [ %2938, %.thread17098 ], [ %2937, %2935 ]
  store i32 %storemerge16332, ptr %0, align 4, !tbaa !11
  br label %4216

2940:                                             ; preds = %2756
  %2941 = load i64, ptr %3, align 8, !tbaa !5
  %.not16319 = icmp eq ptr %4, null
  br i1 %.not16319, label %.thread17101, label %2942

2942:                                             ; preds = %2940
  %.not16320 = icmp eq ptr %5, null
  br i1 %.not16320, label %2947, label %2943

2943:                                             ; preds = %2942
  %2944 = load i64, ptr %4, align 8, !tbaa !5
  %.not16321 = icmp ugt i64 %2944, %2941
  br i1 %.not16321, label %2947, label %2945

2945:                                             ; preds = %2943
  %2946 = load i64, ptr %5, align 8, !tbaa !5
  %.not16322 = icmp ugt i64 %2941, %2946
  br i1 %.not16322, label %2947, label %2948

2947:                                             ; preds = %2945, %2943, %2942
  tail call void @__assert_fail(ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.24, i32 noundef 497, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2948:                                             ; preds = %2945
  %2949 = uitofp i64 %2944 to double
  %2950 = uitofp i64 %2946 to double
  %2951 = fcmp olt double %2949, %2950
  br i1 %2951, label %2952, label %.thread17101

2952:                                             ; preds = %2948
  %2953 = fcmp ogt double %2949, 0.000000e+00
  %2954 = select i1 %2953, double %2949, double 0.000000e+00
  %2955 = fcmp ogt double %2950, 0.000000e+00
  %2956 = select i1 %2955, double %2950, double 0.000000e+00
  %2957 = fcmp olt double %2954, %2956
  %2958 = fsub double %2950, %2949
  %2959 = fsub double %2956, %2954
  %2960 = fdiv double %2958, %2959
  %2961 = select i1 %2957, double %2960, double 1.000000e+00
  %2962 = uitofp i64 %2941 to double
  %2963 = fmul double %2961, %2962
  %2964 = fcmp oge double %2963, 0.000000e+00
  %.v16326 = select i1 %2964, double 5.000000e-01, double -5.000000e-01
  %2965 = fadd double %2963, %.v16326
  %2966 = fptoui double %2965 to i64
  %2967 = uitofp i64 %2966 to double
  %2968 = fsub double %2967, %2954
  %2969 = fmul double %2968, 0x41EFFFFFFFE00000
  %2970 = fdiv double %2969, %2959
  %2971 = fadd double %2970, 0.000000e+00
  %2972 = fcmp oge double %2970, 0.000000e+00
  %.v16327 = select i1 %2972, double 5.000000e-01, double -5.000000e-01
  %2973 = fadd double %2971, %.v16327
  %2974 = fcmp ogt double %2973, 0.000000e+00
  br i1 %2974, label %2975, label %2985

2975:                                             ; preds = %2952
  %2976 = fcmp ugt double %2973, 0x41EFFFFFFFE00000
  br i1 %2976, label %2977, label %2985

2977:                                             ; preds = %2975
  %2978 = fcmp olt double %2973, 0x41EFFFFFFFE00000
  %.16908 = select i1 %2978, double %2973, double 0x41EFFFFFFFE00000
  br label %2985

.thread17101:                                     ; preds = %2940, %2948
  %2979 = uitofp i64 %2941 to double
  %.not16323 = icmp eq i64 %2941, 0
  br i1 %.not16323, label %2985, label %2980

2980:                                             ; preds = %.thread17101
  %2981 = icmp ult i64 %2941, 4294967296
  br i1 %2981, label %2985, label %2982

2982:                                             ; preds = %2980
  %2983 = fcmp olt double %2979, 0x41EFFFFFFFE00000
  %2984 = select i1 %2983, double %2979, double 0x41EFFFFFFFE00000
  br label %2985

2985:                                             ; preds = %2982, %2980, %.thread17101, %2975, %2977, %2952
  %storemerge16324.in = phi double [ %2973, %2975 ], [ %.16908, %2977 ], [ 0.000000e+00, %2952 ], [ %2984, %2982 ], [ %2979, %2980 ], [ 0.000000e+00, %.thread17101 ]
  %storemerge16324 = fptoui double %storemerge16324.in to i32
  store i32 %storemerge16324, ptr %0, align 4, !tbaa !11
  br label %4216

2986:                                             ; preds = %2756
  %2987 = load i32, ptr %3, align 4, !tbaa !11
  %.not16310 = icmp eq ptr %4, null
  br i1 %.not16310, label %.thread17104, label %2988

2988:                                             ; preds = %2986
  %.not16311 = icmp eq ptr %5, null
  br i1 %.not16311, label %2993, label %2989

2989:                                             ; preds = %2988
  %2990 = load i32, ptr %4, align 4, !tbaa !11
  %.not16312 = icmp ugt i32 %2990, %2987
  br i1 %.not16312, label %2993, label %2991

2991:                                             ; preds = %2989
  %2992 = load i32, ptr %5, align 4, !tbaa !11
  %.not16313 = icmp ugt i32 %2987, %2992
  br i1 %.not16313, label %2993, label %2994

2993:                                             ; preds = %2991, %2989, %2988
  tail call void @__assert_fail(ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.24, i32 noundef 497, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

2994:                                             ; preds = %2991
  %2995 = uitofp i32 %2990 to double
  %2996 = uitofp i32 %2992 to double
  %2997 = fcmp olt double %2995, %2996
  br i1 %2997, label %2998, label %.thread17104

2998:                                             ; preds = %2994
  %2999 = fcmp ogt double %2995, 0.000000e+00
  %3000 = select i1 %2999, double %2995, double 0.000000e+00
  %3001 = fcmp ogt double %2996, 0.000000e+00
  %3002 = select i1 %3001, double %2996, double 0.000000e+00
  %3003 = fcmp olt double %3000, %3002
  %3004 = fsub double %2996, %2995
  %3005 = fsub double %3002, %3000
  %3006 = fdiv double %3004, %3005
  %3007 = select i1 %3003, double %3006, double 1.000000e+00
  %3008 = uitofp i32 %2987 to double
  %3009 = fmul double %3007, %3008
  %3010 = fcmp oge double %3009, 0.000000e+00
  %.v16317 = select i1 %3010, double 5.000000e-01, double -5.000000e-01
  %3011 = fadd double %3009, %.v16317
  %3012 = fptoui double %3011 to i32
  %3013 = uitofp i32 %3012 to double
  %3014 = fsub double %3013, %3000
  %3015 = fmul double %3014, 0x41EFFFFFFFE00000
  %3016 = fdiv double %3015, %3005
  %3017 = fadd double %3016, 0.000000e+00
  %3018 = fcmp oge double %3016, 0.000000e+00
  %.v16318 = select i1 %3018, double 5.000000e-01, double -5.000000e-01
  %3019 = fadd double %3017, %.v16318
  %3020 = fcmp ogt double %3019, 0.000000e+00
  br i1 %3020, label %3021, label %3025

3021:                                             ; preds = %2998
  %3022 = fcmp ugt double %3019, 0x41EFFFFFFFE00000
  br i1 %3022, label %3023, label %3025

3023:                                             ; preds = %3021
  %3024 = fcmp olt double %3019, 0x41EFFFFFFFE00000
  %.16909 = select i1 %3024, double %3019, double 0x41EFFFFFFFE00000
  br label %3025

3025:                                             ; preds = %2998, %3023, %3021
  %3026 = phi double [ %3019, %3021 ], [ %.16909, %3023 ], [ 0.000000e+00, %2998 ]
  %3027 = fptoui double %3026 to i32
  br label %.thread17104

.thread17104:                                     ; preds = %2994, %2986, %3025
  %storemerge16315 = phi i32 [ %3027, %3025 ], [ %2987, %2986 ], [ %2987, %2994 ]
  store i32 %storemerge16315, ptr %0, align 4, !tbaa !11
  br label %4216

3028:                                             ; preds = %2756
  %3029 = load i16, ptr %3, align 2, !tbaa !13
  %.not16302 = icmp eq ptr %4, null
  br i1 %.not16302, label %.thread17107, label %3030

3030:                                             ; preds = %3028
  %.not16303 = icmp eq ptr %5, null
  br i1 %.not16303, label %3035, label %3031

3031:                                             ; preds = %3030
  %3032 = load i16, ptr %4, align 2, !tbaa !13
  %.not16304 = icmp ugt i16 %3032, %3029
  br i1 %.not16304, label %3035, label %3033

3033:                                             ; preds = %3031
  %3034 = load i16, ptr %5, align 2, !tbaa !13
  %.not16305 = icmp ugt i16 %3029, %3034
  br i1 %.not16305, label %3035, label %3036

3035:                                             ; preds = %3033, %3031, %3030
  tail call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.24, i32 noundef 497, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3036:                                             ; preds = %3033
  %3037 = uitofp i16 %3032 to double
  %3038 = uitofp i16 %3034 to double
  %3039 = fcmp olt double %3037, %3038
  br i1 %3039, label %3040, label %.thread17107

3040:                                             ; preds = %3036
  %3041 = fcmp ogt double %3037, 0.000000e+00
  %3042 = select i1 %3041, double %3037, double 0.000000e+00
  %3043 = fcmp ogt double %3038, 0.000000e+00
  %3044 = select i1 %3043, double %3038, double 0.000000e+00
  %3045 = fcmp olt double %3042, %3044
  %3046 = fsub double %3038, %3037
  %3047 = fsub double %3044, %3042
  %3048 = fdiv double %3046, %3047
  %3049 = select i1 %3045, double %3048, double 1.000000e+00
  %3050 = uitofp i16 %3029 to double
  %3051 = fmul double %3049, %3050
  %3052 = fcmp oge double %3051, 0.000000e+00
  %.v16308 = select i1 %3052, double 5.000000e-01, double -5.000000e-01
  %3053 = fadd double %3051, %.v16308
  %3054 = fptoui double %3053 to i16
  %3055 = uitofp i16 %3054 to double
  %3056 = fsub double %3055, %3042
  %3057 = fmul double %3056, 0x41EFFFFFFFE00000
  %3058 = fdiv double %3057, %3047
  %3059 = fadd double %3058, 0.000000e+00
  %3060 = fcmp oge double %3058, 0.000000e+00
  %.v16309 = select i1 %3060, double 5.000000e-01, double -5.000000e-01
  %3061 = fadd double %3059, %.v16309
  %3062 = fcmp ogt double %3061, 0.000000e+00
  br i1 %3062, label %3063, label %3067

3063:                                             ; preds = %3040
  %3064 = fcmp ugt double %3061, 0x41EFFFFFFFE00000
  br i1 %3064, label %3065, label %3067

3065:                                             ; preds = %3063
  %3066 = fcmp olt double %3061, 0x41EFFFFFFFE00000
  %.16910 = select i1 %3066, double %3061, double 0x41EFFFFFFFE00000
  br label %3067

3067:                                             ; preds = %3040, %3065, %3063
  %3068 = phi double [ %3061, %3063 ], [ %.16910, %3065 ], [ 0.000000e+00, %3040 ]
  %3069 = fptoui double %3068 to i32
  br label %3071

.thread17107:                                     ; preds = %3028, %3036
  %3070 = zext i16 %3029 to i32
  br label %3071

3071:                                             ; preds = %.thread17107, %3067
  %storemerge16306 = phi i32 [ %3070, %.thread17107 ], [ %3069, %3067 ]
  store i32 %storemerge16306, ptr %0, align 4, !tbaa !11
  br label %4216

3072:                                             ; preds = %2756
  %3073 = load i8, ptr %3, align 1, !tbaa !15
  %.not16294 = icmp eq ptr %4, null
  br i1 %.not16294, label %.thread17110, label %3074

3074:                                             ; preds = %3072
  %.not16295 = icmp eq ptr %5, null
  br i1 %.not16295, label %3079, label %3075

3075:                                             ; preds = %3074
  %3076 = load i8, ptr %4, align 1, !tbaa !15
  %.not16296 = icmp ugt i8 %3076, %3073
  br i1 %.not16296, label %3079, label %3077

3077:                                             ; preds = %3075
  %3078 = load i8, ptr %5, align 1, !tbaa !15
  %.not16297 = icmp ugt i8 %3073, %3078
  br i1 %.not16297, label %3079, label %3080

3079:                                             ; preds = %3077, %3075, %3074
  tail call void @__assert_fail(ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.24, i32 noundef 497, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3080:                                             ; preds = %3077
  %3081 = uitofp i8 %3076 to double
  %3082 = uitofp i8 %3078 to double
  %3083 = fcmp olt double %3081, %3082
  br i1 %3083, label %3084, label %.thread17110

3084:                                             ; preds = %3080
  %3085 = fcmp ogt double %3081, 0.000000e+00
  %3086 = select i1 %3085, double %3081, double 0.000000e+00
  %3087 = fcmp ogt double %3082, 0.000000e+00
  %3088 = select i1 %3087, double %3082, double 0.000000e+00
  %3089 = fcmp olt double %3086, %3088
  %3090 = fsub double %3082, %3081
  %3091 = fsub double %3088, %3086
  %3092 = fdiv double %3090, %3091
  %3093 = select i1 %3089, double %3092, double 1.000000e+00
  %3094 = uitofp i8 %3073 to double
  %3095 = fmul double %3093, %3094
  %3096 = fcmp oge double %3095, 0.000000e+00
  %.v16300 = select i1 %3096, double 5.000000e-01, double -5.000000e-01
  %3097 = fadd double %3095, %.v16300
  %3098 = fptoui double %3097 to i8
  %3099 = uitofp i8 %3098 to double
  %3100 = fsub double %3099, %3086
  %3101 = fmul double %3100, 0x41EFFFFFFFE00000
  %3102 = fdiv double %3101, %3091
  %3103 = fadd double %3102, 0.000000e+00
  %3104 = fcmp oge double %3102, 0.000000e+00
  %.v16301 = select i1 %3104, double 5.000000e-01, double -5.000000e-01
  %3105 = fadd double %3103, %.v16301
  %3106 = fcmp ogt double %3105, 0.000000e+00
  br i1 %3106, label %3107, label %3111

3107:                                             ; preds = %3084
  %3108 = fcmp ugt double %3105, 0x41EFFFFFFFE00000
  br i1 %3108, label %3109, label %3111

3109:                                             ; preds = %3107
  %3110 = fcmp olt double %3105, 0x41EFFFFFFFE00000
  %.16911 = select i1 %3110, double %3105, double 0x41EFFFFFFFE00000
  br label %3111

3111:                                             ; preds = %3084, %3109, %3107
  %3112 = phi double [ %3105, %3107 ], [ %.16911, %3109 ], [ 0.000000e+00, %3084 ]
  %3113 = fptoui double %3112 to i32
  br label %3115

.thread17110:                                     ; preds = %3072, %3080
  %3114 = zext i8 %3073 to i32
  br label %3115

3115:                                             ; preds = %.thread17110, %3111
  %storemerge16298 = phi i32 [ %3114, %.thread17110 ], [ %3113, %3111 ]
  store i32 %storemerge16298, ptr %0, align 4, !tbaa !11
  br label %4216

3116:                                             ; preds = %2756
  %3117 = load double, ptr %3, align 8, !tbaa !9
  %.not16290 = icmp ne ptr %4, null
  %3118 = fcmp ord double %3117, 0.000000e+00
  %or.cond16912 = select i1 %.not16290, i1 %3118, i1 false
  br i1 %or.cond16912, label %3119, label %.thread17113

3119:                                             ; preds = %3116
  %.not16291 = icmp eq ptr %5, null
  br i1 %.not16291, label %3126, label %3120

3120:                                             ; preds = %3119
  %3121 = load double, ptr %4, align 8, !tbaa !9
  %3122 = fcmp ugt double %3121, %3117
  br i1 %3122, label %3126, label %3123

3123:                                             ; preds = %3120
  %3124 = load double, ptr %5, align 8, !tbaa !9
  %3125 = fcmp ugt double %3117, %3124
  br i1 %3125, label %3126, label %3127

3126:                                             ; preds = %3123, %3120, %3119
  tail call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.24, i32 noundef 497, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3127:                                             ; preds = %3123
  %3128 = fcmp olt double %3121, %3124
  br i1 %3128, label %3129, label %.thread17113

3129:                                             ; preds = %3127
  %3130 = fcmp ogt double %3121, 0.000000e+00
  %3131 = select i1 %3130, double %3121, double 0.000000e+00
  %3132 = fcmp ogt double %3124, 0.000000e+00
  %3133 = select i1 %3132, double %3124, double 0.000000e+00
  %3134 = fcmp olt double %3131, %3133
  %3135 = fsub double %3124, %3121
  %3136 = fsub double %3133, %3131
  %3137 = fdiv double %3135, %3136
  %3138 = select i1 %3134, double %3137, double 1.000000e+00
  %3139 = fcmp ogt double %3117, 0.000000e+00
  %3140 = select i1 %3139, double %3117, double 0.000000e+00
  %3141 = fmul double %3140, %3138
  %3142 = fsub double %3141, %3131
  %3143 = fmul double %3142, 0x41EFFFFFFFE00000
  %3144 = fdiv double %3143, %3136
  %3145 = fadd double %3144, 0.000000e+00
  %3146 = fcmp oge double %3144, 0.000000e+00
  %.v16293 = select i1 %3146, double 5.000000e-01, double -5.000000e-01
  %3147 = fadd double %3145, %.v16293
  %3148 = fcmp ogt double %3147, 0.000000e+00
  br i1 %3148, label %3149, label %3170

3149:                                             ; preds = %3129
  %3150 = fcmp ugt double %3147, 0x41EFFFFFFFE00000
  br i1 %3150, label %3151, label %3170

3151:                                             ; preds = %3149
  %3152 = fcmp olt double %3147, 0x41EFFFFFFFE00000
  %.16913 = select i1 %3152, double %3147, double 0x41EFFFFFFFE00000
  br label %3170

.thread17113:                                     ; preds = %3116, %3127
  %3153 = fcmp ult double %3117, 0.000000e+00
  br i1 %3153, label %3162, label %3154

3154:                                             ; preds = %.thread17113
  %3155 = fadd double %3117, 5.000000e-01
  %3156 = fcmp ogt double %3155, 0.000000e+00
  br i1 %3156, label %3157, label %3170

3157:                                             ; preds = %3154
  %3158 = fcmp ugt double %3155, 0x41EFFFFFFFE00000
  br i1 %3158, label %3159, label %3170

3159:                                             ; preds = %3157
  %3160 = fcmp olt double %3155, 0x41EFFFFFFFE00000
  %3161 = select i1 %3160, double %3155, double 0x41EFFFFFFFE00000
  br label %3170

3162:                                             ; preds = %.thread17113
  %3163 = fadd double %3117, -5.000000e-01
  %3164 = fcmp ogt double %3163, 0.000000e+00
  br i1 %3164, label %3165, label %3170

3165:                                             ; preds = %3162
  %3166 = fcmp ugt double %3163, 0x41EFFFFFFFE00000
  br i1 %3166, label %3167, label %3170

3167:                                             ; preds = %3165
  %3168 = fcmp olt double %3163, 0x41EFFFFFFFE00000
  %3169 = select i1 %3168, double %3163, double 0x41EFFFFFFFE00000
  br label %3170

3170:                                             ; preds = %3159, %3167, %3157, %3154, %3165, %3162, %3149, %3151, %3129
  %storemerge16292.in = phi double [ %3147, %3149 ], [ %.16913, %3151 ], [ 0.000000e+00, %3129 ], [ %3161, %3159 ], [ %3169, %3167 ], [ %3155, %3157 ], [ 0.000000e+00, %3154 ], [ %3163, %3165 ], [ 0.000000e+00, %3162 ]
  %storemerge16292 = fptoui double %storemerge16292.in to i32
  store i32 %storemerge16292, ptr %0, align 4, !tbaa !11
  br label %4216

3171:                                             ; preds = %2756
  %3172 = load float, ptr %3, align 4, !tbaa !16
  %.not16286 = icmp ne ptr %4, null
  %3173 = fcmp ord float %3172, 0.000000e+00
  %or.cond16914 = select i1 %.not16286, i1 %3173, i1 false
  br i1 %or.cond16914, label %3174, label %.thread17116

3174:                                             ; preds = %3171
  %.not16287 = icmp eq ptr %5, null
  br i1 %.not16287, label %3181, label %3175

3175:                                             ; preds = %3174
  %3176 = load float, ptr %4, align 4, !tbaa !16
  %3177 = fcmp ugt float %3176, %3172
  br i1 %3177, label %3181, label %3178

3178:                                             ; preds = %3175
  %3179 = load float, ptr %5, align 4, !tbaa !16
  %3180 = fcmp ugt float %3172, %3179
  br i1 %3180, label %3181, label %3182

3181:                                             ; preds = %3178, %3175, %3174
  tail call void @__assert_fail(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.24, i32 noundef 497, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3182:                                             ; preds = %3178
  %3183 = fcmp olt float %3176, %3179
  br i1 %3183, label %3184, label %.thread17116

3184:                                             ; preds = %3182
  %3185 = fpext float %3179 to double
  %3186 = fpext float %3176 to double
  %3187 = fcmp ogt double %3186, 0.000000e+00
  %3188 = select i1 %3187, double %3186, double 0.000000e+00
  %3189 = fcmp ogt double %3185, 0.000000e+00
  %3190 = select i1 %3189, double %3185, double 0.000000e+00
  %3191 = fcmp olt double %3188, %3190
  %3192 = fsub double %3185, %3186
  %3193 = fsub double %3190, %3188
  %3194 = fdiv double %3192, %3193
  %3195 = select i1 %3191, double %3194, double 1.000000e+00
  %3196 = fcmp ogt float %3172, 0.000000e+00
  %3197 = select i1 %3196, float %3172, float 0.000000e+00
  %3198 = fpext float %3197 to double
  %3199 = fmul double %3195, %3198
  %3200 = fptrunc double %3199 to float
  %3201 = fpext float %3200 to double
  %3202 = fsub double %3201, %3188
  %3203 = fmul double %3202, 0x41EFFFFFFFE00000
  %3204 = fdiv double %3203, %3193
  %3205 = fadd double %3204, 0.000000e+00
  %3206 = fcmp oge double %3204, 0.000000e+00
  %.v16289 = select i1 %3206, double 5.000000e-01, double -5.000000e-01
  %3207 = fadd double %3205, %.v16289
  %3208 = fcmp ogt double %3207, 0.000000e+00
  br i1 %3208, label %3209, label %3231

3209:                                             ; preds = %3184
  %3210 = fcmp ugt double %3207, 0x41EFFFFFFFE00000
  br i1 %3210, label %3211, label %3231

3211:                                             ; preds = %3209
  %3212 = fcmp olt double %3207, 0x41EFFFFFFFE00000
  %.16915 = select i1 %3212, double %3207, double 0x41EFFFFFFFE00000
  br label %3231

.thread17116:                                     ; preds = %3171, %3182
  %3213 = fcmp ult float %3172, 0.000000e+00
  %3214 = fpext float %3172 to double
  br i1 %3213, label %3223, label %3215

3215:                                             ; preds = %.thread17116
  %3216 = fadd double %3214, 5.000000e-01
  %3217 = fcmp ogt double %3216, 0.000000e+00
  br i1 %3217, label %3218, label %3231

3218:                                             ; preds = %3215
  %3219 = fcmp ugt double %3216, 0x41EFFFFFFFE00000
  br i1 %3219, label %3220, label %3231

3220:                                             ; preds = %3218
  %3221 = fcmp olt double %3216, 0x41EFFFFFFFE00000
  %3222 = select i1 %3221, double %3216, double 0x41EFFFFFFFE00000
  br label %3231

3223:                                             ; preds = %.thread17116
  %3224 = fadd double %3214, -5.000000e-01
  %3225 = fcmp ogt double %3224, 0.000000e+00
  br i1 %3225, label %3226, label %3231

3226:                                             ; preds = %3223
  %3227 = fcmp ugt double %3224, 0x41EFFFFFFFE00000
  br i1 %3227, label %3228, label %3231

3228:                                             ; preds = %3226
  %3229 = fcmp olt double %3224, 0x41EFFFFFFFE00000
  %3230 = select i1 %3229, double %3224, double 0x41EFFFFFFFE00000
  br label %3231

3231:                                             ; preds = %3220, %3228, %3218, %3215, %3226, %3223, %3209, %3211, %3184
  %storemerge16288.in = phi double [ %3207, %3209 ], [ %.16915, %3211 ], [ 0.000000e+00, %3184 ], [ %3222, %3220 ], [ %3230, %3228 ], [ %3216, %3218 ], [ 0.000000e+00, %3215 ], [ %3224, %3226 ], [ 0.000000e+00, %3223 ]
  %storemerge16288 = fptoui double %storemerge16288.in to i32
  store i32 %storemerge16288, ptr %0, align 4, !tbaa !11
  br label %4216

3232:                                             ; preds = %2756
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 497, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3233:                                             ; preds = %2756
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 497, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3234:                                             ; preds = %2756
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 497, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3235:                                             ; preds = %6
  %3236 = icmp ne ptr %0, null
  %3237 = icmp ne ptr %3, null
  %or.cond463 = and i1 %3236, %3237
  br i1 %or.cond463, label %3239, label %3238

3238:                                             ; preds = %3235
  tail call void @__assert_fail(ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.24, i32 noundef 500, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3239:                                             ; preds = %3235
  switch i32 %2, label %4216 [
    i32 6, label %3240
    i32 8, label %3288
    i32 10, label %3336
    i32 12, label %3381
    i32 15, label %3426
    i32 16, label %3472
    i32 17, label %3518
    i32 18, label %3560
    i32 0, label %3604
    i32 1, label %3659
    i32 3, label %3720
    i32 2, label %3721
    i32 4, label %3722
  ]

3240:                                             ; preds = %3239
  %3241 = load i64, ptr %3, align 8, !tbaa !5
  %.not16279 = icmp eq ptr %4, null
  br i1 %.not16279, label %.thread17119, label %3242

3242:                                             ; preds = %3240
  %.not16280 = icmp eq ptr %5, null
  br i1 %.not16280, label %3247, label %3243

3243:                                             ; preds = %3242
  %3244 = load i64, ptr %4, align 8, !tbaa !5
  %.not16281 = icmp sgt i64 %3244, %3241
  br i1 %.not16281, label %3247, label %3245

3245:                                             ; preds = %3243
  %3246 = load i64, ptr %5, align 8, !tbaa !5
  %.not16282 = icmp sgt i64 %3241, %3246
  br i1 %.not16282, label %3247, label %3248

3247:                                             ; preds = %3245, %3243, %3242
  tail call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.24, i32 noundef 500, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3248:                                             ; preds = %3245
  %3249 = sitofp i64 %3244 to double
  %3250 = sitofp i64 %3246 to double
  %3251 = fcmp olt double %3249, %3250
  br i1 %3251, label %3252, label %.thread17119

3252:                                             ; preds = %3248
  %3253 = fcmp ogt double %3249, 0.000000e+00
  %3254 = select i1 %3253, double %3249, double 0.000000e+00
  %3255 = fcmp ogt double %3250, 0.000000e+00
  %3256 = select i1 %3255, double %3250, double 0.000000e+00
  %3257 = fcmp olt double %3254, %3256
  %3258 = fsub double %3250, %3249
  %3259 = fsub double %3256, %3254
  %3260 = fdiv double %3258, %3259
  %3261 = select i1 %3257, double %3260, double 1.000000e+00
  %3262 = tail call i64 @llvm.smax.i64(i64 %3241, i64 0)
  %3263 = uitofp nneg i64 %3262 to double
  %3264 = fmul double %3261, %3263
  %3265 = fcmp oge double %3264, 0.000000e+00
  %.v16284 = select i1 %3265, double 5.000000e-01, double -5.000000e-01
  %3266 = fadd double %3264, %.v16284
  %3267 = fptosi double %3266 to i64
  %3268 = sitofp i64 %3267 to double
  %3269 = fsub double %3268, %3254
  %3270 = fmul double %3269, 6.553500e+04
  %3271 = fdiv double %3270, %3259
  %3272 = fadd double %3271, 0.000000e+00
  %3273 = fcmp oge double %3271, 0.000000e+00
  %.v16285 = select i1 %3273, double 5.000000e-01, double -5.000000e-01
  %3274 = fadd double %3272, %.v16285
  %3275 = fcmp ogt double %3274, 0.000000e+00
  br i1 %3275, label %3276, label %3287

3276:                                             ; preds = %3252
  %3277 = fcmp ugt double %3274, 6.553500e+04
  br i1 %3277, label %3278, label %3287

3278:                                             ; preds = %3276
  %3279 = fcmp olt double %3274, 6.553500e+04
  %.16916 = select i1 %3279, double %3274, double 6.553500e+04
  br label %3287

.thread17119:                                     ; preds = %3240, %3248
  %3280 = sitofp i64 %3241 to double
  %3281 = icmp sgt i64 %3241, 0
  br i1 %3281, label %3282, label %3287

3282:                                             ; preds = %.thread17119
  %3283 = icmp ult i64 %3241, 65536
  br i1 %3283, label %3287, label %3284

3284:                                             ; preds = %3282
  %3285 = fcmp olt double %3280, 6.553500e+04
  %3286 = select i1 %3285, double %3280, double 6.553500e+04
  br label %3287

3287:                                             ; preds = %3284, %3282, %.thread17119, %3276, %3278, %3252
  %storemerge16283.in = phi double [ %3274, %3276 ], [ %.16916, %3278 ], [ 0.000000e+00, %3252 ], [ %3286, %3284 ], [ %3280, %3282 ], [ 0.000000e+00, %.thread17119 ]
  %storemerge16283 = fptoui double %storemerge16283.in to i16
  store i16 %storemerge16283, ptr %0, align 2, !tbaa !13
  br label %4216

3288:                                             ; preds = %3239
  %3289 = load i32, ptr %3, align 4, !tbaa !11
  %.not16272 = icmp eq ptr %4, null
  br i1 %.not16272, label %.thread17122, label %3290

3290:                                             ; preds = %3288
  %.not16273 = icmp eq ptr %5, null
  br i1 %.not16273, label %3295, label %3291

3291:                                             ; preds = %3290
  %3292 = load i32, ptr %4, align 4, !tbaa !11
  %.not16274 = icmp sgt i32 %3292, %3289
  br i1 %.not16274, label %3295, label %3293

3293:                                             ; preds = %3291
  %3294 = load i32, ptr %5, align 4, !tbaa !11
  %.not16275 = icmp sgt i32 %3289, %3294
  br i1 %.not16275, label %3295, label %3296

3295:                                             ; preds = %3293, %3291, %3290
  tail call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.24, i32 noundef 500, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3296:                                             ; preds = %3293
  %3297 = sitofp i32 %3292 to double
  %3298 = sitofp i32 %3294 to double
  %3299 = fcmp olt double %3297, %3298
  br i1 %3299, label %3300, label %.thread17122

3300:                                             ; preds = %3296
  %3301 = fcmp ogt double %3297, 0.000000e+00
  %3302 = select i1 %3301, double %3297, double 0.000000e+00
  %3303 = fcmp ogt double %3298, 0.000000e+00
  %3304 = select i1 %3303, double %3298, double 0.000000e+00
  %3305 = fcmp olt double %3302, %3304
  %3306 = fsub double %3298, %3297
  %3307 = fsub double %3304, %3302
  %3308 = fdiv double %3306, %3307
  %3309 = select i1 %3305, double %3308, double 1.000000e+00
  %3310 = tail call i32 @llvm.smax.i32(i32 %3289, i32 0)
  %3311 = uitofp nneg i32 %3310 to double
  %3312 = fmul double %3309, %3311
  %3313 = fcmp oge double %3312, 0.000000e+00
  %.v16277 = select i1 %3313, double 5.000000e-01, double -5.000000e-01
  %3314 = fadd double %3312, %.v16277
  %3315 = fptosi double %3314 to i32
  %3316 = sitofp i32 %3315 to double
  %3317 = fsub double %3316, %3302
  %3318 = fmul double %3317, 6.553500e+04
  %3319 = fdiv double %3318, %3307
  %3320 = fadd double %3319, 0.000000e+00
  %3321 = fcmp oge double %3319, 0.000000e+00
  %.v16278 = select i1 %3321, double 5.000000e-01, double -5.000000e-01
  %3322 = fadd double %3320, %.v16278
  %3323 = fcmp ogt double %3322, 0.000000e+00
  br i1 %3323, label %3324, label %3335

3324:                                             ; preds = %3300
  %3325 = fcmp ugt double %3322, 6.553500e+04
  br i1 %3325, label %3326, label %3335

3326:                                             ; preds = %3324
  %3327 = fcmp olt double %3322, 6.553500e+04
  %.16917 = select i1 %3327, double %3322, double 6.553500e+04
  br label %3335

.thread17122:                                     ; preds = %3288, %3296
  %3328 = sitofp i32 %3289 to double
  %3329 = icmp sgt i32 %3289, 0
  br i1 %3329, label %3330, label %3335

3330:                                             ; preds = %.thread17122
  %3331 = icmp ult i32 %3289, 65536
  br i1 %3331, label %3335, label %3332

3332:                                             ; preds = %3330
  %3333 = fcmp olt double %3328, 6.553500e+04
  %3334 = select i1 %3333, double %3328, double 6.553500e+04
  br label %3335

3335:                                             ; preds = %3332, %3330, %.thread17122, %3324, %3326, %3300
  %storemerge16276.in = phi double [ %3322, %3324 ], [ %.16917, %3326 ], [ 0.000000e+00, %3300 ], [ %3334, %3332 ], [ %3328, %3330 ], [ 0.000000e+00, %.thread17122 ]
  %storemerge16276 = fptoui double %storemerge16276.in to i16
  store i16 %storemerge16276, ptr %0, align 2, !tbaa !13
  br label %4216

3336:                                             ; preds = %3239
  %3337 = load i16, ptr %3, align 2, !tbaa !13
  %.not16265 = icmp eq ptr %4, null
  br i1 %.not16265, label %.thread17125, label %3338

3338:                                             ; preds = %3336
  %.not16266 = icmp eq ptr %5, null
  br i1 %.not16266, label %3343, label %3339

3339:                                             ; preds = %3338
  %3340 = load i16, ptr %4, align 2, !tbaa !13
  %.not16267 = icmp sgt i16 %3340, %3337
  br i1 %.not16267, label %3343, label %3341

3341:                                             ; preds = %3339
  %3342 = load i16, ptr %5, align 2, !tbaa !13
  %.not16268 = icmp sgt i16 %3337, %3342
  br i1 %.not16268, label %3343, label %3344

3343:                                             ; preds = %3341, %3339, %3338
  tail call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.24, i32 noundef 500, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3344:                                             ; preds = %3341
  %3345 = sitofp i16 %3340 to double
  %3346 = sitofp i16 %3342 to double
  %3347 = fcmp olt double %3345, %3346
  br i1 %3347, label %3348, label %.thread17125

3348:                                             ; preds = %3344
  %3349 = fcmp ogt double %3345, 0.000000e+00
  %3350 = select i1 %3349, double %3345, double 0.000000e+00
  %3351 = fcmp ogt double %3346, 0.000000e+00
  %3352 = select i1 %3351, double %3346, double 0.000000e+00
  %3353 = fcmp olt double %3350, %3352
  %3354 = fsub double %3346, %3345
  %3355 = fsub double %3352, %3350
  %3356 = fdiv double %3354, %3355
  %3357 = select i1 %3353, double %3356, double 1.000000e+00
  %3358 = tail call i16 @llvm.smax.i16(i16 %3337, i16 0)
  %3359 = uitofp nneg i16 %3358 to double
  %3360 = fmul double %3357, %3359
  %3361 = fcmp oge double %3360, 0.000000e+00
  %.v16270 = select i1 %3361, double 5.000000e-01, double -5.000000e-01
  %3362 = fadd double %3360, %.v16270
  %3363 = fptosi double %3362 to i16
  %3364 = sitofp i16 %3363 to double
  %3365 = fsub double %3364, %3350
  %3366 = fmul double %3365, 6.553500e+04
  %3367 = fdiv double %3366, %3355
  %3368 = fadd double %3367, 0.000000e+00
  %3369 = fcmp oge double %3367, 0.000000e+00
  %.v16271 = select i1 %3369, double 5.000000e-01, double -5.000000e-01
  %3370 = fadd double %3368, %.v16271
  %3371 = fcmp ogt double %3370, 0.000000e+00
  br i1 %3371, label %3372, label %3376

3372:                                             ; preds = %3348
  %3373 = fcmp ugt double %3370, 6.553500e+04
  br i1 %3373, label %3374, label %3376

3374:                                             ; preds = %3372
  %3375 = fcmp olt double %3370, 6.553500e+04
  %.16918 = select i1 %3375, double %3370, double 6.553500e+04
  br label %3376

3376:                                             ; preds = %3348, %3374, %3372
  %3377 = phi double [ %3370, %3372 ], [ %.16918, %3374 ], [ 0.000000e+00, %3348 ]
  %3378 = fptoui double %3377 to i16
  br label %3380

.thread17125:                                     ; preds = %3336, %3344
  %3379 = tail call i16 @llvm.smax.i16(i16 %3337, i16 0)
  br label %3380

3380:                                             ; preds = %.thread17125, %3376
  %storemerge16269 = phi i16 [ %3379, %.thread17125 ], [ %3378, %3376 ]
  store i16 %storemerge16269, ptr %0, align 2, !tbaa !13
  br label %4216

3381:                                             ; preds = %3239
  %3382 = load i8, ptr %3, align 1, !tbaa !15
  %.not16258 = icmp eq ptr %4, null
  br i1 %.not16258, label %.thread17128, label %3383

3383:                                             ; preds = %3381
  %.not16259 = icmp eq ptr %5, null
  br i1 %.not16259, label %3388, label %3384

3384:                                             ; preds = %3383
  %3385 = load i8, ptr %4, align 1, !tbaa !15
  %.not16260 = icmp sgt i8 %3385, %3382
  br i1 %.not16260, label %3388, label %3386

3386:                                             ; preds = %3384
  %3387 = load i8, ptr %5, align 1, !tbaa !15
  %.not16261 = icmp sgt i8 %3382, %3387
  br i1 %.not16261, label %3388, label %3389

3388:                                             ; preds = %3386, %3384, %3383
  tail call void @__assert_fail(ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.24, i32 noundef 500, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3389:                                             ; preds = %3386
  %3390 = sitofp i8 %3385 to double
  %3391 = sitofp i8 %3387 to double
  %3392 = fcmp olt double %3390, %3391
  br i1 %3392, label %3393, label %.thread17128

3393:                                             ; preds = %3389
  %3394 = fcmp ogt double %3390, 0.000000e+00
  %3395 = select i1 %3394, double %3390, double 0.000000e+00
  %3396 = fcmp ogt double %3391, 0.000000e+00
  %3397 = select i1 %3396, double %3391, double 0.000000e+00
  %3398 = fcmp olt double %3395, %3397
  %3399 = fsub double %3391, %3390
  %3400 = fsub double %3397, %3395
  %3401 = fdiv double %3399, %3400
  %3402 = select i1 %3398, double %3401, double 1.000000e+00
  %3403 = tail call i8 @llvm.smax.i8(i8 %3382, i8 0)
  %3404 = uitofp nneg i8 %3403 to double
  %3405 = fmul double %3402, %3404
  %3406 = fcmp oge double %3405, 0.000000e+00
  %.v16263 = select i1 %3406, double 5.000000e-01, double -5.000000e-01
  %3407 = fadd double %3405, %.v16263
  %3408 = fptosi double %3407 to i8
  %3409 = sitofp i8 %3408 to double
  %3410 = fsub double %3409, %3395
  %3411 = fmul double %3410, 6.553500e+04
  %3412 = fdiv double %3411, %3400
  %3413 = fadd double %3412, 0.000000e+00
  %3414 = fcmp oge double %3412, 0.000000e+00
  %.v16264 = select i1 %3414, double 5.000000e-01, double -5.000000e-01
  %3415 = fadd double %3413, %.v16264
  %3416 = fcmp ogt double %3415, 0.000000e+00
  br i1 %3416, label %3417, label %3421

3417:                                             ; preds = %3393
  %3418 = fcmp ugt double %3415, 6.553500e+04
  br i1 %3418, label %3419, label %3421

3419:                                             ; preds = %3417
  %3420 = fcmp olt double %3415, 6.553500e+04
  %.16919 = select i1 %3420, double %3415, double 6.553500e+04
  br label %3421

3421:                                             ; preds = %3393, %3419, %3417
  %3422 = phi double [ %3415, %3417 ], [ %.16919, %3419 ], [ 0.000000e+00, %3393 ]
  %3423 = fptoui double %3422 to i16
  br label %3425

.thread17128:                                     ; preds = %3381, %3389
  %narrow = tail call i8 @llvm.smax.i8(i8 %3382, i8 0)
  %3424 = zext nneg i8 %narrow to i16
  br label %3425

3425:                                             ; preds = %.thread17128, %3421
  %storemerge16262 = phi i16 [ %3424, %.thread17128 ], [ %3423, %3421 ]
  store i16 %storemerge16262, ptr %0, align 2, !tbaa !13
  br label %4216

3426:                                             ; preds = %3239
  %3427 = load i64, ptr %3, align 8, !tbaa !5
  %.not16249 = icmp eq ptr %4, null
  br i1 %.not16249, label %.thread17131, label %3428

3428:                                             ; preds = %3426
  %.not16250 = icmp eq ptr %5, null
  br i1 %.not16250, label %3433, label %3429

3429:                                             ; preds = %3428
  %3430 = load i64, ptr %4, align 8, !tbaa !5
  %.not16251 = icmp ugt i64 %3430, %3427
  br i1 %.not16251, label %3433, label %3431

3431:                                             ; preds = %3429
  %3432 = load i64, ptr %5, align 8, !tbaa !5
  %.not16252 = icmp ugt i64 %3427, %3432
  br i1 %.not16252, label %3433, label %3434

3433:                                             ; preds = %3431, %3429, %3428
  tail call void @__assert_fail(ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.24, i32 noundef 500, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3434:                                             ; preds = %3431
  %3435 = uitofp i64 %3430 to double
  %3436 = uitofp i64 %3432 to double
  %3437 = fcmp olt double %3435, %3436
  br i1 %3437, label %3438, label %.thread17131

3438:                                             ; preds = %3434
  %3439 = fcmp ogt double %3435, 0.000000e+00
  %3440 = select i1 %3439, double %3435, double 0.000000e+00
  %3441 = fcmp ogt double %3436, 0.000000e+00
  %3442 = select i1 %3441, double %3436, double 0.000000e+00
  %3443 = fcmp olt double %3440, %3442
  %3444 = fsub double %3436, %3435
  %3445 = fsub double %3442, %3440
  %3446 = fdiv double %3444, %3445
  %3447 = select i1 %3443, double %3446, double 1.000000e+00
  %3448 = uitofp i64 %3427 to double
  %3449 = fmul double %3447, %3448
  %3450 = fcmp oge double %3449, 0.000000e+00
  %.v16256 = select i1 %3450, double 5.000000e-01, double -5.000000e-01
  %3451 = fadd double %3449, %.v16256
  %3452 = fptoui double %3451 to i64
  %3453 = uitofp i64 %3452 to double
  %3454 = fsub double %3453, %3440
  %3455 = fmul double %3454, 6.553500e+04
  %3456 = fdiv double %3455, %3445
  %3457 = fadd double %3456, 0.000000e+00
  %3458 = fcmp oge double %3456, 0.000000e+00
  %.v16257 = select i1 %3458, double 5.000000e-01, double -5.000000e-01
  %3459 = fadd double %3457, %.v16257
  %3460 = fcmp ogt double %3459, 0.000000e+00
  br i1 %3460, label %3461, label %3471

3461:                                             ; preds = %3438
  %3462 = fcmp ugt double %3459, 6.553500e+04
  br i1 %3462, label %3463, label %3471

3463:                                             ; preds = %3461
  %3464 = fcmp olt double %3459, 6.553500e+04
  %.16920 = select i1 %3464, double %3459, double 6.553500e+04
  br label %3471

.thread17131:                                     ; preds = %3426, %3434
  %3465 = uitofp i64 %3427 to double
  %.not16253 = icmp eq i64 %3427, 0
  br i1 %.not16253, label %3471, label %3466

3466:                                             ; preds = %.thread17131
  %3467 = icmp ult i64 %3427, 65536
  br i1 %3467, label %3471, label %3468

3468:                                             ; preds = %3466
  %3469 = fcmp olt double %3465, 6.553500e+04
  %3470 = select i1 %3469, double %3465, double 6.553500e+04
  br label %3471

3471:                                             ; preds = %3468, %3466, %.thread17131, %3461, %3463, %3438
  %storemerge16254.in = phi double [ %3459, %3461 ], [ %.16920, %3463 ], [ 0.000000e+00, %3438 ], [ %3470, %3468 ], [ %3465, %3466 ], [ 0.000000e+00, %.thread17131 ]
  %storemerge16254 = fptoui double %storemerge16254.in to i16
  store i16 %storemerge16254, ptr %0, align 2, !tbaa !13
  br label %4216

3472:                                             ; preds = %3239
  %3473 = load i32, ptr %3, align 4, !tbaa !11
  %.not16240 = icmp eq ptr %4, null
  br i1 %.not16240, label %.thread17134, label %3474

3474:                                             ; preds = %3472
  %.not16241 = icmp eq ptr %5, null
  br i1 %.not16241, label %3479, label %3475

3475:                                             ; preds = %3474
  %3476 = load i32, ptr %4, align 4, !tbaa !11
  %.not16242 = icmp ugt i32 %3476, %3473
  br i1 %.not16242, label %3479, label %3477

3477:                                             ; preds = %3475
  %3478 = load i32, ptr %5, align 4, !tbaa !11
  %.not16243 = icmp ugt i32 %3473, %3478
  br i1 %.not16243, label %3479, label %3480

3479:                                             ; preds = %3477, %3475, %3474
  tail call void @__assert_fail(ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.24, i32 noundef 500, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3480:                                             ; preds = %3477
  %3481 = uitofp i32 %3476 to double
  %3482 = uitofp i32 %3478 to double
  %3483 = fcmp olt double %3481, %3482
  br i1 %3483, label %3484, label %.thread17134

3484:                                             ; preds = %3480
  %3485 = fcmp ogt double %3481, 0.000000e+00
  %3486 = select i1 %3485, double %3481, double 0.000000e+00
  %3487 = fcmp ogt double %3482, 0.000000e+00
  %3488 = select i1 %3487, double %3482, double 0.000000e+00
  %3489 = fcmp olt double %3486, %3488
  %3490 = fsub double %3482, %3481
  %3491 = fsub double %3488, %3486
  %3492 = fdiv double %3490, %3491
  %3493 = select i1 %3489, double %3492, double 1.000000e+00
  %3494 = uitofp i32 %3473 to double
  %3495 = fmul double %3493, %3494
  %3496 = fcmp oge double %3495, 0.000000e+00
  %.v16247 = select i1 %3496, double 5.000000e-01, double -5.000000e-01
  %3497 = fadd double %3495, %.v16247
  %3498 = fptoui double %3497 to i32
  %3499 = uitofp i32 %3498 to double
  %3500 = fsub double %3499, %3486
  %3501 = fmul double %3500, 6.553500e+04
  %3502 = fdiv double %3501, %3491
  %3503 = fadd double %3502, 0.000000e+00
  %3504 = fcmp oge double %3502, 0.000000e+00
  %.v16248 = select i1 %3504, double 5.000000e-01, double -5.000000e-01
  %3505 = fadd double %3503, %.v16248
  %3506 = fcmp ogt double %3505, 0.000000e+00
  br i1 %3506, label %3507, label %3517

3507:                                             ; preds = %3484
  %3508 = fcmp ugt double %3505, 6.553500e+04
  br i1 %3508, label %3509, label %3517

3509:                                             ; preds = %3507
  %3510 = fcmp olt double %3505, 6.553500e+04
  %.16921 = select i1 %3510, double %3505, double 6.553500e+04
  br label %3517

.thread17134:                                     ; preds = %3472, %3480
  %3511 = uitofp i32 %3473 to double
  %.not16244 = icmp eq i32 %3473, 0
  br i1 %.not16244, label %3517, label %3512

3512:                                             ; preds = %.thread17134
  %3513 = icmp ult i32 %3473, 65536
  br i1 %3513, label %3517, label %3514

3514:                                             ; preds = %3512
  %3515 = fcmp olt double %3511, 6.553500e+04
  %3516 = select i1 %3515, double %3511, double 6.553500e+04
  br label %3517

3517:                                             ; preds = %3514, %3512, %.thread17134, %3507, %3509, %3484
  %storemerge16245.in = phi double [ %3505, %3507 ], [ %.16921, %3509 ], [ 0.000000e+00, %3484 ], [ %3516, %3514 ], [ %3511, %3512 ], [ 0.000000e+00, %.thread17134 ]
  %storemerge16245 = fptoui double %storemerge16245.in to i16
  store i16 %storemerge16245, ptr %0, align 2, !tbaa !13
  br label %4216

3518:                                             ; preds = %3239
  %3519 = load i16, ptr %3, align 2, !tbaa !13
  %.not16231 = icmp eq ptr %4, null
  br i1 %.not16231, label %.thread17137, label %3520

3520:                                             ; preds = %3518
  %.not16232 = icmp eq ptr %5, null
  br i1 %.not16232, label %3525, label %3521

3521:                                             ; preds = %3520
  %3522 = load i16, ptr %4, align 2, !tbaa !13
  %.not16233 = icmp ugt i16 %3522, %3519
  br i1 %.not16233, label %3525, label %3523

3523:                                             ; preds = %3521
  %3524 = load i16, ptr %5, align 2, !tbaa !13
  %.not16234 = icmp ugt i16 %3519, %3524
  br i1 %.not16234, label %3525, label %3526

3525:                                             ; preds = %3523, %3521, %3520
  tail call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.24, i32 noundef 500, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3526:                                             ; preds = %3523
  %3527 = uitofp i16 %3522 to double
  %3528 = uitofp i16 %3524 to double
  %3529 = fcmp olt double %3527, %3528
  br i1 %3529, label %3530, label %.thread17137

3530:                                             ; preds = %3526
  %3531 = fcmp ogt double %3527, 0.000000e+00
  %3532 = select i1 %3531, double %3527, double 0.000000e+00
  %3533 = fcmp ogt double %3528, 0.000000e+00
  %3534 = select i1 %3533, double %3528, double 0.000000e+00
  %3535 = fcmp olt double %3532, %3534
  %3536 = fsub double %3528, %3527
  %3537 = fsub double %3534, %3532
  %3538 = fdiv double %3536, %3537
  %3539 = select i1 %3535, double %3538, double 1.000000e+00
  %3540 = uitofp i16 %3519 to double
  %3541 = fmul double %3539, %3540
  %3542 = fcmp oge double %3541, 0.000000e+00
  %.v16238 = select i1 %3542, double 5.000000e-01, double -5.000000e-01
  %3543 = fadd double %3541, %.v16238
  %3544 = fptoui double %3543 to i16
  %3545 = uitofp i16 %3544 to double
  %3546 = fsub double %3545, %3532
  %3547 = fmul double %3546, 6.553500e+04
  %3548 = fdiv double %3547, %3537
  %3549 = fadd double %3548, 0.000000e+00
  %3550 = fcmp oge double %3548, 0.000000e+00
  %.v16239 = select i1 %3550, double 5.000000e-01, double -5.000000e-01
  %3551 = fadd double %3549, %.v16239
  %3552 = fcmp ogt double %3551, 0.000000e+00
  br i1 %3552, label %3553, label %3557

3553:                                             ; preds = %3530
  %3554 = fcmp ugt double %3551, 6.553500e+04
  br i1 %3554, label %3555, label %3557

3555:                                             ; preds = %3553
  %3556 = fcmp olt double %3551, 6.553500e+04
  %.16922 = select i1 %3556, double %3551, double 6.553500e+04
  br label %3557

3557:                                             ; preds = %3530, %3555, %3553
  %3558 = phi double [ %3551, %3553 ], [ %.16922, %3555 ], [ 0.000000e+00, %3530 ]
  %3559 = fptoui double %3558 to i16
  br label %.thread17137

.thread17137:                                     ; preds = %3526, %3518, %3557
  %storemerge16236 = phi i16 [ %3559, %3557 ], [ %3519, %3518 ], [ %3519, %3526 ]
  store i16 %storemerge16236, ptr %0, align 2, !tbaa !13
  br label %4216

3560:                                             ; preds = %3239
  %3561 = load i8, ptr %3, align 1, !tbaa !15
  %.not16223 = icmp eq ptr %4, null
  br i1 %.not16223, label %.thread17140, label %3562

3562:                                             ; preds = %3560
  %.not16224 = icmp eq ptr %5, null
  br i1 %.not16224, label %3567, label %3563

3563:                                             ; preds = %3562
  %3564 = load i8, ptr %4, align 1, !tbaa !15
  %.not16225 = icmp ugt i8 %3564, %3561
  br i1 %.not16225, label %3567, label %3565

3565:                                             ; preds = %3563
  %3566 = load i8, ptr %5, align 1, !tbaa !15
  %.not16226 = icmp ugt i8 %3561, %3566
  br i1 %.not16226, label %3567, label %3568

3567:                                             ; preds = %3565, %3563, %3562
  tail call void @__assert_fail(ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.24, i32 noundef 500, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3568:                                             ; preds = %3565
  %3569 = uitofp i8 %3564 to double
  %3570 = uitofp i8 %3566 to double
  %3571 = fcmp olt double %3569, %3570
  br i1 %3571, label %3572, label %.thread17140

3572:                                             ; preds = %3568
  %3573 = fcmp ogt double %3569, 0.000000e+00
  %3574 = select i1 %3573, double %3569, double 0.000000e+00
  %3575 = fcmp ogt double %3570, 0.000000e+00
  %3576 = select i1 %3575, double %3570, double 0.000000e+00
  %3577 = fcmp olt double %3574, %3576
  %3578 = fsub double %3570, %3569
  %3579 = fsub double %3576, %3574
  %3580 = fdiv double %3578, %3579
  %3581 = select i1 %3577, double %3580, double 1.000000e+00
  %3582 = uitofp i8 %3561 to double
  %3583 = fmul double %3581, %3582
  %3584 = fcmp oge double %3583, 0.000000e+00
  %.v16229 = select i1 %3584, double 5.000000e-01, double -5.000000e-01
  %3585 = fadd double %3583, %.v16229
  %3586 = fptoui double %3585 to i8
  %3587 = uitofp i8 %3586 to double
  %3588 = fsub double %3587, %3574
  %3589 = fmul double %3588, 6.553500e+04
  %3590 = fdiv double %3589, %3579
  %3591 = fadd double %3590, 0.000000e+00
  %3592 = fcmp oge double %3590, 0.000000e+00
  %.v16230 = select i1 %3592, double 5.000000e-01, double -5.000000e-01
  %3593 = fadd double %3591, %.v16230
  %3594 = fcmp ogt double %3593, 0.000000e+00
  br i1 %3594, label %3595, label %3599

3595:                                             ; preds = %3572
  %3596 = fcmp ugt double %3593, 6.553500e+04
  br i1 %3596, label %3597, label %3599

3597:                                             ; preds = %3595
  %3598 = fcmp olt double %3593, 6.553500e+04
  %.16923 = select i1 %3598, double %3593, double 6.553500e+04
  br label %3599

3599:                                             ; preds = %3572, %3597, %3595
  %3600 = phi double [ %3593, %3595 ], [ %.16923, %3597 ], [ 0.000000e+00, %3572 ]
  %3601 = fptoui double %3600 to i16
  br label %3603

.thread17140:                                     ; preds = %3560, %3568
  %3602 = zext i8 %3561 to i16
  br label %3603

3603:                                             ; preds = %.thread17140, %3599
  %storemerge16227 = phi i16 [ %3602, %.thread17140 ], [ %3601, %3599 ]
  store i16 %storemerge16227, ptr %0, align 2, !tbaa !13
  br label %4216

3604:                                             ; preds = %3239
  %3605 = load double, ptr %3, align 8, !tbaa !9
  %.not16219 = icmp ne ptr %4, null
  %3606 = fcmp ord double %3605, 0.000000e+00
  %or.cond16924 = select i1 %.not16219, i1 %3606, i1 false
  br i1 %or.cond16924, label %3607, label %.thread17143

3607:                                             ; preds = %3604
  %.not16220 = icmp eq ptr %5, null
  br i1 %.not16220, label %3614, label %3608

3608:                                             ; preds = %3607
  %3609 = load double, ptr %4, align 8, !tbaa !9
  %3610 = fcmp ugt double %3609, %3605
  br i1 %3610, label %3614, label %3611

3611:                                             ; preds = %3608
  %3612 = load double, ptr %5, align 8, !tbaa !9
  %3613 = fcmp ugt double %3605, %3612
  br i1 %3613, label %3614, label %3615

3614:                                             ; preds = %3611, %3608, %3607
  tail call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.24, i32 noundef 500, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3615:                                             ; preds = %3611
  %3616 = fcmp olt double %3609, %3612
  br i1 %3616, label %3617, label %.thread17143

3617:                                             ; preds = %3615
  %3618 = fcmp ogt double %3609, 0.000000e+00
  %3619 = select i1 %3618, double %3609, double 0.000000e+00
  %3620 = fcmp ogt double %3612, 0.000000e+00
  %3621 = select i1 %3620, double %3612, double 0.000000e+00
  %3622 = fcmp olt double %3619, %3621
  %3623 = fsub double %3612, %3609
  %3624 = fsub double %3621, %3619
  %3625 = fdiv double %3623, %3624
  %3626 = select i1 %3622, double %3625, double 1.000000e+00
  %3627 = fcmp ogt double %3605, 0.000000e+00
  %3628 = select i1 %3627, double %3605, double 0.000000e+00
  %3629 = fmul double %3628, %3626
  %3630 = fsub double %3629, %3619
  %3631 = fmul double %3630, 6.553500e+04
  %3632 = fdiv double %3631, %3624
  %3633 = fadd double %3632, 0.000000e+00
  %3634 = fcmp oge double %3632, 0.000000e+00
  %.v16222 = select i1 %3634, double 5.000000e-01, double -5.000000e-01
  %3635 = fadd double %3633, %.v16222
  %3636 = fcmp ogt double %3635, 0.000000e+00
  br i1 %3636, label %3637, label %3658

3637:                                             ; preds = %3617
  %3638 = fcmp ugt double %3635, 6.553500e+04
  br i1 %3638, label %3639, label %3658

3639:                                             ; preds = %3637
  %3640 = fcmp olt double %3635, 6.553500e+04
  %.16925 = select i1 %3640, double %3635, double 6.553500e+04
  br label %3658

.thread17143:                                     ; preds = %3604, %3615
  %3641 = fcmp ult double %3605, 0.000000e+00
  br i1 %3641, label %3650, label %3642

3642:                                             ; preds = %.thread17143
  %3643 = fadd double %3605, 5.000000e-01
  %3644 = fcmp ogt double %3643, 0.000000e+00
  br i1 %3644, label %3645, label %3658

3645:                                             ; preds = %3642
  %3646 = fcmp ugt double %3643, 6.553500e+04
  br i1 %3646, label %3647, label %3658

3647:                                             ; preds = %3645
  %3648 = fcmp olt double %3643, 6.553500e+04
  %3649 = select i1 %3648, double %3643, double 6.553500e+04
  br label %3658

3650:                                             ; preds = %.thread17143
  %3651 = fadd double %3605, -5.000000e-01
  %3652 = fcmp ogt double %3651, 0.000000e+00
  br i1 %3652, label %3653, label %3658

3653:                                             ; preds = %3650
  %3654 = fcmp ugt double %3651, 6.553500e+04
  br i1 %3654, label %3655, label %3658

3655:                                             ; preds = %3653
  %3656 = fcmp olt double %3651, 6.553500e+04
  %3657 = select i1 %3656, double %3651, double 6.553500e+04
  br label %3658

3658:                                             ; preds = %3647, %3655, %3645, %3642, %3653, %3650, %3637, %3639, %3617
  %storemerge16221.in = phi double [ %3635, %3637 ], [ %.16925, %3639 ], [ 0.000000e+00, %3617 ], [ %3649, %3647 ], [ %3657, %3655 ], [ %3643, %3645 ], [ 0.000000e+00, %3642 ], [ %3651, %3653 ], [ 0.000000e+00, %3650 ]
  %storemerge16221 = fptoui double %storemerge16221.in to i16
  store i16 %storemerge16221, ptr %0, align 2, !tbaa !13
  br label %4216

3659:                                             ; preds = %3239
  %3660 = load float, ptr %3, align 4, !tbaa !16
  %.not16215 = icmp ne ptr %4, null
  %3661 = fcmp ord float %3660, 0.000000e+00
  %or.cond16926 = select i1 %.not16215, i1 %3661, i1 false
  br i1 %or.cond16926, label %3662, label %.thread17146

3662:                                             ; preds = %3659
  %.not16216 = icmp eq ptr %5, null
  br i1 %.not16216, label %3669, label %3663

3663:                                             ; preds = %3662
  %3664 = load float, ptr %4, align 4, !tbaa !16
  %3665 = fcmp ugt float %3664, %3660
  br i1 %3665, label %3669, label %3666

3666:                                             ; preds = %3663
  %3667 = load float, ptr %5, align 4, !tbaa !16
  %3668 = fcmp ugt float %3660, %3667
  br i1 %3668, label %3669, label %3670

3669:                                             ; preds = %3666, %3663, %3662
  tail call void @__assert_fail(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.24, i32 noundef 500, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3670:                                             ; preds = %3666
  %3671 = fcmp olt float %3664, %3667
  br i1 %3671, label %3672, label %.thread17146

3672:                                             ; preds = %3670
  %3673 = fpext float %3667 to double
  %3674 = fpext float %3664 to double
  %3675 = fcmp ogt double %3674, 0.000000e+00
  %3676 = select i1 %3675, double %3674, double 0.000000e+00
  %3677 = fcmp ogt double %3673, 0.000000e+00
  %3678 = select i1 %3677, double %3673, double 0.000000e+00
  %3679 = fcmp olt double %3676, %3678
  %3680 = fsub double %3673, %3674
  %3681 = fsub double %3678, %3676
  %3682 = fdiv double %3680, %3681
  %3683 = select i1 %3679, double %3682, double 1.000000e+00
  %3684 = fcmp ogt float %3660, 0.000000e+00
  %3685 = select i1 %3684, float %3660, float 0.000000e+00
  %3686 = fpext float %3685 to double
  %3687 = fmul double %3683, %3686
  %3688 = fptrunc double %3687 to float
  %3689 = fpext float %3688 to double
  %3690 = fsub double %3689, %3676
  %3691 = fmul double %3690, 6.553500e+04
  %3692 = fdiv double %3691, %3681
  %3693 = fadd double %3692, 0.000000e+00
  %3694 = fcmp oge double %3692, 0.000000e+00
  %.v16218 = select i1 %3694, double 5.000000e-01, double -5.000000e-01
  %3695 = fadd double %3693, %.v16218
  %3696 = fcmp ogt double %3695, 0.000000e+00
  br i1 %3696, label %3697, label %3719

3697:                                             ; preds = %3672
  %3698 = fcmp ugt double %3695, 6.553500e+04
  br i1 %3698, label %3699, label %3719

3699:                                             ; preds = %3697
  %3700 = fcmp olt double %3695, 6.553500e+04
  %.16927 = select i1 %3700, double %3695, double 6.553500e+04
  br label %3719

.thread17146:                                     ; preds = %3659, %3670
  %3701 = fcmp ult float %3660, 0.000000e+00
  %3702 = fpext float %3660 to double
  br i1 %3701, label %3711, label %3703

3703:                                             ; preds = %.thread17146
  %3704 = fadd double %3702, 5.000000e-01
  %3705 = fcmp ogt double %3704, 0.000000e+00
  br i1 %3705, label %3706, label %3719

3706:                                             ; preds = %3703
  %3707 = fcmp ugt double %3704, 6.553500e+04
  br i1 %3707, label %3708, label %3719

3708:                                             ; preds = %3706
  %3709 = fcmp olt double %3704, 6.553500e+04
  %3710 = select i1 %3709, double %3704, double 6.553500e+04
  br label %3719

3711:                                             ; preds = %.thread17146
  %3712 = fadd double %3702, -5.000000e-01
  %3713 = fcmp ogt double %3712, 0.000000e+00
  br i1 %3713, label %3714, label %3719

3714:                                             ; preds = %3711
  %3715 = fcmp ugt double %3712, 6.553500e+04
  br i1 %3715, label %3716, label %3719

3716:                                             ; preds = %3714
  %3717 = fcmp olt double %3712, 6.553500e+04
  %3718 = select i1 %3717, double %3712, double 6.553500e+04
  br label %3719

3719:                                             ; preds = %3708, %3716, %3706, %3703, %3714, %3711, %3697, %3699, %3672
  %storemerge16217.in = phi double [ %3695, %3697 ], [ %.16927, %3699 ], [ 0.000000e+00, %3672 ], [ %3710, %3708 ], [ %3718, %3716 ], [ %3704, %3706 ], [ 0.000000e+00, %3703 ], [ %3712, %3714 ], [ 0.000000e+00, %3711 ]
  %storemerge16217 = fptoui double %storemerge16217.in to i16
  store i16 %storemerge16217, ptr %0, align 2, !tbaa !13
  br label %4216

3720:                                             ; preds = %3239
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 500, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3721:                                             ; preds = %3239
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 500, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3722:                                             ; preds = %3239
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 500, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3723:                                             ; preds = %6
  %3724 = icmp ne ptr %0, null
  %3725 = icmp ne ptr %3, null
  %or.cond505 = and i1 %3724, %3725
  br i1 %or.cond505, label %3727, label %3726

3726:                                             ; preds = %3723
  tail call void @__assert_fail(ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.24, i32 noundef 503, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3727:                                             ; preds = %3723
  switch i32 %2, label %4216 [
    i32 6, label %3728
    i32 8, label %3776
    i32 10, label %3824
    i32 12, label %3872
    i32 15, label %3917
    i32 16, label %3963
    i32 17, label %4009
    i32 18, label %4055
    i32 0, label %4097
    i32 1, label %4152
    i32 3, label %4213
    i32 2, label %4214
    i32 4, label %4215
  ]

3728:                                             ; preds = %3727
  %3729 = load i64, ptr %3, align 8, !tbaa !5
  %.not16208 = icmp eq ptr %4, null
  br i1 %.not16208, label %.thread17149, label %3730

3730:                                             ; preds = %3728
  %.not16209 = icmp eq ptr %5, null
  br i1 %.not16209, label %3735, label %3731

3731:                                             ; preds = %3730
  %3732 = load i64, ptr %4, align 8, !tbaa !5
  %.not16210 = icmp sgt i64 %3732, %3729
  br i1 %.not16210, label %3735, label %3733

3733:                                             ; preds = %3731
  %3734 = load i64, ptr %5, align 8, !tbaa !5
  %.not16211 = icmp sgt i64 %3729, %3734
  br i1 %.not16211, label %3735, label %3736

3735:                                             ; preds = %3733, %3731, %3730
  tail call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.24, i32 noundef 503, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3736:                                             ; preds = %3733
  %3737 = sitofp i64 %3732 to double
  %3738 = sitofp i64 %3734 to double
  %3739 = fcmp olt double %3737, %3738
  br i1 %3739, label %3740, label %.thread17149

3740:                                             ; preds = %3736
  %3741 = fcmp ogt double %3737, 0.000000e+00
  %3742 = select i1 %3741, double %3737, double 0.000000e+00
  %3743 = fcmp ogt double %3738, 0.000000e+00
  %3744 = select i1 %3743, double %3738, double 0.000000e+00
  %3745 = fcmp olt double %3742, %3744
  %3746 = fsub double %3738, %3737
  %3747 = fsub double %3744, %3742
  %3748 = fdiv double %3746, %3747
  %3749 = select i1 %3745, double %3748, double 1.000000e+00
  %3750 = tail call i64 @llvm.smax.i64(i64 %3729, i64 0)
  %3751 = uitofp nneg i64 %3750 to double
  %3752 = fmul double %3749, %3751
  %3753 = fcmp oge double %3752, 0.000000e+00
  %.v16213 = select i1 %3753, double 5.000000e-01, double -5.000000e-01
  %3754 = fadd double %3752, %.v16213
  %3755 = fptosi double %3754 to i64
  %3756 = sitofp i64 %3755 to double
  %3757 = fsub double %3756, %3742
  %3758 = fmul double %3757, 2.550000e+02
  %3759 = fdiv double %3758, %3747
  %3760 = fadd double %3759, 0.000000e+00
  %3761 = fcmp oge double %3759, 0.000000e+00
  %.v16214 = select i1 %3761, double 5.000000e-01, double -5.000000e-01
  %3762 = fadd double %3760, %.v16214
  %3763 = fcmp ogt double %3762, 0.000000e+00
  br i1 %3763, label %3764, label %3775

3764:                                             ; preds = %3740
  %3765 = fcmp ugt double %3762, 2.550000e+02
  br i1 %3765, label %3766, label %3775

3766:                                             ; preds = %3764
  %3767 = fcmp olt double %3762, 2.550000e+02
  %.16928 = select i1 %3767, double %3762, double 2.550000e+02
  br label %3775

.thread17149:                                     ; preds = %3728, %3736
  %3768 = sitofp i64 %3729 to double
  %3769 = icmp sgt i64 %3729, 0
  br i1 %3769, label %3770, label %3775

3770:                                             ; preds = %.thread17149
  %3771 = icmp ult i64 %3729, 256
  br i1 %3771, label %3775, label %3772

3772:                                             ; preds = %3770
  %3773 = fcmp olt double %3768, 2.550000e+02
  %3774 = select i1 %3773, double %3768, double 2.550000e+02
  br label %3775

3775:                                             ; preds = %3772, %3770, %.thread17149, %3764, %3766, %3740
  %storemerge16212.in = phi double [ %3762, %3764 ], [ %.16928, %3766 ], [ 0.000000e+00, %3740 ], [ %3774, %3772 ], [ %3768, %3770 ], [ 0.000000e+00, %.thread17149 ]
  %storemerge16212 = fptoui double %storemerge16212.in to i8
  store i8 %storemerge16212, ptr %0, align 1, !tbaa !15
  br label %4216

3776:                                             ; preds = %3727
  %3777 = load i32, ptr %3, align 4, !tbaa !11
  %.not16201 = icmp eq ptr %4, null
  br i1 %.not16201, label %.thread17152, label %3778

3778:                                             ; preds = %3776
  %.not16202 = icmp eq ptr %5, null
  br i1 %.not16202, label %3783, label %3779

3779:                                             ; preds = %3778
  %3780 = load i32, ptr %4, align 4, !tbaa !11
  %.not16203 = icmp sgt i32 %3780, %3777
  br i1 %.not16203, label %3783, label %3781

3781:                                             ; preds = %3779
  %3782 = load i32, ptr %5, align 4, !tbaa !11
  %.not16204 = icmp sgt i32 %3777, %3782
  br i1 %.not16204, label %3783, label %3784

3783:                                             ; preds = %3781, %3779, %3778
  tail call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.24, i32 noundef 503, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3784:                                             ; preds = %3781
  %3785 = sitofp i32 %3780 to double
  %3786 = sitofp i32 %3782 to double
  %3787 = fcmp olt double %3785, %3786
  br i1 %3787, label %3788, label %.thread17152

3788:                                             ; preds = %3784
  %3789 = fcmp ogt double %3785, 0.000000e+00
  %3790 = select i1 %3789, double %3785, double 0.000000e+00
  %3791 = fcmp ogt double %3786, 0.000000e+00
  %3792 = select i1 %3791, double %3786, double 0.000000e+00
  %3793 = fcmp olt double %3790, %3792
  %3794 = fsub double %3786, %3785
  %3795 = fsub double %3792, %3790
  %3796 = fdiv double %3794, %3795
  %3797 = select i1 %3793, double %3796, double 1.000000e+00
  %3798 = tail call i32 @llvm.smax.i32(i32 %3777, i32 0)
  %3799 = uitofp nneg i32 %3798 to double
  %3800 = fmul double %3797, %3799
  %3801 = fcmp oge double %3800, 0.000000e+00
  %.v16206 = select i1 %3801, double 5.000000e-01, double -5.000000e-01
  %3802 = fadd double %3800, %.v16206
  %3803 = fptosi double %3802 to i32
  %3804 = sitofp i32 %3803 to double
  %3805 = fsub double %3804, %3790
  %3806 = fmul double %3805, 2.550000e+02
  %3807 = fdiv double %3806, %3795
  %3808 = fadd double %3807, 0.000000e+00
  %3809 = fcmp oge double %3807, 0.000000e+00
  %.v16207 = select i1 %3809, double 5.000000e-01, double -5.000000e-01
  %3810 = fadd double %3808, %.v16207
  %3811 = fcmp ogt double %3810, 0.000000e+00
  br i1 %3811, label %3812, label %3823

3812:                                             ; preds = %3788
  %3813 = fcmp ugt double %3810, 2.550000e+02
  br i1 %3813, label %3814, label %3823

3814:                                             ; preds = %3812
  %3815 = fcmp olt double %3810, 2.550000e+02
  %.16929 = select i1 %3815, double %3810, double 2.550000e+02
  br label %3823

.thread17152:                                     ; preds = %3776, %3784
  %3816 = sitofp i32 %3777 to double
  %3817 = icmp sgt i32 %3777, 0
  br i1 %3817, label %3818, label %3823

3818:                                             ; preds = %.thread17152
  %3819 = icmp ult i32 %3777, 256
  br i1 %3819, label %3823, label %3820

3820:                                             ; preds = %3818
  %3821 = fcmp olt double %3816, 2.550000e+02
  %3822 = select i1 %3821, double %3816, double 2.550000e+02
  br label %3823

3823:                                             ; preds = %3820, %3818, %.thread17152, %3812, %3814, %3788
  %storemerge16205.in = phi double [ %3810, %3812 ], [ %.16929, %3814 ], [ 0.000000e+00, %3788 ], [ %3822, %3820 ], [ %3816, %3818 ], [ 0.000000e+00, %.thread17152 ]
  %storemerge16205 = fptoui double %storemerge16205.in to i8
  store i8 %storemerge16205, ptr %0, align 1, !tbaa !15
  br label %4216

3824:                                             ; preds = %3727
  %3825 = load i16, ptr %3, align 2, !tbaa !13
  %.not16194 = icmp eq ptr %4, null
  br i1 %.not16194, label %.thread17155, label %3826

3826:                                             ; preds = %3824
  %.not16195 = icmp eq ptr %5, null
  br i1 %.not16195, label %3831, label %3827

3827:                                             ; preds = %3826
  %3828 = load i16, ptr %4, align 2, !tbaa !13
  %.not16196 = icmp sgt i16 %3828, %3825
  br i1 %.not16196, label %3831, label %3829

3829:                                             ; preds = %3827
  %3830 = load i16, ptr %5, align 2, !tbaa !13
  %.not16197 = icmp sgt i16 %3825, %3830
  br i1 %.not16197, label %3831, label %3832

3831:                                             ; preds = %3829, %3827, %3826
  tail call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.24, i32 noundef 503, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3832:                                             ; preds = %3829
  %3833 = sitofp i16 %3828 to double
  %3834 = sitofp i16 %3830 to double
  %3835 = fcmp olt double %3833, %3834
  br i1 %3835, label %3836, label %.thread17155

3836:                                             ; preds = %3832
  %3837 = fcmp ogt double %3833, 0.000000e+00
  %3838 = select i1 %3837, double %3833, double 0.000000e+00
  %3839 = fcmp ogt double %3834, 0.000000e+00
  %3840 = select i1 %3839, double %3834, double 0.000000e+00
  %3841 = fcmp olt double %3838, %3840
  %3842 = fsub double %3834, %3833
  %3843 = fsub double %3840, %3838
  %3844 = fdiv double %3842, %3843
  %3845 = select i1 %3841, double %3844, double 1.000000e+00
  %3846 = tail call i16 @llvm.smax.i16(i16 %3825, i16 0)
  %3847 = uitofp nneg i16 %3846 to double
  %3848 = fmul double %3845, %3847
  %3849 = fcmp oge double %3848, 0.000000e+00
  %.v16199 = select i1 %3849, double 5.000000e-01, double -5.000000e-01
  %3850 = fadd double %3848, %.v16199
  %3851 = fptosi double %3850 to i16
  %3852 = sitofp i16 %3851 to double
  %3853 = fsub double %3852, %3838
  %3854 = fmul double %3853, 2.550000e+02
  %3855 = fdiv double %3854, %3843
  %3856 = fadd double %3855, 0.000000e+00
  %3857 = fcmp oge double %3855, 0.000000e+00
  %.v16200 = select i1 %3857, double 5.000000e-01, double -5.000000e-01
  %3858 = fadd double %3856, %.v16200
  %3859 = fcmp ogt double %3858, 0.000000e+00
  br i1 %3859, label %3860, label %3871

3860:                                             ; preds = %3836
  %3861 = fcmp ugt double %3858, 2.550000e+02
  br i1 %3861, label %3862, label %3871

3862:                                             ; preds = %3860
  %3863 = fcmp olt double %3858, 2.550000e+02
  %.16930 = select i1 %3863, double %3858, double 2.550000e+02
  br label %3871

.thread17155:                                     ; preds = %3824, %3832
  %3864 = sitofp i16 %3825 to double
  %3865 = icmp sgt i16 %3825, 0
  br i1 %3865, label %3866, label %3871

3866:                                             ; preds = %.thread17155
  %3867 = icmp ult i16 %3825, 256
  br i1 %3867, label %3871, label %3868

3868:                                             ; preds = %3866
  %3869 = fcmp olt double %3864, 2.550000e+02
  %3870 = select i1 %3869, double %3864, double 2.550000e+02
  br label %3871

3871:                                             ; preds = %3868, %3866, %.thread17155, %3860, %3862, %3836
  %storemerge16198.in = phi double [ %3858, %3860 ], [ %.16930, %3862 ], [ 0.000000e+00, %3836 ], [ %3870, %3868 ], [ %3864, %3866 ], [ 0.000000e+00, %.thread17155 ]
  %storemerge16198 = fptoui double %storemerge16198.in to i8
  store i8 %storemerge16198, ptr %0, align 1, !tbaa !15
  br label %4216

3872:                                             ; preds = %3727
  %3873 = load i8, ptr %3, align 1, !tbaa !15
  %.not16187 = icmp eq ptr %4, null
  br i1 %.not16187, label %.thread17158, label %3874

3874:                                             ; preds = %3872
  %.not16188 = icmp eq ptr %5, null
  br i1 %.not16188, label %3879, label %3875

3875:                                             ; preds = %3874
  %3876 = load i8, ptr %4, align 1, !tbaa !15
  %.not16189 = icmp sgt i8 %3876, %3873
  br i1 %.not16189, label %3879, label %3877

3877:                                             ; preds = %3875
  %3878 = load i8, ptr %5, align 1, !tbaa !15
  %.not16190 = icmp sgt i8 %3873, %3878
  br i1 %.not16190, label %3879, label %3880

3879:                                             ; preds = %3877, %3875, %3874
  tail call void @__assert_fail(ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.24, i32 noundef 503, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3880:                                             ; preds = %3877
  %3881 = sitofp i8 %3876 to double
  %3882 = sitofp i8 %3878 to double
  %3883 = fcmp olt double %3881, %3882
  br i1 %3883, label %3884, label %.thread17158

3884:                                             ; preds = %3880
  %3885 = fcmp ogt double %3881, 0.000000e+00
  %3886 = select i1 %3885, double %3881, double 0.000000e+00
  %3887 = fcmp ogt double %3882, 0.000000e+00
  %3888 = select i1 %3887, double %3882, double 0.000000e+00
  %3889 = fcmp olt double %3886, %3888
  %3890 = fsub double %3882, %3881
  %3891 = fsub double %3888, %3886
  %3892 = fdiv double %3890, %3891
  %3893 = select i1 %3889, double %3892, double 1.000000e+00
  %3894 = tail call i8 @llvm.smax.i8(i8 %3873, i8 0)
  %3895 = uitofp nneg i8 %3894 to double
  %3896 = fmul double %3893, %3895
  %3897 = fcmp oge double %3896, 0.000000e+00
  %.v16192 = select i1 %3897, double 5.000000e-01, double -5.000000e-01
  %3898 = fadd double %3896, %.v16192
  %3899 = fptosi double %3898 to i8
  %3900 = sitofp i8 %3899 to double
  %3901 = fsub double %3900, %3886
  %3902 = fmul double %3901, 2.550000e+02
  %3903 = fdiv double %3902, %3891
  %3904 = fadd double %3903, 0.000000e+00
  %3905 = fcmp oge double %3903, 0.000000e+00
  %.v16193 = select i1 %3905, double 5.000000e-01, double -5.000000e-01
  %3906 = fadd double %3904, %.v16193
  %3907 = fcmp ogt double %3906, 0.000000e+00
  br i1 %3907, label %3908, label %3912

3908:                                             ; preds = %3884
  %3909 = fcmp ugt double %3906, 2.550000e+02
  br i1 %3909, label %3910, label %3912

3910:                                             ; preds = %3908
  %3911 = fcmp olt double %3906, 2.550000e+02
  %.16931 = select i1 %3911, double %3906, double 2.550000e+02
  br label %3912

3912:                                             ; preds = %3884, %3910, %3908
  %3913 = phi double [ %3906, %3908 ], [ %.16931, %3910 ], [ 0.000000e+00, %3884 ]
  %3914 = fptoui double %3913 to i8
  br label %3916

.thread17158:                                     ; preds = %3872, %3880
  %3915 = tail call i8 @llvm.smax.i8(i8 %3873, i8 0)
  br label %3916

3916:                                             ; preds = %.thread17158, %3912
  %storemerge16191 = phi i8 [ %3915, %.thread17158 ], [ %3914, %3912 ]
  store i8 %storemerge16191, ptr %0, align 1, !tbaa !15
  br label %4216

3917:                                             ; preds = %3727
  %3918 = load i64, ptr %3, align 8, !tbaa !5
  %.not16178 = icmp eq ptr %4, null
  br i1 %.not16178, label %.thread17161, label %3919

3919:                                             ; preds = %3917
  %.not16179 = icmp eq ptr %5, null
  br i1 %.not16179, label %3924, label %3920

3920:                                             ; preds = %3919
  %3921 = load i64, ptr %4, align 8, !tbaa !5
  %.not16180 = icmp ugt i64 %3921, %3918
  br i1 %.not16180, label %3924, label %3922

3922:                                             ; preds = %3920
  %3923 = load i64, ptr %5, align 8, !tbaa !5
  %.not16181 = icmp ugt i64 %3918, %3923
  br i1 %.not16181, label %3924, label %3925

3924:                                             ; preds = %3922, %3920, %3919
  tail call void @__assert_fail(ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.24, i32 noundef 503, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3925:                                             ; preds = %3922
  %3926 = uitofp i64 %3921 to double
  %3927 = uitofp i64 %3923 to double
  %3928 = fcmp olt double %3926, %3927
  br i1 %3928, label %3929, label %.thread17161

3929:                                             ; preds = %3925
  %3930 = fcmp ogt double %3926, 0.000000e+00
  %3931 = select i1 %3930, double %3926, double 0.000000e+00
  %3932 = fcmp ogt double %3927, 0.000000e+00
  %3933 = select i1 %3932, double %3927, double 0.000000e+00
  %3934 = fcmp olt double %3931, %3933
  %3935 = fsub double %3927, %3926
  %3936 = fsub double %3933, %3931
  %3937 = fdiv double %3935, %3936
  %3938 = select i1 %3934, double %3937, double 1.000000e+00
  %3939 = uitofp i64 %3918 to double
  %3940 = fmul double %3938, %3939
  %3941 = fcmp oge double %3940, 0.000000e+00
  %.v16185 = select i1 %3941, double 5.000000e-01, double -5.000000e-01
  %3942 = fadd double %3940, %.v16185
  %3943 = fptoui double %3942 to i64
  %3944 = uitofp i64 %3943 to double
  %3945 = fsub double %3944, %3931
  %3946 = fmul double %3945, 2.550000e+02
  %3947 = fdiv double %3946, %3936
  %3948 = fadd double %3947, 0.000000e+00
  %3949 = fcmp oge double %3947, 0.000000e+00
  %.v16186 = select i1 %3949, double 5.000000e-01, double -5.000000e-01
  %3950 = fadd double %3948, %.v16186
  %3951 = fcmp ogt double %3950, 0.000000e+00
  br i1 %3951, label %3952, label %3962

3952:                                             ; preds = %3929
  %3953 = fcmp ugt double %3950, 2.550000e+02
  br i1 %3953, label %3954, label %3962

3954:                                             ; preds = %3952
  %3955 = fcmp olt double %3950, 2.550000e+02
  %.16932 = select i1 %3955, double %3950, double 2.550000e+02
  br label %3962

.thread17161:                                     ; preds = %3917, %3925
  %3956 = uitofp i64 %3918 to double
  %.not16182 = icmp eq i64 %3918, 0
  br i1 %.not16182, label %3962, label %3957

3957:                                             ; preds = %.thread17161
  %3958 = icmp ult i64 %3918, 256
  br i1 %3958, label %3962, label %3959

3959:                                             ; preds = %3957
  %3960 = fcmp olt double %3956, 2.550000e+02
  %3961 = select i1 %3960, double %3956, double 2.550000e+02
  br label %3962

3962:                                             ; preds = %3959, %3957, %.thread17161, %3952, %3954, %3929
  %storemerge16183.in = phi double [ %3950, %3952 ], [ %.16932, %3954 ], [ 0.000000e+00, %3929 ], [ %3961, %3959 ], [ %3956, %3957 ], [ 0.000000e+00, %.thread17161 ]
  %storemerge16183 = fptoui double %storemerge16183.in to i8
  store i8 %storemerge16183, ptr %0, align 1, !tbaa !15
  br label %4216

3963:                                             ; preds = %3727
  %3964 = load i32, ptr %3, align 4, !tbaa !11
  %.not16169 = icmp eq ptr %4, null
  br i1 %.not16169, label %.thread17164, label %3965

3965:                                             ; preds = %3963
  %.not16170 = icmp eq ptr %5, null
  br i1 %.not16170, label %3970, label %3966

3966:                                             ; preds = %3965
  %3967 = load i32, ptr %4, align 4, !tbaa !11
  %.not16171 = icmp ugt i32 %3967, %3964
  br i1 %.not16171, label %3970, label %3968

3968:                                             ; preds = %3966
  %3969 = load i32, ptr %5, align 4, !tbaa !11
  %.not16172 = icmp ugt i32 %3964, %3969
  br i1 %.not16172, label %3970, label %3971

3970:                                             ; preds = %3968, %3966, %3965
  tail call void @__assert_fail(ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.24, i32 noundef 503, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

3971:                                             ; preds = %3968
  %3972 = uitofp i32 %3967 to double
  %3973 = uitofp i32 %3969 to double
  %3974 = fcmp olt double %3972, %3973
  br i1 %3974, label %3975, label %.thread17164

3975:                                             ; preds = %3971
  %3976 = fcmp ogt double %3972, 0.000000e+00
  %3977 = select i1 %3976, double %3972, double 0.000000e+00
  %3978 = fcmp ogt double %3973, 0.000000e+00
  %3979 = select i1 %3978, double %3973, double 0.000000e+00
  %3980 = fcmp olt double %3977, %3979
  %3981 = fsub double %3973, %3972
  %3982 = fsub double %3979, %3977
  %3983 = fdiv double %3981, %3982
  %3984 = select i1 %3980, double %3983, double 1.000000e+00
  %3985 = uitofp i32 %3964 to double
  %3986 = fmul double %3984, %3985
  %3987 = fcmp oge double %3986, 0.000000e+00
  %.v16176 = select i1 %3987, double 5.000000e-01, double -5.000000e-01
  %3988 = fadd double %3986, %.v16176
  %3989 = fptoui double %3988 to i32
  %3990 = uitofp i32 %3989 to double
  %3991 = fsub double %3990, %3977
  %3992 = fmul double %3991, 2.550000e+02
  %3993 = fdiv double %3992, %3982
  %3994 = fadd double %3993, 0.000000e+00
  %3995 = fcmp oge double %3993, 0.000000e+00
  %.v16177 = select i1 %3995, double 5.000000e-01, double -5.000000e-01
  %3996 = fadd double %3994, %.v16177
  %3997 = fcmp ogt double %3996, 0.000000e+00
  br i1 %3997, label %3998, label %4008

3998:                                             ; preds = %3975
  %3999 = fcmp ugt double %3996, 2.550000e+02
  br i1 %3999, label %4000, label %4008

4000:                                             ; preds = %3998
  %4001 = fcmp olt double %3996, 2.550000e+02
  %.16933 = select i1 %4001, double %3996, double 2.550000e+02
  br label %4008

.thread17164:                                     ; preds = %3963, %3971
  %4002 = uitofp i32 %3964 to double
  %.not16173 = icmp eq i32 %3964, 0
  br i1 %.not16173, label %4008, label %4003

4003:                                             ; preds = %.thread17164
  %4004 = icmp ult i32 %3964, 256
  br i1 %4004, label %4008, label %4005

4005:                                             ; preds = %4003
  %4006 = fcmp olt double %4002, 2.550000e+02
  %4007 = select i1 %4006, double %4002, double 2.550000e+02
  br label %4008

4008:                                             ; preds = %4005, %4003, %.thread17164, %3998, %4000, %3975
  %storemerge16174.in = phi double [ %3996, %3998 ], [ %.16933, %4000 ], [ 0.000000e+00, %3975 ], [ %4007, %4005 ], [ %4002, %4003 ], [ 0.000000e+00, %.thread17164 ]
  %storemerge16174 = fptoui double %storemerge16174.in to i8
  store i8 %storemerge16174, ptr %0, align 1, !tbaa !15
  br label %4216

4009:                                             ; preds = %3727
  %4010 = load i16, ptr %3, align 2, !tbaa !13
  %.not16160 = icmp eq ptr %4, null
  br i1 %.not16160, label %.thread17167, label %4011

4011:                                             ; preds = %4009
  %.not16161 = icmp eq ptr %5, null
  br i1 %.not16161, label %4016, label %4012

4012:                                             ; preds = %4011
  %4013 = load i16, ptr %4, align 2, !tbaa !13
  %.not16162 = icmp ugt i16 %4013, %4010
  br i1 %.not16162, label %4016, label %4014

4014:                                             ; preds = %4012
  %4015 = load i16, ptr %5, align 2, !tbaa !13
  %.not16163 = icmp ugt i16 %4010, %4015
  br i1 %.not16163, label %4016, label %4017

4016:                                             ; preds = %4014, %4012, %4011
  tail call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.24, i32 noundef 503, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

4017:                                             ; preds = %4014
  %4018 = uitofp i16 %4013 to double
  %4019 = uitofp i16 %4015 to double
  %4020 = fcmp olt double %4018, %4019
  br i1 %4020, label %4021, label %.thread17167

4021:                                             ; preds = %4017
  %4022 = fcmp ogt double %4018, 0.000000e+00
  %4023 = select i1 %4022, double %4018, double 0.000000e+00
  %4024 = fcmp ogt double %4019, 0.000000e+00
  %4025 = select i1 %4024, double %4019, double 0.000000e+00
  %4026 = fcmp olt double %4023, %4025
  %4027 = fsub double %4019, %4018
  %4028 = fsub double %4025, %4023
  %4029 = fdiv double %4027, %4028
  %4030 = select i1 %4026, double %4029, double 1.000000e+00
  %4031 = uitofp i16 %4010 to double
  %4032 = fmul double %4030, %4031
  %4033 = fcmp oge double %4032, 0.000000e+00
  %.v16167 = select i1 %4033, double 5.000000e-01, double -5.000000e-01
  %4034 = fadd double %4032, %.v16167
  %4035 = fptoui double %4034 to i16
  %4036 = uitofp i16 %4035 to double
  %4037 = fsub double %4036, %4023
  %4038 = fmul double %4037, 2.550000e+02
  %4039 = fdiv double %4038, %4028
  %4040 = fadd double %4039, 0.000000e+00
  %4041 = fcmp oge double %4039, 0.000000e+00
  %.v16168 = select i1 %4041, double 5.000000e-01, double -5.000000e-01
  %4042 = fadd double %4040, %.v16168
  %4043 = fcmp ogt double %4042, 0.000000e+00
  br i1 %4043, label %4044, label %4054

4044:                                             ; preds = %4021
  %4045 = fcmp ugt double %4042, 2.550000e+02
  br i1 %4045, label %4046, label %4054

4046:                                             ; preds = %4044
  %4047 = fcmp olt double %4042, 2.550000e+02
  %.16934 = select i1 %4047, double %4042, double 2.550000e+02
  br label %4054

.thread17167:                                     ; preds = %4009, %4017
  %4048 = uitofp i16 %4010 to double
  %.not16164 = icmp eq i16 %4010, 0
  br i1 %.not16164, label %4054, label %4049

4049:                                             ; preds = %.thread17167
  %4050 = icmp ult i16 %4010, 256
  br i1 %4050, label %4054, label %4051

4051:                                             ; preds = %4049
  %4052 = fcmp olt double %4048, 2.550000e+02
  %4053 = select i1 %4052, double %4048, double 2.550000e+02
  br label %4054

4054:                                             ; preds = %4051, %4049, %.thread17167, %4044, %4046, %4021
  %storemerge16165.in = phi double [ %4042, %4044 ], [ %.16934, %4046 ], [ 0.000000e+00, %4021 ], [ %4053, %4051 ], [ %4048, %4049 ], [ 0.000000e+00, %.thread17167 ]
  %storemerge16165 = fptoui double %storemerge16165.in to i8
  store i8 %storemerge16165, ptr %0, align 1, !tbaa !15
  br label %4216

4055:                                             ; preds = %3727
  %4056 = load i8, ptr %3, align 1, !tbaa !15
  %.not16151 = icmp eq ptr %4, null
  br i1 %.not16151, label %.thread17170, label %4057

4057:                                             ; preds = %4055
  %.not16152 = icmp eq ptr %5, null
  br i1 %.not16152, label %4062, label %4058

4058:                                             ; preds = %4057
  %4059 = load i8, ptr %4, align 1, !tbaa !15
  %.not16153 = icmp ugt i8 %4059, %4056
  br i1 %.not16153, label %4062, label %4060

4060:                                             ; preds = %4058
  %4061 = load i8, ptr %5, align 1, !tbaa !15
  %.not16154 = icmp ugt i8 %4056, %4061
  br i1 %.not16154, label %4062, label %4063

4062:                                             ; preds = %4060, %4058, %4057
  tail call void @__assert_fail(ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.24, i32 noundef 503, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

4063:                                             ; preds = %4060
  %4064 = uitofp i8 %4059 to double
  %4065 = uitofp i8 %4061 to double
  %4066 = fcmp olt double %4064, %4065
  br i1 %4066, label %4067, label %.thread17170

4067:                                             ; preds = %4063
  %4068 = fcmp ogt double %4064, 0.000000e+00
  %4069 = select i1 %4068, double %4064, double 0.000000e+00
  %4070 = fcmp ogt double %4065, 0.000000e+00
  %4071 = select i1 %4070, double %4065, double 0.000000e+00
  %4072 = fcmp olt double %4069, %4071
  %4073 = fsub double %4065, %4064
  %4074 = fsub double %4071, %4069
  %4075 = fdiv double %4073, %4074
  %4076 = select i1 %4072, double %4075, double 1.000000e+00
  %4077 = uitofp i8 %4056 to double
  %4078 = fmul double %4076, %4077
  %4079 = fcmp oge double %4078, 0.000000e+00
  %.v16158 = select i1 %4079, double 5.000000e-01, double -5.000000e-01
  %4080 = fadd double %4078, %.v16158
  %4081 = fptoui double %4080 to i8
  %4082 = uitofp i8 %4081 to double
  %4083 = fsub double %4082, %4069
  %4084 = fmul double %4083, 2.550000e+02
  %4085 = fdiv double %4084, %4074
  %4086 = fadd double %4085, 0.000000e+00
  %4087 = fcmp oge double %4085, 0.000000e+00
  %.v16159 = select i1 %4087, double 5.000000e-01, double -5.000000e-01
  %4088 = fadd double %4086, %.v16159
  %4089 = fcmp ogt double %4088, 0.000000e+00
  br i1 %4089, label %4090, label %4094

4090:                                             ; preds = %4067
  %4091 = fcmp ugt double %4088, 2.550000e+02
  br i1 %4091, label %4092, label %4094

4092:                                             ; preds = %4090
  %4093 = fcmp olt double %4088, 2.550000e+02
  %.16935 = select i1 %4093, double %4088, double 2.550000e+02
  br label %4094

4094:                                             ; preds = %4067, %4092, %4090
  %4095 = phi double [ %4088, %4090 ], [ %.16935, %4092 ], [ 0.000000e+00, %4067 ]
  %4096 = fptoui double %4095 to i8
  br label %.thread17170

.thread17170:                                     ; preds = %4063, %4055, %4094
  %storemerge16156 = phi i8 [ %4096, %4094 ], [ %4056, %4055 ], [ %4056, %4063 ]
  store i8 %storemerge16156, ptr %0, align 1, !tbaa !15
  br label %4216

4097:                                             ; preds = %3727
  %4098 = load double, ptr %3, align 8, !tbaa !9
  %.not16147 = icmp ne ptr %4, null
  %4099 = fcmp ord double %4098, 0.000000e+00
  %or.cond16936 = select i1 %.not16147, i1 %4099, i1 false
  br i1 %or.cond16936, label %4100, label %.thread17173

4100:                                             ; preds = %4097
  %.not16148 = icmp eq ptr %5, null
  br i1 %.not16148, label %4107, label %4101

4101:                                             ; preds = %4100
  %4102 = load double, ptr %4, align 8, !tbaa !9
  %4103 = fcmp ugt double %4102, %4098
  br i1 %4103, label %4107, label %4104

4104:                                             ; preds = %4101
  %4105 = load double, ptr %5, align 8, !tbaa !9
  %4106 = fcmp ugt double %4098, %4105
  br i1 %4106, label %4107, label %4108

4107:                                             ; preds = %4104, %4101, %4100
  tail call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.24, i32 noundef 503, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

4108:                                             ; preds = %4104
  %4109 = fcmp olt double %4102, %4105
  br i1 %4109, label %4110, label %.thread17173

4110:                                             ; preds = %4108
  %4111 = fcmp ogt double %4102, 0.000000e+00
  %4112 = select i1 %4111, double %4102, double 0.000000e+00
  %4113 = fcmp ogt double %4105, 0.000000e+00
  %4114 = select i1 %4113, double %4105, double 0.000000e+00
  %4115 = fcmp olt double %4112, %4114
  %4116 = fsub double %4105, %4102
  %4117 = fsub double %4114, %4112
  %4118 = fdiv double %4116, %4117
  %4119 = select i1 %4115, double %4118, double 1.000000e+00
  %4120 = fcmp ogt double %4098, 0.000000e+00
  %4121 = select i1 %4120, double %4098, double 0.000000e+00
  %4122 = fmul double %4121, %4119
  %4123 = fsub double %4122, %4112
  %4124 = fmul double %4123, 2.550000e+02
  %4125 = fdiv double %4124, %4117
  %4126 = fadd double %4125, 0.000000e+00
  %4127 = fcmp oge double %4125, 0.000000e+00
  %.v16150 = select i1 %4127, double 5.000000e-01, double -5.000000e-01
  %4128 = fadd double %4126, %.v16150
  %4129 = fcmp ogt double %4128, 0.000000e+00
  br i1 %4129, label %4130, label %4151

4130:                                             ; preds = %4110
  %4131 = fcmp ugt double %4128, 2.550000e+02
  br i1 %4131, label %4132, label %4151

4132:                                             ; preds = %4130
  %4133 = fcmp olt double %4128, 2.550000e+02
  %.16937 = select i1 %4133, double %4128, double 2.550000e+02
  br label %4151

.thread17173:                                     ; preds = %4097, %4108
  %4134 = fcmp ult double %4098, 0.000000e+00
  br i1 %4134, label %4143, label %4135

4135:                                             ; preds = %.thread17173
  %4136 = fadd double %4098, 5.000000e-01
  %4137 = fcmp ogt double %4136, 0.000000e+00
  br i1 %4137, label %4138, label %4151

4138:                                             ; preds = %4135
  %4139 = fcmp ugt double %4136, 2.550000e+02
  br i1 %4139, label %4140, label %4151

4140:                                             ; preds = %4138
  %4141 = fcmp olt double %4136, 2.550000e+02
  %4142 = select i1 %4141, double %4136, double 2.550000e+02
  br label %4151

4143:                                             ; preds = %.thread17173
  %4144 = fadd double %4098, -5.000000e-01
  %4145 = fcmp ogt double %4144, 0.000000e+00
  br i1 %4145, label %4146, label %4151

4146:                                             ; preds = %4143
  %4147 = fcmp ugt double %4144, 2.550000e+02
  br i1 %4147, label %4148, label %4151

4148:                                             ; preds = %4146
  %4149 = fcmp olt double %4144, 2.550000e+02
  %4150 = select i1 %4149, double %4144, double 2.550000e+02
  br label %4151

4151:                                             ; preds = %4140, %4148, %4138, %4135, %4146, %4143, %4130, %4132, %4110
  %storemerge16149.in = phi double [ %4128, %4130 ], [ %.16937, %4132 ], [ 0.000000e+00, %4110 ], [ %4142, %4140 ], [ %4150, %4148 ], [ %4136, %4138 ], [ 0.000000e+00, %4135 ], [ %4144, %4146 ], [ 0.000000e+00, %4143 ]
  %storemerge16149 = fptoui double %storemerge16149.in to i8
  store i8 %storemerge16149, ptr %0, align 1, !tbaa !15
  br label %4216

4152:                                             ; preds = %3727
  %4153 = load float, ptr %3, align 4, !tbaa !16
  %.not = icmp ne ptr %4, null
  %4154 = fcmp ord float %4153, 0.000000e+00
  %or.cond16938 = select i1 %.not, i1 %4154, i1 false
  br i1 %or.cond16938, label %4155, label %.thread17176

4155:                                             ; preds = %4152
  %.not16146 = icmp eq ptr %5, null
  br i1 %.not16146, label %4162, label %4156

4156:                                             ; preds = %4155
  %4157 = load float, ptr %4, align 4, !tbaa !16
  %4158 = fcmp ugt float %4157, %4153
  br i1 %4158, label %4162, label %4159

4159:                                             ; preds = %4156
  %4160 = load float, ptr %5, align 4, !tbaa !16
  %4161 = fcmp ugt float %4153, %4160
  br i1 %4161, label %4162, label %4163

4162:                                             ; preds = %4159, %4156, %4155
  tail call void @__assert_fail(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.24, i32 noundef 503, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

4163:                                             ; preds = %4159
  %4164 = fcmp olt float %4157, %4160
  br i1 %4164, label %4165, label %.thread17176

4165:                                             ; preds = %4163
  %4166 = fpext float %4160 to double
  %4167 = fpext float %4157 to double
  %4168 = fcmp ogt double %4167, 0.000000e+00
  %4169 = select i1 %4168, double %4167, double 0.000000e+00
  %4170 = fcmp ogt double %4166, 0.000000e+00
  %4171 = select i1 %4170, double %4166, double 0.000000e+00
  %4172 = fcmp olt double %4169, %4171
  %4173 = fsub double %4166, %4167
  %4174 = fsub double %4171, %4169
  %4175 = fdiv double %4173, %4174
  %4176 = select i1 %4172, double %4175, double 1.000000e+00
  %4177 = fcmp ogt float %4153, 0.000000e+00
  %4178 = select i1 %4177, float %4153, float 0.000000e+00
  %4179 = fpext float %4178 to double
  %4180 = fmul double %4176, %4179
  %4181 = fptrunc double %4180 to float
  %4182 = fpext float %4181 to double
  %4183 = fsub double %4182, %4169
  %4184 = fmul double %4183, 2.550000e+02
  %4185 = fdiv double %4184, %4174
  %4186 = fadd double %4185, 0.000000e+00
  %4187 = fcmp oge double %4185, 0.000000e+00
  %.v = select i1 %4187, double 5.000000e-01, double -5.000000e-01
  %4188 = fadd double %4186, %.v
  %4189 = fcmp ogt double %4188, 0.000000e+00
  br i1 %4189, label %4190, label %4212

4190:                                             ; preds = %4165
  %4191 = fcmp ugt double %4188, 2.550000e+02
  br i1 %4191, label %4192, label %4212

4192:                                             ; preds = %4190
  %4193 = fcmp olt double %4188, 2.550000e+02
  %.16939 = select i1 %4193, double %4188, double 2.550000e+02
  br label %4212

.thread17176:                                     ; preds = %4152, %4163
  %4194 = fcmp ult float %4153, 0.000000e+00
  %4195 = fpext float %4153 to double
  br i1 %4194, label %4204, label %4196

4196:                                             ; preds = %.thread17176
  %4197 = fadd double %4195, 5.000000e-01
  %4198 = fcmp ogt double %4197, 0.000000e+00
  br i1 %4198, label %4199, label %4212

4199:                                             ; preds = %4196
  %4200 = fcmp ugt double %4197, 2.550000e+02
  br i1 %4200, label %4201, label %4212

4201:                                             ; preds = %4199
  %4202 = fcmp olt double %4197, 2.550000e+02
  %4203 = select i1 %4202, double %4197, double 2.550000e+02
  br label %4212

4204:                                             ; preds = %.thread17176
  %4205 = fadd double %4195, -5.000000e-01
  %4206 = fcmp ogt double %4205, 0.000000e+00
  br i1 %4206, label %4207, label %4212

4207:                                             ; preds = %4204
  %4208 = fcmp ugt double %4205, 2.550000e+02
  br i1 %4208, label %4209, label %4212

4209:                                             ; preds = %4207
  %4210 = fcmp olt double %4205, 2.550000e+02
  %4211 = select i1 %4210, double %4205, double 2.550000e+02
  br label %4212

4212:                                             ; preds = %4201, %4209, %4199, %4196, %4207, %4204, %4190, %4192, %4165
  %storemerge.in = phi double [ %4188, %4190 ], [ %.16939, %4192 ], [ 0.000000e+00, %4165 ], [ %4203, %4201 ], [ %4211, %4209 ], [ %4197, %4199 ], [ 0.000000e+00, %4196 ], [ %4205, %4207 ], [ 0.000000e+00, %4204 ]
  %storemerge = fptoui double %storemerge.in to i8
  store i8 %storemerge, ptr %0, align 1, !tbaa !15
  br label %4216

4213:                                             ; preds = %3727
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 503, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

4214:                                             ; preds = %3727
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 503, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

4215:                                             ; preds = %3727
  tail call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.24, i32 noundef 503, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_mhd_element_conversion) #3
  unreachable

4216:                                             ; preds = %6, %3727, %3239, %2756, %2271, %1840, %1419, %1008, %600, %483, %366, %249, %130, %11, %3775, %3823, %3871, %3916, %3962, %4008, %4054, %.thread17170, %4151, %4212, %3287, %3335, %3380, %3425, %3471, %3517, %.thread17137, %3603, %3658, %3719, %2804, %2849, %2894, %2939, %2985, %.thread17104, %3071, %3115, %3170, %3231, %2319, %2364, %2409, %2454, %2500, %2544, %2588, %2632, %2687, %2748, %1887, %1934, %1981, %.thread17038, %2053, %2083, %2113, %2145, %2202, %2263, %1466, %1513, %.thread17005, %1591, %1621, %1651, %1683, %1714, %1771, %1832, %1055, %.thread16972, %1133, %1169, %1199, %1231, %1262, %1293, %1350, %1411, %647, %683, %719, %755, %789, %820, %851, %882, %939, %1000, %492, %502, %512, %522, %531, %541, %551, %561, %573, %588, %375, %385, %395, %404, %414, %424, %434, %443, %456, %471, %258, %268, %278, %287, %297, %307, %317, %326, %339, %354, %139, %149, %159, %169, %179, %189, %199, %209, %222, %238, %20, %30, %40, %50, %60, %70, %80, %90, %103, %118
  %.0 = phi i32 [ 0, %4212 ], [ 0, %4151 ], [ 0, %.thread17170 ], [ 0, %4054 ], [ 0, %4008 ], [ 0, %3962 ], [ 0, %3916 ], [ 0, %3871 ], [ 0, %3823 ], [ 0, %3775 ], [ 0, %3719 ], [ 0, %3658 ], [ 0, %3603 ], [ 0, %.thread17137 ], [ 0, %3517 ], [ 0, %3471 ], [ 0, %3425 ], [ 0, %3380 ], [ 0, %3335 ], [ 0, %3287 ], [ 0, %3231 ], [ 0, %3170 ], [ 0, %3115 ], [ 0, %3071 ], [ 0, %.thread17104 ], [ 0, %2985 ], [ 0, %2939 ], [ 0, %2894 ], [ 0, %2849 ], [ 0, %2804 ], [ 0, %2748 ], [ 0, %2687 ], [ 0, %2632 ], [ 0, %2588 ], [ 0, %2544 ], [ 0, %2500 ], [ 0, %2454 ], [ 0, %2409 ], [ 0, %2364 ], [ 0, %2319 ], [ 0, %2263 ], [ 0, %2202 ], [ 0, %2145 ], [ 0, %2113 ], [ 0, %2083 ], [ 0, %2053 ], [ 0, %.thread17038 ], [ 0, %1981 ], [ 0, %1934 ], [ 0, %1887 ], [ 0, %1832 ], [ 0, %1771 ], [ 0, %1714 ], [ 0, %1683 ], [ 0, %1651 ], [ 0, %1621 ], [ 0, %1591 ], [ 0, %.thread17005 ], [ 0, %1513 ], [ 0, %1466 ], [ 0, %1411 ], [ 0, %1350 ], [ 0, %1293 ], [ 0, %1262 ], [ 0, %1231 ], [ 0, %1199 ], [ 0, %1169 ], [ 0, %1133 ], [ 0, %.thread16972 ], [ 0, %1055 ], [ 0, %1000 ], [ 0, %939 ], [ 0, %882 ], [ 0, %851 ], [ 0, %820 ], [ 0, %789 ], [ 0, %755 ], [ 0, %719 ], [ 0, %683 ], [ 0, %647 ], [ 0, %588 ], [ 0, %573 ], [ 0, %561 ], [ 0, %551 ], [ 0, %541 ], [ 0, %531 ], [ 0, %522 ], [ 0, %512 ], [ 0, %502 ], [ 0, %492 ], [ 0, %471 ], [ 0, %456 ], [ 0, %443 ], [ 0, %434 ], [ 0, %424 ], [ 0, %414 ], [ 0, %404 ], [ 0, %395 ], [ 0, %385 ], [ 0, %375 ], [ 0, %354 ], [ 0, %339 ], [ 0, %326 ], [ 0, %317 ], [ 0, %307 ], [ 0, %297 ], [ 0, %287 ], [ 0, %278 ], [ 0, %268 ], [ 0, %258 ], [ 0, %238 ], [ 0, %222 ], [ 0, %209 ], [ 0, %199 ], [ 0, %189 ], [ 0, %179 ], [ 0, %169 ], [ 0, %159 ], [ 0, %149 ], [ 0, %139 ], [ 0, %118 ], [ 0, %103 ], [ 0, %90 ], [ 0, %80 ], [ 0, %70 ], [ 0, %60 ], [ 0, %50 ], [ 0, %40 ], [ 0, %30 ], [ 0, %20 ], [ 1, %11 ], [ 1, %130 ], [ 1, %249 ], [ 1, %366 ], [ 1, %483 ], [ 1, %600 ], [ 1, %1008 ], [ 1, %1419 ], [ 1, %1840 ], [ 1, %2271 ], [ 1, %2756 ], [ 1, %3239 ], [ 1, %3727 ], [ 1, %6 ]
  ret i32 %.0
}

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i8 @llvm.smax.i8(i8, i8) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i16 @llvm.smax.i16(i16, i16) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smax.i64(i64, i64) #2

attributes #0 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"short", !7, i64 0}
!15 = !{!7, !7, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"float", !7, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass