Skip to content

Instantly share code, notes, and snippets.

@nikic

nikic/test.ll Secret

Created September 20, 2023 06:43
Show Gist options
  • Save nikic/197fd03880311129fb4bd75ef7e94d62 to your computer and use it in GitHub Desktop.
Save nikic/197fd03880311129fb4bd75ef7e94d62 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
; ModuleID = '<stdin>'
source_filename = "ravif.93fe5ed2d8241d2f-cgu.13"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
@0 = private unnamed_addr constant <{}> zeroinitializer, align 8
@1 = private unnamed_addr constant <{ [12 x i8] }> <{ [12 x i8] c"invalid args" }>, align 1
@2 = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @1, [8 x i8] c"\0C\00\00\00\00\00\00\00" }>, align 8
@3 = private unnamed_addr constant <{ [75 x i8] }> <{ [75 x i8] c"/rustc/ef85656a10657ba5e4f7fe2931a4ca6293138d51/library/core/src/fmt/mod.rs" }>, align 1
@4 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @3, [16 x i8] c"K\00\00\00\00\00\00\00+\01\00\00\0D\00\00\00" }>, align 8
@5 = private unnamed_addr constant <{ [75 x i8] }> <{ [75 x i8] c"/rustc/ef85656a10657ba5e4f7fe2931a4ca6293138d51/library/core/src/num/mod.rs" }>, align 1
@6 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @5, [16 x i8] c"K\00\00\00\00\00\00\00\F3\04\00\00\05\00\00\00" }>, align 8
@str.0 = internal constant [25 x i8] c"attempt to divide by zero"
@str.1 = internal constant [57 x i8] c"attempt to calculate the remainder with a divisor of zero"
@7 = private unnamed_addr constant <{ [27 x i8] }> <{ [27 x i8] c"assertion failed: step != 0" }>, align 1
@8 = private unnamed_addr constant <{ [89 x i8] }> <{ [89 x i8] c"/rustc/ef85656a10657ba5e4f7fe2931a4ca6293138d51/library/core/src/iter/adapters/step_by.rs" }>, align 1
@9 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @8, [16 x i8] c"Y\00\00\00\00\00\00\00!\00\00\00\09\00\00\00" }>, align 8
@10 = private unnamed_addr constant <{ [40 x i8] }> <{ [40 x i8] c"there is no such thing as a release load" }>, align 1
@11 = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @10, [8 x i8] c"(\00\00\00\00\00\00\00" }>, align 8
@12 = private unnamed_addr constant <{ [79 x i8] }> <{ [79 x i8] c"/rustc/ef85656a10657ba5e4f7fe2931a4ca6293138d51/library/core/src/sync/atomic.rs" }>, align 1
@13 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @12, [16 x i8] c"O\00\00\00\00\00\00\00s\0C\00\00\18\00\00\00" }>, align 8
@14 = private unnamed_addr constant <{ [49 x i8] }> <{ [49 x i8] c"there is no such thing as an acquire-release load" }>, align 1
@15 = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @14, [8 x i8] c"1\00\00\00\00\00\00\00" }>, align 8
@16 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @12, [16 x i8] c"O\00\00\00\00\00\00\00t\0C\00\00\17\00\00\00" }>, align 8
@17 = private unnamed_addr constant <{ [42 x i8] }> <{ [42 x i8] c"there is no such thing as an acquire store" }>, align 1
@18 = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @17, [8 x i8] c"*\00\00\00\00\00\00\00" }>, align 8
@19 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @12, [16 x i8] c"O\00\00\00\00\00\00\00d\0C\00\00\18\00\00\00" }>, align 8
@20 = private unnamed_addr constant <{ [50 x i8] }> <{ [50 x i8] c"there is no such thing as an acquire-release store" }>, align 1
@21 = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @20, [8 x i8] c"2\00\00\00\00\00\00\00" }>, align 8
@22 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @12, [16 x i8] c"O\00\00\00\00\00\00\00e\0C\00\00\17\00\00\00" }>, align 8
@23 = private unnamed_addr constant <{ [52 x i8] }> <{ [52 x i8] c"there is no such thing as a release failure ordering" }>, align 1
@24 = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @23, [8 x i8] c"4\00\00\00\00\00\00\00" }>, align 8
@25 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @12, [16 x i8] c"O\00\00\00\00\00\00\00\C8\0C\00\00\1D\00\00\00" }>, align 8
@26 = private unnamed_addr constant <{ [61 x i8] }> <{ [61 x i8] c"there is no such thing as an acquire-release failure ordering" }>, align 1
@27 = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @26, [8 x i8] c"=\00\00\00\00\00\00\00" }>, align 8
@28 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @12, [16 x i8] c"O\00\00\00\00\00\00\00\C7\0C\00\00\1C\00\00\00" }>, align 8
@29 = private unnamed_addr constant <{ [41 x i8] }> <{ [41 x i8] c"assertion failed: iter.size_hint().0 >= N" }>, align 1
@30 = private unnamed_addr constant <{ [77 x i8] }> <{ [77 x i8] c"/rustc/ef85656a10657ba5e4f7fe2931a4ca6293138d51/library/core/src/array/mod.rs" }>, align 1
@31 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @30, [16 x i8] c"M\00\00\00\00\00\00\00\12\03\00\00\05\00\00\00" }>, align 8
@32 = private unnamed_addr constant <{ [35 x i8] }> <{ [35 x i8] c"assertion failed: mid <= self.len()" }>, align 1
@33 = private unnamed_addr constant <{ [1 x i8] }> zeroinitializer, align 1
@34 = private unnamed_addr constant <{ [100 x i8] }> <{ [100 x i8] c"/home/npopov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rav1e-0.6.6/src/scenechange/mod.rs" }>, align 1
@35 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @34, [16 x i8] c"d\00\00\00\00\00\00\003\01\00\00\1D\00\00\00" }>, align 8
@36 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @34, [16 x i8] c"d\00\00\00\00\00\00\005\01\00\000\00\00\00" }>, align 8
@37 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @34, [16 x i8] c"d\00\00\00\00\00\00\007\01\00\00\1D\00\00\00" }>, align 8
@38 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @34, [16 x i8] c"d\00\00\00\00\00\00\009\01\00\00\1E\00\00\00" }>, align 8
@39 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @34, [16 x i8] c"d\00\00\00\00\00\00\00:\01\00\00\1D\00\00\00" }>, align 8
@40 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @34, [16 x i8] c"d\00\00\00\00\00\00\00F\01\00\00!\00\00\00" }>, align 8
@41 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @34, [16 x i8] c"d\00\00\00\00\00\00\00R\01\00\00\1A\00\00\00" }>, align 8
@42 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @34, [16 x i8] c"d\00\00\00\00\00\00\00[\01\00\00)\00\00\00" }>, align 8
@43 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @34, [16 x i8] c"d\00\00\00\00\00\00\00\\\01\00\00,\00\00\00" }>, align 8
@44 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @34, [16 x i8] c"d\00\00\00\00\00\00\00x\01\00\00\0C\00\00\00" }>, align 8
@45 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @34, [16 x i8] c"d\00\00\00\00\00\00\00x\01\00\006\00\00\00" }>, align 8
@46 = private unnamed_addr constant <{ [1 x i8] }> <{ [1 x i8] c"\02" }>, align 1
@47 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @34, [16 x i8] c"d\00\00\00\00\00\00\00\D5\00\00\00\09\00\00\00" }>, align 8
@48 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @34, [16 x i8] c"d\00\00\00\00\00\00\00\D6\00\00\00\09\00\00\00" }>, align 8
@49 = private unnamed_addr constant <{ [8 x i8] }> <{ [8 x i8] c"\05\00\00\00\00\00\00\00" }>, align 8
@_ZN3log20MAX_LOG_LEVEL_FILTER17hf45987abfd1fc402E = external global { i64 }
@50 = private unnamed_addr constant <{ [18 x i8] }> <{ [18 x i8] c"[SC-Detect] Frame " }>, align 1
@51 = private unnamed_addr constant <{ [6 x i8] }> <{ [6 x i8] c": Raw=" }>, align 1
@52 = private unnamed_addr constant <{ [8 x i8] }> <{ [8 x i8] c" ImpBl=" }>, align 1
@53 = private unnamed_addr constant <{ [6 x i8] }> <{ [6 x i8] c" Bwd=" }>, align 1
@54 = private unnamed_addr constant <{ [6 x i8] }> <{ [6 x i8] c" Fwd=" }>, align 1
@55 = private unnamed_addr constant <{ [5 x i8] }> <{ [5 x i8] c" Th=" }>, align 1
@56 = private unnamed_addr constant <{ [2 x i8] }> <{ [2 x i8] c" " }>, align 1
@57 = private unnamed_addr constant <{ ptr, [8 x i8], ptr, [8 x i8], ptr, [8 x i8], ptr, [8 x i8], ptr, [8 x i8], ptr, [8 x i8], ptr, [8 x i8] }> <{ ptr @50, [8 x i8] c"\12\00\00\00\00\00\00\00", ptr @51, [8 x i8] c"\06\00\00\00\00\00\00\00", ptr @52, [8 x i8] c"\08\00\00\00\00\00\00\00", ptr @53, [8 x i8] c"\06\00\00\00\00\00\00\00", ptr @54, [8 x i8] c"\06\00\00\00\00\00\00\00", ptr @55, [8 x i8] c"\05\00\00\00\00\00\00\00", ptr @56, [8 x i8] c"\02\00\00\00\00\00\00\00" }>, align 8
@58 = private unnamed_addr constant <{ [6 x i8] }> <{ [6 x i8] c"No cut" }>, align 1
@59 = private unnamed_addr constant <{ [8 x i8] }> <{ [8 x i8] c"Scenecut" }>, align 1
@60 = private unnamed_addr constant <{ [18 x i8] }> <{ [18 x i8] c"rav1e::scenechange" }>, align 1
@61 = private unnamed_addr constant <{ ptr, [8 x i8], ptr, [8 x i8], ptr, [8 x i8] }> <{ ptr @60, [8 x i8] c"\12\00\00\00\00\00\00\00", ptr @60, [8 x i8] c"\12\00\00\00\00\00\00\00", ptr @34, [8 x i8] c"d\00\00\00\00\00\00\00" }>, align 8
@62 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @34, [16 x i8] c"d\00\00\00\00\00\00\00\06\01\00\00\09\00\00\00" }>, align 8
@63 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @34, [16 x i8] c"d\00\00\00\00\00\00\00\07\01\00\00\09\00\00\00" }>, align 8
@64 = private unnamed_addr constant <{ [101 x i8] }> <{ [101 x i8] c"/home/npopov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rav1e-0.6.6/src/scenechange/fast.rs" }>, align 1
@65 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @64, [16 x i8] c"e\00\00\00\00\00\00\00!\00\00\00\18\00\00\00" }>, align 8
@66 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @64, [16 x i8] c"e\00\00\00\00\00\00\00O\00\00\00\16\00\00\00" }>, align 8
@67 = private unnamed_addr constant <{ [88 x i8] }> <{ [88 x i8] c"/home/npopov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rav1e-0.6.6/src/lrf.rs" }>, align 1
@68 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\E9\03\00\00!\00\00\00" }>, align 8
@69 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\EA\03\00\00\1D\00\00\00" }>, align 8
@70 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\EB\03\00\00!\00\00\00" }>, align 8
@71 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\EC\03\00\00\1B\00\00\00" }>, align 8
@72 = private unnamed_addr constant <{ [128 x i8] }> <{ [128 x i8] c"\8C\00\00\00\A4\0C\00\00p\00\00\00n\08\00\00]\00\00\00R\06\00\00P\00\00\00\9E\05\00\00F\00\00\00\0F\05\00\00:\00\00\00\99\04\00\00/\00\00\007\04\00\00%\00\00\00\E4\03\00\00\1E\00\00\00\9D\03\00\00\19\00\00\00_\03\00\00\00\00\00\00\1D\0A\00\00\00\00\00\00R\06\00\00\00\00\00\00\99\04\00\00\00\00\00\00\9D\03\00\008\00\00\00\00\00\00\00\16\00\00\00\00\00\00\00" }>, align 4
@73 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00`\03\00\00\13\00\00\00" }>, align 8
@74 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00a\03\00\00\13\00\00\00" }>, align 8
@75 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\8C\03\00\00\16\00\00\00" }>, align 8
@76 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\8D\03\00\00\19\00\00\00" }>, align 8
@77 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\97\03\00\00\16\00\00\00" }>, align 8
@78 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\98\03\00\00\19\00\00\00" }>, align 8
@79 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\A8\03\00\00\0E\00\00\00" }>, align 8
@80 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\A9\03\00\00\0E\00\00\00" }>, align 8
@81 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\B2\03\00\00 \00\00\00" }>, align 8
@82 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\B2\03\00\004\00\00\00" }>, align 8
@83 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\B3\03\00\00 \00\00\00" }>, align 8
@84 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\B3\03\00\004\00\00\00" }>, align 8
@85 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\C9\03\00\00\10\00\00\00" }>, align 8
@86 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\CA\03\00\00\10\00\00\00" }>, align 8
@87 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\CB\03\00\00\1A\00\00\00" }>, align 8
@88 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\CC\03\00\00\1D\00\00\00" }>, align 8
@89 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\D4\03\00\00\0D\00\00\00" }>, align 8
@90 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\D4\03\00\00\1B\00\00\00" }>, align 8
@91 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\D4\03\00\00/\00\00\00" }>, align 8
@92 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\D6\03\00\00\0D\00\00\00" }>, align 8
@93 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\D6\03\00\00\1B\00\00\00" }>, align 8
@94 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\D6\03\00\00/\00\00\00" }>, align 8
@95 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\12\04\00\00\11\00\00\00" }>, align 8
@96 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\15\04\00\00\09\00\00\00" }>, align 8
@97 = private unnamed_addr constant <{ [42 x i8] }> <{ [42 x i8] c"assertion failed: index < self.rect.height" }>, align 1
@98 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\13\04\00\00\0F\00\00\00" }>, align 8
@99 = private unnamed_addr constant <{ [15 x i8] }> <{ [15 x i8] c"not implemented" }>, align 1
@100 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00p\03\00\00\0A\00\00\00" }>, align 8
@101 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00j\03\00\00\0A\00\00\00" }>, align 8
@102 = private unnamed_addr constant <{ [4 x i8] }> <{ [4 x i8] c"\03\00\00\00" }>, align 4
@103 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\E5\05\00\00\11\00\00\00" }>, align 8
@104 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\E6\05\00\00\12\00\00\00" }>, align 8
@105 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\E7\05\00\00\12\00\00\00" }>, align 8
@106 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\09\06\00\00\12\00\00\00" }>, align 8
@107 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\0A\06\00\00\12\00\00\00" }>, align 8
@108 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\0B\06\00\00\16\00\00\00" }>, align 8
@109 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\1A\06\00\00\12\00\00\00" }>, align 8
@110 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\1C\06\00\00\12\00\00\00" }>, align 8
@111 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00&\06\00\00\12\00\00\00" }>, align 8
@112 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00(\06\00\00\16\00\00\00" }>, align 8
@113 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00Q\05\00\00#\00\00\00" }>, align 8
@114 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00S\05\00\00\10\00\00\00" }>, align 8
@115 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00T\05\00\00!\00\00\00" }>, align 8
@116 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00W\05\00\00\10\00\00\00" }>, align 8
@117 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\9D\05\00\00\12\00\00\00" }>, align 8
@118 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\9E\05\00\00\12\00\00\00" }>, align 8
@119 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\9F\05\00\00\13\00\00\00" }>, align 8
@120 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\A3\05\00\00\13\00\00\00" }>, align 8
@121 = private unnamed_addr constant <{ [52 x i8] }> <{ [52 x i8] c"Width and height must be higher than 1 for LRF setup" }>, align 1
@122 = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @121, [8 x i8] c"4\00\00\00\00\00\00\00" }>, align 8
@123 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00:\05\00\00\07\00\00\00" }>, align 8
@124 = private unnamed_addr constant <{ [43 x i8] }> <{ [43 x i8] c"called `Option::unwrap()` on a `None` value" }>, align 1
@125 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00@\02\00\00 \00\00\00" }>, align 8
@126 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00O\02\00\00/\00\00\00" }>, align 8
@127 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00P\02\00\005\00\00\00" }>, align 8
@128 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00Y\02\00\00\16\00\00\00" }>, align 8
@129 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00[\02\00\00\19\00\00\00" }>, align 8
@130 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\1E\02\00\00\03\00\00\00" }>, align 8
@131 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\005\02\00\00\0B\00\00\00" }>, align 8
@132 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\AD\04\00\00&\00\00\00" }>, align 8
@133 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\AE\04\00\00\10\00\00\00" }>, align 8
@134 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\92\04\00\00\22\00\00\00" }>, align 8
@135 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\93\04\00\00 \00\00\00" }>, align 8
@136 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\9D\04\00\00\1E\00\00\00" }>, align 8
@137 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\9D\04\00\00<\00\00\00" }>, align 8
@138 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\A6\04\00\00\07\00\00\00" }>, align 8
@139 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\A2\04\00\00\10\00\00\00" }>, align 8
@140 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\95\04\00\00\10\00\00\00" }>, align 8
@141 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00Y\04\00\00!\00\00\00" }>, align 8
@142 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00Y\04\00\00\07\00\00\00" }>, align 8
@143 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\AA\04\00\005\00\00\00" }>, align 8
@144 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00!\03\00\00\1B\00\00\00" }>, align 8
@145 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\22\03\00\00!\00\00\00" }>, align 8
@146 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00#\03\00\00\1B\00\00\00" }>, align 8
@147 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00$\03\00\00\19\00\00\00" }>, align 8
@148 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\88\02\00\00\13\00\00\00" }>, align 8
@149 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\89\02\00\00\13\00\00\00" }>, align 8
@150 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\B1\02\00\00\16\00\00\00" }>, align 8
@151 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\B2\02\00\00\19\00\00\00" }>, align 8
@152 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\BC\02\00\00\16\00\00\00" }>, align 8
@153 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\BD\02\00\00\19\00\00\00" }>, align 8
@154 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\CD\02\00\00\0E\00\00\00" }>, align 8
@155 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\CE\02\00\00\0E\00\00\00" }>, align 8
@156 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\D7\02\00\00 \00\00\00" }>, align 8
@157 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\D7\02\00\004\00\00\00" }>, align 8
@158 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\D8\02\00\00 \00\00\00" }>, align 8
@159 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\D8\02\00\004\00\00\00" }>, align 8
@160 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\F4\02\00\00\10\00\00\00" }>, align 8
@161 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\F5\02\00\00\10\00\00\00" }>, align 8
@162 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\F6\02\00\00\1A\00\00\00" }>, align 8
@163 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\F7\02\00\00\1D\00\00\00" }>, align 8
@164 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\FF\02\00\00\0D\00\00\00" }>, align 8
@165 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\FF\02\00\00\1B\00\00\00" }>, align 8
@166 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\FF\02\00\00/\00\00\00" }>, align 8
@167 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\01\03\00\00\0D\00\00\00" }>, align 8
@168 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\01\03\00\00\1B\00\00\00" }>, align 8
@169 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\01\03\00\00/\00\00\00" }>, align 8
@170 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\1A\03\00\00\1A\00\00\00" }>, align 8
@171 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\005\03\00\00\09\00\00\00" }>, align 8
@172 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\002\03\00\00\11\00\00\00" }>, align 8
@173 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\95\02\00\00\0A\00\00\00" }>, align 8
@174 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\8F\02\00\00\0A\00\00\00" }>, align 8
@175 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\9B\01\00\00\05\00\00\00" }>, align 8
@176 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\9A\01\00\00\05\00\00\00" }>, align 8
@177 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\FE\00\00\00\16\00\00\00" }>, align 8
@178 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\FE\00\00\006\00\00\00" }>, align 8
@179 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\12\01\00\00\14\00\00\00" }>, align 8
@180 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\12\01\00\00\1F\00\00\00" }>, align 8
@181 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\12\01\00\00*\00\00\00" }>, align 8
@182 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\12\01\00\009\00\00\00" }>, align 8
@183 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\14\01\00\00\0E\00\00\00" }>, align 8
@184 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\15\01\00\00\0F\00\00\00" }>, align 8
@185 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\16\01\00\00\0F\00\00\00" }>, align 8
@186 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\17\01\00\00\0F\00\00\00" }>, align 8
@187 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\18\01\00\00\0F\00\00\00" }>, align 8
@188 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\19\01\00\00\14\00\00\00" }>, align 8
@189 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\19\01\00\00\1F\00\00\00" }>, align 8
@190 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\19\01\00\00*\00\00\00" }>, align 8
@191 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\19\01\00\009\00\00\00" }>, align 8
@192 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\1B\01\00\00\0E\00\00\00" }>, align 8
@193 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\1C\01\00\00\0F\00\00\00" }>, align 8
@194 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\1D\01\00\00\0F\00\00\00" }>, align 8
@195 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\1E\01\00\00\0F\00\00\00" }>, align 8
@196 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\1F\01\00\00\0F\00\00\00" }>, align 8
@197 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00 \01\00\00\22\00\00\00" }>, align 8
@198 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00!\01\00\00\07\00\00\00" }>, align 8
@199 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\006\01\00\00\14\00\00\00" }>, align 8
@200 = private unnamed_addr constant <{ [28 x i8] }> <{ [28 x i8] c"window size must be non-zero" }>, align 1
@201 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\006\01\00\00%\00\00\00" }>, align 8
@202 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\007\01\00\00\14\00\00\00" }>, align 8
@203 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\007\01\00\00%\00\00\00" }>, align 8
@204 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\008\01\00\00\14\00\00\00" }>, align 8
@205 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\008\01\00\00%\00\00\00" }>, align 8
@206 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\009\01\00\00\14\00\00\00" }>, align 8
@207 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\009\01\00\00%\00\00\00" }>, align 8
@208 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00>\01\00\00\13\00\00\00" }>, align 8
@209 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00?\01\00\00\14\00\00\00" }>, align 8
@210 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00A\01\00\00\10\00\00\00" }>, align 8
@211 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00B\01\00\00\10\00\00\00" }>, align 8
@212 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00L\01\00\00\14\00\00\00" }>, align 8
@213 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00L\01\00\00\1E\00\00\00" }>, align 8
@214 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00L\01\00\00-\00\00\00" }>, align 8
@215 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00M\01\00\00\14\00\00\00" }>, align 8
@216 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00M\01\00\00\1E\00\00\00" }>, align 8
@217 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00M\01\00\00-\00\00\00" }>, align 8
@218 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00N\01\00\00\15\00\00\00" }>, align 8
@219 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00N\01\00\00\1F\00\00\00" }>, align 8
@220 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00N\01\00\00.\00\00\00" }>, align 8
@221 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00O\01\00\00\15\00\00\00" }>, align 8
@222 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00O\01\00\00\1F\00\00\00" }>, align 8
@223 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00O\01\00\00.\00\00\00" }>, align 8
@224 = private unnamed_addr constant <{ [102 x i8] }> <{ [102 x i8] c"/home/npopov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rav1e-0.6.6/src/tiling/tile_state.rs" }>, align 1
@225 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @224, [16 x i8] c"f\00\00\00\00\00\00\00\06\01\00\00!\00\00\00" }>, align 8
@226 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @224, [16 x i8] c"f\00\00\00\00\00\00\00\06\01\00\00\0C\00\00\00" }>, align 8
@227 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @224, [16 x i8] c"f\00\00\00\00\00\00\00\F2\00\00\00!\00\00\00" }>, align 8
@228 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @224, [16 x i8] c"f\00\00\00\00\00\00\00\F2\00\00\00\0C\00\00\00" }>, align 8
@229 = private unnamed_addr constant <{ [104 x i8] }> <{ [104 x i8] c"assertion failed: cfg.yorigin as isize + rect.y + rect.height as isize <=\\n cfg.alloc_height as isize" }>, align 1
@230 = private unnamed_addr constant <{ [104 x i8] }> <{ [104 x i8] c"/home/npopov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rav1e-0.6.6/src/tiling/plane_region.rs" }>, align 1
@231 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @230, [16 x i8] c"h\00\00\00\00\00\00\00\AA\01\00\00\01\00\00\00" }>, align 8
@232 = private unnamed_addr constant <{ [92 x i8] }> <{ [92 x i8] c"assertion failed: cfg.xorigin as isize + rect.x + rect.width as isize <= cfg.stride as isize" }>, align 1
@233 = private unnamed_addr constant <{ [51 x i8] }> <{ [51 x i8] c"assertion failed: rect.y >= -(cfg.yorigin as isize)" }>, align 1
@234 = private unnamed_addr constant <{ [51 x i8] }> <{ [51 x i8] c"assertion failed: rect.x >= -(cfg.xorigin as isize)" }>, align 1
@235 = private unnamed_addr constant <{ [68 x i8] }> <{ [68 x i8] c"assertion failed: rect.y >= 0 && rect.y as usize <= self.rect.height" }>, align 1
@236 = private unnamed_addr constant <{ [67 x i8] }> <{ [67 x i8] c"assertion failed: rect.x >= 0 && rect.x as usize <= self.rect.width" }>, align 1
@237 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @230, [16 x i8] c"h\00\00\00\00\00\00\00\AB\01\00\00\01\00\00\00" }>, align 8
@238 = private unnamed_addr constant <{ [114 x i8] }> <{ [114 x i8] c"/home/npopov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rav1e-0.6.6/src/tiling/tile_restoration_state.rs" }>, align 1
@239 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @238, [16 x i8] c"r\00\00\00\00\00\00\00\9B\01\00\00\01\00\00\00" }>, align 8
@240 = private unnamed_addr constant <{ [3 x i8] }> <{ [3 x i8] c"\03\F9\0F" }>, align 1
@241 = private unnamed_addr constant <{ [2 x i8] }> <{ [2 x i8] c"\E0\1F" }>, align 1
@242 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @238, [16 x i8] c"r\00\00\00\00\00\00\00|\00\00\00\01\00\00\00" }>, align 8
@243 = private unnamed_addr constant <{ [96 x i8] }> <{ [96 x i8] c"/home/npopov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rav1e-0.6.6/src/tiling/tile.rs" }>, align 1
@244 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @243, [16 x i8] c"`\00\00\00\00\00\00\00\CB\00\00\00\01\00\00\00" }>, align 8
@245 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @243, [16 x i8] c"`\00\00\00\00\00\00\00\CC\00\00\00\01\00\00\00" }>, align 8
@246 = private unnamed_addr constant <{ [93 x i8] }> <{ [93 x i8] c"/home/npopov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rav1e-0.6.6/src/activity.rs" }>, align 1
@247 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @246, [16 x i8] c"]\00\00\00\00\00\00\00R\00\00\00\16\00\00\00" }>, align 8
@248 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @246, [16 x i8] c"]\00\00\00\00\00\00\00R\00\00\00\13\00\00\00" }>, align 8
@249 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @246, [16 x i8] c"]\00\00\00\00\00\00\00O\00\00\00\12\00\00\00" }>, align 8
@250 = private unnamed_addr constant <{ [102 x i8] }> <{ [102 x i8] c"/home/npopov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs" }>, align 1
@251 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @250, [16 x i8] c"f\00\00\00\00\00\00\00C\01\00\00\1A\00\00\00" }>, align 8
@252 = private unnamed_addr constant <{ [11 x i8] }> <{ [11 x i8] c"PoisonError" }>, align 1
@253 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\01\02\00\00\0D\00\00\00" }>, align 8
@254 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @67, [16 x i8] c"X\00\00\00\00\00\00\00\CF\01\00\00\1B\00\00\00" }>, align 8
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef align 1 dereferenceable_or_null(1) ptr @"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h088a3efd70679c11E"(ptr noalias noundef align 8 dereferenceable(40) %0) unnamed_addr #0 {
%2 = alloca ptr, align 8
%3 = getelementptr inbounds { { ptr, { {}, ptr, i64, i64 } }, i64 }, ptr %0, i32 0, i32 1
%4 = load i64, ptr %3, align 8, !noundef !3
%5 = icmp eq i64 %4, 0
br i1 %5, label %6, label %7
6: ; preds = %1
store ptr null, ptr %2, align 8
br label %13
7: ; preds = %1
%8 = getelementptr inbounds { { ptr, { {}, ptr, i64, i64 } }, i64 }, ptr %0, i32 0, i32 1
%9 = getelementptr inbounds { { ptr, { {}, ptr, i64, i64 } }, i64 }, ptr %0, i32 0, i32 1
%10 = load i64, ptr %9, align 8, !noundef !3
%11 = sub i64 %10, 1
store i64 %11, ptr %8, align 8
%12 = call noundef align 1 dereferenceable_or_null(1) ptr @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h65a1b90177747773E"(ptr noalias noundef align 8 dereferenceable(32) %0) #13
store ptr %12, ptr %2, align 8
br label %13
13: ; preds = %7, %6
%14 = load ptr, ptr %2, align 8, !align !4, !noundef !3
ret ptr %14
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef align 8 dereferenceable_or_null(40) ptr @"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h4a81fd7ff6c645a7E"(ptr noalias noundef align 8 dereferenceable(24) %0) unnamed_addr #0 {
%2 = alloca ptr, align 8
%3 = getelementptr inbounds { { ptr, ptr }, i64 }, ptr %0, i32 0, i32 1
%4 = load i64, ptr %3, align 8, !noundef !3
%5 = icmp eq i64 %4, 0
br i1 %5, label %6, label %7
6: ; preds = %1
store ptr null, ptr %2, align 8
br label %13
7: ; preds = %1
%8 = getelementptr inbounds { { ptr, ptr }, i64 }, ptr %0, i32 0, i32 1
%9 = getelementptr inbounds { { ptr, ptr }, i64 }, ptr %0, i32 0, i32 1
%10 = load i64, ptr %9, align 8, !noundef !3
%11 = sub i64 %10, 1
store i64 %11, ptr %8, align 8
%12 = call noundef align 8 dereferenceable_or_null(40) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdc0af935e6073cc7E"(ptr noalias noundef align 8 dereferenceable(16) %0) #13
store ptr %12, ptr %2, align 8
br label %13
13: ; preds = %7, %6
%14 = load ptr, ptr %2, align 8, !align !5, !noundef !3
ret ptr %14
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef align 2 dereferenceable_or_null(2) ptr @"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h8a951680d3082d8eE"(ptr noalias noundef align 8 dereferenceable(40) %0) unnamed_addr #0 {
%2 = alloca ptr, align 8
%3 = getelementptr inbounds { { ptr, { {}, ptr, i64, i64 } }, i64 }, ptr %0, i32 0, i32 1
%4 = load i64, ptr %3, align 8, !noundef !3
%5 = icmp eq i64 %4, 0
br i1 %5, label %6, label %7
6: ; preds = %1
store ptr null, ptr %2, align 8
br label %13
7: ; preds = %1
%8 = getelementptr inbounds { { ptr, { {}, ptr, i64, i64 } }, i64 }, ptr %0, i32 0, i32 1
%9 = getelementptr inbounds { { ptr, { {}, ptr, i64, i64 } }, i64 }, ptr %0, i32 0, i32 1
%10 = load i64, ptr %9, align 8, !noundef !3
%11 = sub i64 %10, 1
store i64 %11, ptr %8, align 8
%12 = call noundef align 2 dereferenceable_or_null(2) ptr @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h00d1cafee1c33590E"(ptr noalias noundef align 8 dereferenceable(32) %0) #13
store ptr %12, ptr %2, align 8
br label %13
13: ; preds = %7, %6
%14 = load ptr, ptr %2, align 8, !align !6, !noundef !3
ret ptr %14
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef align 2 dereferenceable_or_null(2) ptr @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h00d1cafee1c33590E"(ptr noalias noundef align 8 dereferenceable(32) %0) unnamed_addr #0 {
%2 = alloca { ptr, i64 }, align 8
%3 = alloca { ptr, i64 }, align 8
%4 = alloca ptr, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %3)
%5 = getelementptr inbounds { ptr, { {}, ptr, i64, i64 } }, ptr %0, i32 0, i32 1
%6 = call { ptr, i64 } @"_ZN95_$LT$v_frame..plane..RowsIterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h95d4e943626f5f37E"(ptr noalias noundef align 8 dereferenceable(24) %5) #13
store { ptr, i64 } %6, ptr %3, align 8
%7 = load ptr, ptr %3, align 8, !noundef !3
%8 = ptrtoint ptr %7 to i64
%9 = icmp eq i64 %8, 0
%10 = select i1 %9, i64 0, i64 1
switch i64 %10, label %11 [
i64 0, label %12
i64 1, label %13
]
11: ; preds = %1
unreachable
12: ; preds = %1
store ptr null, ptr %4, align 8
br label %25
13: ; preds = %1
%14 = getelementptr inbounds { ptr, i64 }, ptr %3, i32 0, i32 0
%15 = load ptr, ptr %14, align 8, !nonnull !3, !align !6, !noundef !3
%16 = getelementptr inbounds { ptr, i64 }, ptr %3, i32 0, i32 1
%17 = load i64, ptr %16, align 8, !noundef !3
call void @llvm.lifetime.start.p0(i64 16, ptr %2)
%18 = getelementptr inbounds { ptr, i64 }, ptr %2, i32 0, i32 0
store ptr %15, ptr %18, align 8
%19 = getelementptr inbounds { ptr, i64 }, ptr %2, i32 0, i32 1
store i64 %17, ptr %19, align 8
%20 = getelementptr inbounds { ptr, i64 }, ptr %2, i32 0, i32 0
%21 = load ptr, ptr %20, align 8, !nonnull !3, !align !6, !noundef !3
%22 = getelementptr inbounds { ptr, i64 }, ptr %2, i32 0, i32 1
%23 = load i64, ptr %22, align 8, !noundef !3
%24 = call noundef align 2 dereferenceable(2) ptr @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17hbe446fdb2bec83feE"(ptr noalias noundef align 8 dereferenceable(8) %0, ptr noalias noundef nonnull align 2 %21, i64 noundef %23) #13
call void @llvm.lifetime.end.p0(i64 16, ptr %2)
store ptr %24, ptr %4, align 8
br label %25
25: ; preds = %13, %12
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%26 = load ptr, ptr %4, align 8, !align !6, !noundef !3
ret ptr %26
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { i64, double } @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0712abdca0b4f077E"(ptr noalias noundef align 8 dereferenceable(24) %0) unnamed_addr #0 {
%2 = alloca ptr, align 8
%3 = alloca ptr, align 8
%4 = alloca { i64, double }, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %3)
%5 = call noundef align 8 dereferenceable_or_null(40) ptr @"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h4a81fd7ff6c645a7E"(ptr noalias noundef align 8 dereferenceable(24) %0) #13
store ptr %5, ptr %3, align 8
%6 = load ptr, ptr %3, align 8, !noundef !3
%7 = ptrtoint ptr %6 to i64
%8 = icmp eq i64 %7, 0
%9 = select i1 %8, i64 0, i64 1
switch i64 %9, label %10 [
i64 0, label %11
i64 1, label %12
]
10: ; preds = %1
unreachable
11: ; preds = %1
store i64 0, ptr %4, align 8
br label %17
12: ; preds = %1
%13 = load ptr, ptr %3, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.lifetime.start.p0(i64 8, ptr %2)
store ptr %13, ptr %2, align 8
%14 = load ptr, ptr %2, align 8, !nonnull !3, !align !5, !noundef !3
%15 = call noundef double @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h01b0b5c0c7807fa5E"(ptr noalias noundef nonnull align 1 %0, ptr noalias noundef readonly align 8 dereferenceable(40) %14) #13
call void @llvm.lifetime.end.p0(i64 8, ptr %2)
%16 = getelementptr inbounds { i64, double }, ptr %4, i32 0, i32 1
store double %15, ptr %16, align 8
store i64 1, ptr %4, align 8
br label %17
17: ; preds = %12, %11
call void @llvm.lifetime.end.p0(i64 8, ptr %3)
%18 = getelementptr inbounds { i64, double }, ptr %4, i32 0, i32 0
%19 = load i64, ptr %18, align 8, !range !7, !noundef !3
%20 = getelementptr inbounds { i64, double }, ptr %4, i32 0, i32 1
%21 = load double, ptr %20, align 8
%22 = insertvalue { i64, double } poison, i64 %19, 0
%23 = insertvalue { i64, double } %22, double %21, 1
ret { i64, double } %23
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h2c08d7162f7ceea9E"(ptr noalias nocapture noundef sret({ ptr, [3 x i64] }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(104) %1) unnamed_addr #0 {
%3 = alloca { ptr, i64 }, align 8
%4 = alloca { { ptr, i64 }, i64, i64 }, align 8
%5 = alloca { ptr, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %5)
%6 = call { ptr, i64 } @"_ZN94_$LT$rav1e..lrf..VertPaddedIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h1d274e6d45168ff0E"(ptr noalias noundef align 8 dereferenceable(64) %1) #13
store { ptr, i64 } %6, ptr %5, align 8
%7 = getelementptr inbounds { { ptr, ptr, i64, i64, i64, i64, i64, i64 }, { ptr, ptr, ptr, ptr, ptr } }, ptr %1, i32 0, i32 1
%8 = load ptr, ptr %5, align 8, !noundef !3
%9 = ptrtoint ptr %8 to i64
%10 = icmp eq i64 %9, 0
%11 = select i1 %10, i64 0, i64 1
switch i64 %11, label %12 [
i64 0, label %13
i64 1, label %14
]
12: ; preds = %2
unreachable
13: ; preds = %2
store ptr null, ptr %0, align 8
br label %25
14: ; preds = %2
%15 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 0
%16 = load ptr, ptr %15, align 8, !nonnull !3, !align !6, !noundef !3
%17 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 1
%18 = load i64, ptr %17, align 8, !noundef !3
call void @llvm.lifetime.start.p0(i64 32, ptr %4)
call void @llvm.lifetime.start.p0(i64 16, ptr %3)
%19 = getelementptr inbounds { ptr, i64 }, ptr %3, i32 0, i32 0
store ptr %16, ptr %19, align 8
%20 = getelementptr inbounds { ptr, i64 }, ptr %3, i32 0, i32 1
store i64 %18, ptr %20, align 8
%21 = getelementptr inbounds { ptr, i64 }, ptr %3, i32 0, i32 0
%22 = load ptr, ptr %21, align 8, !nonnull !3, !align !6, !noundef !3
%23 = getelementptr inbounds { ptr, i64 }, ptr %3, i32 0, i32 1
%24 = load i64, ptr %23, align 8, !noundef !3
call void @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h3713fb2604dcc4c7E"(ptr noalias nocapture noundef sret({ { ptr, i64 }, i64, i64 }) align 8 dereferenceable(32) %4, ptr noalias noundef align 8 dereferenceable(40) %7, ptr noalias noundef nonnull readonly align 2 %22, i64 noundef %24) #13
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %4, i64 32, i1 false)
call void @llvm.lifetime.end.p0(i64 32, ptr %4)
br label %25
25: ; preds = %14, %13
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h4a6dd7baa34453cbE"(ptr noalias nocapture noundef sret({ ptr, [2 x i64] }) align 8 dereferenceable(24) %0, ptr noalias noundef align 8 dereferenceable(96) %1) unnamed_addr #0 {
%3 = alloca { { { ptr, ptr }, ptr } }, align 8
%4 = alloca { ptr, ptr, ptr }, align 8
%5 = alloca { { ptr, ptr }, ptr }, align 8
%6 = alloca { ptr, [2 x i64] }, align 8
call void @llvm.lifetime.start.p0(i64 24, ptr %6)
call void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17he6a34873ca7e5813E"(ptr noalias nocapture noundef sret({ ptr, [2 x i64] }) align 8 dereferenceable(24) %6, ptr noalias noundef align 8 dereferenceable(96) %1) #13
call void @llvm.lifetime.start.p0(i64 24, ptr %5)
%7 = load ptr, ptr %6, align 8, !noundef !3
%8 = ptrtoint ptr %7 to i64
%9 = icmp eq i64 %8, 0
%10 = select i1 %9, i64 0, i64 1
switch i64 %10, label %11 [
i64 0, label %12
i64 1, label %13
]
11: ; preds = %2
unreachable
12: ; preds = %2
store ptr null, ptr %0, align 8
br label %14
13: ; preds = %2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5, ptr align 8 %6, i64 24, i1 false)
call void @llvm.lifetime.start.p0(i64 24, ptr %4)
call void @llvm.lifetime.start.p0(i64 24, ptr %3)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %3, ptr align 8 %5, i64 24, i1 false)
call void @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17hee46838fa6aadb7bE"(ptr noalias nocapture noundef sret({ ptr, ptr, ptr }) align 8 dereferenceable(24) %4, ptr noalias noundef nonnull align 1 %1, ptr noalias nocapture noundef align 8 dereferenceable(24) %3) #13
call void @llvm.lifetime.end.p0(i64 24, ptr %3)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %4, i64 24, i1 false)
call void @llvm.lifetime.end.p0(i64 24, ptr %4)
br label %14
14: ; preds = %13, %12
call void @llvm.lifetime.end.p0(i64 24, ptr %5)
call void @llvm.lifetime.end.p0(i64 24, ptr %6)
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { i64, double } @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5d4015e5854fbc7dE"(ptr noalias noundef align 8 dereferenceable(24) %0) unnamed_addr #0 {
%2 = alloca ptr, align 8
%3 = alloca ptr, align 8
%4 = alloca { i64, double }, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %3)
%5 = call noundef align 8 dereferenceable_or_null(40) ptr @"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h4a81fd7ff6c645a7E"(ptr noalias noundef align 8 dereferenceable(24) %0) #13
store ptr %5, ptr %3, align 8
%6 = load ptr, ptr %3, align 8, !noundef !3
%7 = ptrtoint ptr %6 to i64
%8 = icmp eq i64 %7, 0
%9 = select i1 %8, i64 0, i64 1
switch i64 %9, label %10 [
i64 0, label %11
i64 1, label %12
]
10: ; preds = %1
unreachable
11: ; preds = %1
store i64 0, ptr %4, align 8
br label %17
12: ; preds = %1
%13 = load ptr, ptr %3, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.lifetime.start.p0(i64 8, ptr %2)
store ptr %13, ptr %2, align 8
%14 = load ptr, ptr %2, align 8, !nonnull !3, !align !5, !noundef !3
%15 = call noundef double @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h680b4fa04bdd3c32E"(ptr noalias noundef nonnull align 1 %0, ptr noalias noundef readonly align 8 dereferenceable(40) %14) #13
call void @llvm.lifetime.end.p0(i64 8, ptr %2)
%16 = getelementptr inbounds { i64, double }, ptr %4, i32 0, i32 1
store double %15, ptr %16, align 8
store i64 1, ptr %4, align 8
br label %17
17: ; preds = %12, %11
call void @llvm.lifetime.end.p0(i64 8, ptr %3)
%18 = getelementptr inbounds { i64, double }, ptr %4, i32 0, i32 0
%19 = load i64, ptr %18, align 8, !range !7, !noundef !3
%20 = getelementptr inbounds { i64, double }, ptr %4, i32 0, i32 1
%21 = load double, ptr %20, align 8
%22 = insertvalue { i64, double } poison, i64 %19, 0
%23 = insertvalue { i64, double } %22, double %21, 1
ret { i64, double } %23
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef align 1 dereferenceable_or_null(1) ptr @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h65a1b90177747773E"(ptr noalias noundef align 8 dereferenceable(32) %0) unnamed_addr #0 {
%2 = alloca { ptr, i64 }, align 8
%3 = alloca { ptr, i64 }, align 8
%4 = alloca ptr, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %3)
%5 = getelementptr inbounds { ptr, { {}, ptr, i64, i64 } }, ptr %0, i32 0, i32 1
%6 = call { ptr, i64 } @"_ZN95_$LT$v_frame..plane..RowsIterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdac4acc568b1f830E"(ptr noalias noundef align 8 dereferenceable(24) %5) #13
store { ptr, i64 } %6, ptr %3, align 8
%7 = load ptr, ptr %3, align 8, !noundef !3
%8 = ptrtoint ptr %7 to i64
%9 = icmp eq i64 %8, 0
%10 = select i1 %9, i64 0, i64 1
switch i64 %10, label %11 [
i64 0, label %12
i64 1, label %13
]
11: ; preds = %1
unreachable
12: ; preds = %1
store ptr null, ptr %4, align 8
br label %25
13: ; preds = %1
%14 = getelementptr inbounds { ptr, i64 }, ptr %3, i32 0, i32 0
%15 = load ptr, ptr %14, align 8, !nonnull !3, !align !4, !noundef !3
%16 = getelementptr inbounds { ptr, i64 }, ptr %3, i32 0, i32 1
%17 = load i64, ptr %16, align 8, !noundef !3
call void @llvm.lifetime.start.p0(i64 16, ptr %2)
%18 = getelementptr inbounds { ptr, i64 }, ptr %2, i32 0, i32 0
store ptr %15, ptr %18, align 8
%19 = getelementptr inbounds { ptr, i64 }, ptr %2, i32 0, i32 1
store i64 %17, ptr %19, align 8
%20 = getelementptr inbounds { ptr, i64 }, ptr %2, i32 0, i32 0
%21 = load ptr, ptr %20, align 8, !nonnull !3, !align !4, !noundef !3
%22 = getelementptr inbounds { ptr, i64 }, ptr %2, i32 0, i32 1
%23 = load i64, ptr %22, align 8, !noundef !3
%24 = call noundef align 1 dereferenceable(1) ptr @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h19eb0909d6594e53E"(ptr noalias noundef align 8 dereferenceable(8) %0, ptr noalias noundef nonnull align 1 %21, i64 noundef %23) #13
call void @llvm.lifetime.end.p0(i64 16, ptr %2)
store ptr %24, ptr %4, align 8
br label %25
25: ; preds = %13, %12
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%26 = load ptr, ptr %4, align 8, !align !4, !noundef !3
ret ptr %26
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha38c3a9828efa3baE"(ptr noalias nocapture noundef sret({ ptr, [2 x i64] }) align 8 dereferenceable(24) %0, ptr noalias noundef align 8 dereferenceable(96) %1) unnamed_addr #0 {
%3 = alloca { { { ptr, ptr }, ptr } }, align 8
%4 = alloca { ptr, ptr, ptr }, align 8
%5 = alloca { { ptr, ptr }, ptr }, align 8
%6 = alloca { ptr, [2 x i64] }, align 8
call void @llvm.lifetime.start.p0(i64 24, ptr %6)
call void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h1c7fa09b207092bcE"(ptr noalias nocapture noundef sret({ ptr, [2 x i64] }) align 8 dereferenceable(24) %6, ptr noalias noundef align 8 dereferenceable(96) %1) #13
call void @llvm.lifetime.start.p0(i64 24, ptr %5)
%7 = load ptr, ptr %6, align 8, !noundef !3
%8 = ptrtoint ptr %7 to i64
%9 = icmp eq i64 %8, 0
%10 = select i1 %9, i64 0, i64 1
switch i64 %10, label %11 [
i64 0, label %12
i64 1, label %13
]
11: ; preds = %2
unreachable
12: ; preds = %2
store ptr null, ptr %0, align 8
br label %14
13: ; preds = %2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5, ptr align 8 %6, i64 24, i1 false)
call void @llvm.lifetime.start.p0(i64 24, ptr %4)
call void @llvm.lifetime.start.p0(i64 24, ptr %3)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %3, ptr align 8 %5, i64 24, i1 false)
call void @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h60a72e2f91dbaff6E"(ptr noalias nocapture noundef sret({ ptr, ptr, ptr }) align 8 dereferenceable(24) %4, ptr noalias noundef nonnull align 1 %1, ptr noalias nocapture noundef align 8 dereferenceable(24) %3) #13
call void @llvm.lifetime.end.p0(i64 24, ptr %3)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %4, i64 24, i1 false)
call void @llvm.lifetime.end.p0(i64 24, ptr %4)
br label %14
14: ; preds = %13, %12
call void @llvm.lifetime.end.p0(i64 24, ptr %5)
call void @llvm.lifetime.end.p0(i64 24, ptr %6)
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17he0293a54d898068aE"(ptr noalias nocapture noundef sret({ ptr, [3 x i64] }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(104) %1) unnamed_addr #0 {
%3 = alloca { ptr, i64 }, align 8
%4 = alloca { { ptr, i64 }, i64, i64 }, align 8
%5 = alloca { ptr, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %5)
%6 = call { ptr, i64 } @"_ZN94_$LT$rav1e..lrf..VertPaddedIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h2bc5bd1d05b7fac1E"(ptr noalias noundef align 8 dereferenceable(64) %1) #13
store { ptr, i64 } %6, ptr %5, align 8
%7 = getelementptr inbounds { { ptr, ptr, i64, i64, i64, i64, i64, i64 }, { ptr, ptr, ptr, ptr, ptr } }, ptr %1, i32 0, i32 1
%8 = load ptr, ptr %5, align 8, !noundef !3
%9 = ptrtoint ptr %8 to i64
%10 = icmp eq i64 %9, 0
%11 = select i1 %10, i64 0, i64 1
switch i64 %11, label %12 [
i64 0, label %13
i64 1, label %14
]
12: ; preds = %2
unreachable
13: ; preds = %2
store ptr null, ptr %0, align 8
br label %25
14: ; preds = %2
%15 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 0
%16 = load ptr, ptr %15, align 8, !nonnull !3, !align !4, !noundef !3
%17 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 1
%18 = load i64, ptr %17, align 8, !noundef !3
call void @llvm.lifetime.start.p0(i64 32, ptr %4)
call void @llvm.lifetime.start.p0(i64 16, ptr %3)
%19 = getelementptr inbounds { ptr, i64 }, ptr %3, i32 0, i32 0
store ptr %16, ptr %19, align 8
%20 = getelementptr inbounds { ptr, i64 }, ptr %3, i32 0, i32 1
store i64 %18, ptr %20, align 8
%21 = getelementptr inbounds { ptr, i64 }, ptr %3, i32 0, i32 0
%22 = load ptr, ptr %21, align 8, !nonnull !3, !align !4, !noundef !3
%23 = getelementptr inbounds { ptr, i64 }, ptr %3, i32 0, i32 1
%24 = load i64, ptr %23, align 8, !noundef !3
call void @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17hadd2895302f93891E"(ptr noalias nocapture noundef sret({ { ptr, i64 }, i64, i64 }) align 8 dereferenceable(32) %4, ptr noalias noundef align 8 dereferenceable(40) %7, ptr noalias noundef nonnull readonly align 1 %22, i64 noundef %24) #13
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %4, i64 32, i1 false)
call void @llvm.lifetime.end.p0(i64 32, ptr %4)
br label %25
25: ; preds = %14, %13
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint17h2c34c6a7cedfa270E"(ptr noalias nocapture noundef sret({ i64, { i64, i64 } }) align 8 dereferenceable(24) %0, ptr noalias noundef readonly align 8 dereferenceable(16) %1) unnamed_addr #0 {
call void @"_ZN104_$LT$core..iter..adapters..cloned..Cloned$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint17h673651151b4e0472E"(ptr noalias nocapture noundef sret({ i64, { i64, i64 } }) align 8 dereferenceable(24) %0, ptr noalias noundef readonly align 8 dereferenceable(16) %1) #13
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint17he1659d42c67b3ba2E"(ptr noalias nocapture noundef sret({ i64, { i64, i64 } }) align 8 dereferenceable(24) %0, ptr noalias noundef readonly align 8 dereferenceable(16) %1) unnamed_addr #0 {
call void @"_ZN104_$LT$core..iter..adapters..cloned..Cloned$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint17h36bc87eaa18b12e6E"(ptr noalias nocapture noundef sret({ i64, { i64, i64 } }) align 8 dereferenceable(24) %0, ptr noalias noundef readonly align 8 dereferenceable(16) %1) #13
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h1461198d98311c93E"(ptr noalias nocapture noundef sret({ { ptr, i64 }, { ptr, i64 } }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(72) %1, i64 noundef %2) unnamed_addr #0 {
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17h4c8fd6537f40d063E"(ptr noalias nocapture noundef sret({ { ptr, i64 }, { ptr, i64 } }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(72) %1, i64 noundef %2) #13
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h507e88fd1e566867E"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) unnamed_addr #0 {
%3 = call { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17he07fac9aece8ac0cE"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) #13
%4 = extractvalue { ptr, ptr } %3, 0
%5 = extractvalue { ptr, ptr } %3, 1
%6 = insertvalue { ptr, ptr } poison, ptr %4, 0
%7 = insertvalue { ptr, ptr } %6, ptr %5, 1
ret { ptr, ptr } %7
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h5228ed82a69da2a5E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr } }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(136) %1, i64 noundef %2) unnamed_addr #0 {
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17h0f85cfea095386f1E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr } }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(136) %1, i64 noundef %2) #13
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h5a404a9e20427fe5E"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) unnamed_addr #0 {
%3 = call { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17h8b1c2180cbdcf7c6E"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) #13
%4 = extractvalue { ptr, ptr } %3, 0
%5 = extractvalue { ptr, ptr } %3, 1
%6 = insertvalue { ptr, ptr } poison, ptr %4, 0
%7 = insertvalue { ptr, ptr } %6, ptr %5, 1
ret { ptr, ptr } %7
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h6ece77b79967d658E"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) unnamed_addr #0 {
%3 = call { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17h91dda27d7b7bf0c7E"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) #13
%4 = extractvalue { ptr, ptr } %3, 0
%5 = extractvalue { ptr, ptr } %3, 1
%6 = insertvalue { ptr, ptr } poison, ptr %4, 0
%7 = insertvalue { ptr, ptr } %6, ptr %5, 1
ret { ptr, ptr } %7
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h7083ae95a41f078cE"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, { ptr, i64 } }, { { ptr, i64 }, { ptr, i64 } } }) align 8 dereferenceable(64) %0, ptr noalias noundef align 8 dereferenceable(168) %1, i64 noundef %2) unnamed_addr #0 {
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17hb119f2183e32df1fE"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, { ptr, i64 } }, { { ptr, i64 }, { ptr, i64 } } }) align 8 dereferenceable(64) %0, ptr noalias noundef align 8 dereferenceable(168) %1, i64 noundef %2) #13
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h89de01d04b05c4a4E"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) unnamed_addr #0 {
%3 = call { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17h0dbcc633288c8584E"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) #13
%4 = extractvalue { ptr, ptr } %3, 0
%5 = extractvalue { ptr, ptr } %3, 1
%6 = insertvalue { ptr, ptr } poison, ptr %4, 0
%7 = insertvalue { ptr, ptr } %6, ptr %5, 1
ret { ptr, ptr } %7
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17hb183a5f8c66bfeb4E"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) unnamed_addr #0 {
%3 = call { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17h42f17f0de1c69f8bE"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) #13
%4 = extractvalue { ptr, ptr } %3, 0
%5 = extractvalue { ptr, ptr } %3, 1
%6 = insertvalue { ptr, ptr } poison, ptr %4, 0
%7 = insertvalue { ptr, ptr } %6, ptr %5, 1
ret { ptr, ptr } %7
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17hcd56f2d18b8cc11fE"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) unnamed_addr #0 {
%3 = call { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17h85a88da443340e3fE"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) #13
%4 = extractvalue { ptr, ptr } %3, 0
%5 = extractvalue { ptr, ptr } %3, 1
%6 = insertvalue { ptr, ptr } poison, ptr %4, 0
%7 = insertvalue { ptr, ptr } %6, ptr %5, 1
ret { ptr, ptr } %7
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17hd16706c6e9d0a444E"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) unnamed_addr #0 {
%3 = call { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17hf285e5f8200186eaE"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) #13
%4 = extractvalue { ptr, ptr } %3, 0
%5 = extractvalue { ptr, ptr } %3, 1
%6 = insertvalue { ptr, ptr } poison, ptr %4, 0
%7 = insertvalue { ptr, ptr } %6, ptr %5, 1
ret { ptr, ptr } %7
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17hec0c68f4eb01bdedE"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr } }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(136) %1, i64 noundef %2) unnamed_addr #0 {
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17h394961c97638eb5eE"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr } }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(136) %1, i64 noundef %2) #13
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h1c7fa09b207092bcE"(ptr noalias nocapture noundef sret({ ptr, [2 x i64] }) align 8 dereferenceable(24) %0, ptr noalias noundef align 8 dereferenceable(96) %1) unnamed_addr #0 {
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h6f7eebdd5248b030E"(ptr noalias nocapture noundef sret({ ptr, [2 x i64] }) align 8 dereferenceable(24) %0, ptr noalias noundef align 8 dereferenceable(96) %1) #13
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h1e2485751ce555a3E"(ptr noalias noundef align 8 dereferenceable(56) %0) unnamed_addr #0 {
%2 = call { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h34d5314cb962e575E"(ptr noalias noundef align 8 dereferenceable(56) %0) #13
%3 = extractvalue { ptr, ptr } %2, 0
%4 = extractvalue { ptr, ptr } %2, 1
%5 = insertvalue { ptr, ptr } poison, ptr %3, 0
%6 = insertvalue { ptr, ptr } %5, ptr %4, 1
ret { ptr, ptr } %6
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h2749a207a6a0f9baE"(ptr noalias nocapture noundef sret({ ptr, [3 x i64] }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(136) %1) unnamed_addr #0 {
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17hac1e762370b9293eE"(ptr noalias nocapture noundef sret({ ptr, [3 x i64] }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(136) %1) #13
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17he6a34873ca7e5813E"(ptr noalias nocapture noundef sret({ ptr, [2 x i64] }) align 8 dereferenceable(24) %0, ptr noalias noundef align 8 dereferenceable(96) %1) unnamed_addr #0 {
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h24c60f69b9748102E"(ptr noalias nocapture noundef sret({ ptr, [2 x i64] }) align 8 dereferenceable(24) %0, ptr noalias noundef align 8 dereferenceable(96) %1) #13
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN103_$LT$core..ops..try_trait..NeverShortCircuit$LT$T$GT$$u20$as$u20$core..ops..try_trait..FromResidual$GT$13from_residual17h91492fdebafa6f90E"(ptr noalias nocapture noundef sret({ [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }) align 8 dereferenceable(288) %0) unnamed_addr #0 {
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN103_$LT$core..ops..try_trait..NeverShortCircuit$LT$T$GT$$u20$as$u20$core..ops..try_trait..FromResidual$GT$13from_residual17hd763336f334630dfE"(ptr noalias nocapture noundef sret({ [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }) align 8 dereferenceable(288) %0) unnamed_addr #0 {
unreachable
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$11into_folder17h5e486a754099a491E"(ptr noalias nocapture noundef sret({ { ptr, { { { ptr, i64 }, i64 } }, { {}, ptr, i64, i64 } }, ptr }) align 8 dereferenceable(64) %0, ptr noalias nocapture noundef align 8 dereferenceable(32) %1) unnamed_addr #1 {
%3 = alloca { {}, ptr, { ptr, i64 } }, align 8
%4 = alloca { ptr, { { { ptr, i64 }, i64 } }, { {}, ptr, i64, i64 } }, align 8
call void @llvm.lifetime.start.p0(i64 56, ptr %4)
call void @llvm.lifetime.start.p0(i64 24, ptr %3)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %3, ptr align 8 %1, i64 24, i1 false)
call void @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$11into_folder17h7b0c0ed94488a726E"(ptr noalias nocapture noundef sret({ ptr, { { { ptr, i64 }, i64 } }, { {}, ptr, i64, i64 } }) align 8 dereferenceable(56) %4, ptr noalias nocapture noundef align 8 dereferenceable(24) %3) #13
call void @llvm.lifetime.end.p0(i64 24, ptr %3)
%5 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%6 = load ptr, ptr %5, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %4, i64 56, i1 false)
%7 = getelementptr inbounds { { ptr, { { { ptr, i64 }, i64 } }, { {}, ptr, i64, i64 } }, ptr }, ptr %0, i32 0, i32 1
store ptr %6, ptr %7, align 8
call void @llvm.lifetime.end.p0(i64 56, ptr %4)
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$11into_folder17h71d4c4265fad9cfcE"(ptr noalias nocapture noundef sret({ { ptr, { {}, ptr, i64, i64 }, { {}, ptr, i64, i64 } }, ptr }) align 8 dereferenceable(64) %0, ptr noalias nocapture noundef align 8 dereferenceable(48) %1) unnamed_addr #1 {
%3 = alloca { ptr, { ptr, i64 }, { ptr, i64 } }, align 8
%4 = alloca { ptr, { {}, ptr, i64, i64 }, { {}, ptr, i64, i64 } }, align 8
call void @llvm.lifetime.start.p0(i64 56, ptr %4)
call void @llvm.lifetime.start.p0(i64 40, ptr %3)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %3, ptr align 8 %1, i64 40, i1 false)
call void @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$11into_folder17h36fe3bbe3e53747cE"(ptr noalias nocapture noundef sret({ ptr, { {}, ptr, i64, i64 }, { {}, ptr, i64, i64 } }) align 8 dereferenceable(56) %4, ptr noalias nocapture noundef align 8 dereferenceable(40) %3) #13
call void @llvm.lifetime.end.p0(i64 40, ptr %3)
%5 = getelementptr inbounds { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%6 = load ptr, ptr %5, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %4, i64 56, i1 false)
%7 = getelementptr inbounds { { ptr, { {}, ptr, i64, i64 }, { {}, ptr, i64, i64 } }, ptr }, ptr %0, i32 0, i32 1
store ptr %6, ptr %7, align 8
call void @llvm.lifetime.end.p0(i64 56, ptr %4)
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$11into_folder17h8dac4812fe87955dE"(ptr noalias nocapture noundef sret({ { ptr, { { { ptr, i64 }, i64 } }, { {}, ptr, i64, i64 } }, ptr }) align 8 dereferenceable(64) %0, ptr noalias nocapture noundef align 8 dereferenceable(32) %1) unnamed_addr #1 {
%3 = alloca { {}, ptr, { ptr, i64 } }, align 8
%4 = alloca { ptr, { { { ptr, i64 }, i64 } }, { {}, ptr, i64, i64 } }, align 8
call void @llvm.lifetime.start.p0(i64 56, ptr %4)
call void @llvm.lifetime.start.p0(i64 24, ptr %3)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %3, ptr align 8 %1, i64 24, i1 false)
call void @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$11into_folder17hceee3a0f661e3f68E"(ptr noalias nocapture noundef sret({ ptr, { { { ptr, i64 }, i64 } }, { {}, ptr, i64, i64 } }) align 8 dereferenceable(56) %4, ptr noalias nocapture noundef align 8 dereferenceable(24) %3) #13
call void @llvm.lifetime.end.p0(i64 24, ptr %3)
%5 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%6 = load ptr, ptr %5, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %4, i64 56, i1 false)
%7 = getelementptr inbounds { { ptr, { { { ptr, i64 }, i64 } }, { {}, ptr, i64, i64 } }, ptr }, ptr %0, i32 0, i32 1
store ptr %6, ptr %7, align 8
call void @llvm.lifetime.end.p0(i64 56, ptr %4)
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$11into_folder17h9ae62510d37a4784E"(ptr noalias nocapture noundef sret({ { ptr, { { { ptr, i64 }, i64 } }, { { { ptr, i64 }, i64 } } }, ptr }) align 8 dereferenceable(64) %0, ptr noalias noundef nonnull readonly align 1 %1, ptr noalias noundef readonly align 8 dereferenceable(16) %2) unnamed_addr #1 {
%4 = alloca { ptr, { { { ptr, i64 }, i64 } }, { { { ptr, i64 }, i64 } } }, align 8
%5 = alloca { ptr, ptr }, align 8
%6 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
store ptr %1, ptr %6, align 8
%7 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
store ptr %2, ptr %7, align 8
call void @llvm.lifetime.start.p0(i64 56, ptr %4)
%8 = load ptr, ptr %5, align 8, !nonnull !3, !align !4, !noundef !3
call void @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$11into_folder17h2e98c1ec87b6fd5eE"(ptr noalias nocapture noundef sret({ ptr, { { { ptr, i64 }, i64 } }, { { { ptr, i64 }, i64 } } }) align 8 dereferenceable(56) %4, ptr noalias noundef nonnull readonly align 1 %8) #13
%9 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
%10 = load ptr, ptr %9, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %4, i64 56, i1 false)
%11 = getelementptr inbounds { { ptr, { { { ptr, i64 }, i64 } }, { { { ptr, i64 }, i64 } } }, ptr }, ptr %0, i32 0, i32 1
store ptr %10, ptr %11, align 8
call void @llvm.lifetime.end.p0(i64 56, ptr %4)
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$11into_folder17h9c9a740f86d335a7E"(ptr noalias nocapture noundef sret({ { ptr, { {}, ptr, i64, i64 }, { {}, ptr, i64, i64 } }, ptr }) align 8 dereferenceable(64) %0, ptr noalias nocapture noundef align 8 dereferenceable(48) %1) unnamed_addr #1 {
%3 = alloca { ptr, { ptr, i64 }, { ptr, i64 } }, align 8
%4 = alloca { ptr, { {}, ptr, i64, i64 }, { {}, ptr, i64, i64 } }, align 8
call void @llvm.lifetime.start.p0(i64 56, ptr %4)
call void @llvm.lifetime.start.p0(i64 40, ptr %3)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %3, ptr align 8 %1, i64 40, i1 false)
call void @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$11into_folder17h36fe3bbe3e53747cE"(ptr noalias nocapture noundef sret({ ptr, { {}, ptr, i64, i64 }, { {}, ptr, i64, i64 } }) align 8 dereferenceable(56) %4, ptr noalias nocapture noundef align 8 dereferenceable(40) %3) #13
call void @llvm.lifetime.end.p0(i64 40, ptr %3)
%5 = getelementptr inbounds { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%6 = load ptr, ptr %5, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %4, i64 56, i1 false)
%7 = getelementptr inbounds { { ptr, { {}, ptr, i64, i64 }, { {}, ptr, i64, i64 } }, ptr }, ptr %0, i32 0, i32 1
store ptr %6, ptr %7, align 8
call void @llvm.lifetime.end.p0(i64 56, ptr %4)
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$11into_folder17hcb2aab9563ea07dfE"(ptr noalias nocapture noundef sret({ { ptr, { { { ptr, i64 }, i64 } }, { { { ptr, i64 }, i64 } } }, ptr }) align 8 dereferenceable(64) %0, ptr noalias noundef nonnull readonly align 1 %1, ptr noalias noundef readonly align 8 dereferenceable(16) %2) unnamed_addr #1 {
%4 = alloca { ptr, { { { ptr, i64 }, i64 } }, { { { ptr, i64 }, i64 } } }, align 8
%5 = alloca { ptr, ptr }, align 8
%6 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
store ptr %1, ptr %6, align 8
%7 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
store ptr %2, ptr %7, align 8
call void @llvm.lifetime.start.p0(i64 56, ptr %4)
%8 = load ptr, ptr %5, align 8, !nonnull !3, !align !4, !noundef !3
call void @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$11into_folder17h2e98c1ec87b6fd5eE"(ptr noalias nocapture noundef sret({ ptr, { { { ptr, i64 }, i64 } }, { { { ptr, i64 }, i64 } } }) align 8 dereferenceable(56) %4, ptr noalias noundef nonnull readonly align 1 %8) #13
%9 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
%10 = load ptr, ptr %9, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %4, i64 56, i1 false)
%11 = getelementptr inbounds { { ptr, { { { ptr, i64 }, i64 } }, { { { ptr, i64 }, i64 } } }, ptr }, ptr %0, i32 0, i32 1
store ptr %10, ptr %11, align 8
call void @llvm.lifetime.end.p0(i64 56, ptr %4)
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$11into_folder17hda87869a12c17450E"(ptr noalias nocapture noundef sret({ { ptr, { { { ptr, i64 }, i64 } }, { {}, ptr, i64, i64 } }, ptr }) align 8 dereferenceable(64) %0, ptr noalias nocapture noundef align 8 dereferenceable(32) %1) unnamed_addr #1 {
%3 = alloca { {}, ptr, { ptr, i64 } }, align 8
%4 = alloca { ptr, { { { ptr, i64 }, i64 } }, { {}, ptr, i64, i64 } }, align 8
call void @llvm.lifetime.start.p0(i64 56, ptr %4)
call void @llvm.lifetime.start.p0(i64 24, ptr %3)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %3, ptr align 8 %1, i64 24, i1 false)
call void @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$11into_folder17h7b0c0ed94488a726E"(ptr noalias nocapture noundef sret({ ptr, { { { ptr, i64 }, i64 } }, { {}, ptr, i64, i64 } }) align 8 dereferenceable(56) %4, ptr noalias nocapture noundef align 8 dereferenceable(24) %3) #13
call void @llvm.lifetime.end.p0(i64 24, ptr %3)
%5 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%6 = load ptr, ptr %5, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %4, i64 56, i1 false)
%7 = getelementptr inbounds { { ptr, { { { ptr, i64 }, i64 } }, { {}, ptr, i64, i64 } }, ptr }, ptr %0, i32 0, i32 1
store ptr %6, ptr %7, align 8
call void @llvm.lifetime.end.p0(i64 56, ptr %4)
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$11into_folder17hf036721b794ea260E"(ptr noalias nocapture noundef sret({ { ptr, { { { ptr, i64 }, i64 } }, { {}, ptr, i64, i64 } }, ptr }) align 8 dereferenceable(64) %0, ptr noalias nocapture noundef align 8 dereferenceable(32) %1) unnamed_addr #1 {
%3 = alloca { {}, ptr, { ptr, i64 } }, align 8
%4 = alloca { ptr, { { { ptr, i64 }, i64 } }, { {}, ptr, i64, i64 } }, align 8
call void @llvm.lifetime.start.p0(i64 56, ptr %4)
call void @llvm.lifetime.start.p0(i64 24, ptr %3)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %3, ptr align 8 %1, i64 24, i1 false)
call void @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$11into_folder17hceee3a0f661e3f68E"(ptr noalias nocapture noundef sret({ ptr, { { { ptr, i64 }, i64 } }, { {}, ptr, i64, i64 } }) align 8 dereferenceable(56) %4, ptr noalias nocapture noundef align 8 dereferenceable(24) %3) #13
call void @llvm.lifetime.end.p0(i64 24, ptr %3)
%5 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%6 = load ptr, ptr %5, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %4, i64 56, i1 false)
%7 = getelementptr inbounds { { ptr, { { { ptr, i64 }, i64 } }, { {}, ptr, i64, i64 } }, ptr }, ptr %0, i32 0, i32 1
store ptr %6, ptr %7, align 8
call void @llvm.lifetime.end.p0(i64 56, ptr %4)
ret void
}
; Function Attrs: nounwind nonlazybind
define internal noundef zeroext i1 @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$4full17h2196dbada9e967d9E"(ptr noalias noundef readonly align 8 dereferenceable(16) %0) unnamed_addr #1 {
%2 = call noundef zeroext i1 @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$4full17h0598e0ecce4576dcE"(ptr noalias noundef readonly align 8 dereferenceable(8) %0) #13
ret i1 %2
}
; Function Attrs: nounwind nonlazybind
define internal noundef zeroext i1 @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$4full17h38376e2f39787f01E"(ptr noalias noundef readonly align 8 dereferenceable(48) %0) unnamed_addr #1 {
%2 = call noundef zeroext i1 @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$4full17h8b5ea9ae4b95b2f9E"(ptr noalias noundef readonly align 8 dereferenceable(40) %0) #13
ret i1 %2
}
; Function Attrs: nounwind nonlazybind
define internal noundef zeroext i1 @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$4full17h3ea7e4d12298d939E"(ptr noalias noundef readonly align 8 dereferenceable(32) %0) unnamed_addr #1 {
%2 = call noundef zeroext i1 @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$4full17h43d97678ce1e319eE"(ptr noalias noundef readonly align 8 dereferenceable(24) %0) #13
ret i1 %2
}
; Function Attrs: nounwind nonlazybind
define internal noundef zeroext i1 @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$4full17h51bd88f963689e37E"(ptr noalias noundef readonly align 8 dereferenceable(32) %0) unnamed_addr #1 {
%2 = call noundef zeroext i1 @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$4full17h9fa67cb2819e0a67E"(ptr noalias noundef readonly align 8 dereferenceable(24) %0) #13
ret i1 %2
}
; Function Attrs: nounwind nonlazybind
define internal noundef zeroext i1 @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$4full17h55f6dcedd90c2f72E"(ptr noalias noundef readonly align 8 dereferenceable(48) %0) unnamed_addr #1 {
%2 = call noundef zeroext i1 @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$4full17h8b5ea9ae4b95b2f9E"(ptr noalias noundef readonly align 8 dereferenceable(40) %0) #13
ret i1 %2
}
; Function Attrs: nounwind nonlazybind
define internal noundef zeroext i1 @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$4full17hd13f2c2b5f2576b4E"(ptr noalias noundef readonly align 8 dereferenceable(32) %0) unnamed_addr #1 {
%2 = call noundef zeroext i1 @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$4full17h43d97678ce1e319eE"(ptr noalias noundef readonly align 8 dereferenceable(24) %0) #13
ret i1 %2
}
; Function Attrs: nounwind nonlazybind
define internal noundef zeroext i1 @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$4full17hd6d92cedc6a8c97eE"(ptr noalias noundef readonly align 8 dereferenceable(32) %0) unnamed_addr #1 {
%2 = call noundef zeroext i1 @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$4full17h9fa67cb2819e0a67E"(ptr noalias noundef readonly align 8 dereferenceable(24) %0) #13
ret i1 %2
}
; Function Attrs: nounwind nonlazybind
define internal noundef zeroext i1 @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$4full17he46268f21a457c2dE"(ptr noalias noundef readonly align 8 dereferenceable(16) %0) unnamed_addr #1 {
%2 = call noundef zeroext i1 @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$4full17h0598e0ecce4576dcE"(ptr noalias noundef readonly align 8 dereferenceable(8) %0) #13
ret i1 %2
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$8split_at17h007841556e88d367E"(ptr noalias nocapture noundef sret({ { { {}, ptr, { ptr, i64 } }, ptr }, { { {}, ptr, { ptr, i64 } }, ptr }, { {}, {} } }) align 8 dereferenceable(64) %0, ptr noalias nocapture noundef align 8 dereferenceable(32) %1, i64 noundef %2) unnamed_addr #1 {
%4 = alloca { { {}, ptr, { ptr, i64 } }, ptr }, align 8
%5 = alloca { { {}, ptr, { ptr, i64 } }, ptr }, align 8
%6 = alloca { {}, ptr, { ptr, i64 } }, align 8
%7 = alloca { { {}, ptr, { ptr, i64 } }, { {}, ptr, { ptr, i64 } }, { {}, {} } }, align 8
%8 = alloca { {}, ptr, { ptr, i64 } }, align 8
%9 = alloca { {}, ptr, { ptr, i64 } }, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr %7)
call void @llvm.lifetime.start.p0(i64 24, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %6, ptr align 8 %1, i64 24, i1 false)
call void @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$8split_at17h2598800b7b9ac496E"(ptr noalias nocapture noundef sret({ { {}, ptr, { ptr, i64 } }, { {}, ptr, { ptr, i64 } }, { {}, {} } }) align 8 dereferenceable(48) %7, ptr noalias nocapture noundef align 8 dereferenceable(24) %6, i64 noundef %2) #13
call void @llvm.lifetime.end.p0(i64 24, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %9, ptr align 8 %7, i64 24, i1 false)
%10 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, { {}, ptr, { ptr, i64 } }, { {}, {} } }, ptr %7, i32 0, i32 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %10, i64 24, i1 false)
call void @llvm.lifetime.end.p0(i64 48, ptr %7)
call void @llvm.lifetime.start.p0(i64 32, ptr %5)
%11 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%12 = load ptr, ptr %11, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5, ptr align 8 %9, i64 24, i1 false)
%13 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %5, i32 0, i32 1
store ptr %12, ptr %13, align 8
call void @llvm.lifetime.start.p0(i64 32, ptr %4)
%14 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%15 = load ptr, ptr %14, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %4, ptr align 8 %8, i64 24, i1 false)
%16 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %4, i32 0, i32 1
store ptr %15, ptr %16, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %5, i64 32, i1 false)
%17 = getelementptr inbounds { { { {}, ptr, { ptr, i64 } }, ptr }, { { {}, ptr, { ptr, i64 } }, ptr }, { {}, {} } }, ptr %0, i32 0, i32 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %17, ptr align 8 %4, i64 32, i1 false)
call void @llvm.lifetime.end.p0(i64 32, ptr %4)
call void @llvm.lifetime.end.p0(i64 32, ptr %5)
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$8split_at17h42fce539cff14aafE"(ptr noalias nocapture noundef sret({ { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, { {}, {} } }) align 8 dereferenceable(96) %0, ptr noalias nocapture noundef align 8 dereferenceable(48) %1, i64 noundef %2) unnamed_addr #1 {
%4 = alloca { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, align 8
%5 = alloca { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, align 8
%6 = alloca { ptr, { ptr, i64 }, { ptr, i64 } }, align 8
%7 = alloca { { ptr, { ptr, i64 }, { ptr, i64 } }, { ptr, { ptr, i64 }, { ptr, i64 } }, { {}, {} } }, align 8
%8 = alloca { ptr, { ptr, i64 }, { ptr, i64 } }, align 8
%9 = alloca { ptr, { ptr, i64 }, { ptr, i64 } }, align 8
call void @llvm.lifetime.start.p0(i64 80, ptr %7)
call void @llvm.lifetime.start.p0(i64 40, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %6, ptr align 8 %1, i64 40, i1 false)
call void @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$8split_at17he19e926bb3025d0fE"(ptr noalias nocapture noundef sret({ { ptr, { ptr, i64 }, { ptr, i64 } }, { ptr, { ptr, i64 }, { ptr, i64 } }, { {}, {} } }) align 8 dereferenceable(80) %7, ptr noalias nocapture noundef align 8 dereferenceable(40) %6, i64 noundef %2) #13
call void @llvm.lifetime.end.p0(i64 40, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %9, ptr align 8 %7, i64 40, i1 false)
%10 = getelementptr inbounds { { ptr, { ptr, i64 }, { ptr, i64 } }, { ptr, { ptr, i64 }, { ptr, i64 } }, { {}, {} } }, ptr %7, i32 0, i32 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %10, i64 40, i1 false)
call void @llvm.lifetime.end.p0(i64 80, ptr %7)
call void @llvm.lifetime.start.p0(i64 48, ptr %5)
%11 = getelementptr inbounds { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%12 = load ptr, ptr %11, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5, ptr align 8 %9, i64 40, i1 false)
%13 = getelementptr inbounds { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, ptr %5, i32 0, i32 1
store ptr %12, ptr %13, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr %4)
%14 = getelementptr inbounds { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%15 = load ptr, ptr %14, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %4, ptr align 8 %8, i64 40, i1 false)
%16 = getelementptr inbounds { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, ptr %4, i32 0, i32 1
store ptr %15, ptr %16, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %5, i64 48, i1 false)
%17 = getelementptr inbounds { { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, { {}, {} } }, ptr %0, i32 0, i32 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %17, ptr align 8 %4, i64 48, i1 false)
call void @llvm.lifetime.end.p0(i64 48, ptr %4)
call void @llvm.lifetime.end.p0(i64 48, ptr %5)
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$8split_at17h63602dabc12d18c5E"(ptr noalias nocapture noundef sret({ { { {}, ptr, { ptr, i64 } }, ptr }, { { {}, ptr, { ptr, i64 } }, ptr }, { {}, {} } }) align 8 dereferenceable(64) %0, ptr noalias nocapture noundef align 8 dereferenceable(32) %1, i64 noundef %2) unnamed_addr #1 {
%4 = alloca { { {}, ptr, { ptr, i64 } }, ptr }, align 8
%5 = alloca { { {}, ptr, { ptr, i64 } }, ptr }, align 8
%6 = alloca { {}, ptr, { ptr, i64 } }, align 8
%7 = alloca { { {}, ptr, { ptr, i64 } }, { {}, ptr, { ptr, i64 } }, { {}, {} } }, align 8
%8 = alloca { {}, ptr, { ptr, i64 } }, align 8
%9 = alloca { {}, ptr, { ptr, i64 } }, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr %7)
call void @llvm.lifetime.start.p0(i64 24, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %6, ptr align 8 %1, i64 24, i1 false)
call void @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$8split_at17ha08071080337d7f4E"(ptr noalias nocapture noundef sret({ { {}, ptr, { ptr, i64 } }, { {}, ptr, { ptr, i64 } }, { {}, {} } }) align 8 dereferenceable(48) %7, ptr noalias nocapture noundef align 8 dereferenceable(24) %6, i64 noundef %2) #13
call void @llvm.lifetime.end.p0(i64 24, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %9, ptr align 8 %7, i64 24, i1 false)
%10 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, { {}, ptr, { ptr, i64 } }, { {}, {} } }, ptr %7, i32 0, i32 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %10, i64 24, i1 false)
call void @llvm.lifetime.end.p0(i64 48, ptr %7)
call void @llvm.lifetime.start.p0(i64 32, ptr %5)
%11 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%12 = load ptr, ptr %11, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5, ptr align 8 %9, i64 24, i1 false)
%13 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %5, i32 0, i32 1
store ptr %12, ptr %13, align 8
call void @llvm.lifetime.start.p0(i64 32, ptr %4)
%14 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%15 = load ptr, ptr %14, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %4, ptr align 8 %8, i64 24, i1 false)
%16 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %4, i32 0, i32 1
store ptr %15, ptr %16, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %5, i64 32, i1 false)
%17 = getelementptr inbounds { { { {}, ptr, { ptr, i64 } }, ptr }, { { {}, ptr, { ptr, i64 } }, ptr }, { {}, {} } }, ptr %0, i32 0, i32 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %17, ptr align 8 %4, i64 32, i1 false)
call void @llvm.lifetime.end.p0(i64 32, ptr %4)
call void @llvm.lifetime.end.p0(i64 32, ptr %5)
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$8split_at17h81bbef1873123ef9E"(ptr noalias nocapture noundef sret({ { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, { {}, {} } }) align 8 dereferenceable(96) %0, ptr noalias nocapture noundef align 8 dereferenceable(48) %1, i64 noundef %2) unnamed_addr #1 {
%4 = alloca { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, align 8
%5 = alloca { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, align 8
%6 = alloca { ptr, { ptr, i64 }, { ptr, i64 } }, align 8
%7 = alloca { { ptr, { ptr, i64 }, { ptr, i64 } }, { ptr, { ptr, i64 }, { ptr, i64 } }, { {}, {} } }, align 8
%8 = alloca { ptr, { ptr, i64 }, { ptr, i64 } }, align 8
%9 = alloca { ptr, { ptr, i64 }, { ptr, i64 } }, align 8
call void @llvm.lifetime.start.p0(i64 80, ptr %7)
call void @llvm.lifetime.start.p0(i64 40, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %6, ptr align 8 %1, i64 40, i1 false)
call void @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$8split_at17he19e926bb3025d0fE"(ptr noalias nocapture noundef sret({ { ptr, { ptr, i64 }, { ptr, i64 } }, { ptr, { ptr, i64 }, { ptr, i64 } }, { {}, {} } }) align 8 dereferenceable(80) %7, ptr noalias nocapture noundef align 8 dereferenceable(40) %6, i64 noundef %2) #13
call void @llvm.lifetime.end.p0(i64 40, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %9, ptr align 8 %7, i64 40, i1 false)
%10 = getelementptr inbounds { { ptr, { ptr, i64 }, { ptr, i64 } }, { ptr, { ptr, i64 }, { ptr, i64 } }, { {}, {} } }, ptr %7, i32 0, i32 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %10, i64 40, i1 false)
call void @llvm.lifetime.end.p0(i64 80, ptr %7)
call void @llvm.lifetime.start.p0(i64 48, ptr %5)
%11 = getelementptr inbounds { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%12 = load ptr, ptr %11, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5, ptr align 8 %9, i64 40, i1 false)
%13 = getelementptr inbounds { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, ptr %5, i32 0, i32 1
store ptr %12, ptr %13, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr %4)
%14 = getelementptr inbounds { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%15 = load ptr, ptr %14, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %4, ptr align 8 %8, i64 40, i1 false)
%16 = getelementptr inbounds { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, ptr %4, i32 0, i32 1
store ptr %15, ptr %16, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %5, i64 48, i1 false)
%17 = getelementptr inbounds { { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, { {}, {} } }, ptr %0, i32 0, i32 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %17, ptr align 8 %4, i64 48, i1 false)
call void @llvm.lifetime.end.p0(i64 48, ptr %4)
call void @llvm.lifetime.end.p0(i64 48, ptr %5)
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$8split_at17h936bbf461d0c3b7cE"(ptr noalias nocapture noundef sret({ { { {}, ptr, { ptr, i64 } }, ptr }, { { {}, ptr, { ptr, i64 } }, ptr }, { {}, {} } }) align 8 dereferenceable(64) %0, ptr noalias nocapture noundef align 8 dereferenceable(32) %1, i64 noundef %2) unnamed_addr #1 {
%4 = alloca { { {}, ptr, { ptr, i64 } }, ptr }, align 8
%5 = alloca { { {}, ptr, { ptr, i64 } }, ptr }, align 8
%6 = alloca { {}, ptr, { ptr, i64 } }, align 8
%7 = alloca { { {}, ptr, { ptr, i64 } }, { {}, ptr, { ptr, i64 } }, { {}, {} } }, align 8
%8 = alloca { {}, ptr, { ptr, i64 } }, align 8
%9 = alloca { {}, ptr, { ptr, i64 } }, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr %7)
call void @llvm.lifetime.start.p0(i64 24, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %6, ptr align 8 %1, i64 24, i1 false)
call void @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$8split_at17ha08071080337d7f4E"(ptr noalias nocapture noundef sret({ { {}, ptr, { ptr, i64 } }, { {}, ptr, { ptr, i64 } }, { {}, {} } }) align 8 dereferenceable(48) %7, ptr noalias nocapture noundef align 8 dereferenceable(24) %6, i64 noundef %2) #13
call void @llvm.lifetime.end.p0(i64 24, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %9, ptr align 8 %7, i64 24, i1 false)
%10 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, { {}, ptr, { ptr, i64 } }, { {}, {} } }, ptr %7, i32 0, i32 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %10, i64 24, i1 false)
call void @llvm.lifetime.end.p0(i64 48, ptr %7)
call void @llvm.lifetime.start.p0(i64 32, ptr %5)
%11 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%12 = load ptr, ptr %11, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5, ptr align 8 %9, i64 24, i1 false)
%13 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %5, i32 0, i32 1
store ptr %12, ptr %13, align 8
call void @llvm.lifetime.start.p0(i64 32, ptr %4)
%14 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%15 = load ptr, ptr %14, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %4, ptr align 8 %8, i64 24, i1 false)
%16 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %4, i32 0, i32 1
store ptr %15, ptr %16, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %5, i64 32, i1 false)
%17 = getelementptr inbounds { { { {}, ptr, { ptr, i64 } }, ptr }, { { {}, ptr, { ptr, i64 } }, ptr }, { {}, {} } }, ptr %0, i32 0, i32 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %17, ptr align 8 %4, i64 32, i1 false)
call void @llvm.lifetime.end.p0(i64 32, ptr %4)
call void @llvm.lifetime.end.p0(i64 32, ptr %5)
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$8split_at17h96d2701df8f7f778E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, { {}, {} } }) align 8 dereferenceable(32) %0, ptr noalias noundef nonnull readonly align 1 %1, ptr noalias noundef readonly align 8 dereferenceable(16) %2, i64 noundef %3) unnamed_addr #1 {
%5 = alloca { ptr, ptr }, align 8
%6 = alloca { ptr, ptr }, align 8
%7 = alloca { ptr, ptr }, align 8
%8 = getelementptr inbounds { ptr, ptr }, ptr %7, i32 0, i32 0
store ptr %1, ptr %8, align 8
%9 = getelementptr inbounds { ptr, ptr }, ptr %7, i32 0, i32 1
store ptr %2, ptr %9, align 8
%10 = load ptr, ptr %7, align 8, !nonnull !3, !align !4, !noundef !3
%11 = call { ptr, ptr } @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$8split_at17hcbb1f5a4d12f8ad9E"(ptr noalias noundef nonnull readonly align 1 %10, i64 noundef %3) #13
%12 = extractvalue { ptr, ptr } %11, 0
%13 = extractvalue { ptr, ptr } %11, 1
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
%14 = getelementptr inbounds { ptr, ptr }, ptr %7, i32 0, i32 1
%15 = load ptr, ptr %14, align 8, !nonnull !3, !align !5, !noundef !3
store ptr %12, ptr %6, align 8
%16 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
store ptr %15, ptr %16, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %5)
%17 = getelementptr inbounds { ptr, ptr }, ptr %7, i32 0, i32 1
%18 = load ptr, ptr %17, align 8, !nonnull !3, !align !5, !noundef !3
store ptr %13, ptr %5, align 8
%19 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
store ptr %18, ptr %19, align 8
%20 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 0
%21 = load ptr, ptr %20, align 8, !nonnull !3, !align !4, !noundef !3
%22 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
%23 = load ptr, ptr %22, align 8, !nonnull !3, !align !5, !noundef !3
%24 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 0
store ptr %21, ptr %24, align 8
%25 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 1
store ptr %23, ptr %25, align 8
%26 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
%27 = load ptr, ptr %26, align 8, !nonnull !3, !align !4, !noundef !3
%28 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
%29 = load ptr, ptr %28, align 8, !nonnull !3, !align !5, !noundef !3
%30 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, { {}, {} } }, ptr %0, i32 0, i32 1
%31 = getelementptr inbounds { ptr, ptr }, ptr %30, i32 0, i32 0
store ptr %27, ptr %31, align 8
%32 = getelementptr inbounds { ptr, ptr }, ptr %30, i32 0, i32 1
store ptr %29, ptr %32, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$8split_at17hd79456758ebbb891E"(ptr noalias nocapture noundef sret({ { { {}, ptr, { ptr, i64 } }, ptr }, { { {}, ptr, { ptr, i64 } }, ptr }, { {}, {} } }) align 8 dereferenceable(64) %0, ptr noalias nocapture noundef align 8 dereferenceable(32) %1, i64 noundef %2) unnamed_addr #1 {
%4 = alloca { { {}, ptr, { ptr, i64 } }, ptr }, align 8
%5 = alloca { { {}, ptr, { ptr, i64 } }, ptr }, align 8
%6 = alloca { {}, ptr, { ptr, i64 } }, align 8
%7 = alloca { { {}, ptr, { ptr, i64 } }, { {}, ptr, { ptr, i64 } }, { {}, {} } }, align 8
%8 = alloca { {}, ptr, { ptr, i64 } }, align 8
%9 = alloca { {}, ptr, { ptr, i64 } }, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr %7)
call void @llvm.lifetime.start.p0(i64 24, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %6, ptr align 8 %1, i64 24, i1 false)
call void @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$8split_at17h2598800b7b9ac496E"(ptr noalias nocapture noundef sret({ { {}, ptr, { ptr, i64 } }, { {}, ptr, { ptr, i64 } }, { {}, {} } }) align 8 dereferenceable(48) %7, ptr noalias nocapture noundef align 8 dereferenceable(24) %6, i64 noundef %2) #13
call void @llvm.lifetime.end.p0(i64 24, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %9, ptr align 8 %7, i64 24, i1 false)
%10 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, { {}, ptr, { ptr, i64 } }, { {}, {} } }, ptr %7, i32 0, i32 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %10, i64 24, i1 false)
call void @llvm.lifetime.end.p0(i64 48, ptr %7)
call void @llvm.lifetime.start.p0(i64 32, ptr %5)
%11 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%12 = load ptr, ptr %11, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5, ptr align 8 %9, i64 24, i1 false)
%13 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %5, i32 0, i32 1
store ptr %12, ptr %13, align 8
call void @llvm.lifetime.start.p0(i64 32, ptr %4)
%14 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %1, i32 0, i32 1
%15 = load ptr, ptr %14, align 8, !nonnull !3, !align !5, !noundef !3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %4, ptr align 8 %8, i64 24, i1 false)
%16 = getelementptr inbounds { { {}, ptr, { ptr, i64 } }, ptr }, ptr %4, i32 0, i32 1
store ptr %15, ptr %16, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %5, i64 32, i1 false)
%17 = getelementptr inbounds { { { {}, ptr, { ptr, i64 } }, ptr }, { { {}, ptr, { ptr, i64 } }, ptr }, { {}, {} } }, ptr %0, i32 0, i32 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %17, ptr align 8 %4, i64 32, i1 false)
call void @llvm.lifetime.end.p0(i64 32, ptr %4)
call void @llvm.lifetime.end.p0(i64 32, ptr %5)
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN103_$LT$rayon..iter..map..MapConsumer$LT$C$C$F$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$8split_at17hddb91e77e06c9f94E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, { {}, {} } }) align 8 dereferenceable(32) %0, ptr noalias noundef nonnull readonly align 1 %1, ptr noalias noundef readonly align 8 dereferenceable(16) %2, i64 noundef %3) unnamed_addr #1 {
%5 = alloca { ptr, ptr }, align 8
%6 = alloca { ptr, ptr }, align 8
%7 = alloca { ptr, ptr }, align 8
%8 = getelementptr inbounds { ptr, ptr }, ptr %7, i32 0, i32 0
store ptr %1, ptr %8, align 8
%9 = getelementptr inbounds { ptr, ptr }, ptr %7, i32 0, i32 1
store ptr %2, ptr %9, align 8
%10 = load ptr, ptr %7, align 8, !nonnull !3, !align !4, !noundef !3
%11 = call { ptr, ptr } @"_ZN114_$LT$rayon..iter..unzip..UnzipConsumer$LT$OP$C$CA$C$CB$GT$$u20$as$u20$rayon..iter..plumbing..Consumer$LT$T$GT$$GT$8split_at17hcbb1f5a4d12f8ad9E"(ptr noalias noundef nonnull readonly align 1 %10, i64 noundef %3) #13
%12 = extractvalue { ptr, ptr } %11, 0
%13 = extractvalue { ptr, ptr } %11, 1
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
%14 = getelementptr inbounds { ptr, ptr }, ptr %7, i32 0, i32 1
%15 = load ptr, ptr %14, align 8, !nonnull !3, !align !5, !noundef !3
store ptr %12, ptr %6, align 8
%16 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
store ptr %15, ptr %16, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %5)
%17 = getelementptr inbounds { ptr, ptr }, ptr %7, i32 0, i32 1
%18 = load ptr, ptr %17, align 8, !nonnull !3, !align !5, !noundef !3
store ptr %13, ptr %5, align 8
%19 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
store ptr %18, ptr %19, align 8
%20 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 0
%21 = load ptr, ptr %20, align 8, !nonnull !3, !align !4, !noundef !3
%22 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
%23 = load ptr, ptr %22, align 8, !nonnull !3, !align !5, !noundef !3
%24 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 0
store ptr %21, ptr %24, align 8
%25 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 1
store ptr %23, ptr %25, align 8
%26 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
%27 = load ptr, ptr %26, align 8, !nonnull !3, !align !4, !noundef !3
%28 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
%29 = load ptr, ptr %28, align 8, !nonnull !3, !align !5, !noundef !3
%30 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, { {}, {} } }, ptr %0, i32 0, i32 1
%31 = getelementptr inbounds { ptr, ptr }, ptr %30, i32 0, i32 0
store ptr %27, ptr %31, align 8
%32 = getelementptr inbounds { ptr, ptr }, ptr %30, i32 0, i32 1
store ptr %29, ptr %32, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i64 } @"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h14bdce5cea762231E"(i64 noundef %0, i64 noundef %1, ptr noalias noundef nonnull readonly align 2 %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) unnamed_addr #0 {
%6 = alloca { ptr, i64 }, align 8
%7 = alloca { [2 x i64] }, align 8
%8 = icmp ugt i64 %0, %1
br i1 %8, label %11, label %9
9: ; preds = %5
%10 = icmp ugt i64 %1, %3
br i1 %10, label %28, label %12
11: ; preds = %5
call void @_ZN4core5slice5index22slice_index_order_fail17h3d686c99853682a4E(i64 noundef %0, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
12: ; preds = %9
%13 = sub nuw i64 %1, %0
%14 = getelementptr inbounds i16, ptr %2, i64 %0
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %14, ptr %6, align 8
%15 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 %13, ptr %15, align 8
%16 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%17 = load ptr, ptr %16, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%19 = load i64, ptr %18, align 8, !noundef !3
%20 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
store ptr %17, ptr %20, align 8
%21 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
store i64 %19, ptr %21, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%22 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
%23 = load ptr, ptr %22, align 8, !noundef !3
%24 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%25 = load i64, ptr %24, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%26 = insertvalue { ptr, i64 } poison, ptr %23, 0
%27 = insertvalue { ptr, i64 } %26, i64 %25, 1
ret { ptr, i64 } %27
28: ; preds = %9
call void @_ZN4core5slice5index24slice_end_index_len_fail17h7a883d7187e0a85fE(i64 noundef %1, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i64 } @"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h29185c34497d00efE"(i64 noundef %0, i64 noundef %1, ptr noalias noundef nonnull readonly align 4 %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) unnamed_addr #0 {
%6 = alloca { ptr, i64 }, align 8
%7 = alloca { [2 x i64] }, align 8
%8 = icmp ugt i64 %0, %1
br i1 %8, label %11, label %9
9: ; preds = %5
%10 = icmp ugt i64 %1, %3
br i1 %10, label %28, label %12
11: ; preds = %5
call void @_ZN4core5slice5index22slice_index_order_fail17h3d686c99853682a4E(i64 noundef %0, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
12: ; preds = %9
%13 = sub nuw i64 %1, %0
%14 = getelementptr inbounds i32, ptr %2, i64 %0
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %14, ptr %6, align 8
%15 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 %13, ptr %15, align 8
%16 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%17 = load ptr, ptr %16, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%19 = load i64, ptr %18, align 8, !noundef !3
%20 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
store ptr %17, ptr %20, align 8
%21 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
store i64 %19, ptr %21, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%22 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
%23 = load ptr, ptr %22, align 8, !noundef !3
%24 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%25 = load i64, ptr %24, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%26 = insertvalue { ptr, i64 } poison, ptr %23, 0
%27 = insertvalue { ptr, i64 } %26, i64 %25, 1
ret { ptr, i64 } %27
28: ; preds = %9
call void @_ZN4core5slice5index24slice_end_index_len_fail17h7a883d7187e0a85fE(i64 noundef %1, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i64 } @"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h73efbc34d7a4a673E"(i64 noundef %0, i64 noundef %1, ptr noalias noundef nonnull readonly align 4 %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) unnamed_addr #0 {
%6 = alloca { ptr, i64 }, align 8
%7 = alloca { [2 x i64] }, align 8
%8 = icmp ugt i64 %0, %1
br i1 %8, label %11, label %9
9: ; preds = %5
%10 = icmp ugt i64 %1, %3
br i1 %10, label %28, label %12
11: ; preds = %5
call void @_ZN4core5slice5index22slice_index_order_fail17h3d686c99853682a4E(i64 noundef %0, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
12: ; preds = %9
%13 = sub nuw i64 %1, %0
%14 = getelementptr inbounds i32, ptr %2, i64 %0
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %14, ptr %6, align 8
%15 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 %13, ptr %15, align 8
%16 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%17 = load ptr, ptr %16, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%19 = load i64, ptr %18, align 8, !noundef !3
%20 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
store ptr %17, ptr %20, align 8
%21 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
store i64 %19, ptr %21, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%22 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
%23 = load ptr, ptr %22, align 8, !noundef !3
%24 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%25 = load i64, ptr %24, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%26 = insertvalue { ptr, i64 } poison, ptr %23, 0
%27 = insertvalue { ptr, i64 } %26, i64 %25, 1
ret { ptr, i64 } %27
28: ; preds = %9
call void @_ZN4core5slice5index24slice_end_index_len_fail17h7a883d7187e0a85fE(i64 noundef %1, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i64 } @"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17he17690789cf2a528E"(i64 noundef %0, i64 noundef %1, ptr noalias noundef nonnull readonly align 1 %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) unnamed_addr #0 {
%6 = alloca { ptr, i64 }, align 8
%7 = alloca { [2 x i64] }, align 8
%8 = icmp ugt i64 %0, %1
br i1 %8, label %11, label %9
9: ; preds = %5
%10 = icmp ugt i64 %1, %3
br i1 %10, label %28, label %12
11: ; preds = %5
call void @_ZN4core5slice5index22slice_index_order_fail17h3d686c99853682a4E(i64 noundef %0, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
12: ; preds = %9
%13 = sub nuw i64 %1, %0
%14 = getelementptr inbounds { [2 x i8], i8, i8 }, ptr %2, i64 %0
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %14, ptr %6, align 8
%15 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 %13, ptr %15, align 8
%16 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%17 = load ptr, ptr %16, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%19 = load i64, ptr %18, align 8, !noundef !3
%20 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
store ptr %17, ptr %20, align 8
%21 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
store i64 %19, ptr %21, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%22 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
%23 = load ptr, ptr %22, align 8, !noundef !3
%24 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%25 = load i64, ptr %24, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%26 = insertvalue { ptr, i64 } poison, ptr %23, 0
%27 = insertvalue { ptr, i64 } %26, i64 %25, 1
ret { ptr, i64 } %27
28: ; preds = %9
call void @_ZN4core5slice5index24slice_end_index_len_fail17h7a883d7187e0a85fE(i64 noundef %1, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i64 } @"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17he58badeb4a308109E"(i64 noundef %0, i64 noundef %1, ptr noalias noundef nonnull readonly align 1 %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) unnamed_addr #0 {
%6 = alloca { ptr, i64 }, align 8
%7 = alloca { [2 x i64] }, align 8
%8 = icmp ugt i64 %0, %1
br i1 %8, label %11, label %9
9: ; preds = %5
%10 = icmp ugt i64 %1, %3
br i1 %10, label %28, label %12
11: ; preds = %5
call void @_ZN4core5slice5index22slice_index_order_fail17h3d686c99853682a4E(i64 noundef %0, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
12: ; preds = %9
%13 = sub nuw i64 %1, %0
%14 = getelementptr inbounds i8, ptr %2, i64 %0
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %14, ptr %6, align 8
%15 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 %13, ptr %15, align 8
%16 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%17 = load ptr, ptr %16, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%19 = load i64, ptr %18, align 8, !noundef !3
%20 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
store ptr %17, ptr %20, align 8
%21 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
store i64 %19, ptr %21, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%22 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
%23 = load ptr, ptr %22, align 8, !noundef !3
%24 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%25 = load i64, ptr %24, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%26 = insertvalue { ptr, i64 } poison, ptr %23, 0
%27 = insertvalue { ptr, i64 } %26, i64 %25, 1
ret { ptr, i64 } %27
28: ; preds = %9
call void @_ZN4core5slice5index24slice_end_index_len_fail17h7a883d7187e0a85fE(i64 noundef %1, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i64 } @"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17hf002e4fe90900c3fE"(i64 noundef %0, i64 noundef %1, ptr noalias noundef nonnull readonly align 8 %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) unnamed_addr #0 {
%6 = alloca { ptr, i64 }, align 8
%7 = alloca { [2 x i64] }, align 8
%8 = icmp ugt i64 %0, %1
br i1 %8, label %11, label %9
9: ; preds = %5
%10 = icmp ugt i64 %1, %3
br i1 %10, label %28, label %12
11: ; preds = %5
call void @_ZN4core5slice5index22slice_index_order_fail17h3d686c99853682a4E(i64 noundef %0, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
12: ; preds = %9
%13 = sub nuw i64 %1, %0
%14 = getelementptr inbounds { double, double, double, double, double }, ptr %2, i64 %0
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %14, ptr %6, align 8
%15 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 %13, ptr %15, align 8
%16 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%17 = load ptr, ptr %16, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%19 = load i64, ptr %18, align 8, !noundef !3
%20 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
store ptr %17, ptr %20, align 8
%21 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
store i64 %19, ptr %21, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%22 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
%23 = load ptr, ptr %22, align 8, !noundef !3
%24 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%25 = load i64, ptr %24, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%26 = insertvalue { ptr, i64 } poison, ptr %23, 0
%27 = insertvalue { ptr, i64 } %26, i64 %25, 1
ret { ptr, i64 } %27
28: ; preds = %9
call void @_ZN4core5slice5index24slice_end_index_len_fail17h7a883d7187e0a85fE(i64 noundef %1, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i64 } @"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h2899eca4b52cb8b9E"(i64 noundef %0, i64 noundef %1, ptr noalias noundef nonnull align 1 %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) unnamed_addr #0 {
%6 = alloca { ptr, i64 }, align 8
%7 = alloca { [2 x i64] }, align 8
%8 = icmp ugt i64 %0, %1
br i1 %8, label %11, label %9
9: ; preds = %5
%10 = icmp ugt i64 %1, %3
br i1 %10, label %28, label %12
11: ; preds = %5
call void @_ZN4core5slice5index22slice_index_order_fail17h3d686c99853682a4E(i64 noundef %0, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
12: ; preds = %9
%13 = sub nuw i64 %1, %0
%14 = getelementptr inbounds i8, ptr %2, i64 %0
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %14, ptr %6, align 8
%15 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 %13, ptr %15, align 8
%16 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%17 = load ptr, ptr %16, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%19 = load i64, ptr %18, align 8, !noundef !3
%20 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
store ptr %17, ptr %20, align 8
%21 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
store i64 %19, ptr %21, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%22 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
%23 = load ptr, ptr %22, align 8, !noundef !3
%24 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%25 = load i64, ptr %24, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%26 = insertvalue { ptr, i64 } poison, ptr %23, 0
%27 = insertvalue { ptr, i64 } %26, i64 %25, 1
ret { ptr, i64 } %27
28: ; preds = %9
call void @_ZN4core5slice5index24slice_end_index_len_fail17h7a883d7187e0a85fE(i64 noundef %1, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i64 } @"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h503c078dace678cdE"(i64 noundef %0, i64 noundef %1, ptr noalias noundef nonnull align 2 %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) unnamed_addr #0 {
%6 = alloca { ptr, i64 }, align 8
%7 = alloca { [2 x i64] }, align 8
%8 = icmp ugt i64 %0, %1
br i1 %8, label %11, label %9
9: ; preds = %5
%10 = icmp ugt i64 %1, %3
br i1 %10, label %28, label %12
11: ; preds = %5
call void @_ZN4core5slice5index22slice_index_order_fail17h3d686c99853682a4E(i64 noundef %0, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
12: ; preds = %9
%13 = sub nuw i64 %1, %0
%14 = getelementptr inbounds i16, ptr %2, i64 %0
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %14, ptr %6, align 8
%15 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 %13, ptr %15, align 8
%16 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%17 = load ptr, ptr %16, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%19 = load i64, ptr %18, align 8, !noundef !3
%20 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
store ptr %17, ptr %20, align 8
%21 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
store i64 %19, ptr %21, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%22 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
%23 = load ptr, ptr %22, align 8, !noundef !3
%24 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%25 = load i64, ptr %24, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%26 = insertvalue { ptr, i64 } poison, ptr %23, 0
%27 = insertvalue { ptr, i64 } %26, i64 %25, 1
ret { ptr, i64 } %27
28: ; preds = %9
call void @_ZN4core5slice5index24slice_end_index_len_fail17h7a883d7187e0a85fE(i64 noundef %1, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i64 } @"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h5182407442e8158cE"(i64 noundef %0, i64 noundef %1, ptr noalias noundef nonnull align 4 %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) unnamed_addr #0 {
%6 = alloca { ptr, i64 }, align 8
%7 = alloca { [2 x i64] }, align 8
%8 = icmp ugt i64 %0, %1
br i1 %8, label %11, label %9
9: ; preds = %5
%10 = icmp ugt i64 %1, %3
br i1 %10, label %28, label %12
11: ; preds = %5
call void @_ZN4core5slice5index22slice_index_order_fail17h3d686c99853682a4E(i64 noundef %0, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
12: ; preds = %9
%13 = sub nuw i64 %1, %0
%14 = getelementptr inbounds i32, ptr %2, i64 %0
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %14, ptr %6, align 8
%15 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 %13, ptr %15, align 8
%16 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%17 = load ptr, ptr %16, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%19 = load i64, ptr %18, align 8, !noundef !3
%20 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
store ptr %17, ptr %20, align 8
%21 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
store i64 %19, ptr %21, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%22 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
%23 = load ptr, ptr %22, align 8, !noundef !3
%24 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%25 = load i64, ptr %24, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%26 = insertvalue { ptr, i64 } poison, ptr %23, 0
%27 = insertvalue { ptr, i64 } %26, i64 %25, 1
ret { ptr, i64 } %27
28: ; preds = %9
call void @_ZN4core5slice5index24slice_end_index_len_fail17h7a883d7187e0a85fE(i64 noundef %1, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i64 } @"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h8d91f3e4c48518fcE"(i64 noundef %0, i64 noundef %1, ptr noalias noundef nonnull align 4 %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) unnamed_addr #0 {
%6 = alloca { ptr, i64 }, align 8
%7 = alloca { [2 x i64] }, align 8
%8 = icmp ugt i64 %0, %1
br i1 %8, label %11, label %9
9: ; preds = %5
%10 = icmp ugt i64 %1, %3
br i1 %10, label %28, label %12
11: ; preds = %5
call void @_ZN4core5slice5index22slice_index_order_fail17h3d686c99853682a4E(i64 noundef %0, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
12: ; preds = %9
%13 = sub nuw i64 %1, %0
%14 = getelementptr inbounds i32, ptr %2, i64 %0
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %14, ptr %6, align 8
%15 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 %13, ptr %15, align 8
%16 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%17 = load ptr, ptr %16, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%19 = load i64, ptr %18, align 8, !noundef !3
%20 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
store ptr %17, ptr %20, align 8
%21 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
store i64 %19, ptr %21, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%22 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
%23 = load ptr, ptr %22, align 8, !noundef !3
%24 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%25 = load i64, ptr %24, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%26 = insertvalue { ptr, i64 } poison, ptr %23, 0
%27 = insertvalue { ptr, i64 } %26, i64 %25, 1
ret { ptr, i64 } %27
28: ; preds = %9
call void @_ZN4core5slice5index24slice_end_index_len_fail17h7a883d7187e0a85fE(i64 noundef %1, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i64 } @"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17he732d2cae4eea9ceE"(i64 noundef %0, i64 noundef %1, ptr noalias noundef nonnull align 1 %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) unnamed_addr #0 {
%6 = alloca { ptr, i64 }, align 8
%7 = alloca { [2 x i64] }, align 8
%8 = icmp ugt i64 %0, %1
br i1 %8, label %11, label %9
9: ; preds = %5
%10 = icmp ugt i64 %1, %3
br i1 %10, label %28, label %12
11: ; preds = %5
call void @_ZN4core5slice5index22slice_index_order_fail17h3d686c99853682a4E(i64 noundef %0, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
12: ; preds = %9
%13 = sub nuw i64 %1, %0
%14 = getelementptr inbounds { { i8, [6 x i8] } }, ptr %2, i64 %0
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %14, ptr %6, align 8
%15 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 %13, ptr %15, align 8
%16 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%17 = load ptr, ptr %16, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%19 = load i64, ptr %18, align 8, !noundef !3
%20 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
store ptr %17, ptr %20, align 8
%21 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
store i64 %19, ptr %21, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%22 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
%23 = load ptr, ptr %22, align 8, !noundef !3
%24 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%25 = load i64, ptr %24, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%26 = insertvalue { ptr, i64 } poison, ptr %23, 0
%27 = insertvalue { ptr, i64 } %26, i64 %25, 1
ret { ptr, i64 } %27
28: ; preds = %9
call void @_ZN4core5slice5index24slice_end_index_len_fail17h7a883d7187e0a85fE(i64 noundef %1, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef i64 @"_ZN108_$LT$core..iter..adapters..filter..Filter$LT$I$C$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$5count17h5c502a2db268fc2aE"(ptr noundef nonnull %0, ptr noundef %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = call { ptr, ptr } @_ZN4core4iter6traits8iterator8Iterator3map17ha55d39f73635d6d1E(ptr noundef nonnull %0, ptr noundef %1) #13
%5 = extractvalue { ptr, ptr } %4, 0
%6 = extractvalue { ptr, ptr } %4, 1
br label %7
7: ; preds = %2
%8 = call noundef i64 @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h227fbda50fe75aebE"(ptr noundef nonnull %5, ptr noundef %6, i64 noundef 0) #13
ret i64 %8
9: ; No predecessors!
br i1 false, label %16, label %10
10: ; preds = %16, %9
%11 = load ptr, ptr %3, align 8, !noundef !3
%12 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%13 = load i32, ptr %12, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%14 = insertvalue { ptr, i32 } poison, ptr %11, 0
%15 = insertvalue { ptr, i32 } %14, i32 %13, 1
resume { ptr, i32 } %15
16: ; preds = %9
br label %10
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef i64 @"_ZN108_$LT$core..iter..adapters..filter..Filter$LT$I$C$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$5count17h6e9a2cff9f3990cdE"(ptr noundef nonnull %0, ptr noundef %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = call { ptr, ptr } @_ZN4core4iter6traits8iterator8Iterator3map17h6f3590569b461620E(ptr noundef nonnull %0, ptr noundef %1) #13
%5 = extractvalue { ptr, ptr } %4, 0
%6 = extractvalue { ptr, ptr } %4, 1
br label %7
7: ; preds = %2
%8 = call noundef i64 @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hf3c9010d165f2531E"(ptr noundef nonnull %5, ptr noundef %6, i64 noundef 0) #13
ret i64 %8
9: ; No predecessors!
br i1 false, label %16, label %10
10: ; preds = %16, %9
%11 = load ptr, ptr %3, align 8, !noundef !3
%12 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%13 = load i32, ptr %12, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%14 = insertvalue { ptr, i32 } poison, ptr %11, 0
%15 = insertvalue { ptr, i32 } %14, i32 %13, 1
resume { ptr, i32 } %15
16: ; preds = %9
br label %10
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef i64 @"_ZN108_$LT$core..iter..adapters..filter..Filter$LT$I$C$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$5count17h75102e392650b7ceE"(ptr noundef nonnull %0, ptr noundef %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = call { ptr, ptr } @_ZN4core4iter6traits8iterator8Iterator3map17hf4bb88043900098eE(ptr noundef nonnull %0, ptr noundef %1) #13
%5 = extractvalue { ptr, ptr } %4, 0
%6 = extractvalue { ptr, ptr } %4, 1
br label %7
7: ; preds = %2
%8 = call noundef i64 @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4715995ef57a298eE"(ptr noundef nonnull %5, ptr noundef %6, i64 noundef 0) #13
ret i64 %8
9: ; No predecessors!
br i1 false, label %16, label %10
10: ; preds = %16, %9
%11 = load ptr, ptr %3, align 8, !noundef !3
%12 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%13 = load i32, ptr %12, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%14 = insertvalue { ptr, i32 } poison, ptr %11, 0
%15 = insertvalue { ptr, i32 } %14, i32 %13, 1
resume { ptr, i32 } %15
16: ; preds = %9
br label %10
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef i64 @"_ZN108_$LT$core..iter..adapters..filter..Filter$LT$I$C$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$5count17h82272148696c8a0cE"(ptr noundef nonnull %0, ptr noundef %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = call { ptr, ptr } @_ZN4core4iter6traits8iterator8Iterator3map17h6a2a7b821592ea1cE(ptr noundef nonnull %0, ptr noundef %1) #13
%5 = extractvalue { ptr, ptr } %4, 0
%6 = extractvalue { ptr, ptr } %4, 1
br label %7
7: ; preds = %2
%8 = call noundef i64 @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h97718f4e97356c69E"(ptr noundef nonnull %5, ptr noundef %6, i64 noundef 0) #13
ret i64 %8
9: ; No predecessors!
br i1 false, label %16, label %10
10: ; preds = %16, %9
%11 = load ptr, ptr %3, align 8, !noundef !3
%12 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%13 = load i32, ptr %12, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%14 = insertvalue { ptr, i32 } poison, ptr %11, 0
%15 = insertvalue { ptr, i32 } %14, i32 %13, 1
resume { ptr, i32 } %15
16: ; preds = %9
br label %10
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i64 } @"_ZN108_$LT$core..ops..range..RangeTo$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h3ed1229f8b186b7aE"(i64 noundef %0, ptr noalias noundef nonnull readonly align 8 %1, i64 noundef %2, ptr noalias noundef readonly align 8 dereferenceable(24) %3) unnamed_addr #0 {
%5 = alloca { i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %5)
store i64 0, ptr %5, align 8
%6 = getelementptr inbounds { i64, i64 }, ptr %5, i32 0, i32 1
store i64 %0, ptr %6, align 8
%7 = getelementptr inbounds { i64, i64 }, ptr %5, i32 0, i32 0
%8 = load i64, ptr %7, align 8, !noundef !3
%9 = getelementptr inbounds { i64, i64 }, ptr %5, i32 0, i32 1
%10 = load i64, ptr %9, align 8, !noundef !3
%11 = call { ptr, i64 } @"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17hf002e4fe90900c3fE"(i64 noundef %8, i64 noundef %10, ptr noalias noundef nonnull readonly align 8 %1, i64 noundef %2, ptr noalias noundef readonly align 8 dereferenceable(24) %3) #13
%12 = extractvalue { ptr, i64 } %11, 0
%13 = extractvalue { ptr, i64 } %11, 1
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
%14 = insertvalue { ptr, i64 } poison, ptr %12, 0
%15 = insertvalue { ptr, i64 } %14, i64 %13, 1
ret { ptr, i64 } %15
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i64 } @"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h0d4e96cb5d1a0c41E"(i64 noundef %0, ptr noalias noundef nonnull readonly align 4 %1, i64 noundef %2, ptr noalias noundef readonly align 8 dereferenceable(24) %3) unnamed_addr #0 {
%5 = alloca { ptr, i64 }, align 8
%6 = alloca { [2 x i64] }, align 8
%7 = alloca { [2 x i64] }, align 8
%8 = icmp ugt i64 %0, %2
br i1 %8, label %29, label %9
9: ; preds = %4
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
%10 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
store ptr %1, ptr %10, align 8
%11 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
store i64 %2, ptr %11, align 8
%12 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%13 = load i64, ptr %12, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%14 = sub nuw i64 %13, %0
%15 = getelementptr inbounds i32, ptr %1, i64 %0
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
call void @llvm.lifetime.start.p0(i64 16, ptr %5)
store ptr %15, ptr %5, align 8
%16 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 1
store i64 %14, ptr %16, align 8
%17 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 0
%18 = load ptr, ptr %17, align 8, !noundef !3
%19 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 1
%20 = load i64, ptr %19, align 8, !noundef !3
%21 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
store ptr %18, ptr %21, align 8
%22 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 %20, ptr %22, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
%23 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%24 = load ptr, ptr %23, align 8, !noundef !3
%25 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%26 = load i64, ptr %25, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%27 = insertvalue { ptr, i64 } poison, ptr %24, 0
%28 = insertvalue { ptr, i64 } %27, i64 %26, 1
ret { ptr, i64 } %28
29: ; preds = %4
call void @_ZN4core5slice5index26slice_start_index_len_fail17haf2f6c5fa2059135E(i64 noundef %0, i64 noundef %2, ptr noalias noundef readonly align 8 dereferenceable(24) %3) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i64 } @"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h791401d3d9cb5a4bE"(i64 noundef %0, ptr noalias noundef nonnull readonly align 8 %1, i64 noundef %2, ptr noalias noundef readonly align 8 dereferenceable(24) %3) unnamed_addr #0 {
%5 = alloca { ptr, i64 }, align 8
%6 = alloca { [2 x i64] }, align 8
%7 = alloca { [2 x i64] }, align 8
%8 = icmp ugt i64 %0, %2
br i1 %8, label %29, label %9
9: ; preds = %4
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
%10 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
store ptr %1, ptr %10, align 8
%11 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
store i64 %2, ptr %11, align 8
%12 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%13 = load i64, ptr %12, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%14 = sub nuw i64 %13, %0
%15 = getelementptr inbounds { double, double, double, double, double }, ptr %1, i64 %0
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
call void @llvm.lifetime.start.p0(i64 16, ptr %5)
store ptr %15, ptr %5, align 8
%16 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 1
store i64 %14, ptr %16, align 8
%17 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 0
%18 = load ptr, ptr %17, align 8, !noundef !3
%19 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 1
%20 = load i64, ptr %19, align 8, !noundef !3
%21 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
store ptr %18, ptr %21, align 8
%22 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 %20, ptr %22, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
%23 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%24 = load ptr, ptr %23, align 8, !noundef !3
%25 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%26 = load i64, ptr %25, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%27 = insertvalue { ptr, i64 } poison, ptr %24, 0
%28 = insertvalue { ptr, i64 } %27, i64 %26, 1
ret { ptr, i64 } %28
29: ; preds = %4
call void @_ZN4core5slice5index26slice_start_index_len_fail17haf2f6c5fa2059135E(i64 noundef %0, i64 noundef %2, ptr noalias noundef readonly align 8 dereferenceable(24) %3) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17h0dbcc633288c8584E"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca { ptr, ptr }, align 8
%5 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%6 = load i64, ptr %5, align 8, !noundef !3
%7 = add i64 %6, %1
%8 = call noundef align 2 dereferenceable(2) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h3a275b727ba11aedE"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %7) #13
%9 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 1
%10 = call noundef align 2 dereferenceable(2) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h8adddd6571af427dE"(ptr noalias noundef align 8 dereferenceable(16) %9, i64 noundef %7) #13
br label %11
11: ; preds = %2
store ptr %8, ptr %4, align 8
%12 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
store ptr %10, ptr %12, align 8
%13 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 0
%14 = load ptr, ptr %13, align 8, !nonnull !3, !align !6, !noundef !3
%15 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
%16 = load ptr, ptr %15, align 8, !nonnull !3, !align !6, !noundef !3
%17 = insertvalue { ptr, ptr } poison, ptr %14, 0
%18 = insertvalue { ptr, ptr } %17, ptr %16, 1
ret { ptr, ptr } %18
19: ; No predecessors!
%20 = load ptr, ptr %3, align 8, !noundef !3
%21 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%22 = load i32, ptr %21, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%23 = insertvalue { ptr, i32 } poison, ptr %20, 0
%24 = insertvalue { ptr, i32 } %23, i32 %22, 1
resume { ptr, i32 } %24
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17h0f85cfea095386f1E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr } }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(136) %1, i64 noundef %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%6 = load i64, ptr %5, align 8, !noundef !3
%7 = add i64 %6, %2
%8 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h6ece77b79967d658E"(ptr noalias noundef align 8 dereferenceable(56) %1, i64 noundef %7) #13
%9 = extractvalue { ptr, ptr } %8, 0
%10 = extractvalue { ptr, ptr } %8, 1
%11 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 1
%12 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17hb183a5f8c66bfeb4E"(ptr noalias noundef align 8 dereferenceable(56) %11, i64 noundef %7) #13
%13 = extractvalue { ptr, ptr } %12, 0
%14 = extractvalue { ptr, ptr } %12, 1
br label %15
15: ; preds = %3
%16 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 0
store ptr %9, ptr %16, align 8
%17 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 1
store ptr %10, ptr %17, align 8
%18 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr } }, ptr %0, i32 0, i32 1
%19 = getelementptr inbounds { ptr, ptr }, ptr %18, i32 0, i32 0
store ptr %13, ptr %19, align 8
%20 = getelementptr inbounds { ptr, ptr }, ptr %18, i32 0, i32 1
store ptr %14, ptr %20, align 8
ret void
21: ; No predecessors!
%22 = load ptr, ptr %4, align 8, !noundef !3
%23 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%24 = load i32, ptr %23, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%25 = insertvalue { ptr, i32 } poison, ptr %22, 0
%26 = insertvalue { ptr, i32 } %25, i32 %24, 1
resume { ptr, i32 } %26
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17h394961c97638eb5eE"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr } }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(136) %1, i64 noundef %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%6 = load i64, ptr %5, align 8, !noundef !3
%7 = add i64 %6, %2
%8 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h6ece77b79967d658E"(ptr noalias noundef align 8 dereferenceable(56) %1, i64 noundef %7) #13
%9 = extractvalue { ptr, ptr } %8, 0
%10 = extractvalue { ptr, ptr } %8, 1
%11 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 1
%12 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h5a404a9e20427fe5E"(ptr noalias noundef align 8 dereferenceable(56) %11, i64 noundef %7) #13
%13 = extractvalue { ptr, ptr } %12, 0
%14 = extractvalue { ptr, ptr } %12, 1
br label %15
15: ; preds = %3
%16 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 0
store ptr %9, ptr %16, align 8
%17 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 1
store ptr %10, ptr %17, align 8
%18 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr } }, ptr %0, i32 0, i32 1
%19 = getelementptr inbounds { ptr, ptr }, ptr %18, i32 0, i32 0
store ptr %13, ptr %19, align 8
%20 = getelementptr inbounds { ptr, ptr }, ptr %18, i32 0, i32 1
store ptr %14, ptr %20, align 8
ret void
21: ; No predecessors!
%22 = load ptr, ptr %4, align 8, !noundef !3
%23 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%24 = load i32, ptr %23, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%25 = insertvalue { ptr, i32 } poison, ptr %22, 0
%26 = insertvalue { ptr, i32 } %25, i32 %24, 1
resume { ptr, i32 } %26
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17h42f17f0de1c69f8bE"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca { ptr, ptr }, align 8
%5 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%6 = load i64, ptr %5, align 8, !noundef !3
%7 = add i64 %6, %1
%8 = call noundef align 2 dereferenceable(2) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h8adddd6571af427dE"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %7) #13
%9 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 1
%10 = call noundef align 2 dereferenceable(2) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h8adddd6571af427dE"(ptr noalias noundef align 8 dereferenceable(16) %9, i64 noundef %7) #13
br label %11
11: ; preds = %2
store ptr %8, ptr %4, align 8
%12 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
store ptr %10, ptr %12, align 8
%13 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 0
%14 = load ptr, ptr %13, align 8, !nonnull !3, !align !6, !noundef !3
%15 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
%16 = load ptr, ptr %15, align 8, !nonnull !3, !align !6, !noundef !3
%17 = insertvalue { ptr, ptr } poison, ptr %14, 0
%18 = insertvalue { ptr, ptr } %17, ptr %16, 1
ret { ptr, ptr } %18
19: ; No predecessors!
%20 = load ptr, ptr %3, align 8, !noundef !3
%21 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%22 = load i32, ptr %21, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%23 = insertvalue { ptr, i32 } poison, ptr %20, 0
%24 = insertvalue { ptr, i32 } %23, i32 %22, 1
resume { ptr, i32 } %24
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17h4c8fd6537f40d063E"(ptr noalias nocapture noundef sret({ { ptr, i64 }, { ptr, i64 } }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(72) %1, i64 noundef %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = getelementptr inbounds { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%6 = load i64, ptr %5, align 8, !noundef !3
%7 = add i64 %6, %2
%8 = call { ptr, i64 } @"_ZN94_$LT$core..slice..iter..Windows$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17he9c291291828b44cE"(ptr noalias noundef align 8 dereferenceable(24) %1, i64 noundef %7) #13
%9 = extractvalue { ptr, i64 } %8, 0
%10 = extractvalue { ptr, i64 } %8, 1
%11 = getelementptr inbounds { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 1
%12 = call { ptr, i64 } @"_ZN94_$LT$core..slice..iter..Windows$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17he9c291291828b44cE"(ptr noalias noundef align 8 dereferenceable(24) %11, i64 noundef %7) #13
%13 = extractvalue { ptr, i64 } %12, 0
%14 = extractvalue { ptr, i64 } %12, 1
br label %15
15: ; preds = %3
%16 = getelementptr inbounds { ptr, i64 }, ptr %0, i32 0, i32 0
store ptr %9, ptr %16, align 8
%17 = getelementptr inbounds { ptr, i64 }, ptr %0, i32 0, i32 1
store i64 %10, ptr %17, align 8
%18 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 } }, ptr %0, i32 0, i32 1
%19 = getelementptr inbounds { ptr, i64 }, ptr %18, i32 0, i32 0
store ptr %13, ptr %19, align 8
%20 = getelementptr inbounds { ptr, i64 }, ptr %18, i32 0, i32 1
store i64 %14, ptr %20, align 8
ret void
21: ; No predecessors!
%22 = load ptr, ptr %4, align 8, !noundef !3
%23 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%24 = load i32, ptr %23, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%25 = insertvalue { ptr, i32 } poison, ptr %22, 0
%26 = insertvalue { ptr, i32 } %25, i32 %24, 1
resume { ptr, i32 } %26
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17h85a88da443340e3fE"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca { ptr, ptr }, align 8
%5 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%6 = load i64, ptr %5, align 8, !noundef !3
%7 = add i64 %6, %1
%8 = call noundef align 1 dereferenceable(1) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h28dfdb727c7651b4E"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %7) #13
%9 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 1
%10 = call noundef align 1 dereferenceable(1) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h4b9fe176183bb556E"(ptr noalias noundef align 8 dereferenceable(16) %9, i64 noundef %7) #13
br label %11
11: ; preds = %2
store ptr %8, ptr %4, align 8
%12 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
store ptr %10, ptr %12, align 8
%13 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 0
%14 = load ptr, ptr %13, align 8, !nonnull !3, !align !4, !noundef !3
%15 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
%16 = load ptr, ptr %15, align 8, !nonnull !3, !align !4, !noundef !3
%17 = insertvalue { ptr, ptr } poison, ptr %14, 0
%18 = insertvalue { ptr, ptr } %17, ptr %16, 1
ret { ptr, ptr } %18
19: ; No predecessors!
%20 = load ptr, ptr %3, align 8, !noundef !3
%21 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%22 = load i32, ptr %21, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%23 = insertvalue { ptr, i32 } poison, ptr %20, 0
%24 = insertvalue { ptr, i32 } %23, i32 %22, 1
resume { ptr, i32 } %24
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17h8b1c2180cbdcf7c6E"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca { ptr, ptr }, align 8
%5 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%6 = load i64, ptr %5, align 8, !noundef !3
%7 = add i64 %6, %1
%8 = call noundef align 1 dereferenceable(1) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h4b9fe176183bb556E"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %7) #13
%9 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 1
%10 = call noundef align 1 dereferenceable(1) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h4b9fe176183bb556E"(ptr noalias noundef align 8 dereferenceable(16) %9, i64 noundef %7) #13
br label %11
11: ; preds = %2
store ptr %8, ptr %4, align 8
%12 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
store ptr %10, ptr %12, align 8
%13 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 0
%14 = load ptr, ptr %13, align 8, !nonnull !3, !align !4, !noundef !3
%15 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
%16 = load ptr, ptr %15, align 8, !nonnull !3, !align !4, !noundef !3
%17 = insertvalue { ptr, ptr } poison, ptr %14, 0
%18 = insertvalue { ptr, ptr } %17, ptr %16, 1
ret { ptr, ptr } %18
19: ; No predecessors!
%20 = load ptr, ptr %3, align 8, !noundef !3
%21 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%22 = load i32, ptr %21, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%23 = insertvalue { ptr, i32 } poison, ptr %20, 0
%24 = insertvalue { ptr, i32 } %23, i32 %22, 1
resume { ptr, i32 } %24
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17h91dda27d7b7bf0c7E"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca { ptr, ptr }, align 8
%5 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%6 = load i64, ptr %5, align 8, !noundef !3
%7 = add i64 %6, %1
%8 = call noundef align 4 dereferenceable(4) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17ha821cc8f1b9ad8b6E"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %7) #13
%9 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 1
%10 = call noundef align 4 dereferenceable(4) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17ha821cc8f1b9ad8b6E"(ptr noalias noundef align 8 dereferenceable(16) %9, i64 noundef %7) #13
br label %11
11: ; preds = %2
store ptr %8, ptr %4, align 8
%12 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
store ptr %10, ptr %12, align 8
%13 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 0
%14 = load ptr, ptr %13, align 8, !nonnull !3, !align !8, !noundef !3
%15 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
%16 = load ptr, ptr %15, align 8, !nonnull !3, !align !8, !noundef !3
%17 = insertvalue { ptr, ptr } poison, ptr %14, 0
%18 = insertvalue { ptr, ptr } %17, ptr %16, 1
ret { ptr, ptr } %18
19: ; No predecessors!
%20 = load ptr, ptr %3, align 8, !noundef !3
%21 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%22 = load i32, ptr %21, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%23 = insertvalue { ptr, i32 } poison, ptr %20, 0
%24 = insertvalue { ptr, i32 } %23, i32 %22, 1
resume { ptr, i32 } %24
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17hb119f2183e32df1fE"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, { ptr, i64 } }, { { ptr, i64 }, { ptr, i64 } } }) align 8 dereferenceable(64) %0, ptr noalias noundef align 8 dereferenceable(168) %1, i64 noundef %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca { { ptr, i64 }, { ptr, i64 } }, align 8
%6 = alloca { { ptr, i64 }, { ptr, i64 } }, align 8
%7 = getelementptr inbounds { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%8 = load i64, ptr %7, align 8, !noundef !3
%9 = add i64 %8, %2
call void @llvm.lifetime.start.p0(i64 32, ptr %6)
call void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h1461198d98311c93E"(ptr noalias nocapture noundef sret({ { ptr, i64 }, { ptr, i64 } }) align 8 dereferenceable(32) %6, ptr noalias noundef align 8 dereferenceable(72) %1, i64 noundef %9) #13
call void @llvm.lifetime.start.p0(i64 32, ptr %5)
%10 = getelementptr inbounds { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 1
call void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h1461198d98311c93E"(ptr noalias nocapture noundef sret({ { ptr, i64 }, { ptr, i64 } }) align 8 dereferenceable(32) %5, ptr noalias noundef align 8 dereferenceable(72) %10, i64 noundef %9) #13
br label %11
11: ; preds = %3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %6, i64 32, i1 false)
%12 = getelementptr inbounds { { { ptr, i64 }, { ptr, i64 } }, { { ptr, i64 }, { ptr, i64 } } }, ptr %0, i32 0, i32 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %12, ptr align 8 %5, i64 32, i1 false)
call void @llvm.lifetime.end.p0(i64 32, ptr %5)
call void @llvm.lifetime.end.p0(i64 32, ptr %6)
ret void
13: ; No predecessors!
%14 = load ptr, ptr %4, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17he07fac9aece8ac0cE"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca { ptr, ptr }, align 8
%5 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%6 = load i64, ptr %5, align 8, !noundef !3
%7 = add i64 %6, %1
%8 = call noundef align 2 dereferenceable(2) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h3a275b727ba11aedE"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %7) #13
%9 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 1
%10 = call noundef align 4 dereferenceable(4) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17ha821cc8f1b9ad8b6E"(ptr noalias noundef align 8 dereferenceable(16) %9, i64 noundef %7) #13
br label %11
11: ; preds = %2
store ptr %8, ptr %4, align 8
%12 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
store ptr %10, ptr %12, align 8
%13 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 0
%14 = load ptr, ptr %13, align 8, !nonnull !3, !align !6, !noundef !3
%15 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
%16 = load ptr, ptr %15, align 8, !nonnull !3, !align !8, !noundef !3
%17 = insertvalue { ptr, ptr } poison, ptr %14, 0
%18 = insertvalue { ptr, ptr } %17, ptr %16, 1
ret { ptr, ptr } %18
19: ; No predecessors!
%20 = load ptr, ptr %3, align 8, !noundef !3
%21 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%22 = load i32, ptr %21, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%23 = insertvalue { ptr, i32 } poison, ptr %20, 0
%24 = insertvalue { ptr, i32 } %23, i32 %22, 1
resume { ptr, i32 } %24
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$13get_unchecked17hf285e5f8200186eaE"(ptr noalias noundef align 8 dereferenceable(56) %0, i64 noundef %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca { ptr, ptr }, align 8
%5 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%6 = load i64, ptr %5, align 8, !noundef !3
%7 = add i64 %6, %1
%8 = call noundef align 4 dereferenceable(4) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h83d1f020fe484409E"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %7) #13
%9 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 1
%10 = call noundef align 4 dereferenceable(4) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h83d1f020fe484409E"(ptr noalias noundef align 8 dereferenceable(16) %9, i64 noundef %7) #13
br label %11
11: ; preds = %2
store ptr %8, ptr %4, align 8
%12 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
store ptr %10, ptr %12, align 8
%13 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 0
%14 = load ptr, ptr %13, align 8, !nonnull !3, !align !8, !noundef !3
%15 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
%16 = load ptr, ptr %15, align 8, !nonnull !3, !align !8, !noundef !3
%17 = insertvalue { ptr, ptr } poison, ptr %14, 0
%18 = insertvalue { ptr, ptr } %17, ptr %16, 1
ret { ptr, ptr } %18
19: ; No predecessors!
%20 = load ptr, ptr %3, align 8, !noundef !3
%21 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%22 = load i32, ptr %21, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%23 = insertvalue { ptr, i32 } poison, ptr %20, 0
%24 = insertvalue { ptr, i32 } %23, i32 %22, 1
resume { ptr, i32 } %24
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h0cfb87760815d857E"(ptr noalias noundef align 8 dereferenceable(56) %0) unnamed_addr #0 personality ptr @rust_eh_personality {
%2 = alloca { ptr, i32 }, align 8
%3 = alloca i8, align 1
%4 = alloca { ptr, ptr }, align 8
%5 = alloca { ptr, ptr }, align 8
%6 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%7 = load i64, ptr %6, align 8, !noundef !3
%8 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%9 = load i64, ptr %8, align 8, !noundef !3
%10 = icmp ult i64 %7, %9
br i1 %10, label %12, label %11
11: ; preds = %1
call void @llvm.lifetime.start.p0(i64 1, ptr %3)
br i1 false, label %23, label %22
12: ; preds = %1
%13 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%14 = load i64, ptr %13, align 8, !noundef !3
%15 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%16 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%17 = load i64, ptr %16, align 8, !noundef !3
%18 = add i64 %17, 1
store i64 %18, ptr %15, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %4)
%19 = call noundef align 4 dereferenceable(4) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17ha821cc8f1b9ad8b6E"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %14) #13
%20 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 1
%21 = call noundef align 1 dereferenceable(1) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h4b9fe176183bb556E"(ptr noalias noundef align 8 dereferenceable(16) %20, i64 noundef %14) #13
br label %54
22: ; preds = %11
store i8 0, ptr %3, align 1
br label %30
23: ; preds = %11
%24 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%25 = load i64, ptr %24, align 8, !noundef !3
%26 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 4
%27 = load i64, ptr %26, align 8, !noundef !3
%28 = icmp ult i64 %25, %27
%29 = zext i1 %28 to i8
store i8 %29, ptr %3, align 1
br label %30
30: ; preds = %23, %22
%31 = load i8, ptr %3, align 1, !range !9, !noundef !3
%32 = trunc i8 %31 to i1
br i1 %32, label %34, label %33
33: ; preds = %30
store ptr null, ptr %5, align 8
br label %46
34: ; preds = %30
%35 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%36 = load i64, ptr %35, align 8, !noundef !3
%37 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%38 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%39 = load i64, ptr %38, align 8, !noundef !3
%40 = add i64 %39, 1
store i64 %40, ptr %37, align 8
%41 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%42 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%43 = load i64, ptr %42, align 8, !noundef !3
%44 = add i64 %43, 1
store i64 %44, ptr %41, align 8
%45 = call noundef align 4 dereferenceable(4) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17ha821cc8f1b9ad8b6E"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %36) #13
store ptr null, ptr %5, align 8
br label %46
46: ; preds = %34, %33
call void @llvm.lifetime.end.p0(i64 1, ptr %3)
br label %47
47: ; preds = %54, %46
%48 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
%49 = load ptr, ptr %48, align 8, !align !8, !noundef !3
%50 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
%51 = load ptr, ptr %50, align 8
%52 = insertvalue { ptr, ptr } poison, ptr %49, 0
%53 = insertvalue { ptr, ptr } %52, ptr %51, 1
ret { ptr, ptr } %53
54: ; preds = %12
store ptr %19, ptr %4, align 8
%55 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
store ptr %21, ptr %55, align 8
%56 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 0
%57 = load ptr, ptr %56, align 8, !nonnull !3, !align !8, !noundef !3
%58 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
%59 = load ptr, ptr %58, align 8, !nonnull !3, !align !4, !noundef !3
%60 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
store ptr %57, ptr %60, align 8
%61 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
store ptr %59, ptr %61, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
br label %47
62: ; No predecessors!
%63 = load ptr, ptr %2, align 8, !noundef !3
%64 = getelementptr inbounds { ptr, i32 }, ptr %2, i32 0, i32 1
%65 = load i32, ptr %64, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %2)
%66 = insertvalue { ptr, i32 } poison, ptr %63, 0
%67 = insertvalue { ptr, i32 } %66, i32 %65, 1
resume { ptr, i32 } %67
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h114810255852b0ddE"(ptr noalias nocapture noundef sret({ ptr, [11 x i64] }) align 8 dereferenceable(96) %0, ptr noalias noundef align 8 dereferenceable(328) %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca { { ptr, ptr }, { ptr, ptr } }, align 8
%5 = alloca i8, align 1
%6 = alloca { { { ptr, i64 }, { ptr, i64 } }, { { ptr, i64 }, { ptr, i64 } } }, align 8
%7 = alloca { { ptr, ptr }, { ptr, ptr } }, align 8
%8 = alloca { { { ptr, ptr }, { ptr, ptr } }, { { { ptr, i64 }, { ptr, i64 } }, { { ptr, i64 }, { ptr, i64 } } } }, align 8
%9 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%10 = load i64, ptr %9, align 8, !noundef !3
%11 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%12 = load i64, ptr %11, align 8, !noundef !3
%13 = icmp ult i64 %10, %12
br i1 %13, label %15, label %14
14: ; preds = %2
call void @llvm.lifetime.start.p0(i64 1, ptr %5)
br i1 false, label %24, label %23
15: ; preds = %2
%16 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%17 = load i64, ptr %16, align 8, !noundef !3
%18 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%19 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%20 = load i64, ptr %19, align 8, !noundef !3
%21 = add i64 %20, 1
store i64 %21, ptr %18, align 8
call void @llvm.lifetime.start.p0(i64 96, ptr %8)
call void @llvm.lifetime.start.p0(i64 32, ptr %7)
call void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17hec0c68f4eb01bdedE"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr } }) align 8 dereferenceable(32) %7, ptr noalias noundef align 8 dereferenceable(136) %1, i64 noundef %17) #13
call void @llvm.lifetime.start.p0(i64 64, ptr %6)
%22 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 1
call void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h7083ae95a41f078cE"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, { ptr, i64 } }, { { ptr, i64 }, { ptr, i64 } } }) align 8 dereferenceable(64) %6, ptr noalias noundef align 8 dereferenceable(168) %22, i64 noundef %17) #13
br label %48
23: ; preds = %14
store i8 0, ptr %5, align 1
br label %31
24: ; preds = %14
%25 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%26 = load i64, ptr %25, align 8, !noundef !3
%27 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 4
%28 = load i64, ptr %27, align 8, !noundef !3
%29 = icmp ult i64 %26, %28
%30 = zext i1 %29 to i8
store i8 %30, ptr %5, align 1
br label %31
31: ; preds = %24, %23
%32 = load i8, ptr %5, align 1, !range !9, !noundef !3
%33 = trunc i8 %32 to i1
br i1 %33, label %35, label %34
34: ; preds = %31
store ptr null, ptr %0, align 8
br label %46
35: ; preds = %31
%36 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%37 = load i64, ptr %36, align 8, !noundef !3
%38 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%39 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%40 = load i64, ptr %39, align 8, !noundef !3
%41 = add i64 %40, 1
store i64 %41, ptr %38, align 8
%42 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%43 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%44 = load i64, ptr %43, align 8, !noundef !3
%45 = add i64 %44, 1
store i64 %45, ptr %42, align 8
call void @llvm.lifetime.start.p0(i64 32, ptr %4)
call void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17hec0c68f4eb01bdedE"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr } }) align 8 dereferenceable(32) %4, ptr noalias noundef align 8 dereferenceable(136) %1, i64 noundef %37) #13
call void @llvm.lifetime.end.p0(i64 32, ptr %4)
store ptr null, ptr %0, align 8
br label %46
46: ; preds = %35, %34
call void @llvm.lifetime.end.p0(i64 1, ptr %5)
br label %47
47: ; preds = %48, %46
ret void
48: ; preds = %15
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %7, i64 32, i1 false)
%49 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr } }, { { { ptr, i64 }, { ptr, i64 } }, { { ptr, i64 }, { ptr, i64 } } } }, ptr %8, i32 0, i32 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %49, ptr align 8 %6, i64 64, i1 false)
call void @llvm.lifetime.end.p0(i64 64, ptr %6)
call void @llvm.lifetime.end.p0(i64 32, ptr %7)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %8, i64 96, i1 false)
call void @llvm.lifetime.end.p0(i64 96, ptr %8)
br label %47
50: ; No predecessors!
%51 = load ptr, ptr %3, align 8, !noundef !3
%52 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%53 = load i32, ptr %52, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%54 = insertvalue { ptr, i32 } poison, ptr %51, 0
%55 = insertvalue { ptr, i32 } %54, i32 %53, 1
resume { ptr, i32 } %55
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h2351143feb92f468E"(ptr noalias nocapture noundef sret({ ptr, [4 x i64] }) align 8 dereferenceable(40) %0, ptr noalias noundef align 8 dereferenceable(192) %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca { { ptr, ptr }, { ptr, ptr } }, align 8
%5 = alloca { ptr, { { ptr, ptr }, { ptr, ptr } } }, align 8
%6 = alloca { { ptr, ptr }, { ptr, ptr } }, align 8
%7 = alloca { ptr, [3 x i64] }, align 8
%8 = alloca { ptr, [3 x i64] }, align 8
%9 = alloca ptr, align 8
%10 = alloca ptr, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %10)
call void @llvm.lifetime.start.p0(i64 8, ptr %9)
%11 = call noundef align 2 dereferenceable_or_null(2) ptr @"_ZN94_$LT$rav1e..lrf..HorzPaddedIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17he29d3a1205a3c6c2E"(ptr noalias noundef align 8 dereferenceable(32) %1) #13
store ptr %11, ptr %9, align 8
%12 = load ptr, ptr %9, align 8, !noundef !3
%13 = ptrtoint ptr %12 to i64
%14 = icmp eq i64 %13, 0
%15 = select i1 %14, i64 0, i64 1
switch i64 %15, label %16 [
i64 0, label %17
i64 1, label %18
]
16: ; preds = %36, %29, %20, %2
unreachable
17: ; preds = %2
store ptr null, ptr %10, align 8
br label %20
18: ; preds = %2
%19 = load ptr, ptr %9, align 8, !nonnull !3, !align !6, !noundef !3
store ptr %19, ptr %10, align 8
br label %20
20: ; preds = %18, %17
call void @llvm.lifetime.end.p0(i64 8, ptr %9)
%21 = load ptr, ptr %10, align 8, !noundef !3
%22 = ptrtoint ptr %21 to i64
%23 = icmp eq i64 %22, 0
%24 = select i1 %23, i64 1, i64 0
switch i64 %24, label %16 [
i64 0, label %25
i64 1, label %28
]
25: ; preds = %20
%26 = load ptr, ptr %10, align 8, !nonnull !3, !align !6, !noundef !3
call void @llvm.lifetime.end.p0(i64 8, ptr %10)
call void @llvm.lifetime.start.p0(i64 32, ptr %8)
call void @llvm.lifetime.start.p0(i64 32, ptr %7)
%27 = getelementptr inbounds { { { ptr, i64 }, i64, i64 }, { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 1
call void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h2749a207a6a0f9baE"(ptr noalias nocapture noundef sret({ ptr, [3 x i64] }) align 8 dereferenceable(32) %7, ptr noalias noundef align 8 dereferenceable(136) %27) #13
br label %29
28: ; preds = %20
store ptr null, ptr %0, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %10)
br label %45
29: ; preds = %25
call void @llvm.lifetime.start.p0(i64 32, ptr %4)
%30 = load ptr, ptr %7, align 8, !noundef !3
%31 = ptrtoint ptr %30 to i64
%32 = icmp eq i64 %31, 0
%33 = select i1 %32, i64 0, i64 1
switch i64 %33, label %16 [
i64 0, label %34
i64 1, label %35
]
34: ; preds = %29
store ptr null, ptr %8, align 8
br label %36
35: ; preds = %29
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %4, ptr align 8 %7, i64 32, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %4, i64 32, i1 false)
br label %36
36: ; preds = %35, %34
call void @llvm.lifetime.end.p0(i64 32, ptr %4)
call void @llvm.lifetime.end.p0(i64 32, ptr %7)
%37 = load ptr, ptr %8, align 8, !noundef !3
%38 = ptrtoint ptr %37 to i64
%39 = icmp eq i64 %38, 0
%40 = select i1 %39, i64 1, i64 0
switch i64 %40, label %16 [
i64 0, label %41
i64 1, label %43
]
41: ; preds = %36
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %6, ptr align 8 %8, i64 32, i1 false)
call void @llvm.lifetime.end.p0(i64 32, ptr %8)
call void @llvm.lifetime.start.p0(i64 40, ptr %5)
store ptr %26, ptr %5, align 8
%42 = getelementptr inbounds { ptr, { { ptr, ptr }, { ptr, ptr } } }, ptr %5, i32 0, i32 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %42, ptr align 8 %6, i64 32, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %5, i64 40, i1 false)
call void @llvm.lifetime.end.p0(i64 40, ptr %5)
br label %44
43: ; preds = %36
store ptr null, ptr %0, align 8
call void @llvm.lifetime.end.p0(i64 32, ptr %8)
br label %45
44: ; preds = %45, %41
ret void
45: ; preds = %43, %28
br label %44
46: ; No predecessors!
%47 = load ptr, ptr %3, align 8, !noundef !3
%48 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%49 = load i32, ptr %48, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%50 = insertvalue { ptr, i32 } poison, ptr %47, 0
%51 = insertvalue { ptr, i32 } %50, i32 %49, 1
resume { ptr, i32 } %51
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h24c60f69b9748102E"(ptr noalias nocapture noundef sret({ ptr, [2 x i64] }) align 8 dereferenceable(24) %0, ptr noalias noundef align 8 dereferenceable(96) %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca i8, align 1
%5 = alloca { { ptr, ptr }, ptr }, align 8
%6 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%7 = load i64, ptr %6, align 8, !noundef !3
%8 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%9 = load i64, ptr %8, align 8, !noundef !3
%10 = icmp ult i64 %7, %9
br i1 %10, label %12, label %11
11: ; preds = %2
call void @llvm.lifetime.start.p0(i64 1, ptr %4)
br i1 false, label %25, label %24
12: ; preds = %2
%13 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%14 = load i64, ptr %13, align 8, !noundef !3
%15 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%16 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%17 = load i64, ptr %16, align 8, !noundef !3
%18 = add i64 %17, 1
store i64 %18, ptr %15, align 8
call void @llvm.lifetime.start.p0(i64 24, ptr %5)
%19 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h507e88fd1e566867E"(ptr noalias noundef align 8 dereferenceable(56) %1, i64 noundef %14) #13
%20 = extractvalue { ptr, ptr } %19, 0
%21 = extractvalue { ptr, ptr } %19, 1
%22 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 1
%23 = call noundef align 1 dereferenceable(1) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h4b9fe176183bb556E"(ptr noalias noundef align 8 dereferenceable(16) %22, i64 noundef %14) #13
br label %52
24: ; preds = %11
store i8 0, ptr %4, align 1
br label %32
25: ; preds = %11
%26 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%27 = load i64, ptr %26, align 8, !noundef !3
%28 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 4
%29 = load i64, ptr %28, align 8, !noundef !3
%30 = icmp ult i64 %27, %29
%31 = zext i1 %30 to i8
store i8 %31, ptr %4, align 1
br label %32
32: ; preds = %25, %24
%33 = load i8, ptr %4, align 1, !range !9, !noundef !3
%34 = trunc i8 %33 to i1
br i1 %34, label %36, label %35
35: ; preds = %32
store ptr null, ptr %0, align 8
br label %50
36: ; preds = %32
%37 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%38 = load i64, ptr %37, align 8, !noundef !3
%39 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%40 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%41 = load i64, ptr %40, align 8, !noundef !3
%42 = add i64 %41, 1
store i64 %42, ptr %39, align 8
%43 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%44 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%45 = load i64, ptr %44, align 8, !noundef !3
%46 = add i64 %45, 1
store i64 %46, ptr %43, align 8
%47 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h507e88fd1e566867E"(ptr noalias noundef align 8 dereferenceable(56) %1, i64 noundef %38) #13
%48 = extractvalue { ptr, ptr } %47, 0
%49 = extractvalue { ptr, ptr } %47, 1
store ptr null, ptr %0, align 8
br label %50
50: ; preds = %36, %35
call void @llvm.lifetime.end.p0(i64 1, ptr %4)
br label %51
51: ; preds = %52, %50
ret void
52: ; preds = %12
%53 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
store ptr %20, ptr %53, align 8
%54 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
store ptr %21, ptr %54, align 8
%55 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %5, i32 0, i32 1
store ptr %23, ptr %55, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %5, i64 24, i1 false)
call void @llvm.lifetime.end.p0(i64 24, ptr %5)
br label %51
56: ; No predecessors!
%57 = load ptr, ptr %3, align 8, !noundef !3
%58 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%59 = load i32, ptr %58, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%60 = insertvalue { ptr, i32 } poison, ptr %57, 0
%61 = insertvalue { ptr, i32 } %60, i32 %59, 1
resume { ptr, i32 } %61
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h34d5314cb962e575E"(ptr noalias noundef align 8 dereferenceable(56) %0) unnamed_addr #0 personality ptr @rust_eh_personality {
%2 = alloca { ptr, i32 }, align 8
%3 = alloca i8, align 1
%4 = alloca { ptr, ptr }, align 8
%5 = alloca { ptr, ptr }, align 8
%6 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%7 = load i64, ptr %6, align 8, !noundef !3
%8 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%9 = load i64, ptr %8, align 8, !noundef !3
%10 = icmp ult i64 %7, %9
br i1 %10, label %12, label %11
11: ; preds = %1
call void @llvm.lifetime.start.p0(i64 1, ptr %3)
br i1 false, label %23, label %22
12: ; preds = %1
%13 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%14 = load i64, ptr %13, align 8, !noundef !3
%15 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%16 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%17 = load i64, ptr %16, align 8, !noundef !3
%18 = add i64 %17, 1
store i64 %18, ptr %15, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %4)
%19 = call noundef align 4 dereferenceable(4) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17ha821cc8f1b9ad8b6E"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %14) #13
%20 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 1
%21 = call noundef align 4 dereferenceable(4) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17ha821cc8f1b9ad8b6E"(ptr noalias noundef align 8 dereferenceable(16) %20, i64 noundef %14) #13
br label %54
22: ; preds = %11
store i8 0, ptr %3, align 1
br label %30
23: ; preds = %11
%24 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%25 = load i64, ptr %24, align 8, !noundef !3
%26 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 4
%27 = load i64, ptr %26, align 8, !noundef !3
%28 = icmp ult i64 %25, %27
%29 = zext i1 %28 to i8
store i8 %29, ptr %3, align 1
br label %30
30: ; preds = %23, %22
%31 = load i8, ptr %3, align 1, !range !9, !noundef !3
%32 = trunc i8 %31 to i1
br i1 %32, label %34, label %33
33: ; preds = %30
store ptr null, ptr %5, align 8
br label %46
34: ; preds = %30
%35 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%36 = load i64, ptr %35, align 8, !noundef !3
%37 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%38 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%39 = load i64, ptr %38, align 8, !noundef !3
%40 = add i64 %39, 1
store i64 %40, ptr %37, align 8
%41 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%42 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%43 = load i64, ptr %42, align 8, !noundef !3
%44 = add i64 %43, 1
store i64 %44, ptr %41, align 8
%45 = call noundef align 4 dereferenceable(4) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17ha821cc8f1b9ad8b6E"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %36) #13
store ptr null, ptr %5, align 8
br label %46
46: ; preds = %34, %33
call void @llvm.lifetime.end.p0(i64 1, ptr %3)
br label %47
47: ; preds = %54, %46
%48 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
%49 = load ptr, ptr %48, align 8, !align !8, !noundef !3
%50 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
%51 = load ptr, ptr %50, align 8
%52 = insertvalue { ptr, ptr } poison, ptr %49, 0
%53 = insertvalue { ptr, ptr } %52, ptr %51, 1
ret { ptr, ptr } %53
54: ; preds = %12
store ptr %19, ptr %4, align 8
%55 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
store ptr %21, ptr %55, align 8
%56 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 0
%57 = load ptr, ptr %56, align 8, !nonnull !3, !align !8, !noundef !3
%58 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
%59 = load ptr, ptr %58, align 8, !nonnull !3, !align !8, !noundef !3
%60 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
store ptr %57, ptr %60, align 8
%61 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
store ptr %59, ptr %61, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
br label %47
62: ; No predecessors!
%63 = load ptr, ptr %2, align 8, !noundef !3
%64 = getelementptr inbounds { ptr, i32 }, ptr %2, i32 0, i32 1
%65 = load i32, ptr %64, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %2)
%66 = insertvalue { ptr, i32 } poison, ptr %63, 0
%67 = insertvalue { ptr, i32 } %66, i32 %65, 1
resume { ptr, i32 } %67
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h565484b564930708E"(ptr noalias nocapture noundef sret({ ptr, [2 x i64] }) align 8 dereferenceable(24) %0, ptr noalias noundef align 8 dereferenceable(112) %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca { ptr, { ptr, ptr } }, align 8
%5 = alloca { ptr, ptr }, align 8
%6 = alloca { ptr, ptr }, align 8
%7 = alloca ptr, align 8
%8 = alloca ptr, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %8)
call void @llvm.lifetime.start.p0(i64 8, ptr %7)
%9 = call noundef align 1 dereferenceable_or_null(1) ptr @"_ZN94_$LT$rav1e..lrf..HorzPaddedIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h54313dde4be88c03E"(ptr noalias noundef align 8 dereferenceable(32) %1) #13
store ptr %9, ptr %7, align 8
%10 = load ptr, ptr %7, align 8, !noundef !3
%11 = ptrtoint ptr %10 to i64
%12 = icmp eq i64 %11, 0
%13 = select i1 %12, i64 0, i64 1
switch i64 %13, label %14 [
i64 0, label %15
i64 1, label %16
]
14: ; preds = %41, %28, %18, %2
unreachable
15: ; preds = %2
store ptr null, ptr %8, align 8
br label %18
16: ; preds = %2
%17 = load ptr, ptr %7, align 8, !nonnull !3, !align !4, !noundef !3
store ptr %17, ptr %8, align 8
br label %18
18: ; preds = %16, %15
call void @llvm.lifetime.end.p0(i64 8, ptr %7)
%19 = load ptr, ptr %8, align 8, !noundef !3
%20 = ptrtoint ptr %19 to i64
%21 = icmp eq i64 %20, 0
%22 = select i1 %21, i64 1, i64 0
switch i64 %22, label %14 [
i64 0, label %23
i64 1, label %27
]
23: ; preds = %18
%24 = load ptr, ptr %8, align 8, !nonnull !3, !align !4, !noundef !3
call void @llvm.lifetime.end.p0(i64 8, ptr %8)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
call void @llvm.lifetime.start.p0(i64 16, ptr %5)
%25 = getelementptr inbounds { { { ptr, i64 }, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 1
%26 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h1e2485751ce555a3E"(ptr noalias noundef align 8 dereferenceable(56) %25) #13
store { ptr, ptr } %26, ptr %5, align 8
br label %28
27: ; preds = %18
store ptr null, ptr %0, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %8)
br label %56
28: ; preds = %23
%29 = load ptr, ptr %5, align 8, !noundef !3
%30 = ptrtoint ptr %29 to i64
%31 = icmp eq i64 %30, 0
%32 = select i1 %31, i64 0, i64 1
switch i64 %32, label %14 [
i64 0, label %33
i64 1, label %34
]
33: ; preds = %28
store ptr null, ptr %6, align 8
br label %41
34: ; preds = %28
%35 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
%36 = load ptr, ptr %35, align 8, !nonnull !3, !align !8, !noundef !3
%37 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
%38 = load ptr, ptr %37, align 8, !nonnull !3, !align !8, !noundef !3
%39 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 0
store ptr %36, ptr %39, align 8
%40 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
store ptr %38, ptr %40, align 8
br label %41
41: ; preds = %34, %33
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
%42 = load ptr, ptr %6, align 8, !noundef !3
%43 = ptrtoint ptr %42 to i64
%44 = icmp eq i64 %43, 0
%45 = select i1 %44, i64 1, i64 0
switch i64 %45, label %14 [
i64 0, label %46
i64 1, label %54
]
46: ; preds = %41
%47 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 0
%48 = load ptr, ptr %47, align 8, !nonnull !3, !align !8, !noundef !3
%49 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
%50 = load ptr, ptr %49, align 8, !nonnull !3, !align !8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
call void @llvm.lifetime.start.p0(i64 24, ptr %4)
store ptr %24, ptr %4, align 8
%51 = getelementptr inbounds { ptr, { ptr, ptr } }, ptr %4, i32 0, i32 1
%52 = getelementptr inbounds { ptr, ptr }, ptr %51, i32 0, i32 0
store ptr %48, ptr %52, align 8
%53 = getelementptr inbounds { ptr, ptr }, ptr %51, i32 0, i32 1
store ptr %50, ptr %53, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %4, i64 24, i1 false)
call void @llvm.lifetime.end.p0(i64 24, ptr %4)
br label %55
54: ; preds = %41
store ptr null, ptr %0, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
br label %56
55: ; preds = %56, %46
ret void
56: ; preds = %54, %27
br label %55
57: ; No predecessors!
%58 = load ptr, ptr %3, align 8, !noundef !3
%59 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%60 = load i32, ptr %59, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%61 = insertvalue { ptr, i32 } poison, ptr %58, 0
%62 = insertvalue { ptr, i32 } %61, i32 %60, 1
resume { ptr, i32 } %62
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h6e28b0f69ab87215E"(ptr noalias nocapture noundef sret({ ptr, [11 x i64] }) align 8 dereferenceable(96) %0, ptr noalias noundef align 8 dereferenceable(328) %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca { { ptr, ptr }, { ptr, ptr } }, align 8
%5 = alloca i8, align 1
%6 = alloca { { { ptr, i64 }, { ptr, i64 } }, { { ptr, i64 }, { ptr, i64 } } }, align 8
%7 = alloca { { ptr, ptr }, { ptr, ptr } }, align 8
%8 = alloca { { { ptr, ptr }, { ptr, ptr } }, { { { ptr, i64 }, { ptr, i64 } }, { { ptr, i64 }, { ptr, i64 } } } }, align 8
%9 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%10 = load i64, ptr %9, align 8, !noundef !3
%11 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%12 = load i64, ptr %11, align 8, !noundef !3
%13 = icmp ult i64 %10, %12
br i1 %13, label %15, label %14
14: ; preds = %2
call void @llvm.lifetime.start.p0(i64 1, ptr %5)
br i1 false, label %24, label %23
15: ; preds = %2
%16 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%17 = load i64, ptr %16, align 8, !noundef !3
%18 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%19 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%20 = load i64, ptr %19, align 8, !noundef !3
%21 = add i64 %20, 1
store i64 %21, ptr %18, align 8
call void @llvm.lifetime.start.p0(i64 96, ptr %8)
call void @llvm.lifetime.start.p0(i64 32, ptr %7)
call void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h5228ed82a69da2a5E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr } }) align 8 dereferenceable(32) %7, ptr noalias noundef align 8 dereferenceable(136) %1, i64 noundef %17) #13
call void @llvm.lifetime.start.p0(i64 64, ptr %6)
%22 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 1
call void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h7083ae95a41f078cE"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, { ptr, i64 } }, { { ptr, i64 }, { ptr, i64 } } }) align 8 dereferenceable(64) %6, ptr noalias noundef align 8 dereferenceable(168) %22, i64 noundef %17) #13
br label %48
23: ; preds = %14
store i8 0, ptr %5, align 1
br label %31
24: ; preds = %14
%25 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%26 = load i64, ptr %25, align 8, !noundef !3
%27 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 4
%28 = load i64, ptr %27, align 8, !noundef !3
%29 = icmp ult i64 %26, %28
%30 = zext i1 %29 to i8
store i8 %30, ptr %5, align 1
br label %31
31: ; preds = %24, %23
%32 = load i8, ptr %5, align 1, !range !9, !noundef !3
%33 = trunc i8 %32 to i1
br i1 %33, label %35, label %34
34: ; preds = %31
store ptr null, ptr %0, align 8
br label %46
35: ; preds = %31
%36 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%37 = load i64, ptr %36, align 8, !noundef !3
%38 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%39 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%40 = load i64, ptr %39, align 8, !noundef !3
%41 = add i64 %40, 1
store i64 %41, ptr %38, align 8
%42 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%43 = getelementptr inbounds { { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%44 = load i64, ptr %43, align 8, !noundef !3
%45 = add i64 %44, 1
store i64 %45, ptr %42, align 8
call void @llvm.lifetime.start.p0(i64 32, ptr %4)
call void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h5228ed82a69da2a5E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr } }) align 8 dereferenceable(32) %4, ptr noalias noundef align 8 dereferenceable(136) %1, i64 noundef %37) #13
call void @llvm.lifetime.end.p0(i64 32, ptr %4)
store ptr null, ptr %0, align 8
br label %46
46: ; preds = %35, %34
call void @llvm.lifetime.end.p0(i64 1, ptr %5)
br label %47
47: ; preds = %48, %46
ret void
48: ; preds = %15
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %7, i64 32, i1 false)
%49 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr } }, { { { ptr, i64 }, { ptr, i64 } }, { { ptr, i64 }, { ptr, i64 } } } }, ptr %8, i32 0, i32 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %49, ptr align 8 %6, i64 64, i1 false)
call void @llvm.lifetime.end.p0(i64 64, ptr %6)
call void @llvm.lifetime.end.p0(i64 32, ptr %7)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %8, i64 96, i1 false)
call void @llvm.lifetime.end.p0(i64 96, ptr %8)
br label %47
50: ; No predecessors!
%51 = load ptr, ptr %3, align 8, !noundef !3
%52 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%53 = load i32, ptr %52, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%54 = insertvalue { ptr, i32 } poison, ptr %51, 0
%55 = insertvalue { ptr, i32 } %54, i32 %53, 1
resume { ptr, i32 } %55
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h6f7eebdd5248b030E"(ptr noalias nocapture noundef sret({ ptr, [2 x i64] }) align 8 dereferenceable(24) %0, ptr noalias noundef align 8 dereferenceable(96) %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca i8, align 1
%5 = alloca { { ptr, ptr }, ptr }, align 8
%6 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%7 = load i64, ptr %6, align 8, !noundef !3
%8 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%9 = load i64, ptr %8, align 8, !noundef !3
%10 = icmp ult i64 %7, %9
br i1 %10, label %12, label %11
11: ; preds = %2
call void @llvm.lifetime.start.p0(i64 1, ptr %4)
br i1 false, label %25, label %24
12: ; preds = %2
%13 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%14 = load i64, ptr %13, align 8, !noundef !3
%15 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%16 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%17 = load i64, ptr %16, align 8, !noundef !3
%18 = add i64 %17, 1
store i64 %18, ptr %15, align 8
call void @llvm.lifetime.start.p0(i64 24, ptr %5)
%19 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h507e88fd1e566867E"(ptr noalias noundef align 8 dereferenceable(56) %1, i64 noundef %14) #13
%20 = extractvalue { ptr, ptr } %19, 0
%21 = extractvalue { ptr, ptr } %19, 1
%22 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 1
%23 = call noundef align 2 dereferenceable(2) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h8adddd6571af427dE"(ptr noalias noundef align 8 dereferenceable(16) %22, i64 noundef %14) #13
br label %52
24: ; preds = %11
store i8 0, ptr %4, align 1
br label %32
25: ; preds = %11
%26 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%27 = load i64, ptr %26, align 8, !noundef !3
%28 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 4
%29 = load i64, ptr %28, align 8, !noundef !3
%30 = icmp ult i64 %27, %29
%31 = zext i1 %30 to i8
store i8 %31, ptr %4, align 1
br label %32
32: ; preds = %25, %24
%33 = load i8, ptr %4, align 1, !range !9, !noundef !3
%34 = trunc i8 %33 to i1
br i1 %34, label %36, label %35
35: ; preds = %32
store ptr null, ptr %0, align 8
br label %50
36: ; preds = %32
%37 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%38 = load i64, ptr %37, align 8, !noundef !3
%39 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%40 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%41 = load i64, ptr %40, align 8, !noundef !3
%42 = add i64 %41, 1
store i64 %42, ptr %39, align 8
%43 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%44 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%45 = load i64, ptr %44, align 8, !noundef !3
%46 = add i64 %45, 1
store i64 %46, ptr %43, align 8
%47 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h507e88fd1e566867E"(ptr noalias noundef align 8 dereferenceable(56) %1, i64 noundef %38) #13
%48 = extractvalue { ptr, ptr } %47, 0
%49 = extractvalue { ptr, ptr } %47, 1
store ptr null, ptr %0, align 8
br label %50
50: ; preds = %36, %35
call void @llvm.lifetime.end.p0(i64 1, ptr %4)
br label %51
51: ; preds = %52, %50
ret void
52: ; preds = %12
%53 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
store ptr %20, ptr %53, align 8
%54 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
store ptr %21, ptr %54, align 8
%55 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %5, i32 0, i32 1
store ptr %23, ptr %55, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %5, i64 24, i1 false)
call void @llvm.lifetime.end.p0(i64 24, ptr %5)
br label %51
56: ; No predecessors!
%57 = load ptr, ptr %3, align 8, !noundef !3
%58 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%59 = load i32, ptr %58, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%60 = insertvalue { ptr, i32 } poison, ptr %57, 0
%61 = insertvalue { ptr, i32 } %60, i32 %59, 1
resume { ptr, i32 } %61
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { i64, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h84f9be5631f5fd03E"(ptr noalias noundef align 8 dereferenceable(56) %0) unnamed_addr #0 personality ptr @rust_eh_personality {
%2 = alloca { ptr, i32 }, align 8
%3 = alloca i8, align 1
%4 = alloca { i64, ptr }, align 8
%5 = alloca { i64, ptr }, align 8
%6 = getelementptr inbounds { { ptr, ptr }, { i64, i64 }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%7 = load i64, ptr %6, align 8, !noundef !3
%8 = getelementptr inbounds { { ptr, ptr }, { i64, i64 }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%9 = load i64, ptr %8, align 8, !noundef !3
%10 = icmp ult i64 %7, %9
br i1 %10, label %12, label %11
11: ; preds = %1
call void @llvm.lifetime.start.p0(i64 1, ptr %3)
br i1 false, label %23, label %22
12: ; preds = %1
%13 = getelementptr inbounds { { ptr, ptr }, { i64, i64 }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%14 = load i64, ptr %13, align 8, !noundef !3
%15 = getelementptr inbounds { { ptr, ptr }, { i64, i64 }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%16 = getelementptr inbounds { { ptr, ptr }, { i64, i64 }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%17 = load i64, ptr %16, align 8, !noundef !3
%18 = add i64 %17, 1
store i64 %18, ptr %15, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %4)
%19 = getelementptr inbounds { { ptr, ptr }, { i64, i64 }, i64, i64, i64 }, ptr %0, i32 0, i32 1
%20 = call noundef i64 @"_ZN4core4iter5range101_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..Range$LT$A$GT$$GT$24__iterator_get_unchecked17ha7f06c7da88c61d7E"(ptr noalias noundef align 8 dereferenceable(16) %19, i64 noundef %14) #13
%21 = call noundef align 4 dereferenceable(4) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h7c4711e03e8b4097E"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %14) #13
br label %57
22: ; preds = %11
store i8 0, ptr %3, align 1
br label %30
23: ; preds = %11
%24 = getelementptr inbounds { { ptr, ptr }, { i64, i64 }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%25 = load i64, ptr %24, align 8, !noundef !3
%26 = getelementptr inbounds { { ptr, ptr }, { i64, i64 }, i64, i64, i64 }, ptr %0, i32 0, i32 4
%27 = load i64, ptr %26, align 8, !noundef !3
%28 = icmp ult i64 %25, %27
%29 = zext i1 %28 to i8
store i8 %29, ptr %3, align 1
br label %30
30: ; preds = %23, %22
%31 = load i8, ptr %3, align 1, !range !9, !noundef !3
%32 = trunc i8 %31 to i1
br i1 %32, label %35, label %33
33: ; preds = %30
%34 = getelementptr inbounds { i64, ptr }, ptr %5, i32 0, i32 1
store ptr null, ptr %34, align 8
br label %49
35: ; preds = %30
%36 = getelementptr inbounds { { ptr, ptr }, { i64, i64 }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%37 = load i64, ptr %36, align 8, !noundef !3
%38 = getelementptr inbounds { { ptr, ptr }, { i64, i64 }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%39 = getelementptr inbounds { { ptr, ptr }, { i64, i64 }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%40 = load i64, ptr %39, align 8, !noundef !3
%41 = add i64 %40, 1
store i64 %41, ptr %38, align 8
%42 = getelementptr inbounds { { ptr, ptr }, { i64, i64 }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%43 = getelementptr inbounds { { ptr, ptr }, { i64, i64 }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%44 = load i64, ptr %43, align 8, !noundef !3
%45 = add i64 %44, 1
store i64 %45, ptr %42, align 8
%46 = getelementptr inbounds { { ptr, ptr }, { i64, i64 }, i64, i64, i64 }, ptr %0, i32 0, i32 1
%47 = call noundef i64 @"_ZN4core4iter5range101_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..Range$LT$A$GT$$GT$24__iterator_get_unchecked17ha7f06c7da88c61d7E"(ptr noalias noundef align 8 dereferenceable(16) %46, i64 noundef %37) #13
%48 = getelementptr inbounds { i64, ptr }, ptr %5, i32 0, i32 1
store ptr null, ptr %48, align 8
br label %49
49: ; preds = %35, %33
call void @llvm.lifetime.end.p0(i64 1, ptr %3)
br label %50
50: ; preds = %57, %49
%51 = getelementptr inbounds { i64, ptr }, ptr %5, i32 0, i32 0
%52 = load i64, ptr %51, align 8
%53 = getelementptr inbounds { i64, ptr }, ptr %5, i32 0, i32 1
%54 = load ptr, ptr %53, align 8, !align !8, !noundef !3
%55 = insertvalue { i64, ptr } poison, i64 %52, 0
%56 = insertvalue { i64, ptr } %55, ptr %54, 1
ret { i64, ptr } %56
57: ; preds = %12
store i64 %20, ptr %4, align 8
%58 = getelementptr inbounds { i64, ptr }, ptr %4, i32 0, i32 1
store ptr %21, ptr %58, align 8
%59 = getelementptr inbounds { i64, ptr }, ptr %4, i32 0, i32 0
%60 = load i64, ptr %59, align 8, !noundef !3
%61 = getelementptr inbounds { i64, ptr }, ptr %4, i32 0, i32 1
%62 = load ptr, ptr %61, align 8, !nonnull !3, !align !8, !noundef !3
%63 = getelementptr inbounds { i64, ptr }, ptr %5, i32 0, i32 0
store i64 %60, ptr %63, align 8
%64 = getelementptr inbounds { i64, ptr }, ptr %5, i32 0, i32 1
store ptr %62, ptr %64, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
br label %50
65: ; No predecessors!
%66 = load ptr, ptr %2, align 8, !noundef !3
%67 = getelementptr inbounds { ptr, i32 }, ptr %2, i32 0, i32 1
%68 = load i32, ptr %67, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %2)
%69 = insertvalue { ptr, i32 } poison, ptr %66, 0
%70 = insertvalue { ptr, i32 } %69, i32 %68, 1
resume { ptr, i32 } %70
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h90edce2244186996E"(ptr noalias nocapture noundef sret({ ptr, [2 x i64] }) align 8 dereferenceable(24) %0, ptr noalias noundef align 8 dereferenceable(112) %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca { ptr, { ptr, ptr } }, align 8
%5 = alloca { ptr, ptr }, align 8
%6 = alloca { ptr, ptr }, align 8
%7 = alloca ptr, align 8
%8 = alloca ptr, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %8)
call void @llvm.lifetime.start.p0(i64 8, ptr %7)
%9 = call noundef align 2 dereferenceable_or_null(2) ptr @"_ZN94_$LT$rav1e..lrf..HorzPaddedIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17he29d3a1205a3c6c2E"(ptr noalias noundef align 8 dereferenceable(32) %1) #13
store ptr %9, ptr %7, align 8
%10 = load ptr, ptr %7, align 8, !noundef !3
%11 = ptrtoint ptr %10 to i64
%12 = icmp eq i64 %11, 0
%13 = select i1 %12, i64 0, i64 1
switch i64 %13, label %14 [
i64 0, label %15
i64 1, label %16
]
14: ; preds = %41, %28, %18, %2
unreachable
15: ; preds = %2
store ptr null, ptr %8, align 8
br label %18
16: ; preds = %2
%17 = load ptr, ptr %7, align 8, !nonnull !3, !align !6, !noundef !3
store ptr %17, ptr %8, align 8
br label %18
18: ; preds = %16, %15
call void @llvm.lifetime.end.p0(i64 8, ptr %7)
%19 = load ptr, ptr %8, align 8, !noundef !3
%20 = ptrtoint ptr %19 to i64
%21 = icmp eq i64 %20, 0
%22 = select i1 %21, i64 1, i64 0
switch i64 %22, label %14 [
i64 0, label %23
i64 1, label %27
]
23: ; preds = %18
%24 = load ptr, ptr %8, align 8, !nonnull !3, !align !6, !noundef !3
call void @llvm.lifetime.end.p0(i64 8, ptr %8)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
call void @llvm.lifetime.start.p0(i64 16, ptr %5)
%25 = getelementptr inbounds { { { ptr, i64 }, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 1
%26 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h1e2485751ce555a3E"(ptr noalias noundef align 8 dereferenceable(56) %25) #13
store { ptr, ptr } %26, ptr %5, align 8
br label %28
27: ; preds = %18
store ptr null, ptr %0, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %8)
br label %56
28: ; preds = %23
%29 = load ptr, ptr %5, align 8, !noundef !3
%30 = ptrtoint ptr %29 to i64
%31 = icmp eq i64 %30, 0
%32 = select i1 %31, i64 0, i64 1
switch i64 %32, label %14 [
i64 0, label %33
i64 1, label %34
]
33: ; preds = %28
store ptr null, ptr %6, align 8
br label %41
34: ; preds = %28
%35 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
%36 = load ptr, ptr %35, align 8, !nonnull !3, !align !8, !noundef !3
%37 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
%38 = load ptr, ptr %37, align 8, !nonnull !3, !align !8, !noundef !3
%39 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 0
store ptr %36, ptr %39, align 8
%40 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
store ptr %38, ptr %40, align 8
br label %41
41: ; preds = %34, %33
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
%42 = load ptr, ptr %6, align 8, !noundef !3
%43 = ptrtoint ptr %42 to i64
%44 = icmp eq i64 %43, 0
%45 = select i1 %44, i64 1, i64 0
switch i64 %45, label %14 [
i64 0, label %46
i64 1, label %54
]
46: ; preds = %41
%47 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 0
%48 = load ptr, ptr %47, align 8, !nonnull !3, !align !8, !noundef !3
%49 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
%50 = load ptr, ptr %49, align 8, !nonnull !3, !align !8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
call void @llvm.lifetime.start.p0(i64 24, ptr %4)
store ptr %24, ptr %4, align 8
%51 = getelementptr inbounds { ptr, { ptr, ptr } }, ptr %4, i32 0, i32 1
%52 = getelementptr inbounds { ptr, ptr }, ptr %51, i32 0, i32 0
store ptr %48, ptr %52, align 8
%53 = getelementptr inbounds { ptr, ptr }, ptr %51, i32 0, i32 1
store ptr %50, ptr %53, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %4, i64 24, i1 false)
call void @llvm.lifetime.end.p0(i64 24, ptr %4)
br label %55
54: ; preds = %41
store ptr null, ptr %0, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
br label %56
55: ; preds = %56, %46
ret void
56: ; preds = %54, %27
br label %55
57: ; No predecessors!
%58 = load ptr, ptr %3, align 8, !noundef !3
%59 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%60 = load i32, ptr %59, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%61 = insertvalue { ptr, i32 } poison, ptr %58, 0
%62 = insertvalue { ptr, i32 } %61, i32 %60, 1
resume { ptr, i32 } %62
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { i64, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17h9882d855b4596900E"(ptr noalias noundef align 8 dereferenceable(80) %0) unnamed_addr #0 personality ptr @rust_eh_personality {
%2 = alloca { ptr, i32 }, align 8
%3 = alloca { i64, ptr }, align 8
%4 = alloca ptr, align 8
%5 = alloca ptr, align 8
%6 = alloca { i64, i64 }, align 8
%7 = alloca { i64, i64 }, align 8
%8 = alloca { i64, ptr }, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
%9 = getelementptr inbounds { { { ptr, { {}, ptr, i64, i64 } }, i64 }, { i64, i64 }, i64, i64, i64 }, ptr %0, i32 0, i32 1
%10 = call { i64, i64 } @"_ZN4core4iter5range101_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..Range$LT$A$GT$$GT$4next17h89a7c4814ec424d8E"(ptr noalias noundef align 8 dereferenceable(16) %9) #13
store { i64, i64 } %10, ptr %6, align 8
%11 = load i64, ptr %6, align 8, !range !7, !noundef !3
switch i64 %11, label %12 [
i64 0, label %13
i64 1, label %14
]
12: ; preds = %34, %26, %18, %1
unreachable
13: ; preds = %1
store i64 1, ptr %7, align 8
br label %18
14: ; preds = %1
%15 = getelementptr inbounds { i64, i64 }, ptr %6, i32 0, i32 1
%16 = load i64, ptr %15, align 8, !noundef !3
%17 = getelementptr inbounds { i64, i64 }, ptr %7, i32 0, i32 1
store i64 %16, ptr %17, align 8
store i64 0, ptr %7, align 8
br label %18
18: ; preds = %14, %13
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%19 = load i64, ptr %7, align 8, !range !7, !noundef !3
switch i64 %19, label %12 [
i64 0, label %20
i64 1, label %24
]
20: ; preds = %18
%21 = getelementptr inbounds { i64, i64 }, ptr %7, i32 0, i32 1
%22 = load i64, ptr %21, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 8, ptr %5)
call void @llvm.lifetime.start.p0(i64 8, ptr %4)
%23 = call noundef align 2 dereferenceable_or_null(2) ptr @"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h8a951680d3082d8eE"(ptr noalias noundef align 8 dereferenceable(40) %0) #13
store ptr %23, ptr %4, align 8
br label %26
24: ; preds = %18
%25 = getelementptr inbounds { i64, ptr }, ptr %8, i32 0, i32 1
store ptr null, ptr %25, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
br label %57
26: ; preds = %20
%27 = load ptr, ptr %4, align 8, !noundef !3
%28 = ptrtoint ptr %27 to i64
%29 = icmp eq i64 %28, 0
%30 = select i1 %29, i64 0, i64 1
switch i64 %30, label %12 [
i64 0, label %31
i64 1, label %32
]
31: ; preds = %26
store ptr null, ptr %5, align 8
br label %34
32: ; preds = %26
%33 = load ptr, ptr %4, align 8, !nonnull !3, !align !6, !noundef !3
store ptr %33, ptr %5, align 8
br label %34
34: ; preds = %32, %31
call void @llvm.lifetime.end.p0(i64 8, ptr %4)
%35 = load ptr, ptr %5, align 8, !noundef !3
%36 = ptrtoint ptr %35 to i64
%37 = icmp eq i64 %36, 0
%38 = select i1 %37, i64 1, i64 0
switch i64 %38, label %12 [
i64 0, label %39
i64 1, label %48
]
39: ; preds = %34
%40 = load ptr, ptr %5, align 8, !nonnull !3, !align !6, !noundef !3
call void @llvm.lifetime.end.p0(i64 8, ptr %5)
call void @llvm.lifetime.start.p0(i64 16, ptr %3)
store i64 %22, ptr %3, align 8
%41 = getelementptr inbounds { i64, ptr }, ptr %3, i32 0, i32 1
store ptr %40, ptr %41, align 8
%42 = getelementptr inbounds { i64, ptr }, ptr %3, i32 0, i32 0
%43 = load i64, ptr %42, align 8, !noundef !3
%44 = getelementptr inbounds { i64, ptr }, ptr %3, i32 0, i32 1
%45 = load ptr, ptr %44, align 8, !nonnull !3, !align !6, !noundef !3
%46 = getelementptr inbounds { i64, ptr }, ptr %8, i32 0, i32 0
store i64 %43, ptr %46, align 8
%47 = getelementptr inbounds { i64, ptr }, ptr %8, i32 0, i32 1
store ptr %45, ptr %47, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
br label %50
48: ; preds = %34
%49 = getelementptr inbounds { i64, ptr }, ptr %8, i32 0, i32 1
store ptr null, ptr %49, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %5)
br label %57
50: ; preds = %57, %39
%51 = getelementptr inbounds { i64, ptr }, ptr %8, i32 0, i32 0
%52 = load i64, ptr %51, align 8
%53 = getelementptr inbounds { i64, ptr }, ptr %8, i32 0, i32 1
%54 = load ptr, ptr %53, align 8, !align !6, !noundef !3
%55 = insertvalue { i64, ptr } poison, i64 %52, 0
%56 = insertvalue { i64, ptr } %55, ptr %54, 1
ret { i64, ptr } %56
57: ; preds = %48, %24
br label %50
58: ; No predecessors!
%59 = load ptr, ptr %2, align 8, !noundef !3
%60 = getelementptr inbounds { ptr, i32 }, ptr %2, i32 0, i32 1
%61 = load i32, ptr %60, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %2)
%62 = insertvalue { ptr, i32 } poison, ptr %59, 0
%63 = insertvalue { ptr, i32 } %62, i32 %61, 1
resume { ptr, i32 } %63
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17hac1e762370b9293eE"(ptr noalias nocapture noundef sret({ ptr, [3 x i64] }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(136) %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca i8, align 1
%5 = alloca { { ptr, ptr }, { ptr, ptr } }, align 8
%6 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%7 = load i64, ptr %6, align 8, !noundef !3
%8 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%9 = load i64, ptr %8, align 8, !noundef !3
%10 = icmp ult i64 %7, %9
br i1 %10, label %12, label %11
11: ; preds = %2
call void @llvm.lifetime.start.p0(i64 1, ptr %4)
br i1 false, label %27, label %26
12: ; preds = %2
%13 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%14 = load i64, ptr %13, align 8, !noundef !3
%15 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%16 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%17 = load i64, ptr %16, align 8, !noundef !3
%18 = add i64 %17, 1
store i64 %18, ptr %15, align 8
call void @llvm.lifetime.start.p0(i64 32, ptr %5)
%19 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17hd16706c6e9d0a444E"(ptr noalias noundef align 8 dereferenceable(56) %1, i64 noundef %14) #13
%20 = extractvalue { ptr, ptr } %19, 0
%21 = extractvalue { ptr, ptr } %19, 1
%22 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 1
%23 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h6ece77b79967d658E"(ptr noalias noundef align 8 dereferenceable(56) %22, i64 noundef %14) #13
%24 = extractvalue { ptr, ptr } %23, 0
%25 = extractvalue { ptr, ptr } %23, 1
br label %54
26: ; preds = %11
store i8 0, ptr %4, align 1
br label %34
27: ; preds = %11
%28 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%29 = load i64, ptr %28, align 8, !noundef !3
%30 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 4
%31 = load i64, ptr %30, align 8, !noundef !3
%32 = icmp ult i64 %29, %31
%33 = zext i1 %32 to i8
store i8 %33, ptr %4, align 1
br label %34
34: ; preds = %27, %26
%35 = load i8, ptr %4, align 1, !range !9, !noundef !3
%36 = trunc i8 %35 to i1
br i1 %36, label %38, label %37
37: ; preds = %34
store ptr null, ptr %0, align 8
br label %52
38: ; preds = %34
%39 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%40 = load i64, ptr %39, align 8, !noundef !3
%41 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%42 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%43 = load i64, ptr %42, align 8, !noundef !3
%44 = add i64 %43, 1
store i64 %44, ptr %41, align 8
%45 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%46 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%47 = load i64, ptr %46, align 8, !noundef !3
%48 = add i64 %47, 1
store i64 %48, ptr %45, align 8
%49 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17hd16706c6e9d0a444E"(ptr noalias noundef align 8 dereferenceable(56) %1, i64 noundef %40) #13
%50 = extractvalue { ptr, ptr } %49, 0
%51 = extractvalue { ptr, ptr } %49, 1
store ptr null, ptr %0, align 8
br label %52
52: ; preds = %38, %37
call void @llvm.lifetime.end.p0(i64 1, ptr %4)
br label %53
53: ; preds = %54, %52
ret void
54: ; preds = %12
%55 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
store ptr %20, ptr %55, align 8
%56 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
store ptr %21, ptr %56, align 8
%57 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr } }, ptr %5, i32 0, i32 1
%58 = getelementptr inbounds { ptr, ptr }, ptr %57, i32 0, i32 0
store ptr %24, ptr %58, align 8
%59 = getelementptr inbounds { ptr, ptr }, ptr %57, i32 0, i32 1
store ptr %25, ptr %59, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %5, i64 32, i1 false)
call void @llvm.lifetime.end.p0(i64 32, ptr %5)
br label %53
60: ; No predecessors!
%61 = load ptr, ptr %3, align 8, !noundef !3
%62 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%63 = load i32, ptr %62, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%64 = insertvalue { ptr, i32 } poison, ptr %61, 0
%65 = insertvalue { ptr, i32 } %64, i32 %63, 1
resume { ptr, i32 } %65
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { i64, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17hb152db2fc72ce33bE"(ptr noalias noundef align 8 dereferenceable(80) %0) unnamed_addr #0 personality ptr @rust_eh_personality {
%2 = alloca { ptr, i32 }, align 8
%3 = alloca { i64, ptr }, align 8
%4 = alloca ptr, align 8
%5 = alloca ptr, align 8
%6 = alloca { i64, i64 }, align 8
%7 = alloca { i64, i64 }, align 8
%8 = alloca { i64, ptr }, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
%9 = getelementptr inbounds { { { ptr, { {}, ptr, i64, i64 } }, i64 }, { i64, i64 }, i64, i64, i64 }, ptr %0, i32 0, i32 1
%10 = call { i64, i64 } @"_ZN4core4iter5range101_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..Range$LT$A$GT$$GT$4next17h89a7c4814ec424d8E"(ptr noalias noundef align 8 dereferenceable(16) %9) #13
store { i64, i64 } %10, ptr %6, align 8
%11 = load i64, ptr %6, align 8, !range !7, !noundef !3
switch i64 %11, label %12 [
i64 0, label %13
i64 1, label %14
]
12: ; preds = %34, %26, %18, %1
unreachable
13: ; preds = %1
store i64 1, ptr %7, align 8
br label %18
14: ; preds = %1
%15 = getelementptr inbounds { i64, i64 }, ptr %6, i32 0, i32 1
%16 = load i64, ptr %15, align 8, !noundef !3
%17 = getelementptr inbounds { i64, i64 }, ptr %7, i32 0, i32 1
store i64 %16, ptr %17, align 8
store i64 0, ptr %7, align 8
br label %18
18: ; preds = %14, %13
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%19 = load i64, ptr %7, align 8, !range !7, !noundef !3
switch i64 %19, label %12 [
i64 0, label %20
i64 1, label %24
]
20: ; preds = %18
%21 = getelementptr inbounds { i64, i64 }, ptr %7, i32 0, i32 1
%22 = load i64, ptr %21, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 8, ptr %5)
call void @llvm.lifetime.start.p0(i64 8, ptr %4)
%23 = call noundef align 1 dereferenceable_or_null(1) ptr @"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h088a3efd70679c11E"(ptr noalias noundef align 8 dereferenceable(40) %0) #13
store ptr %23, ptr %4, align 8
br label %26
24: ; preds = %18
%25 = getelementptr inbounds { i64, ptr }, ptr %8, i32 0, i32 1
store ptr null, ptr %25, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
br label %57
26: ; preds = %20
%27 = load ptr, ptr %4, align 8, !noundef !3
%28 = ptrtoint ptr %27 to i64
%29 = icmp eq i64 %28, 0
%30 = select i1 %29, i64 0, i64 1
switch i64 %30, label %12 [
i64 0, label %31
i64 1, label %32
]
31: ; preds = %26
store ptr null, ptr %5, align 8
br label %34
32: ; preds = %26
%33 = load ptr, ptr %4, align 8, !nonnull !3, !align !4, !noundef !3
store ptr %33, ptr %5, align 8
br label %34
34: ; preds = %32, %31
call void @llvm.lifetime.end.p0(i64 8, ptr %4)
%35 = load ptr, ptr %5, align 8, !noundef !3
%36 = ptrtoint ptr %35 to i64
%37 = icmp eq i64 %36, 0
%38 = select i1 %37, i64 1, i64 0
switch i64 %38, label %12 [
i64 0, label %39
i64 1, label %48
]
39: ; preds = %34
%40 = load ptr, ptr %5, align 8, !nonnull !3, !align !4, !noundef !3
call void @llvm.lifetime.end.p0(i64 8, ptr %5)
call void @llvm.lifetime.start.p0(i64 16, ptr %3)
store i64 %22, ptr %3, align 8
%41 = getelementptr inbounds { i64, ptr }, ptr %3, i32 0, i32 1
store ptr %40, ptr %41, align 8
%42 = getelementptr inbounds { i64, ptr }, ptr %3, i32 0, i32 0
%43 = load i64, ptr %42, align 8, !noundef !3
%44 = getelementptr inbounds { i64, ptr }, ptr %3, i32 0, i32 1
%45 = load ptr, ptr %44, align 8, !nonnull !3, !align !4, !noundef !3
%46 = getelementptr inbounds { i64, ptr }, ptr %8, i32 0, i32 0
store i64 %43, ptr %46, align 8
%47 = getelementptr inbounds { i64, ptr }, ptr %8, i32 0, i32 1
store ptr %45, ptr %47, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
br label %50
48: ; preds = %34
%49 = getelementptr inbounds { i64, ptr }, ptr %8, i32 0, i32 1
store ptr null, ptr %49, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %5)
br label %57
50: ; preds = %57, %39
%51 = getelementptr inbounds { i64, ptr }, ptr %8, i32 0, i32 0
%52 = load i64, ptr %51, align 8
%53 = getelementptr inbounds { i64, ptr }, ptr %8, i32 0, i32 1
%54 = load ptr, ptr %53, align 8, !align !4, !noundef !3
%55 = insertvalue { i64, ptr } poison, i64 %52, 0
%56 = insertvalue { i64, ptr } %55, ptr %54, 1
ret { i64, ptr } %56
57: ; preds = %48, %24
br label %50
58: ; No predecessors!
%59 = load ptr, ptr %2, align 8, !noundef !3
%60 = getelementptr inbounds { ptr, i32 }, ptr %2, i32 0, i32 1
%61 = load i32, ptr %60, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %2)
%62 = insertvalue { ptr, i32 } poison, ptr %59, 0
%63 = insertvalue { ptr, i32 } %62, i32 %61, 1
resume { ptr, i32 } %63
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17hb4247c73323e681fE"(ptr noalias nocapture noundef sret({ ptr, [3 x i64] }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(136) %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca i8, align 1
%5 = alloca { { ptr, ptr }, { ptr, ptr } }, align 8
%6 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%7 = load i64, ptr %6, align 8, !noundef !3
%8 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%9 = load i64, ptr %8, align 8, !noundef !3
%10 = icmp ult i64 %7, %9
br i1 %10, label %12, label %11
11: ; preds = %2
call void @llvm.lifetime.start.p0(i64 1, ptr %4)
br i1 false, label %27, label %26
12: ; preds = %2
%13 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%14 = load i64, ptr %13, align 8, !noundef !3
%15 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%16 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%17 = load i64, ptr %16, align 8, !noundef !3
%18 = add i64 %17, 1
store i64 %18, ptr %15, align 8
call void @llvm.lifetime.start.p0(i64 32, ptr %5)
%19 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h89de01d04b05c4a4E"(ptr noalias noundef align 8 dereferenceable(56) %1, i64 noundef %14) #13
%20 = extractvalue { ptr, ptr } %19, 0
%21 = extractvalue { ptr, ptr } %19, 1
%22 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 1
%23 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17hd16706c6e9d0a444E"(ptr noalias noundef align 8 dereferenceable(56) %22, i64 noundef %14) #13
%24 = extractvalue { ptr, ptr } %23, 0
%25 = extractvalue { ptr, ptr } %23, 1
br label %54
26: ; preds = %11
store i8 0, ptr %4, align 1
br label %34
27: ; preds = %11
%28 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%29 = load i64, ptr %28, align 8, !noundef !3
%30 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 4
%31 = load i64, ptr %30, align 8, !noundef !3
%32 = icmp ult i64 %29, %31
%33 = zext i1 %32 to i8
store i8 %33, ptr %4, align 1
br label %34
34: ; preds = %27, %26
%35 = load i8, ptr %4, align 1, !range !9, !noundef !3
%36 = trunc i8 %35 to i1
br i1 %36, label %38, label %37
37: ; preds = %34
store ptr null, ptr %0, align 8
br label %52
38: ; preds = %34
%39 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%40 = load i64, ptr %39, align 8, !noundef !3
%41 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%42 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%43 = load i64, ptr %42, align 8, !noundef !3
%44 = add i64 %43, 1
store i64 %44, ptr %41, align 8
%45 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%46 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%47 = load i64, ptr %46, align 8, !noundef !3
%48 = add i64 %47, 1
store i64 %48, ptr %45, align 8
%49 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h89de01d04b05c4a4E"(ptr noalias noundef align 8 dereferenceable(56) %1, i64 noundef %40) #13
%50 = extractvalue { ptr, ptr } %49, 0
%51 = extractvalue { ptr, ptr } %49, 1
store ptr null, ptr %0, align 8
br label %52
52: ; preds = %38, %37
call void @llvm.lifetime.end.p0(i64 1, ptr %4)
br label %53
53: ; preds = %54, %52
ret void
54: ; preds = %12
%55 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
store ptr %20, ptr %55, align 8
%56 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
store ptr %21, ptr %56, align 8
%57 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr } }, ptr %5, i32 0, i32 1
%58 = getelementptr inbounds { ptr, ptr }, ptr %57, i32 0, i32 0
store ptr %24, ptr %58, align 8
%59 = getelementptr inbounds { ptr, ptr }, ptr %57, i32 0, i32 1
store ptr %25, ptr %59, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %5, i64 32, i1 false)
call void @llvm.lifetime.end.p0(i64 32, ptr %5)
br label %53
60: ; No predecessors!
%61 = load ptr, ptr %3, align 8, !noundef !3
%62 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%63 = load i32, ptr %62, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%64 = insertvalue { ptr, i32 } poison, ptr %61, 0
%65 = insertvalue { ptr, i32 } %64, i32 %63, 1
resume { ptr, i32 } %65
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17hb989259c27093a21E"(ptr noalias noundef align 8 dereferenceable(56) %0) unnamed_addr #0 personality ptr @rust_eh_personality {
%2 = alloca { ptr, i32 }, align 8
%3 = alloca i8, align 1
%4 = alloca { ptr, ptr }, align 8
%5 = alloca { ptr, ptr }, align 8
%6 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%7 = load i64, ptr %6, align 8, !noundef !3
%8 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%9 = load i64, ptr %8, align 8, !noundef !3
%10 = icmp ult i64 %7, %9
br i1 %10, label %12, label %11
11: ; preds = %1
call void @llvm.lifetime.start.p0(i64 1, ptr %3)
br i1 false, label %23, label %22
12: ; preds = %1
%13 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%14 = load i64, ptr %13, align 8, !noundef !3
%15 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%16 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%17 = load i64, ptr %16, align 8, !noundef !3
%18 = add i64 %17, 1
store i64 %18, ptr %15, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %4)
%19 = call noundef align 4 dereferenceable(4) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17ha821cc8f1b9ad8b6E"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %14) #13
%20 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 1
%21 = call noundef align 2 dereferenceable(2) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h8adddd6571af427dE"(ptr noalias noundef align 8 dereferenceable(16) %20, i64 noundef %14) #13
br label %54
22: ; preds = %11
store i8 0, ptr %3, align 1
br label %30
23: ; preds = %11
%24 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%25 = load i64, ptr %24, align 8, !noundef !3
%26 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 4
%27 = load i64, ptr %26, align 8, !noundef !3
%28 = icmp ult i64 %25, %27
%29 = zext i1 %28 to i8
store i8 %29, ptr %3, align 1
br label %30
30: ; preds = %23, %22
%31 = load i8, ptr %3, align 1, !range !9, !noundef !3
%32 = trunc i8 %31 to i1
br i1 %32, label %34, label %33
33: ; preds = %30
store ptr null, ptr %5, align 8
br label %46
34: ; preds = %30
%35 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%36 = load i64, ptr %35, align 8, !noundef !3
%37 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%38 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%39 = load i64, ptr %38, align 8, !noundef !3
%40 = add i64 %39, 1
store i64 %40, ptr %37, align 8
%41 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%42 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%43 = load i64, ptr %42, align 8, !noundef !3
%44 = add i64 %43, 1
store i64 %44, ptr %41, align 8
%45 = call noundef align 4 dereferenceable(4) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17ha821cc8f1b9ad8b6E"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %36) #13
store ptr null, ptr %5, align 8
br label %46
46: ; preds = %34, %33
call void @llvm.lifetime.end.p0(i64 1, ptr %3)
br label %47
47: ; preds = %54, %46
%48 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
%49 = load ptr, ptr %48, align 8, !align !8, !noundef !3
%50 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
%51 = load ptr, ptr %50, align 8
%52 = insertvalue { ptr, ptr } poison, ptr %49, 0
%53 = insertvalue { ptr, ptr } %52, ptr %51, 1
ret { ptr, ptr } %53
54: ; preds = %12
store ptr %19, ptr %4, align 8
%55 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
store ptr %21, ptr %55, align 8
%56 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 0
%57 = load ptr, ptr %56, align 8, !nonnull !3, !align !8, !noundef !3
%58 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
%59 = load ptr, ptr %58, align 8, !nonnull !3, !align !6, !noundef !3
%60 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
store ptr %57, ptr %60, align 8
%61 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
store ptr %59, ptr %61, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
br label %47
62: ; No predecessors!
%63 = load ptr, ptr %2, align 8, !noundef !3
%64 = getelementptr inbounds { ptr, i32 }, ptr %2, i32 0, i32 1
%65 = load i32, ptr %64, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %2)
%66 = insertvalue { ptr, i32 } poison, ptr %63, 0
%67 = insertvalue { ptr, i32 } %66, i32 %65, 1
resume { ptr, i32 } %67
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17hc136cbef4e23d645E"(ptr noalias noundef align 8 dereferenceable(56) %0) unnamed_addr #0 personality ptr @rust_eh_personality {
%2 = alloca { ptr, i32 }, align 8
%3 = alloca i8, align 1
%4 = alloca { ptr, ptr }, align 8
%5 = alloca { ptr, ptr }, align 8
%6 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%7 = load i64, ptr %6, align 8, !noundef !3
%8 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%9 = load i64, ptr %8, align 8, !noundef !3
%10 = icmp ult i64 %7, %9
br i1 %10, label %12, label %11
11: ; preds = %1
call void @llvm.lifetime.start.p0(i64 1, ptr %3)
br i1 false, label %23, label %22
12: ; preds = %1
%13 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%14 = load i64, ptr %13, align 8, !noundef !3
%15 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%16 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%17 = load i64, ptr %16, align 8, !noundef !3
%18 = add i64 %17, 1
store i64 %18, ptr %15, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %4)
%19 = call noundef align 4 dereferenceable(4) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h788a3d980cffb9a4E"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %14) #13
%20 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 1
%21 = call noundef align 1 dereferenceable(1) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h4b9fe176183bb556E"(ptr noalias noundef align 8 dereferenceable(16) %20, i64 noundef %14) #13
br label %54
22: ; preds = %11
store i8 0, ptr %3, align 1
br label %30
23: ; preds = %11
%24 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%25 = load i64, ptr %24, align 8, !noundef !3
%26 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 4
%27 = load i64, ptr %26, align 8, !noundef !3
%28 = icmp ult i64 %25, %27
%29 = zext i1 %28 to i8
store i8 %29, ptr %3, align 1
br label %30
30: ; preds = %23, %22
%31 = load i8, ptr %3, align 1, !range !9, !noundef !3
%32 = trunc i8 %31 to i1
br i1 %32, label %34, label %33
33: ; preds = %30
store ptr null, ptr %5, align 8
br label %46
34: ; preds = %30
%35 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%36 = load i64, ptr %35, align 8, !noundef !3
%37 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%38 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%39 = load i64, ptr %38, align 8, !noundef !3
%40 = add i64 %39, 1
store i64 %40, ptr %37, align 8
%41 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%42 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%43 = load i64, ptr %42, align 8, !noundef !3
%44 = add i64 %43, 1
store i64 %44, ptr %41, align 8
%45 = call noundef align 4 dereferenceable(4) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h788a3d980cffb9a4E"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %36) #13
store ptr null, ptr %5, align 8
br label %46
46: ; preds = %34, %33
call void @llvm.lifetime.end.p0(i64 1, ptr %3)
br label %47
47: ; preds = %54, %46
%48 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
%49 = load ptr, ptr %48, align 8, !align !8, !noundef !3
%50 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
%51 = load ptr, ptr %50, align 8
%52 = insertvalue { ptr, ptr } poison, ptr %49, 0
%53 = insertvalue { ptr, ptr } %52, ptr %51, 1
ret { ptr, ptr } %53
54: ; preds = %12
store ptr %19, ptr %4, align 8
%55 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
store ptr %21, ptr %55, align 8
%56 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 0
%57 = load ptr, ptr %56, align 8, !nonnull !3, !align !8, !noundef !3
%58 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
%59 = load ptr, ptr %58, align 8, !nonnull !3, !align !4, !noundef !3
%60 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
store ptr %57, ptr %60, align 8
%61 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
store ptr %59, ptr %61, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
br label %47
62: ; No predecessors!
%63 = load ptr, ptr %2, align 8, !noundef !3
%64 = getelementptr inbounds { ptr, i32 }, ptr %2, i32 0, i32 1
%65 = load i32, ptr %64, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %2)
%66 = insertvalue { ptr, i32 } poison, ptr %63, 0
%67 = insertvalue { ptr, i32 } %66, i32 %65, 1
resume { ptr, i32 } %67
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17hc834c59bea345793E"(ptr noalias nocapture noundef sret({ ptr, [3 x i64] }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(136) %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca i8, align 1
%5 = alloca { { ptr, ptr }, { ptr, ptr } }, align 8
%6 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%7 = load i64, ptr %6, align 8, !noundef !3
%8 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%9 = load i64, ptr %8, align 8, !noundef !3
%10 = icmp ult i64 %7, %9
br i1 %10, label %12, label %11
11: ; preds = %2
call void @llvm.lifetime.start.p0(i64 1, ptr %4)
br i1 false, label %27, label %26
12: ; preds = %2
%13 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%14 = load i64, ptr %13, align 8, !noundef !3
%15 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%16 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%17 = load i64, ptr %16, align 8, !noundef !3
%18 = add i64 %17, 1
store i64 %18, ptr %15, align 8
call void @llvm.lifetime.start.p0(i64 32, ptr %5)
%19 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17hcd56f2d18b8cc11fE"(ptr noalias noundef align 8 dereferenceable(56) %1, i64 noundef %14) #13
%20 = extractvalue { ptr, ptr } %19, 0
%21 = extractvalue { ptr, ptr } %19, 1
%22 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 1
%23 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17hd16706c6e9d0a444E"(ptr noalias noundef align 8 dereferenceable(56) %22, i64 noundef %14) #13
%24 = extractvalue { ptr, ptr } %23, 0
%25 = extractvalue { ptr, ptr } %23, 1
br label %54
26: ; preds = %11
store i8 0, ptr %4, align 1
br label %34
27: ; preds = %11
%28 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%29 = load i64, ptr %28, align 8, !noundef !3
%30 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 4
%31 = load i64, ptr %30, align 8, !noundef !3
%32 = icmp ult i64 %29, %31
%33 = zext i1 %32 to i8
store i8 %33, ptr %4, align 1
br label %34
34: ; preds = %27, %26
%35 = load i8, ptr %4, align 1, !range !9, !noundef !3
%36 = trunc i8 %35 to i1
br i1 %36, label %38, label %37
37: ; preds = %34
store ptr null, ptr %0, align 8
br label %52
38: ; preds = %34
%39 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%40 = load i64, ptr %39, align 8, !noundef !3
%41 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%42 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 2
%43 = load i64, ptr %42, align 8, !noundef !3
%44 = add i64 %43, 1
store i64 %44, ptr %41, align 8
%45 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%46 = getelementptr inbounds { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 3
%47 = load i64, ptr %46, align 8, !noundef !3
%48 = add i64 %47, 1
store i64 %48, ptr %45, align 8
%49 = call { ptr, ptr } @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17hcd56f2d18b8cc11fE"(ptr noalias noundef align 8 dereferenceable(56) %1, i64 noundef %40) #13
%50 = extractvalue { ptr, ptr } %49, 0
%51 = extractvalue { ptr, ptr } %49, 1
store ptr null, ptr %0, align 8
br label %52
52: ; preds = %38, %37
call void @llvm.lifetime.end.p0(i64 1, ptr %4)
br label %53
53: ; preds = %54, %52
ret void
54: ; preds = %12
%55 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
store ptr %20, ptr %55, align 8
%56 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
store ptr %21, ptr %56, align 8
%57 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr } }, ptr %5, i32 0, i32 1
%58 = getelementptr inbounds { ptr, ptr }, ptr %57, i32 0, i32 0
store ptr %24, ptr %58, align 8
%59 = getelementptr inbounds { ptr, ptr }, ptr %57, i32 0, i32 1
store ptr %25, ptr %59, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %5, i64 32, i1 false)
call void @llvm.lifetime.end.p0(i64 32, ptr %5)
br label %53
60: ; No predecessors!
%61 = load ptr, ptr %3, align 8, !noundef !3
%62 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%63 = load i32, ptr %62, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%64 = insertvalue { ptr, i32 } poison, ptr %61, 0
%65 = insertvalue { ptr, i32 } %64, i32 %63, 1
resume { ptr, i32 } %65
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17hcfa08edd19c8f727E"(ptr noalias noundef align 8 dereferenceable(56) %0) unnamed_addr #0 personality ptr @rust_eh_personality {
%2 = alloca { ptr, i32 }, align 8
%3 = alloca i8, align 1
%4 = alloca { ptr, ptr }, align 8
%5 = alloca { ptr, ptr }, align 8
%6 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%7 = load i64, ptr %6, align 8, !noundef !3
%8 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%9 = load i64, ptr %8, align 8, !noundef !3
%10 = icmp ult i64 %7, %9
br i1 %10, label %12, label %11
11: ; preds = %1
call void @llvm.lifetime.start.p0(i64 1, ptr %3)
br i1 false, label %23, label %22
12: ; preds = %1
%13 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%14 = load i64, ptr %13, align 8, !noundef !3
%15 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%16 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%17 = load i64, ptr %16, align 8, !noundef !3
%18 = add i64 %17, 1
store i64 %18, ptr %15, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %4)
%19 = call noundef align 4 dereferenceable(4) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h788a3d980cffb9a4E"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %14) #13
%20 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 1
%21 = call noundef align 2 dereferenceable(2) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h8adddd6571af427dE"(ptr noalias noundef align 8 dereferenceable(16) %20, i64 noundef %14) #13
br label %54
22: ; preds = %11
store i8 0, ptr %3, align 1
br label %30
23: ; preds = %11
%24 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%25 = load i64, ptr %24, align 8, !noundef !3
%26 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 4
%27 = load i64, ptr %26, align 8, !noundef !3
%28 = icmp ult i64 %25, %27
%29 = zext i1 %28 to i8
store i8 %29, ptr %3, align 1
br label %30
30: ; preds = %23, %22
%31 = load i8, ptr %3, align 1, !range !9, !noundef !3
%32 = trunc i8 %31 to i1
br i1 %32, label %34, label %33
33: ; preds = %30
store ptr null, ptr %5, align 8
br label %46
34: ; preds = %30
%35 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%36 = load i64, ptr %35, align 8, !noundef !3
%37 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%38 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 2
%39 = load i64, ptr %38, align 8, !noundef !3
%40 = add i64 %39, 1
store i64 %40, ptr %37, align 8
%41 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%42 = getelementptr inbounds { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, ptr %0, i32 0, i32 3
%43 = load i64, ptr %42, align 8, !noundef !3
%44 = add i64 %43, 1
store i64 %44, ptr %41, align 8
%45 = call noundef align 4 dereferenceable(4) ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$24__iterator_get_unchecked17h788a3d980cffb9a4E"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %36) #13
store ptr null, ptr %5, align 8
br label %46
46: ; preds = %34, %33
call void @llvm.lifetime.end.p0(i64 1, ptr %3)
br label %47
47: ; preds = %54, %46
%48 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
%49 = load ptr, ptr %48, align 8, !align !8, !noundef !3
%50 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
%51 = load ptr, ptr %50, align 8
%52 = insertvalue { ptr, ptr } poison, ptr %49, 0
%53 = insertvalue { ptr, ptr } %52, ptr %51, 1
ret { ptr, ptr } %53
54: ; preds = %12
store ptr %19, ptr %4, align 8
%55 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
store ptr %21, ptr %55, align 8
%56 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 0
%57 = load ptr, ptr %56, align 8, !nonnull !3, !align !8, !noundef !3
%58 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
%59 = load ptr, ptr %58, align 8, !nonnull !3, !align !6, !noundef !3
%60 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 0
store ptr %57, ptr %60, align 8
%61 = getelementptr inbounds { ptr, ptr }, ptr %5, i32 0, i32 1
store ptr %59, ptr %61, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
br label %47
62: ; No predecessors!
%63 = load ptr, ptr %2, align 8, !noundef !3
%64 = getelementptr inbounds { ptr, i32 }, ptr %2, i32 0, i32 1
%65 = load i32, ptr %64, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %2)
%66 = insertvalue { ptr, i32 } poison, ptr %63, 0
%67 = insertvalue { ptr, i32 } %66, i32 %65, 1
resume { ptr, i32 } %67
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$4next17hd9ae5bcbf53cd881E"(ptr noalias nocapture noundef sret({ ptr, [4 x i64] }) align 8 dereferenceable(40) %0, ptr noalias noundef align 8 dereferenceable(192) %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca { { ptr, ptr }, { ptr, ptr } }, align 8
%5 = alloca { ptr, { { ptr, ptr }, { ptr, ptr } } }, align 8
%6 = alloca { { ptr, ptr }, { ptr, ptr } }, align 8
%7 = alloca { ptr, [3 x i64] }, align 8
%8 = alloca { ptr, [3 x i64] }, align 8
%9 = alloca ptr, align 8
%10 = alloca ptr, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %10)
call void @llvm.lifetime.start.p0(i64 8, ptr %9)
%11 = call noundef align 1 dereferenceable_or_null(1) ptr @"_ZN94_$LT$rav1e..lrf..HorzPaddedIter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h54313dde4be88c03E"(ptr noalias noundef align 8 dereferenceable(32) %1) #13
store ptr %11, ptr %9, align 8
%12 = load ptr, ptr %9, align 8, !noundef !3
%13 = ptrtoint ptr %12 to i64
%14 = icmp eq i64 %13, 0
%15 = select i1 %14, i64 0, i64 1
switch i64 %15, label %16 [
i64 0, label %17
i64 1, label %18
]
16: ; preds = %36, %29, %20, %2
unreachable
17: ; preds = %2
store ptr null, ptr %10, align 8
br label %20
18: ; preds = %2
%19 = load ptr, ptr %9, align 8, !nonnull !3, !align !4, !noundef !3
store ptr %19, ptr %10, align 8
br label %20
20: ; preds = %18, %17
call void @llvm.lifetime.end.p0(i64 8, ptr %9)
%21 = load ptr, ptr %10, align 8, !noundef !3
%22 = ptrtoint ptr %21 to i64
%23 = icmp eq i64 %22, 0
%24 = select i1 %23, i64 1, i64 0
switch i64 %24, label %16 [
i64 0, label %25
i64 1, label %28
]
25: ; preds = %20
%26 = load ptr, ptr %10, align 8, !nonnull !3, !align !4, !noundef !3
call void @llvm.lifetime.end.p0(i64 8, ptr %10)
call void @llvm.lifetime.start.p0(i64 32, ptr %8)
call void @llvm.lifetime.start.p0(i64 32, ptr %7)
%27 = getelementptr inbounds { { { ptr, i64 }, i64, i64 }, { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }, ptr %1, i32 0, i32 1
call void @"_ZN102_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h2749a207a6a0f9baE"(ptr noalias nocapture noundef sret({ ptr, [3 x i64] }) align 8 dereferenceable(32) %7, ptr noalias noundef align 8 dereferenceable(136) %27) #13
br label %29
28: ; preds = %20
store ptr null, ptr %0, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %10)
br label %45
29: ; preds = %25
call void @llvm.lifetime.start.p0(i64 32, ptr %4)
%30 = load ptr, ptr %7, align 8, !noundef !3
%31 = ptrtoint ptr %30 to i64
%32 = icmp eq i64 %31, 0
%33 = select i1 %32, i64 0, i64 1
switch i64 %33, label %16 [
i64 0, label %34
i64 1, label %35
]
34: ; preds = %29
store ptr null, ptr %8, align 8
br label %36
35: ; preds = %29
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %4, ptr align 8 %7, i64 32, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %4, i64 32, i1 false)
br label %36
36: ; preds = %35, %34
call void @llvm.lifetime.end.p0(i64 32, ptr %4)
call void @llvm.lifetime.end.p0(i64 32, ptr %7)
%37 = load ptr, ptr %8, align 8, !noundef !3
%38 = ptrtoint ptr %37 to i64
%39 = icmp eq i64 %38, 0
%40 = select i1 %39, i64 1, i64 0
switch i64 %40, label %16 [
i64 0, label %41
i64 1, label %43
]
41: ; preds = %36
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %6, ptr align 8 %8, i64 32, i1 false)
call void @llvm.lifetime.end.p0(i64 32, ptr %8)
call void @llvm.lifetime.start.p0(i64 40, ptr %5)
store ptr %26, ptr %5, align 8
%42 = getelementptr inbounds { ptr, { { ptr, ptr }, { ptr, ptr } } }, ptr %5, i32 0, i32 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %42, ptr align 8 %6, i64 32, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %5, i64 40, i1 false)
call void @llvm.lifetime.end.p0(i64 40, ptr %5)
br label %44
43: ; preds = %36
store ptr null, ptr %0, align 8
call void @llvm.lifetime.end.p0(i64 32, ptr %8)
br label %45
44: ; preds = %45, %41
ret void
45: ; preds = %43, %28
br label %44
46: ; No predecessors!
%47 = load ptr, ptr %3, align 8, !noundef !3
%48 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%49 = load i32, ptr %48, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%50 = insertvalue { ptr, i32 } poison, ptr %47, 0
%51 = insertvalue { ptr, i32 } %50, i32 %49, 1
resume { ptr, i32 } %51
}
; Function Attrs: nounwind nonlazybind
define hidden void @"_ZN117_$LT$rayon..iter..plumbing..bridge..Callback$LT$C$GT$$u20$as$u20$rayon..iter..plumbing..ProducerCallback$LT$I$GT$$GT$8callback17h050fec951d1d1830E"(ptr noalias nocapture noundef sret({ { {}, {}, ptr, ptr, i64 }, { {}, ptr, i64, i64 } }) align 8 dereferenceable(48) %0, ptr noalias nocapture noundef align 8 dereferenceable(40) %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3) unnamed_addr #1 {
%5 = alloca { { {}, ptr, { ptr, i64 } }, ptr }, align 8
%6 = getelementptr inbounds { { { {}, ptr, { ptr, i64 } }, ptr }, i64 }, ptr %1, i32 0, i32 1
%7 = load i64, ptr %6, align 8, !noundef !3
call void @llvm.lifetime.start.p0(i64 32, ptr %5)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5, ptr align 8 %1, i64 32, i1 false)
call void @_ZN5rayon4iter8plumbing24bridge_producer_consumer17h4e57fbbe5189b9cfE(ptr noalias nocapture noundef sret({ { {}, {}, ptr, ptr, i64 }, { {}, ptr, i64, i64 } }) align 8 dereferenceable(48) %0, i64 noundef %7, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef align 8 dereferenceable(32) %5) #13
call void @llvm.lifetime.end.p0(i64 32, ptr %5)
ret void
}
; Function Attrs: nounwind nonlazybind
define hidden void @"_ZN117_$LT$rayon..iter..plumbing..bridge..Callback$LT$C$GT$$u20$as$u20$rayon..iter..plumbing..ProducerCallback$LT$I$GT$$GT$8callback17h09ac9d186c456155E"(ptr noalias nocapture noundef sret({ { {}, {}, ptr, ptr, i64 }, { {}, ptr, i64, i64 } }) align 8 dereferenceable(48) %0, ptr noalias nocapture noundef align 8 dereferenceable(40) %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3) unnamed_addr #1 {
%5 = alloca { { {}, ptr, { ptr, i64 } }, ptr }, align 8
%6 = getelementptr inbounds { { { {}, ptr, { ptr, i64 } }, ptr }, i64 }, ptr %1, i32 0, i32 1
%7 = load i64, ptr %6, align 8, !noundef !3
call void @llvm.lifetime.start.p0(i64 32, ptr %5)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5, ptr align 8 %1, i64 32, i1 false)
call void @_ZN5rayon4iter8plumbing24bridge_producer_consumer17h838ffa6841d39f23E(ptr noalias nocapture noundef sret({ { {}, {}, ptr, ptr, i64 }, { {}, ptr, i64, i64 } }) align 8 dereferenceable(48) %0, i64 noundef %7, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef align 8 dereferenceable(32) %5) #13
call void @llvm.lifetime.end.p0(i64 32, ptr %5)
ret void
}
; Function Attrs: nounwind nonlazybind
define hidden void @"_ZN117_$LT$rayon..iter..plumbing..bridge..Callback$LT$C$GT$$u20$as$u20$rayon..iter..plumbing..ProducerCallback$LT$I$GT$$GT$8callback17h3ce6cf919550cbb6E"(ptr noalias nocapture noundef sret({ { {}, ptr, i64, i64 }, { {}, {}, ptr, ptr, i64 } }) align 8 dereferenceable(48) %0, ptr noalias nocapture noundef align 8 dereferenceable(40) %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3) unnamed_addr #1 {
%5 = alloca { { {}, ptr, { ptr, i64 } }, ptr }, align 8
%6 = getelementptr inbounds { { { {}, ptr, { ptr, i64 } }, ptr }, i64 }, ptr %1, i32 0, i32 1
%7 = load i64, ptr %6, align 8, !noundef !3
call void @llvm.lifetime.start.p0(i64 32, ptr %5)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5, ptr align 8 %1, i64 32, i1 false)
call void @_ZN5rayon4iter8plumbing24bridge_producer_consumer17h4044388942566515E(ptr noalias nocapture noundef sret({ { {}, ptr, i64, i64 }, { {}, {}, ptr, ptr, i64 } }) align 8 dereferenceable(48) %0, i64 noundef %7, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef align 8 dereferenceable(32) %5) #13
call void @llvm.lifetime.end.p0(i64 32, ptr %5)
ret void
}
; Function Attrs: nounwind nonlazybind
define hidden void @"_ZN117_$LT$rayon..iter..plumbing..bridge..Callback$LT$C$GT$$u20$as$u20$rayon..iter..plumbing..ProducerCallback$LT$I$GT$$GT$8callback17h5ab415a3e8ad153dE"(ptr noalias nocapture noundef sret({ { {}, ptr, i64, i64 }, { {}, {}, ptr, ptr, i64 } }) align 8 dereferenceable(48) %0, ptr noalias nocapture noundef align 8 dereferenceable(40) %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3) unnamed_addr #1 {
%5 = alloca { { {}, ptr, { ptr, i64 } }, ptr }, align 8
%6 = getelementptr inbounds { { { {}, ptr, { ptr, i64 } }, ptr }, i64 }, ptr %1, i32 0, i32 1
%7 = load i64, ptr %6, align 8, !noundef !3
call void @llvm.lifetime.start.p0(i64 32, ptr %5)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5, ptr align 8 %1, i64 32, i1 false)
call void @_ZN5rayon4iter8plumbing24bridge_producer_consumer17h402580c0f6a38b82E(ptr noalias nocapture noundef sret({ { {}, ptr, i64, i64 }, { {}, {}, ptr, ptr, i64 } }) align 8 dereferenceable(48) %0, i64 noundef %7, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef align 8 dereferenceable(32) %5) #13
call void @llvm.lifetime.end.p0(i64 32, ptr %5)
ret void
}
; Function Attrs: nounwind nonlazybind
define hidden void @"_ZN117_$LT$rayon..iter..plumbing..bridge..Callback$LT$C$GT$$u20$as$u20$rayon..iter..plumbing..ProducerCallback$LT$I$GT$$GT$8callback17h5c6002117927b383E"(ptr noalias noundef readonly align 8 dereferenceable(40) %0, i64 noundef %1, ptr noalias nocapture noundef align 8 dereferenceable(24) %2) unnamed_addr #1 {
call void @_ZN5rayon4iter8plumbing24bridge_producer_consumer17h8a95a11895e1c92dE(i64 noundef %1, ptr noalias nocapture noundef align 8 dereferenceable(24) %2, ptr noalias noundef readonly align 8 dereferenceable(40) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define hidden void @"_ZN117_$LT$rayon..iter..plumbing..bridge..Callback$LT$C$GT$$u20$as$u20$rayon..iter..plumbing..ProducerCallback$LT$I$GT$$GT$8callback17h785b60395caad793E"(ptr noalias noundef readonly align 8 dereferenceable(16) %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3) unnamed_addr #1 {
call void @_ZN5rayon4iter8plumbing24bridge_producer_consumer17h0c39437874c829b7E(i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(16) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define hidden void @"_ZN117_$LT$rayon..iter..plumbing..bridge..Callback$LT$C$GT$$u20$as$u20$rayon..iter..plumbing..ProducerCallback$LT$I$GT$$GT$8callback17hb0336230eed7feedE"(ptr noalias noundef readonly align 8 dereferenceable(40) %0, i64 noundef %1, ptr noalias nocapture noundef align 8 dereferenceable(24) %2) unnamed_addr #1 {
call void @_ZN5rayon4iter8plumbing24bridge_producer_consumer17h44f74f100f40ce5fE(i64 noundef %1, ptr noalias nocapture noundef align 8 dereferenceable(24) %2, ptr noalias noundef readonly align 8 dereferenceable(40) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define hidden void @"_ZN117_$LT$rayon..iter..plumbing..bridge..Callback$LT$C$GT$$u20$as$u20$rayon..iter..plumbing..ProducerCallback$LT$I$GT$$GT$8callback17hd4149f741f9a6d35E"(ptr noalias nocapture noundef sret({ { {}, {}, ptr, ptr, i64 }, { {}, {}, ptr, ptr, i64 } }) align 8 dereferenceable(48) %0, ptr noalias nocapture noundef align 8 dereferenceable(24) %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3) unnamed_addr #1 {
%5 = getelementptr inbounds { { ptr, ptr }, i64 }, ptr %1, i32 0, i32 1
%6 = load i64, ptr %5, align 8, !noundef !3
%7 = getelementptr inbounds { ptr, ptr }, ptr %1, i32 0, i32 0
%8 = load ptr, ptr %7, align 8, !nonnull !3, !align !4, !noundef !3
%9 = getelementptr inbounds { ptr, ptr }, ptr %1, i32 0, i32 1
%10 = load ptr, ptr %9, align 8, !nonnull !3, !align !5, !noundef !3
call void @_ZN5rayon4iter8plumbing24bridge_producer_consumer17hcff9df108915e5edE(ptr noalias nocapture noundef sret({ { {}, {}, ptr, ptr, i64 }, { {}, {}, ptr, ptr, i64 } }) align 8 dereferenceable(48) %0, i64 noundef %6, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 1 %8, ptr noalias noundef readonly align 8 dereferenceable(16) %10) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define hidden void @"_ZN117_$LT$rayon..iter..plumbing..bridge..Callback$LT$C$GT$$u20$as$u20$rayon..iter..plumbing..ProducerCallback$LT$I$GT$$GT$8callback17he31c6a5cd10be16bE"(ptr noalias nocapture noundef sret({ { {}, ptr, i64, i64 }, { {}, ptr, i64, i64 } }) align 8 dereferenceable(48) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3) unnamed_addr #1 {
%5 = alloca { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, align 8
%6 = getelementptr inbounds { { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, i64 }, ptr %1, i32 0, i32 1
%7 = load i64, ptr %6, align 8, !noundef !3
call void @llvm.lifetime.start.p0(i64 48, ptr %5)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5, ptr align 8 %1, i64 48, i1 false)
call void @_ZN5rayon4iter8plumbing24bridge_producer_consumer17h86c333f056d3feffE(ptr noalias nocapture noundef sret({ { {}, ptr, i64, i64 }, { {}, ptr, i64, i64 } }) align 8 dereferenceable(48) %0, i64 noundef %7, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef align 8 dereferenceable(48) %5) #13
call void @llvm.lifetime.end.p0(i64 48, ptr %5)
ret void
}
; Function Attrs: nounwind nonlazybind
define hidden void @"_ZN117_$LT$rayon..iter..plumbing..bridge..Callback$LT$C$GT$$u20$as$u20$rayon..iter..plumbing..ProducerCallback$LT$I$GT$$GT$8callback17he3dbca180b184a95E"(ptr noalias nocapture noundef sret({ { {}, ptr, i64, i64 }, { {}, ptr, i64, i64 } }) align 8 dereferenceable(48) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3) unnamed_addr #1 {
%5 = alloca { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, align 8
%6 = getelementptr inbounds { { { ptr, { ptr, i64 }, { ptr, i64 } }, ptr }, i64 }, ptr %1, i32 0, i32 1
%7 = load i64, ptr %6, align 8, !noundef !3
call void @llvm.lifetime.start.p0(i64 48, ptr %5)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5, ptr align 8 %1, i64 48, i1 false)
call void @_ZN5rayon4iter8plumbing24bridge_producer_consumer17ha4a6621ca4b95f35E(ptr noalias nocapture noundef sret({ { {}, ptr, i64, i64 }, { {}, ptr, i64, i64 } }) align 8 dereferenceable(48) %0, i64 noundef %7, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias nocapture noundef align 8 dereferenceable(48) %5) #13
call void @llvm.lifetime.end.p0(i64 48, ptr %5)
ret void
}
; Function Attrs: nounwind nonlazybind
define hidden void @"_ZN117_$LT$rayon..iter..plumbing..bridge..Callback$LT$C$GT$$u20$as$u20$rayon..iter..plumbing..ProducerCallback$LT$I$GT$$GT$8callback17hea577cc1324b9b1aE"(ptr noalias noundef readonly align 8 dereferenceable(16) %0, i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3) unnamed_addr #1 {
call void @_ZN5rayon4iter8plumbing24bridge_producer_consumer17hfaf231fe38021218E(i64 noundef %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(16) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define hidden void @"_ZN117_$LT$rayon..iter..plumbing..bridge..Callback$LT$C$GT$$u20$as$u20$rayon..iter..plumbing..ProducerCallback$LT$I$GT$$GT$8callback17hfe1e67f50f3b55e6E"(ptr noalias nocapture noundef sret({ { {}, {}, ptr, ptr, i64 }, { {}, {}, ptr, ptr, i64 } }) align 8 dereferenceable(48) %0, ptr noalias nocapture noundef align 8 dereferenceable(24) %1, ptr noalias noundef nonnull align 8 %2, i64 noundef %3) unnamed_addr #1 {
%5 = getelementptr inbounds { { ptr, ptr }, i64 }, ptr %1, i32 0, i32 1
%6 = load i64, ptr %5, align 8, !noundef !3
%7 = getelementptr inbounds { ptr, ptr }, ptr %1, i32 0, i32 0
%8 = load ptr, ptr %7, align 8, !nonnull !3, !align !4, !noundef !3
%9 = getelementptr inbounds { ptr, ptr }, ptr %1, i32 0, i32 1
%10 = load ptr, ptr %9, align 8, !nonnull !3, !align !5, !noundef !3
call void @_ZN5rayon4iter8plumbing24bridge_producer_consumer17h7344c2cc2a4e8ca1E(ptr noalias nocapture noundef sret({ { {}, {}, ptr, ptr, i64 }, { {}, {}, ptr, ptr, i64 } }) align 8 dereferenceable(48) %0, i64 noundef %6, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull readonly align 1 %8, ptr noalias noundef readonly align 8 dereferenceable(16) %10) #13
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { i64, i64 } @"_ZN146_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..iter..adapters..step_by..SpecRangeSetup$LT$core..ops..range..Range$LT$usize$GT$$GT$$GT$5setup17h1cbeab346b663e68E"(i64 noundef %0, i64 noundef %1, i64 noundef %2) unnamed_addr #0 {
%4 = alloca { i64, { i64, i64 } }, align 8
%5 = alloca { i64, i64 }, align 8
%6 = getelementptr inbounds { i64, i64 }, ptr %5, i32 0, i32 0
store i64 %0, ptr %6, align 8
%7 = getelementptr inbounds { i64, i64 }, ptr %5, i32 0, i32 1
store i64 %1, ptr %7, align 8
call void @llvm.lifetime.start.p0(i64 24, ptr %4)
call void @"_ZN4core4iter5range101_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..Range$LT$A$GT$$GT$9size_hint17h927ddd1aafe48816E"(ptr noalias nocapture noundef sret({ i64, { i64, i64 } }) align 8 dereferenceable(24) %4, ptr noalias noundef readonly align 8 dereferenceable(16) %5) #13
%8 = load i64, ptr %4, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 24, ptr %4)
%9 = call noundef i64 @"_ZN4core3num23_$LT$impl$u20$usize$GT$8div_ceil17hf25c534123c539daE"(i64 noundef %8, i64 noundef %2) #13
%10 = getelementptr inbounds { i64, i64 }, ptr %5, i32 0, i32 1
store i64 %9, ptr %10, align 8
%11 = getelementptr inbounds { i64, i64 }, ptr %5, i32 0, i32 0
%12 = load i64, ptr %11, align 8, !noundef !3
%13 = getelementptr inbounds { i64, i64 }, ptr %5, i32 0, i32 1
%14 = load i64, ptr %13, align 8, !noundef !3
%15 = insertvalue { i64, i64 } poison, i64 %12, 0
%16 = insertvalue { i64, i64 } %15, i64 %14, 1
ret { i64, i64 } %16
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i8 } @"_ZN3std4sync5mutex19MutexGuard$LT$T$GT$3new28_$u7b$$u7b$closure$u7d$$u7d$17h137ad72b2ef14d2eE"(ptr noundef nonnull align 4 %0, i1 noundef zeroext %1) unnamed_addr #0 {
%3 = alloca { ptr, i8 }, align 8
%4 = alloca ptr, align 8
store ptr %0, ptr %4, align 8
%5 = load ptr, ptr %4, align 8, !nonnull !3, !align !8, !noundef !3
store ptr %5, ptr %3, align 8
%6 = getelementptr inbounds { ptr, i8 }, ptr %3, i32 0, i32 1
%7 = zext i1 %1 to i8
store i8 %7, ptr %6, align 8
%8 = getelementptr inbounds { ptr, i8 }, ptr %3, i32 0, i32 0
%9 = load ptr, ptr %8, align 8, !nonnull !3, !align !8, !noundef !3
%10 = getelementptr inbounds { ptr, i8 }, ptr %3, i32 0, i32 1
%11 = load i8, ptr %10, align 8, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
%13 = zext i1 %12 to i8
%14 = insertvalue { ptr, i8 } poison, ptr %9, 0
%15 = insertvalue { ptr, i8 } %14, i8 %13, 1
ret { ptr, i8 } %15
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i8 } @"_ZN3std4sync5mutex19MutexGuard$LT$T$GT$3new28_$u7b$$u7b$closure$u7d$$u7d$17h1a06d42030397c2aE"(ptr noundef nonnull align 8 %0, i1 noundef zeroext %1) unnamed_addr #0 {
%3 = alloca { ptr, i8 }, align 8
%4 = alloca ptr, align 8
store ptr %0, ptr %4, align 8
%5 = load ptr, ptr %4, align 8, !nonnull !3, !align !5, !noundef !3
store ptr %5, ptr %3, align 8
%6 = getelementptr inbounds { ptr, i8 }, ptr %3, i32 0, i32 1
%7 = zext i1 %1 to i8
store i8 %7, ptr %6, align 8
%8 = getelementptr inbounds { ptr, i8 }, ptr %3, i32 0, i32 0
%9 = load ptr, ptr %8, align 8, !nonnull !3, !align !5, !noundef !3
%10 = getelementptr inbounds { ptr, i8 }, ptr %3, i32 0, i32 1
%11 = load i8, ptr %10, align 8, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
%13 = zext i1 %12 to i8
%14 = insertvalue { ptr, i8 } poison, ptr %9, 0
%15 = insertvalue { ptr, i8 } %14, i8 %13, 1
ret { ptr, i8 } %15
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i8 } @"_ZN3std4sync5mutex19MutexGuard$LT$T$GT$3new28_$u7b$$u7b$closure$u7d$$u7d$17h67d4cc556e508076E"(ptr noundef nonnull align 8 %0, i1 noundef zeroext %1) unnamed_addr #0 {
%3 = alloca { ptr, i8 }, align 8
%4 = alloca ptr, align 8
store ptr %0, ptr %4, align 8
%5 = load ptr, ptr %4, align 8, !nonnull !3, !align !5, !noundef !3
store ptr %5, ptr %3, align 8
%6 = getelementptr inbounds { ptr, i8 }, ptr %3, i32 0, i32 1
%7 = zext i1 %1 to i8
store i8 %7, ptr %6, align 8
%8 = getelementptr inbounds { ptr, i8 }, ptr %3, i32 0, i32 0
%9 = load ptr, ptr %8, align 8, !nonnull !3, !align !5, !noundef !3
%10 = getelementptr inbounds { ptr, i8 }, ptr %3, i32 0, i32 1
%11 = load i8, ptr %10, align 8, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
%13 = zext i1 %12 to i8
%14 = insertvalue { ptr, i8 } poison, ptr %9, 0
%15 = insertvalue { ptr, i8 } %14, i8 %13, 1
ret { ptr, i8 } %15
}
; Function Attrs: nounwind nonlazybind
define hidden void @_ZN3std4sync6poison10map_result17h04a8b088d3f149b0E(ptr noalias nocapture noundef sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %0, i1 noundef zeroext %1, ptr noundef nonnull align 8 %2) unnamed_addr #1 {
%4 = alloca { ptr, ptr }, align 8
%5 = alloca i8, align 1
%6 = zext i1 %1 to i8
store i8 %6, ptr %5, align 1
%7 = load i8, ptr %5, align 1, !range !9, !noundef !3
%8 = trunc i8 %7 to i1
%9 = zext i1 %8 to i64
switch i64 %9, label %10 [
i64 0, label %11
i64 1, label %18
]
10: ; preds = %3
unreachable
11: ; preds = %3
%12 = call { ptr, ptr } @"_ZN3std4sync6rwlock24RwLockReadGuard$LT$T$GT$3new28_$u7b$$u7b$closure$u7d$$u7d$17h300c5eb6ead41919E"(ptr noundef nonnull align 8 %2) #13
%13 = extractvalue { ptr, ptr } %12, 0
%14 = extractvalue { ptr, ptr } %12, 1
%15 = getelementptr inbounds { [1 x i64], { ptr, ptr } }, ptr %0, i32 0, i32 1
%16 = getelementptr inbounds { ptr, ptr }, ptr %15, i32 0, i32 0
store ptr %13, ptr %16, align 8
%17 = getelementptr inbounds { ptr, ptr }, ptr %15, i32 0, i32 1
store ptr %14, ptr %17, align 8
store i64 0, ptr %0, align 8
br label %31
18: ; preds = %3
call void @llvm.lifetime.start.p0(i64 16, ptr %4)
%19 = call { ptr, ptr } @"_ZN3std4sync6rwlock24RwLockReadGuard$LT$T$GT$3new28_$u7b$$u7b$closure$u7d$$u7d$17h300c5eb6ead41919E"(ptr noundef nonnull align 8 %2) #13
%20 = extractvalue { ptr, ptr } %19, 0
%21 = extractvalue { ptr, ptr } %19, 1
%22 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 0
store ptr %20, ptr %22, align 8
%23 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
store ptr %21, ptr %23, align 8
%24 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 0
%25 = load ptr, ptr %24, align 8, !nonnull !3, !noundef !3
%26 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 1
%27 = load ptr, ptr %26, align 8, !nonnull !3, !align !8, !noundef !3
%28 = getelementptr inbounds { [1 x i64], { ptr, ptr } }, ptr %0, i32 0, i32 1
%29 = getelementptr inbounds { ptr, ptr }, ptr %28, i32 0, i32 0
store ptr %25, ptr %29, align 8
%30 = getelementptr inbounds { ptr, ptr }, ptr %28, i32 0, i32 1
store ptr %27, ptr %30, align 8
store i64 1, ptr %0, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
br label %31
31: ; preds = %18, %11
ret void
}
; Function Attrs: nounwind nonlazybind
define hidden void @_ZN3std4sync6poison10map_result17h0877f2343546bd77E(ptr noalias nocapture noundef sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %0, i1 noundef zeroext %1, i8 noundef %2, ptr noundef nonnull align 8 %3) unnamed_addr #1 {
%5 = alloca i8, align 1
%6 = alloca { ptr, i8 }, align 8
%7 = alloca i8, align 1
%8 = alloca { i8, i8 }, align 1
%9 = getelementptr inbounds { i8, i8 }, ptr %8, i32 0, i32 0
%10 = zext i1 %1 to i8
store i8 %10, ptr %9, align 1
%11 = getelementptr inbounds { i8, i8 }, ptr %8, i32 0, i32 1
store i8 %2, ptr %11, align 1
%12 = load i8, ptr %8, align 1, !range !9, !noundef !3
%13 = trunc i8 %12 to i1
%14 = zext i1 %13 to i64
switch i64 %14, label %15 [
i64 0, label %16
i64 1, label %31
]
15: ; preds = %4
unreachable
16: ; preds = %4
%17 = getelementptr inbounds { i8, i8 }, ptr %8, i32 0, i32 1
%18 = load i8, ptr %17, align 1, !range !9, !noundef !3
%19 = trunc i8 %18 to i1
call void @llvm.lifetime.start.p0(i64 1, ptr %7)
%20 = zext i1 %19 to i8
store i8 %20, ptr %7, align 1
%21 = load i8, ptr %7, align 1, !range !9, !noundef !3
%22 = trunc i8 %21 to i1
%23 = call { ptr, i8 } @"_ZN3std4sync5mutex19MutexGuard$LT$T$GT$3new28_$u7b$$u7b$closure$u7d$$u7d$17h67d4cc556e508076E"(ptr noundef nonnull align 8 %3, i1 noundef zeroext %22) #13
%24 = extractvalue { ptr, i8 } %23, 0
%25 = extractvalue { ptr, i8 } %23, 1
%26 = trunc i8 %25 to i1
call void @llvm.lifetime.end.p0(i64 1, ptr %7)
%27 = getelementptr inbounds { [1 x i64], { ptr, i8 } }, ptr %0, i32 0, i32 1
%28 = getelementptr inbounds { ptr, i8 }, ptr %27, i32 0, i32 0
store ptr %24, ptr %28, align 8
%29 = getelementptr inbounds { ptr, i8 }, ptr %27, i32 0, i32 1
%30 = zext i1 %26 to i8
store i8 %30, ptr %29, align 8
store i64 0, ptr %0, align 8
br label %54
31: ; preds = %4
%32 = getelementptr inbounds { i8, i8 }, ptr %8, i32 0, i32 1
%33 = load i8, ptr %32, align 1, !range !9, !noundef !3
%34 = trunc i8 %33 to i1
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
call void @llvm.lifetime.start.p0(i64 1, ptr %5)
%35 = zext i1 %34 to i8
store i8 %35, ptr %5, align 1
%36 = load i8, ptr %5, align 1, !range !9, !noundef !3
%37 = trunc i8 %36 to i1
%38 = call { ptr, i8 } @"_ZN3std4sync5mutex19MutexGuard$LT$T$GT$3new28_$u7b$$u7b$closure$u7d$$u7d$17h67d4cc556e508076E"(ptr noundef nonnull align 8 %3, i1 noundef zeroext %37) #13
%39 = extractvalue { ptr, i8 } %38, 0
%40 = extractvalue { ptr, i8 } %38, 1
%41 = trunc i8 %40 to i1
call void @llvm.lifetime.end.p0(i64 1, ptr %5)
%42 = getelementptr inbounds { ptr, i8 }, ptr %6, i32 0, i32 0
store ptr %39, ptr %42, align 8
%43 = getelementptr inbounds { ptr, i8 }, ptr %6, i32 0, i32 1
%44 = zext i1 %41 to i8
store i8 %44, ptr %43, align 8
%45 = getelementptr inbounds { ptr, i8 }, ptr %6, i32 0, i32 0
%46 = load ptr, ptr %45, align 8, !nonnull !3, !align !5, !noundef !3
%47 = getelementptr inbounds { ptr, i8 }, ptr %6, i32 0, i32 1
%48 = load i8, ptr %47, align 8, !range !9, !noundef !3
%49 = trunc i8 %48 to i1
%50 = getelementptr inbounds { [1 x i64], { ptr, i8 } }, ptr %0, i32 0, i32 1
%51 = getelementptr inbounds { ptr, i8 }, ptr %50, i32 0, i32 0
store ptr %46, ptr %51, align 8
%52 = getelementptr inbounds { ptr, i8 }, ptr %50, i32 0, i32 1
%53 = zext i1 %49 to i8
store i8 %53, ptr %52, align 8
store i64 1, ptr %0, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
br label %54
54: ; preds = %31, %16
ret void
}
; Function Attrs: nounwind nonlazybind
define hidden void @_ZN3std4sync6poison10map_result17h82e564e72a2ff0cdE(ptr noalias nocapture noundef sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %0, i1 noundef zeroext %1, i8 noundef %2, ptr noundef nonnull align 4 %3) unnamed_addr #1 {
%5 = alloca i8, align 1
%6 = alloca { ptr, i8 }, align 8
%7 = alloca i8, align 1
%8 = alloca { i8, i8 }, align 1
%9 = getelementptr inbounds { i8, i8 }, ptr %8, i32 0, i32 0
%10 = zext i1 %1 to i8
store i8 %10, ptr %9, align 1
%11 = getelementptr inbounds { i8, i8 }, ptr %8, i32 0, i32 1
store i8 %2, ptr %11, align 1
%12 = load i8, ptr %8, align 1, !range !9, !noundef !3
%13 = trunc i8 %12 to i1
%14 = zext i1 %13 to i64
switch i64 %14, label %15 [
i64 0, label %16
i64 1, label %31
]
15: ; preds = %4
unreachable
16: ; preds = %4
%17 = getelementptr inbounds { i8, i8 }, ptr %8, i32 0, i32 1
%18 = load i8, ptr %17, align 1, !range !9, !noundef !3
%19 = trunc i8 %18 to i1
call void @llvm.lifetime.start.p0(i64 1, ptr %7)
%20 = zext i1 %19 to i8
store i8 %20, ptr %7, align 1
%21 = load i8, ptr %7, align 1, !range !9, !noundef !3
%22 = trunc i8 %21 to i1
%23 = call { ptr, i8 } @"_ZN3std4sync5mutex19MutexGuard$LT$T$GT$3new28_$u7b$$u7b$closure$u7d$$u7d$17h137ad72b2ef14d2eE"(ptr noundef nonnull align 4 %3, i1 noundef zeroext %22) #13
%24 = extractvalue { ptr, i8 } %23, 0
%25 = extractvalue { ptr, i8 } %23, 1
%26 = trunc i8 %25 to i1
call void @llvm.lifetime.end.p0(i64 1, ptr %7)
%27 = getelementptr inbounds { [1 x i64], { ptr, i8 } }, ptr %0, i32 0, i32 1
%28 = getelementptr inbounds { ptr, i8 }, ptr %27, i32 0, i32 0
store ptr %24, ptr %28, align 8
%29 = getelementptr inbounds { ptr, i8 }, ptr %27, i32 0, i32 1
%30 = zext i1 %26 to i8
store i8 %30, ptr %29, align 8
store i64 0, ptr %0, align 8
br label %54
31: ; preds = %4
%32 = getelementptr inbounds { i8, i8 }, ptr %8, i32 0, i32 1
%33 = load i8, ptr %32, align 1, !range !9, !noundef !3
%34 = trunc i8 %33 to i1
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
call void @llvm.lifetime.start.p0(i64 1, ptr %5)
%35 = zext i1 %34 to i8
store i8 %35, ptr %5, align 1
%36 = load i8, ptr %5, align 1, !range !9, !noundef !3
%37 = trunc i8 %36 to i1
%38 = call { ptr, i8 } @"_ZN3std4sync5mutex19MutexGuard$LT$T$GT$3new28_$u7b$$u7b$closure$u7d$$u7d$17h137ad72b2ef14d2eE"(ptr noundef nonnull align 4 %3, i1 noundef zeroext %37) #13
%39 = extractvalue { ptr, i8 } %38, 0
%40 = extractvalue { ptr, i8 } %38, 1
%41 = trunc i8 %40 to i1
call void @llvm.lifetime.end.p0(i64 1, ptr %5)
%42 = getelementptr inbounds { ptr, i8 }, ptr %6, i32 0, i32 0
store ptr %39, ptr %42, align 8
%43 = getelementptr inbounds { ptr, i8 }, ptr %6, i32 0, i32 1
%44 = zext i1 %41 to i8
store i8 %44, ptr %43, align 8
%45 = getelementptr inbounds { ptr, i8 }, ptr %6, i32 0, i32 0
%46 = load ptr, ptr %45, align 8, !nonnull !3, !align !8, !noundef !3
%47 = getelementptr inbounds { ptr, i8 }, ptr %6, i32 0, i32 1
%48 = load i8, ptr %47, align 8, !range !9, !noundef !3
%49 = trunc i8 %48 to i1
%50 = getelementptr inbounds { [1 x i64], { ptr, i8 } }, ptr %0, i32 0, i32 1
%51 = getelementptr inbounds { ptr, i8 }, ptr %50, i32 0, i32 0
store ptr %46, ptr %51, align 8
%52 = getelementptr inbounds { ptr, i8 }, ptr %50, i32 0, i32 1
%53 = zext i1 %49 to i8
store i8 %53, ptr %52, align 8
store i64 1, ptr %0, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
br label %54
54: ; preds = %31, %16
ret void
}
; Function Attrs: nounwind nonlazybind
define hidden void @_ZN3std4sync6poison10map_result17h97e5a938a1a1f390E(ptr noalias nocapture noundef sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %0, i1 noundef zeroext %1, i8 noundef %2, ptr noundef nonnull align 8 %3) unnamed_addr #1 {
%5 = alloca i8, align 1
%6 = alloca { ptr, i8 }, align 8
%7 = alloca i8, align 1
%8 = alloca { i8, i8 }, align 1
%9 = getelementptr inbounds { i8, i8 }, ptr %8, i32 0, i32 0
%10 = zext i1 %1 to i8
store i8 %10, ptr %9, align 1
%11 = getelementptr inbounds { i8, i8 }, ptr %8, i32 0, i32 1
store i8 %2, ptr %11, align 1
%12 = load i8, ptr %8, align 1, !range !9, !noundef !3
%13 = trunc i8 %12 to i1
%14 = zext i1 %13 to i64
switch i64 %14, label %15 [
i64 0, label %16
i64 1, label %31
]
15: ; preds = %4
unreachable
16: ; preds = %4
%17 = getelementptr inbounds { i8, i8 }, ptr %8, i32 0, i32 1
%18 = load i8, ptr %17, align 1, !range !9, !noundef !3
%19 = trunc i8 %18 to i1
call void @llvm.lifetime.start.p0(i64 1, ptr %7)
%20 = zext i1 %19 to i8
store i8 %20, ptr %7, align 1
%21 = load i8, ptr %7, align 1, !range !9, !noundef !3
%22 = trunc i8 %21 to i1
%23 = call { ptr, i8 } @"_ZN3std4sync5mutex19MutexGuard$LT$T$GT$3new28_$u7b$$u7b$closure$u7d$$u7d$17h1a06d42030397c2aE"(ptr noundef nonnull align 8 %3, i1 noundef zeroext %22) #13
%24 = extractvalue { ptr, i8 } %23, 0
%25 = extractvalue { ptr, i8 } %23, 1
%26 = trunc i8 %25 to i1
call void @llvm.lifetime.end.p0(i64 1, ptr %7)
%27 = getelementptr inbounds { [1 x i64], { ptr, i8 } }, ptr %0, i32 0, i32 1
%28 = getelementptr inbounds { ptr, i8 }, ptr %27, i32 0, i32 0
store ptr %24, ptr %28, align 8
%29 = getelementptr inbounds { ptr, i8 }, ptr %27, i32 0, i32 1
%30 = zext i1 %26 to i8
store i8 %30, ptr %29, align 8
store i64 0, ptr %0, align 8
br label %54
31: ; preds = %4
%32 = getelementptr inbounds { i8, i8 }, ptr %8, i32 0, i32 1
%33 = load i8, ptr %32, align 1, !range !9, !noundef !3
%34 = trunc i8 %33 to i1
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
call void @llvm.lifetime.start.p0(i64 1, ptr %5)
%35 = zext i1 %34 to i8
store i8 %35, ptr %5, align 1
%36 = load i8, ptr %5, align 1, !range !9, !noundef !3
%37 = trunc i8 %36 to i1
%38 = call { ptr, i8 } @"_ZN3std4sync5mutex19MutexGuard$LT$T$GT$3new28_$u7b$$u7b$closure$u7d$$u7d$17h1a06d42030397c2aE"(ptr noundef nonnull align 8 %3, i1 noundef zeroext %37) #13
%39 = extractvalue { ptr, i8 } %38, 0
%40 = extractvalue { ptr, i8 } %38, 1
%41 = trunc i8 %40 to i1
call void @llvm.lifetime.end.p0(i64 1, ptr %5)
%42 = getelementptr inbounds { ptr, i8 }, ptr %6, i32 0, i32 0
store ptr %39, ptr %42, align 8
%43 = getelementptr inbounds { ptr, i8 }, ptr %6, i32 0, i32 1
%44 = zext i1 %41 to i8
store i8 %44, ptr %43, align 8
%45 = getelementptr inbounds { ptr, i8 }, ptr %6, i32 0, i32 0
%46 = load ptr, ptr %45, align 8, !nonnull !3, !align !5, !noundef !3
%47 = getelementptr inbounds { ptr, i8 }, ptr %6, i32 0, i32 1
%48 = load i8, ptr %47, align 8, !range !9, !noundef !3
%49 = trunc i8 %48 to i1
%50 = getelementptr inbounds { [1 x i64], { ptr, i8 } }, ptr %0, i32 0, i32 1
%51 = getelementptr inbounds { ptr, i8 }, ptr %50, i32 0, i32 0
store ptr %46, ptr %51, align 8
%52 = getelementptr inbounds { ptr, i8 }, ptr %50, i32 0, i32 1
%53 = zext i1 %49 to i8
store i8 %53, ptr %52, align 8
store i64 1, ptr %0, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
br label %54
54: ; preds = %31, %16
ret void
}
; Function Attrs: nounwind nonlazybind
define hidden void @_ZN3std4sync6poison10map_result17he7cefcf9bebfd2f6E(ptr noalias nocapture noundef sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %0, i1 noundef zeroext %1, i8 noundef %2, ptr noundef nonnull align 8 %3) unnamed_addr #1 {
%5 = alloca i8, align 1
%6 = alloca { ptr, i8 }, align 8
%7 = alloca i8, align 1
%8 = alloca { i8, i8 }, align 1
%9 = getelementptr inbounds { i8, i8 }, ptr %8, i32 0, i32 0
%10 = zext i1 %1 to i8
store i8 %10, ptr %9, align 1
%11 = getelementptr inbounds { i8, i8 }, ptr %8, i32 0, i32 1
store i8 %2, ptr %11, align 1
%12 = load i8, ptr %8, align 1, !range !9, !noundef !3
%13 = trunc i8 %12 to i1
%14 = zext i1 %13 to i64
switch i64 %14, label %15 [
i64 0, label %16
i64 1, label %31
]
15: ; preds = %4
unreachable
16: ; preds = %4
%17 = getelementptr inbounds { i8, i8 }, ptr %8, i32 0, i32 1
%18 = load i8, ptr %17, align 1, !range !9, !noundef !3
%19 = trunc i8 %18 to i1
call void @llvm.lifetime.start.p0(i64 1, ptr %7)
%20 = zext i1 %19 to i8
store i8 %20, ptr %7, align 1
%21 = load i8, ptr %7, align 1, !range !9, !noundef !3
%22 = trunc i8 %21 to i1
%23 = call { ptr, i8 } @"_ZN3std4sync6rwlock25RwLockWriteGuard$LT$T$GT$3new28_$u7b$$u7b$closure$u7d$$u7d$17h4cc038feafbe3bb8E"(ptr noundef nonnull align 8 %3, i1 noundef zeroext %22) #13
%24 = extractvalue { ptr, i8 } %23, 0
%25 = extractvalue { ptr, i8 } %23, 1
%26 = trunc i8 %25 to i1
call void @llvm.lifetime.end.p0(i64 1, ptr %7)
%27 = getelementptr inbounds { [1 x i64], { ptr, i8 } }, ptr %0, i32 0, i32 1
%28 = getelementptr inbounds { ptr, i8 }, ptr %27, i32 0, i32 0
store ptr %24, ptr %28, align 8
%29 = getelementptr inbounds { ptr, i8 }, ptr %27, i32 0, i32 1
%30 = zext i1 %26 to i8
store i8 %30, ptr %29, align 8
store i64 0, ptr %0, align 8
br label %54
31: ; preds = %4
%32 = getelementptr inbounds { i8, i8 }, ptr %8, i32 0, i32 1
%33 = load i8, ptr %32, align 1, !range !9, !noundef !3
%34 = trunc i8 %33 to i1
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
call void @llvm.lifetime.start.p0(i64 1, ptr %5)
%35 = zext i1 %34 to i8
store i8 %35, ptr %5, align 1
%36 = load i8, ptr %5, align 1, !range !9, !noundef !3
%37 = trunc i8 %36 to i1
%38 = call { ptr, i8 } @"_ZN3std4sync6rwlock25RwLockWriteGuard$LT$T$GT$3new28_$u7b$$u7b$closure$u7d$$u7d$17h4cc038feafbe3bb8E"(ptr noundef nonnull align 8 %3, i1 noundef zeroext %37) #13
%39 = extractvalue { ptr, i8 } %38, 0
%40 = extractvalue { ptr, i8 } %38, 1
%41 = trunc i8 %40 to i1
call void @llvm.lifetime.end.p0(i64 1, ptr %5)
%42 = getelementptr inbounds { ptr, i8 }, ptr %6, i32 0, i32 0
store ptr %39, ptr %42, align 8
%43 = getelementptr inbounds { ptr, i8 }, ptr %6, i32 0, i32 1
%44 = zext i1 %41 to i8
store i8 %44, ptr %43, align 8
%45 = getelementptr inbounds { ptr, i8 }, ptr %6, i32 0, i32 0
%46 = load ptr, ptr %45, align 8, !nonnull !3, !align !5, !noundef !3
%47 = getelementptr inbounds { ptr, i8 }, ptr %6, i32 0, i32 1
%48 = load i8, ptr %47, align 8, !range !9, !noundef !3
%49 = trunc i8 %48 to i1
%50 = getelementptr inbounds { [1 x i64], { ptr, i8 } }, ptr %0, i32 0, i32 1
%51 = getelementptr inbounds { ptr, i8 }, ptr %50, i32 0, i32 0
store ptr %46, ptr %51, align 8
%52 = getelementptr inbounds { ptr, i8 }, ptr %50, i32 0, i32 1
%53 = zext i1 %49 to i8
store i8 %53, ptr %52, align 8
store i64 1, ptr %0, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
br label %54
54: ; preds = %31, %16
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @"_ZN3std4sync6rwlock24RwLockReadGuard$LT$T$GT$3new28_$u7b$$u7b$closure$u7d$$u7d$17h300c5eb6ead41919E"(ptr noundef nonnull align 8 %0) unnamed_addr #0 {
%2 = alloca ptr, align 8
%3 = alloca { ptr, ptr }, align 8
%4 = alloca ptr, align 8
store ptr %0, ptr %4, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %2)
%5 = load ptr, ptr %4, align 8, !nonnull !3, !align !5, !noundef !3
%6 = getelementptr inbounds { { { i32 }, { i32 } }, { { i8 } }, [7 x i8], { [8 x { { ptr, i64 }, i64, i64 }] } }, ptr %5, i32 0, i32 3
store ptr %6, ptr %2, align 8
%7 = load ptr, ptr %4, align 8, !nonnull !3, !align !5, !noundef !3
%8 = load ptr, ptr %2, align 8, !nonnull !3, !noundef !3
store ptr %8, ptr %3, align 8
%9 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
store ptr %7, ptr %9, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %2)
%10 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 0
%11 = load ptr, ptr %10, align 8, !nonnull !3, !noundef !3
%12 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
%13 = load ptr, ptr %12, align 8, !nonnull !3, !align !8, !noundef !3
%14 = insertvalue { ptr, ptr } poison, ptr %11, 0
%15 = insertvalue { ptr, ptr } %14, ptr %13, 1
ret { ptr, ptr } %15
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, i8 } @"_ZN3std4sync6rwlock25RwLockWriteGuard$LT$T$GT$3new28_$u7b$$u7b$closure$u7d$$u7d$17h4cc038feafbe3bb8E"(ptr noundef nonnull align 8 %0, i1 noundef zeroext %1) unnamed_addr #0 {
%3 = alloca { ptr, i8 }, align 8
%4 = alloca ptr, align 8
store ptr %0, ptr %4, align 8
%5 = load ptr, ptr %4, align 8, !nonnull !3, !align !5, !noundef !3
store ptr %5, ptr %3, align 8
%6 = getelementptr inbounds { ptr, i8 }, ptr %3, i32 0, i32 1
%7 = zext i1 %1 to i8
store i8 %7, ptr %6, align 8
%8 = getelementptr inbounds { ptr, i8 }, ptr %3, i32 0, i32 0
%9 = load ptr, ptr %8, align 8, !nonnull !3, !align !5, !noundef !3
%10 = getelementptr inbounds { ptr, i8 }, ptr %3, i32 0, i32 1
%11 = load i8, ptr %10, align 8, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
%13 = zext i1 %12 to i8
%14 = insertvalue { ptr, i8 } poison, ptr %9, 0
%15 = insertvalue { ptr, i8 } %14, i8 %13, 1
ret { ptr, i8 } %15
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN49_$LT$T$u20$as$u20$core..array..SpecArrayClone$GT$5clone17h16dc8991ddc4cb5cE"(ptr noalias nocapture noundef sret([3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }]) align 8 dereferenceable(288) %0, ptr noalias noundef readonly align 8 dereferenceable(288) %1) unnamed_addr #0 {
%3 = alloca { ptr, ptr }, align 8
%4 = alloca { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }, align 8
%5 = alloca ptr, align 8
%6 = alloca ptr, align 8
%7 = alloca { ptr, ptr }, align 8
%8 = alloca { ptr, ptr }, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %8)
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 8, ptr %6)
br i1 false, label %11, label %9
9: ; preds = %2
%10 = getelementptr inbounds { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }, ptr %1, i64 3
store ptr %10, ptr %6, align 8
br label %12
11: ; preds = %2
store ptr inttoptr (i64 3 to ptr), ptr %6, align 8
br label %12
12: ; preds = %11, %9
call void @llvm.lifetime.start.p0(i64 8, ptr %5)
store ptr %1, ptr %5, align 8
%13 = load ptr, ptr %6, align 8, !noundef !3
%14 = load ptr, ptr %5, align 8, !nonnull !3, !noundef !3
store ptr %14, ptr %7, align 8
%15 = getelementptr inbounds { ptr, ptr }, ptr %7, i32 0, i32 1
store ptr %13, ptr %15, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %5)
call void @llvm.lifetime.end.p0(i64 8, ptr %6)
%16 = getelementptr inbounds { ptr, ptr }, ptr %7, i32 0, i32 0
%17 = load ptr, ptr %16, align 8, !nonnull !3, !noundef !3
%18 = getelementptr inbounds { ptr, ptr }, ptr %7, i32 0, i32 1
%19 = load ptr, ptr %18, align 8, !noundef !3
%20 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 0
store ptr %17, ptr %20, align 8
%21 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 1
store ptr %19, ptr %21, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 288, ptr %4)
call void @llvm.lifetime.start.p0(i64 16, ptr %3)
%22 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 0
%23 = load ptr, ptr %22, align 8, !nonnull !3, !noundef !3
%24 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 1
%25 = load ptr, ptr %24, align 8, !noundef !3
%26 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 0
store ptr %23, ptr %26, align 8
%27 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
store ptr %25, ptr %27, align 8
%28 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 0
%29 = load ptr, ptr %28, align 8, !nonnull !3, !noundef !3
%30 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
%31 = load ptr, ptr %30, align 8, !noundef !3
call void @_ZN4core5array25try_from_trusted_iterator17h96b883d9c2b6c62cE(ptr noalias nocapture noundef sret({ [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }) align 8 dereferenceable(288) %4, ptr noundef nonnull %29, ptr noundef %31) #13
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %4, i64 288, i1 false)
call void @llvm.lifetime.end.p0(i64 288, ptr %4)
call void @llvm.lifetime.end.p0(i64 16, ptr %8)
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN49_$LT$T$u20$as$u20$core..array..SpecArrayClone$GT$5clone17hb6e0caeb60adb367E"(ptr noalias nocapture noundef sret([3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }]) align 8 dereferenceable(288) %0, ptr noalias noundef readonly align 8 dereferenceable(288) %1) unnamed_addr #0 {
%3 = alloca { ptr, ptr }, align 8
%4 = alloca { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }, align 8
%5 = alloca ptr, align 8
%6 = alloca ptr, align 8
%7 = alloca { ptr, ptr }, align 8
%8 = alloca { ptr, ptr }, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %8)
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 8, ptr %6)
br i1 false, label %11, label %9
9: ; preds = %2
%10 = getelementptr inbounds { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }, ptr %1, i64 3
store ptr %10, ptr %6, align 8
br label %12
11: ; preds = %2
store ptr inttoptr (i64 3 to ptr), ptr %6, align 8
br label %12
12: ; preds = %11, %9
call void @llvm.lifetime.start.p0(i64 8, ptr %5)
store ptr %1, ptr %5, align 8
%13 = load ptr, ptr %6, align 8, !noundef !3
%14 = load ptr, ptr %5, align 8, !nonnull !3, !noundef !3
store ptr %14, ptr %7, align 8
%15 = getelementptr inbounds { ptr, ptr }, ptr %7, i32 0, i32 1
store ptr %13, ptr %15, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %5)
call void @llvm.lifetime.end.p0(i64 8, ptr %6)
%16 = getelementptr inbounds { ptr, ptr }, ptr %7, i32 0, i32 0
%17 = load ptr, ptr %16, align 8, !nonnull !3, !noundef !3
%18 = getelementptr inbounds { ptr, ptr }, ptr %7, i32 0, i32 1
%19 = load ptr, ptr %18, align 8, !noundef !3
%20 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 0
store ptr %17, ptr %20, align 8
%21 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 1
store ptr %19, ptr %21, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 288, ptr %4)
call void @llvm.lifetime.start.p0(i64 16, ptr %3)
%22 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 0
%23 = load ptr, ptr %22, align 8, !nonnull !3, !noundef !3
%24 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 1
%25 = load ptr, ptr %24, align 8, !noundef !3
%26 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 0
store ptr %23, ptr %26, align 8
%27 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
store ptr %25, ptr %27, align 8
%28 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 0
%29 = load ptr, ptr %28, align 8, !nonnull !3, !noundef !3
%30 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
%31 = load ptr, ptr %30, align 8, !noundef !3
call void @_ZN4core5array25try_from_trusted_iterator17h5192ea6329bbf1aaE(ptr noalias nocapture noundef sret({ [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }) align 8 dereferenceable(288) %4, ptr noundef nonnull %29, ptr noundef %31) #13
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %4, i64 288, i1 false)
call void @llvm.lifetime.end.p0(i64 288, ptr %4)
call void @llvm.lifetime.end.p0(i64 16, ptr %8)
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef i64 @"_ZN49_$LT$isize$u20$as$u20$core..iter..range..Step$GT$17forward_unchecked17ha66ff3745aedc319E"(i64 noundef %0, i64 noundef %1) unnamed_addr #0 {
%3 = add nsw i64 %0, %1
ret i64 %3
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { i64, i64 } @"_ZN49_$LT$usize$u20$as$u20$core..iter..range..Step$GT$13steps_between17h124743e14a81458dE"(ptr noalias noundef readonly align 8 dereferenceable(8) %0, ptr noalias noundef readonly align 8 dereferenceable(8) %1) unnamed_addr #0 {
%3 = alloca { i64, i64 }, align 8
%4 = load i64, ptr %0, align 8, !noundef !3
%5 = load i64, ptr %1, align 8, !noundef !3
%6 = icmp ule i64 %4, %5
br i1 %6, label %8, label %7
7: ; preds = %2
store i64 0, ptr %3, align 8
br label %13
8: ; preds = %2
%9 = load i64, ptr %1, align 8, !noundef !3
%10 = load i64, ptr %0, align 8, !noundef !3
%11 = sub i64 %9, %10
%12 = getelementptr inbounds { i64, i64 }, ptr %3, i32 0, i32 1
store i64 %11, ptr %12, align 8
store i64 1, ptr %3, align 8
br label %13
13: ; preds = %8, %7
%14 = getelementptr inbounds { i64, i64 }, ptr %3, i32 0, i32 0
%15 = load i64, ptr %14, align 8, !range !7, !noundef !3
%16 = getelementptr inbounds { i64, i64 }, ptr %3, i32 0, i32 1
%17 = load i64, ptr %16, align 8
%18 = insertvalue { i64, i64 } poison, i64 %15, 0
%19 = insertvalue { i64, i64 } %18, i64 %17, 1
ret { i64, i64 } %19
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef i64 @"_ZN49_$LT$usize$u20$as$u20$core..iter..range..Step$GT$17forward_unchecked17h70ee56afff9bf27fE"(i64 noundef %0, i64 noundef %1) unnamed_addr #0 {
%3 = add nuw i64 %0, %1
ret i64 %3
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef i8 @"_ZN4core3cmp5impls50_$LT$impl$u20$core..cmp..Ord$u20$for$u20$isize$GT$3cmp17h0e98cc3d5a0a6fffE"(ptr noalias noundef readonly align 8 dereferenceable(8) %0, ptr noalias noundef readonly align 8 dereferenceable(8) %1) unnamed_addr #0 {
%3 = alloca i8, align 1
%4 = load i64, ptr %0, align 8, !noundef !3
%5 = load i64, ptr %1, align 8, !noundef !3
%6 = icmp slt i64 %4, %5
br i1 %6, label %11, label %7
7: ; preds = %2
%8 = load i64, ptr %0, align 8, !noundef !3
%9 = load i64, ptr %1, align 8, !noundef !3
%10 = icmp eq i64 %8, %9
br i1 %10, label %13, label %12
11: ; preds = %2
store i8 -1, ptr %3, align 1
br label %15
12: ; preds = %7
store i8 1, ptr %3, align 1
br label %14
13: ; preds = %7
store i8 0, ptr %3, align 1
br label %14
14: ; preds = %13, %12
br label %15
15: ; preds = %14, %11
%16 = load i8, ptr %3, align 1, !range !10, !noundef !3
ret i8 %16
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef i8 @"_ZN4core3cmp5impls50_$LT$impl$u20$core..cmp..Ord$u20$for$u20$usize$GT$3cmp17h6031158496dfaa48E"(ptr noalias noundef readonly align 8 dereferenceable(8) %0, ptr noalias noundef readonly align 8 dereferenceable(8) %1) unnamed_addr #0 {
%3 = alloca i8, align 1
%4 = load i64, ptr %0, align 8, !noundef !3
%5 = load i64, ptr %1, align 8, !noundef !3
%6 = icmp ult i64 %4, %5
br i1 %6, label %11, label %7
7: ; preds = %2
%8 = load i64, ptr %0, align 8, !noundef !3
%9 = load i64, ptr %1, align 8, !noundef !3
%10 = icmp eq i64 %8, %9
br i1 %10, label %13, label %12
11: ; preds = %2
store i8 -1, ptr %3, align 1
br label %15
12: ; preds = %7
store i8 1, ptr %3, align 1
br label %14
13: ; preds = %7
store i8 0, ptr %3, align 1
br label %14
14: ; preds = %13, %12
br label %15
15: ; preds = %14, %11
%16 = load i8, ptr %3, align 1, !range !10, !noundef !3
ret i8 %16
}
; Function Attrs: alwaysinline nounwind nonlazybind
define internal noundef zeroext i1 @"_ZN4core3cmp5impls57_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$usize$GT$2lt17h85a37094cf41345fE"(ptr noalias noundef readonly align 8 dereferenceable(8) %0, ptr noalias noundef readonly align 8 dereferenceable(8) %1) unnamed_addr #2 {
%3 = load i64, ptr %0, align 8, !noundef !3
%4 = load i64, ptr %1, align 8, !noundef !3
%5 = icmp ult i64 %3, %4
ret i1 %5
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef i64 @_ZN4core3cmp6max_by17h6bd5d9db07ead17dE(i64 noundef %0, i64 noundef %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca i8, align 1
%5 = alloca i8, align 1
%6 = alloca { ptr, ptr }, align 8
%7 = alloca i8, align 1
%8 = alloca i64, align 8
%9 = alloca i64, align 8
%10 = alloca i64, align 8
store i64 %0, ptr %10, align 8
store i64 %1, ptr %9, align 8
store i8 1, ptr %4, align 1
store i8 1, ptr %5, align 1
call void @llvm.lifetime.start.p0(i64 1, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %10, ptr %6, align 8
%11 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
store ptr %9, ptr %11, align 8
%12 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 0
%13 = load ptr, ptr %12, align 8, !nonnull !3, !align !5, !noundef !3
%14 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
%15 = load ptr, ptr %14, align 8, !nonnull !3, !align !5, !noundef !3
%16 = call noundef i8 @_ZN4core3ops8function6FnOnce9call_once17hbc2add814ca0af36E(ptr noalias noundef readonly align 8 dereferenceable(8) %13, ptr noalias noundef readonly align 8 dereferenceable(8) %15) #13, !range !10
store i8 %16, ptr %7, align 1
br label %17
17: ; preds = %2
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%18 = load i8, ptr %7, align 1, !range !10, !noundef !3
switch i8 %18, label %19 [
i8 -1, label %20
i8 0, label %20
i8 1, label %22
]
19: ; preds = %17
unreachable
20: ; preds = %17, %17
store i8 0, ptr %5, align 1
%21 = load i64, ptr %9, align 8, !noundef !3
store i64 %21, ptr %8, align 8
br label %24
22: ; preds = %17
store i8 0, ptr %4, align 1
%23 = load i64, ptr %10, align 8, !noundef !3
store i64 %23, ptr %8, align 8
br label %24
24: ; preds = %22, %20
call void @llvm.lifetime.end.p0(i64 1, ptr %7)
%25 = load i8, ptr %5, align 1, !range !9, !noundef !3
%26 = trunc i8 %25 to i1
br i1 %26, label %30, label %27
27: ; preds = %30, %24
%28 = load i8, ptr %4, align 1, !range !9, !noundef !3
%29 = trunc i8 %28 to i1
br i1 %29, label %33, label %31
30: ; preds = %24
br label %27
31: ; preds = %33, %27
%32 = load i64, ptr %8, align 8, !noundef !3
ret i64 %32
33: ; preds = %27
br label %31
34: ; No predecessors!
br label %35
35: ; preds = %34
%36 = load i8, ptr %4, align 1, !range !9, !noundef !3
%37 = trunc i8 %36 to i1
br i1 %37, label %44, label %38
38: ; preds = %44, %35
%39 = load ptr, ptr %3, align 8, !noundef !3
%40 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%41 = load i32, ptr %40, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%42 = insertvalue { ptr, i32 } poison, ptr %39, 0
%43 = insertvalue { ptr, i32 } %42, i32 %41, 1
resume { ptr, i32 } %43
44: ; preds = %35
br label %38
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef i64 @_ZN4core3cmp6max_by17ha897d5bbc57b999cE(i64 noundef %0, i64 noundef %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca i8, align 1
%5 = alloca i8, align 1
%6 = alloca { ptr, ptr }, align 8
%7 = alloca i8, align 1
%8 = alloca i64, align 8
%9 = alloca i64, align 8
%10 = alloca i64, align 8
store i64 %0, ptr %10, align 8
store i64 %1, ptr %9, align 8
store i8 1, ptr %4, align 1
store i8 1, ptr %5, align 1
call void @llvm.lifetime.start.p0(i64 1, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %10, ptr %6, align 8
%11 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
store ptr %9, ptr %11, align 8
%12 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 0
%13 = load ptr, ptr %12, align 8, !nonnull !3, !align !5, !noundef !3
%14 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
%15 = load ptr, ptr %14, align 8, !nonnull !3, !align !5, !noundef !3
%16 = call noundef i8 @_ZN4core3ops8function6FnOnce9call_once17h3a6f288406fa24eeE(ptr noalias noundef readonly align 8 dereferenceable(8) %13, ptr noalias noundef readonly align 8 dereferenceable(8) %15) #13, !range !10
store i8 %16, ptr %7, align 1
br label %17
17: ; preds = %2
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%18 = load i8, ptr %7, align 1, !range !10, !noundef !3
switch i8 %18, label %19 [
i8 -1, label %20
i8 0, label %20
i8 1, label %22
]
19: ; preds = %17
unreachable
20: ; preds = %17, %17
store i8 0, ptr %5, align 1
%21 = load i64, ptr %9, align 8, !noundef !3
store i64 %21, ptr %8, align 8
br label %24
22: ; preds = %17
store i8 0, ptr %4, align 1
%23 = load i64, ptr %10, align 8, !noundef !3
store i64 %23, ptr %8, align 8
br label %24
24: ; preds = %22, %20
call void @llvm.lifetime.end.p0(i64 1, ptr %7)
%25 = load i8, ptr %5, align 1, !range !9, !noundef !3
%26 = trunc i8 %25 to i1
br i1 %26, label %30, label %27
27: ; preds = %30, %24
%28 = load i8, ptr %4, align 1, !range !9, !noundef !3
%29 = trunc i8 %28 to i1
br i1 %29, label %33, label %31
30: ; preds = %24
br label %27
31: ; preds = %33, %27
%32 = load i64, ptr %8, align 8, !noundef !3
ret i64 %32
33: ; preds = %27
br label %31
34: ; No predecessors!
br label %35
35: ; preds = %34
%36 = load i8, ptr %4, align 1, !range !9, !noundef !3
%37 = trunc i8 %36 to i1
br i1 %37, label %44, label %38
38: ; preds = %44, %35
%39 = load ptr, ptr %3, align 8, !noundef !3
%40 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%41 = load i32, ptr %40, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%42 = insertvalue { ptr, i32 } poison, ptr %39, 0
%43 = insertvalue { ptr, i32 } %42, i32 %41, 1
resume { ptr, i32 } %43
44: ; preds = %35
br label %38
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef i64 @_ZN4core3cmp6min_by17h7fabcd7e6210d284E(i64 noundef %0, i64 noundef %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca i8, align 1
%5 = alloca i8, align 1
%6 = alloca { ptr, ptr }, align 8
%7 = alloca i8, align 1
%8 = alloca i64, align 8
%9 = alloca i64, align 8
%10 = alloca i64, align 8
store i64 %0, ptr %10, align 8
store i64 %1, ptr %9, align 8
store i8 1, ptr %4, align 1
store i8 1, ptr %5, align 1
call void @llvm.lifetime.start.p0(i64 1, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %10, ptr %6, align 8
%11 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
store ptr %9, ptr %11, align 8
%12 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 0
%13 = load ptr, ptr %12, align 8, !nonnull !3, !align !5, !noundef !3
%14 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
%15 = load ptr, ptr %14, align 8, !nonnull !3, !align !5, !noundef !3
%16 = call noundef i8 @_ZN4core3ops8function6FnOnce9call_once17h3a6f288406fa24eeE(ptr noalias noundef readonly align 8 dereferenceable(8) %13, ptr noalias noundef readonly align 8 dereferenceable(8) %15) #13, !range !10
store i8 %16, ptr %7, align 1
br label %17
17: ; preds = %2
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%18 = load i8, ptr %7, align 1, !range !10, !noundef !3
switch i8 %18, label %19 [
i8 -1, label %20
i8 0, label %20
i8 1, label %22
]
19: ; preds = %17
unreachable
20: ; preds = %17, %17
store i8 0, ptr %4, align 1
%21 = load i64, ptr %10, align 8, !noundef !3
store i64 %21, ptr %8, align 8
br label %24
22: ; preds = %17
store i8 0, ptr %5, align 1
%23 = load i64, ptr %9, align 8, !noundef !3
store i64 %23, ptr %8, align 8
br label %24
24: ; preds = %22, %20
call void @llvm.lifetime.end.p0(i64 1, ptr %7)
%25 = load i8, ptr %5, align 1, !range !9, !noundef !3
%26 = trunc i8 %25 to i1
br i1 %26, label %30, label %27
27: ; preds = %30, %24
%28 = load i8, ptr %4, align 1, !range !9, !noundef !3
%29 = trunc i8 %28 to i1
br i1 %29, label %33, label %31
30: ; preds = %24
br label %27
31: ; preds = %33, %27
%32 = load i64, ptr %8, align 8, !noundef !3
ret i64 %32
33: ; preds = %27
br label %31
34: ; No predecessors!
br label %35
35: ; preds = %34
%36 = load i8, ptr %4, align 1, !range !9, !noundef !3
%37 = trunc i8 %36 to i1
br i1 %37, label %44, label %38
38: ; preds = %44, %35
%39 = load ptr, ptr %3, align 8, !noundef !3
%40 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%41 = load i32, ptr %40, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%42 = insertvalue { ptr, i32 } poison, ptr %39, 0
%43 = insertvalue { ptr, i32 } %42, i32 %41, 1
resume { ptr, i32 } %43
44: ; preds = %35
br label %38
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef i64 @_ZN4core3cmp6min_by17ha9227e5b8b7715f9E(i64 noundef %0, i64 noundef %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca i8, align 1
%5 = alloca i8, align 1
%6 = alloca { ptr, ptr }, align 8
%7 = alloca i8, align 1
%8 = alloca i64, align 8
%9 = alloca i64, align 8
%10 = alloca i64, align 8
store i64 %0, ptr %10, align 8
store i64 %1, ptr %9, align 8
store i8 1, ptr %4, align 1
store i8 1, ptr %5, align 1
call void @llvm.lifetime.start.p0(i64 1, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %10, ptr %6, align 8
%11 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
store ptr %9, ptr %11, align 8
%12 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 0
%13 = load ptr, ptr %12, align 8, !nonnull !3, !align !5, !noundef !3
%14 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
%15 = load ptr, ptr %14, align 8, !nonnull !3, !align !5, !noundef !3
%16 = call noundef i8 @_ZN4core3ops8function6FnOnce9call_once17hbc2add814ca0af36E(ptr noalias noundef readonly align 8 dereferenceable(8) %13, ptr noalias noundef readonly align 8 dereferenceable(8) %15) #13, !range !10
store i8 %16, ptr %7, align 1
br label %17
17: ; preds = %2
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%18 = load i8, ptr %7, align 1, !range !10, !noundef !3
switch i8 %18, label %19 [
i8 -1, label %20
i8 0, label %20
i8 1, label %22
]
19: ; preds = %17
unreachable
20: ; preds = %17, %17
store i8 0, ptr %4, align 1
%21 = load i64, ptr %10, align 8, !noundef !3
store i64 %21, ptr %8, align 8
br label %24
22: ; preds = %17
store i8 0, ptr %5, align 1
%23 = load i64, ptr %9, align 8, !noundef !3
store i64 %23, ptr %8, align 8
br label %24
24: ; preds = %22, %20
call void @llvm.lifetime.end.p0(i64 1, ptr %7)
%25 = load i8, ptr %5, align 1, !range !9, !noundef !3
%26 = trunc i8 %25 to i1
br i1 %26, label %30, label %27
27: ; preds = %30, %24
%28 = load i8, ptr %4, align 1, !range !9, !noundef !3
%29 = trunc i8 %28 to i1
br i1 %29, label %33, label %31
30: ; preds = %24
br label %27
31: ; preds = %33, %27
%32 = load i64, ptr %8, align 8, !noundef !3
ret i64 %32
33: ; preds = %27
br label %31
34: ; No predecessors!
br label %35
35: ; preds = %34
%36 = load i8, ptr %4, align 1, !range !9, !noundef !3
%37 = trunc i8 %36 to i1
br i1 %37, label %44, label %38
38: ; preds = %44, %35
%39 = load ptr, ptr %3, align 8, !noundef !3
%40 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%41 = load i32, ptr %40, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%42 = insertvalue { ptr, i32 } poison, ptr %39, 0
%43 = insertvalue { ptr, i32 } %42, i32 %41, 1
resume { ptr, i32 } %43
44: ; preds = %35
br label %38
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core3fmt9Arguments9new_const17h22f1baa2268286beE(ptr noalias nocapture noundef sret({ { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }) align 8 dereferenceable(48) %0, ptr noalias noundef nonnull readonly align 8 %1, i64 noundef %2) unnamed_addr #0 {
%4 = alloca { ptr, i64 }, align 8
%5 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8
%6 = icmp ugt i64 %2, 1
br i1 %6, label %20, label %7
7: ; preds = %3
call void @llvm.lifetime.start.p0(i64 16, ptr %4)
store ptr null, ptr %4, align 8
%8 = getelementptr inbounds { ptr, i64 }, ptr %0, i32 0, i32 0
store ptr %1, ptr %8, align 8
%9 = getelementptr inbounds { ptr, i64 }, ptr %0, i32 0, i32 1
store i64 %2, ptr %9, align 8
%10 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 0
%11 = load ptr, ptr %10, align 8, !align !5, !noundef !3
%12 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 1
%13 = load i64, ptr %12, align 8
%14 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %0, i32 0, i32 2
%15 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 0
store ptr %11, ptr %15, align 8
%16 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 1
store i64 %13, ptr %16, align 8
%17 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %0, i32 0, i32 1
%18 = getelementptr inbounds { ptr, i64 }, ptr %17, i32 0, i32 0
store ptr @0, ptr %18, align 8
%19 = getelementptr inbounds { ptr, i64 }, ptr %17, i32 0, i32 1
store i64 0, ptr %19, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
ret void
20: ; preds = %3
call void @llvm.lifetime.start.p0(i64 48, ptr %5)
call void @_ZN4core3fmt9Arguments9new_const17h22f1baa2268286beE(ptr noalias nocapture noundef sret({ { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }) align 8 dereferenceable(48) %5, ptr noalias noundef nonnull readonly align 8 @2, i64 noundef 1) #13
call void @_ZN4core9panicking9panic_fmt17h24b3f94e75b12286E(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %5, ptr noalias noundef readonly align 8 dereferenceable(24) @4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef i64 @"_ZN4core3num23_$LT$impl$u20$usize$GT$8div_ceil17hf25c534123c539daE"(i64 noundef %0, i64 noundef %1) unnamed_addr #0 {
%3 = alloca i8, align 1
%4 = alloca i64, align 8
%5 = icmp eq i64 %1, 0
%6 = call i1 @llvm.expect.i1(i1 %5, i1 false)
br i1 %6, label %11, label %7
7: ; preds = %2
%8 = udiv i64 %0, %1
%9 = icmp eq i64 %1, 0
%10 = call i1 @llvm.expect.i1(i1 %9, i1 false)
br i1 %10, label %15, label %12
11: ; preds = %2
call void @_ZN4core9panicking5panic17h5caa4064b91696faE(ptr noalias noundef nonnull readonly align 1 @str.0, i64 noundef 25, ptr noalias noundef readonly align 8 dereferenceable(24) @6) #14
unreachable
12: ; preds = %7
%13 = urem i64 %0, %1
call void @llvm.lifetime.start.p0(i64 1, ptr %3)
%14 = icmp ugt i64 %13, 0
br i1 %14, label %17, label %16
15: ; preds = %7
call void @_ZN4core9panicking5panic17h5caa4064b91696faE(ptr noalias noundef nonnull readonly align 1 @str.1, i64 noundef 57, ptr noalias noundef readonly align 8 dereferenceable(24) @6) #14
unreachable
16: ; preds = %12
store i8 0, ptr %3, align 1
br label %20
17: ; preds = %12
%18 = icmp ugt i64 %1, 0
%19 = zext i1 %18 to i8
store i8 %19, ptr %3, align 1
br label %20
20: ; preds = %17, %16
%21 = load i8, ptr %3, align 1, !range !9, !noundef !3
%22 = trunc i8 %21 to i1
br i1 %22, label %24, label %23
23: ; preds = %20
store i64 %8, ptr %4, align 8
br label %28
24: ; preds = %20
%25 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %8, i64 1)
%26 = extractvalue { i64, i1 } %25, 0
%27 = extractvalue { i64, i1 } %25, 1
store i64 %26, ptr %4, align 8
br label %28
28: ; preds = %24, %23
call void @llvm.lifetime.end.p0(i64 1, ptr %3)
%29 = load i64, ptr %4, align 8, !noundef !3
ret i64 %29
}
; Function Attrs: nounwind nonlazybind
define internal noundef double @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h01b0b5c0c7807fa5E"(ptr noalias noundef nonnull align 1 %0, ptr noalias noundef readonly align 8 dereferenceable(40) %1) unnamed_addr #1 {
%3 = alloca ptr, align 8
store ptr %1, ptr %3, align 8
%4 = load ptr, ptr %3, align 8, !nonnull !3, !align !5, !noundef !3
%5 = call noundef double @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$14run_comparison28_$u7b$$u7b$closure$u7d$$u7d$17hf49e453f12e1d2d4E"(ptr noalias noundef nonnull align 1 %0, ptr noalias noundef readonly align 8 dereferenceable(40) %4) #13
ret double %5
}
; Function Attrs: nounwind nonlazybind
define internal noundef align 1 dereferenceable(1) ptr @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h19eb0909d6594e53E"(ptr noalias noundef align 8 dereferenceable(8) %0, ptr noalias noundef nonnull align 1 %1, i64 noundef %2) unnamed_addr #1 {
%4 = alloca { ptr, i64 }, align 8
%5 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 0
store ptr %1, ptr %5, align 8
%6 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 1
store i64 %2, ptr %6, align 8
%7 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 0
%8 = load ptr, ptr %7, align 8, !nonnull !3, !align !4, !noundef !3
%9 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 1
%10 = load i64, ptr %9, align 8, !noundef !3
%11 = call noundef align 1 dereferenceable(1) ptr @"_ZN5rav1e3lrf20wiener_stripe_filter28_$u7b$$u7b$closure$u7d$$u7d$17h0f91789662886344E"(ptr noalias noundef align 8 dereferenceable(8) %0, ptr noalias noundef nonnull align 1 %8, i64 noundef %10) #13
ret ptr %11
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h3713fb2604dcc4c7E"(ptr noalias nocapture noundef sret({ { ptr, i64 }, i64, i64 }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(40) %1, ptr noalias noundef nonnull readonly align 2 %2, i64 noundef %3) unnamed_addr #1 {
%5 = alloca { ptr, i64 }, align 8
%6 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 0
store ptr %2, ptr %6, align 8
%7 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 1
store i64 %3, ptr %7, align 8
%8 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 0
%9 = load ptr, ptr %8, align 8, !nonnull !3, !align !6, !noundef !3
%10 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 1
%11 = load i64, ptr %10, align 8, !noundef !3
call void @"_ZN5rav1e3lrf20setup_integral_image28_$u7b$$u7b$closure$u7d$$u7d$17h4791f5a336a53902E"(ptr noalias nocapture noundef sret({ { ptr, i64 }, i64, i64 }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(40) %1, ptr noalias noundef nonnull readonly align 2 %9, i64 noundef %11) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h60a72e2f91dbaff6E"(ptr noalias nocapture noundef sret({ ptr, ptr, ptr }) align 8 dereferenceable(24) %0, ptr noalias noundef nonnull align 1 %1, ptr noalias nocapture noundef align 8 dereferenceable(24) %2) unnamed_addr #1 {
%4 = alloca { { { ptr, ptr }, ptr } }, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %4, ptr align 8 %2, i64 24, i1 false)
call void @"_ZN5rav1e8activity12variance_8x828_$u7b$$u7b$closure$u7d$$u7d$17h64fdafba490a2bf7E"(ptr noalias nocapture noundef sret({ ptr, ptr, ptr }) align 8 dereferenceable(24) %0, ptr noalias noundef nonnull align 1 %1, ptr noalias nocapture noundef align 8 dereferenceable(24) %4) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal noundef double @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h680b4fa04bdd3c32E"(ptr noalias noundef nonnull align 1 %0, ptr noalias noundef readonly align 8 dereferenceable(40) %1) unnamed_addr #1 {
%3 = alloca ptr, align 8
store ptr %1, ptr %3, align 8
%4 = load ptr, ptr %3, align 8, !nonnull !3, !align !5, !noundef !3
%5 = call noundef double @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$14run_comparison28_$u7b$$u7b$closure$u7d$$u7d$17h6915113cdb8734e3E"(ptr noalias noundef nonnull align 1 %0, ptr noalias noundef readonly align 8 dereferenceable(40) %4) #13
ret double %5
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17hadd2895302f93891E"(ptr noalias nocapture noundef sret({ { ptr, i64 }, i64, i64 }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(40) %1, ptr noalias noundef nonnull readonly align 1 %2, i64 noundef %3) unnamed_addr #1 {
%5 = alloca { ptr, i64 }, align 8
%6 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 0
store ptr %2, ptr %6, align 8
%7 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 1
store i64 %3, ptr %7, align 8
%8 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 0
%9 = load ptr, ptr %8, align 8, !nonnull !3, !align !4, !noundef !3
%10 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 1
%11 = load i64, ptr %10, align 8, !noundef !3
call void @"_ZN5rav1e3lrf20setup_integral_image28_$u7b$$u7b$closure$u7d$$u7d$17ha6df1cff32f9c4fdE"(ptr noalias nocapture noundef sret({ { ptr, i64 }, i64, i64 }) align 8 dereferenceable(32) %0, ptr noalias noundef align 8 dereferenceable(40) %1, ptr noalias noundef nonnull readonly align 1 %9, i64 noundef %11) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal noundef align 2 dereferenceable(2) ptr @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17hbe446fdb2bec83feE"(ptr noalias noundef align 8 dereferenceable(8) %0, ptr noalias noundef nonnull align 2 %1, i64 noundef %2) unnamed_addr #1 {
%4 = alloca { ptr, i64 }, align 8
%5 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 0
store ptr %1, ptr %5, align 8
%6 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 1
store i64 %2, ptr %6, align 8
%7 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 0
%8 = load ptr, ptr %7, align 8, !nonnull !3, !align !6, !noundef !3
%9 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 1
%10 = load i64, ptr %9, align 8, !noundef !3
%11 = call noundef align 2 dereferenceable(2) ptr @"_ZN5rav1e3lrf20wiener_stripe_filter28_$u7b$$u7b$closure$u7d$$u7d$17hdd3ca97be6b7a3ffE"(ptr noalias noundef align 8 dereferenceable(8) %0, ptr noalias noundef nonnull align 2 %8, i64 noundef %10) #13
ret ptr %11
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17hee46838fa6aadb7bE"(ptr noalias nocapture noundef sret({ ptr, ptr, ptr }) align 8 dereferenceable(24) %0, ptr noalias noundef nonnull align 1 %1, ptr noalias nocapture noundef align 8 dereferenceable(24) %2) unnamed_addr #1 {
%4 = alloca { { { ptr, ptr }, ptr } }, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %4, ptr align 8 %2, i64 24, i1 false)
call void @"_ZN5rav1e8activity12variance_8x828_$u7b$$u7b$closure$u7d$$u7d$17hb5c1e1b4c5d4245fE"(ptr noalias nocapture noundef sret({ ptr, ptr, ptr }) align 8 dereferenceable(24) %0, ptr noalias noundef nonnull align 1 %1, ptr noalias nocapture noundef align 8 dereferenceable(24) %4) #13
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef i8 @_ZN4core3ops8function6FnOnce9call_once17h3a6f288406fa24eeE(ptr noalias noundef readonly align 8 dereferenceable(8) %0, ptr noalias noundef readonly align 8 dereferenceable(8) %1) unnamed_addr #0 {
%3 = alloca { ptr, ptr }, align 8
store ptr %0, ptr %3, align 8
%4 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
store ptr %1, ptr %4, align 8
%5 = load ptr, ptr %3, align 8, !nonnull !3, !align !5, !noundef !3
%6 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
%7 = load ptr, ptr %6, align 8, !nonnull !3, !align !5, !noundef !3
%8 = call noundef i8 @"_ZN4core3cmp5impls50_$LT$impl$u20$core..cmp..Ord$u20$for$u20$usize$GT$3cmp17h6031158496dfaa48E"(ptr noalias noundef readonly align 8 dereferenceable(8) %5, ptr noalias noundef readonly align 8 dereferenceable(8) %7) #13, !range !10
ret i8 %8
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef i8 @_ZN4core3ops8function6FnOnce9call_once17hbc2add814ca0af36E(ptr noalias noundef readonly align 8 dereferenceable(8) %0, ptr noalias noundef readonly align 8 dereferenceable(8) %1) unnamed_addr #0 {
%3 = alloca { ptr, ptr }, align 8
store ptr %0, ptr %3, align 8
%4 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
store ptr %1, ptr %4, align 8
%5 = load ptr, ptr %3, align 8, !nonnull !3, !align !5, !noundef !3
%6 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
%7 = load ptr, ptr %6, align 8, !nonnull !3, !align !5, !noundef !3
%8 = call noundef i8 @"_ZN4core3cmp5impls50_$LT$impl$u20$core..cmp..Ord$u20$for$u20$isize$GT$3cmp17h0e98cc3d5a0a6fffE"(ptr noalias noundef readonly align 8 dereferenceable(8) %5, ptr noalias noundef readonly align 8 dereferenceable(8) %7) #13, !range !10
ret i8 %8
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr100drop_in_place$LT$rayon..vec..DrainProducer$LT$rav1e..tiling..tiler..TileContextMut$LT$u8$GT$$GT$$GT$17hab7711453662888dE"(ptr noalias noundef align 8 dereferenceable(16) %0) unnamed_addr #1 {
call void @"_ZN76_$LT$rayon..vec..DrainProducer$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h58fd15dfaa7767bdE"(ptr noalias noundef align 8 dereferenceable(16) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr101drop_in_place$LT$rayon..vec..DrainProducer$LT$rav1e..tiling..tiler..TileContextMut$LT$u16$GT$$GT$$GT$17h5772d079944540fbE"(ptr noalias noundef align 8 dereferenceable(16) %0) unnamed_addr #1 {
call void @"_ZN76_$LT$rayon..vec..DrainProducer$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2f876aa22b412b75E"(ptr noalias noundef align 8 dereferenceable(16) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$$LP$$u5b$v_frame..plane..Plane$LT$u8$GT$$u3b$$u20$2$u5d$$C$bool$RP$$GT$$GT$17h0fafde64f7e5634eE"(ptr noalias noundef align 8 dereferenceable(200) %0) unnamed_addr #1 {
%2 = getelementptr inbounds { [192 x i8], i8, [7 x i8] }, ptr %0, i32 0, i32 1
%3 = load i8, ptr %2, align 8, !range !11, !noundef !3
%4 = icmp eq i8 %3, 2
%5 = select i1 %4, i64 0, i64 1
%6 = icmp eq i64 %5, 0
br i1 %6, label %7, label %8
7: ; preds = %8, %1
ret void
8: ; preds = %1
call void @"_ZN4core3ptr88drop_in_place$LT$$LP$$u5b$v_frame..plane..Plane$LT$u8$GT$$u3b$$u20$2$u5d$$C$bool$RP$$GT$17h4d4cb082c6d6e3b1E"(ptr noalias noundef align 8 dereferenceable(200) %0) #13
br label %7
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr117drop_in_place$LT$core..option..Option$LT$$LP$$u5b$v_frame..plane..Plane$LT$u16$GT$$u3b$$u20$2$u5d$$C$bool$RP$$GT$$GT$17h2b9b07016adfb7beE"(ptr noalias noundef align 8 dereferenceable(200) %0) unnamed_addr #1 {
%2 = getelementptr inbounds { [192 x i8], i8, [7 x i8] }, ptr %0, i32 0, i32 1
%3 = load i8, ptr %2, align 8, !range !11, !noundef !3
%4 = icmp eq i8 %3, 2
%5 = select i1 %4, i64 0, i64 1
%6 = icmp eq i64 %5, 0
br i1 %6, label %7, label %8
7: ; preds = %8, %1
ret void
8: ; preds = %1
call void @"_ZN4core3ptr89drop_in_place$LT$$LP$$u5b$v_frame..plane..Plane$LT$u16$GT$$u3b$$u20$2$u5d$$C$bool$RP$$GT$17h62094af54ed4a21fE"(ptr noalias noundef align 8 dereferenceable(200) %0) #13
br label %7
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr120drop_in_place$LT$alloc..sync..Arc$LT$core..mem..maybe_uninit..MaybeUninit$LT$v_frame..frame..Frame$LT$u8$GT$$GT$$GT$$GT$17hed25e12930b6adcdE"(ptr noalias noundef align 8 dereferenceable(8) %0) unnamed_addr #1 {
call void @"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h10230c5170a06295E"(ptr noalias noundef align 8 dereferenceable(8) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr121drop_in_place$LT$alloc..sync..Arc$LT$core..mem..maybe_uninit..MaybeUninit$LT$v_frame..frame..Frame$LT$u16$GT$$GT$$GT$$GT$17hbdb7d029a334ef57E"(ptr noalias noundef align 8 dereferenceable(8) %0) unnamed_addr #1 {
call void @"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h5b1330bdc63fd6cfE"(ptr noalias noundef align 8 dereferenceable(8) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr122drop_in_place$LT$alloc..sync..Arc$LT$std..sync..rwlock..RwLock$LT$$u5b$rav1e..me..FrameMEStats$u3b$$u20$8$u5d$$GT$$GT$$GT$17h83f7e023054502fbE"(ptr noalias noundef align 8 dereferenceable(8) %0) unnamed_addr #1 {
call void @"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hddde0b20bc4b8be0E"(ptr noalias noundef align 8 dereferenceable(8) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr125drop_in_place$LT$core..option..Option$LT$$u5b$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u8$GT$$GT$$u3b$$u20$2$u5d$$GT$$GT$17h5933843bcb50aaebE"(ptr noalias noundef align 8 dereferenceable(16) %0) unnamed_addr #1 {
%2 = load ptr, ptr %0, align 8, !noundef !3
%3 = ptrtoint ptr %2 to i64
%4 = icmp eq i64 %3, 0
%5 = select i1 %4, i64 0, i64 1
%6 = icmp eq i64 %5, 0
br i1 %6, label %7, label %8
7: ; preds = %8, %1
ret void
8: ; preds = %1
call void @"_ZN4core3ptr97drop_in_place$LT$$u5b$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u8$GT$$GT$$u3b$$u20$2$u5d$$GT$17h474028e805c53cddE"(ptr noalias noundef align 8 dereferenceable(16) %0) #13
br label %7
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr126drop_in_place$LT$core..option..Option$LT$$u5b$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u16$GT$$GT$$u3b$$u20$2$u5d$$GT$$GT$17h53de1d31a98f91a0E"(ptr noalias noundef align 8 dereferenceable(16) %0) unnamed_addr #1 {
%2 = load ptr, ptr %0, align 8, !noundef !3
%3 = ptrtoint ptr %2 to i64
%4 = icmp eq i64 %3, 0
%5 = select i1 %4, i64 0, i64 1
%6 = icmp eq i64 %5, 0
br i1 %6, label %7, label %8
7: ; preds = %8, %1
ret void
8: ; preds = %1
call void @"_ZN4core3ptr98drop_in_place$LT$$u5b$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u16$GT$$GT$$u3b$$u20$2$u5d$$GT$17h4e24ab565cc2282aE"(ptr noalias noundef align 8 dereferenceable(16) %0) #13
br label %7
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr150drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..sync..rwlock..RwLock$LT$$u5b$rav1e..me..FrameMEStats$u3b$$u20$8$u5d$$GT$$GT$$GT$$GT$17ha7ed9b384897ab21E"(ptr noalias noundef align 8 dereferenceable(8) %0) unnamed_addr #1 {
%2 = load ptr, ptr %0, align 8, !noundef !3
%3 = ptrtoint ptr %2 to i64
%4 = icmp eq i64 %3, 0
%5 = select i1 %4, i64 0, i64 1
%6 = icmp eq i64 %5, 0
br i1 %6, label %7, label %8
7: ; preds = %8, %1
ret void
8: ; preds = %1
call void @"_ZN4core3ptr122drop_in_place$LT$alloc..sync..Arc$LT$std..sync..rwlock..RwLock$LT$$u5b$rav1e..me..FrameMEStats$u3b$$u20$8$u5d$$GT$$GT$$GT$17h83f7e023054502fbE"(ptr noalias noundef align 8 dereferenceable(8) %0) #13
br label %7
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr162drop_in_place$LT$rayon..vec..DrainProducer$LT$$LP$rav1e..tiling..tiler..TileContextMut$LT$u8$GT$$C$$RF$mut$u20$rav1e..context..cdf_context..CDFContext$RP$$GT$$GT$17h567115d28e868d87E"(ptr noalias noundef align 8 dereferenceable(16) %0) unnamed_addr #1 {
call void @"_ZN76_$LT$rayon..vec..DrainProducer$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h571fc28a0ec61d07E"(ptr noalias noundef align 8 dereferenceable(16) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr163drop_in_place$LT$rayon..vec..DrainProducer$LT$$LP$rav1e..tiling..tiler..TileContextMut$LT$u16$GT$$C$$RF$mut$u20$rav1e..context..cdf_context..CDFContext$RP$$GT$$GT$17h18b1227d9148a3c9E"(ptr noalias noundef align 8 dereferenceable(16) %0) unnamed_addr #1 {
call void @"_ZN76_$LT$rayon..vec..DrainProducer$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd06783698f7d9c1dE"(ptr noalias noundef align 8 dereferenceable(16) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr47drop_in_place$LT$alloc..vec..Vec$LT$u32$GT$$GT$17h9caefc831e681731E"(ptr noalias noundef align 8 dereferenceable(24) %0) unnamed_addr #1 {
call void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hb678f215b2727b05E"(ptr noalias noundef align 8 dereferenceable(24) %0) #13
call void @"_ZN4core3ptr54drop_in_place$LT$alloc..raw_vec..RawVec$LT$u32$GT$$GT$17hd2bab3179acfd758E"(ptr noalias noundef align 8 dereferenceable(16) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr52drop_in_place$LT$rav1e..lrf..IntegralImageBuffer$GT$17h254a7edcce698420E"(ptr noalias noundef align 8 dereferenceable(48) %0) unnamed_addr #1 {
call void @"_ZN4core3ptr47drop_in_place$LT$alloc..vec..Vec$LT$u32$GT$$GT$17h9caefc831e681731E"(ptr noalias noundef align 8 dereferenceable(24) %0) #13
%2 = getelementptr inbounds { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 } }, ptr %0, i32 0, i32 1
call void @"_ZN4core3ptr47drop_in_place$LT$alloc..vec..Vec$LT$u32$GT$$GT$17h9caefc831e681731E"(ptr noalias noundef align 8 dereferenceable(24) %2) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr52drop_in_place$LT$v_frame..frame..Frame$LT$u8$GT$$GT$17hddc13fa2ebc382c3E"(ptr noalias noundef align 8 dereferenceable(288) %0) unnamed_addr #1 {
call void @"_ZN4core3ptr73drop_in_place$LT$$u5b$v_frame..plane..Plane$LT$u8$GT$$u3b$$u20$3$u5d$$GT$17hd0c5c37657d29168E"(ptr noalias noundef align 8 dereferenceable(288) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr52drop_in_place$LT$v_frame..plane..Plane$LT$u8$GT$$GT$17hab3b24e1a686ba7bE"(ptr noalias noundef align 8 dereferenceable(96) %0) unnamed_addr #1 {
call void @"_ZN4core3ptr56drop_in_place$LT$v_frame..plane..PlaneData$LT$u8$GT$$GT$17hfa415bb91495e932E"(ptr noalias noundef align 8 dereferenceable(16) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr53drop_in_place$LT$v_frame..frame..Frame$LT$u16$GT$$GT$17h12bc957513ca8625E"(ptr noalias noundef align 8 dereferenceable(288) %0) unnamed_addr #1 {
call void @"_ZN4core3ptr74drop_in_place$LT$$u5b$v_frame..plane..Plane$LT$u16$GT$$u3b$$u20$3$u5d$$GT$17h5e1367645d31971aE"(ptr noalias noundef align 8 dereferenceable(288) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr53drop_in_place$LT$v_frame..plane..Plane$LT$u16$GT$$GT$17hbea16931fa566ae9E"(ptr noalias noundef align 8 dereferenceable(96) %0) unnamed_addr #1 {
call void @"_ZN4core3ptr57drop_in_place$LT$v_frame..plane..PlaneData$LT$u16$GT$$GT$17hbd10afa6badb1475E"(ptr noalias noundef align 8 dereferenceable(16) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr54drop_in_place$LT$alloc..raw_vec..RawVec$LT$u32$GT$$GT$17hd2bab3179acfd758E"(ptr noalias noundef align 8 dereferenceable(16) %0) unnamed_addr #1 {
call void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hfff72e2c989eddecE"(ptr noalias noundef align 8 dereferenceable(16) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr56drop_in_place$LT$v_frame..plane..PlaneData$LT$u8$GT$$GT$17hfa415bb91495e932E"(ptr noalias noundef align 8 dereferenceable(16) %0) unnamed_addr #1 {
call void @"_ZN76_$LT$v_frame..plane..PlaneData$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h93abcc8a928de840E"(ptr noalias noundef align 8 dereferenceable(16) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr57drop_in_place$LT$v_frame..plane..PlaneData$LT$u16$GT$$GT$17hbd10afa6badb1475E"(ptr noalias noundef align 8 dereferenceable(16) %0) unnamed_addr #1 {
call void @"_ZN76_$LT$v_frame..plane..PlaneData$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd7f607fc6ae123c4E"(ptr noalias noundef align 8 dereferenceable(16) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr73drop_in_place$LT$$u5b$v_frame..plane..Plane$LT$u8$GT$$u3b$$u20$2$u5d$$GT$17h3842d141d3de0937E"(ptr noalias noundef align 8 dereferenceable(192) %0) unnamed_addr #1 {
%2 = alloca i64, align 8
store i64 0, ptr %2, align 8
br label %3
3: ; preds = %6, %1
%4 = load i64, ptr %2, align 8, !noundef !3
%5 = icmp eq i64 %4, 2
br i1 %5, label %11, label %6
6: ; preds = %3
%7 = load i64, ptr %2, align 8, !noundef !3
%8 = getelementptr inbounds [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %0, i64 0, i64 %7
%9 = load i64, ptr %2, align 8, !noundef !3
%10 = add i64 %9, 1
store i64 %10, ptr %2, align 8
call void @"_ZN4core3ptr52drop_in_place$LT$v_frame..plane..Plane$LT$u8$GT$$GT$17hab3b24e1a686ba7bE"(ptr noalias noundef align 8 dereferenceable(96) %8) #13
br label %3
11: ; preds = %3
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr73drop_in_place$LT$$u5b$v_frame..plane..Plane$LT$u8$GT$$u3b$$u20$3$u5d$$GT$17hd0c5c37657d29168E"(ptr noalias noundef align 8 dereferenceable(288) %0) unnamed_addr #1 {
%2 = alloca i64, align 8
store i64 0, ptr %2, align 8
br label %3
3: ; preds = %6, %1
%4 = load i64, ptr %2, align 8, !noundef !3
%5 = icmp eq i64 %4, 3
br i1 %5, label %11, label %6
6: ; preds = %3
%7 = load i64, ptr %2, align 8, !noundef !3
%8 = getelementptr inbounds [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %0, i64 0, i64 %7
%9 = load i64, ptr %2, align 8, !noundef !3
%10 = add i64 %9, 1
store i64 %10, ptr %2, align 8
call void @"_ZN4core3ptr52drop_in_place$LT$v_frame..plane..Plane$LT$u8$GT$$GT$17hab3b24e1a686ba7bE"(ptr noalias noundef align 8 dereferenceable(96) %8) #13
br label %3
11: ; preds = %3
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr74drop_in_place$LT$$u5b$v_frame..plane..Plane$LT$u16$GT$$u3b$$u20$2$u5d$$GT$17hd00844463870215fE"(ptr noalias noundef align 8 dereferenceable(192) %0) unnamed_addr #1 {
%2 = alloca i64, align 8
store i64 0, ptr %2, align 8
br label %3
3: ; preds = %6, %1
%4 = load i64, ptr %2, align 8, !noundef !3
%5 = icmp eq i64 %4, 2
br i1 %5, label %11, label %6
6: ; preds = %3
%7 = load i64, ptr %2, align 8, !noundef !3
%8 = getelementptr inbounds [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %0, i64 0, i64 %7
%9 = load i64, ptr %2, align 8, !noundef !3
%10 = add i64 %9, 1
store i64 %10, ptr %2, align 8
call void @"_ZN4core3ptr53drop_in_place$LT$v_frame..plane..Plane$LT$u16$GT$$GT$17hbea16931fa566ae9E"(ptr noalias noundef align 8 dereferenceable(96) %8) #13
br label %3
11: ; preds = %3
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr74drop_in_place$LT$$u5b$v_frame..plane..Plane$LT$u16$GT$$u3b$$u20$3$u5d$$GT$17h5e1367645d31971aE"(ptr noalias noundef align 8 dereferenceable(288) %0) unnamed_addr #1 {
%2 = alloca i64, align 8
store i64 0, ptr %2, align 8
br label %3
3: ; preds = %6, %1
%4 = load i64, ptr %2, align 8, !noundef !3
%5 = icmp eq i64 %4, 3
br i1 %5, label %11, label %6
6: ; preds = %3
%7 = load i64, ptr %2, align 8, !noundef !3
%8 = getelementptr inbounds [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %0, i64 0, i64 %7
%9 = load i64, ptr %2, align 8, !noundef !3
%10 = add i64 %9, 1
store i64 %10, ptr %2, align 8
call void @"_ZN4core3ptr53drop_in_place$LT$v_frame..plane..Plane$LT$u16$GT$$GT$17hbea16931fa566ae9E"(ptr noalias noundef align 8 dereferenceable(96) %8) #13
br label %3
11: ; preds = %3
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr76drop_in_place$LT$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u8$GT$$GT$$GT$17hb99adee657fc5b66E"(ptr noalias noundef align 8 dereferenceable(8) %0) unnamed_addr #1 {
call void @"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6988be92e453dbf3E"(ptr noalias noundef align 8 dereferenceable(8) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr77drop_in_place$LT$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u16$GT$$GT$$GT$17h72bdb586bad2ecf3E"(ptr noalias noundef align 8 dereferenceable(8) %0) unnamed_addr #1 {
call void @"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hfd2e1c74eb2b083bE"(ptr noalias noundef align 8 dereferenceable(8) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr77drop_in_place$LT$alloc..sync..Weak$LT$v_frame..frame..Frame$LT$u8$GT$$GT$$GT$17h98139521eaf8c464E"(ptr noalias noundef align 8 dereferenceable(8) %0) unnamed_addr #1 {
call void @"_ZN72_$LT$alloc..sync..Weak$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h1e9af18319cf8fe5E"(ptr noalias noundef align 8 dereferenceable(8) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr78drop_in_place$LT$alloc..sync..Weak$LT$v_frame..frame..Frame$LT$u16$GT$$GT$$GT$17h9042a4bed431c757E"(ptr noalias noundef align 8 dereferenceable(8) %0) unnamed_addr #1 {
call void @"_ZN72_$LT$alloc..sync..Weak$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdfcd0a98e664168cE"(ptr noalias noundef align 8 dereferenceable(8) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr78drop_in_place$LT$core..array..Guard$LT$v_frame..plane..Plane$LT$u8$GT$$GT$$GT$17h9e222b7074505075E"(ptr noalias noundef align 8 dereferenceable(24) %0) unnamed_addr #1 {
call void @"_ZN69_$LT$core..array..Guard$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hab0c22f18edc90d8E"(ptr noalias noundef align 8 dereferenceable(24) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr79drop_in_place$LT$core..array..Guard$LT$v_frame..plane..Plane$LT$u16$GT$$GT$$GT$17h7aa25840b894ec0cE"(ptr noalias noundef align 8 dereferenceable(24) %0) unnamed_addr #1 {
call void @"_ZN69_$LT$core..array..Guard$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h66be7b20e47058e1E"(ptr noalias noundef align 8 dereferenceable(24) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr88drop_in_place$LT$$LP$$u5b$v_frame..plane..Plane$LT$u8$GT$$u3b$$u20$2$u5d$$C$bool$RP$$GT$17h4d4cb082c6d6e3b1E"(ptr noalias noundef align 8 dereferenceable(200) %0) unnamed_addr #1 {
call void @"_ZN4core3ptr73drop_in_place$LT$$u5b$v_frame..plane..Plane$LT$u8$GT$$u3b$$u20$2$u5d$$GT$17h3842d141d3de0937E"(ptr noalias noundef align 8 dereferenceable(192) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr89drop_in_place$LT$$LP$$u5b$v_frame..plane..Plane$LT$u16$GT$$u3b$$u20$2$u5d$$C$bool$RP$$GT$17h62094af54ed4a21fE"(ptr noalias noundef align 8 dereferenceable(200) %0) unnamed_addr #1 {
call void @"_ZN4core3ptr74drop_in_place$LT$$u5b$v_frame..plane..Plane$LT$u16$GT$$u3b$$u20$2$u5d$$GT$17hd00844463870215fE"(ptr noalias noundef align 8 dereferenceable(192) %0) #13
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr97drop_in_place$LT$$u5b$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u8$GT$$GT$$u3b$$u20$2$u5d$$GT$17h474028e805c53cddE"(ptr noalias noundef align 8 dereferenceable(16) %0) unnamed_addr #1 {
%2 = alloca i64, align 8
store i64 0, ptr %2, align 8
br label %3
3: ; preds = %6, %1
%4 = load i64, ptr %2, align 8, !noundef !3
%5 = icmp eq i64 %4, 2
br i1 %5, label %11, label %6
6: ; preds = %3
%7 = load i64, ptr %2, align 8, !noundef !3
%8 = getelementptr inbounds [2 x ptr], ptr %0, i64 0, i64 %7
%9 = load i64, ptr %2, align 8, !noundef !3
%10 = add i64 %9, 1
store i64 %10, ptr %2, align 8
call void @"_ZN4core3ptr76drop_in_place$LT$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u8$GT$$GT$$GT$17hb99adee657fc5b66E"(ptr noalias noundef align 8 dereferenceable(8) %8) #13
br label %3
11: ; preds = %3
ret void
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN4core3ptr98drop_in_place$LT$$u5b$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u16$GT$$GT$$u3b$$u20$2$u5d$$GT$17h4e24ab565cc2282aE"(ptr noalias noundef align 8 dereferenceable(16) %0) unnamed_addr #1 {
%2 = alloca i64, align 8
store i64 0, ptr %2, align 8
br label %3
3: ; preds = %6, %1
%4 = load i64, ptr %2, align 8, !noundef !3
%5 = icmp eq i64 %4, 2
br i1 %5, label %11, label %6
6: ; preds = %3
%7 = load i64, ptr %2, align 8, !noundef !3
%8 = getelementptr inbounds [2 x ptr], ptr %0, i64 0, i64 %7
%9 = load i64, ptr %2, align 8, !noundef !3
%10 = add i64 %9, 1
store i64 %10, ptr %2, align 8
call void @"_ZN4core3ptr77drop_in_place$LT$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u16$GT$$GT$$GT$17h72bdb586bad2ecf3E"(ptr noalias noundef align 8 dereferenceable(8) %8) #13
br label %3
11: ; preds = %3
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef i64 @"_ZN4core4iter5range101_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..Range$LT$A$GT$$GT$24__iterator_get_unchecked17ha7f06c7da88c61d7E"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %1) unnamed_addr #0 {
%3 = call noundef i64 @"_ZN4core5clone5impls54_$LT$impl$u20$core..clone..Clone$u20$for$u20$usize$GT$5clone17h64a647c99b5caf8fE"(ptr noalias noundef readonly align 8 dereferenceable(8) %0) #13
%4 = call noundef i64 @"_ZN49_$LT$usize$u20$as$u20$core..iter..range..Step$GT$17forward_unchecked17h70ee56afff9bf27fE"(i64 noundef %3, i64 noundef %1) #13
ret i64 %4
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { i64, i64 } @"_ZN4core4iter5range101_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..Range$LT$A$GT$$GT$4next17h89a7c4814ec424d8E"(ptr noalias noundef align 8 dereferenceable(16) %0) unnamed_addr #0 {
%2 = call { i64, i64 } @"_ZN89_$LT$core..ops..range..Range$LT$T$GT$$u20$as$u20$core..iter..range..RangeIteratorImpl$GT$9spec_next17hc36284fea22aa2e1E"(ptr noalias noundef align 8 dereferenceable(16) %0) #13
%3 = extractvalue { i64, i64 } %2, 0
%4 = extractvalue { i64, i64 } %2, 1
%5 = insertvalue { i64, i64 } poison, i64 %3, 0
%6 = insertvalue { i64, i64 } %5, i64 %4, 1
ret { i64, i64 } %6
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN4core4iter5range101_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..Range$LT$A$GT$$GT$9size_hint17h927ddd1aafe48816E"(ptr noalias nocapture noundef sret({ i64, { i64, i64 } }) align 8 dereferenceable(24) %0, ptr noalias noundef readonly align 8 dereferenceable(16) %1) unnamed_addr #0 {
%3 = alloca { i64, i64 }, align 8
%4 = alloca { i64, i64 }, align 8
%5 = alloca i64, align 8
%6 = getelementptr inbounds { i64, i64 }, ptr %1, i32 0, i32 1
%7 = call noundef zeroext i1 @"_ZN4core3cmp5impls57_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$usize$GT$2lt17h85a37094cf41345fE"(ptr noalias noundef readonly align 8 dereferenceable(8) %1, ptr noalias noundef readonly align 8 dereferenceable(8) %6) #13
br i1 %7, label %17, label %8
8: ; preds = %2
call void @llvm.lifetime.start.p0(i64 16, ptr %3)
%9 = getelementptr inbounds { i64, i64 }, ptr %3, i32 0, i32 1
store i64 0, ptr %9, align 8
store i64 1, ptr %3, align 8
store i64 0, ptr %0, align 8
%10 = getelementptr inbounds { i64, i64 }, ptr %3, i32 0, i32 0
%11 = load i64, ptr %10, align 8, !range !7, !noundef !3
%12 = getelementptr inbounds { i64, i64 }, ptr %3, i32 0, i32 1
%13 = load i64, ptr %12, align 8
%14 = getelementptr inbounds { i64, { i64, i64 } }, ptr %0, i32 0, i32 1
%15 = getelementptr inbounds { i64, i64 }, ptr %14, i32 0, i32 0
store i64 %11, ptr %15, align 8
%16 = getelementptr inbounds { i64, i64 }, ptr %14, i32 0, i32 1
store i64 %13, ptr %16, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
br label %25
17: ; preds = %2
%18 = getelementptr inbounds { i64, i64 }, ptr %1, i32 0, i32 1
%19 = call { i64, i64 } @"_ZN49_$LT$usize$u20$as$u20$core..iter..range..Step$GT$13steps_between17h124743e14a81458dE"(ptr noalias noundef readonly align 8 dereferenceable(8) %1, ptr noalias noundef readonly align 8 dereferenceable(8) %18) #13
%20 = extractvalue { i64, i64 } %19, 0
%21 = extractvalue { i64, i64 } %19, 1
call void @llvm.lifetime.start.p0(i64 8, ptr %5)
call void @llvm.lifetime.start.p0(i64 16, ptr %4)
%22 = getelementptr inbounds { i64, i64 }, ptr %4, i32 0, i32 0
store i64 %20, ptr %22, align 8
%23 = getelementptr inbounds { i64, i64 }, ptr %4, i32 0, i32 1
store i64 %21, ptr %23, align 8
%24 = load i64, ptr %4, align 8, !range !7, !noundef !3
switch i64 %24, label %26 [
i64 0, label %27
i64 1, label %28
]
25: ; preds = %31, %8
ret void
26: ; preds = %17
unreachable
27: ; preds = %17
store i64 -1, ptr %5, align 8
br label %31
28: ; preds = %17
%29 = getelementptr inbounds { i64, i64 }, ptr %4, i32 0, i32 1
%30 = load i64, ptr %29, align 8, !noundef !3
store i64 %30, ptr %5, align 8
br label %31
31: ; preds = %28, %27
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%32 = load i64, ptr %5, align 8, !noundef !3
store i64 %32, ptr %0, align 8
%33 = getelementptr inbounds { i64, { i64, i64 } }, ptr %0, i32 0, i32 1
%34 = getelementptr inbounds { i64, i64 }, ptr %33, i32 0, i32 0
store i64 %20, ptr %34, align 8
%35 = getelementptr inbounds { i64, i64 }, ptr %33, i32 0, i32 1
store i64 %21, ptr %35, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %5)
br label %25
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @_ZN4core4iter6traits8iterator8Iterator3map17h6a2a7b821592ea1cE(ptr noundef nonnull %0, ptr noundef %1) unnamed_addr #0 {
%3 = alloca { ptr, ptr }, align 8
%4 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 0
store ptr %0, ptr %4, align 8
%5 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
store ptr %1, ptr %5, align 8
%6 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 0
%7 = load ptr, ptr %6, align 8, !nonnull !3, !noundef !3
%8 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
%9 = load ptr, ptr %8, align 8, !noundef !3
%10 = insertvalue { ptr, ptr } poison, ptr %7, 0
%11 = insertvalue { ptr, ptr } %10, ptr %9, 1
ret { ptr, ptr } %11
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @_ZN4core4iter6traits8iterator8Iterator3map17h6f3590569b461620E(ptr noundef nonnull %0, ptr noundef %1) unnamed_addr #0 {
%3 = alloca { ptr, ptr }, align 8
%4 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 0
store ptr %0, ptr %4, align 8
%5 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
store ptr %1, ptr %5, align 8
%6 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 0
%7 = load ptr, ptr %6, align 8, !nonnull !3, !noundef !3
%8 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
%9 = load ptr, ptr %8, align 8, !noundef !3
%10 = insertvalue { ptr, ptr } poison, ptr %7, 0
%11 = insertvalue { ptr, ptr } %10, ptr %9, 1
ret { ptr, ptr } %11
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3map17h7d75cd51035bb9ceE(ptr noalias nocapture noundef sret({ { ptr, ptr }, ptr }) align 8 dereferenceable(24) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noalias noundef readonly align 8 dereferenceable(16) %3) unnamed_addr #0 {
%5 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 0
store ptr %1, ptr %5, align 8
%6 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 1
store ptr %2, ptr %6, align 8
%7 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %0, i32 0, i32 1
store ptr %3, ptr %7, align 8
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @_ZN4core4iter6traits8iterator8Iterator3map17ha55d39f73635d6d1E(ptr noundef nonnull %0, ptr noundef %1) unnamed_addr #0 {
%3 = alloca { ptr, ptr }, align 8
%4 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 0
store ptr %0, ptr %4, align 8
%5 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
store ptr %1, ptr %5, align 8
%6 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 0
%7 = load ptr, ptr %6, align 8, !nonnull !3, !noundef !3
%8 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
%9 = load ptr, ptr %8, align 8, !noundef !3
%10 = insertvalue { ptr, ptr } poison, ptr %7, 0
%11 = insertvalue { ptr, ptr } %10, ptr %9, 1
ret { ptr, ptr } %11
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3map17hd74f1a01dcb9aa66E(ptr noalias nocapture noundef sret({ { ptr, ptr }, ptr }) align 8 dereferenceable(24) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noalias noundef readonly align 8 dereferenceable(16) %3) unnamed_addr #0 {
%5 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 0
store ptr %1, ptr %5, align 8
%6 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 1
store ptr %2, ptr %6, align 8
%7 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %0, i32 0, i32 1
store ptr %3, ptr %7, align 8
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { ptr, ptr } @_ZN4core4iter6traits8iterator8Iterator3map17hf4bb88043900098eE(ptr noundef nonnull %0, ptr noundef %1) unnamed_addr #0 {
%3 = alloca { ptr, ptr }, align 8
%4 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 0
store ptr %0, ptr %4, align 8
%5 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
store ptr %1, ptr %5, align 8
%6 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 0
%7 = load ptr, ptr %6, align 8, !nonnull !3, !noundef !3
%8 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 1
%9 = load ptr, ptr %8, align 8, !noundef !3
%10 = insertvalue { ptr, ptr } poison, ptr %7, 0
%11 = insertvalue { ptr, ptr } %10, ptr %9, 1
ret { ptr, ptr } %11
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17h0ea67a1b3cc51db6E(ptr noalias nocapture noundef sret({ { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(328) %0, ptr noalias nocapture noundef align 8 dereferenceable(136) %1, ptr noalias nocapture noundef align 8 dereferenceable(168) %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca i8, align 1
%6 = alloca { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, align 8
%7 = alloca { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 136, ptr %7)
store i8 1, ptr %5, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %1, i64 136, i1 false)
call void @llvm.lifetime.start.p0(i64 168, ptr %6)
call void @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h7210acfc52a0166dE"(ptr noalias nocapture noundef sret({ { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(168) %6, ptr noalias nocapture noundef align 8 dereferenceable(168) %2) #13
br label %8
8: ; preds = %3
store i8 0, ptr %5, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h65ade934cf0c9269E"(ptr noalias nocapture noundef sret({ { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(328) %0, ptr noalias nocapture noundef align 8 dereferenceable(136) %7, ptr noalias nocapture noundef align 8 dereferenceable(168) %6) #13
br label %9
9: ; preds = %8
call void @llvm.lifetime.end.p0(i64 168, ptr %6)
call void @llvm.lifetime.end.p0(i64 136, ptr %7)
ret void
10: ; No predecessors!
%11 = load i8, ptr %5, align 1, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
br i1 %12, label %19, label %13
13: ; preds = %19, %10
%14 = load ptr, ptr %4, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
19: ; preds = %10
br label %13
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17h134e26f25db6adf1E(ptr noalias nocapture noundef sret({ { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(328) %0, ptr noalias nocapture noundef align 8 dereferenceable(136) %1, ptr noalias nocapture noundef align 8 dereferenceable(168) %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca i8, align 1
%6 = alloca { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, align 8
%7 = alloca { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 136, ptr %7)
store i8 1, ptr %5, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %1, i64 136, i1 false)
call void @llvm.lifetime.start.p0(i64 168, ptr %6)
call void @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h7210acfc52a0166dE"(ptr noalias nocapture noundef sret({ { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(168) %6, ptr noalias nocapture noundef align 8 dereferenceable(168) %2) #13
br label %8
8: ; preds = %3
store i8 0, ptr %5, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h915d075d457173b9E"(ptr noalias nocapture noundef sret({ { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, { { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(328) %0, ptr noalias nocapture noundef align 8 dereferenceable(136) %7, ptr noalias nocapture noundef align 8 dereferenceable(168) %6) #13
br label %9
9: ; preds = %8
call void @llvm.lifetime.end.p0(i64 168, ptr %6)
call void @llvm.lifetime.end.p0(i64 136, ptr %7)
ret void
10: ; No predecessors!
%11 = load i8, ptr %5, align 1, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
br i1 %12, label %19, label %13
13: ; preds = %19, %10
%14 = load ptr, ptr %4, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
19: ; preds = %10
br label %13
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17h15323907ec4dbc22E(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(136) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %1, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca i8, align 1
%6 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
%7 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 56, ptr %7)
store i8 1, ptr %5, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %1, i64 56, i1 false)
call void @llvm.lifetime.start.p0(i64 56, ptr %6)
call void @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h31b13cd813f92f57E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %6, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) #13
br label %8
8: ; preds = %3
store i8 0, ptr %5, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h098024a96fa40288E"(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(136) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %7, ptr noalias nocapture noundef align 8 dereferenceable(56) %6) #13
br label %9
9: ; preds = %8
call void @llvm.lifetime.end.p0(i64 56, ptr %6)
call void @llvm.lifetime.end.p0(i64 56, ptr %7)
ret void
10: ; No predecessors!
%11 = load i8, ptr %5, align 1, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
br i1 %12, label %19, label %13
13: ; preds = %19, %10
%14 = load ptr, ptr %4, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
19: ; preds = %10
br label %13
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17h19386ade86e6e15aE(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(136) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %1, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca i8, align 1
%6 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
%7 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 56, ptr %7)
store i8 1, ptr %5, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %1, i64 56, i1 false)
call void @llvm.lifetime.start.p0(i64 56, ptr %6)
call void @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h2a94cdf82042b31fE"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %6, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) #13
br label %8
8: ; preds = %3
store i8 0, ptr %5, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17hae3d5b5200caec4dE"(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(136) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %7, ptr noalias nocapture noundef align 8 dereferenceable(56) %6) #13
br label %9
9: ; preds = %8
call void @llvm.lifetime.end.p0(i64 56, ptr %6)
call void @llvm.lifetime.end.p0(i64 56, ptr %7)
ret void
10: ; No predecessors!
%11 = load i8, ptr %5, align 1, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
br i1 %12, label %19, label %13
13: ; preds = %19, %10
%14 = load ptr, ptr %4, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
19: ; preds = %10
br label %13
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17h1d6113517496b270E(ptr noalias nocapture noundef sret({ { { ptr, { {}, ptr, i64, i64 } }, i64 }, { i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(80) %0, i64 noundef %1, i64 noundef %2, ptr noalias nocapture noundef align 8 dereferenceable(40) %3) unnamed_addr #0 personality ptr @rust_eh_personality {
%5 = alloca { ptr, i32 }, align 8
%6 = alloca i8, align 1
%7 = alloca { { ptr, { {}, ptr, i64, i64 } }, i64 }, align 8
store i8 1, ptr %6, align 1
call void @llvm.lifetime.start.p0(i64 40, ptr %7)
call void @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h65dc47272f2e1717E"(ptr noalias nocapture noundef sret({ { ptr, { {}, ptr, i64, i64 } }, i64 }) align 8 dereferenceable(40) %7, ptr noalias nocapture noundef align 8 dereferenceable(40) %3) #13
br label %8
8: ; preds = %4
store i8 0, ptr %6, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17hcbd432488ca10937E"(ptr noalias nocapture noundef sret({ { { ptr, { {}, ptr, i64, i64 } }, i64 }, { i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(80) %0, i64 noundef %1, i64 noundef %2, ptr noalias nocapture noundef align 8 dereferenceable(40) %7) #13
br label %9
9: ; preds = %8
call void @llvm.lifetime.end.p0(i64 40, ptr %7)
ret void
10: ; No predecessors!
%11 = load i8, ptr %6, align 1, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
br i1 %12, label %19, label %13
13: ; preds = %19, %10
%14 = load ptr, ptr %5, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %5, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
19: ; preds = %10
br label %13
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17h3001232a16f93616E(ptr noalias nocapture noundef sret({ { { ptr, i64 }, i64, i64 }, { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(192) %0, ptr noalias nocapture noundef align 8 dereferenceable(32) %1, ptr noalias nocapture noundef align 8 dereferenceable(136) %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca i8, align 1
%6 = alloca { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, align 8
%7 = alloca { { ptr, i64 }, i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 32, ptr %7)
store i8 1, ptr %5, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %1, i64 32, i1 false)
call void @llvm.lifetime.start.p0(i64 136, ptr %6)
call void @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17ha215d3360f337e21E"(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(136) %6, ptr noalias nocapture noundef align 8 dereferenceable(136) %2) #13
br label %8
8: ; preds = %3
store i8 0, ptr %5, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h80876d3b7668dc54E"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, i64, i64 }, { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(192) %0, ptr noalias nocapture noundef align 8 dereferenceable(32) %7, ptr noalias nocapture noundef align 8 dereferenceable(136) %6) #13
br label %9
9: ; preds = %8
call void @llvm.lifetime.end.p0(i64 136, ptr %6)
call void @llvm.lifetime.end.p0(i64 32, ptr %7)
ret void
10: ; No predecessors!
%11 = load i8, ptr %5, align 1, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
br i1 %12, label %19, label %13
13: ; preds = %19, %10
%14 = load ptr, ptr %4, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
19: ; preds = %10
br label %13
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17h34313653e6237fc9E(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(136) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %1, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca i8, align 1
%6 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
%7 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 56, ptr %7)
store i8 1, ptr %5, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %1, i64 56, i1 false)
call void @llvm.lifetime.start.p0(i64 56, ptr %6)
call void @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17hbb48b20d2afda567E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %6, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) #13
br label %8
8: ; preds = %3
store i8 0, ptr %5, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h1b3e1d1112a2dd8fE"(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(136) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %7, ptr noalias nocapture noundef align 8 dereferenceable(56) %6) #13
br label %9
9: ; preds = %8
call void @llvm.lifetime.end.p0(i64 56, ptr %6)
call void @llvm.lifetime.end.p0(i64 56, ptr %7)
ret void
10: ; No predecessors!
%11 = load i8, ptr %5, align 1, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
br i1 %12, label %19, label %13
13: ; preds = %19, %10
%14 = load ptr, ptr %4, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
19: ; preds = %10
br label %13
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17h354b34f034ea7b43E(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4) unnamed_addr #0 personality ptr @rust_eh_personality {
%6 = alloca { ptr, i32 }, align 8
%7 = alloca i8, align 1
store i8 1, ptr %7, align 1
%8 = call { ptr, ptr } @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h3f4fea59ea62b32cE"(ptr noundef nonnull %3, ptr noundef %4) #13
%9 = extractvalue { ptr, ptr } %8, 0
%10 = extractvalue { ptr, ptr } %8, 1
br label %11
11: ; preds = %5
store i8 0, ptr %7, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17hcbb2b80cf4cbcc8aE"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %9, ptr noundef %10) #13
br label %12
12: ; preds = %11
ret void
13: ; No predecessors!
%14 = load i8, ptr %7, align 1, !range !9, !noundef !3
%15 = trunc i8 %14 to i1
br i1 %15, label %22, label %16
16: ; preds = %22, %13
%17 = load ptr, ptr %6, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i32 }, ptr %6, i32 0, i32 1
%19 = load i32, ptr %18, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%20 = insertvalue { ptr, i32 } poison, ptr %17, 0
%21 = insertvalue { ptr, i32 } %20, i32 %19, 1
resume { ptr, i32 } %21
22: ; preds = %13
br label %16
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17h36c18d25b5791d7eE(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noalias noundef align 4 dereferenceable(32) %3) unnamed_addr #0 personality ptr @rust_eh_personality {
%5 = alloca { ptr, i32 }, align 8
%6 = alloca i8, align 1
store i8 1, ptr %6, align 1
%7 = call { ptr, ptr } @"_ZN4core5array106_$LT$impl$u20$core..iter..traits..collect..IntoIterator$u20$for$u20$$RF$mut$u20$$u5b$T$u3b$$u20$N$u5d$$GT$9into_iter17h401169c0433af59eE"(ptr noalias noundef align 4 dereferenceable(32) %3) #13
%8 = extractvalue { ptr, ptr } %7, 0
%9 = extractvalue { ptr, ptr } %7, 1
br label %10
10: ; preds = %4
store i8 0, ptr %6, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h048a7bb531dfab41E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %8, ptr noundef %9) #13
br label %11
11: ; preds = %10
ret void
12: ; No predecessors!
%13 = load i8, ptr %6, align 1, !range !9, !noundef !3
%14 = trunc i8 %13 to i1
br i1 %14, label %21, label %15
15: ; preds = %21, %12
%16 = load ptr, ptr %5, align 8, !noundef !3
%17 = getelementptr inbounds { ptr, i32 }, ptr %5, i32 0, i32 1
%18 = load i32, ptr %17, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
%19 = insertvalue { ptr, i32 } poison, ptr %16, 0
%20 = insertvalue { ptr, i32 } %19, i32 %18, 1
resume { ptr, i32 } %20
21: ; preds = %12
br label %15
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17h45f6d43718e670f7E(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(96) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %1, ptr noalias noundef nonnull readonly align 2 %2, i64 noundef %3) unnamed_addr #0 personality ptr @rust_eh_personality {
%5 = alloca { ptr, i32 }, align 8
%6 = alloca i8, align 1
%7 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 56, ptr %7)
store i8 1, ptr %6, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %1, i64 56, i1 false)
%8 = call { ptr, ptr } @"_ZN4core5slice4iter87_$LT$impl$u20$core..iter..traits..collect..IntoIterator$u20$for$u20$$RF$$u5b$T$u5d$$GT$9into_iter17h329b2953ef1224c2E"(ptr noalias noundef nonnull readonly align 2 %2, i64 noundef %3) #13
%9 = extractvalue { ptr, ptr } %8, 0
%10 = extractvalue { ptr, ptr } %8, 1
br label %11
11: ; preds = %4
store i8 0, ptr %6, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h46e59b32913142c7E"(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(96) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %7, ptr noundef nonnull %9, ptr noundef %10) #13
br label %12
12: ; preds = %11
call void @llvm.lifetime.end.p0(i64 56, ptr %7)
ret void
13: ; No predecessors!
%14 = load i8, ptr %6, align 1, !range !9, !noundef !3
%15 = trunc i8 %14 to i1
br i1 %15, label %22, label %16
16: ; preds = %22, %13
%17 = load ptr, ptr %5, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i32 }, ptr %5, i32 0, i32 1
%19 = load i32, ptr %18, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
%20 = insertvalue { ptr, i32 } poison, ptr %17, 0
%21 = insertvalue { ptr, i32 } %20, i32 %19, 1
resume { ptr, i32 } %21
22: ; preds = %13
br label %16
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17h61df3ee5c6285e89E(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(136) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %1, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca i8, align 1
%6 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
%7 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 56, ptr %7)
store i8 1, ptr %5, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %1, i64 56, i1 false)
call void @llvm.lifetime.start.p0(i64 56, ptr %6)
call void @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h40646bd6a0fb7c89E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %6, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) #13
br label %8
8: ; preds = %3
store i8 0, ptr %5, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17hc321160b6b3c2517E"(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(136) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %7, ptr noalias nocapture noundef align 8 dereferenceable(56) %6) #13
br label %9
9: ; preds = %8
call void @llvm.lifetime.end.p0(i64 56, ptr %6)
call void @llvm.lifetime.end.p0(i64 56, ptr %7)
ret void
10: ; No predecessors!
%11 = load i8, ptr %5, align 1, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
br i1 %12, label %19, label %13
13: ; preds = %19, %10
%14 = load ptr, ptr %4, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
19: ; preds = %10
br label %13
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17h6bb75328c18b9330E(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(136) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %1, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca i8, align 1
%6 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
%7 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 56, ptr %7)
store i8 1, ptr %5, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %1, i64 56, i1 false)
call void @llvm.lifetime.start.p0(i64 56, ptr %6)
call void @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h31b13cd813f92f57E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %6, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) #13
br label %8
8: ; preds = %3
store i8 0, ptr %5, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h3c6ce8faf00376f3E"(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(136) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %7, ptr noalias nocapture noundef align 8 dereferenceable(56) %6) #13
br label %9
9: ; preds = %8
call void @llvm.lifetime.end.p0(i64 56, ptr %6)
call void @llvm.lifetime.end.p0(i64 56, ptr %7)
ret void
10: ; No predecessors!
%11 = load i8, ptr %5, align 1, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
br i1 %12, label %19, label %13
13: ; preds = %19, %10
%14 = load ptr, ptr %4, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
19: ; preds = %10
br label %13
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17h6c2c5a88a0887325E(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4) unnamed_addr #0 personality ptr @rust_eh_personality {
%6 = alloca { ptr, i32 }, align 8
%7 = alloca i8, align 1
store i8 1, ptr %7, align 1
%8 = call { ptr, ptr } @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17hb137d7188e0b4201E"(ptr noundef nonnull %3, ptr noundef %4) #13
%9 = extractvalue { ptr, ptr } %8, 0
%10 = extractvalue { ptr, ptr } %8, 1
br label %11
11: ; preds = %5
store i8 0, ptr %7, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h9059a396c5f8b003E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %9, ptr noundef %10) #13
br label %12
12: ; preds = %11
ret void
13: ; No predecessors!
%14 = load i8, ptr %7, align 1, !range !9, !noundef !3
%15 = trunc i8 %14 to i1
br i1 %15, label %22, label %16
16: ; preds = %22, %13
%17 = load ptr, ptr %6, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i32 }, ptr %6, i32 0, i32 1
%19 = load i32, ptr %18, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%20 = insertvalue { ptr, i32 } poison, ptr %17, 0
%21 = insertvalue { ptr, i32 } %20, i32 %19, 1
resume { ptr, i32 } %21
22: ; preds = %13
br label %16
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17h84149c94b63cc1b0E(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4) unnamed_addr #0 personality ptr @rust_eh_personality {
%6 = alloca { ptr, i32 }, align 8
%7 = alloca i8, align 1
store i8 1, ptr %7, align 1
%8 = call { ptr, ptr } @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h3f4fea59ea62b32cE"(ptr noundef nonnull %3, ptr noundef %4) #13
%9 = extractvalue { ptr, ptr } %8, 0
%10 = extractvalue { ptr, ptr } %8, 1
br label %11
11: ; preds = %5
store i8 0, ptr %7, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h8e61e5e136b9bdfaE"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %9, ptr noundef %10) #13
br label %12
12: ; preds = %11
ret void
13: ; No predecessors!
%14 = load i8, ptr %7, align 1, !range !9, !noundef !3
%15 = trunc i8 %14 to i1
br i1 %15, label %22, label %16
16: ; preds = %22, %13
%17 = load ptr, ptr %6, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i32 }, ptr %6, i32 0, i32 1
%19 = load i32, ptr %18, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%20 = insertvalue { ptr, i32 } poison, ptr %17, 0
%21 = insertvalue { ptr, i32 } %20, i32 %19, 1
resume { ptr, i32 } %21
22: ; preds = %13
br label %16
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17h85f99a6159093479E(ptr noalias nocapture noundef sret({ { { ptr, { {}, ptr, i64, i64 } }, i64 }, { i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(80) %0, i64 noundef %1, i64 noundef %2, ptr noalias nocapture noundef align 8 dereferenceable(40) %3) unnamed_addr #0 personality ptr @rust_eh_personality {
%5 = alloca { ptr, i32 }, align 8
%6 = alloca i8, align 1
%7 = alloca { { ptr, { {}, ptr, i64, i64 } }, i64 }, align 8
store i8 1, ptr %6, align 1
call void @llvm.lifetime.start.p0(i64 40, ptr %7)
call void @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h3d06f09975deb175E"(ptr noalias nocapture noundef sret({ { ptr, { {}, ptr, i64, i64 } }, i64 }) align 8 dereferenceable(40) %7, ptr noalias nocapture noundef align 8 dereferenceable(40) %3) #13
br label %8
8: ; preds = %4
store i8 0, ptr %6, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h54ad4526d0aaf674E"(ptr noalias nocapture noundef sret({ { { ptr, { {}, ptr, i64, i64 } }, i64 }, { i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(80) %0, i64 noundef %1, i64 noundef %2, ptr noalias nocapture noundef align 8 dereferenceable(40) %7) #13
br label %9
9: ; preds = %8
call void @llvm.lifetime.end.p0(i64 40, ptr %7)
ret void
10: ; No predecessors!
%11 = load i8, ptr %6, align 1, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
br i1 %12, label %19, label %13
13: ; preds = %19, %10
%14 = load ptr, ptr %5, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %5, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
19: ; preds = %10
br label %13
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17hb0a290c83c95c724E(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4) unnamed_addr #0 personality ptr @rust_eh_personality {
%6 = alloca { ptr, i32 }, align 8
%7 = alloca i8, align 1
store i8 1, ptr %7, align 1
%8 = call { ptr, ptr } @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h3f4fea59ea62b32cE"(ptr noundef nonnull %3, ptr noundef %4) #13
%9 = extractvalue { ptr, ptr } %8, 0
%10 = extractvalue { ptr, ptr } %8, 1
br label %11
11: ; preds = %5
store i8 0, ptr %7, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17hc74541fef6d0bf7fE"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %9, ptr noundef %10) #13
br label %12
12: ; preds = %11
ret void
13: ; No predecessors!
%14 = load i8, ptr %7, align 1, !range !9, !noundef !3
%15 = trunc i8 %14 to i1
br i1 %15, label %22, label %16
16: ; preds = %22, %13
%17 = load ptr, ptr %6, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i32 }, ptr %6, i32 0, i32 1
%19 = load i32, ptr %18, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%20 = insertvalue { ptr, i32 } poison, ptr %17, 0
%21 = insertvalue { ptr, i32 } %20, i32 %19, 1
resume { ptr, i32 } %21
22: ; preds = %13
br label %16
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17hc024e023f205b6b6E(ptr noalias nocapture noundef sret({ { { ptr, i64 }, i64, i64 }, { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(192) %0, ptr noalias nocapture noundef align 8 dereferenceable(32) %1, ptr noalias nocapture noundef align 8 dereferenceable(136) %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca i8, align 1
%6 = alloca { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, align 8
%7 = alloca { { ptr, i64 }, i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 32, ptr %7)
store i8 1, ptr %5, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %1, i64 32, i1 false)
call void @llvm.lifetime.start.p0(i64 136, ptr %6)
call void @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17ha215d3360f337e21E"(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(136) %6, ptr noalias nocapture noundef align 8 dereferenceable(136) %2) #13
br label %8
8: ; preds = %3
store i8 0, ptr %5, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17hdc687a8a7c59b20fE"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, i64, i64 }, { { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(192) %0, ptr noalias nocapture noundef align 8 dereferenceable(32) %7, ptr noalias nocapture noundef align 8 dereferenceable(136) %6) #13
br label %9
9: ; preds = %8
call void @llvm.lifetime.end.p0(i64 136, ptr %6)
call void @llvm.lifetime.end.p0(i64 32, ptr %7)
ret void
10: ; No predecessors!
%11 = load i8, ptr %5, align 1, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
br i1 %12, label %19, label %13
13: ; preds = %19, %10
%14 = load ptr, ptr %4, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
19: ; preds = %10
br label %13
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17hc6694d7732032eaaE(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4) unnamed_addr #0 personality ptr @rust_eh_personality {
%6 = alloca { ptr, i32 }, align 8
%7 = alloca i8, align 1
store i8 1, ptr %7, align 1
%8 = call { ptr, ptr } @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17hb137d7188e0b4201E"(ptr noundef nonnull %3, ptr noundef %4) #13
%9 = extractvalue { ptr, ptr } %8, 0
%10 = extractvalue { ptr, ptr } %8, 1
br label %11
11: ; preds = %5
store i8 0, ptr %7, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17ha63c22b667852974E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %9, ptr noundef %10) #13
br label %12
12: ; preds = %11
ret void
13: ; No predecessors!
%14 = load i8, ptr %7, align 1, !range !9, !noundef !3
%15 = trunc i8 %14 to i1
br i1 %15, label %22, label %16
16: ; preds = %22, %13
%17 = load ptr, ptr %6, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i32 }, ptr %6, i32 0, i32 1
%19 = load i32, ptr %18, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%20 = insertvalue { ptr, i32 } poison, ptr %17, 0
%21 = insertvalue { ptr, i32 } %20, i32 %19, 1
resume { ptr, i32 } %21
22: ; preds = %13
br label %16
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17hcb99b86321fe5821E(ptr noalias nocapture noundef sret({ { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }) align 8 dereferenceable(72) %0, ptr noalias nocapture noundef align 8 dereferenceable(24) %1, ptr noalias nocapture noundef align 8 dereferenceable(24) %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca i8, align 1
%6 = alloca { { ptr, i64 }, i64 }, align 8
%7 = alloca { { ptr, i64 }, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 24, ptr %7)
store i8 1, ptr %5, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %1, i64 24, i1 false)
call void @llvm.lifetime.start.p0(i64 24, ptr %6)
call void @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17ha214cbbbee99d309E"(ptr noalias nocapture noundef sret({ { ptr, i64 }, i64 }) align 8 dereferenceable(24) %6, ptr noalias nocapture noundef align 8 dereferenceable(24) %2) #13
br label %8
8: ; preds = %3
store i8 0, ptr %5, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17hde89b6e6e357dbe1E"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }) align 8 dereferenceable(72) %0, ptr noalias nocapture noundef align 8 dereferenceable(24) %7, ptr noalias nocapture noundef align 8 dereferenceable(24) %6) #13
br label %9
9: ; preds = %8
call void @llvm.lifetime.end.p0(i64 24, ptr %6)
call void @llvm.lifetime.end.p0(i64 24, ptr %7)
ret void
10: ; No predecessors!
%11 = load i8, ptr %5, align 1, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
br i1 %12, label %19, label %13
13: ; preds = %19, %10
%14 = load ptr, ptr %4, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
19: ; preds = %10
br label %13
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17hd14efc289bd69e44E(ptr noalias nocapture noundef sret({ { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(168) %0, ptr noalias nocapture noundef align 8 dereferenceable(72) %1, ptr noalias nocapture noundef align 8 dereferenceable(72) %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca i8, align 1
%6 = alloca { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, align 8
%7 = alloca { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 72, ptr %7)
store i8 1, ptr %5, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %1, i64 72, i1 false)
call void @llvm.lifetime.start.p0(i64 72, ptr %6)
call void @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17hcb65c3d2401713e9E"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }) align 8 dereferenceable(72) %6, ptr noalias nocapture noundef align 8 dereferenceable(72) %2) #13
br label %8
8: ; preds = %3
store i8 0, ptr %5, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h7bf72f7f01b1f778E"(ptr noalias nocapture noundef sret({ { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, { { { ptr, i64 }, i64 }, { { ptr, i64 }, i64 }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(168) %0, ptr noalias nocapture noundef align 8 dereferenceable(72) %7, ptr noalias nocapture noundef align 8 dereferenceable(72) %6) #13
br label %9
9: ; preds = %8
call void @llvm.lifetime.end.p0(i64 72, ptr %6)
call void @llvm.lifetime.end.p0(i64 72, ptr %7)
ret void
10: ; No predecessors!
%11 = load i8, ptr %5, align 1, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
br i1 %12, label %19, label %13
13: ; preds = %19, %10
%14 = load ptr, ptr %4, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
19: ; preds = %10
br label %13
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17hd5643d1b928a504fE(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4) unnamed_addr #0 personality ptr @rust_eh_personality {
%6 = alloca { ptr, i32 }, align 8
%7 = alloca i8, align 1
store i8 1, ptr %7, align 1
%8 = call { ptr, ptr } @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17hb137d7188e0b4201E"(ptr noundef nonnull %3, ptr noundef %4) #13
%9 = extractvalue { ptr, ptr } %8, 0
%10 = extractvalue { ptr, ptr } %8, 1
br label %11
11: ; preds = %5
store i8 0, ptr %7, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h1bb799d7662fc2aaE"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %9, ptr noundef %10) #13
br label %12
12: ; preds = %11
ret void
13: ; No predecessors!
%14 = load i8, ptr %7, align 1, !range !9, !noundef !3
%15 = trunc i8 %14 to i1
br i1 %15, label %22, label %16
16: ; preds = %22, %13
%17 = load ptr, ptr %6, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i32 }, ptr %6, i32 0, i32 1
%19 = load i32, ptr %18, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%20 = insertvalue { ptr, i32 } poison, ptr %17, 0
%21 = insertvalue { ptr, i32 } %20, i32 %19, 1
resume { ptr, i32 } %21
22: ; preds = %13
br label %16
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17he1d8c83cf24cd7a0E(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(136) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %1, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca i8, align 1
%6 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
%7 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 56, ptr %7)
store i8 1, ptr %5, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %1, i64 56, i1 false)
call void @llvm.lifetime.start.p0(i64 56, ptr %6)
call void @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h31b13cd813f92f57E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %6, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) #13
br label %8
8: ; preds = %3
store i8 0, ptr %5, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h6ea1d5c7ad58cee1E"(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(136) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %7, ptr noalias nocapture noundef align 8 dereferenceable(56) %6) #13
br label %9
9: ; preds = %8
call void @llvm.lifetime.end.p0(i64 56, ptr %6)
call void @llvm.lifetime.end.p0(i64 56, ptr %7)
ret void
10: ; No predecessors!
%11 = load i8, ptr %5, align 1, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
br i1 %12, label %19, label %13
13: ; preds = %19, %10
%14 = load ptr, ptr %4, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
19: ; preds = %10
br label %13
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17he28f822bb675ea48E(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(96) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %1, ptr noalias noundef nonnull readonly align 1 %2, i64 noundef %3) unnamed_addr #0 personality ptr @rust_eh_personality {
%5 = alloca { ptr, i32 }, align 8
%6 = alloca i8, align 1
%7 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 56, ptr %7)
store i8 1, ptr %6, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %1, i64 56, i1 false)
%8 = call { ptr, ptr } @"_ZN4core5slice4iter87_$LT$impl$u20$core..iter..traits..collect..IntoIterator$u20$for$u20$$RF$$u5b$T$u5d$$GT$9into_iter17hb679665e359495b2E"(ptr noalias noundef nonnull readonly align 1 %2, i64 noundef %3) #13
%9 = extractvalue { ptr, ptr } %8, 0
%10 = extractvalue { ptr, ptr } %8, 1
br label %11
11: ; preds = %4
store i8 0, ptr %6, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h66859f83a40c0f4fE"(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(96) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %7, ptr noundef nonnull %9, ptr noundef %10) #13
br label %12
12: ; preds = %11
call void @llvm.lifetime.end.p0(i64 56, ptr %7)
ret void
13: ; No predecessors!
%14 = load i8, ptr %6, align 1, !range !9, !noundef !3
%15 = trunc i8 %14 to i1
br i1 %15, label %22, label %16
16: ; preds = %22, %13
%17 = load ptr, ptr %5, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i32 }, ptr %5, i32 0, i32 1
%19 = load i32, ptr %18, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
%20 = insertvalue { ptr, i32 } poison, ptr %17, 0
%21 = insertvalue { ptr, i32 } %20, i32 %19, 1
resume { ptr, i32 } %21
22: ; preds = %13
br label %16
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17he5f7616af7ca1f09E(ptr noalias nocapture noundef sret({ { { ptr, i64 }, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(112) %0, ptr noalias nocapture noundef align 8 dereferenceable(32) %1, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca i8, align 1
%6 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
%7 = alloca { { ptr, i64 }, i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 32, ptr %7)
store i8 1, ptr %5, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %1, i64 32, i1 false)
call void @llvm.lifetime.start.p0(i64 56, ptr %6)
call void @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h2a94cdf82042b31fE"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %6, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) #13
br label %8
8: ; preds = %3
store i8 0, ptr %5, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h7b4b3d47bde218a3E"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(112) %0, ptr noalias nocapture noundef align 8 dereferenceable(32) %7, ptr noalias nocapture noundef align 8 dereferenceable(56) %6) #13
br label %9
9: ; preds = %8
call void @llvm.lifetime.end.p0(i64 56, ptr %6)
call void @llvm.lifetime.end.p0(i64 32, ptr %7)
ret void
10: ; No predecessors!
%11 = load i8, ptr %5, align 1, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
br i1 %12, label %19, label %13
13: ; preds = %19, %10
%14 = load ptr, ptr %4, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
19: ; preds = %10
br label %13
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17hea4256a08eeb1f2fE(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4) unnamed_addr #0 personality ptr @rust_eh_personality {
%6 = alloca { ptr, i32 }, align 8
%7 = alloca i8, align 1
store i8 1, ptr %7, align 1
%8 = call { ptr, ptr } @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17hb1a9830fab16fa20E"(ptr noundef nonnull %3, ptr noundef %4) #13
%9 = extractvalue { ptr, ptr } %8, 0
%10 = extractvalue { ptr, ptr } %8, 1
br label %11
11: ; preds = %5
store i8 0, ptr %7, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17hfcd8fe6b460dac21E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %9, ptr noundef %10) #13
br label %12
12: ; preds = %11
ret void
13: ; No predecessors!
%14 = load i8, ptr %7, align 1, !range !9, !noundef !3
%15 = trunc i8 %14 to i1
br i1 %15, label %22, label %16
16: ; preds = %22, %13
%17 = load ptr, ptr %6, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i32 }, ptr %6, i32 0, i32 1
%19 = load i32, ptr %18, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%20 = insertvalue { ptr, i32 } poison, ptr %17, 0
%21 = insertvalue { ptr, i32 } %20, i32 %19, 1
resume { ptr, i32 } %21
22: ; preds = %13
br label %16
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17heee02c200a6f347aE(ptr noalias nocapture noundef sret({ { ptr, ptr }, { i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(56) %0, i64 noundef %1, i64 noundef %2, ptr noundef nonnull %3, ptr noundef %4) unnamed_addr #0 personality ptr @rust_eh_personality {
%6 = alloca { ptr, i32 }, align 8
%7 = alloca i8, align 1
store i8 1, ptr %7, align 1
%8 = call { ptr, ptr } @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h73c7c91bf513c050E"(ptr noundef nonnull %3, ptr noundef %4) #13
%9 = extractvalue { ptr, ptr } %8, 0
%10 = extractvalue { ptr, ptr } %8, 1
br label %11
11: ; preds = %5
store i8 0, ptr %7, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17hd6658ae9bb7e929aE"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(56) %0, i64 noundef %1, i64 noundef %2, ptr noundef nonnull %9, ptr noundef %10) #13
br label %12
12: ; preds = %11
ret void
13: ; No predecessors!
%14 = load i8, ptr %7, align 1, !range !9, !noundef !3
%15 = trunc i8 %14 to i1
br i1 %15, label %22, label %16
16: ; preds = %22, %13
%17 = load ptr, ptr %6, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i32 }, ptr %6, i32 0, i32 1
%19 = load i32, ptr %18, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%20 = insertvalue { ptr, i32 } poison, ptr %17, 0
%21 = insertvalue { ptr, i32 } %20, i32 %19, 1
resume { ptr, i32 } %21
22: ; preds = %13
br label %16
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17hf0fb34d8046f3192E(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(136) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %1, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca i8, align 1
%6 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
%7 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 56, ptr %7)
store i8 1, ptr %5, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %1, i64 56, i1 false)
call void @llvm.lifetime.start.p0(i64 56, ptr %6)
call void @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h31b13cd813f92f57E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %6, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) #13
br label %8
8: ; preds = %3
store i8 0, ptr %5, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17hcacbaebad2bd6e38E"(ptr noalias nocapture noundef sret({ { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(136) %0, ptr noalias nocapture noundef align 8 dereferenceable(56) %7, ptr noalias nocapture noundef align 8 dereferenceable(56) %6) #13
br label %9
9: ; preds = %8
call void @llvm.lifetime.end.p0(i64 56, ptr %6)
call void @llvm.lifetime.end.p0(i64 56, ptr %7)
ret void
10: ; No predecessors!
%11 = load i8, ptr %5, align 1, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
br i1 %12, label %19, label %13
13: ; preds = %19, %10
%14 = load ptr, ptr %4, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
19: ; preds = %10
br label %13
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17hfd03aaa2ca1e4095E(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4) unnamed_addr #0 personality ptr @rust_eh_personality {
%6 = alloca { ptr, i32 }, align 8
%7 = alloca i8, align 1
store i8 1, ptr %7, align 1
%8 = call { ptr, ptr } @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h72a7f5d8a2063e85E"(ptr noundef nonnull %3, ptr noundef %4) #13
%9 = extractvalue { ptr, ptr } %8, 0
%10 = extractvalue { ptr, ptr } %8, 1
br label %11
11: ; preds = %5
store i8 0, ptr %7, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17hbf64307ae9f259d3E"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %9, ptr noundef %10) #13
br label %12
12: ; preds = %11
ret void
13: ; No predecessors!
%14 = load i8, ptr %7, align 1, !range !9, !noundef !3
%15 = trunc i8 %14 to i1
br i1 %15, label %22, label %16
16: ; preds = %22, %13
%17 = load ptr, ptr %6, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i32 }, ptr %6, i32 0, i32 1
%19 = load i32, ptr %18, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%20 = insertvalue { ptr, i32 } poison, ptr %17, 0
%21 = insertvalue { ptr, i32 } %20, i32 %19, 1
resume { ptr, i32 } %21
22: ; preds = %13
br label %16
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17hfd4e02843a49b93bE(ptr noalias nocapture noundef sret({ { { ptr, i64 }, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(112) %0, ptr noalias nocapture noundef align 8 dereferenceable(32) %1, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca i8, align 1
%6 = alloca { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, align 8
%7 = alloca { { ptr, i64 }, i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 32, ptr %7)
store i8 1, ptr %5, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %1, i64 32, i1 false)
call void @llvm.lifetime.start.p0(i64 56, ptr %6)
call void @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h2a94cdf82042b31fE"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %6, ptr noalias nocapture noundef align 8 dereferenceable(56) %2) #13
br label %8
8: ; preds = %3
store i8 0, ptr %5, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h426c6a2489cb03ffE"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, i64, i64 }, { { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }, i64, i64, i64 }) align 8 dereferenceable(112) %0, ptr noalias nocapture noundef align 8 dereferenceable(32) %7, ptr noalias nocapture noundef align 8 dereferenceable(56) %6) #13
br label %9
9: ; preds = %8
call void @llvm.lifetime.end.p0(i64 56, ptr %6)
call void @llvm.lifetime.end.p0(i64 32, ptr %7)
ret void
10: ; No predecessors!
%11 = load i8, ptr %5, align 1, !range !9, !noundef !3
%12 = trunc i8 %11 to i1
br i1 %12, label %19, label %13
13: ; preds = %19, %10
%14 = load ptr, ptr %4, align 8, !noundef !3
%15 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%16 = load i32, ptr %15, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%17 = insertvalue { ptr, i32 } poison, ptr %14, 0
%18 = insertvalue { ptr, i32 } %17, i32 %16, 1
resume { ptr, i32 } %18
19: ; preds = %10
br label %13
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17hfd4e2e39866ed9d5E(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4) unnamed_addr #0 personality ptr @rust_eh_personality {
%6 = alloca { ptr, i32 }, align 8
%7 = alloca i8, align 1
store i8 1, ptr %7, align 1
%8 = call { ptr, ptr } @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17hb137d7188e0b4201E"(ptr noundef nonnull %3, ptr noundef %4) #13
%9 = extractvalue { ptr, ptr } %8, 0
%10 = extractvalue { ptr, ptr } %8, 1
br label %11
11: ; preds = %5
store i8 0, ptr %7, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h5479c40c894be6abE"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %9, ptr noundef %10) #13
br label %12
12: ; preds = %11
ret void
13: ; No predecessors!
%14 = load i8, ptr %7, align 1, !range !9, !noundef !3
%15 = trunc i8 %14 to i1
br i1 %15, label %22, label %16
16: ; preds = %22, %13
%17 = load ptr, ptr %6, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i32 }, ptr %6, i32 0, i32 1
%19 = load i32, ptr %18, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%20 = insertvalue { ptr, i32 } poison, ptr %17, 0
%21 = insertvalue { ptr, i32 } %20, i32 %19, 1
resume { ptr, i32 } %21
22: ; preds = %13
br label %16
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4iter6traits8iterator8Iterator3zip17hfd73808f2d616144E(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4) unnamed_addr #0 personality ptr @rust_eh_personality {
%6 = alloca { ptr, i32 }, align 8
%7 = alloca i8, align 1
store i8 1, ptr %7, align 1
%8 = call { ptr, ptr } @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h3f4fea59ea62b32cE"(ptr noundef nonnull %3, ptr noundef %4) #13
%9 = extractvalue { ptr, ptr } %8, 0
%10 = extractvalue { ptr, ptr } %8, 1
br label %11
11: ; preds = %5
store i8 0, ptr %7, align 1
call void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17hc8bb25cf726d73cfE"(ptr noalias nocapture noundef sret({ { ptr, ptr }, { ptr, ptr }, i64, i64, i64 }) align 8 dereferenceable(56) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %9, ptr noundef %10) #13
br label %12
12: ; preds = %11
ret void
13: ; No predecessors!
%14 = load i8, ptr %7, align 1, !range !9, !noundef !3
%15 = trunc i8 %14 to i1
br i1 %15, label %22, label %16
16: ; preds = %22, %13
%17 = load ptr, ptr %6, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i32 }, ptr %6, i32 0, i32 1
%19 = load i32, ptr %18, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%20 = insertvalue { ptr, i32 } poison, ptr %17, 0
%21 = insertvalue { ptr, i32 } %20, i32 %19, 1
resume { ptr, i32 } %21
22: ; preds = %13
br label %16
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN4core4iter8adapters7step_by15StepBy$LT$I$GT$3new17head61bbcce883122E"(ptr noalias nocapture noundef sret({ { i64, i64 }, i64, i8, [7 x i8] }) align 8 dereferenceable(32) %0, i64 noundef %1, i64 noundef %2, i64 noundef %3) unnamed_addr #0 personality ptr @rust_eh_personality {
%5 = alloca { ptr, i32 }, align 8
%6 = alloca i8, align 1
store i8 1, ptr %6, align 1
%7 = icmp ne i64 %3, 0
%8 = xor i1 %7, true
br i1 %8, label %13, label %9
9: ; preds = %4
store i8 0, ptr %6, align 1
%10 = call { i64, i64 } @"_ZN146_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..iter..adapters..step_by..SpecRangeSetup$LT$core..ops..range..Range$LT$usize$GT$$GT$$GT$5setup17h1cbeab346b663e68E"(i64 noundef %1, i64 noundef %2, i64 noundef %3) #13
%11 = extractvalue { i64, i64 } %10, 0
%12 = extractvalue { i64, i64 } %10, 1
br label %14
13: ; preds = %4
call void @_ZN4core9panicking5panic17h5caa4064b91696faE(ptr noalias noundef nonnull readonly align 1 @7, i64 noundef 27, ptr noalias noundef readonly align 8 dereferenceable(24) @9) #14
unreachable
14: ; preds = %9
%15 = sub i64 %3, 1
%16 = getelementptr inbounds { i64, i64 }, ptr %0, i32 0, i32 0
store i64 %11, ptr %16, align 8
%17 = getelementptr inbounds { i64, i64 }, ptr %0, i32 0, i32 1
store i64 %12, ptr %17, align 8
%18 = getelementptr inbounds { { i64, i64 }, i64, i8, [7 x i8] }, ptr %0, i32 0, i32 1
store i64 %15, ptr %18, align 8
%19 = getelementptr inbounds { { i64, i64 }, i64, i8, [7 x i8] }, ptr %0, i32 0, i32 2
store i8 1, ptr %19, align 8
ret void
20: ; No predecessors!
%21 = load i8, ptr %6, align 1, !range !9, !noundef !3
%22 = trunc i8 %21 to i1
br i1 %22, label %29, label %23
23: ; preds = %29, %20
%24 = load ptr, ptr %5, align 8, !noundef !3
%25 = getelementptr inbounds { ptr, i32 }, ptr %5, i32 0, i32 1
%26 = load i32, ptr %25, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
%27 = insertvalue { ptr, i32 } poison, ptr %24, 0
%28 = insertvalue { ptr, i32 } %27, i32 %26, 1
resume { ptr, i32 } %28
29: ; preds = %20
br label %23
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef i64 @_ZN4core4sync6atomic11atomic_load17h24c4e15a6bba1f6aE(ptr noundef %0, i8 noundef %1) unnamed_addr #0 {
%3 = alloca { ptr, i64 }, align 8
%4 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8
%5 = alloca { ptr, i64 }, align 8
%6 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8
%7 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8
%8 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8
%9 = alloca i64, align 8
%10 = alloca i8, align 1
store i8 %1, ptr %10, align 1
%11 = load i8, ptr %10, align 1, !range !12, !noundef !3
%12 = zext i8 %11 to i64
switch i64 %12, label %13 [
i64 0, label %14
i64 1, label %16
i64 2, label %17
i64 3, label %19
i64 4, label %20
]
13: ; preds = %2
unreachable
14: ; preds = %2
%15 = load atomic i64, ptr %0 monotonic, align 8
store i64 %15, ptr %9, align 8
br label %22
16: ; preds = %2
call void @llvm.lifetime.start.p0(i64 48, ptr %8)
br i1 false, label %37, label %24
17: ; preds = %2
%18 = load atomic i64, ptr %0 acquire, align 8
store i64 %18, ptr %9, align 8
br label %22
19: ; preds = %2
call void @llvm.lifetime.start.p0(i64 48, ptr %7)
br i1 false, label %51, label %38
20: ; preds = %2
%21 = load atomic i64, ptr %0 seq_cst, align 8
store i64 %21, ptr %9, align 8
br label %22
22: ; preds = %20, %17, %14
%23 = load i64, ptr %9, align 8, !noundef !3
ret i64 %23
24: ; preds = %16
call void @llvm.lifetime.start.p0(i64 16, ptr %3)
store ptr null, ptr %3, align 8
%25 = getelementptr inbounds { ptr, i64 }, ptr %8, i32 0, i32 0
store ptr @11, ptr %25, align 8
%26 = getelementptr inbounds { ptr, i64 }, ptr %8, i32 0, i32 1
store i64 1, ptr %26, align 8
%27 = getelementptr inbounds { ptr, i64 }, ptr %3, i32 0, i32 0
%28 = load ptr, ptr %27, align 8, !align !5, !noundef !3
%29 = getelementptr inbounds { ptr, i64 }, ptr %3, i32 0, i32 1
%30 = load i64, ptr %29, align 8
%31 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %8, i32 0, i32 2
%32 = getelementptr inbounds { ptr, i64 }, ptr %31, i32 0, i32 0
store ptr %28, ptr %32, align 8
%33 = getelementptr inbounds { ptr, i64 }, ptr %31, i32 0, i32 1
store i64 %30, ptr %33, align 8
%34 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %8, i32 0, i32 1
%35 = getelementptr inbounds { ptr, i64 }, ptr %34, i32 0, i32 0
store ptr @0, ptr %35, align 8
%36 = getelementptr inbounds { ptr, i64 }, ptr %34, i32 0, i32 1
store i64 0, ptr %36, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
call void @_ZN4core9panicking9panic_fmt17h24b3f94e75b12286E(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %8, ptr noalias noundef readonly align 8 dereferenceable(24) @13) #14
unreachable
37: ; preds = %16
call void @llvm.lifetime.start.p0(i64 48, ptr %4)
call void @_ZN4core3fmt9Arguments9new_const17h22f1baa2268286beE(ptr noalias nocapture noundef sret({ { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }) align 8 dereferenceable(48) %4, ptr noalias noundef nonnull readonly align 8 @2, i64 noundef 1) #13
call void @_ZN4core9panicking9panic_fmt17h24b3f94e75b12286E(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %4, ptr noalias noundef readonly align 8 dereferenceable(24) @4) #14
unreachable
38: ; preds = %19
call void @llvm.lifetime.start.p0(i64 16, ptr %5)
store ptr null, ptr %5, align 8
%39 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
store ptr @15, ptr %39, align 8
%40 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
store i64 1, ptr %40, align 8
%41 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 0
%42 = load ptr, ptr %41, align 8, !align !5, !noundef !3
%43 = getelementptr inbounds { ptr, i64 }, ptr %5, i32 0, i32 1
%44 = load i64, ptr %43, align 8
%45 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %7, i32 0, i32 2
%46 = getelementptr inbounds { ptr, i64 }, ptr %45, i32 0, i32 0
store ptr %42, ptr %46, align 8
%47 = getelementptr inbounds { ptr, i64 }, ptr %45, i32 0, i32 1
store i64 %44, ptr %47, align 8
%48 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %7, i32 0, i32 1
%49 = getelementptr inbounds { ptr, i64 }, ptr %48, i32 0, i32 0
store ptr @0, ptr %49, align 8
%50 = getelementptr inbounds { ptr, i64 }, ptr %48, i32 0, i32 1
store i64 0, ptr %50, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
call void @_ZN4core9panicking9panic_fmt17h24b3f94e75b12286E(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %7, ptr noalias noundef readonly align 8 dereferenceable(24) @16) #14
unreachable
51: ; preds = %19
call void @llvm.lifetime.start.p0(i64 48, ptr %6)
call void @_ZN4core3fmt9Arguments9new_const17h22f1baa2268286beE(ptr noalias nocapture noundef sret({ { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }) align 8 dereferenceable(48) %6, ptr noalias noundef nonnull readonly align 8 @2, i64 noundef 1) #13
call void @_ZN4core9panicking9panic_fmt17h24b3f94e75b12286E(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %6, ptr noalias noundef readonly align 8 dereferenceable(24) @4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core4sync6atomic12atomic_store17h12730a5906b04930E(ptr noundef %0, i64 noundef %1, i8 noundef %2) unnamed_addr #0 {
%4 = alloca { ptr, i64 }, align 8
%5 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8
%6 = alloca { ptr, i64 }, align 8
%7 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8
%8 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8
%9 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8
%10 = alloca i8, align 1
store i8 %2, ptr %10, align 1
%11 = load i8, ptr %10, align 1, !range !12, !noundef !3
%12 = zext i8 %11 to i64
switch i64 %12, label %13 [
i64 0, label %14
i64 1, label %15
i64 2, label %16
i64 3, label %17
i64 4, label %18
]
13: ; preds = %3
unreachable
14: ; preds = %3
store atomic i64 %1, ptr %0 monotonic, align 8
br label %19
15: ; preds = %3
store atomic i64 %1, ptr %0 release, align 8
br label %19
16: ; preds = %3
call void @llvm.lifetime.start.p0(i64 48, ptr %9)
br i1 false, label %33, label %20
17: ; preds = %3
call void @llvm.lifetime.start.p0(i64 48, ptr %8)
br i1 false, label %47, label %34
18: ; preds = %3
store atomic i64 %1, ptr %0 seq_cst, align 8
br label %19
19: ; preds = %18, %15, %14
ret void
20: ; preds = %16
call void @llvm.lifetime.start.p0(i64 16, ptr %4)
store ptr null, ptr %4, align 8
%21 = getelementptr inbounds { ptr, i64 }, ptr %9, i32 0, i32 0
store ptr @18, ptr %21, align 8
%22 = getelementptr inbounds { ptr, i64 }, ptr %9, i32 0, i32 1
store i64 1, ptr %22, align 8
%23 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 0
%24 = load ptr, ptr %23, align 8, !align !5, !noundef !3
%25 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 1
%26 = load i64, ptr %25, align 8
%27 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %9, i32 0, i32 2
%28 = getelementptr inbounds { ptr, i64 }, ptr %27, i32 0, i32 0
store ptr %24, ptr %28, align 8
%29 = getelementptr inbounds { ptr, i64 }, ptr %27, i32 0, i32 1
store i64 %26, ptr %29, align 8
%30 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %9, i32 0, i32 1
%31 = getelementptr inbounds { ptr, i64 }, ptr %30, i32 0, i32 0
store ptr @0, ptr %31, align 8
%32 = getelementptr inbounds { ptr, i64 }, ptr %30, i32 0, i32 1
store i64 0, ptr %32, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
call void @_ZN4core9panicking9panic_fmt17h24b3f94e75b12286E(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %9, ptr noalias noundef readonly align 8 dereferenceable(24) @19) #14
unreachable
33: ; preds = %16
call void @llvm.lifetime.start.p0(i64 48, ptr %5)
call void @_ZN4core3fmt9Arguments9new_const17h22f1baa2268286beE(ptr noalias nocapture noundef sret({ { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }) align 8 dereferenceable(48) %5, ptr noalias noundef nonnull readonly align 8 @2, i64 noundef 1) #13
call void @_ZN4core9panicking9panic_fmt17h24b3f94e75b12286E(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %5, ptr noalias noundef readonly align 8 dereferenceable(24) @4) #14
unreachable
34: ; preds = %17
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr null, ptr %6, align 8
%35 = getelementptr inbounds { ptr, i64 }, ptr %8, i32 0, i32 0
store ptr @21, ptr %35, align 8
%36 = getelementptr inbounds { ptr, i64 }, ptr %8, i32 0, i32 1
store i64 1, ptr %36, align 8
%37 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%38 = load ptr, ptr %37, align 8, !align !5, !noundef !3
%39 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%40 = load i64, ptr %39, align 8
%41 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %8, i32 0, i32 2
%42 = getelementptr inbounds { ptr, i64 }, ptr %41, i32 0, i32 0
store ptr %38, ptr %42, align 8
%43 = getelementptr inbounds { ptr, i64 }, ptr %41, i32 0, i32 1
store i64 %40, ptr %43, align 8
%44 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %8, i32 0, i32 1
%45 = getelementptr inbounds { ptr, i64 }, ptr %44, i32 0, i32 0
store ptr @0, ptr %45, align 8
%46 = getelementptr inbounds { ptr, i64 }, ptr %44, i32 0, i32 1
store i64 0, ptr %46, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
call void @_ZN4core9panicking9panic_fmt17h24b3f94e75b12286E(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %8, ptr noalias noundef readonly align 8 dereferenceable(24) @22) #14
unreachable
47: ; preds = %17
call void @llvm.lifetime.start.p0(i64 48, ptr %7)
call void @_ZN4core3fmt9Arguments9new_const17h22f1baa2268286beE(ptr noalias nocapture noundef sret({ { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }) align 8 dereferenceable(48) %7, ptr noalias noundef nonnull readonly align 8 @2, i64 noundef 1) #13
call void @_ZN4core9panicking9panic_fmt17h24b3f94e75b12286E(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %7, ptr noalias noundef readonly align 8 dereferenceable(24) @4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal { i64, i64 } @_ZN4core4sync6atomic23atomic_compare_exchange17hc59330ac955cc136E(ptr noundef %0, i64 noundef %1, i64 noundef %2, i8 noundef %3, i8 noundef %4) unnamed_addr #0 {
%6 = alloca { ptr, i64 }, align 8
%7 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8
%8 = alloca { ptr, i64 }, align 8
%9 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8
%10 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8
%11 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8
%12 = alloca { i64, i8 }, align 8
%13 = alloca { i64, i64 }, align 8
%14 = alloca i8, align 1
%15 = alloca i8, align 1
store i8 %3, ptr %15, align 1
store i8 %4, ptr %14, align 1
call void @llvm.lifetime.start.p0(i64 16, ptr %12)
%16 = load i8, ptr %15, align 1, !range !12, !noundef !3
%17 = zext i8 %16 to i64
switch i64 %17, label %18 [
i64 0, label %19
i64 1, label %22
i64 2, label %25
i64 3, label %28
i64 4, label %31
]
18: ; preds = %34, %5
unreachable
19: ; preds = %5
%20 = load i8, ptr %14, align 1, !range !12, !noundef !3
%21 = zext i8 %20 to i64
switch i64 %21, label %34 [
i64 0, label %37
i64 2, label %43
i64 4, label %49
]
22: ; preds = %5
%23 = load i8, ptr %14, align 1, !range !12, !noundef !3
%24 = zext i8 %23 to i64
switch i64 %24, label %34 [
i64 0, label %60
i64 2, label %66
i64 4, label %72
]
25: ; preds = %5
%26 = load i8, ptr %14, align 1, !range !12, !noundef !3
%27 = zext i8 %26 to i64
switch i64 %27, label %34 [
i64 0, label %78
i64 2, label %84
i64 4, label %90
]
28: ; preds = %5
%29 = load i8, ptr %14, align 1, !range !12, !noundef !3
%30 = zext i8 %29 to i64
switch i64 %30, label %34 [
i64 0, label %96
i64 2, label %102
i64 4, label %108
]
31: ; preds = %5
%32 = load i8, ptr %14, align 1, !range !12, !noundef !3
%33 = zext i8 %32 to i64
switch i64 %33, label %34 [
i64 0, label %114
i64 2, label %120
i64 4, label %126
]
34: ; preds = %31, %28, %25, %22, %19
%35 = load i8, ptr %14, align 1, !range !12, !noundef !3
%36 = zext i8 %35 to i64
switch i64 %36, label %18 [
i64 1, label %143
i64 3, label %144
]
37: ; preds = %19
%38 = cmpxchg ptr %0, i64 %1, i64 %2 monotonic monotonic, align 8
%39 = extractvalue { i64, i1 } %38, 0
%40 = extractvalue { i64, i1 } %38, 1
%41 = zext i1 %40 to i8
store i64 %39, ptr %12, align 8
%42 = getelementptr inbounds { i64, i8 }, ptr %12, i32 0, i32 1
store i8 %41, ptr %42, align 8
br label %55
43: ; preds = %19
%44 = cmpxchg ptr %0, i64 %1, i64 %2 monotonic acquire, align 8
%45 = extractvalue { i64, i1 } %44, 0
%46 = extractvalue { i64, i1 } %44, 1
%47 = zext i1 %46 to i8
store i64 %45, ptr %12, align 8
%48 = getelementptr inbounds { i64, i8 }, ptr %12, i32 0, i32 1
store i8 %47, ptr %48, align 8
br label %55
49: ; preds = %19
%50 = cmpxchg ptr %0, i64 %1, i64 %2 monotonic seq_cst, align 8
%51 = extractvalue { i64, i1 } %50, 0
%52 = extractvalue { i64, i1 } %50, 1
%53 = zext i1 %52 to i8
store i64 %51, ptr %12, align 8
%54 = getelementptr inbounds { i64, i8 }, ptr %12, i32 0, i32 1
store i8 %53, ptr %54, align 8
br label %55
55: ; preds = %126, %120, %114, %108, %102, %96, %90, %84, %78, %72, %66, %60, %49, %43, %37
%56 = load i64, ptr %12, align 8, !noundef !3
%57 = getelementptr inbounds { i64, i8 }, ptr %12, i32 0, i32 1
%58 = load i8, ptr %57, align 8, !range !9, !noundef !3
%59 = trunc i8 %58 to i1
call void @llvm.lifetime.end.p0(i64 16, ptr %12)
br i1 %59, label %134, label %132
60: ; preds = %22
%61 = cmpxchg ptr %0, i64 %1, i64 %2 release monotonic, align 8
%62 = extractvalue { i64, i1 } %61, 0
%63 = extractvalue { i64, i1 } %61, 1
%64 = zext i1 %63 to i8
store i64 %62, ptr %12, align 8
%65 = getelementptr inbounds { i64, i8 }, ptr %12, i32 0, i32 1
store i8 %64, ptr %65, align 8
br label %55
66: ; preds = %22
%67 = cmpxchg ptr %0, i64 %1, i64 %2 release acquire, align 8
%68 = extractvalue { i64, i1 } %67, 0
%69 = extractvalue { i64, i1 } %67, 1
%70 = zext i1 %69 to i8
store i64 %68, ptr %12, align 8
%71 = getelementptr inbounds { i64, i8 }, ptr %12, i32 0, i32 1
store i8 %70, ptr %71, align 8
br label %55
72: ; preds = %22
%73 = cmpxchg ptr %0, i64 %1, i64 %2 release seq_cst, align 8
%74 = extractvalue { i64, i1 } %73, 0
%75 = extractvalue { i64, i1 } %73, 1
%76 = zext i1 %75 to i8
store i64 %74, ptr %12, align 8
%77 = getelementptr inbounds { i64, i8 }, ptr %12, i32 0, i32 1
store i8 %76, ptr %77, align 8
br label %55
78: ; preds = %25
%79 = cmpxchg ptr %0, i64 %1, i64 %2 acquire monotonic, align 8
%80 = extractvalue { i64, i1 } %79, 0
%81 = extractvalue { i64, i1 } %79, 1
%82 = zext i1 %81 to i8
store i64 %80, ptr %12, align 8
%83 = getelementptr inbounds { i64, i8 }, ptr %12, i32 0, i32 1
store i8 %82, ptr %83, align 8
br label %55
84: ; preds = %25
%85 = cmpxchg ptr %0, i64 %1, i64 %2 acquire acquire, align 8
%86 = extractvalue { i64, i1 } %85, 0
%87 = extractvalue { i64, i1 } %85, 1
%88 = zext i1 %87 to i8
store i64 %86, ptr %12, align 8
%89 = getelementptr inbounds { i64, i8 }, ptr %12, i32 0, i32 1
store i8 %88, ptr %89, align 8
br label %55
90: ; preds = %25
%91 = cmpxchg ptr %0, i64 %1, i64 %2 acquire seq_cst, align 8
%92 = extractvalue { i64, i1 } %91, 0
%93 = extractvalue { i64, i1 } %91, 1
%94 = zext i1 %93 to i8
store i64 %92, ptr %12, align 8
%95 = getelementptr inbounds { i64, i8 }, ptr %12, i32 0, i32 1
store i8 %94, ptr %95, align 8
br label %55
96: ; preds = %28
%97 = cmpxchg ptr %0, i64 %1, i64 %2 acq_rel monotonic, align 8
%98 = extractvalue { i64, i1 } %97, 0
%99 = extractvalue { i64, i1 } %97, 1
%100 = zext i1 %99 to i8
store i64 %98, ptr %12, align 8
%101 = getelementptr inbounds { i64, i8 }, ptr %12, i32 0, i32 1
store i8 %100, ptr %101, align 8
br label %55
102: ; preds = %28
%103 = cmpxchg ptr %0, i64 %1, i64 %2 acq_rel acquire, align 8
%104 = extractvalue { i64, i1 } %103, 0
%105 = extractvalue { i64, i1 } %103, 1
%106 = zext i1 %105 to i8
store i64 %104, ptr %12, align 8
%107 = getelementptr inbounds { i64, i8 }, ptr %12, i32 0, i32 1
store i8 %106, ptr %107, align 8
br label %55
108: ; preds = %28
%109 = cmpxchg ptr %0, i64 %1, i64 %2 acq_rel seq_cst, align 8
%110 = extractvalue { i64, i1 } %109, 0
%111 = extractvalue { i64, i1 } %109, 1
%112 = zext i1 %111 to i8
store i64 %110, ptr %12, align 8
%113 = getelementptr inbounds { i64, i8 }, ptr %12, i32 0, i32 1
store i8 %112, ptr %113, align 8
br label %55
114: ; preds = %31
%115 = cmpxchg ptr %0, i64 %1, i64 %2 seq_cst monotonic, align 8
%116 = extractvalue { i64, i1 } %115, 0
%117 = extractvalue { i64, i1 } %115, 1
%118 = zext i1 %117 to i8
store i64 %116, ptr %12, align 8
%119 = getelementptr inbounds { i64, i8 }, ptr %12, i32 0, i32 1
store i8 %118, ptr %119, align 8
br label %55
120: ; preds = %31
%121 = cmpxchg ptr %0, i64 %1, i64 %2 seq_cst acquire, align 8
%122 = extractvalue { i64, i1 } %121, 0
%123 = extractvalue { i64, i1 } %121, 1
%124 = zext i1 %123 to i8
store i64 %122, ptr %12, align 8
%125 = getelementptr inbounds { i64, i8 }, ptr %12, i32 0, i32 1
store i8 %124, ptr %125, align 8
br label %55
126: ; preds = %31
%127 = cmpxchg ptr %0, i64 %1, i64 %2 seq_cst seq_cst, align 8
%128 = extractvalue { i64, i1 } %127, 0
%129 = extractvalue { i64, i1 } %127, 1
%130 = zext i1 %129 to i8
store i64 %128, ptr %12, align 8
%131 = getelementptr inbounds { i64, i8 }, ptr %12, i32 0, i32 1
store i8 %130, ptr %131, align 8
br label %55
132: ; preds = %55
%133 = getelementptr inbounds { i64, i64 }, ptr %13, i32 0, i32 1
store i64 %56, ptr %133, align 8
store i64 1, ptr %13, align 8
br label %136
134: ; preds = %55
%135 = getelementptr inbounds { i64, i64 }, ptr %13, i32 0, i32 1
store i64 %56, ptr %135, align 8
store i64 0, ptr %13, align 8
br label %136
136: ; preds = %134, %132
%137 = getelementptr inbounds { i64, i64 }, ptr %13, i32 0, i32 0
%138 = load i64, ptr %137, align 8, !range !7, !noundef !3
%139 = getelementptr inbounds { i64, i64 }, ptr %13, i32 0, i32 1
%140 = load i64, ptr %139, align 8, !noundef !3
%141 = insertvalue { i64, i64 } poison, i64 %138, 0
%142 = insertvalue { i64, i64 } %141, i64 %140, 1
ret { i64, i64 } %142
143: ; preds = %34
call void @llvm.lifetime.start.p0(i64 48, ptr %10)
br i1 false, label %158, label %145
144: ; preds = %34
call void @llvm.lifetime.start.p0(i64 48, ptr %11)
br i1 false, label %172, label %159
145: ; preds = %143
call void @llvm.lifetime.start.p0(i64 16, ptr %8)
store ptr null, ptr %8, align 8
%146 = getelementptr inbounds { ptr, i64 }, ptr %10, i32 0, i32 0
store ptr @24, ptr %146, align 8
%147 = getelementptr inbounds { ptr, i64 }, ptr %10, i32 0, i32 1
store i64 1, ptr %147, align 8
%148 = getelementptr inbounds { ptr, i64 }, ptr %8, i32 0, i32 0
%149 = load ptr, ptr %148, align 8, !align !5, !noundef !3
%150 = getelementptr inbounds { ptr, i64 }, ptr %8, i32 0, i32 1
%151 = load i64, ptr %150, align 8
%152 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %10, i32 0, i32 2
%153 = getelementptr inbounds { ptr, i64 }, ptr %152, i32 0, i32 0
store ptr %149, ptr %153, align 8
%154 = getelementptr inbounds { ptr, i64 }, ptr %152, i32 0, i32 1
store i64 %151, ptr %154, align 8
%155 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %10, i32 0, i32 1
%156 = getelementptr inbounds { ptr, i64 }, ptr %155, i32 0, i32 0
store ptr @0, ptr %156, align 8
%157 = getelementptr inbounds { ptr, i64 }, ptr %155, i32 0, i32 1
store i64 0, ptr %157, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %8)
call void @_ZN4core9panicking9panic_fmt17h24b3f94e75b12286E(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %10, ptr noalias noundef readonly align 8 dereferenceable(24) @25) #14
unreachable
158: ; preds = %143
call void @llvm.lifetime.start.p0(i64 48, ptr %9)
call void @_ZN4core3fmt9Arguments9new_const17h22f1baa2268286beE(ptr noalias nocapture noundef sret({ { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }) align 8 dereferenceable(48) %9, ptr noalias noundef nonnull readonly align 8 @2, i64 noundef 1) #13
call void @_ZN4core9panicking9panic_fmt17h24b3f94e75b12286E(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %9, ptr noalias noundef readonly align 8 dereferenceable(24) @4) #14
unreachable
159: ; preds = %144
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr null, ptr %6, align 8
%160 = getelementptr inbounds { ptr, i64 }, ptr %11, i32 0, i32 0
store ptr @27, ptr %160, align 8
%161 = getelementptr inbounds { ptr, i64 }, ptr %11, i32 0, i32 1
store i64 1, ptr %161, align 8
%162 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%163 = load ptr, ptr %162, align 8, !align !5, !noundef !3
%164 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%165 = load i64, ptr %164, align 8
%166 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %11, i32 0, i32 2
%167 = getelementptr inbounds { ptr, i64 }, ptr %166, i32 0, i32 0
store ptr %163, ptr %167, align 8
%168 = getelementptr inbounds { ptr, i64 }, ptr %166, i32 0, i32 1
store i64 %165, ptr %168, align 8
%169 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %11, i32 0, i32 1
%170 = getelementptr inbounds { ptr, i64 }, ptr %169, i32 0, i32 0
store ptr @0, ptr %170, align 8
%171 = getelementptr inbounds { ptr, i64 }, ptr %169, i32 0, i32 1
store i64 0, ptr %171, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
call void @_ZN4core9panicking9panic_fmt17h24b3f94e75b12286E(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %11, ptr noalias noundef readonly align 8 dereferenceable(24) @28) #14
unreachable
172: ; preds = %144
call void @llvm.lifetime.start.p0(i64 48, ptr %7)
call void @_ZN4core3fmt9Arguments9new_const17h22f1baa2268286beE(ptr noalias nocapture noundef sret({ { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }) align 8 dereferenceable(48) %7, ptr noalias noundef nonnull readonly align 8 @2, i64 noundef 1) #13
call void @_ZN4core9panicking9panic_fmt17h24b3f94e75b12286E(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %7, ptr noalias noundef readonly align 8 dereferenceable(24) @4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core5array11try_from_fn17h0adb5b8ac390549aE(ptr noalias nocapture noundef sret({ [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }) align 8 dereferenceable(288) %0, ptr noundef nonnull %1, ptr noundef %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca { [3 x { [12 x i64] }] }, align 8
%6 = alloca { [36 x i64] }, align 8
%7 = alloca i8, align 1
%8 = alloca [3 x { [12 x i64] }], align 8
%9 = alloca [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], align 8
%10 = alloca { {} }, align 1
%11 = alloca [3 x { [12 x i64] }], align 8
call void @llvm.lifetime.start.p0(i64 288, ptr %11)
call void @llvm.lifetime.start.p0(i64 288, ptr %6)
call void @llvm.lifetime.start.p0(i64 288, ptr %5)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5, ptr align 8 %6, i64 288, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %11, ptr align 8 %5, i64 288, i1 false)
call void @llvm.lifetime.end.p0(i64 288, ptr %5)
call void @llvm.lifetime.end.p0(i64 288, ptr %6)
store i8 1, ptr %7, align 1
call void @_ZN4core5array18try_from_fn_erased17h6c5daa97cd769ab1E(ptr noalias noundef nonnull align 8 %11, i64 noundef 3, ptr noundef nonnull %1, ptr noundef %2) #13
br label %12
12: ; preds = %3
switch i64 0, label %13 [
i64 0, label %14
i64 1, label %15
]
13: ; preds = %12
unreachable
14: ; preds = %12
call void @llvm.lifetime.start.p0(i64 288, ptr %9)
call void @llvm.lifetime.start.p0(i64 288, ptr %8)
store i8 0, ptr %7, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %11, i64 288, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %9, ptr align 8 %8, i64 288, i1 false)
call void @llvm.lifetime.end.p0(i64 288, ptr %8)
call void @"_ZN94_$LT$core..ops..try_trait..NeverShortCircuit$LT$T$GT$$u20$as$u20$core..ops..try_trait..Try$GT$11from_output17h10c1fea848561b57E"(ptr noalias nocapture noundef sret({ [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }) align 8 dereferenceable(288) %0, ptr noalias nocapture noundef align 8 dereferenceable(288) %9) #13
br label %16
15: ; preds = %12
call void @"_ZN103_$LT$core..ops..try_trait..NeverShortCircuit$LT$T$GT$$u20$as$u20$core..ops..try_trait..FromResidual$GT$13from_residual17hd763336f334630dfE"(ptr noalias nocapture noundef sret({ [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }) align 8 dereferenceable(288) %0) #13
br label %20
16: ; preds = %14
call void @llvm.lifetime.end.p0(i64 288, ptr %9)
br label %17
17: ; preds = %20, %16
%18 = load i8, ptr %7, align 1, !range !9, !noundef !3
%19 = trunc i8 %18 to i1
br i1 %19, label %22, label %21
20: ; preds = %15
br label %17
21: ; preds = %22, %17
call void @llvm.lifetime.end.p0(i64 288, ptr %11)
ret void
22: ; preds = %17
br label %21
23: ; No predecessors!
%24 = load i8, ptr %7, align 1, !range !9, !noundef !3
%25 = trunc i8 %24 to i1
br i1 %25, label %27, label %26
26: ; preds = %28, %27, %23
br i1 false, label %35, label %29
27: ; preds = %23
br label %26
28: ; No predecessors!
br label %26
29: ; preds = %35, %26
%30 = load ptr, ptr %4, align 8, !noundef !3
%31 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%32 = load i32, ptr %31, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%33 = insertvalue { ptr, i32 } poison, ptr %30, 0
%34 = insertvalue { ptr, i32 } %33, i32 %32, 1
resume { ptr, i32 } %34
35: ; preds = %26
br label %29
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core5array11try_from_fn17hdc315f85679df359E(ptr noalias nocapture noundef sret({ [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }) align 8 dereferenceable(288) %0, ptr noundef nonnull %1, ptr noundef %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca { [3 x { [12 x i64] }] }, align 8
%6 = alloca { [36 x i64] }, align 8
%7 = alloca i8, align 1
%8 = alloca [3 x { [12 x i64] }], align 8
%9 = alloca [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], align 8
%10 = alloca { {} }, align 1
%11 = alloca [3 x { [12 x i64] }], align 8
call void @llvm.lifetime.start.p0(i64 288, ptr %11)
call void @llvm.lifetime.start.p0(i64 288, ptr %6)
call void @llvm.lifetime.start.p0(i64 288, ptr %5)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5, ptr align 8 %6, i64 288, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %11, ptr align 8 %5, i64 288, i1 false)
call void @llvm.lifetime.end.p0(i64 288, ptr %5)
call void @llvm.lifetime.end.p0(i64 288, ptr %6)
store i8 1, ptr %7, align 1
call void @_ZN4core5array18try_from_fn_erased17he8e04bde90811cb5E(ptr noalias noundef nonnull align 8 %11, i64 noundef 3, ptr noundef nonnull %1, ptr noundef %2) #13
br label %12
12: ; preds = %3
switch i64 0, label %13 [
i64 0, label %14
i64 1, label %15
]
13: ; preds = %12
unreachable
14: ; preds = %12
call void @llvm.lifetime.start.p0(i64 288, ptr %9)
call void @llvm.lifetime.start.p0(i64 288, ptr %8)
store i8 0, ptr %7, align 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %11, i64 288, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %9, ptr align 8 %8, i64 288, i1 false)
call void @llvm.lifetime.end.p0(i64 288, ptr %8)
call void @"_ZN94_$LT$core..ops..try_trait..NeverShortCircuit$LT$T$GT$$u20$as$u20$core..ops..try_trait..Try$GT$11from_output17ha25b67ca40f54ddbE"(ptr noalias nocapture noundef sret({ [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }) align 8 dereferenceable(288) %0, ptr noalias nocapture noundef align 8 dereferenceable(288) %9) #13
br label %16
15: ; preds = %12
call void @"_ZN103_$LT$core..ops..try_trait..NeverShortCircuit$LT$T$GT$$u20$as$u20$core..ops..try_trait..FromResidual$GT$13from_residual17h91492fdebafa6f90E"(ptr noalias nocapture noundef sret({ [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }) align 8 dereferenceable(288) %0) #13
br label %20
16: ; preds = %14
call void @llvm.lifetime.end.p0(i64 288, ptr %9)
br label %17
17: ; preds = %20, %16
%18 = load i8, ptr %7, align 1, !range !9, !noundef !3
%19 = trunc i8 %18 to i1
br i1 %19, label %22, label %21
20: ; preds = %15
br label %17
21: ; preds = %22, %17
call void @llvm.lifetime.end.p0(i64 288, ptr %11)
ret void
22: ; preds = %17
br label %21
23: ; No predecessors!
%24 = load i8, ptr %7, align 1, !range !9, !noundef !3
%25 = trunc i8 %24 to i1
br i1 %25, label %27, label %26
26: ; preds = %28, %27, %23
br i1 false, label %35, label %29
27: ; preds = %23
br label %26
28: ; No predecessors!
br label %26
29: ; preds = %35, %26
%30 = load ptr, ptr %4, align 8, !noundef !3
%31 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%32 = load i32, ptr %31, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%33 = insertvalue { ptr, i32 } poison, ptr %30, 0
%34 = insertvalue { ptr, i32 } %33, i32 %32, 1
resume { ptr, i32 } %34
35: ; preds = %26
br label %29
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core5array18try_from_fn_erased17h6c5daa97cd769ab1E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noundef nonnull %2, ptr noundef %3) unnamed_addr #0 personality ptr @rust_eh_personality {
%5 = alloca { ptr, i32 }, align 8
%6 = alloca { { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } } }, align 8
%7 = alloca { [12 x i64] }, align 8
%8 = alloca { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }, align 8
%9 = alloca { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }, align 8
%10 = alloca i64, align 8
%11 = alloca { { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } } }, align 8
%12 = alloca { { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } } }, align 8
%13 = alloca { { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } } }, align 8
%14 = alloca { { ptr, i64 }, i64 }, align 8
%15 = alloca { ptr, ptr }, align 8
%16 = getelementptr inbounds { ptr, ptr }, ptr %15, i32 0, i32 0
store ptr %2, ptr %16, align 8
%17 = getelementptr inbounds { ptr, ptr }, ptr %15, i32 0, i32 1
store ptr %3, ptr %17, align 8
call void @llvm.lifetime.start.p0(i64 24, ptr %14)
%18 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 0
store ptr %0, ptr %18, align 8
%19 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 1
store i64 %1, ptr %19, align 8
%20 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %14, i32 0, i32 1
store i64 0, ptr %20, align 8
br label %21
21: ; preds = %41, %4
%22 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %14, i32 0, i32 1
%23 = load i64, ptr %22, align 8, !noundef !3
%24 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 0
%25 = load ptr, ptr %24, align 8, !nonnull !3, !align !5, !noundef !3
%26 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 1
%27 = load i64, ptr %26, align 8, !noundef !3
%28 = icmp ult i64 %23, %27
br i1 %28, label %30, label %29
29: ; preds = %21
call void @llvm.lifetime.end.p0(i64 24, ptr %14)
br label %34
30: ; preds = %21
call void @llvm.lifetime.start.p0(i64 96, ptr %13)
call void @llvm.lifetime.start.p0(i64 96, ptr %12)
call void @llvm.lifetime.start.p0(i64 96, ptr %11)
call void @llvm.lifetime.start.p0(i64 8, ptr %10)
%31 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %14, i32 0, i32 1
%32 = load i64, ptr %31, align 8, !noundef !3
store i64 %32, ptr %10, align 8
%33 = load i64, ptr %10, align 8, !noundef !3
call void @"_ZN4core5array25try_from_trusted_iterator4next28_$u7b$$u7b$closure$u7d$$u7d$17h7e7df4dc80553f52E"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } } }) align 8 dereferenceable(96) %11, ptr noalias noundef align 8 dereferenceable(16) %15, i64 noundef %33) #13
br label %35
34: ; preds = %54, %29
ret void
35: ; preds = %30
call void @llvm.lifetime.end.p0(i64 8, ptr %10)
call void @"_ZN94_$LT$core..ops..try_trait..NeverShortCircuit$LT$T$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h14b3b019a6bec057E"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } } }) align 8 dereferenceable(96) %12, ptr noalias nocapture noundef align 8 dereferenceable(96) %11) #13
br label %36
36: ; preds = %35
call void @llvm.lifetime.end.p0(i64 96, ptr %11)
call void @llvm.lifetime.start.p0(i64 96, ptr %8)
switch i64 0, label %37 [
i64 0, label %38
i64 1, label %39
]
37: ; preds = %40, %36
unreachable
38: ; preds = %36
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %12, i64 96, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %13, ptr align 8 %8, i64 96, i1 false)
br label %40
39: ; preds = %36
call void @llvm.trap()
br label %40
40: ; preds = %39, %38
call void @llvm.lifetime.end.p0(i64 96, ptr %8)
call void @llvm.lifetime.end.p0(i64 96, ptr %12)
switch i64 0, label %37 [
i64 0, label %41
i64 1, label %53
]
41: ; preds = %40
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %9, ptr align 8 %13, i64 96, i1 false)
call void @llvm.lifetime.end.p0(i64 96, ptr %13)
%42 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 0
%43 = load ptr, ptr %42, align 8, !nonnull !3, !align !5, !noundef !3
%44 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 1
%45 = load i64, ptr %44, align 8, !noundef !3
%46 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %14, i32 0, i32 1
%47 = load i64, ptr %46, align 8, !noundef !3
%48 = getelementptr inbounds { [12 x i64] }, ptr %43, i64 %47
call void @llvm.lifetime.start.p0(i64 96, ptr %7)
call void @llvm.lifetime.start.p0(i64 96, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %6, ptr align 8 %9, i64 96, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %6, i64 96, i1 false)
call void @llvm.lifetime.end.p0(i64 96, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %48, ptr align 8 %7, i64 96, i1 false)
call void @llvm.lifetime.end.p0(i64 96, ptr %7)
%49 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %14, i32 0, i32 1
%50 = load i64, ptr %49, align 8, !noundef !3
%51 = add nuw i64 %50, 1
%52 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %14, i32 0, i32 1
store i64 %51, ptr %52, align 8
br label %21
53: ; preds = %40
call void @llvm.lifetime.end.p0(i64 96, ptr %13)
call void @"_ZN4core3ptr79drop_in_place$LT$core..array..Guard$LT$v_frame..plane..Plane$LT$u16$GT$$GT$$GT$17h7aa25840b894ec0cE"(ptr noalias noundef align 8 dereferenceable(24) %14) #13
br label %54
54: ; preds = %53
call void @llvm.lifetime.end.p0(i64 24, ptr %14)
br label %34
55: ; No predecessors!
br i1 true, label %62, label %56
56: ; preds = %62, %55
%57 = load ptr, ptr %5, align 8, !noundef !3
%58 = getelementptr inbounds { ptr, i32 }, ptr %5, i32 0, i32 1
%59 = load i32, ptr %58, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
%60 = insertvalue { ptr, i32 } poison, ptr %57, 0
%61 = insertvalue { ptr, i32 } %60, i32 %59, 1
resume { ptr, i32 } %61
62: ; preds = %55
call void @"_ZN4core3ptr79drop_in_place$LT$core..array..Guard$LT$v_frame..plane..Plane$LT$u16$GT$$GT$$GT$17h7aa25840b894ec0cE"(ptr noalias noundef align 8 dereferenceable(24) %14) #15
br label %56
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core5array18try_from_fn_erased17he8e04bde90811cb5E(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, ptr noundef nonnull %2, ptr noundef %3) unnamed_addr #0 personality ptr @rust_eh_personality {
%5 = alloca { ptr, i32 }, align 8
%6 = alloca { { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } } }, align 8
%7 = alloca { [12 x i64] }, align 8
%8 = alloca { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }, align 8
%9 = alloca { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }, align 8
%10 = alloca i64, align 8
%11 = alloca { { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } } }, align 8
%12 = alloca { { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } } }, align 8
%13 = alloca { { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } } }, align 8
%14 = alloca { { ptr, i64 }, i64 }, align 8
%15 = alloca { ptr, ptr }, align 8
%16 = getelementptr inbounds { ptr, ptr }, ptr %15, i32 0, i32 0
store ptr %2, ptr %16, align 8
%17 = getelementptr inbounds { ptr, ptr }, ptr %15, i32 0, i32 1
store ptr %3, ptr %17, align 8
call void @llvm.lifetime.start.p0(i64 24, ptr %14)
%18 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 0
store ptr %0, ptr %18, align 8
%19 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 1
store i64 %1, ptr %19, align 8
%20 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %14, i32 0, i32 1
store i64 0, ptr %20, align 8
br label %21
21: ; preds = %41, %4
%22 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %14, i32 0, i32 1
%23 = load i64, ptr %22, align 8, !noundef !3
%24 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 0
%25 = load ptr, ptr %24, align 8, !nonnull !3, !align !5, !noundef !3
%26 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 1
%27 = load i64, ptr %26, align 8, !noundef !3
%28 = icmp ult i64 %23, %27
br i1 %28, label %30, label %29
29: ; preds = %21
call void @llvm.lifetime.end.p0(i64 24, ptr %14)
br label %34
30: ; preds = %21
call void @llvm.lifetime.start.p0(i64 96, ptr %13)
call void @llvm.lifetime.start.p0(i64 96, ptr %12)
call void @llvm.lifetime.start.p0(i64 96, ptr %11)
call void @llvm.lifetime.start.p0(i64 8, ptr %10)
%31 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %14, i32 0, i32 1
%32 = load i64, ptr %31, align 8, !noundef !3
store i64 %32, ptr %10, align 8
%33 = load i64, ptr %10, align 8, !noundef !3
call void @"_ZN4core5array25try_from_trusted_iterator4next28_$u7b$$u7b$closure$u7d$$u7d$17h06bd2682799ea457E"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } } }) align 8 dereferenceable(96) %11, ptr noalias noundef align 8 dereferenceable(16) %15, i64 noundef %33) #13
br label %35
34: ; preds = %54, %29
ret void
35: ; preds = %30
call void @llvm.lifetime.end.p0(i64 8, ptr %10)
call void @"_ZN94_$LT$core..ops..try_trait..NeverShortCircuit$LT$T$GT$$u20$as$u20$core..ops..try_trait..Try$GT$6branch17h05184fd07a1c3290E"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } } }) align 8 dereferenceable(96) %12, ptr noalias nocapture noundef align 8 dereferenceable(96) %11) #13
br label %36
36: ; preds = %35
call void @llvm.lifetime.end.p0(i64 96, ptr %11)
call void @llvm.lifetime.start.p0(i64 96, ptr %8)
switch i64 0, label %37 [
i64 0, label %38
i64 1, label %39
]
37: ; preds = %40, %36
unreachable
38: ; preds = %36
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %12, i64 96, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %13, ptr align 8 %8, i64 96, i1 false)
br label %40
39: ; preds = %36
call void @llvm.trap()
br label %40
40: ; preds = %39, %38
call void @llvm.lifetime.end.p0(i64 96, ptr %8)
call void @llvm.lifetime.end.p0(i64 96, ptr %12)
switch i64 0, label %37 [
i64 0, label %41
i64 1, label %53
]
41: ; preds = %40
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %9, ptr align 8 %13, i64 96, i1 false)
call void @llvm.lifetime.end.p0(i64 96, ptr %13)
%42 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 0
%43 = load ptr, ptr %42, align 8, !nonnull !3, !align !5, !noundef !3
%44 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 1
%45 = load i64, ptr %44, align 8, !noundef !3
%46 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %14, i32 0, i32 1
%47 = load i64, ptr %46, align 8, !noundef !3
%48 = getelementptr inbounds { [12 x i64] }, ptr %43, i64 %47
call void @llvm.lifetime.start.p0(i64 96, ptr %7)
call void @llvm.lifetime.start.p0(i64 96, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %6, ptr align 8 %9, i64 96, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %6, i64 96, i1 false)
call void @llvm.lifetime.end.p0(i64 96, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %48, ptr align 8 %7, i64 96, i1 false)
call void @llvm.lifetime.end.p0(i64 96, ptr %7)
%49 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %14, i32 0, i32 1
%50 = load i64, ptr %49, align 8, !noundef !3
%51 = add nuw i64 %50, 1
%52 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %14, i32 0, i32 1
store i64 %51, ptr %52, align 8
br label %21
53: ; preds = %40
call void @llvm.lifetime.end.p0(i64 96, ptr %13)
call void @"_ZN4core3ptr78drop_in_place$LT$core..array..Guard$LT$v_frame..plane..Plane$LT$u8$GT$$GT$$GT$17h9e222b7074505075E"(ptr noalias noundef align 8 dereferenceable(24) %14) #13
br label %54
54: ; preds = %53
call void @llvm.lifetime.end.p0(i64 24, ptr %14)
br label %34
55: ; No predecessors!
br i1 true, label %62, label %56
56: ; preds = %62, %55
%57 = load ptr, ptr %5, align 8, !noundef !3
%58 = getelementptr inbounds { ptr, i32 }, ptr %5, i32 0, i32 1
%59 = load i32, ptr %58, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %5)
%60 = insertvalue { ptr, i32 } poison, ptr %57, 0
%61 = insertvalue { ptr, i32 } %60, i32 %59, 1
resume { ptr, i32 } %61
62: ; preds = %55
call void @"_ZN4core3ptr78drop_in_place$LT$core..array..Guard$LT$v_frame..plane..Plane$LT$u8$GT$$GT$$GT$17h9e222b7074505075E"(ptr noalias noundef align 8 dereferenceable(24) %14) #15
br label %56
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core5array25try_from_trusted_iterator17h5192ea6329bbf1aaE(ptr noalias nocapture noundef sret({ [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }) align 8 dereferenceable(288) %0, ptr noundef nonnull %1, ptr noundef %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca i8, align 1
%6 = alloca { ptr, ptr }, align 8
%7 = alloca { i64, { i64, i64 } }, align 8
%8 = alloca { ptr, ptr }, align 8
%9 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 0
store ptr %1, ptr %9, align 8
%10 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 1
store ptr %2, ptr %10, align 8
store i8 1, ptr %5, align 1
call void @llvm.lifetime.start.p0(i64 24, ptr %7)
call void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint17he1659d42c67b3ba2E"(ptr noalias nocapture noundef sret({ i64, { i64, i64 } }) align 8 dereferenceable(24) %7, ptr noalias noundef readonly align 8 dereferenceable(16) %8) #13
br label %11
11: ; preds = %3
%12 = load i64, ptr %7, align 8, !noundef !3
%13 = icmp uge i64 %12, 3
%14 = xor i1 %13, true
call void @llvm.lifetime.end.p0(i64 24, ptr %7)
br i1 %14, label %26, label %15
15: ; preds = %11
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store i8 0, ptr %5, align 1
%16 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 0
%17 = load ptr, ptr %16, align 8, !nonnull !3, !noundef !3
%18 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 1
%19 = load ptr, ptr %18, align 8, !noundef !3
%20 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 0
store ptr %17, ptr %20, align 8
%21 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
store ptr %19, ptr %21, align 8
%22 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 0
%23 = load ptr, ptr %22, align 8, !nonnull !3, !noundef !3
%24 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
%25 = load ptr, ptr %24, align 8, !noundef !3
call void @_ZN4core5array11try_from_fn17hdc315f85679df359E(ptr noalias nocapture noundef sret({ [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }) align 8 dereferenceable(288) %0, ptr noundef nonnull %23, ptr noundef %25) #13
br label %27
26: ; preds = %11
call void @_ZN4core9panicking5panic17h5caa4064b91696faE(ptr noalias noundef nonnull readonly align 1 @29, i64 noundef 41, ptr noalias noundef readonly align 8 dereferenceable(24) @31) #14
unreachable
27: ; preds = %15
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
ret void
28: ; No predecessors!
%29 = load i8, ptr %5, align 1, !range !9, !noundef !3
%30 = trunc i8 %29 to i1
br i1 %30, label %37, label %31
31: ; preds = %37, %28
%32 = load ptr, ptr %4, align 8, !noundef !3
%33 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%34 = load i32, ptr %33, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%35 = insertvalue { ptr, i32 } poison, ptr %32, 0
%36 = insertvalue { ptr, i32 } %35, i32 %34, 1
resume { ptr, i32 } %36
37: ; preds = %28
br label %31
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @_ZN4core5array25try_from_trusted_iterator17h96b883d9c2b6c62cE(ptr noalias nocapture noundef sret({ [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }) align 8 dereferenceable(288) %0, ptr noundef nonnull %1, ptr noundef %2) unnamed_addr #0 personality ptr @rust_eh_personality {
%4 = alloca { ptr, i32 }, align 8
%5 = alloca i8, align 1
%6 = alloca { ptr, ptr }, align 8
%7 = alloca { i64, { i64, i64 } }, align 8
%8 = alloca { ptr, ptr }, align 8
%9 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 0
store ptr %1, ptr %9, align 8
%10 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 1
store ptr %2, ptr %10, align 8
store i8 1, ptr %5, align 1
call void @llvm.lifetime.start.p0(i64 24, ptr %7)
call void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint17h2c34c6a7cedfa270E"(ptr noalias nocapture noundef sret({ i64, { i64, i64 } }) align 8 dereferenceable(24) %7, ptr noalias noundef readonly align 8 dereferenceable(16) %8) #13
br label %11
11: ; preds = %3
%12 = load i64, ptr %7, align 8, !noundef !3
%13 = icmp uge i64 %12, 3
%14 = xor i1 %13, true
call void @llvm.lifetime.end.p0(i64 24, ptr %7)
br i1 %14, label %26, label %15
15: ; preds = %11
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store i8 0, ptr %5, align 1
%16 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 0
%17 = load ptr, ptr %16, align 8, !nonnull !3, !noundef !3
%18 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 1
%19 = load ptr, ptr %18, align 8, !noundef !3
%20 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 0
store ptr %17, ptr %20, align 8
%21 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
store ptr %19, ptr %21, align 8
%22 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 0
%23 = load ptr, ptr %22, align 8, !nonnull !3, !noundef !3
%24 = getelementptr inbounds { ptr, ptr }, ptr %6, i32 0, i32 1
%25 = load ptr, ptr %24, align 8, !noundef !3
call void @_ZN4core5array11try_from_fn17h0adb5b8ac390549aE(ptr noalias nocapture noundef sret({ [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }) align 8 dereferenceable(288) %0, ptr noundef nonnull %23, ptr noundef %25) #13
br label %27
26: ; preds = %11
call void @_ZN4core9panicking5panic17h5caa4064b91696faE(ptr noalias noundef nonnull readonly align 1 @29, i64 noundef 41, ptr noalias noundef readonly align 8 dereferenceable(24) @31) #14
unreachable
27: ; preds = %15
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
ret void
28: ; No predecessors!
%29 = load i8, ptr %5, align 1, !range !9, !noundef !3
%30 = trunc i8 %29 to i1
br i1 %30, label %37, label %31
31: ; preds = %37, %28
%32 = load ptr, ptr %4, align 8, !noundef !3
%33 = getelementptr inbounds { ptr, i32 }, ptr %4, i32 0, i32 1
%34 = load i32, ptr %33, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
%35 = insertvalue { ptr, i32 } poison, ptr %32, 0
%36 = insertvalue { ptr, i32 } %35, i32 %34, 1
resume { ptr, i32 } %36
37: ; preds = %28
br label %31
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN4core5array25try_from_trusted_iterator4next28_$u7b$$u7b$closure$u7d$$u7d$17h06bd2682799ea457E"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } } }) align 8 dereferenceable(96) %0, ptr noalias noundef align 8 dereferenceable(16) %1, i64 noundef %2) unnamed_addr #0 {
call void @"_ZN121_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..unchecked_iterator..UncheckedIterator$GT$14next_unchecked17hafd3eb41d095d7d4E"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } } }) align 8 dereferenceable(96) %0, ptr noalias noundef align 8 dereferenceable(16) %1) #13
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN4core5array25try_from_trusted_iterator4next28_$u7b$$u7b$closure$u7d$$u7d$17h7e7df4dc80553f52E"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } } }) align 8 dereferenceable(96) %0, ptr noalias noundef align 8 dereferenceable(16) %1, i64 noundef %2) unnamed_addr #0 {
call void @"_ZN121_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..unchecked_iterator..UncheckedIterator$GT$14next_unchecked17hac1c80262a98ddecE"(ptr noalias nocapture noundef sret({ { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } } }) align 8 dereferenceable(96) %0, ptr noalias noundef align 8 dereferenceable(16) %1) #13
ret void
}
; Function Attrs: alwaysinline nounwind nonlazybind
define internal noundef i64 @"_ZN4core5clone5impls54_$LT$impl$u20$core..clone..Clone$u20$for$u20$usize$GT$5clone17h64a647c99b5caf8fE"(ptr noalias noundef readonly align 8 dereferenceable(8) %0) unnamed_addr #2 {
%2 = load i64, ptr %0, align 8, !noundef !3
ret i64 %2
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$12split_at_mut17h61c64403fcb6d59dE"(ptr noalias nocapture noundef sret({ { ptr, i64 }, { ptr, i64 } }) align 8 dereferenceable(32) %0, ptr noalias noundef nonnull align 4 %1, i64 noundef %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) unnamed_addr #0 {
%6 = alloca { ptr, i64 }, align 8
%7 = alloca { [2 x i64] }, align 8
%8 = alloca { ptr, i64 }, align 8
%9 = alloca { [2 x i64] }, align 8
%10 = icmp ule i64 %3, %2
%11 = xor i1 %10, true
br i1 %11, label %42, label %12
12: ; preds = %5
call void @llvm.lifetime.start.p0(i64 16, ptr %9)
call void @llvm.lifetime.start.p0(i64 16, ptr %8)
store ptr %1, ptr %8, align 8
%13 = getelementptr inbounds { ptr, i64 }, ptr %8, i32 0, i32 1
store i64 %3, ptr %13, align 8
%14 = getelementptr inbounds { ptr, i64 }, ptr %8, i32 0, i32 0
%15 = load ptr, ptr %14, align 8, !noundef !3
%16 = getelementptr inbounds { ptr, i64 }, ptr %8, i32 0, i32 1
%17 = load i64, ptr %16, align 8, !noundef !3
%18 = getelementptr inbounds { ptr, i64 }, ptr %9, i32 0, i32 0
store ptr %15, ptr %18, align 8
%19 = getelementptr inbounds { ptr, i64 }, ptr %9, i32 0, i32 1
store i64 %17, ptr %19, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %8)
%20 = getelementptr inbounds { ptr, i64 }, ptr %9, i32 0, i32 0
%21 = load ptr, ptr %20, align 8, !noundef !3
%22 = getelementptr inbounds { ptr, i64 }, ptr %9, i32 0, i32 1
%23 = load i64, ptr %22, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %9)
%24 = getelementptr inbounds i32, ptr %1, i64 %3
%25 = sub i64 %2, %3
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %24, ptr %6, align 8
%26 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 %25, ptr %26, align 8
%27 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%28 = load ptr, ptr %27, align 8, !noundef !3
%29 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%30 = load i64, ptr %29, align 8, !noundef !3
%31 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
store ptr %28, ptr %31, align 8
%32 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
store i64 %30, ptr %32, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%33 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
%34 = load ptr, ptr %33, align 8, !noundef !3
%35 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%36 = load i64, ptr %35, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%37 = getelementptr inbounds { ptr, i64 }, ptr %0, i32 0, i32 0
store ptr %21, ptr %37, align 8
%38 = getelementptr inbounds { ptr, i64 }, ptr %0, i32 0, i32 1
store i64 %23, ptr %38, align 8
%39 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 } }, ptr %0, i32 0, i32 1
%40 = getelementptr inbounds { ptr, i64 }, ptr %39, i32 0, i32 0
store ptr %34, ptr %40, align 8
%41 = getelementptr inbounds { ptr, i64 }, ptr %39, i32 0, i32 1
store i64 %36, ptr %41, align 8
ret void
42: ; preds = %5
call void @_ZN4core9panicking5panic17h5caa4064b91696faE(ptr noalias noundef nonnull readonly align 1 @32, i64 noundef 35, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$4swap17h76ccd7e2d4f0bcc1E"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, i64 noundef %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) unnamed_addr #0 {
%6 = alloca { [12 x i64] }, align 8
%7 = icmp ult i64 %2, %1
%8 = call i1 @llvm.expect.i1(i1 %7, i1 true)
br i1 %8, label %9, label %13
9: ; preds = %5
%10 = getelementptr inbounds [0 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %0, i64 0, i64 %2
%11 = icmp ult i64 %3, %1
%12 = call i1 @llvm.expect.i1(i1 %11, i1 true)
br i1 %12, label %14, label %16
13: ; preds = %5
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef %2, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
14: ; preds = %9
%15 = getelementptr inbounds [0 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %0, i64 0, i64 %3
call void @llvm.lifetime.start.p0(i64 96, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %6, ptr align 8 %10, i64 96, i1 false)
call void @llvm.memmove.p0.p0.i64(ptr align 8 %10, ptr align 8 %15, i64 96, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %15, ptr align 8 %6, i64 96, i1 false)
call void @llvm.lifetime.end.p0(i64 96, ptr %6)
ret void
16: ; preds = %9
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef %3, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$4swap17h7887f6cfc86527ebE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, i64 noundef %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) unnamed_addr #0 {
%6 = alloca ptr, align 8
%7 = icmp ult i64 %2, %1
%8 = call i1 @llvm.expect.i1(i1 %7, i1 true)
br i1 %8, label %9, label %13
9: ; preds = %5
%10 = getelementptr inbounds [0 x ptr], ptr %0, i64 0, i64 %2
%11 = icmp ult i64 %3, %1
%12 = call i1 @llvm.expect.i1(i1 %11, i1 true)
br i1 %12, label %14, label %16
13: ; preds = %5
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef %2, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
14: ; preds = %9
%15 = getelementptr inbounds [0 x ptr], ptr %0, i64 0, i64 %3
call void @llvm.lifetime.start.p0(i64 8, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %6, ptr align 8 %10, i64 8, i1 false)
call void @llvm.memmove.p0.p0.i64(ptr align 8 %10, ptr align 8 %15, i64 8, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %15, ptr align 8 %6, i64 8, i1 false)
call void @llvm.lifetime.end.p0(i64 8, ptr %6)
ret void
16: ; preds = %9
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef %3, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$4swap17hc7de5397331d6a7aE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, i64 noundef %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) unnamed_addr #0 {
%6 = alloca { [12 x i64] }, align 8
%7 = icmp ult i64 %2, %1
%8 = call i1 @llvm.expect.i1(i1 %7, i1 true)
br i1 %8, label %9, label %13
9: ; preds = %5
%10 = getelementptr inbounds [0 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %0, i64 0, i64 %2
%11 = icmp ult i64 %3, %1
%12 = call i1 @llvm.expect.i1(i1 %11, i1 true)
br i1 %12, label %14, label %16
13: ; preds = %5
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef %2, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
14: ; preds = %9
%15 = getelementptr inbounds [0 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %0, i64 0, i64 %3
call void @llvm.lifetime.start.p0(i64 96, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %6, ptr align 8 %10, i64 96, i1 false)
call void @llvm.memmove.p0.p0.i64(ptr align 8 %10, ptr align 8 %15, i64 96, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %15, ptr align 8 %6, i64 96, i1 false)
call void @llvm.lifetime.end.p0(i64 96, ptr %6)
ret void
16: ; preds = %9
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef %3, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$4swap17he8f258dde4ce78bcE"(ptr noalias noundef nonnull align 8 %0, i64 noundef %1, i64 noundef %2, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) %4) unnamed_addr #0 {
%6 = alloca ptr, align 8
%7 = icmp ult i64 %2, %1
%8 = call i1 @llvm.expect.i1(i1 %7, i1 true)
br i1 %8, label %9, label %13
9: ; preds = %5
%10 = getelementptr inbounds [0 x ptr], ptr %0, i64 0, i64 %2
%11 = icmp ult i64 %3, %1
%12 = call i1 @llvm.expect.i1(i1 %11, i1 true)
br i1 %12, label %14, label %16
13: ; preds = %5
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef %2, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
14: ; preds = %9
%15 = getelementptr inbounds [0 x ptr], ptr %0, i64 0, i64 %3
call void @llvm.lifetime.start.p0(i64 8, ptr %6)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %6, ptr align 8 %10, i64 8, i1 false)
call void @llvm.memmove.p0.p0.i64(ptr align 8 %10, ptr align 8 %15, i64 8, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %15, ptr align 8 %6, i64 8, i1 false)
call void @llvm.lifetime.end.p0(i64 8, ptr %6)
ret void
16: ; preds = %9
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef %3, i64 noundef %1, ptr noalias noundef readonly align 8 dereferenceable(24) %4) #14
unreachable
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef zeroext i1 @"_ZN51_$LT$u32$u20$as$u20$alloc..vec..is_zero..IsZero$GT$7is_zero17h57935e86efd2124fE"(ptr noalias noundef readonly align 4 dereferenceable(4) %0) unnamed_addr #0 {
%2 = load i32, ptr %0, align 4, !noundef !3
%3 = icmp eq i32 %2, 0
ret i1 %3
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN53_$LT$T$u20$as$u20$alloc..alloc..WriteCloneIntoRaw$GT$20write_clone_into_raw17h88bad52a650c5b06E"(ptr noalias noundef readonly align 8 dereferenceable(288) %0, ptr noundef %1) unnamed_addr #0 {
%3 = alloca { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }, align 8
call void @llvm.lifetime.start.p0(i64 288, ptr %3)
call void @"_ZN69_$LT$v_frame..frame..Frame$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17ha91d9573753f7108E"(ptr noalias nocapture noundef sret({ [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }) align 8 dereferenceable(288) %3, ptr noalias noundef readonly align 8 dereferenceable(288) %0) #13
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1, ptr align 8 %3, i64 288, i1 false)
call void @llvm.lifetime.end.p0(i64 288, ptr %3)
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN53_$LT$T$u20$as$u20$alloc..alloc..WriteCloneIntoRaw$GT$20write_clone_into_raw17hc824494f0b18bda8E"(ptr noalias noundef readonly align 8 dereferenceable(288) %0, ptr noundef %1) unnamed_addr #0 {
%3 = alloca { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }, align 8
call void @llvm.lifetime.start.p0(i64 288, ptr %3)
call void @"_ZN69_$LT$v_frame..frame..Frame$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h8034a3aa638d772fE"(ptr noalias nocapture noundef sret({ [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] }) align 8 dereferenceable(288) %3, ptr noalias noundef readonly align 8 dereferenceable(288) %0) #13
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1, ptr align 8 %3, i64 288, i1 false)
call void @llvm.lifetime.end.p0(i64 288, ptr %3)
ret void
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN59_$LT$alloc..alloc..Global$u20$as$u20$core..clone..Clone$GT$5clone17hbca569b17258c258E"(ptr noalias noundef nonnull readonly align 1 %0) unnamed_addr #0 {
ret void
}
; Function Attrs: nounwind nonlazybind
define hidden { i64, ptr } @"_ZN5alloc11collections5btree6search20SearchBound$LT$T$GT$10from_range17h4253ae71824d64a6E"(i64 noundef %0, ptr %1) unnamed_addr #1 {
%3 = alloca { i64, ptr }, align 8
%4 = alloca { i64, ptr }, align 8
%5 = getelementptr inbounds { i64, ptr }, ptr %4, i32 0, i32 0
store i64 %0, ptr %5, align 8
%6 = getelementptr inbounds { i64, ptr }, ptr %4, i32 0, i32 1
store ptr %1, ptr %6, align 8
%7 = load i64, ptr %4, align 8, !range !13, !noundef !3
switch i64 %7, label %8 [
i64 0, label %9
i64 1, label %13
i64 2, label %17
]
8: ; preds = %2
unreachable
9: ; preds = %2
%10 = getelementptr inbounds { i64, ptr }, ptr %4, i32 0, i32 1
%11 = load ptr, ptr %10, align 8, !nonnull !3, !align !5, !noundef !3
%12 = getelementptr inbounds { i64, ptr }, ptr %3, i32 0, i32 1
store ptr %11, ptr %12, align 8
store i64 0, ptr %3, align 8
br label %18
13: ; preds = %2
%14 = getelementptr inbounds { i64, ptr }, ptr %4, i32 0, i32 1
%15 = load ptr, ptr %14, align 8, !nonnull !3, !align !5, !noundef !3
%16 = getelementptr inbounds { i64, ptr }, ptr %3, i32 0, i32 1
store ptr %15, ptr %16, align 8
store i64 1, ptr %3, align 8
br label %18
17: ; preds = %2
store i64 2, ptr %3, align 8
br label %18
18: ; preds = %17, %13, %9
%19 = getelementptr inbounds { i64, ptr }, ptr %3, i32 0, i32 0
%20 = load i64, ptr %19, align 8, !range !14, !noundef !3
%21 = getelementptr inbounds { i64, ptr }, ptr %3, i32 0, i32 1
%22 = load ptr, ptr %21, align 8
%23 = insertvalue { i64, ptr } poison, i64 %20, 0
%24 = insertvalue { i64, ptr } %23, ptr %22, 1
ret { i64, ptr } %24
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h87bbe1fee9a61e2bE"(ptr noalias noundef align 8 dereferenceable(24) %0, i32 noundef %1) unnamed_addr #0 personality ptr @rust_eh_personality {
%3 = alloca { ptr, i32 }, align 8
%4 = alloca i64, align 8
%5 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %0, i32 0, i32 1
%6 = load i64, ptr %5, align 8, !noundef !3
call void @llvm.lifetime.start.p0(i64 8, ptr %4)
br i1 false, label %10, label %7
7: ; preds = %2
%8 = getelementptr inbounds { ptr, i64 }, ptr %0, i32 0, i32 1
%9 = load i64, ptr %8, align 8, !noundef !3
store i64 %9, ptr %4, align 8
br label %11
10: ; preds = %2
store i64 -1, ptr %4, align 8
br label %11
11: ; preds = %10, %7
%12 = load i64, ptr %4, align 8, !noundef !3
%13 = icmp eq i64 %6, %12
call void @llvm.lifetime.end.p0(i64 8, ptr %4)
br i1 %13, label %23, label %14
14: ; preds = %26, %11
%15 = load ptr, ptr %0, align 8, !nonnull !3, !noundef !3
%16 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %0, i32 0, i32 1
%17 = load i64, ptr %16, align 8, !noundef !3
%18 = getelementptr inbounds i32, ptr %15, i64 %17
store i32 %1, ptr %18, align 4
%19 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %0, i32 0, i32 1
%20 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %0, i32 0, i32 1
%21 = load i64, ptr %20, align 8, !noundef !3
%22 = add i64 %21, 1
store i64 %22, ptr %19, align 8
ret void
23: ; preds = %11
%24 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %0, i32 0, i32 1
%25 = load i64, ptr %24, align 8, !noundef !3
call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17ha9d9e2704ebf5216E"(ptr noalias noundef align 8 dereferenceable(16) %0, i64 noundef %25) #13
br label %26
26: ; preds = %23
br label %14
27: ; No predecessors!
br i1 true, label %34, label %28
28: ; preds = %34, %27
%29 = load ptr, ptr %3, align 8, !noundef !3
%30 = getelementptr inbounds { ptr, i32 }, ptr %3, i32 0, i32 1
%31 = load i32, ptr %30, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %3)
%32 = insertvalue { ptr, i32 } poison, ptr %29, 0
%33 = insertvalue { ptr, i32 } %32, i32 %31, 1
resume { ptr, i32 } %33
34: ; preds = %27
br label %28
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef nonnull ptr @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$13new_uninit_in17h6096c3b882b27269E"() unnamed_addr #0 personality ptr @rust_eh_personality {
%1 = alloca { ptr, i32 }, align 8
%2 = alloca ptr, align 8
%3 = alloca ptr, align 8
%4 = alloca { i64, i64 }, align 8
%5 = alloca ptr, align 8
%6 = alloca {}, align 1
call void @llvm.lifetime.start.p0(i64 16, ptr %4)
call void @llvm.assume(i1 true)
call void @llvm.assume(i1 true)
%7 = getelementptr inbounds { i64, i64 }, ptr %4, i32 0, i32 1
store i64 288, ptr %7, align 8
store i64 8, ptr %4, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %3)
store ptr %6, ptr %3, align 8
%8 = getelementptr inbounds { i64, i64 }, ptr %4, i32 0, i32 0
%9 = load i64, ptr %8, align 8, !range !15, !noundef !3
%10 = getelementptr inbounds { i64, i64 }, ptr %4, i32 0, i32 1
%11 = load i64, ptr %10, align 8, !noundef !3
%12 = load ptr, ptr %3, align 8, !nonnull !3, !align !4, !noundef !3
%13 = call noundef ptr @"_ZN5alloc4sync12Arc$LT$T$GT$19allocate_for_layout17hd03b5aae48be8680E"(i64 noundef %9, i64 noundef %11, ptr noalias noundef nonnull readonly align 1 %12) #13
br label %14
14: ; preds = %0
call void @llvm.lifetime.end.p0(i64 8, ptr %3)
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
call void @llvm.lifetime.start.p0(i64 8, ptr %2)
store ptr %13, ptr %2, align 8
%15 = load ptr, ptr %2, align 8, !nonnull !3, !noundef !3
store ptr %15, ptr %5, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %2)
%16 = load ptr, ptr %5, align 8, !nonnull !3, !noundef !3
ret ptr %16
17: ; No predecessors!
br i1 true, label %24, label %18
18: ; preds = %24, %17
%19 = load ptr, ptr %1, align 8, !noundef !3
%20 = getelementptr inbounds { ptr, i32 }, ptr %1, i32 0, i32 1
%21 = load i32, ptr %20, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %1)
%22 = insertvalue { ptr, i32 } poison, ptr %19, 0
%23 = insertvalue { ptr, i32 } %22, i32 %21, 1
resume { ptr, i32 } %23
24: ; preds = %17
br label %18
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef nonnull ptr @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$13new_uninit_in17h78bda6ac0cfb17dfE"() unnamed_addr #0 personality ptr @rust_eh_personality {
%1 = alloca { ptr, i32 }, align 8
%2 = alloca ptr, align 8
%3 = alloca ptr, align 8
%4 = alloca { i64, i64 }, align 8
%5 = alloca ptr, align 8
%6 = alloca {}, align 1
call void @llvm.lifetime.start.p0(i64 16, ptr %4)
call void @llvm.assume(i1 true)
call void @llvm.assume(i1 true)
%7 = getelementptr inbounds { i64, i64 }, ptr %4, i32 0, i32 1
store i64 288, ptr %7, align 8
store i64 8, ptr %4, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %3)
store ptr %6, ptr %3, align 8
%8 = getelementptr inbounds { i64, i64 }, ptr %4, i32 0, i32 0
%9 = load i64, ptr %8, align 8, !range !15, !noundef !3
%10 = getelementptr inbounds { i64, i64 }, ptr %4, i32 0, i32 1
%11 = load i64, ptr %10, align 8, !noundef !3
%12 = load ptr, ptr %3, align 8, !nonnull !3, !align !4, !noundef !3
%13 = call noundef ptr @"_ZN5alloc4sync12Arc$LT$T$GT$19allocate_for_layout17h4cfa2eccf6fe08dbE"(i64 noundef %9, i64 noundef %11, ptr noalias noundef nonnull readonly align 1 %12) #13
br label %14
14: ; preds = %0
call void @llvm.lifetime.end.p0(i64 8, ptr %3)
call void @llvm.lifetime.end.p0(i64 16, ptr %4)
call void @llvm.lifetime.start.p0(i64 8, ptr %2)
store ptr %13, ptr %2, align 8
%15 = load ptr, ptr %2, align 8, !nonnull !3, !noundef !3
store ptr %15, ptr %5, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %2)
%16 = load ptr, ptr %5, align 8, !nonnull !3, !noundef !3
ret ptr %16
17: ; No predecessors!
br i1 true, label %24, label %18
18: ; preds = %24, %17
%19 = load ptr, ptr %1, align 8, !noundef !3
%20 = getelementptr inbounds { ptr, i32 }, ptr %1, i32 0, i32 1
%21 = load i32, ptr %20, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %1)
%22 = insertvalue { ptr, i32 } poison, ptr %19, 0
%23 = insertvalue { ptr, i32 } %22, i32 %21, 1
resume { ptr, i32 } %23
24: ; preds = %17
br label %18
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef align 8 dereferenceable(288) ptr @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$8make_mut17h2121d83b364ee299E"(ptr noalias noundef align 8 dereferenceable(8) %0) unnamed_addr #0 personality ptr @rust_eh_personality {
%2 = alloca { ptr, i32 }, align 8
%3 = alloca ptr, align 8
%4 = alloca ptr, align 8
%5 = alloca ptr, align 8
%6 = alloca ptr, align 8
%7 = alloca i8, align 1
%8 = alloca ptr, align 8
%9 = alloca ptr, align 8
%10 = alloca ptr, align 8
%11 = alloca ptr, align 8
%12 = alloca ptr, align 8
%13 = alloca { i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %13)
%14 = load ptr, ptr %0, align 8, !nonnull !3, !noundef !3
%15 = call { i64, i64 } @_ZN4core4sync6atomic23atomic_compare_exchange17hc59330ac955cc136E(ptr noundef %14, i64 noundef 1, i64 noundef 0, i8 noundef 2, i8 noundef 0) #13
store { i64, i64 } %15, ptr %13, align 8
%16 = load i64, ptr %13, align 8, !range !7, !noundef !3
%17 = icmp eq i64 %16, 0
%18 = xor i1 %17, true
call void @llvm.lifetime.end.p0(i64 16, ptr %13)
br i1 %18, label %24, label %19
19: ; preds = %1
%20 = load ptr, ptr %0, align 8, !nonnull !3, !noundef !3
%21 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %20, i32 0, i32 1
%22 = call noundef i64 @_ZN4core4sync6atomic11atomic_load17h24c4e15a6bba1f6aE(ptr noundef %21, i8 noundef 0) #13
%23 = icmp eq i64 %22, 1
br i1 %23, label %30, label %32
24: ; preds = %1
call void @llvm.lifetime.start.p0(i64 8, ptr %12)
call void @"_ZN59_$LT$alloc..alloc..Global$u20$as$u20$core..clone..Clone$GT$5clone17hbca569b17258c258E"(ptr noalias noundef nonnull readonly align 1 %0) #13
%25 = call noundef nonnull ptr @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$13new_uninit_in17h6096c3b882b27269E"() #13
store ptr %25, ptr %12, align 8
store i8 1, ptr %7, align 1
%26 = load ptr, ptr %12, align 8, !nonnull !3, !noundef !3
%27 = load ptr, ptr %0, align 8, !nonnull !3, !noundef !3
%28 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %27, i32 0, i32 2
%29 = getelementptr inbounds { { i64 }, { i64 }, { [36 x i64] } }, ptr %26, i32 0, i32 2
call void @"_ZN53_$LT$T$u20$as$u20$alloc..alloc..WriteCloneIntoRaw$GT$20write_clone_into_raw17h88bad52a650c5b06E"(ptr noalias noundef readonly align 8 dereferenceable(288) %28, ptr noundef %29) #13
br label %58
30: ; preds = %19
%31 = load ptr, ptr %0, align 8, !nonnull !3, !noundef !3
call void @_ZN4core4sync6atomic12atomic_store17h12730a5906b04930E(ptr noundef %31, i64 noundef 1, i8 noundef 1) #13
br label %34
32: ; preds = %19
call void @llvm.lifetime.start.p0(i64 8, ptr %10)
%33 = load ptr, ptr %0, align 8, !nonnull !3, !noundef !3
call void @"_ZN59_$LT$alloc..alloc..Global$u20$as$u20$core..clone..Clone$GT$5clone17hbca569b17258c258E"(ptr noalias noundef nonnull readonly align 1 %0) #13
store ptr %33, ptr %10, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %9)
call void @"_ZN59_$LT$alloc..alloc..Global$u20$as$u20$core..clone..Clone$GT$5clone17hbca569b17258c258E"(ptr noalias noundef nonnull readonly align 1 %0) #13
br label %37
34: ; preds = %63, %46, %30
%35 = load ptr, ptr %0, align 8, !nonnull !3, !noundef !3
%36 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %35, i32 0, i32 2
ret ptr %36
37: ; preds = %32
%38 = call noundef nonnull ptr @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$13new_uninit_in17h6096c3b882b27269E"() #13
store ptr %38, ptr %9, align 8
br label %39
39: ; preds = %37
%40 = load ptr, ptr %9, align 8, !nonnull !3, !noundef !3
%41 = getelementptr inbounds { { i64 }, { i64 }, { [36 x i64] } }, ptr %40, i32 0, i32 2
%42 = load ptr, ptr %0, align 8, !nonnull !3, !noundef !3
%43 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %42, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %41, ptr align 8 %43, i64 288, i1 false)
%44 = load ptr, ptr %9, align 8, !nonnull !3, !noundef !3
call void @llvm.lifetime.start.p0(i64 8, ptr %4)
store ptr %44, ptr %4, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %3)
%45 = load ptr, ptr %4, align 8, !nonnull !3, !noundef !3
store ptr %45, ptr %3, align 8
call void @"_ZN59_$LT$alloc..alloc..Global$u20$as$u20$core..clone..Clone$GT$5clone17hbca569b17258c258E"(ptr noalias noundef nonnull readonly align 1 %4) #13
br label %46
46: ; preds = %39
%47 = load ptr, ptr %3, align 8, !nonnull !3, !noundef !3
store ptr %47, ptr %8, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %3)
call void @llvm.lifetime.end.p0(i64 8, ptr %4)
%48 = load ptr, ptr %8, align 8, !nonnull !3, !noundef !3
store ptr %48, ptr %0, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %9)
call void @"_ZN4core3ptr78drop_in_place$LT$alloc..sync..Weak$LT$v_frame..frame..Frame$LT$u16$GT$$GT$$GT$17h9042a4bed431c757E"(ptr noalias noundef align 8 dereferenceable(8) %10) #13
call void @llvm.lifetime.end.p0(i64 8, ptr %10)
br label %34
49: ; No predecessors!
br i1 false, label %51, label %50
50: ; preds = %51, %49
call void @"_ZN4core3ptr78drop_in_place$LT$alloc..sync..Weak$LT$v_frame..frame..Frame$LT$u16$GT$$GT$$GT$17h9042a4bed431c757E"(ptr noalias noundef align 8 dereferenceable(8) %10) #15
br label %52
51: ; preds = %49
call void @"_ZN4core3ptr121drop_in_place$LT$alloc..sync..Arc$LT$core..mem..maybe_uninit..MaybeUninit$LT$v_frame..frame..Frame$LT$u16$GT$$GT$$GT$$GT$17hbdb7d029a334ef57E"(ptr noalias noundef align 8 dereferenceable(8) %9) #15
br label %50
52: ; preds = %70, %67, %50
%53 = load ptr, ptr %2, align 8, !noundef !3
%54 = getelementptr inbounds { ptr, i32 }, ptr %2, i32 0, i32 1
%55 = load i32, ptr %54, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %2)
%56 = insertvalue { ptr, i32 } poison, ptr %53, 0
%57 = insertvalue { ptr, i32 } %56, i32 %55, 1
resume { ptr, i32 } %57
58: ; preds = %24
call void @llvm.lifetime.start.p0(i64 8, ptr %11)
store i8 0, ptr %7, align 1
%59 = load ptr, ptr %12, align 8, !nonnull !3, !noundef !3
call void @llvm.lifetime.start.p0(i64 8, ptr %6)
store ptr %59, ptr %6, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %5)
%60 = load ptr, ptr %6, align 8, !nonnull !3, !noundef !3
store ptr %60, ptr %5, align 8
call void @"_ZN59_$LT$alloc..alloc..Global$u20$as$u20$core..clone..Clone$GT$5clone17hbca569b17258c258E"(ptr noalias noundef nonnull readonly align 1 %6) #13
br label %61
61: ; preds = %58
%62 = load ptr, ptr %5, align 8, !nonnull !3, !noundef !3
store ptr %62, ptr %11, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %5)
call void @llvm.lifetime.end.p0(i64 8, ptr %6)
call void @"_ZN4core3ptr77drop_in_place$LT$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u16$GT$$GT$$GT$17h72bdb586bad2ecf3E"(ptr noalias noundef align 8 dereferenceable(8) %0) #13
br label %63
63: ; preds = %61
%64 = load ptr, ptr %11, align 8, !nonnull !3, !noundef !3
store ptr %64, ptr %0, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %11)
call void @llvm.lifetime.end.p0(i64 8, ptr %12)
br label %34
65: ; No predecessors!
%66 = load ptr, ptr %11, align 8, !nonnull !3, !noundef !3
store ptr %66, ptr %0, align 8
br label %67
67: ; preds = %65
%68 = load i8, ptr %7, align 1, !range !9, !noundef !3
%69 = trunc i8 %68 to i1
br i1 %69, label %70, label %52
70: ; preds = %67
call void @"_ZN4core3ptr121drop_in_place$LT$alloc..sync..Arc$LT$core..mem..maybe_uninit..MaybeUninit$LT$v_frame..frame..Frame$LT$u16$GT$$GT$$GT$$GT$17hbdb7d029a334ef57E"(ptr noalias noundef align 8 dereferenceable(8) %12) #15
br label %52
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef align 8 dereferenceable(288) ptr @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$8make_mut17h725ef28663040487E"(ptr noalias noundef align 8 dereferenceable(8) %0) unnamed_addr #0 personality ptr @rust_eh_personality {
%2 = alloca { ptr, i32 }, align 8
%3 = alloca ptr, align 8
%4 = alloca ptr, align 8
%5 = alloca ptr, align 8
%6 = alloca ptr, align 8
%7 = alloca i8, align 1
%8 = alloca ptr, align 8
%9 = alloca ptr, align 8
%10 = alloca ptr, align 8
%11 = alloca ptr, align 8
%12 = alloca ptr, align 8
%13 = alloca { i64, i64 }, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %13)
%14 = load ptr, ptr %0, align 8, !nonnull !3, !noundef !3
%15 = call { i64, i64 } @_ZN4core4sync6atomic23atomic_compare_exchange17hc59330ac955cc136E(ptr noundef %14, i64 noundef 1, i64 noundef 0, i8 noundef 2, i8 noundef 0) #13
store { i64, i64 } %15, ptr %13, align 8
%16 = load i64, ptr %13, align 8, !range !7, !noundef !3
%17 = icmp eq i64 %16, 0
%18 = xor i1 %17, true
call void @llvm.lifetime.end.p0(i64 16, ptr %13)
br i1 %18, label %24, label %19
19: ; preds = %1
%20 = load ptr, ptr %0, align 8, !nonnull !3, !noundef !3
%21 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %20, i32 0, i32 1
%22 = call noundef i64 @_ZN4core4sync6atomic11atomic_load17h24c4e15a6bba1f6aE(ptr noundef %21, i8 noundef 0) #13
%23 = icmp eq i64 %22, 1
br i1 %23, label %30, label %32
24: ; preds = %1
call void @llvm.lifetime.start.p0(i64 8, ptr %12)
call void @"_ZN59_$LT$alloc..alloc..Global$u20$as$u20$core..clone..Clone$GT$5clone17hbca569b17258c258E"(ptr noalias noundef nonnull readonly align 1 %0) #13
%25 = call noundef nonnull ptr @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$13new_uninit_in17h78bda6ac0cfb17dfE"() #13
store ptr %25, ptr %12, align 8
store i8 1, ptr %7, align 1
%26 = load ptr, ptr %12, align 8, !nonnull !3, !noundef !3
%27 = load ptr, ptr %0, align 8, !nonnull !3, !noundef !3
%28 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %27, i32 0, i32 2
%29 = getelementptr inbounds { { i64 }, { i64 }, { [36 x i64] } }, ptr %26, i32 0, i32 2
call void @"_ZN53_$LT$T$u20$as$u20$alloc..alloc..WriteCloneIntoRaw$GT$20write_clone_into_raw17hc824494f0b18bda8E"(ptr noalias noundef readonly align 8 dereferenceable(288) %28, ptr noundef %29) #13
br label %58
30: ; preds = %19
%31 = load ptr, ptr %0, align 8, !nonnull !3, !noundef !3
call void @_ZN4core4sync6atomic12atomic_store17h12730a5906b04930E(ptr noundef %31, i64 noundef 1, i8 noundef 1) #13
br label %34
32: ; preds = %19
call void @llvm.lifetime.start.p0(i64 8, ptr %10)
%33 = load ptr, ptr %0, align 8, !nonnull !3, !noundef !3
call void @"_ZN59_$LT$alloc..alloc..Global$u20$as$u20$core..clone..Clone$GT$5clone17hbca569b17258c258E"(ptr noalias noundef nonnull readonly align 1 %0) #13
store ptr %33, ptr %10, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %9)
call void @"_ZN59_$LT$alloc..alloc..Global$u20$as$u20$core..clone..Clone$GT$5clone17hbca569b17258c258E"(ptr noalias noundef nonnull readonly align 1 %0) #13
br label %37
34: ; preds = %63, %46, %30
%35 = load ptr, ptr %0, align 8, !nonnull !3, !noundef !3
%36 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %35, i32 0, i32 2
ret ptr %36
37: ; preds = %32
%38 = call noundef nonnull ptr @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$13new_uninit_in17h78bda6ac0cfb17dfE"() #13
store ptr %38, ptr %9, align 8
br label %39
39: ; preds = %37
%40 = load ptr, ptr %9, align 8, !nonnull !3, !noundef !3
%41 = getelementptr inbounds { { i64 }, { i64 }, { [36 x i64] } }, ptr %40, i32 0, i32 2
%42 = load ptr, ptr %0, align 8, !nonnull !3, !noundef !3
%43 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %42, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %41, ptr align 8 %43, i64 288, i1 false)
%44 = load ptr, ptr %9, align 8, !nonnull !3, !noundef !3
call void @llvm.lifetime.start.p0(i64 8, ptr %4)
store ptr %44, ptr %4, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %3)
%45 = load ptr, ptr %4, align 8, !nonnull !3, !noundef !3
store ptr %45, ptr %3, align 8
call void @"_ZN59_$LT$alloc..alloc..Global$u20$as$u20$core..clone..Clone$GT$5clone17hbca569b17258c258E"(ptr noalias noundef nonnull readonly align 1 %4) #13
br label %46
46: ; preds = %39
%47 = load ptr, ptr %3, align 8, !nonnull !3, !noundef !3
store ptr %47, ptr %8, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %3)
call void @llvm.lifetime.end.p0(i64 8, ptr %4)
%48 = load ptr, ptr %8, align 8, !nonnull !3, !noundef !3
store ptr %48, ptr %0, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %9)
call void @"_ZN4core3ptr77drop_in_place$LT$alloc..sync..Weak$LT$v_frame..frame..Frame$LT$u8$GT$$GT$$GT$17h98139521eaf8c464E"(ptr noalias noundef align 8 dereferenceable(8) %10) #13
call void @llvm.lifetime.end.p0(i64 8, ptr %10)
br label %34
49: ; No predecessors!
br i1 false, label %51, label %50
50: ; preds = %51, %49
call void @"_ZN4core3ptr77drop_in_place$LT$alloc..sync..Weak$LT$v_frame..frame..Frame$LT$u8$GT$$GT$$GT$17h98139521eaf8c464E"(ptr noalias noundef align 8 dereferenceable(8) %10) #15
br label %52
51: ; preds = %49
call void @"_ZN4core3ptr120drop_in_place$LT$alloc..sync..Arc$LT$core..mem..maybe_uninit..MaybeUninit$LT$v_frame..frame..Frame$LT$u8$GT$$GT$$GT$$GT$17hed25e12930b6adcdE"(ptr noalias noundef align 8 dereferenceable(8) %9) #15
br label %50
52: ; preds = %70, %67, %50
%53 = load ptr, ptr %2, align 8, !noundef !3
%54 = getelementptr inbounds { ptr, i32 }, ptr %2, i32 0, i32 1
%55 = load i32, ptr %54, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %2)
%56 = insertvalue { ptr, i32 } poison, ptr %53, 0
%57 = insertvalue { ptr, i32 } %56, i32 %55, 1
resume { ptr, i32 } %57
58: ; preds = %24
call void @llvm.lifetime.start.p0(i64 8, ptr %11)
store i8 0, ptr %7, align 1
%59 = load ptr, ptr %12, align 8, !nonnull !3, !noundef !3
call void @llvm.lifetime.start.p0(i64 8, ptr %6)
store ptr %59, ptr %6, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %5)
%60 = load ptr, ptr %6, align 8, !nonnull !3, !noundef !3
store ptr %60, ptr %5, align 8
call void @"_ZN59_$LT$alloc..alloc..Global$u20$as$u20$core..clone..Clone$GT$5clone17hbca569b17258c258E"(ptr noalias noundef nonnull readonly align 1 %6) #13
br label %61
61: ; preds = %58
%62 = load ptr, ptr %5, align 8, !nonnull !3, !noundef !3
store ptr %62, ptr %11, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %5)
call void @llvm.lifetime.end.p0(i64 8, ptr %6)
call void @"_ZN4core3ptr76drop_in_place$LT$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u8$GT$$GT$$GT$17hb99adee657fc5b66E"(ptr noalias noundef align 8 dereferenceable(8) %0) #13
br label %63
63: ; preds = %61
%64 = load ptr, ptr %11, align 8, !nonnull !3, !noundef !3
store ptr %64, ptr %0, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %11)
call void @llvm.lifetime.end.p0(i64 8, ptr %12)
br label %34
65: ; No predecessors!
%66 = load ptr, ptr %11, align 8, !nonnull !3, !noundef !3
store ptr %66, ptr %0, align 8
br label %67
67: ; preds = %65
%68 = load i8, ptr %7, align 1, !range !9, !noundef !3
%69 = trunc i8 %68 to i1
br i1 %69, label %70, label %52
70: ; preds = %67
call void @"_ZN4core3ptr120drop_in_place$LT$alloc..sync..Arc$LT$core..mem..maybe_uninit..MaybeUninit$LT$v_frame..frame..Frame$LT$u8$GT$$GT$$GT$$GT$17hed25e12930b6adcdE"(ptr noalias noundef align 8 dereferenceable(8) %12) #15
br label %52
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$14run_comparison17ha95ba896c5319333E"(ptr noalias noundef align 8 dereferenceable(704) %0, ptr noundef nonnull %1, ptr noundef nonnull %2, i64 noundef %3) unnamed_addr #1 {
%5 = alloca ptr, align 8
%6 = alloca { ptr, i64 }, align 8
%7 = alloca { [2 x i64] }, align 8
%8 = alloca { double, double, double, double, double }, align 8
%9 = alloca i8, align 1
%10 = alloca { i64, i64 }, align 8
%11 = alloca { i64, i64 }, align 8
%12 = alloca { i64, i64 }, align 8
%13 = alloca { i64, double }, align 8
%14 = alloca { {}, { { ptr, ptr }, i64 } }, align 8
%15 = alloca { ptr, ptr }, align 8
%16 = alloca { { ptr, ptr }, i64 }, align 8
%17 = alloca { {}, { { ptr, ptr }, i64 } }, align 8
%18 = alloca double, align 8
%19 = alloca i8, align 1
%20 = alloca { double, double, double, double, double }, align 8
call void @llvm.lifetime.start.p0(i64 40, ptr %20)
%21 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 15
%22 = load i8, ptr %21, align 8, !range !11, !noundef !3
%23 = zext i8 %22 to i64
%24 = load i8, ptr @33, align 1, !range !11, !noundef !3
%25 = zext i8 %24 to i64
%26 = icmp eq i64 %23, %25
br i1 %26, label %28, label %27
27: ; preds = %4
call void @"_ZN5rav1e11scenechange8standard66_$LT$impl$u20$rav1e..scenechange..SceneChangeDetector$LT$T$GT$$GT$13cost_scenecut17h61f3f7bf4e5b205bE"(ptr noalias nocapture noundef sret({ double, double, double, double, double }) align 8 dereferenceable(40) %20, ptr noalias noundef align 8 dereferenceable(704) %0, ptr noundef nonnull %1, ptr noundef nonnull %2, i64 noundef %3) #13
br label %29
28: ; preds = %4
call void @"_ZN5rav1e11scenechange4fast66_$LT$impl$u20$rav1e..scenechange..SceneChangeDetector$LT$T$GT$$GT$13fast_scenecut17h64a920f16f77f883E"(ptr noalias nocapture noundef sret({ double, double, double, double, double }) align 8 dereferenceable(40) %20, ptr noalias noundef align 8 dereferenceable(704) %0, ptr noundef nonnull %1, ptr noundef nonnull %2) #13
br label %29
29: ; preds = %28, %27
call void @llvm.lifetime.start.p0(i64 1, ptr %19)
%30 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 15
%31 = load i8, ptr %30, align 8, !range !11, !noundef !3
%32 = zext i8 %31 to i64
%33 = load i8, ptr @33, align 1, !range !11, !noundef !3
%34 = zext i8 %33 to i64
%35 = icmp eq i64 %32, %34
%36 = xor i1 %35, true
br i1 %36, label %38, label %37
37: ; preds = %29
store i8 0, ptr %19, align 1
br label %43
38: ; preds = %29
%39 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%40 = load i64, ptr %39, align 8, !noundef !3
%41 = icmp ugt i64 %40, 0
%42 = zext i1 %41 to i8
store i8 %42, ptr %19, align 1
br label %43
43: ; preds = %38, %37
%44 = load i8, ptr %19, align 1, !range !9, !noundef !3
%45 = trunc i8 %44 to i1
br i1 %45, label %48, label %46
46: ; preds = %107, %43
call void @llvm.lifetime.end.p0(i64 1, ptr %19)
%47 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
call void @llvm.lifetime.start.p0(i64 40, ptr %8)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %20, i64 40, i1 false)
call void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$6insert17h7d66011cedb90fa0E"(ptr noalias noundef align 8 dereferenceable(24) %47, i64 noundef 0, ptr noalias nocapture noundef align 8 dereferenceable(40) %8) #13
call void @llvm.lifetime.end.p0(i64 40, ptr %8)
call void @llvm.lifetime.end.p0(i64 40, ptr %20)
ret void
48: ; preds = %43
%49 = icmp eq i64 %3, 1
br i1 %49, label %50, label %52
50: ; preds = %48
%51 = getelementptr inbounds { double, double, double, double, double }, ptr %20, i32 0, i32 2
store double 0.000000e+00, ptr %51, align 8
br label %81
52: ; preds = %48
call void @llvm.lifetime.start.p0(i64 8, ptr %18)
store double 0x7FEFFFFFFFFFFFFF, ptr %18, align 8
call void @llvm.lifetime.start.p0(i64 24, ptr %16)
call void @llvm.lifetime.start.p0(i64 16, ptr %15)
%53 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%54 = load ptr, ptr %53, align 8, !nonnull !3, !noundef !3
%55 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%56 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %55, i32 0, i32 1
%57 = load i64, ptr %56, align 8, !noundef !3
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %54, ptr %6, align 8
%58 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 %57, ptr %58, align 8
%59 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%60 = load ptr, ptr %59, align 8, !noundef !3
%61 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%62 = load i64, ptr %61, align 8, !noundef !3
%63 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
store ptr %60, ptr %63, align 8
%64 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
store i64 %62, ptr %64, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%65 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
%66 = load ptr, ptr %65, align 8, !noundef !3
%67 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%68 = load i64, ptr %67, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%69 = getelementptr inbounds { double, double, double, double, double }, ptr %66, i64 %68
call void @llvm.lifetime.start.p0(i64 8, ptr %5)
store ptr %66, ptr %5, align 8
%70 = load ptr, ptr %5, align 8, !nonnull !3, !noundef !3
store ptr %70, ptr %15, align 8
%71 = getelementptr inbounds { ptr, ptr }, ptr %15, i32 0, i32 1
store ptr %69, ptr %71, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %5)
%72 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%73 = load i64, ptr %72, align 8, !noundef !3
%74 = getelementptr inbounds { ptr, ptr }, ptr %15, i32 0, i32 0
%75 = load ptr, ptr %74, align 8, !nonnull !3, !noundef !3
%76 = getelementptr inbounds { ptr, ptr }, ptr %15, i32 0, i32 1
%77 = load ptr, ptr %76, align 8, !noundef !3
%78 = getelementptr inbounds { ptr, ptr }, ptr %16, i32 0, i32 0
store ptr %75, ptr %78, align 8
%79 = getelementptr inbounds { ptr, ptr }, ptr %16, i32 0, i32 1
store ptr %77, ptr %79, align 8
%80 = getelementptr inbounds { { ptr, ptr }, i64 }, ptr %16, i32 0, i32 1
store i64 %73, ptr %80, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %15)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %17, ptr align 8 %16, i64 24, i1 false)
call void @llvm.lifetime.end.p0(i64 24, ptr %16)
call void @llvm.lifetime.start.p0(i64 24, ptr %14)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %14, ptr align 8 %17, i64 24, i1 false)
br label %87
81: ; preds = %91, %50
%82 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%83 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %82, i32 0, i32 1
%84 = load i64, ptr %83, align 8, !noundef !3
%85 = icmp eq i64 %84, 0
%86 = xor i1 %85, true
br i1 %86, label %108, label %107
87: ; preds = %105, %52
call void @llvm.lifetime.start.p0(i64 16, ptr %13)
%88 = call { i64, double } @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5d4015e5854fbc7dE"(ptr noalias noundef align 8 dereferenceable(24) %14) #13
store { i64, double } %88, ptr %13, align 8
%89 = load i64, ptr %13, align 8, !range !7, !noundef !3
switch i64 %89, label %90 [
i64 0, label %91
i64 1, label %94
]
90: ; preds = %132, %87
unreachable
91: ; preds = %106, %87
call void @llvm.lifetime.end.p0(i64 16, ptr %13)
call void @llvm.lifetime.end.p0(i64 24, ptr %14)
%92 = load double, ptr %18, align 8, !noundef !3
%93 = getelementptr inbounds { double, double, double, double, double }, ptr %20, i32 0, i32 2
store double %92, ptr %93, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %18)
br label %81
94: ; preds = %87
%95 = getelementptr inbounds { i64, double }, ptr %13, i32 0, i32 1
%96 = load double, ptr %95, align 8, !noundef !3
%97 = load double, ptr %20, align 8, !noundef !3
%98 = fsub double %97, %96
%99 = load double, ptr %18, align 8, !noundef !3
%100 = fcmp olt double %98, %99
br i1 %100, label %104, label %101
101: ; preds = %104, %94
%102 = load double, ptr %18, align 8, !noundef !3
%103 = fcmp olt double %102, 0.000000e+00
br i1 %103, label %106, label %105
104: ; preds = %94
store double %98, ptr %18, align 8
br label %101
105: ; preds = %101
call void @llvm.lifetime.end.p0(i64 16, ptr %13)
br label %87
106: ; preds = %101
store double 0.000000e+00, ptr %18, align 8
br label %91
107: ; preds = %134, %81
br label %46
108: ; preds = %81
%109 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%110 = load i64, ptr %109, align 8, !noundef !3
%111 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%112 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %111, i32 0, i32 1
%113 = load i64, ptr %112, align 8, !noundef !3
%114 = call noundef i64 @_ZN4core3cmp6min_by17h7fabcd7e6210d284E(i64 noundef %110, i64 noundef %113) #13
store i64 0, ptr %12, align 8
%115 = getelementptr inbounds { i64, i64 }, ptr %12, i32 0, i32 1
store i64 %114, ptr %115, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %11)
%116 = getelementptr inbounds { i64, i64 }, ptr %12, i32 0, i32 0
%117 = load i64, ptr %116, align 8, !noundef !3
%118 = getelementptr inbounds { i64, i64 }, ptr %12, i32 0, i32 1
%119 = load i64, ptr %118, align 8, !noundef !3
%120 = getelementptr inbounds { i64, i64 }, ptr %11, i32 0, i32 0
store i64 %117, ptr %120, align 8
%121 = getelementptr inbounds { i64, i64 }, ptr %11, i32 0, i32 1
store i64 %119, ptr %121, align 8
br label %122
122: ; preds = %165, %108
call void @llvm.lifetime.start.p0(i64 16, ptr %10)
%123 = load i64, ptr %11, align 8, !noundef !3
%124 = getelementptr inbounds { i64, i64 }, ptr %11, i32 0, i32 1
%125 = load i64, ptr %124, align 8, !noundef !3
%126 = icmp ult i64 %123, %125
br i1 %126, label %128, label %127
127: ; preds = %122
store i64 0, ptr %10, align 8
br label %132
128: ; preds = %122
%129 = load i64, ptr %11, align 8, !noundef !3
%130 = call noundef i64 @"_ZN49_$LT$usize$u20$as$u20$core..iter..range..Step$GT$17forward_unchecked17h70ee56afff9bf27fE"(i64 noundef %129, i64 noundef 1) #13
store i64 %130, ptr %11, align 8
%131 = getelementptr inbounds { i64, i64 }, ptr %10, i32 0, i32 1
store i64 %129, ptr %131, align 8
store i64 1, ptr %10, align 8
br label %132
132: ; preds = %128, %127
%133 = load i64, ptr %10, align 8, !range !7, !noundef !3
switch i64 %133, label %90 [
i64 0, label %134
i64 1, label %135
]
134: ; preds = %132
call void @llvm.lifetime.end.p0(i64 16, ptr %10)
call void @llvm.lifetime.end.p0(i64 16, ptr %11)
br label %107
135: ; preds = %132
%136 = getelementptr inbounds { i64, i64 }, ptr %10, i32 0, i32 1
%137 = load i64, ptr %136, align 8, !noundef !3
%138 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%139 = call noundef align 8 dereferenceable(40) ptr @"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17h24b9ae8ec9ed4093E"(ptr noalias noundef readonly align 8 dereferenceable(24) %138, i64 noundef %137, ptr noalias noundef readonly align 8 dereferenceable(24) @35) #13
%140 = load double, ptr %139, align 8, !noundef !3
%141 = load double, ptr %20, align 8, !noundef !3
%142 = fsub double %140, %141
call void @llvm.lifetime.start.p0(i64 1, ptr %9)
%143 = icmp eq i64 %137, 0
br i1 %143, label %144, label %145
144: ; preds = %135
store i8 1, ptr %9, align 1
br label %152
145: ; preds = %135
%146 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%147 = call noundef align 8 dereferenceable(40) ptr @"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17h24b9ae8ec9ed4093E"(ptr noalias noundef readonly align 8 dereferenceable(24) %146, i64 noundef %137, ptr noalias noundef readonly align 8 dereferenceable(24) @36) #13
%148 = getelementptr inbounds { double, double, double, double, double }, ptr %147, i32 0, i32 3
%149 = load double, ptr %148, align 8, !noundef !3
%150 = fcmp olt double %142, %149
%151 = zext i1 %150 to i8
store i8 %151, ptr %9, align 1
br label %152
152: ; preds = %145, %144
%153 = load i8, ptr %9, align 1, !range !9, !noundef !3
%154 = trunc i8 %153 to i1
br i1 %154, label %161, label %155
155: ; preds = %161, %152
call void @llvm.lifetime.end.p0(i64 1, ptr %9)
%156 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%157 = call noundef align 8 dereferenceable(40) ptr @"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17h24b9ae8ec9ed4093E"(ptr noalias noundef readonly align 8 dereferenceable(24) %156, i64 noundef %137, ptr noalias noundef readonly align 8 dereferenceable(24) @38) #13
%158 = getelementptr inbounds { double, double, double, double, double }, ptr %157, i32 0, i32 3
%159 = load double, ptr %158, align 8, !noundef !3
%160 = fcmp olt double %159, 0.000000e+00
br i1 %160, label %166, label %165
161: ; preds = %152
%162 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%163 = call noundef align 8 dereferenceable(40) ptr @"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17h9ed87fd9c5fe982eE"(ptr noalias noundef align 8 dereferenceable(24) %162, i64 noundef %137, ptr noalias noundef readonly align 8 dereferenceable(24) @37) #13
%164 = getelementptr inbounds { double, double, double, double, double }, ptr %163, i32 0, i32 3
store double %142, ptr %164, align 8
br label %155
165: ; preds = %166, %155
call void @llvm.lifetime.end.p0(i64 16, ptr %10)
br label %122
166: ; preds = %155
%167 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%168 = call noundef align 8 dereferenceable(40) ptr @"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17h9ed87fd9c5fe982eE"(ptr noalias noundef align 8 dereferenceable(24) %167, i64 noundef %137, ptr noalias noundef readonly align 8 dereferenceable(24) @39) #13
%169 = getelementptr inbounds { double, double, double, double, double }, ptr %168, i32 0, i32 3
store double 0.000000e+00, ptr %169, align 8
br label %165
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$14run_comparison17he4d76d8ce82d7934E"(ptr noalias noundef align 8 dereferenceable(704) %0, ptr noundef nonnull %1, ptr noundef nonnull %2, i64 noundef %3) unnamed_addr #1 {
%5 = alloca ptr, align 8
%6 = alloca { ptr, i64 }, align 8
%7 = alloca { [2 x i64] }, align 8
%8 = alloca { double, double, double, double, double }, align 8
%9 = alloca i8, align 1
%10 = alloca { i64, i64 }, align 8
%11 = alloca { i64, i64 }, align 8
%12 = alloca { i64, i64 }, align 8
%13 = alloca { i64, double }, align 8
%14 = alloca { {}, { { ptr, ptr }, i64 } }, align 8
%15 = alloca { ptr, ptr }, align 8
%16 = alloca { { ptr, ptr }, i64 }, align 8
%17 = alloca { {}, { { ptr, ptr }, i64 } }, align 8
%18 = alloca double, align 8
%19 = alloca i8, align 1
%20 = alloca { double, double, double, double, double }, align 8
call void @llvm.lifetime.start.p0(i64 40, ptr %20)
%21 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 15
%22 = load i8, ptr %21, align 8, !range !11, !noundef !3
%23 = zext i8 %22 to i64
%24 = load i8, ptr @33, align 1, !range !11, !noundef !3
%25 = zext i8 %24 to i64
%26 = icmp eq i64 %23, %25
br i1 %26, label %28, label %27
27: ; preds = %4
call void @"_ZN5rav1e11scenechange8standard66_$LT$impl$u20$rav1e..scenechange..SceneChangeDetector$LT$T$GT$$GT$13cost_scenecut17hdcefb81c271d9bbaE"(ptr noalias nocapture noundef sret({ double, double, double, double, double }) align 8 dereferenceable(40) %20, ptr noalias noundef align 8 dereferenceable(704) %0, ptr noundef nonnull %1, ptr noundef nonnull %2, i64 noundef %3) #13
br label %29
28: ; preds = %4
call void @"_ZN5rav1e11scenechange4fast66_$LT$impl$u20$rav1e..scenechange..SceneChangeDetector$LT$T$GT$$GT$13fast_scenecut17h72dea206465a4de2E"(ptr noalias nocapture noundef sret({ double, double, double, double, double }) align 8 dereferenceable(40) %20, ptr noalias noundef align 8 dereferenceable(704) %0, ptr noundef nonnull %1, ptr noundef nonnull %2) #13
br label %29
29: ; preds = %28, %27
call void @llvm.lifetime.start.p0(i64 1, ptr %19)
%30 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 15
%31 = load i8, ptr %30, align 8, !range !11, !noundef !3
%32 = zext i8 %31 to i64
%33 = load i8, ptr @33, align 1, !range !11, !noundef !3
%34 = zext i8 %33 to i64
%35 = icmp eq i64 %32, %34
%36 = xor i1 %35, true
br i1 %36, label %38, label %37
37: ; preds = %29
store i8 0, ptr %19, align 1
br label %43
38: ; preds = %29
%39 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%40 = load i64, ptr %39, align 8, !noundef !3
%41 = icmp ugt i64 %40, 0
%42 = zext i1 %41 to i8
store i8 %42, ptr %19, align 1
br label %43
43: ; preds = %38, %37
%44 = load i8, ptr %19, align 1, !range !9, !noundef !3
%45 = trunc i8 %44 to i1
br i1 %45, label %48, label %46
46: ; preds = %107, %43
call void @llvm.lifetime.end.p0(i64 1, ptr %19)
%47 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
call void @llvm.lifetime.start.p0(i64 40, ptr %8)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %20, i64 40, i1 false)
call void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$6insert17h7d66011cedb90fa0E"(ptr noalias noundef align 8 dereferenceable(24) %47, i64 noundef 0, ptr noalias nocapture noundef align 8 dereferenceable(40) %8) #13
call void @llvm.lifetime.end.p0(i64 40, ptr %8)
call void @llvm.lifetime.end.p0(i64 40, ptr %20)
ret void
48: ; preds = %43
%49 = icmp eq i64 %3, 1
br i1 %49, label %50, label %52
50: ; preds = %48
%51 = getelementptr inbounds { double, double, double, double, double }, ptr %20, i32 0, i32 2
store double 0.000000e+00, ptr %51, align 8
br label %81
52: ; preds = %48
call void @llvm.lifetime.start.p0(i64 8, ptr %18)
store double 0x7FEFFFFFFFFFFFFF, ptr %18, align 8
call void @llvm.lifetime.start.p0(i64 24, ptr %16)
call void @llvm.lifetime.start.p0(i64 16, ptr %15)
%53 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%54 = load ptr, ptr %53, align 8, !nonnull !3, !noundef !3
%55 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%56 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %55, i32 0, i32 1
%57 = load i64, ptr %56, align 8, !noundef !3
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
store ptr %54, ptr %6, align 8
%58 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 %57, ptr %58, align 8
%59 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%60 = load ptr, ptr %59, align 8, !noundef !3
%61 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%62 = load i64, ptr %61, align 8, !noundef !3
%63 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
store ptr %60, ptr %63, align 8
%64 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
store i64 %62, ptr %64, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%65 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
%66 = load ptr, ptr %65, align 8, !noundef !3
%67 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%68 = load i64, ptr %67, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%69 = getelementptr inbounds { double, double, double, double, double }, ptr %66, i64 %68
call void @llvm.lifetime.start.p0(i64 8, ptr %5)
store ptr %66, ptr %5, align 8
%70 = load ptr, ptr %5, align 8, !nonnull !3, !noundef !3
store ptr %70, ptr %15, align 8
%71 = getelementptr inbounds { ptr, ptr }, ptr %15, i32 0, i32 1
store ptr %69, ptr %71, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %5)
%72 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%73 = load i64, ptr %72, align 8, !noundef !3
%74 = getelementptr inbounds { ptr, ptr }, ptr %15, i32 0, i32 0
%75 = load ptr, ptr %74, align 8, !nonnull !3, !noundef !3
%76 = getelementptr inbounds { ptr, ptr }, ptr %15, i32 0, i32 1
%77 = load ptr, ptr %76, align 8, !noundef !3
%78 = getelementptr inbounds { ptr, ptr }, ptr %16, i32 0, i32 0
store ptr %75, ptr %78, align 8
%79 = getelementptr inbounds { ptr, ptr }, ptr %16, i32 0, i32 1
store ptr %77, ptr %79, align 8
%80 = getelementptr inbounds { { ptr, ptr }, i64 }, ptr %16, i32 0, i32 1
store i64 %73, ptr %80, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %15)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %17, ptr align 8 %16, i64 24, i1 false)
call void @llvm.lifetime.end.p0(i64 24, ptr %16)
call void @llvm.lifetime.start.p0(i64 24, ptr %14)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %14, ptr align 8 %17, i64 24, i1 false)
br label %87
81: ; preds = %91, %50
%82 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%83 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %82, i32 0, i32 1
%84 = load i64, ptr %83, align 8, !noundef !3
%85 = icmp eq i64 %84, 0
%86 = xor i1 %85, true
br i1 %86, label %108, label %107
87: ; preds = %105, %52
call void @llvm.lifetime.start.p0(i64 16, ptr %13)
%88 = call { i64, double } @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0712abdca0b4f077E"(ptr noalias noundef align 8 dereferenceable(24) %14) #13
store { i64, double } %88, ptr %13, align 8
%89 = load i64, ptr %13, align 8, !range !7, !noundef !3
switch i64 %89, label %90 [
i64 0, label %91
i64 1, label %94
]
90: ; preds = %132, %87
unreachable
91: ; preds = %106, %87
call void @llvm.lifetime.end.p0(i64 16, ptr %13)
call void @llvm.lifetime.end.p0(i64 24, ptr %14)
%92 = load double, ptr %18, align 8, !noundef !3
%93 = getelementptr inbounds { double, double, double, double, double }, ptr %20, i32 0, i32 2
store double %92, ptr %93, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %18)
br label %81
94: ; preds = %87
%95 = getelementptr inbounds { i64, double }, ptr %13, i32 0, i32 1
%96 = load double, ptr %95, align 8, !noundef !3
%97 = load double, ptr %20, align 8, !noundef !3
%98 = fsub double %97, %96
%99 = load double, ptr %18, align 8, !noundef !3
%100 = fcmp olt double %98, %99
br i1 %100, label %104, label %101
101: ; preds = %104, %94
%102 = load double, ptr %18, align 8, !noundef !3
%103 = fcmp olt double %102, 0.000000e+00
br i1 %103, label %106, label %105
104: ; preds = %94
store double %98, ptr %18, align 8
br label %101
105: ; preds = %101
call void @llvm.lifetime.end.p0(i64 16, ptr %13)
br label %87
106: ; preds = %101
store double 0.000000e+00, ptr %18, align 8
br label %91
107: ; preds = %134, %81
br label %46
108: ; preds = %81
%109 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%110 = load i64, ptr %109, align 8, !noundef !3
%111 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%112 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %111, i32 0, i32 1
%113 = load i64, ptr %112, align 8, !noundef !3
%114 = call noundef i64 @_ZN4core3cmp6min_by17h7fabcd7e6210d284E(i64 noundef %110, i64 noundef %113) #13
store i64 0, ptr %12, align 8
%115 = getelementptr inbounds { i64, i64 }, ptr %12, i32 0, i32 1
store i64 %114, ptr %115, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %11)
%116 = getelementptr inbounds { i64, i64 }, ptr %12, i32 0, i32 0
%117 = load i64, ptr %116, align 8, !noundef !3
%118 = getelementptr inbounds { i64, i64 }, ptr %12, i32 0, i32 1
%119 = load i64, ptr %118, align 8, !noundef !3
%120 = getelementptr inbounds { i64, i64 }, ptr %11, i32 0, i32 0
store i64 %117, ptr %120, align 8
%121 = getelementptr inbounds { i64, i64 }, ptr %11, i32 0, i32 1
store i64 %119, ptr %121, align 8
br label %122
122: ; preds = %165, %108
call void @llvm.lifetime.start.p0(i64 16, ptr %10)
%123 = load i64, ptr %11, align 8, !noundef !3
%124 = getelementptr inbounds { i64, i64 }, ptr %11, i32 0, i32 1
%125 = load i64, ptr %124, align 8, !noundef !3
%126 = icmp ult i64 %123, %125
br i1 %126, label %128, label %127
127: ; preds = %122
store i64 0, ptr %10, align 8
br label %132
128: ; preds = %122
%129 = load i64, ptr %11, align 8, !noundef !3
%130 = call noundef i64 @"_ZN49_$LT$usize$u20$as$u20$core..iter..range..Step$GT$17forward_unchecked17h70ee56afff9bf27fE"(i64 noundef %129, i64 noundef 1) #13
store i64 %130, ptr %11, align 8
%131 = getelementptr inbounds { i64, i64 }, ptr %10, i32 0, i32 1
store i64 %129, ptr %131, align 8
store i64 1, ptr %10, align 8
br label %132
132: ; preds = %128, %127
%133 = load i64, ptr %10, align 8, !range !7, !noundef !3
switch i64 %133, label %90 [
i64 0, label %134
i64 1, label %135
]
134: ; preds = %132
call void @llvm.lifetime.end.p0(i64 16, ptr %10)
call void @llvm.lifetime.end.p0(i64 16, ptr %11)
br label %107
135: ; preds = %132
%136 = getelementptr inbounds { i64, i64 }, ptr %10, i32 0, i32 1
%137 = load i64, ptr %136, align 8, !noundef !3
%138 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%139 = call noundef align 8 dereferenceable(40) ptr @"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17h24b9ae8ec9ed4093E"(ptr noalias noundef readonly align 8 dereferenceable(24) %138, i64 noundef %137, ptr noalias noundef readonly align 8 dereferenceable(24) @35) #13
%140 = load double, ptr %139, align 8, !noundef !3
%141 = load double, ptr %20, align 8, !noundef !3
%142 = fsub double %140, %141
call void @llvm.lifetime.start.p0(i64 1, ptr %9)
%143 = icmp eq i64 %137, 0
br i1 %143, label %144, label %145
144: ; preds = %135
store i8 1, ptr %9, align 1
br label %152
145: ; preds = %135
%146 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%147 = call noundef align 8 dereferenceable(40) ptr @"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17h24b9ae8ec9ed4093E"(ptr noalias noundef readonly align 8 dereferenceable(24) %146, i64 noundef %137, ptr noalias noundef readonly align 8 dereferenceable(24) @36) #13
%148 = getelementptr inbounds { double, double, double, double, double }, ptr %147, i32 0, i32 3
%149 = load double, ptr %148, align 8, !noundef !3
%150 = fcmp olt double %142, %149
%151 = zext i1 %150 to i8
store i8 %151, ptr %9, align 1
br label %152
152: ; preds = %145, %144
%153 = load i8, ptr %9, align 1, !range !9, !noundef !3
%154 = trunc i8 %153 to i1
br i1 %154, label %161, label %155
155: ; preds = %161, %152
call void @llvm.lifetime.end.p0(i64 1, ptr %9)
%156 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%157 = call noundef align 8 dereferenceable(40) ptr @"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17h24b9ae8ec9ed4093E"(ptr noalias noundef readonly align 8 dereferenceable(24) %156, i64 noundef %137, ptr noalias noundef readonly align 8 dereferenceable(24) @38) #13
%158 = getelementptr inbounds { double, double, double, double, double }, ptr %157, i32 0, i32 3
%159 = load double, ptr %158, align 8, !noundef !3
%160 = fcmp olt double %159, 0.000000e+00
br i1 %160, label %166, label %165
161: ; preds = %152
%162 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%163 = call noundef align 8 dereferenceable(40) ptr @"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17h9ed87fd9c5fe982eE"(ptr noalias noundef align 8 dereferenceable(24) %162, i64 noundef %137, ptr noalias noundef readonly align 8 dereferenceable(24) @37) #13
%164 = getelementptr inbounds { double, double, double, double, double }, ptr %163, i32 0, i32 3
store double %142, ptr %164, align 8
br label %155
165: ; preds = %166, %155
call void @llvm.lifetime.end.p0(i64 16, ptr %10)
br label %122
166: ; preds = %155
%167 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%168 = call noundef align 8 dereferenceable(40) ptr @"_ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17h9ed87fd9c5fe982eE"(ptr noalias noundef align 8 dereferenceable(24) %167, i64 noundef %137, ptr noalias noundef readonly align 8 dereferenceable(24) @39) #13
%169 = getelementptr inbounds { double, double, double, double, double }, ptr %168, i32 0, i32 3
store double 0.000000e+00, ptr %169, align 8
br label %165
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef double @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$14run_comparison28_$u7b$$u7b$closure$u7d$$u7d$17h6915113cdb8734e3E"(ptr noalias noundef nonnull align 1 %0, ptr noalias noundef readonly align 8 dereferenceable(40) %1) unnamed_addr #0 {
%3 = load double, ptr %1, align 8, !noundef !3
ret double %3
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef double @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$14run_comparison28_$u7b$$u7b$closure$u7d$$u7d$17hf49e453f12e1d2d4E"(ptr noalias noundef nonnull align 1 %0, ptr noalias noundef readonly align 8 dereferenceable(40) %1) unnamed_addr #0 {
%3 = load double, ptr %1, align 8, !noundef !3
ret double %3
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$17adaptive_scenecut17h6efb4c4b4eec4757E"(ptr noalias nocapture noundef sret({ i8, [7 x i8], { double, double, double, double, double } }) align 8 dereferenceable(48) %0, ptr noalias noundef align 8 dereferenceable(704) %1) unnamed_addr #1 {
%3 = alloca ptr, align 8
%4 = alloca ptr, align 8
%5 = alloca ptr, align 8
%6 = alloca i8, align 1
%7 = alloca i8, align 1
%8 = alloca i8, align 1
%9 = alloca i8, align 1
%10 = alloca i64, align 8
%11 = alloca { ptr, ptr }, align 8
%12 = alloca { ptr, ptr }, align 8
%13 = alloca { ptr, ptr }, align 8
%14 = alloca { ptr, ptr }, align 8
%15 = alloca i64, align 8
%16 = alloca i64, align 8
%17 = alloca ptr, align 8
%18 = alloca i64, align 8
%19 = alloca { ptr, ptr }, align 8
%20 = alloca double, align 8
%21 = alloca { double, double, double, double, double }, align 8
%22 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 3
%23 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 10
%24 = load i64, ptr %23, align 8, !noundef !3
%25 = call noundef align 8 dereferenceable(40) ptr @"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17h24b9ae8ec9ed4093E"(ptr noalias noundef readonly align 8 dereferenceable(24) %22, i64 noundef %24, ptr noalias noundef readonly align 8 dereferenceable(24) @40) #13
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %21, ptr align 8 %25, i64 40, i1 false)
call void @llvm.lifetime.start.p0(i64 8, ptr %20)
%26 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 12
%27 = load i64, ptr %26, align 8, !noundef !3
%28 = uitofp i64 %27 to double
%29 = fmul double 7.000000e+00, %28
%30 = fdiv double %29, 8.000000e+00
store double %30, ptr %20, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %19)
%31 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 3
call void @llvm.lifetime.start.p0(i64 8, ptr %18)
%32 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 10
%33 = load i64, ptr %32, align 8, !noundef !3
store i64 %33, ptr %18, align 8
%34 = load i64, ptr %18, align 8, !noundef !3
%35 = call { ptr, i64 } @"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17h6ecef2eea19eb4eeE"(ptr noalias noundef readonly align 8 dereferenceable(24) %31, i64 noundef %34, ptr noalias noundef readonly align 8 dereferenceable(24) @41) #13
%36 = extractvalue { ptr, i64 } %35, 0
%37 = extractvalue { ptr, i64 } %35, 1
call void @llvm.lifetime.end.p0(i64 8, ptr %18)
%38 = getelementptr inbounds { double, double, double, double, double }, ptr %36, i64 %37
call void @llvm.lifetime.start.p0(i64 8, ptr %5)
store ptr %36, ptr %5, align 8
%39 = load ptr, ptr %5, align 8, !nonnull !3, !noundef !3
store ptr %39, ptr %19, align 8
%40 = getelementptr inbounds { ptr, ptr }, ptr %19, i32 0, i32 1
store ptr %38, ptr %40, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %5)
call void @llvm.lifetime.start.p0(i64 8, ptr %17)
store ptr %20, ptr %17, align 8
%41 = load ptr, ptr %17, align 8, !nonnull !3, !align !5, !noundef !3
%42 = call noundef zeroext i1 @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h7bc58023411ecf87E"(ptr noalias noundef align 8 dereferenceable(16) %19, ptr noalias noundef readonly align 8 dereferenceable(8) %41) #13
call void @llvm.lifetime.end.p0(i64 8, ptr %17)
%43 = xor i1 %42, true
call void @llvm.lifetime.end.p0(i64 16, ptr %19)
br i1 %43, label %50, label %44
44: ; preds = %2
%45 = getelementptr inbounds { double, double, double, double, double }, ptr %21, i32 0, i32 3
%46 = load double, ptr %45, align 8, !noundef !3
%47 = getelementptr inbounds { double, double, double, double, double }, ptr %21, i32 0, i32 4
%48 = load double, ptr %47, align 8, !noundef !3
%49 = fcmp oge double %46, %48
br i1 %49, label %58, label %52
50: ; preds = %2
store i8 0, ptr %0, align 8
%51 = getelementptr inbounds { i8, [7 x i8], { double, double, double, double, double } }, ptr %0, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %51, ptr align 8 %21, i64 40, i1 false)
br label %168
52: ; preds = %163, %44
%53 = getelementptr inbounds { double, double, double, double, double }, ptr %21, i32 0, i32 4
%54 = load double, ptr %53, align 8, !noundef !3
%55 = fcmp oge double %46, %54
%56 = zext i1 %55 to i8
store i8 %56, ptr %0, align 8
%57 = getelementptr inbounds { i8, [7 x i8], { double, double, double, double, double } }, ptr %0, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %57, ptr align 8 %21, i64 40, i1 false)
call void @llvm.lifetime.end.p0(i64 8, ptr %20)
br label %166
58: ; preds = %44
%59 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 3
call void @llvm.lifetime.start.p0(i64 8, ptr %16)
%60 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 10
%61 = load i64, ptr %60, align 8, !noundef !3
%62 = add i64 %61, 1
store i64 %62, ptr %16, align 8
%63 = load i64, ptr %16, align 8, !noundef !3
%64 = call { ptr, i64 } @"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17h6ecef2eea19eb4eeE"(ptr noalias noundef readonly align 8 dereferenceable(24) %59, i64 noundef %63, ptr noalias noundef readonly align 8 dereferenceable(24) @42) #13
%65 = extractvalue { ptr, i64 } %64, 0
%66 = extractvalue { ptr, i64 } %64, 1
call void @llvm.lifetime.end.p0(i64 8, ptr %16)
%67 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 3
call void @llvm.lifetime.start.p0(i64 8, ptr %15)
%68 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 10
%69 = load i64, ptr %68, align 8, !noundef !3
store i64 %69, ptr %15, align 8
%70 = load i64, ptr %15, align 8, !noundef !3
%71 = call { ptr, i64 } @"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17h5a3983271aeb95ebE"(ptr noalias noundef readonly align 8 dereferenceable(24) %67, i64 noundef %70, ptr noalias noundef readonly align 8 dereferenceable(24) @43) #13
%72 = extractvalue { ptr, i64 } %71, 0
%73 = extractvalue { ptr, i64 } %71, 1
call void @llvm.lifetime.end.p0(i64 8, ptr %15)
call void @llvm.lifetime.start.p0(i64 16, ptr %14)
call void @llvm.lifetime.start.p0(i64 16, ptr %13)
%74 = getelementptr inbounds { double, double, double, double, double }, ptr %65, i64 %66
call void @llvm.lifetime.start.p0(i64 8, ptr %4)
store ptr %65, ptr %4, align 8
%75 = load ptr, ptr %4, align 8, !nonnull !3, !noundef !3
store ptr %75, ptr %13, align 8
%76 = getelementptr inbounds { ptr, ptr }, ptr %13, i32 0, i32 1
store ptr %74, ptr %76, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %4)
%77 = getelementptr inbounds { ptr, ptr }, ptr %13, i32 0, i32 0
%78 = load ptr, ptr %77, align 8, !nonnull !3, !noundef !3
%79 = getelementptr inbounds { ptr, ptr }, ptr %13, i32 0, i32 1
%80 = load ptr, ptr %79, align 8, !noundef !3
%81 = getelementptr inbounds { ptr, ptr }, ptr %14, i32 0, i32 0
store ptr %78, ptr %81, align 8
%82 = getelementptr inbounds { ptr, ptr }, ptr %14, i32 0, i32 1
store ptr %80, ptr %82, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %13)
%83 = getelementptr inbounds { ptr, ptr }, ptr %14, i32 0, i32 0
%84 = load ptr, ptr %83, align 8, !nonnull !3, !noundef !3
%85 = getelementptr inbounds { ptr, ptr }, ptr %14, i32 0, i32 1
%86 = load ptr, ptr %85, align 8, !noundef !3
%87 = call noundef i64 @"_ZN108_$LT$core..iter..adapters..filter..Filter$LT$I$C$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$5count17h5c502a2db268fc2aE"(ptr noundef nonnull %84, ptr noundef %86) #13
call void @llvm.lifetime.end.p0(i64 16, ptr %14)
call void @llvm.lifetime.start.p0(i64 16, ptr %12)
call void @llvm.lifetime.start.p0(i64 16, ptr %11)
%88 = getelementptr inbounds { double, double, double, double, double }, ptr %72, i64 %73
call void @llvm.lifetime.start.p0(i64 8, ptr %3)
store ptr %72, ptr %3, align 8
%89 = load ptr, ptr %3, align 8, !nonnull !3, !noundef !3
store ptr %89, ptr %11, align 8
%90 = getelementptr inbounds { ptr, ptr }, ptr %11, i32 0, i32 1
store ptr %88, ptr %90, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %3)
%91 = getelementptr inbounds { ptr, ptr }, ptr %11, i32 0, i32 0
%92 = load ptr, ptr %91, align 8, !nonnull !3, !noundef !3
%93 = getelementptr inbounds { ptr, ptr }, ptr %11, i32 0, i32 1
%94 = load ptr, ptr %93, align 8, !noundef !3
%95 = getelementptr inbounds { ptr, ptr }, ptr %12, i32 0, i32 0
store ptr %92, ptr %95, align 8
%96 = getelementptr inbounds { ptr, ptr }, ptr %12, i32 0, i32 1
store ptr %94, ptr %96, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %11)
%97 = getelementptr inbounds { ptr, ptr }, ptr %12, i32 0, i32 0
%98 = load ptr, ptr %97, align 8, !nonnull !3, !noundef !3
%99 = getelementptr inbounds { ptr, ptr }, ptr %12, i32 0, i32 1
%100 = load ptr, ptr %99, align 8, !noundef !3
%101 = call noundef i64 @"_ZN108_$LT$core..iter..adapters..filter..Filter$LT$I$C$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$5count17h75102e392650b7ceE"(ptr noundef nonnull %98, ptr noundef %100) #13
call void @llvm.lifetime.end.p0(i64 16, ptr %12)
call void @llvm.lifetime.start.p0(i64 8, ptr %10)
%102 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 15
%103 = load i8, ptr %102, align 8, !range !11, !noundef !3
%104 = zext i8 %103 to i64
%105 = load i8, ptr @33, align 1, !range !11, !noundef !3
%106 = zext i8 %105 to i64
%107 = icmp eq i64 %104, %106
br i1 %107, label %109, label %108
108: ; preds = %58
store i64 1, ptr %10, align 8
br label %110
109: ; preds = %58
store i64 2, ptr %10, align 8
br label %110
110: ; preds = %109, %108
call void @llvm.lifetime.start.p0(i64 1, ptr %9)
%111 = icmp eq i64 %101, 0
br i1 %111, label %112, label %116
112: ; preds = %110
%113 = load i64, ptr %10, align 8, !noundef !3
%114 = icmp uge i64 %87, %113
%115 = zext i1 %114 to i8
store i8 %115, ptr %9, align 1
br label %117
116: ; preds = %110
store i8 0, ptr %9, align 1
br label %117
117: ; preds = %116, %112
%118 = load i8, ptr %9, align 1, !range !9, !noundef !3
%119 = trunc i8 %118 to i1
br i1 %119, label %122, label %120
120: ; preds = %117
call void @llvm.lifetime.end.p0(i64 1, ptr %9)
call void @llvm.lifetime.start.p0(i64 1, ptr %8)
call void @llvm.lifetime.start.p0(i64 1, ptr %7)
%121 = icmp eq i64 %87, 0
br i1 %121, label %124, label %127
122: ; preds = %117
store i8 1, ptr %0, align 8
%123 = getelementptr inbounds { i8, [7 x i8], { double, double, double, double, double } }, ptr %0, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %123, ptr align 8 %21, i64 40, i1 false)
call void @llvm.lifetime.end.p0(i64 1, ptr %9)
br label %167
124: ; preds = %120
%125 = icmp eq i64 %101, 1
%126 = zext i1 %125 to i8
store i8 %126, ptr %7, align 1
br label %128
127: ; preds = %120
store i8 0, ptr %7, align 1
br label %128
128: ; preds = %127, %124
%129 = load i8, ptr %7, align 1, !range !9, !noundef !3
%130 = trunc i8 %129 to i1
br i1 %130, label %132, label %131
131: ; preds = %128
store i8 0, ptr %8, align 1
br label %135
132: ; preds = %128
%133 = icmp ult i64 0, %73
%134 = call i1 @llvm.expect.i1(i1 %133, i1 true)
br i1 %134, label %138, label %144
135: ; preds = %145, %131
call void @llvm.lifetime.end.p0(i64 1, ptr %7)
%136 = load i8, ptr %8, align 1, !range !9, !noundef !3
%137 = trunc i8 %136 to i1
br i1 %137, label %154, label %152
138: ; preds = %132
%139 = getelementptr inbounds [0 x { double, double, double, double, double }], ptr %72, i64 0, i64 0
%140 = getelementptr inbounds { double, double, double, double, double }, ptr %139, i32 0, i32 3
%141 = load double, ptr %140, align 8, !noundef !3
%142 = icmp ult i64 0, %73
%143 = call i1 @llvm.expect.i1(i1 %142, i1 true)
br i1 %143, label %145, label %151
144: ; preds = %132
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef 0, i64 noundef %73, ptr noalias noundef readonly align 8 dereferenceable(24) @44) #14
unreachable
145: ; preds = %138
%146 = getelementptr inbounds [0 x { double, double, double, double, double }], ptr %72, i64 0, i64 0
%147 = getelementptr inbounds { double, double, double, double, double }, ptr %146, i32 0, i32 4
%148 = load double, ptr %147, align 8, !noundef !3
%149 = fcmp oge double %141, %148
%150 = zext i1 %149 to i8
store i8 %150, ptr %8, align 1
br label %135
151: ; preds = %138
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef 0, i64 noundef %73, ptr noalias noundef readonly align 8 dereferenceable(24) @45) #14
unreachable
152: ; preds = %135
call void @llvm.lifetime.end.p0(i64 1, ptr %8)
call void @llvm.lifetime.start.p0(i64 1, ptr %6)
%153 = icmp eq i64 %87, 0
br i1 %153, label %156, label %159
154: ; preds = %135
store i8 1, ptr %0, align 8
%155 = getelementptr inbounds { i8, [7 x i8], { double, double, double, double, double } }, ptr %0, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %155, ptr align 8 %21, i64 40, i1 false)
call void @llvm.lifetime.end.p0(i64 1, ptr %8)
br label %167
156: ; preds = %152
%157 = icmp ne i64 %101, 0
%158 = zext i1 %157 to i8
store i8 %158, ptr %6, align 1
br label %160
159: ; preds = %152
store i8 1, ptr %6, align 1
br label %160
160: ; preds = %159, %156
%161 = load i8, ptr %6, align 1, !range !9, !noundef !3
%162 = trunc i8 %161 to i1
br i1 %162, label %164, label %163
163: ; preds = %160
call void @llvm.lifetime.end.p0(i64 1, ptr %6)
call void @llvm.lifetime.end.p0(i64 8, ptr %10)
br label %52
164: ; preds = %160
store i8 0, ptr %0, align 8
%165 = getelementptr inbounds { i8, [7 x i8], { double, double, double, double, double } }, ptr %0, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %165, ptr align 8 %21, i64 40, i1 false)
call void @llvm.lifetime.end.p0(i64 1, ptr %6)
br label %167
166: ; preds = %168, %52
ret void
167: ; preds = %164, %154, %122
call void @llvm.lifetime.end.p0(i64 8, ptr %10)
br label %168
168: ; preds = %167, %50
call void @llvm.lifetime.end.p0(i64 8, ptr %20)
br label %166
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$17adaptive_scenecut17hbda47ba32c8d3da8E"(ptr noalias nocapture noundef sret({ i8, [7 x i8], { double, double, double, double, double } }) align 8 dereferenceable(48) %0, ptr noalias noundef align 8 dereferenceable(704) %1) unnamed_addr #1 {
%3 = alloca ptr, align 8
%4 = alloca ptr, align 8
%5 = alloca ptr, align 8
%6 = alloca i8, align 1
%7 = alloca i8, align 1
%8 = alloca i8, align 1
%9 = alloca i8, align 1
%10 = alloca i64, align 8
%11 = alloca { ptr, ptr }, align 8
%12 = alloca { ptr, ptr }, align 8
%13 = alloca { ptr, ptr }, align 8
%14 = alloca { ptr, ptr }, align 8
%15 = alloca i64, align 8
%16 = alloca i64, align 8
%17 = alloca ptr, align 8
%18 = alloca i64, align 8
%19 = alloca { ptr, ptr }, align 8
%20 = alloca double, align 8
%21 = alloca { double, double, double, double, double }, align 8
%22 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 3
%23 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 10
%24 = load i64, ptr %23, align 8, !noundef !3
%25 = call noundef align 8 dereferenceable(40) ptr @"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17h24b9ae8ec9ed4093E"(ptr noalias noundef readonly align 8 dereferenceable(24) %22, i64 noundef %24, ptr noalias noundef readonly align 8 dereferenceable(24) @40) #13
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %21, ptr align 8 %25, i64 40, i1 false)
call void @llvm.lifetime.start.p0(i64 8, ptr %20)
%26 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 12
%27 = load i64, ptr %26, align 8, !noundef !3
%28 = uitofp i64 %27 to double
%29 = fmul double 7.000000e+00, %28
%30 = fdiv double %29, 8.000000e+00
store double %30, ptr %20, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %19)
%31 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 3
call void @llvm.lifetime.start.p0(i64 8, ptr %18)
%32 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 10
%33 = load i64, ptr %32, align 8, !noundef !3
store i64 %33, ptr %18, align 8
%34 = load i64, ptr %18, align 8, !noundef !3
%35 = call { ptr, i64 } @"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17h6ecef2eea19eb4eeE"(ptr noalias noundef readonly align 8 dereferenceable(24) %31, i64 noundef %34, ptr noalias noundef readonly align 8 dereferenceable(24) @41) #13
%36 = extractvalue { ptr, i64 } %35, 0
%37 = extractvalue { ptr, i64 } %35, 1
call void @llvm.lifetime.end.p0(i64 8, ptr %18)
%38 = getelementptr inbounds { double, double, double, double, double }, ptr %36, i64 %37
call void @llvm.lifetime.start.p0(i64 8, ptr %5)
store ptr %36, ptr %5, align 8
%39 = load ptr, ptr %5, align 8, !nonnull !3, !noundef !3
store ptr %39, ptr %19, align 8
%40 = getelementptr inbounds { ptr, ptr }, ptr %19, i32 0, i32 1
store ptr %38, ptr %40, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %5)
call void @llvm.lifetime.start.p0(i64 8, ptr %17)
store ptr %20, ptr %17, align 8
%41 = load ptr, ptr %17, align 8, !nonnull !3, !align !5, !noundef !3
%42 = call noundef zeroext i1 @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h5bf8bdc8c33de704E"(ptr noalias noundef align 8 dereferenceable(16) %19, ptr noalias noundef readonly align 8 dereferenceable(8) %41) #13
call void @llvm.lifetime.end.p0(i64 8, ptr %17)
%43 = xor i1 %42, true
call void @llvm.lifetime.end.p0(i64 16, ptr %19)
br i1 %43, label %50, label %44
44: ; preds = %2
%45 = getelementptr inbounds { double, double, double, double, double }, ptr %21, i32 0, i32 3
%46 = load double, ptr %45, align 8, !noundef !3
%47 = getelementptr inbounds { double, double, double, double, double }, ptr %21, i32 0, i32 4
%48 = load double, ptr %47, align 8, !noundef !3
%49 = fcmp oge double %46, %48
br i1 %49, label %58, label %52
50: ; preds = %2
store i8 0, ptr %0, align 8
%51 = getelementptr inbounds { i8, [7 x i8], { double, double, double, double, double } }, ptr %0, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %51, ptr align 8 %21, i64 40, i1 false)
br label %168
52: ; preds = %163, %44
%53 = getelementptr inbounds { double, double, double, double, double }, ptr %21, i32 0, i32 4
%54 = load double, ptr %53, align 8, !noundef !3
%55 = fcmp oge double %46, %54
%56 = zext i1 %55 to i8
store i8 %56, ptr %0, align 8
%57 = getelementptr inbounds { i8, [7 x i8], { double, double, double, double, double } }, ptr %0, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %57, ptr align 8 %21, i64 40, i1 false)
call void @llvm.lifetime.end.p0(i64 8, ptr %20)
br label %166
58: ; preds = %44
%59 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 3
call void @llvm.lifetime.start.p0(i64 8, ptr %16)
%60 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 10
%61 = load i64, ptr %60, align 8, !noundef !3
%62 = add i64 %61, 1
store i64 %62, ptr %16, align 8
%63 = load i64, ptr %16, align 8, !noundef !3
%64 = call { ptr, i64 } @"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17h6ecef2eea19eb4eeE"(ptr noalias noundef readonly align 8 dereferenceable(24) %59, i64 noundef %63, ptr noalias noundef readonly align 8 dereferenceable(24) @42) #13
%65 = extractvalue { ptr, i64 } %64, 0
%66 = extractvalue { ptr, i64 } %64, 1
call void @llvm.lifetime.end.p0(i64 8, ptr %16)
%67 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 3
call void @llvm.lifetime.start.p0(i64 8, ptr %15)
%68 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 10
%69 = load i64, ptr %68, align 8, !noundef !3
store i64 %69, ptr %15, align 8
%70 = load i64, ptr %15, align 8, !noundef !3
%71 = call { ptr, i64 } @"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17h5a3983271aeb95ebE"(ptr noalias noundef readonly align 8 dereferenceable(24) %67, i64 noundef %70, ptr noalias noundef readonly align 8 dereferenceable(24) @43) #13
%72 = extractvalue { ptr, i64 } %71, 0
%73 = extractvalue { ptr, i64 } %71, 1
call void @llvm.lifetime.end.p0(i64 8, ptr %15)
call void @llvm.lifetime.start.p0(i64 16, ptr %14)
call void @llvm.lifetime.start.p0(i64 16, ptr %13)
%74 = getelementptr inbounds { double, double, double, double, double }, ptr %65, i64 %66
call void @llvm.lifetime.start.p0(i64 8, ptr %4)
store ptr %65, ptr %4, align 8
%75 = load ptr, ptr %4, align 8, !nonnull !3, !noundef !3
store ptr %75, ptr %13, align 8
%76 = getelementptr inbounds { ptr, ptr }, ptr %13, i32 0, i32 1
store ptr %74, ptr %76, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %4)
%77 = getelementptr inbounds { ptr, ptr }, ptr %13, i32 0, i32 0
%78 = load ptr, ptr %77, align 8, !nonnull !3, !noundef !3
%79 = getelementptr inbounds { ptr, ptr }, ptr %13, i32 0, i32 1
%80 = load ptr, ptr %79, align 8, !noundef !3
%81 = getelementptr inbounds { ptr, ptr }, ptr %14, i32 0, i32 0
store ptr %78, ptr %81, align 8
%82 = getelementptr inbounds { ptr, ptr }, ptr %14, i32 0, i32 1
store ptr %80, ptr %82, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %13)
%83 = getelementptr inbounds { ptr, ptr }, ptr %14, i32 0, i32 0
%84 = load ptr, ptr %83, align 8, !nonnull !3, !noundef !3
%85 = getelementptr inbounds { ptr, ptr }, ptr %14, i32 0, i32 1
%86 = load ptr, ptr %85, align 8, !noundef !3
%87 = call noundef i64 @"_ZN108_$LT$core..iter..adapters..filter..Filter$LT$I$C$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$5count17h6e9a2cff9f3990cdE"(ptr noundef nonnull %84, ptr noundef %86) #13
call void @llvm.lifetime.end.p0(i64 16, ptr %14)
call void @llvm.lifetime.start.p0(i64 16, ptr %12)
call void @llvm.lifetime.start.p0(i64 16, ptr %11)
%88 = getelementptr inbounds { double, double, double, double, double }, ptr %72, i64 %73
call void @llvm.lifetime.start.p0(i64 8, ptr %3)
store ptr %72, ptr %3, align 8
%89 = load ptr, ptr %3, align 8, !nonnull !3, !noundef !3
store ptr %89, ptr %11, align 8
%90 = getelementptr inbounds { ptr, ptr }, ptr %11, i32 0, i32 1
store ptr %88, ptr %90, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr %3)
%91 = getelementptr inbounds { ptr, ptr }, ptr %11, i32 0, i32 0
%92 = load ptr, ptr %91, align 8, !nonnull !3, !noundef !3
%93 = getelementptr inbounds { ptr, ptr }, ptr %11, i32 0, i32 1
%94 = load ptr, ptr %93, align 8, !noundef !3
%95 = getelementptr inbounds { ptr, ptr }, ptr %12, i32 0, i32 0
store ptr %92, ptr %95, align 8
%96 = getelementptr inbounds { ptr, ptr }, ptr %12, i32 0, i32 1
store ptr %94, ptr %96, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %11)
%97 = getelementptr inbounds { ptr, ptr }, ptr %12, i32 0, i32 0
%98 = load ptr, ptr %97, align 8, !nonnull !3, !noundef !3
%99 = getelementptr inbounds { ptr, ptr }, ptr %12, i32 0, i32 1
%100 = load ptr, ptr %99, align 8, !noundef !3
%101 = call noundef i64 @"_ZN108_$LT$core..iter..adapters..filter..Filter$LT$I$C$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$5count17h82272148696c8a0cE"(ptr noundef nonnull %98, ptr noundef %100) #13
call void @llvm.lifetime.end.p0(i64 16, ptr %12)
call void @llvm.lifetime.start.p0(i64 8, ptr %10)
%102 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 15
%103 = load i8, ptr %102, align 8, !range !11, !noundef !3
%104 = zext i8 %103 to i64
%105 = load i8, ptr @33, align 1, !range !11, !noundef !3
%106 = zext i8 %105 to i64
%107 = icmp eq i64 %104, %106
br i1 %107, label %109, label %108
108: ; preds = %58
store i64 1, ptr %10, align 8
br label %110
109: ; preds = %58
store i64 2, ptr %10, align 8
br label %110
110: ; preds = %109, %108
call void @llvm.lifetime.start.p0(i64 1, ptr %9)
%111 = icmp eq i64 %101, 0
br i1 %111, label %112, label %116
112: ; preds = %110
%113 = load i64, ptr %10, align 8, !noundef !3
%114 = icmp uge i64 %87, %113
%115 = zext i1 %114 to i8
store i8 %115, ptr %9, align 1
br label %117
116: ; preds = %110
store i8 0, ptr %9, align 1
br label %117
117: ; preds = %116, %112
%118 = load i8, ptr %9, align 1, !range !9, !noundef !3
%119 = trunc i8 %118 to i1
br i1 %119, label %122, label %120
120: ; preds = %117
call void @llvm.lifetime.end.p0(i64 1, ptr %9)
call void @llvm.lifetime.start.p0(i64 1, ptr %8)
call void @llvm.lifetime.start.p0(i64 1, ptr %7)
%121 = icmp eq i64 %87, 0
br i1 %121, label %124, label %127
122: ; preds = %117
store i8 1, ptr %0, align 8
%123 = getelementptr inbounds { i8, [7 x i8], { double, double, double, double, double } }, ptr %0, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %123, ptr align 8 %21, i64 40, i1 false)
call void @llvm.lifetime.end.p0(i64 1, ptr %9)
br label %167
124: ; preds = %120
%125 = icmp eq i64 %101, 1
%126 = zext i1 %125 to i8
store i8 %126, ptr %7, align 1
br label %128
127: ; preds = %120
store i8 0, ptr %7, align 1
br label %128
128: ; preds = %127, %124
%129 = load i8, ptr %7, align 1, !range !9, !noundef !3
%130 = trunc i8 %129 to i1
br i1 %130, label %132, label %131
131: ; preds = %128
store i8 0, ptr %8, align 1
br label %135
132: ; preds = %128
%133 = icmp ult i64 0, %73
%134 = call i1 @llvm.expect.i1(i1 %133, i1 true)
br i1 %134, label %138, label %144
135: ; preds = %145, %131
call void @llvm.lifetime.end.p0(i64 1, ptr %7)
%136 = load i8, ptr %8, align 1, !range !9, !noundef !3
%137 = trunc i8 %136 to i1
br i1 %137, label %154, label %152
138: ; preds = %132
%139 = getelementptr inbounds [0 x { double, double, double, double, double }], ptr %72, i64 0, i64 0
%140 = getelementptr inbounds { double, double, double, double, double }, ptr %139, i32 0, i32 3
%141 = load double, ptr %140, align 8, !noundef !3
%142 = icmp ult i64 0, %73
%143 = call i1 @llvm.expect.i1(i1 %142, i1 true)
br i1 %143, label %145, label %151
144: ; preds = %132
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef 0, i64 noundef %73, ptr noalias noundef readonly align 8 dereferenceable(24) @44) #14
unreachable
145: ; preds = %138
%146 = getelementptr inbounds [0 x { double, double, double, double, double }], ptr %72, i64 0, i64 0
%147 = getelementptr inbounds { double, double, double, double, double }, ptr %146, i32 0, i32 4
%148 = load double, ptr %147, align 8, !noundef !3
%149 = fcmp oge double %141, %148
%150 = zext i1 %149 to i8
store i8 %150, ptr %8, align 1
br label %135
151: ; preds = %138
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef 0, i64 noundef %73, ptr noalias noundef readonly align 8 dereferenceable(24) @45) #14
unreachable
152: ; preds = %135
call void @llvm.lifetime.end.p0(i64 1, ptr %8)
call void @llvm.lifetime.start.p0(i64 1, ptr %6)
%153 = icmp eq i64 %87, 0
br i1 %153, label %156, label %159
154: ; preds = %135
store i8 1, ptr %0, align 8
%155 = getelementptr inbounds { i8, [7 x i8], { double, double, double, double, double } }, ptr %0, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %155, ptr align 8 %21, i64 40, i1 false)
call void @llvm.lifetime.end.p0(i64 1, ptr %8)
br label %167
156: ; preds = %152
%157 = icmp ne i64 %101, 0
%158 = zext i1 %157 to i8
store i8 %158, ptr %6, align 1
br label %160
159: ; preds = %152
store i8 1, ptr %6, align 1
br label %160
160: ; preds = %159, %156
%161 = load i8, ptr %6, align 1, !range !9, !noundef !3
%162 = trunc i8 %161 to i1
br i1 %162, label %164, label %163
163: ; preds = %160
call void @llvm.lifetime.end.p0(i64 1, ptr %6)
call void @llvm.lifetime.end.p0(i64 8, ptr %10)
br label %52
164: ; preds = %160
store i8 0, ptr %0, align 8
%165 = getelementptr inbounds { i8, [7 x i8], { double, double, double, double, double } }, ptr %0, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %165, ptr align 8 %21, i64 40, i1 false)
call void @llvm.lifetime.end.p0(i64 1, ptr %6)
br label %167
166: ; preds = %168, %52
ret void
167: ; preds = %164, %154, %122
call void @llvm.lifetime.end.p0(i64 8, ptr %10)
br label %168
168: ; preds = %167, %50
call void @llvm.lifetime.end.p0(i64 8, ptr %20)
br label %166
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef zeroext i1 @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$17adaptive_scenecut28_$u7b$$u7b$closure$u7d$$u7d$17h21adb3c104afff16E"(ptr noalias noundef align 8 dereferenceable(8) %0, ptr noalias noundef readonly align 8 dereferenceable(40) %1) unnamed_addr #0 {
%3 = getelementptr inbounds { double, double, double, double, double }, ptr %1, i32 0, i32 1
%4 = load double, ptr %3, align 8, !noundef !3
%5 = load ptr, ptr %0, align 8, !nonnull !3, !align !5, !noundef !3
%6 = load double, ptr %5, align 8, !noundef !3
%7 = fcmp oge double %4, %6
ret i1 %7
}
; Function Attrs: inlinehint nounwind nonlazybind
define internal noundef zeroext i1 @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$17adaptive_scenecut28_$u7b$$u7b$closure$u7d$$u7d$17he45ef461fcd52055E"(ptr noalias noundef align 8 dereferenceable(8) %0, ptr noalias noundef readonly align 8 dereferenceable(40) %1) unnamed_addr #0 {
%3 = getelementptr inbounds { double, double, double, double, double }, ptr %1, i32 0, i32 1
%4 = load double, ptr %3, align 8, !noundef !3
%5 = load ptr, ptr %0, align 8, !nonnull !3, !align !5, !noundef !3
%6 = load double, ptr %5, align 8, !noundef !3
%7 = fcmp oge double %4, %6
ret i1 %7
}
; Function Attrs: nounwind nonlazybind
define hidden noundef zeroext i1 @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$18analyze_next_frame17h9da74145c571766dE"(ptr noalias noundef align 8 dereferenceable(704) %0, ptr noalias noundef nonnull readonly align 8 %1, i64 noundef %2, i64 noundef %3, i64 noundef %4) unnamed_addr #1 {
%6 = alloca { ptr, i64 }, align 8
%7 = alloca i8, align 1
%8 = alloca i8, align 1
%9 = alloca { ptr, i64 }, align 8
%10 = alloca { i64, i64 }, align 8
%11 = alloca { i64, i64 }, align 8
%12 = alloca { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, align 8
%13 = alloca { i64, i64 }, align 8
%14 = alloca { i64, i64 }, align 8
%15 = alloca { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, align 8
%16 = alloca { i64, i64 }, align 8
%17 = alloca { i64, i64 }, align 8
%18 = alloca { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, align 8
%19 = alloca { i64, i64 }, align 8
%20 = alloca { i64, i64 }, align 8
%21 = alloca { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, align 8
%22 = alloca { i64, i64 }, align 8
%23 = alloca { i64, i64 }, align 8
%24 = alloca { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, align 8
%25 = alloca { i64, i64 }, align 8
%26 = alloca { i64, i64 }, align 8
%27 = alloca { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, align 8
%28 = alloca { i64, i64 }, align 8
%29 = alloca { i64, i64 }, align 8
%30 = alloca { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, align 8
%31 = alloca [7 x { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }], align 8
%32 = alloca { ptr, i64 }, align 8
%33 = alloca { ptr, ptr }, align 8
%34 = alloca { ptr, ptr }, align 8
%35 = alloca { ptr, ptr }, align 8
%36 = alloca { ptr, ptr }, align 8
%37 = alloca { ptr, ptr }, align 8
%38 = alloca { ptr, ptr }, align 8
%39 = alloca { ptr, ptr }, align 8
%40 = alloca [7 x { ptr, ptr }], align 8
%41 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8
%42 = alloca i64, align 8
%43 = alloca i8, align 1
%44 = alloca i8, align 1
%45 = alloca i8, align 1
%46 = alloca i64, align 8
%47 = alloca i8, align 1
%48 = alloca i8, align 1
%49 = alloca { i8, [7 x i8], { double, double, double, double, double } }, align 8
%50 = alloca { double, double, double, double, double }, align 8
%51 = alloca i8, align 1
%52 = alloca i8, align 1
%53 = alloca i8, align 1
%54 = alloca i8, align 1
%55 = alloca i64, align 8
store i64 %3, ptr %55, align 8
%56 = load i64, ptr %55, align 8, !noundef !3
%57 = sub i64 %56, %4
%58 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 9
%59 = load i64, ptr %58, align 8, !noundef !3
%60 = icmp ule i64 %2, %59
br i1 %60, label %69, label %61
61: ; preds = %5
%62 = getelementptr inbounds { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, ptr %0, i32 0, i32 1
%63 = getelementptr inbounds { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, ptr %62, i32 0, i32 1
%64 = load i8, ptr %63, align 8, !range !11, !noundef !3
%65 = zext i8 %64 to i64
%66 = load i8, ptr @46, align 1, !range !11, !noundef !3
%67 = zext i8 %66 to i64
%68 = icmp eq i64 %65, %67
br i1 %68, label %74, label %70
69: ; preds = %5
store i8 0, ptr %54, align 1
br label %447
70: ; preds = %61
call void @llvm.lifetime.start.p0(i64 1, ptr %52)
call void @llvm.lifetime.start.p0(i64 1, ptr %51)
%71 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%72 = load i64, ptr %71, align 8, !noundef !3
%73 = icmp ugt i64 %72, 0
br i1 %73, label %81, label %80
74: ; preds = %61
call void @llvm.lifetime.start.p0(i64 1, ptr %53)
%75 = call noundef i8 @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$24handle_min_max_intervals17h2b525f6b09074824E"(ptr noalias noundef align 8 dereferenceable(704) %0, i64 noundef %57) #13, !range !11
store i8 %75, ptr %53, align 1
%76 = load i8, ptr %53, align 1, !range !11, !noundef !3
%77 = icmp eq i8 %76, 2
%78 = select i1 %77, i64 0, i64 1
%79 = icmp eq i64 %78, 1
br i1 %79, label %450, label %453
80: ; preds = %70
store i8 0, ptr %51, align 1
br label %87
81: ; preds = %70
%82 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%83 = load i64, ptr %82, align 8, !noundef !3
%84 = add i64 %83, 1
%85 = icmp ugt i64 %2, %84
%86 = zext i1 %85 to i8
store i8 %86, ptr %51, align 1
br label %87
87: ; preds = %81, %80
%88 = load i8, ptr %51, align 1, !range !9, !noundef !3
%89 = trunc i8 %88 to i1
br i1 %89, label %91, label %90
90: ; preds = %87
store i8 0, ptr %52, align 1
br label %97
91: ; preds = %87
%92 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%93 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %92, i32 0, i32 1
%94 = load i64, ptr %93, align 8, !noundef !3
%95 = icmp eq i64 %94, 0
%96 = zext i1 %95 to i8
store i8 %96, ptr %52, align 1
br label %97
97: ; preds = %91, %90
call void @llvm.lifetime.end.p0(i64 1, ptr %51)
%98 = load i8, ptr %52, align 1, !range !9, !noundef !3
%99 = trunc i8 %98 to i1
br i1 %99, label %105, label %100
100: ; preds = %97
%101 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%102 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %101, i32 0, i32 1
%103 = load i64, ptr %102, align 8, !noundef !3
%104 = icmp eq i64 %103, 0
br i1 %104, label %109, label %114
105: ; preds = %97
%106 = load i64, ptr %55, align 8, !noundef !3
%107 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%108 = load i64, ptr %107, align 8, !noundef !3
call void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$22initialize_score_deque17h452ef4b0c21270caE"(ptr noalias noundef align 8 dereferenceable(704) %0, ptr noalias noundef nonnull readonly align 8 %1, i64 noundef %2, i64 noundef %106, i64 noundef %108) #13
br label %115
109: ; preds = %100
%110 = load i64, ptr %55, align 8, !noundef !3
%111 = sub i64 %2, 1
call void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$22initialize_score_deque17h452ef4b0c21270caE"(ptr noalias noundef align 8 dereferenceable(704) %0, ptr noalias noundef nonnull readonly align 8 %1, i64 noundef %2, i64 noundef %110, i64 noundef %111) #13
%112 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%113 = sub i64 %2, 2
store i64 %113, ptr %112, align 8
br label %114
114: ; preds = %109, %100
br label %115
115: ; preds = %114, %105
call void @llvm.lifetime.end.p0(i64 1, ptr %52)
%116 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%117 = load i64, ptr %116, align 8, !noundef !3
%118 = add i64 %117, 1
%119 = icmp ugt i64 %2, %118
br i1 %119, label %125, label %120
120: ; preds = %115
%121 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%122 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%123 = load i64, ptr %122, align 8, !noundef !3
%124 = sub i64 %123, 1
store i64 %124, ptr %121, align 8
br label %130
125: ; preds = %115
%126 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%127 = load i64, ptr %126, align 8, !noundef !3
%128 = icmp ult i64 %127, %2
%129 = call i1 @llvm.expect.i1(i1 %128, i1 true)
br i1 %129, label %138, label %147
130: ; preds = %148, %120
call void @llvm.lifetime.start.p0(i64 48, ptr %49)
call void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$17adaptive_scenecut17hbda47ba32c8d3da8E"(ptr noalias nocapture noundef sret({ i8, [7 x i8], { double, double, double, double, double } }) align 8 dereferenceable(48) %49, ptr noalias noundef align 8 dereferenceable(704) %0) #13
%131 = load i8, ptr %49, align 8, !range !9, !noundef !3
%132 = trunc i8 %131 to i1
call void @llvm.lifetime.start.p0(i64 40, ptr %50)
%133 = getelementptr inbounds { i8, [7 x i8], { double, double, double, double, double } }, ptr %49, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %50, ptr align 8 %133, i64 40, i1 false)
call void @llvm.lifetime.end.p0(i64 48, ptr %49)
call void @llvm.lifetime.start.p0(i64 1, ptr %48)
call void @llvm.lifetime.start.p0(i64 1, ptr %47)
%134 = call noundef i8 @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$24handle_min_max_intervals17h2b525f6b09074824E"(ptr noalias noundef align 8 dereferenceable(704) %0, i64 noundef %57) #13, !range !11
store i8 %134, ptr %47, align 1
%135 = load i8, ptr %47, align 1, !range !11, !noundef !3
%136 = icmp eq i8 %135, 2
%137 = select i1 %136, i64 0, i64 1
switch i64 %137, label %157 [
i64 0, label %158
i64 1, label %160
]
138: ; preds = %125
%139 = getelementptr inbounds [0 x ptr], ptr %1, i64 0, i64 %127
%140 = load ptr, ptr %139, align 8, !nonnull !3, !align !5, !noundef !3
%141 = call noundef nonnull ptr @"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h66e8dc729b9420cbE"(ptr noalias noundef readonly align 8 dereferenceable(8) %140) #13
%142 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%143 = load i64, ptr %142, align 8, !noundef !3
%144 = add i64 %143, 1
%145 = icmp ult i64 %144, %2
%146 = call i1 @llvm.expect.i1(i1 %145, i1 true)
br i1 %146, label %148, label %156
147: ; preds = %125
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef %127, i64 noundef %2, ptr noalias noundef readonly align 8 dereferenceable(24) @47) #14
unreachable
148: ; preds = %138
%149 = getelementptr inbounds [0 x ptr], ptr %1, i64 0, i64 %144
%150 = load ptr, ptr %149, align 8, !nonnull !3, !align !5, !noundef !3
%151 = call noundef nonnull ptr @"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h66e8dc729b9420cbE"(ptr noalias noundef readonly align 8 dereferenceable(8) %150) #13
%152 = load i64, ptr %55, align 8, !noundef !3
%153 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%154 = load i64, ptr %153, align 8, !noundef !3
%155 = add i64 %152, %154
call void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$14run_comparison17ha95ba896c5319333E"(ptr noalias noundef align 8 dereferenceable(704) %0, ptr noundef nonnull %141, ptr noundef nonnull %151, i64 noundef %155) #13
br label %130
156: ; preds = %138
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef %144, i64 noundef %2, ptr noalias noundef readonly align 8 dereferenceable(24) @48) #14
unreachable
157: ; preds = %130
unreachable
158: ; preds = %130
%159 = zext i1 %132 to i8
store i8 %159, ptr %48, align 1
br label %164
160: ; preds = %130
%161 = load i8, ptr %47, align 1, !range !9, !noundef !3
%162 = trunc i8 %161 to i1
%163 = zext i1 %162 to i8
store i8 %163, ptr %48, align 1
br label %164
164: ; preds = %160, %158
call void @llvm.lifetime.end.p0(i64 1, ptr %47)
call void @llvm.lifetime.start.p0(i64 8, ptr %46)
store i64 4, ptr %46, align 8
call void @llvm.lifetime.start.p0(i64 1, ptr %45)
call void @llvm.lifetime.start.p0(i64 1, ptr %44)
call void @llvm.lifetime.start.p0(i64 1, ptr %8)
%165 = call noundef i8 @"_ZN76_$LT$log..Level$u20$as$u20$core..cmp..PartialOrd$LT$log..LevelFilter$GT$$GT$11partial_cmp17hd3df196d3356f36bE"(ptr noalias noundef readonly align 8 dereferenceable(8) %46, ptr noalias noundef readonly align 8 dereferenceable(8) @49) #13, !range !16
store i8 %165, ptr %8, align 1
%166 = load i8, ptr %8, align 1, !range !16, !noundef !3
%167 = icmp eq i8 %166, 2
%168 = select i1 %167, i64 0, i64 1
%169 = icmp eq i64 %168, 1
br i1 %169, label %170, label %172
170: ; preds = %164
%171 = load i8, ptr %8, align 1, !range !10, !noundef !3
switch i8 %171, label %172 [
i8 -1, label %173
i8 0, label %173
]
172: ; preds = %170, %164
store i8 0, ptr %44, align 1
br label %174
173: ; preds = %170, %170
store i8 1, ptr %44, align 1
br label %174
174: ; preds = %173, %172
call void @llvm.lifetime.end.p0(i64 1, ptr %8)
%175 = load i8, ptr %44, align 1, !range !9, !noundef !3
%176 = trunc i8 %175 to i1
br i1 %176, label %178, label %177
177: ; preds = %174
store i8 0, ptr %45, align 1
br label %186
178: ; preds = %174
call void @llvm.lifetime.start.p0(i64 1, ptr %43)
call void @llvm.lifetime.start.p0(i64 8, ptr %42)
%179 = call noundef i64 @_ZN4core4sync6atomic11atomic_load17h24c4e15a6bba1f6aE(ptr noundef @_ZN3log20MAX_LOG_LEVEL_FILTER17hf45987abfd1fc402E, i8 noundef 0) #13
%180 = icmp ule i64 %179, 5
call void @llvm.assume(i1 %180)
store i64 %179, ptr %42, align 8
call void @llvm.lifetime.start.p0(i64 1, ptr %7)
%181 = call noundef i8 @"_ZN76_$LT$log..Level$u20$as$u20$core..cmp..PartialOrd$LT$log..LevelFilter$GT$$GT$11partial_cmp17hd3df196d3356f36bE"(ptr noalias noundef readonly align 8 dereferenceable(8) %46, ptr noalias noundef readonly align 8 dereferenceable(8) %42) #13, !range !16
store i8 %181, ptr %7, align 1
%182 = load i8, ptr %7, align 1, !range !16, !noundef !3
%183 = icmp eq i8 %182, 2
%184 = select i1 %183, i64 0, i64 1
%185 = icmp eq i64 %184, 1
br i1 %185, label %189, label %191
186: ; preds = %193, %177
call void @llvm.lifetime.end.p0(i64 1, ptr %43)
call void @llvm.lifetime.end.p0(i64 1, ptr %44)
%187 = load i8, ptr %45, align 1, !range !9, !noundef !3
%188 = trunc i8 %187 to i1
br i1 %188, label %205, label %197
189: ; preds = %178
%190 = load i8, ptr %7, align 1, !range !10, !noundef !3
switch i8 %190, label %191 [
i8 -1, label %192
i8 0, label %192
]
191: ; preds = %189, %178
store i8 0, ptr %43, align 1
br label %193
192: ; preds = %189, %189
store i8 1, ptr %43, align 1
br label %193
193: ; preds = %192, %191
call void @llvm.lifetime.end.p0(i64 1, ptr %7)
call void @llvm.lifetime.end.p0(i64 8, ptr %42)
%194 = load i8, ptr %43, align 1, !range !9, !noundef !3
%195 = trunc i8 %194 to i1
%196 = zext i1 %195 to i8
store i8 %196, ptr %45, align 1
br label %186
197: ; preds = %224, %186
call void @llvm.lifetime.end.p0(i64 1, ptr %45)
call void @llvm.lifetime.end.p0(i64 8, ptr %46)
%198 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%199 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %198, i32 0, i32 1
%200 = load i64, ptr %199, align 8, !noundef !3
%201 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 9
%202 = load i64, ptr %201, align 8, !noundef !3
%203 = add i64 5, %202
%204 = icmp ugt i64 %200, %203
br i1 %204, label %433, label %429
205: ; preds = %186
call void @llvm.lifetime.start.p0(i64 48, ptr %41)
call void @llvm.lifetime.start.p0(i64 112, ptr %40)
call void @llvm.lifetime.start.p0(i64 16, ptr %39)
store ptr %55, ptr %39, align 8
%206 = getelementptr inbounds { ptr, ptr }, ptr %39, i32 0, i32 1
store ptr @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u64$GT$3fmt17ha7f0cc48714ff1fdE", ptr %206, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %38)
store ptr %50, ptr %38, align 8
%207 = getelementptr inbounds { ptr, ptr }, ptr %38, i32 0, i32 1
store ptr @"_ZN4core3fmt5float52_$LT$impl$u20$core..fmt..Display$u20$for$u20$f64$GT$3fmt17hf6fdd920df393ed8E", ptr %207, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %37)
%208 = getelementptr inbounds { double, double, double, double, double }, ptr %50, i32 0, i32 1
store ptr %208, ptr %37, align 8
%209 = getelementptr inbounds { ptr, ptr }, ptr %37, i32 0, i32 1
store ptr @"_ZN4core3fmt5float52_$LT$impl$u20$core..fmt..Display$u20$for$u20$f64$GT$3fmt17hf6fdd920df393ed8E", ptr %209, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %36)
%210 = getelementptr inbounds { double, double, double, double, double }, ptr %50, i32 0, i32 2
store ptr %210, ptr %36, align 8
%211 = getelementptr inbounds { ptr, ptr }, ptr %36, i32 0, i32 1
store ptr @"_ZN4core3fmt5float52_$LT$impl$u20$core..fmt..Display$u20$for$u20$f64$GT$3fmt17hf6fdd920df393ed8E", ptr %211, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %35)
%212 = getelementptr inbounds { double, double, double, double, double }, ptr %50, i32 0, i32 3
store ptr %212, ptr %35, align 8
%213 = getelementptr inbounds { ptr, ptr }, ptr %35, i32 0, i32 1
store ptr @"_ZN4core3fmt5float52_$LT$impl$u20$core..fmt..Display$u20$for$u20$f64$GT$3fmt17hf6fdd920df393ed8E", ptr %213, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %34)
%214 = getelementptr inbounds { double, double, double, double, double }, ptr %50, i32 0, i32 4
store ptr %214, ptr %34, align 8
%215 = getelementptr inbounds { ptr, ptr }, ptr %34, i32 0, i32 1
store ptr @"_ZN4core3fmt5float52_$LT$impl$u20$core..fmt..Display$u20$for$u20$f64$GT$3fmt17hf6fdd920df393ed8E", ptr %215, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %33)
call void @llvm.lifetime.start.p0(i64 16, ptr %32)
%216 = load i8, ptr %48, align 1, !range !9, !noundef !3
%217 = trunc i8 %216 to i1
br i1 %217, label %221, label %218
218: ; preds = %205
%219 = getelementptr inbounds { ptr, i64 }, ptr %32, i32 0, i32 0
store ptr @58, ptr %219, align 8
%220 = getelementptr inbounds { ptr, i64 }, ptr %32, i32 0, i32 1
store i64 6, ptr %220, align 8
br label %224
221: ; preds = %205
%222 = getelementptr inbounds { ptr, i64 }, ptr %32, i32 0, i32 0
store ptr @59, ptr %222, align 8
%223 = getelementptr inbounds { ptr, i64 }, ptr %32, i32 0, i32 1
store i64 8, ptr %223, align 8
br label %224
224: ; preds = %221, %218
store ptr %32, ptr %33, align 8
%225 = getelementptr inbounds { ptr, ptr }, ptr %33, i32 0, i32 1
store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hf29d218d3bdae9e3E", ptr %225, align 8
%226 = getelementptr inbounds { ptr, ptr }, ptr %39, i32 0, i32 0
%227 = load ptr, ptr %226, align 8, !nonnull !3, !align !4, !noundef !3
%228 = getelementptr inbounds { ptr, ptr }, ptr %39, i32 0, i32 1
%229 = load ptr, ptr %228, align 8, !nonnull !3, !noundef !3
%230 = getelementptr inbounds [7 x { ptr, ptr }], ptr %40, i64 0, i64 0
%231 = getelementptr inbounds { ptr, ptr }, ptr %230, i32 0, i32 0
store ptr %227, ptr %231, align 8
%232 = getelementptr inbounds { ptr, ptr }, ptr %230, i32 0, i32 1
store ptr %229, ptr %232, align 8
%233 = getelementptr inbounds { ptr, ptr }, ptr %38, i32 0, i32 0
%234 = load ptr, ptr %233, align 8, !nonnull !3, !align !4, !noundef !3
%235 = getelementptr inbounds { ptr, ptr }, ptr %38, i32 0, i32 1
%236 = load ptr, ptr %235, align 8, !nonnull !3, !noundef !3
%237 = getelementptr inbounds [7 x { ptr, ptr }], ptr %40, i64 0, i64 1
%238 = getelementptr inbounds { ptr, ptr }, ptr %237, i32 0, i32 0
store ptr %234, ptr %238, align 8
%239 = getelementptr inbounds { ptr, ptr }, ptr %237, i32 0, i32 1
store ptr %236, ptr %239, align 8
%240 = getelementptr inbounds { ptr, ptr }, ptr %37, i32 0, i32 0
%241 = load ptr, ptr %240, align 8, !nonnull !3, !align !4, !noundef !3
%242 = getelementptr inbounds { ptr, ptr }, ptr %37, i32 0, i32 1
%243 = load ptr, ptr %242, align 8, !nonnull !3, !noundef !3
%244 = getelementptr inbounds [7 x { ptr, ptr }], ptr %40, i64 0, i64 2
%245 = getelementptr inbounds { ptr, ptr }, ptr %244, i32 0, i32 0
store ptr %241, ptr %245, align 8
%246 = getelementptr inbounds { ptr, ptr }, ptr %244, i32 0, i32 1
store ptr %243, ptr %246, align 8
%247 = getelementptr inbounds { ptr, ptr }, ptr %36, i32 0, i32 0
%248 = load ptr, ptr %247, align 8, !nonnull !3, !align !4, !noundef !3
%249 = getelementptr inbounds { ptr, ptr }, ptr %36, i32 0, i32 1
%250 = load ptr, ptr %249, align 8, !nonnull !3, !noundef !3
%251 = getelementptr inbounds [7 x { ptr, ptr }], ptr %40, i64 0, i64 3
%252 = getelementptr inbounds { ptr, ptr }, ptr %251, i32 0, i32 0
store ptr %248, ptr %252, align 8
%253 = getelementptr inbounds { ptr, ptr }, ptr %251, i32 0, i32 1
store ptr %250, ptr %253, align 8
%254 = getelementptr inbounds { ptr, ptr }, ptr %35, i32 0, i32 0
%255 = load ptr, ptr %254, align 8, !nonnull !3, !align !4, !noundef !3
%256 = getelementptr inbounds { ptr, ptr }, ptr %35, i32 0, i32 1
%257 = load ptr, ptr %256, align 8, !nonnull !3, !noundef !3
%258 = getelementptr inbounds [7 x { ptr, ptr }], ptr %40, i64 0, i64 4
%259 = getelementptr inbounds { ptr, ptr }, ptr %258, i32 0, i32 0
store ptr %255, ptr %259, align 8
%260 = getelementptr inbounds { ptr, ptr }, ptr %258, i32 0, i32 1
store ptr %257, ptr %260, align 8
%261 = getelementptr inbounds { ptr, ptr }, ptr %34, i32 0, i32 0
%262 = load ptr, ptr %261, align 8, !nonnull !3, !align !4, !noundef !3
%263 = getelementptr inbounds { ptr, ptr }, ptr %34, i32 0, i32 1
%264 = load ptr, ptr %263, align 8, !nonnull !3, !noundef !3
%265 = getelementptr inbounds [7 x { ptr, ptr }], ptr %40, i64 0, i64 5
%266 = getelementptr inbounds { ptr, ptr }, ptr %265, i32 0, i32 0
store ptr %262, ptr %266, align 8
%267 = getelementptr inbounds { ptr, ptr }, ptr %265, i32 0, i32 1
store ptr %264, ptr %267, align 8
%268 = getelementptr inbounds { ptr, ptr }, ptr %33, i32 0, i32 0
%269 = load ptr, ptr %268, align 8, !nonnull !3, !align !4, !noundef !3
%270 = getelementptr inbounds { ptr, ptr }, ptr %33, i32 0, i32 1
%271 = load ptr, ptr %270, align 8, !nonnull !3, !noundef !3
%272 = getelementptr inbounds [7 x { ptr, ptr }], ptr %40, i64 0, i64 6
%273 = getelementptr inbounds { ptr, ptr }, ptr %272, i32 0, i32 0
store ptr %269, ptr %273, align 8
%274 = getelementptr inbounds { ptr, ptr }, ptr %272, i32 0, i32 1
store ptr %271, ptr %274, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %33)
call void @llvm.lifetime.end.p0(i64 16, ptr %34)
call void @llvm.lifetime.end.p0(i64 16, ptr %35)
call void @llvm.lifetime.end.p0(i64 16, ptr %36)
call void @llvm.lifetime.end.p0(i64 16, ptr %37)
call void @llvm.lifetime.end.p0(i64 16, ptr %38)
call void @llvm.lifetime.end.p0(i64 16, ptr %39)
call void @llvm.lifetime.start.p0(i64 392, ptr %31)
call void @llvm.lifetime.start.p0(i64 56, ptr %30)
call void @llvm.lifetime.start.p0(i64 16, ptr %29)
store i64 2, ptr %29, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %28)
store i64 2, ptr %28, align 8
%275 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %30, i32 0, i32 2
store i64 0, ptr %275, align 8
%276 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %30, i32 0, i32 3
store i32 32, ptr %276, align 8
%277 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %30, i32 0, i32 5
store i8 3, ptr %277, align 8
%278 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %30, i32 0, i32 4
store i32 0, ptr %278, align 4
%279 = getelementptr inbounds { i64, i64 }, ptr %29, i32 0, i32 0
%280 = load i64, ptr %279, align 8, !range !13, !noundef !3
%281 = getelementptr inbounds { i64, i64 }, ptr %29, i32 0, i32 1
%282 = load i64, ptr %281, align 8
%283 = getelementptr inbounds { i64, i64 }, ptr %30, i32 0, i32 0
store i64 %280, ptr %283, align 8
%284 = getelementptr inbounds { i64, i64 }, ptr %30, i32 0, i32 1
store i64 %282, ptr %284, align 8
%285 = getelementptr inbounds { i64, i64 }, ptr %28, i32 0, i32 0
%286 = load i64, ptr %285, align 8, !range !13, !noundef !3
%287 = getelementptr inbounds { i64, i64 }, ptr %28, i32 0, i32 1
%288 = load i64, ptr %287, align 8
%289 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %30, i32 0, i32 1
%290 = getelementptr inbounds { i64, i64 }, ptr %289, i32 0, i32 0
store i64 %286, ptr %290, align 8
%291 = getelementptr inbounds { i64, i64 }, ptr %289, i32 0, i32 1
store i64 %288, ptr %291, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %28)
call void @llvm.lifetime.end.p0(i64 16, ptr %29)
call void @llvm.lifetime.start.p0(i64 56, ptr %27)
call void @llvm.lifetime.start.p0(i64 16, ptr %26)
%292 = getelementptr inbounds { i64, i64 }, ptr %26, i32 0, i32 1
store i64 1, ptr %292, align 8
store i64 0, ptr %26, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %25)
%293 = getelementptr inbounds { i64, i64 }, ptr %25, i32 0, i32 1
store i64 5, ptr %293, align 8
store i64 0, ptr %25, align 8
%294 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %27, i32 0, i32 2
store i64 1, ptr %294, align 8
%295 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %27, i32 0, i32 3
store i32 32, ptr %295, align 8
%296 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %27, i32 0, i32 5
store i8 3, ptr %296, align 8
%297 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %27, i32 0, i32 4
store i32 0, ptr %297, align 4
%298 = getelementptr inbounds { i64, i64 }, ptr %26, i32 0, i32 0
%299 = load i64, ptr %298, align 8, !range !13, !noundef !3
%300 = getelementptr inbounds { i64, i64 }, ptr %26, i32 0, i32 1
%301 = load i64, ptr %300, align 8
%302 = getelementptr inbounds { i64, i64 }, ptr %27, i32 0, i32 0
store i64 %299, ptr %302, align 8
%303 = getelementptr inbounds { i64, i64 }, ptr %27, i32 0, i32 1
store i64 %301, ptr %303, align 8
%304 = getelementptr inbounds { i64, i64 }, ptr %25, i32 0, i32 0
%305 = load i64, ptr %304, align 8, !range !13, !noundef !3
%306 = getelementptr inbounds { i64, i64 }, ptr %25, i32 0, i32 1
%307 = load i64, ptr %306, align 8
%308 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %27, i32 0, i32 1
%309 = getelementptr inbounds { i64, i64 }, ptr %308, i32 0, i32 0
store i64 %305, ptr %309, align 8
%310 = getelementptr inbounds { i64, i64 }, ptr %308, i32 0, i32 1
store i64 %307, ptr %310, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %25)
call void @llvm.lifetime.end.p0(i64 16, ptr %26)
call void @llvm.lifetime.start.p0(i64 56, ptr %24)
call void @llvm.lifetime.start.p0(i64 16, ptr %23)
%311 = getelementptr inbounds { i64, i64 }, ptr %23, i32 0, i32 1
store i64 1, ptr %311, align 8
store i64 0, ptr %23, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %22)
%312 = getelementptr inbounds { i64, i64 }, ptr %22, i32 0, i32 1
store i64 5, ptr %312, align 8
store i64 0, ptr %22, align 8
%313 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %24, i32 0, i32 2
store i64 2, ptr %313, align 8
%314 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %24, i32 0, i32 3
store i32 32, ptr %314, align 8
%315 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %24, i32 0, i32 5
store i8 3, ptr %315, align 8
%316 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %24, i32 0, i32 4
store i32 0, ptr %316, align 4
%317 = getelementptr inbounds { i64, i64 }, ptr %23, i32 0, i32 0
%318 = load i64, ptr %317, align 8, !range !13, !noundef !3
%319 = getelementptr inbounds { i64, i64 }, ptr %23, i32 0, i32 1
%320 = load i64, ptr %319, align 8
%321 = getelementptr inbounds { i64, i64 }, ptr %24, i32 0, i32 0
store i64 %318, ptr %321, align 8
%322 = getelementptr inbounds { i64, i64 }, ptr %24, i32 0, i32 1
store i64 %320, ptr %322, align 8
%323 = getelementptr inbounds { i64, i64 }, ptr %22, i32 0, i32 0
%324 = load i64, ptr %323, align 8, !range !13, !noundef !3
%325 = getelementptr inbounds { i64, i64 }, ptr %22, i32 0, i32 1
%326 = load i64, ptr %325, align 8
%327 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %24, i32 0, i32 1
%328 = getelementptr inbounds { i64, i64 }, ptr %327, i32 0, i32 0
store i64 %324, ptr %328, align 8
%329 = getelementptr inbounds { i64, i64 }, ptr %327, i32 0, i32 1
store i64 %326, ptr %329, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %22)
call void @llvm.lifetime.end.p0(i64 16, ptr %23)
call void @llvm.lifetime.start.p0(i64 56, ptr %21)
call void @llvm.lifetime.start.p0(i64 16, ptr %20)
%330 = getelementptr inbounds { i64, i64 }, ptr %20, i32 0, i32 1
store i64 1, ptr %330, align 8
store i64 0, ptr %20, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %19)
%331 = getelementptr inbounds { i64, i64 }, ptr %19, i32 0, i32 1
store i64 5, ptr %331, align 8
store i64 0, ptr %19, align 8
%332 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %21, i32 0, i32 2
store i64 3, ptr %332, align 8
%333 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %21, i32 0, i32 3
store i32 32, ptr %333, align 8
%334 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %21, i32 0, i32 5
store i8 3, ptr %334, align 8
%335 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %21, i32 0, i32 4
store i32 0, ptr %335, align 4
%336 = getelementptr inbounds { i64, i64 }, ptr %20, i32 0, i32 0
%337 = load i64, ptr %336, align 8, !range !13, !noundef !3
%338 = getelementptr inbounds { i64, i64 }, ptr %20, i32 0, i32 1
%339 = load i64, ptr %338, align 8
%340 = getelementptr inbounds { i64, i64 }, ptr %21, i32 0, i32 0
store i64 %337, ptr %340, align 8
%341 = getelementptr inbounds { i64, i64 }, ptr %21, i32 0, i32 1
store i64 %339, ptr %341, align 8
%342 = getelementptr inbounds { i64, i64 }, ptr %19, i32 0, i32 0
%343 = load i64, ptr %342, align 8, !range !13, !noundef !3
%344 = getelementptr inbounds { i64, i64 }, ptr %19, i32 0, i32 1
%345 = load i64, ptr %344, align 8
%346 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %21, i32 0, i32 1
%347 = getelementptr inbounds { i64, i64 }, ptr %346, i32 0, i32 0
store i64 %343, ptr %347, align 8
%348 = getelementptr inbounds { i64, i64 }, ptr %346, i32 0, i32 1
store i64 %345, ptr %348, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %19)
call void @llvm.lifetime.end.p0(i64 16, ptr %20)
call void @llvm.lifetime.start.p0(i64 56, ptr %18)
call void @llvm.lifetime.start.p0(i64 16, ptr %17)
%349 = getelementptr inbounds { i64, i64 }, ptr %17, i32 0, i32 1
store i64 1, ptr %349, align 8
store i64 0, ptr %17, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %16)
%350 = getelementptr inbounds { i64, i64 }, ptr %16, i32 0, i32 1
store i64 5, ptr %350, align 8
store i64 0, ptr %16, align 8
%351 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %18, i32 0, i32 2
store i64 4, ptr %351, align 8
%352 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %18, i32 0, i32 3
store i32 32, ptr %352, align 8
%353 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %18, i32 0, i32 5
store i8 3, ptr %353, align 8
%354 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %18, i32 0, i32 4
store i32 0, ptr %354, align 4
%355 = getelementptr inbounds { i64, i64 }, ptr %17, i32 0, i32 0
%356 = load i64, ptr %355, align 8, !range !13, !noundef !3
%357 = getelementptr inbounds { i64, i64 }, ptr %17, i32 0, i32 1
%358 = load i64, ptr %357, align 8
%359 = getelementptr inbounds { i64, i64 }, ptr %18, i32 0, i32 0
store i64 %356, ptr %359, align 8
%360 = getelementptr inbounds { i64, i64 }, ptr %18, i32 0, i32 1
store i64 %358, ptr %360, align 8
%361 = getelementptr inbounds { i64, i64 }, ptr %16, i32 0, i32 0
%362 = load i64, ptr %361, align 8, !range !13, !noundef !3
%363 = getelementptr inbounds { i64, i64 }, ptr %16, i32 0, i32 1
%364 = load i64, ptr %363, align 8
%365 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %18, i32 0, i32 1
%366 = getelementptr inbounds { i64, i64 }, ptr %365, i32 0, i32 0
store i64 %362, ptr %366, align 8
%367 = getelementptr inbounds { i64, i64 }, ptr %365, i32 0, i32 1
store i64 %364, ptr %367, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %16)
call void @llvm.lifetime.end.p0(i64 16, ptr %17)
call void @llvm.lifetime.start.p0(i64 56, ptr %15)
call void @llvm.lifetime.start.p0(i64 16, ptr %14)
%368 = getelementptr inbounds { i64, i64 }, ptr %14, i32 0, i32 1
store i64 1, ptr %368, align 8
store i64 0, ptr %14, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %13)
store i64 2, ptr %13, align 8
%369 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %15, i32 0, i32 2
store i64 5, ptr %369, align 8
%370 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %15, i32 0, i32 3
store i32 32, ptr %370, align 8
%371 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %15, i32 0, i32 5
store i8 3, ptr %371, align 8
%372 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %15, i32 0, i32 4
store i32 0, ptr %372, align 4
%373 = getelementptr inbounds { i64, i64 }, ptr %14, i32 0, i32 0
%374 = load i64, ptr %373, align 8, !range !13, !noundef !3
%375 = getelementptr inbounds { i64, i64 }, ptr %14, i32 0, i32 1
%376 = load i64, ptr %375, align 8
%377 = getelementptr inbounds { i64, i64 }, ptr %15, i32 0, i32 0
store i64 %374, ptr %377, align 8
%378 = getelementptr inbounds { i64, i64 }, ptr %15, i32 0, i32 1
store i64 %376, ptr %378, align 8
%379 = getelementptr inbounds { i64, i64 }, ptr %13, i32 0, i32 0
%380 = load i64, ptr %379, align 8, !range !13, !noundef !3
%381 = getelementptr inbounds { i64, i64 }, ptr %13, i32 0, i32 1
%382 = load i64, ptr %381, align 8
%383 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %15, i32 0, i32 1
%384 = getelementptr inbounds { i64, i64 }, ptr %383, i32 0, i32 0
store i64 %380, ptr %384, align 8
%385 = getelementptr inbounds { i64, i64 }, ptr %383, i32 0, i32 1
store i64 %382, ptr %385, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %13)
call void @llvm.lifetime.end.p0(i64 16, ptr %14)
call void @llvm.lifetime.start.p0(i64 56, ptr %12)
call void @llvm.lifetime.start.p0(i64 16, ptr %11)
store i64 2, ptr %11, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %10)
store i64 2, ptr %10, align 8
%386 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %12, i32 0, i32 2
store i64 6, ptr %386, align 8
%387 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %12, i32 0, i32 3
store i32 32, ptr %387, align 8
%388 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %12, i32 0, i32 5
store i8 3, ptr %388, align 8
%389 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %12, i32 0, i32 4
store i32 0, ptr %389, align 4
%390 = getelementptr inbounds { i64, i64 }, ptr %11, i32 0, i32 0
%391 = load i64, ptr %390, align 8, !range !13, !noundef !3
%392 = getelementptr inbounds { i64, i64 }, ptr %11, i32 0, i32 1
%393 = load i64, ptr %392, align 8
%394 = getelementptr inbounds { i64, i64 }, ptr %12, i32 0, i32 0
store i64 %391, ptr %394, align 8
%395 = getelementptr inbounds { i64, i64 }, ptr %12, i32 0, i32 1
store i64 %393, ptr %395, align 8
%396 = getelementptr inbounds { i64, i64 }, ptr %10, i32 0, i32 0
%397 = load i64, ptr %396, align 8, !range !13, !noundef !3
%398 = getelementptr inbounds { i64, i64 }, ptr %10, i32 0, i32 1
%399 = load i64, ptr %398, align 8
%400 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %12, i32 0, i32 1
%401 = getelementptr inbounds { i64, i64 }, ptr %400, i32 0, i32 0
store i64 %397, ptr %401, align 8
%402 = getelementptr inbounds { i64, i64 }, ptr %400, i32 0, i32 1
store i64 %399, ptr %402, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %10)
call void @llvm.lifetime.end.p0(i64 16, ptr %11)
%403 = getelementptr inbounds [7 x { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }], ptr %31, i64 0, i64 0
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %403, ptr align 8 %30, i64 56, i1 false)
%404 = getelementptr inbounds [7 x { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }], ptr %31, i64 0, i64 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %404, ptr align 8 %27, i64 56, i1 false)
%405 = getelementptr inbounds [7 x { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }], ptr %31, i64 0, i64 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %405, ptr align 8 %24, i64 56, i1 false)
%406 = getelementptr inbounds [7 x { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }], ptr %31, i64 0, i64 3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %406, ptr align 8 %21, i64 56, i1 false)
%407 = getelementptr inbounds [7 x { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }], ptr %31, i64 0, i64 4
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %407, ptr align 8 %18, i64 56, i1 false)
%408 = getelementptr inbounds [7 x { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }], ptr %31, i64 0, i64 5
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %408, ptr align 8 %15, i64 56, i1 false)
%409 = getelementptr inbounds [7 x { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }], ptr %31, i64 0, i64 6
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %409, ptr align 8 %12, i64 56, i1 false)
call void @llvm.lifetime.end.p0(i64 56, ptr %12)
call void @llvm.lifetime.end.p0(i64 56, ptr %15)
call void @llvm.lifetime.end.p0(i64 56, ptr %18)
call void @llvm.lifetime.end.p0(i64 56, ptr %21)
call void @llvm.lifetime.end.p0(i64 56, ptr %24)
call void @llvm.lifetime.end.p0(i64 56, ptr %27)
call void @llvm.lifetime.end.p0(i64 56, ptr %30)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
%410 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
store ptr %31, ptr %410, align 8
%411 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 7, ptr %411, align 8
%412 = getelementptr inbounds { ptr, i64 }, ptr %41, i32 0, i32 0
store ptr @57, ptr %412, align 8
%413 = getelementptr inbounds { ptr, i64 }, ptr %41, i32 0, i32 1
store i64 7, ptr %413, align 8
%414 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%415 = load ptr, ptr %414, align 8, !align !5, !noundef !3
%416 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%417 = load i64, ptr %416, align 8
%418 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %41, i32 0, i32 2
%419 = getelementptr inbounds { ptr, i64 }, ptr %418, i32 0, i32 0
store ptr %415, ptr %419, align 8
%420 = getelementptr inbounds { ptr, i64 }, ptr %418, i32 0, i32 1
store i64 %417, ptr %420, align 8
%421 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %41, i32 0, i32 1
%422 = getelementptr inbounds { ptr, i64 }, ptr %421, i32 0, i32 0
store ptr %40, ptr %422, align 8
%423 = getelementptr inbounds { ptr, i64 }, ptr %421, i32 0, i32 1
store i64 7, ptr %423, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%424 = load i64, ptr %46, align 8, !range !17, !noundef !3
call void @llvm.lifetime.start.p0(i64 16, ptr %9)
store ptr null, ptr %9, align 8
%425 = getelementptr inbounds { ptr, i64 }, ptr %9, i32 0, i32 0
%426 = load ptr, ptr %425, align 8, !align !5, !noundef !3
%427 = getelementptr inbounds { ptr, i64 }, ptr %9, i32 0, i32 1
%428 = load i64, ptr %427, align 8
call void @_ZN3log13__private_api3log17h14c5446dccc97c91E(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %41, i64 noundef %424, ptr noalias noundef readonly align 8 dereferenceable(48) @61, i32 noundef 224, ptr noalias noundef readonly align 8 %426, i64 %428) #13
call void @llvm.lifetime.end.p0(i64 16, ptr %9)
call void @llvm.lifetime.end.p0(i64 48, ptr %41)
call void @llvm.lifetime.end.p0(i64 392, ptr %31)
call void @llvm.lifetime.end.p0(i64 16, ptr %32)
call void @llvm.lifetime.end.p0(i64 112, ptr %40)
br label %197
429: ; preds = %446, %197
%430 = load i8, ptr %48, align 1, !range !9, !noundef !3
%431 = trunc i8 %430 to i1
%432 = zext i1 %431 to i8
store i8 %432, ptr %54, align 1
call void @llvm.lifetime.end.p0(i64 1, ptr %48)
call void @llvm.lifetime.end.p0(i64 40, ptr %50)
br label %447
433: ; preds = %197
%434 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%435 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %434, i32 0, i32 1
%436 = load i64, ptr %435, align 8, !noundef !3
%437 = icmp eq i64 %436, 0
br i1 %437, label %438, label %439
438: ; preds = %433
br label %446
439: ; preds = %433
%440 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%441 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %440, i32 0, i32 1
%442 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%443 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %442, i32 0, i32 1
%444 = load i64, ptr %443, align 8, !noundef !3
%445 = sub i64 %444, 1
store i64 %445, ptr %441, align 8
br label %446
446: ; preds = %439, %438
br label %429
447: ; preds = %455, %429, %69
%448 = load i8, ptr %54, align 1, !range !9, !noundef !3
%449 = trunc i8 %448 to i1
ret i1 %449
450: ; preds = %74
%451 = load i8, ptr %53, align 1, !range !9, !noundef !3
%452 = trunc i8 %451 to i1
br i1 %452, label %454, label %453
453: ; preds = %450, %74
call void @llvm.lifetime.end.p0(i64 1, ptr %53)
store i8 0, ptr %54, align 1
br label %455
454: ; preds = %450
store i8 1, ptr %54, align 1
call void @llvm.lifetime.end.p0(i64 1, ptr %53)
br label %455
455: ; preds = %454, %453
br label %447
}
; Function Attrs: nounwind nonlazybind
define hidden noundef zeroext i1 @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$18analyze_next_frame17hc95e2d25f4c3f1eeE"(ptr noalias noundef align 8 dereferenceable(704) %0, ptr noalias noundef nonnull readonly align 8 %1, i64 noundef %2, i64 noundef %3, i64 noundef %4) unnamed_addr #1 {
%6 = alloca { ptr, i64 }, align 8
%7 = alloca i8, align 1
%8 = alloca i8, align 1
%9 = alloca { ptr, i64 }, align 8
%10 = alloca { i64, i64 }, align 8
%11 = alloca { i64, i64 }, align 8
%12 = alloca { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, align 8
%13 = alloca { i64, i64 }, align 8
%14 = alloca { i64, i64 }, align 8
%15 = alloca { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, align 8
%16 = alloca { i64, i64 }, align 8
%17 = alloca { i64, i64 }, align 8
%18 = alloca { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, align 8
%19 = alloca { i64, i64 }, align 8
%20 = alloca { i64, i64 }, align 8
%21 = alloca { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, align 8
%22 = alloca { i64, i64 }, align 8
%23 = alloca { i64, i64 }, align 8
%24 = alloca { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, align 8
%25 = alloca { i64, i64 }, align 8
%26 = alloca { i64, i64 }, align 8
%27 = alloca { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, align 8
%28 = alloca { i64, i64 }, align 8
%29 = alloca { i64, i64 }, align 8
%30 = alloca { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, align 8
%31 = alloca [7 x { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }], align 8
%32 = alloca { ptr, i64 }, align 8
%33 = alloca { ptr, ptr }, align 8
%34 = alloca { ptr, ptr }, align 8
%35 = alloca { ptr, ptr }, align 8
%36 = alloca { ptr, ptr }, align 8
%37 = alloca { ptr, ptr }, align 8
%38 = alloca { ptr, ptr }, align 8
%39 = alloca { ptr, ptr }, align 8
%40 = alloca [7 x { ptr, ptr }], align 8
%41 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8
%42 = alloca i64, align 8
%43 = alloca i8, align 1
%44 = alloca i8, align 1
%45 = alloca i8, align 1
%46 = alloca i64, align 8
%47 = alloca i8, align 1
%48 = alloca i8, align 1
%49 = alloca { i8, [7 x i8], { double, double, double, double, double } }, align 8
%50 = alloca { double, double, double, double, double }, align 8
%51 = alloca i8, align 1
%52 = alloca i8, align 1
%53 = alloca i8, align 1
%54 = alloca i8, align 1
%55 = alloca i64, align 8
store i64 %3, ptr %55, align 8
%56 = load i64, ptr %55, align 8, !noundef !3
%57 = sub i64 %56, %4
%58 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 9
%59 = load i64, ptr %58, align 8, !noundef !3
%60 = icmp ule i64 %2, %59
br i1 %60, label %69, label %61
61: ; preds = %5
%62 = getelementptr inbounds { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, ptr %0, i32 0, i32 1
%63 = getelementptr inbounds { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, ptr %62, i32 0, i32 1
%64 = load i8, ptr %63, align 8, !range !11, !noundef !3
%65 = zext i8 %64 to i64
%66 = load i8, ptr @46, align 1, !range !11, !noundef !3
%67 = zext i8 %66 to i64
%68 = icmp eq i64 %65, %67
br i1 %68, label %74, label %70
69: ; preds = %5
store i8 0, ptr %54, align 1
br label %447
70: ; preds = %61
call void @llvm.lifetime.start.p0(i64 1, ptr %52)
call void @llvm.lifetime.start.p0(i64 1, ptr %51)
%71 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%72 = load i64, ptr %71, align 8, !noundef !3
%73 = icmp ugt i64 %72, 0
br i1 %73, label %81, label %80
74: ; preds = %61
call void @llvm.lifetime.start.p0(i64 1, ptr %53)
%75 = call noundef i8 @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$24handle_min_max_intervals17h52ee3589505ca52aE"(ptr noalias noundef align 8 dereferenceable(704) %0, i64 noundef %57) #13, !range !11
store i8 %75, ptr %53, align 1
%76 = load i8, ptr %53, align 1, !range !11, !noundef !3
%77 = icmp eq i8 %76, 2
%78 = select i1 %77, i64 0, i64 1
%79 = icmp eq i64 %78, 1
br i1 %79, label %450, label %453
80: ; preds = %70
store i8 0, ptr %51, align 1
br label %87
81: ; preds = %70
%82 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%83 = load i64, ptr %82, align 8, !noundef !3
%84 = add i64 %83, 1
%85 = icmp ugt i64 %2, %84
%86 = zext i1 %85 to i8
store i8 %86, ptr %51, align 1
br label %87
87: ; preds = %81, %80
%88 = load i8, ptr %51, align 1, !range !9, !noundef !3
%89 = trunc i8 %88 to i1
br i1 %89, label %91, label %90
90: ; preds = %87
store i8 0, ptr %52, align 1
br label %97
91: ; preds = %87
%92 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%93 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %92, i32 0, i32 1
%94 = load i64, ptr %93, align 8, !noundef !3
%95 = icmp eq i64 %94, 0
%96 = zext i1 %95 to i8
store i8 %96, ptr %52, align 1
br label %97
97: ; preds = %91, %90
call void @llvm.lifetime.end.p0(i64 1, ptr %51)
%98 = load i8, ptr %52, align 1, !range !9, !noundef !3
%99 = trunc i8 %98 to i1
br i1 %99, label %105, label %100
100: ; preds = %97
%101 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%102 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %101, i32 0, i32 1
%103 = load i64, ptr %102, align 8, !noundef !3
%104 = icmp eq i64 %103, 0
br i1 %104, label %109, label %114
105: ; preds = %97
%106 = load i64, ptr %55, align 8, !noundef !3
%107 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%108 = load i64, ptr %107, align 8, !noundef !3
call void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$22initialize_score_deque17h76414c413989f063E"(ptr noalias noundef align 8 dereferenceable(704) %0, ptr noalias noundef nonnull readonly align 8 %1, i64 noundef %2, i64 noundef %106, i64 noundef %108) #13
br label %115
109: ; preds = %100
%110 = load i64, ptr %55, align 8, !noundef !3
%111 = sub i64 %2, 1
call void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$22initialize_score_deque17h76414c413989f063E"(ptr noalias noundef align 8 dereferenceable(704) %0, ptr noalias noundef nonnull readonly align 8 %1, i64 noundef %2, i64 noundef %110, i64 noundef %111) #13
%112 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%113 = sub i64 %2, 2
store i64 %113, ptr %112, align 8
br label %114
114: ; preds = %109, %100
br label %115
115: ; preds = %114, %105
call void @llvm.lifetime.end.p0(i64 1, ptr %52)
%116 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%117 = load i64, ptr %116, align 8, !noundef !3
%118 = add i64 %117, 1
%119 = icmp ugt i64 %2, %118
br i1 %119, label %125, label %120
120: ; preds = %115
%121 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%122 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%123 = load i64, ptr %122, align 8, !noundef !3
%124 = sub i64 %123, 1
store i64 %124, ptr %121, align 8
br label %130
125: ; preds = %115
%126 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%127 = load i64, ptr %126, align 8, !noundef !3
%128 = icmp ult i64 %127, %2
%129 = call i1 @llvm.expect.i1(i1 %128, i1 true)
br i1 %129, label %138, label %147
130: ; preds = %148, %120
call void @llvm.lifetime.start.p0(i64 48, ptr %49)
call void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$17adaptive_scenecut17h6efb4c4b4eec4757E"(ptr noalias nocapture noundef sret({ i8, [7 x i8], { double, double, double, double, double } }) align 8 dereferenceable(48) %49, ptr noalias noundef align 8 dereferenceable(704) %0) #13
%131 = load i8, ptr %49, align 8, !range !9, !noundef !3
%132 = trunc i8 %131 to i1
call void @llvm.lifetime.start.p0(i64 40, ptr %50)
%133 = getelementptr inbounds { i8, [7 x i8], { double, double, double, double, double } }, ptr %49, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %50, ptr align 8 %133, i64 40, i1 false)
call void @llvm.lifetime.end.p0(i64 48, ptr %49)
call void @llvm.lifetime.start.p0(i64 1, ptr %48)
call void @llvm.lifetime.start.p0(i64 1, ptr %47)
%134 = call noundef i8 @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$24handle_min_max_intervals17h52ee3589505ca52aE"(ptr noalias noundef align 8 dereferenceable(704) %0, i64 noundef %57) #13, !range !11
store i8 %134, ptr %47, align 1
%135 = load i8, ptr %47, align 1, !range !11, !noundef !3
%136 = icmp eq i8 %135, 2
%137 = select i1 %136, i64 0, i64 1
switch i64 %137, label %157 [
i64 0, label %158
i64 1, label %160
]
138: ; preds = %125
%139 = getelementptr inbounds [0 x ptr], ptr %1, i64 0, i64 %127
%140 = load ptr, ptr %139, align 8, !nonnull !3, !align !5, !noundef !3
%141 = call noundef nonnull ptr @"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4f2086cacc5a5da1E"(ptr noalias noundef readonly align 8 dereferenceable(8) %140) #13
%142 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%143 = load i64, ptr %142, align 8, !noundef !3
%144 = add i64 %143, 1
%145 = icmp ult i64 %144, %2
%146 = call i1 @llvm.expect.i1(i1 %145, i1 true)
br i1 %146, label %148, label %156
147: ; preds = %125
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef %127, i64 noundef %2, ptr noalias noundef readonly align 8 dereferenceable(24) @47) #14
unreachable
148: ; preds = %138
%149 = getelementptr inbounds [0 x ptr], ptr %1, i64 0, i64 %144
%150 = load ptr, ptr %149, align 8, !nonnull !3, !align !5, !noundef !3
%151 = call noundef nonnull ptr @"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4f2086cacc5a5da1E"(ptr noalias noundef readonly align 8 dereferenceable(8) %150) #13
%152 = load i64, ptr %55, align 8, !noundef !3
%153 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
%154 = load i64, ptr %153, align 8, !noundef !3
%155 = add i64 %152, %154
call void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$14run_comparison17he4d76d8ce82d7934E"(ptr noalias noundef align 8 dereferenceable(704) %0, ptr noundef nonnull %141, ptr noundef nonnull %151, i64 noundef %155) #13
br label %130
156: ; preds = %138
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef %144, i64 noundef %2, ptr noalias noundef readonly align 8 dereferenceable(24) @48) #14
unreachable
157: ; preds = %130
unreachable
158: ; preds = %130
%159 = zext i1 %132 to i8
store i8 %159, ptr %48, align 1
br label %164
160: ; preds = %130
%161 = load i8, ptr %47, align 1, !range !9, !noundef !3
%162 = trunc i8 %161 to i1
%163 = zext i1 %162 to i8
store i8 %163, ptr %48, align 1
br label %164
164: ; preds = %160, %158
call void @llvm.lifetime.end.p0(i64 1, ptr %47)
call void @llvm.lifetime.start.p0(i64 8, ptr %46)
store i64 4, ptr %46, align 8
call void @llvm.lifetime.start.p0(i64 1, ptr %45)
call void @llvm.lifetime.start.p0(i64 1, ptr %44)
call void @llvm.lifetime.start.p0(i64 1, ptr %8)
%165 = call noundef i8 @"_ZN76_$LT$log..Level$u20$as$u20$core..cmp..PartialOrd$LT$log..LevelFilter$GT$$GT$11partial_cmp17hd3df196d3356f36bE"(ptr noalias noundef readonly align 8 dereferenceable(8) %46, ptr noalias noundef readonly align 8 dereferenceable(8) @49) #13, !range !16
store i8 %165, ptr %8, align 1
%166 = load i8, ptr %8, align 1, !range !16, !noundef !3
%167 = icmp eq i8 %166, 2
%168 = select i1 %167, i64 0, i64 1
%169 = icmp eq i64 %168, 1
br i1 %169, label %170, label %172
170: ; preds = %164
%171 = load i8, ptr %8, align 1, !range !10, !noundef !3
switch i8 %171, label %172 [
i8 -1, label %173
i8 0, label %173
]
172: ; preds = %170, %164
store i8 0, ptr %44, align 1
br label %174
173: ; preds = %170, %170
store i8 1, ptr %44, align 1
br label %174
174: ; preds = %173, %172
call void @llvm.lifetime.end.p0(i64 1, ptr %8)
%175 = load i8, ptr %44, align 1, !range !9, !noundef !3
%176 = trunc i8 %175 to i1
br i1 %176, label %178, label %177
177: ; preds = %174
store i8 0, ptr %45, align 1
br label %186
178: ; preds = %174
call void @llvm.lifetime.start.p0(i64 1, ptr %43)
call void @llvm.lifetime.start.p0(i64 8, ptr %42)
%179 = call noundef i64 @_ZN4core4sync6atomic11atomic_load17h24c4e15a6bba1f6aE(ptr noundef @_ZN3log20MAX_LOG_LEVEL_FILTER17hf45987abfd1fc402E, i8 noundef 0) #13
%180 = icmp ule i64 %179, 5
call void @llvm.assume(i1 %180)
store i64 %179, ptr %42, align 8
call void @llvm.lifetime.start.p0(i64 1, ptr %7)
%181 = call noundef i8 @"_ZN76_$LT$log..Level$u20$as$u20$core..cmp..PartialOrd$LT$log..LevelFilter$GT$$GT$11partial_cmp17hd3df196d3356f36bE"(ptr noalias noundef readonly align 8 dereferenceable(8) %46, ptr noalias noundef readonly align 8 dereferenceable(8) %42) #13, !range !16
store i8 %181, ptr %7, align 1
%182 = load i8, ptr %7, align 1, !range !16, !noundef !3
%183 = icmp eq i8 %182, 2
%184 = select i1 %183, i64 0, i64 1
%185 = icmp eq i64 %184, 1
br i1 %185, label %189, label %191
186: ; preds = %193, %177
call void @llvm.lifetime.end.p0(i64 1, ptr %43)
call void @llvm.lifetime.end.p0(i64 1, ptr %44)
%187 = load i8, ptr %45, align 1, !range !9, !noundef !3
%188 = trunc i8 %187 to i1
br i1 %188, label %205, label %197
189: ; preds = %178
%190 = load i8, ptr %7, align 1, !range !10, !noundef !3
switch i8 %190, label %191 [
i8 -1, label %192
i8 0, label %192
]
191: ; preds = %189, %178
store i8 0, ptr %43, align 1
br label %193
192: ; preds = %189, %189
store i8 1, ptr %43, align 1
br label %193
193: ; preds = %192, %191
call void @llvm.lifetime.end.p0(i64 1, ptr %7)
call void @llvm.lifetime.end.p0(i64 8, ptr %42)
%194 = load i8, ptr %43, align 1, !range !9, !noundef !3
%195 = trunc i8 %194 to i1
%196 = zext i1 %195 to i8
store i8 %196, ptr %45, align 1
br label %186
197: ; preds = %224, %186
call void @llvm.lifetime.end.p0(i64 1, ptr %45)
call void @llvm.lifetime.end.p0(i64 8, ptr %46)
%198 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%199 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %198, i32 0, i32 1
%200 = load i64, ptr %199, align 8, !noundef !3
%201 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 9
%202 = load i64, ptr %201, align 8, !noundef !3
%203 = add i64 5, %202
%204 = icmp ugt i64 %200, %203
br i1 %204, label %433, label %429
205: ; preds = %186
call void @llvm.lifetime.start.p0(i64 48, ptr %41)
call void @llvm.lifetime.start.p0(i64 112, ptr %40)
call void @llvm.lifetime.start.p0(i64 16, ptr %39)
store ptr %55, ptr %39, align 8
%206 = getelementptr inbounds { ptr, ptr }, ptr %39, i32 0, i32 1
store ptr @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u64$GT$3fmt17ha7f0cc48714ff1fdE", ptr %206, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %38)
store ptr %50, ptr %38, align 8
%207 = getelementptr inbounds { ptr, ptr }, ptr %38, i32 0, i32 1
store ptr @"_ZN4core3fmt5float52_$LT$impl$u20$core..fmt..Display$u20$for$u20$f64$GT$3fmt17hf6fdd920df393ed8E", ptr %207, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %37)
%208 = getelementptr inbounds { double, double, double, double, double }, ptr %50, i32 0, i32 1
store ptr %208, ptr %37, align 8
%209 = getelementptr inbounds { ptr, ptr }, ptr %37, i32 0, i32 1
store ptr @"_ZN4core3fmt5float52_$LT$impl$u20$core..fmt..Display$u20$for$u20$f64$GT$3fmt17hf6fdd920df393ed8E", ptr %209, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %36)
%210 = getelementptr inbounds { double, double, double, double, double }, ptr %50, i32 0, i32 2
store ptr %210, ptr %36, align 8
%211 = getelementptr inbounds { ptr, ptr }, ptr %36, i32 0, i32 1
store ptr @"_ZN4core3fmt5float52_$LT$impl$u20$core..fmt..Display$u20$for$u20$f64$GT$3fmt17hf6fdd920df393ed8E", ptr %211, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %35)
%212 = getelementptr inbounds { double, double, double, double, double }, ptr %50, i32 0, i32 3
store ptr %212, ptr %35, align 8
%213 = getelementptr inbounds { ptr, ptr }, ptr %35, i32 0, i32 1
store ptr @"_ZN4core3fmt5float52_$LT$impl$u20$core..fmt..Display$u20$for$u20$f64$GT$3fmt17hf6fdd920df393ed8E", ptr %213, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %34)
%214 = getelementptr inbounds { double, double, double, double, double }, ptr %50, i32 0, i32 4
store ptr %214, ptr %34, align 8
%215 = getelementptr inbounds { ptr, ptr }, ptr %34, i32 0, i32 1
store ptr @"_ZN4core3fmt5float52_$LT$impl$u20$core..fmt..Display$u20$for$u20$f64$GT$3fmt17hf6fdd920df393ed8E", ptr %215, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %33)
call void @llvm.lifetime.start.p0(i64 16, ptr %32)
%216 = load i8, ptr %48, align 1, !range !9, !noundef !3
%217 = trunc i8 %216 to i1
br i1 %217, label %221, label %218
218: ; preds = %205
%219 = getelementptr inbounds { ptr, i64 }, ptr %32, i32 0, i32 0
store ptr @58, ptr %219, align 8
%220 = getelementptr inbounds { ptr, i64 }, ptr %32, i32 0, i32 1
store i64 6, ptr %220, align 8
br label %224
221: ; preds = %205
%222 = getelementptr inbounds { ptr, i64 }, ptr %32, i32 0, i32 0
store ptr @59, ptr %222, align 8
%223 = getelementptr inbounds { ptr, i64 }, ptr %32, i32 0, i32 1
store i64 8, ptr %223, align 8
br label %224
224: ; preds = %221, %218
store ptr %32, ptr %33, align 8
%225 = getelementptr inbounds { ptr, ptr }, ptr %33, i32 0, i32 1
store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hf29d218d3bdae9e3E", ptr %225, align 8
%226 = getelementptr inbounds { ptr, ptr }, ptr %39, i32 0, i32 0
%227 = load ptr, ptr %226, align 8, !nonnull !3, !align !4, !noundef !3
%228 = getelementptr inbounds { ptr, ptr }, ptr %39, i32 0, i32 1
%229 = load ptr, ptr %228, align 8, !nonnull !3, !noundef !3
%230 = getelementptr inbounds [7 x { ptr, ptr }], ptr %40, i64 0, i64 0
%231 = getelementptr inbounds { ptr, ptr }, ptr %230, i32 0, i32 0
store ptr %227, ptr %231, align 8
%232 = getelementptr inbounds { ptr, ptr }, ptr %230, i32 0, i32 1
store ptr %229, ptr %232, align 8
%233 = getelementptr inbounds { ptr, ptr }, ptr %38, i32 0, i32 0
%234 = load ptr, ptr %233, align 8, !nonnull !3, !align !4, !noundef !3
%235 = getelementptr inbounds { ptr, ptr }, ptr %38, i32 0, i32 1
%236 = load ptr, ptr %235, align 8, !nonnull !3, !noundef !3
%237 = getelementptr inbounds [7 x { ptr, ptr }], ptr %40, i64 0, i64 1
%238 = getelementptr inbounds { ptr, ptr }, ptr %237, i32 0, i32 0
store ptr %234, ptr %238, align 8
%239 = getelementptr inbounds { ptr, ptr }, ptr %237, i32 0, i32 1
store ptr %236, ptr %239, align 8
%240 = getelementptr inbounds { ptr, ptr }, ptr %37, i32 0, i32 0
%241 = load ptr, ptr %240, align 8, !nonnull !3, !align !4, !noundef !3
%242 = getelementptr inbounds { ptr, ptr }, ptr %37, i32 0, i32 1
%243 = load ptr, ptr %242, align 8, !nonnull !3, !noundef !3
%244 = getelementptr inbounds [7 x { ptr, ptr }], ptr %40, i64 0, i64 2
%245 = getelementptr inbounds { ptr, ptr }, ptr %244, i32 0, i32 0
store ptr %241, ptr %245, align 8
%246 = getelementptr inbounds { ptr, ptr }, ptr %244, i32 0, i32 1
store ptr %243, ptr %246, align 8
%247 = getelementptr inbounds { ptr, ptr }, ptr %36, i32 0, i32 0
%248 = load ptr, ptr %247, align 8, !nonnull !3, !align !4, !noundef !3
%249 = getelementptr inbounds { ptr, ptr }, ptr %36, i32 0, i32 1
%250 = load ptr, ptr %249, align 8, !nonnull !3, !noundef !3
%251 = getelementptr inbounds [7 x { ptr, ptr }], ptr %40, i64 0, i64 3
%252 = getelementptr inbounds { ptr, ptr }, ptr %251, i32 0, i32 0
store ptr %248, ptr %252, align 8
%253 = getelementptr inbounds { ptr, ptr }, ptr %251, i32 0, i32 1
store ptr %250, ptr %253, align 8
%254 = getelementptr inbounds { ptr, ptr }, ptr %35, i32 0, i32 0
%255 = load ptr, ptr %254, align 8, !nonnull !3, !align !4, !noundef !3
%256 = getelementptr inbounds { ptr, ptr }, ptr %35, i32 0, i32 1
%257 = load ptr, ptr %256, align 8, !nonnull !3, !noundef !3
%258 = getelementptr inbounds [7 x { ptr, ptr }], ptr %40, i64 0, i64 4
%259 = getelementptr inbounds { ptr, ptr }, ptr %258, i32 0, i32 0
store ptr %255, ptr %259, align 8
%260 = getelementptr inbounds { ptr, ptr }, ptr %258, i32 0, i32 1
store ptr %257, ptr %260, align 8
%261 = getelementptr inbounds { ptr, ptr }, ptr %34, i32 0, i32 0
%262 = load ptr, ptr %261, align 8, !nonnull !3, !align !4, !noundef !3
%263 = getelementptr inbounds { ptr, ptr }, ptr %34, i32 0, i32 1
%264 = load ptr, ptr %263, align 8, !nonnull !3, !noundef !3
%265 = getelementptr inbounds [7 x { ptr, ptr }], ptr %40, i64 0, i64 5
%266 = getelementptr inbounds { ptr, ptr }, ptr %265, i32 0, i32 0
store ptr %262, ptr %266, align 8
%267 = getelementptr inbounds { ptr, ptr }, ptr %265, i32 0, i32 1
store ptr %264, ptr %267, align 8
%268 = getelementptr inbounds { ptr, ptr }, ptr %33, i32 0, i32 0
%269 = load ptr, ptr %268, align 8, !nonnull !3, !align !4, !noundef !3
%270 = getelementptr inbounds { ptr, ptr }, ptr %33, i32 0, i32 1
%271 = load ptr, ptr %270, align 8, !nonnull !3, !noundef !3
%272 = getelementptr inbounds [7 x { ptr, ptr }], ptr %40, i64 0, i64 6
%273 = getelementptr inbounds { ptr, ptr }, ptr %272, i32 0, i32 0
store ptr %269, ptr %273, align 8
%274 = getelementptr inbounds { ptr, ptr }, ptr %272, i32 0, i32 1
store ptr %271, ptr %274, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %33)
call void @llvm.lifetime.end.p0(i64 16, ptr %34)
call void @llvm.lifetime.end.p0(i64 16, ptr %35)
call void @llvm.lifetime.end.p0(i64 16, ptr %36)
call void @llvm.lifetime.end.p0(i64 16, ptr %37)
call void @llvm.lifetime.end.p0(i64 16, ptr %38)
call void @llvm.lifetime.end.p0(i64 16, ptr %39)
call void @llvm.lifetime.start.p0(i64 392, ptr %31)
call void @llvm.lifetime.start.p0(i64 56, ptr %30)
call void @llvm.lifetime.start.p0(i64 16, ptr %29)
store i64 2, ptr %29, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %28)
store i64 2, ptr %28, align 8
%275 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %30, i32 0, i32 2
store i64 0, ptr %275, align 8
%276 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %30, i32 0, i32 3
store i32 32, ptr %276, align 8
%277 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %30, i32 0, i32 5
store i8 3, ptr %277, align 8
%278 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %30, i32 0, i32 4
store i32 0, ptr %278, align 4
%279 = getelementptr inbounds { i64, i64 }, ptr %29, i32 0, i32 0
%280 = load i64, ptr %279, align 8, !range !13, !noundef !3
%281 = getelementptr inbounds { i64, i64 }, ptr %29, i32 0, i32 1
%282 = load i64, ptr %281, align 8
%283 = getelementptr inbounds { i64, i64 }, ptr %30, i32 0, i32 0
store i64 %280, ptr %283, align 8
%284 = getelementptr inbounds { i64, i64 }, ptr %30, i32 0, i32 1
store i64 %282, ptr %284, align 8
%285 = getelementptr inbounds { i64, i64 }, ptr %28, i32 0, i32 0
%286 = load i64, ptr %285, align 8, !range !13, !noundef !3
%287 = getelementptr inbounds { i64, i64 }, ptr %28, i32 0, i32 1
%288 = load i64, ptr %287, align 8
%289 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %30, i32 0, i32 1
%290 = getelementptr inbounds { i64, i64 }, ptr %289, i32 0, i32 0
store i64 %286, ptr %290, align 8
%291 = getelementptr inbounds { i64, i64 }, ptr %289, i32 0, i32 1
store i64 %288, ptr %291, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %28)
call void @llvm.lifetime.end.p0(i64 16, ptr %29)
call void @llvm.lifetime.start.p0(i64 56, ptr %27)
call void @llvm.lifetime.start.p0(i64 16, ptr %26)
%292 = getelementptr inbounds { i64, i64 }, ptr %26, i32 0, i32 1
store i64 1, ptr %292, align 8
store i64 0, ptr %26, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %25)
%293 = getelementptr inbounds { i64, i64 }, ptr %25, i32 0, i32 1
store i64 5, ptr %293, align 8
store i64 0, ptr %25, align 8
%294 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %27, i32 0, i32 2
store i64 1, ptr %294, align 8
%295 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %27, i32 0, i32 3
store i32 32, ptr %295, align 8
%296 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %27, i32 0, i32 5
store i8 3, ptr %296, align 8
%297 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %27, i32 0, i32 4
store i32 0, ptr %297, align 4
%298 = getelementptr inbounds { i64, i64 }, ptr %26, i32 0, i32 0
%299 = load i64, ptr %298, align 8, !range !13, !noundef !3
%300 = getelementptr inbounds { i64, i64 }, ptr %26, i32 0, i32 1
%301 = load i64, ptr %300, align 8
%302 = getelementptr inbounds { i64, i64 }, ptr %27, i32 0, i32 0
store i64 %299, ptr %302, align 8
%303 = getelementptr inbounds { i64, i64 }, ptr %27, i32 0, i32 1
store i64 %301, ptr %303, align 8
%304 = getelementptr inbounds { i64, i64 }, ptr %25, i32 0, i32 0
%305 = load i64, ptr %304, align 8, !range !13, !noundef !3
%306 = getelementptr inbounds { i64, i64 }, ptr %25, i32 0, i32 1
%307 = load i64, ptr %306, align 8
%308 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %27, i32 0, i32 1
%309 = getelementptr inbounds { i64, i64 }, ptr %308, i32 0, i32 0
store i64 %305, ptr %309, align 8
%310 = getelementptr inbounds { i64, i64 }, ptr %308, i32 0, i32 1
store i64 %307, ptr %310, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %25)
call void @llvm.lifetime.end.p0(i64 16, ptr %26)
call void @llvm.lifetime.start.p0(i64 56, ptr %24)
call void @llvm.lifetime.start.p0(i64 16, ptr %23)
%311 = getelementptr inbounds { i64, i64 }, ptr %23, i32 0, i32 1
store i64 1, ptr %311, align 8
store i64 0, ptr %23, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %22)
%312 = getelementptr inbounds { i64, i64 }, ptr %22, i32 0, i32 1
store i64 5, ptr %312, align 8
store i64 0, ptr %22, align 8
%313 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %24, i32 0, i32 2
store i64 2, ptr %313, align 8
%314 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %24, i32 0, i32 3
store i32 32, ptr %314, align 8
%315 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %24, i32 0, i32 5
store i8 3, ptr %315, align 8
%316 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %24, i32 0, i32 4
store i32 0, ptr %316, align 4
%317 = getelementptr inbounds { i64, i64 }, ptr %23, i32 0, i32 0
%318 = load i64, ptr %317, align 8, !range !13, !noundef !3
%319 = getelementptr inbounds { i64, i64 }, ptr %23, i32 0, i32 1
%320 = load i64, ptr %319, align 8
%321 = getelementptr inbounds { i64, i64 }, ptr %24, i32 0, i32 0
store i64 %318, ptr %321, align 8
%322 = getelementptr inbounds { i64, i64 }, ptr %24, i32 0, i32 1
store i64 %320, ptr %322, align 8
%323 = getelementptr inbounds { i64, i64 }, ptr %22, i32 0, i32 0
%324 = load i64, ptr %323, align 8, !range !13, !noundef !3
%325 = getelementptr inbounds { i64, i64 }, ptr %22, i32 0, i32 1
%326 = load i64, ptr %325, align 8
%327 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %24, i32 0, i32 1
%328 = getelementptr inbounds { i64, i64 }, ptr %327, i32 0, i32 0
store i64 %324, ptr %328, align 8
%329 = getelementptr inbounds { i64, i64 }, ptr %327, i32 0, i32 1
store i64 %326, ptr %329, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %22)
call void @llvm.lifetime.end.p0(i64 16, ptr %23)
call void @llvm.lifetime.start.p0(i64 56, ptr %21)
call void @llvm.lifetime.start.p0(i64 16, ptr %20)
%330 = getelementptr inbounds { i64, i64 }, ptr %20, i32 0, i32 1
store i64 1, ptr %330, align 8
store i64 0, ptr %20, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %19)
%331 = getelementptr inbounds { i64, i64 }, ptr %19, i32 0, i32 1
store i64 5, ptr %331, align 8
store i64 0, ptr %19, align 8
%332 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %21, i32 0, i32 2
store i64 3, ptr %332, align 8
%333 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %21, i32 0, i32 3
store i32 32, ptr %333, align 8
%334 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %21, i32 0, i32 5
store i8 3, ptr %334, align 8
%335 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %21, i32 0, i32 4
store i32 0, ptr %335, align 4
%336 = getelementptr inbounds { i64, i64 }, ptr %20, i32 0, i32 0
%337 = load i64, ptr %336, align 8, !range !13, !noundef !3
%338 = getelementptr inbounds { i64, i64 }, ptr %20, i32 0, i32 1
%339 = load i64, ptr %338, align 8
%340 = getelementptr inbounds { i64, i64 }, ptr %21, i32 0, i32 0
store i64 %337, ptr %340, align 8
%341 = getelementptr inbounds { i64, i64 }, ptr %21, i32 0, i32 1
store i64 %339, ptr %341, align 8
%342 = getelementptr inbounds { i64, i64 }, ptr %19, i32 0, i32 0
%343 = load i64, ptr %342, align 8, !range !13, !noundef !3
%344 = getelementptr inbounds { i64, i64 }, ptr %19, i32 0, i32 1
%345 = load i64, ptr %344, align 8
%346 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %21, i32 0, i32 1
%347 = getelementptr inbounds { i64, i64 }, ptr %346, i32 0, i32 0
store i64 %343, ptr %347, align 8
%348 = getelementptr inbounds { i64, i64 }, ptr %346, i32 0, i32 1
store i64 %345, ptr %348, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %19)
call void @llvm.lifetime.end.p0(i64 16, ptr %20)
call void @llvm.lifetime.start.p0(i64 56, ptr %18)
call void @llvm.lifetime.start.p0(i64 16, ptr %17)
%349 = getelementptr inbounds { i64, i64 }, ptr %17, i32 0, i32 1
store i64 1, ptr %349, align 8
store i64 0, ptr %17, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %16)
%350 = getelementptr inbounds { i64, i64 }, ptr %16, i32 0, i32 1
store i64 5, ptr %350, align 8
store i64 0, ptr %16, align 8
%351 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %18, i32 0, i32 2
store i64 4, ptr %351, align 8
%352 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %18, i32 0, i32 3
store i32 32, ptr %352, align 8
%353 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %18, i32 0, i32 5
store i8 3, ptr %353, align 8
%354 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %18, i32 0, i32 4
store i32 0, ptr %354, align 4
%355 = getelementptr inbounds { i64, i64 }, ptr %17, i32 0, i32 0
%356 = load i64, ptr %355, align 8, !range !13, !noundef !3
%357 = getelementptr inbounds { i64, i64 }, ptr %17, i32 0, i32 1
%358 = load i64, ptr %357, align 8
%359 = getelementptr inbounds { i64, i64 }, ptr %18, i32 0, i32 0
store i64 %356, ptr %359, align 8
%360 = getelementptr inbounds { i64, i64 }, ptr %18, i32 0, i32 1
store i64 %358, ptr %360, align 8
%361 = getelementptr inbounds { i64, i64 }, ptr %16, i32 0, i32 0
%362 = load i64, ptr %361, align 8, !range !13, !noundef !3
%363 = getelementptr inbounds { i64, i64 }, ptr %16, i32 0, i32 1
%364 = load i64, ptr %363, align 8
%365 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %18, i32 0, i32 1
%366 = getelementptr inbounds { i64, i64 }, ptr %365, i32 0, i32 0
store i64 %362, ptr %366, align 8
%367 = getelementptr inbounds { i64, i64 }, ptr %365, i32 0, i32 1
store i64 %364, ptr %367, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %16)
call void @llvm.lifetime.end.p0(i64 16, ptr %17)
call void @llvm.lifetime.start.p0(i64 56, ptr %15)
call void @llvm.lifetime.start.p0(i64 16, ptr %14)
%368 = getelementptr inbounds { i64, i64 }, ptr %14, i32 0, i32 1
store i64 1, ptr %368, align 8
store i64 0, ptr %14, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %13)
store i64 2, ptr %13, align 8
%369 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %15, i32 0, i32 2
store i64 5, ptr %369, align 8
%370 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %15, i32 0, i32 3
store i32 32, ptr %370, align 8
%371 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %15, i32 0, i32 5
store i8 3, ptr %371, align 8
%372 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %15, i32 0, i32 4
store i32 0, ptr %372, align 4
%373 = getelementptr inbounds { i64, i64 }, ptr %14, i32 0, i32 0
%374 = load i64, ptr %373, align 8, !range !13, !noundef !3
%375 = getelementptr inbounds { i64, i64 }, ptr %14, i32 0, i32 1
%376 = load i64, ptr %375, align 8
%377 = getelementptr inbounds { i64, i64 }, ptr %15, i32 0, i32 0
store i64 %374, ptr %377, align 8
%378 = getelementptr inbounds { i64, i64 }, ptr %15, i32 0, i32 1
store i64 %376, ptr %378, align 8
%379 = getelementptr inbounds { i64, i64 }, ptr %13, i32 0, i32 0
%380 = load i64, ptr %379, align 8, !range !13, !noundef !3
%381 = getelementptr inbounds { i64, i64 }, ptr %13, i32 0, i32 1
%382 = load i64, ptr %381, align 8
%383 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %15, i32 0, i32 1
%384 = getelementptr inbounds { i64, i64 }, ptr %383, i32 0, i32 0
store i64 %380, ptr %384, align 8
%385 = getelementptr inbounds { i64, i64 }, ptr %383, i32 0, i32 1
store i64 %382, ptr %385, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %13)
call void @llvm.lifetime.end.p0(i64 16, ptr %14)
call void @llvm.lifetime.start.p0(i64 56, ptr %12)
call void @llvm.lifetime.start.p0(i64 16, ptr %11)
store i64 2, ptr %11, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %10)
store i64 2, ptr %10, align 8
%386 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %12, i32 0, i32 2
store i64 6, ptr %386, align 8
%387 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %12, i32 0, i32 3
store i32 32, ptr %387, align 8
%388 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %12, i32 0, i32 5
store i8 3, ptr %388, align 8
%389 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %12, i32 0, i32 4
store i32 0, ptr %389, align 4
%390 = getelementptr inbounds { i64, i64 }, ptr %11, i32 0, i32 0
%391 = load i64, ptr %390, align 8, !range !13, !noundef !3
%392 = getelementptr inbounds { i64, i64 }, ptr %11, i32 0, i32 1
%393 = load i64, ptr %392, align 8
%394 = getelementptr inbounds { i64, i64 }, ptr %12, i32 0, i32 0
store i64 %391, ptr %394, align 8
%395 = getelementptr inbounds { i64, i64 }, ptr %12, i32 0, i32 1
store i64 %393, ptr %395, align 8
%396 = getelementptr inbounds { i64, i64 }, ptr %10, i32 0, i32 0
%397 = load i64, ptr %396, align 8, !range !13, !noundef !3
%398 = getelementptr inbounds { i64, i64 }, ptr %10, i32 0, i32 1
%399 = load i64, ptr %398, align 8
%400 = getelementptr inbounds { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }, ptr %12, i32 0, i32 1
%401 = getelementptr inbounds { i64, i64 }, ptr %400, i32 0, i32 0
store i64 %397, ptr %401, align 8
%402 = getelementptr inbounds { i64, i64 }, ptr %400, i32 0, i32 1
store i64 %399, ptr %402, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %10)
call void @llvm.lifetime.end.p0(i64 16, ptr %11)
%403 = getelementptr inbounds [7 x { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }], ptr %31, i64 0, i64 0
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %403, ptr align 8 %30, i64 56, i1 false)
%404 = getelementptr inbounds [7 x { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }], ptr %31, i64 0, i64 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %404, ptr align 8 %27, i64 56, i1 false)
%405 = getelementptr inbounds [7 x { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }], ptr %31, i64 0, i64 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %405, ptr align 8 %24, i64 56, i1 false)
%406 = getelementptr inbounds [7 x { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }], ptr %31, i64 0, i64 3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %406, ptr align 8 %21, i64 56, i1 false)
%407 = getelementptr inbounds [7 x { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }], ptr %31, i64 0, i64 4
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %407, ptr align 8 %18, i64 56, i1 false)
%408 = getelementptr inbounds [7 x { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }], ptr %31, i64 0, i64 5
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %408, ptr align 8 %15, i64 56, i1 false)
%409 = getelementptr inbounds [7 x { { i64, i64 }, { i64, i64 }, i64, i32, i32, i8, [7 x i8] }], ptr %31, i64 0, i64 6
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %409, ptr align 8 %12, i64 56, i1 false)
call void @llvm.lifetime.end.p0(i64 56, ptr %12)
call void @llvm.lifetime.end.p0(i64 56, ptr %15)
call void @llvm.lifetime.end.p0(i64 56, ptr %18)
call void @llvm.lifetime.end.p0(i64 56, ptr %21)
call void @llvm.lifetime.end.p0(i64 56, ptr %24)
call void @llvm.lifetime.end.p0(i64 56, ptr %27)
call void @llvm.lifetime.end.p0(i64 56, ptr %30)
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
%410 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
store ptr %31, ptr %410, align 8
%411 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
store i64 7, ptr %411, align 8
%412 = getelementptr inbounds { ptr, i64 }, ptr %41, i32 0, i32 0
store ptr @57, ptr %412, align 8
%413 = getelementptr inbounds { ptr, i64 }, ptr %41, i32 0, i32 1
store i64 7, ptr %413, align 8
%414 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 0
%415 = load ptr, ptr %414, align 8, !align !5, !noundef !3
%416 = getelementptr inbounds { ptr, i64 }, ptr %6, i32 0, i32 1
%417 = load i64, ptr %416, align 8
%418 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %41, i32 0, i32 2
%419 = getelementptr inbounds { ptr, i64 }, ptr %418, i32 0, i32 0
store ptr %415, ptr %419, align 8
%420 = getelementptr inbounds { ptr, i64 }, ptr %418, i32 0, i32 1
store i64 %417, ptr %420, align 8
%421 = getelementptr inbounds { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %41, i32 0, i32 1
%422 = getelementptr inbounds { ptr, i64 }, ptr %421, i32 0, i32 0
store ptr %40, ptr %422, align 8
%423 = getelementptr inbounds { ptr, i64 }, ptr %421, i32 0, i32 1
store i64 7, ptr %423, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
%424 = load i64, ptr %46, align 8, !range !17, !noundef !3
call void @llvm.lifetime.start.p0(i64 16, ptr %9)
store ptr null, ptr %9, align 8
%425 = getelementptr inbounds { ptr, i64 }, ptr %9, i32 0, i32 0
%426 = load ptr, ptr %425, align 8, !align !5, !noundef !3
%427 = getelementptr inbounds { ptr, i64 }, ptr %9, i32 0, i32 1
%428 = load i64, ptr %427, align 8
call void @_ZN3log13__private_api3log17h14c5446dccc97c91E(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %41, i64 noundef %424, ptr noalias noundef readonly align 8 dereferenceable(48) @61, i32 noundef 224, ptr noalias noundef readonly align 8 %426, i64 %428) #13
call void @llvm.lifetime.end.p0(i64 16, ptr %9)
call void @llvm.lifetime.end.p0(i64 48, ptr %41)
call void @llvm.lifetime.end.p0(i64 392, ptr %31)
call void @llvm.lifetime.end.p0(i64 16, ptr %32)
call void @llvm.lifetime.end.p0(i64 112, ptr %40)
br label %197
429: ; preds = %446, %197
%430 = load i8, ptr %48, align 1, !range !9, !noundef !3
%431 = trunc i8 %430 to i1
%432 = zext i1 %431 to i8
store i8 %432, ptr %54, align 1
call void @llvm.lifetime.end.p0(i64 1, ptr %48)
call void @llvm.lifetime.end.p0(i64 40, ptr %50)
br label %447
433: ; preds = %197
%434 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%435 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %434, i32 0, i32 1
%436 = load i64, ptr %435, align 8, !noundef !3
%437 = icmp eq i64 %436, 0
br i1 %437, label %438, label %439
438: ; preds = %433
br label %446
439: ; preds = %433
%440 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%441 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %440, i32 0, i32 1
%442 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
%443 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %442, i32 0, i32 1
%444 = load i64, ptr %443, align 8, !noundef !3
%445 = sub i64 %444, 1
store i64 %445, ptr %441, align 8
br label %446
446: ; preds = %439, %438
br label %429
447: ; preds = %455, %429, %69
%448 = load i8, ptr %54, align 1, !range !9, !noundef !3
%449 = trunc i8 %448 to i1
ret i1 %449
450: ; preds = %74
%451 = load i8, ptr %53, align 1, !range !9, !noundef !3
%452 = trunc i8 %451 to i1
br i1 %452, label %454, label %453
453: ; preds = %450, %74
call void @llvm.lifetime.end.p0(i64 1, ptr %53)
store i8 0, ptr %54, align 1
br label %455
454: ; preds = %450
store i8 1, ptr %54, align 1
call void @llvm.lifetime.end.p0(i64 1, ptr %53)
br label %455
455: ; preds = %454, %453
br label %447
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$22initialize_score_deque17h452ef4b0c21270caE"(ptr noalias noundef align 8 dereferenceable(704) %0, ptr noalias noundef nonnull readonly align 8 %1, i64 noundef %2, i64 noundef %3, i64 noundef %4) unnamed_addr #1 {
%6 = alloca { i64, i64 }, align 8
%7 = alloca { i64, i64 }, align 8
%8 = alloca { i64, i64 }, align 8
store i64 0, ptr %8, align 8
%9 = getelementptr inbounds { i64, i64 }, ptr %8, i32 0, i32 1
store i64 %4, ptr %9, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
%10 = getelementptr inbounds { i64, i64 }, ptr %8, i32 0, i32 0
%11 = load i64, ptr %10, align 8, !noundef !3
%12 = getelementptr inbounds { i64, i64 }, ptr %8, i32 0, i32 1
%13 = load i64, ptr %12, align 8, !noundef !3
%14 = getelementptr inbounds { i64, i64 }, ptr %7, i32 0, i32 0
store i64 %11, ptr %14, align 8
%15 = getelementptr inbounds { i64, i64 }, ptr %7, i32 0, i32 1
store i64 %13, ptr %15, align 8
br label %16
16: ; preds = %43, %5
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
%17 = load i64, ptr %7, align 8, !noundef !3
%18 = getelementptr inbounds { i64, i64 }, ptr %7, i32 0, i32 1
%19 = load i64, ptr %18, align 8, !noundef !3
%20 = icmp ult i64 %17, %19
br i1 %20, label %22, label %21
21: ; preds = %16
store i64 0, ptr %6, align 8
br label %26
22: ; preds = %16
%23 = load i64, ptr %7, align 8, !noundef !3
%24 = call noundef i64 @"_ZN49_$LT$usize$u20$as$u20$core..iter..range..Step$GT$17forward_unchecked17h70ee56afff9bf27fE"(i64 noundef %23, i64 noundef 1) #13
store i64 %24, ptr %7, align 8
%25 = getelementptr inbounds { i64, i64 }, ptr %6, i32 0, i32 1
store i64 %23, ptr %25, align 8
store i64 1, ptr %6, align 8
br label %26
26: ; preds = %22, %21
%27 = load i64, ptr %6, align 8, !range !7, !noundef !3
switch i64 %27, label %28 [
i64 0, label %29
i64 1, label %30
]
28: ; preds = %26
unreachable
29: ; preds = %26
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
ret void
30: ; preds = %26
%31 = getelementptr inbounds { i64, i64 }, ptr %6, i32 0, i32 1
%32 = load i64, ptr %31, align 8, !noundef !3
%33 = icmp ult i64 %32, %2
%34 = call i1 @llvm.expect.i1(i1 %33, i1 true)
br i1 %34, label %35, label %42
35: ; preds = %30
%36 = getelementptr inbounds [0 x ptr], ptr %1, i64 0, i64 %32
%37 = load ptr, ptr %36, align 8, !nonnull !3, !align !5, !noundef !3
%38 = call noundef nonnull ptr @"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h66e8dc729b9420cbE"(ptr noalias noundef readonly align 8 dereferenceable(8) %37) #13
%39 = add i64 %32, 1
%40 = icmp ult i64 %39, %2
%41 = call i1 @llvm.expect.i1(i1 %40, i1 true)
br i1 %41, label %43, label %48
42: ; preds = %30
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef %32, i64 noundef %2, ptr noalias noundef readonly align 8 dereferenceable(24) @62) #14
unreachable
43: ; preds = %35
%44 = getelementptr inbounds [0 x ptr], ptr %1, i64 0, i64 %39
%45 = load ptr, ptr %44, align 8, !nonnull !3, !align !5, !noundef !3
%46 = call noundef nonnull ptr @"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h66e8dc729b9420cbE"(ptr noalias noundef readonly align 8 dereferenceable(8) %45) #13
%47 = add i64 %3, %32
call void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$14run_comparison17ha95ba896c5319333E"(ptr noalias noundef align 8 dereferenceable(704) %0, ptr noundef nonnull %38, ptr noundef nonnull %46, i64 noundef %47) #13
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
br label %16
48: ; preds = %35
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef %39, i64 noundef %2, ptr noalias noundef readonly align 8 dereferenceable(24) @63) #14
unreachable
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$22initialize_score_deque17h76414c413989f063E"(ptr noalias noundef align 8 dereferenceable(704) %0, ptr noalias noundef nonnull readonly align 8 %1, i64 noundef %2, i64 noundef %3, i64 noundef %4) unnamed_addr #1 {
%6 = alloca { i64, i64 }, align 8
%7 = alloca { i64, i64 }, align 8
%8 = alloca { i64, i64 }, align 8
store i64 0, ptr %8, align 8
%9 = getelementptr inbounds { i64, i64 }, ptr %8, i32 0, i32 1
store i64 %4, ptr %9, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
%10 = getelementptr inbounds { i64, i64 }, ptr %8, i32 0, i32 0
%11 = load i64, ptr %10, align 8, !noundef !3
%12 = getelementptr inbounds { i64, i64 }, ptr %8, i32 0, i32 1
%13 = load i64, ptr %12, align 8, !noundef !3
%14 = getelementptr inbounds { i64, i64 }, ptr %7, i32 0, i32 0
store i64 %11, ptr %14, align 8
%15 = getelementptr inbounds { i64, i64 }, ptr %7, i32 0, i32 1
store i64 %13, ptr %15, align 8
br label %16
16: ; preds = %43, %5
call void @llvm.lifetime.start.p0(i64 16, ptr %6)
%17 = load i64, ptr %7, align 8, !noundef !3
%18 = getelementptr inbounds { i64, i64 }, ptr %7, i32 0, i32 1
%19 = load i64, ptr %18, align 8, !noundef !3
%20 = icmp ult i64 %17, %19
br i1 %20, label %22, label %21
21: ; preds = %16
store i64 0, ptr %6, align 8
br label %26
22: ; preds = %16
%23 = load i64, ptr %7, align 8, !noundef !3
%24 = call noundef i64 @"_ZN49_$LT$usize$u20$as$u20$core..iter..range..Step$GT$17forward_unchecked17h70ee56afff9bf27fE"(i64 noundef %23, i64 noundef 1) #13
store i64 %24, ptr %7, align 8
%25 = getelementptr inbounds { i64, i64 }, ptr %6, i32 0, i32 1
store i64 %23, ptr %25, align 8
store i64 1, ptr %6, align 8
br label %26
26: ; preds = %22, %21
%27 = load i64, ptr %6, align 8, !range !7, !noundef !3
switch i64 %27, label %28 [
i64 0, label %29
i64 1, label %30
]
28: ; preds = %26
unreachable
29: ; preds = %26
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
ret void
30: ; preds = %26
%31 = getelementptr inbounds { i64, i64 }, ptr %6, i32 0, i32 1
%32 = load i64, ptr %31, align 8, !noundef !3
%33 = icmp ult i64 %32, %2
%34 = call i1 @llvm.expect.i1(i1 %33, i1 true)
br i1 %34, label %35, label %42
35: ; preds = %30
%36 = getelementptr inbounds [0 x ptr], ptr %1, i64 0, i64 %32
%37 = load ptr, ptr %36, align 8, !nonnull !3, !align !5, !noundef !3
%38 = call noundef nonnull ptr @"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4f2086cacc5a5da1E"(ptr noalias noundef readonly align 8 dereferenceable(8) %37) #13
%39 = add i64 %32, 1
%40 = icmp ult i64 %39, %2
%41 = call i1 @llvm.expect.i1(i1 %40, i1 true)
br i1 %41, label %43, label %48
42: ; preds = %30
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef %32, i64 noundef %2, ptr noalias noundef readonly align 8 dereferenceable(24) @62) #14
unreachable
43: ; preds = %35
%44 = getelementptr inbounds [0 x ptr], ptr %1, i64 0, i64 %39
%45 = load ptr, ptr %44, align 8, !nonnull !3, !align !5, !noundef !3
%46 = call noundef nonnull ptr @"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4f2086cacc5a5da1E"(ptr noalias noundef readonly align 8 dereferenceable(8) %45) #13
%47 = add i64 %3, %32
call void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$14run_comparison17he4d76d8ce82d7934E"(ptr noalias noundef align 8 dereferenceable(704) %0, ptr noundef nonnull %38, ptr noundef nonnull %46, i64 noundef %47) #13
call void @llvm.lifetime.end.p0(i64 16, ptr %6)
br label %16
48: ; preds = %35
call void @_ZN4core9panicking18panic_bounds_check17hfa2a7f0168fa7dcaE(i64 noundef %39, i64 noundef %2, ptr noalias noundef readonly align 8 dereferenceable(24) @63) #14
unreachable
}
; Function Attrs: nounwind nonlazybind
define internal noundef i8 @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$24handle_min_max_intervals17h2b525f6b09074824E"(ptr noalias noundef align 8 dereferenceable(704) %0, i64 noundef %1) unnamed_addr #1 {
%3 = alloca i8, align 1
%4 = getelementptr inbounds { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, ptr %0, i32 0, i32 8
%5 = load i64, ptr %4, align 8, !noundef !3
%6 = icmp ult i64 %1, %5
br i1 %6, label %11, label %7
7: ; preds = %2
%8 = getelementptr inbounds { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, ptr %0, i32 0, i32 9
%9 = load i64, ptr %8, align 8, !noundef !3
%10 = icmp uge i64 %1, %9
br i1 %10, label %13, label %12
11: ; preds = %2
store i8 0, ptr %3, align 1
br label %14
12: ; preds = %7
store i8 2, ptr %3, align 1
br label %14
13: ; preds = %7
store i8 1, ptr %3, align 1
br label %14
14: ; preds = %13, %12, %11
%15 = load i8, ptr %3, align 1, !range !11, !noundef !3
ret i8 %15
}
; Function Attrs: nounwind nonlazybind
define internal noundef i8 @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$24handle_min_max_intervals17h52ee3589505ca52aE"(ptr noalias noundef align 8 dereferenceable(704) %0, i64 noundef %1) unnamed_addr #1 {
%3 = alloca i8, align 1
%4 = getelementptr inbounds { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, ptr %0, i32 0, i32 8
%5 = load i64, ptr %4, align 8, !noundef !3
%6 = icmp ult i64 %1, %5
br i1 %6, label %11, label %7
7: ; preds = %2
%8 = getelementptr inbounds { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, ptr %0, i32 0, i32 9
%9 = load i64, ptr %8, align 8, !noundef !3
%10 = icmp uge i64 %1, %9
br i1 %10, label %13, label %12
11: ; preds = %2
store i8 0, ptr %3, align 1
br label %14
12: ; preds = %7
store i8 2, ptr %3, align 1
br label %14
13: ; preds = %7
store i8 1, ptr %3, align 1
br label %14
14: ; preds = %13, %12, %11
%15 = load i8, ptr %3, align 1, !range !11, !noundef !3
ret i8 %15
}
; Function Attrs: nounwind nonlazybind
define hidden void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$3new17hf62c77e4f5020257E"(ptr noalias nocapture noundef sret({ {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }) align 8 dereferenceable(704) %0, ptr noalias nocapture noundef readonly align 8 dereferenceable(256) %1, i64 noundef %2, ptr noundef nonnull %3) unnamed_addr #1 {
%5 = alloca i64, align 8
%6 = alloca i64, align 8
%7 = alloca { ptr, i64 }, align 8
%8 = alloca { ptr, [11 x i64] }, align 8
%9 = alloca { { {} }, {}, { ptr, i64 }, i64 }, align 8
%10 = alloca { ptr, [1 x i64] }, align 8
%11 = alloca { [192 x i8], i8, [7 x i8] }, align 8
%12 = alloca { ptr, [2 x i64] }, align 8
%13 = alloca i64, align 8
%14 = alloca ptr, align 8
%15 = alloca { i64, i64 }, align 8
%16 = alloca i64, align 8
%17 = alloca { { ptr, i64 }, i64 }, align 8
%18 = alloca i64, align 8
%19 = alloca { ptr, [2 x i64] }, align 8
%20 = alloca i8, align 1
%21 = alloca ptr, align 8
store ptr %3, ptr %21, align 8
%22 = getelementptr inbounds { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, ptr %1, i32 0, i32 6
%23 = load i64, ptr %22, align 8, !noundef !3
call void @llvm.lifetime.start.p0(i64 1, ptr %20)
%24 = getelementptr inbounds { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, ptr %1, i32 0, i32 27
%25 = load i8, ptr %24, align 1, !range !9, !noundef !3
%26 = trunc i8 %25 to i1
br i1 %26, label %31, label %27
27: ; preds = %4
%28 = getelementptr inbounds { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, ptr %1, i32 0, i32 1
%29 = getelementptr inbounds { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, ptr %28, i32 0, i32 1
%30 = load i8, ptr %29, align 8, !range !11, !noundef !3
store i8 %30, ptr %20, align 1
br label %32
31: ; preds = %4
store i8 0, ptr %20, align 1
br label %32
32: ; preds = %31, %27
call void @llvm.lifetime.start.p0(i64 24, ptr %19)
%33 = load i8, ptr %20, align 1, !range !11, !noundef !3
call void @_ZN5rav1e11scenechange4fast19detect_scale_factor17h3135eb5fedfc57b9E(ptr noalias nocapture noundef sret({ ptr, [2 x i64] }) align 8 dereferenceable(24) %19, ptr noalias noundef readonly align 8 dereferenceable(8) %21, i8 noundef %33) #13
call void @llvm.lifetime.start.p0(i64 8, ptr %18)
%34 = icmp uge i64 %2, 5
br i1 %34, label %36, label %35
35: ; preds = %32
store i64 0, ptr %18, align 8
br label %37
36: ; preds = %32
store i64 5, ptr %18, align 8
br label %37
37: ; preds = %36, %35
%38 = load i64, ptr %18, align 8, !noundef !3
%39 = add i64 5, %2
%40 = call { ptr, i64 } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17hb35a7bafed116552E"(i64 noundef %39, i1 noundef zeroext false) #13
%41 = extractvalue { ptr, i64 } %40, 0
%42 = extractvalue { ptr, i64 } %40, 1
%43 = getelementptr inbounds { ptr, i64 }, ptr %17, i32 0, i32 0
store ptr %41, ptr %43, align 8
%44 = getelementptr inbounds { ptr, i64 }, ptr %17, i32 0, i32 1
store i64 %42, ptr %44, align 8
%45 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %17, i32 0, i32 1
store i64 0, ptr %45, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %16)
call void @llvm.lifetime.start.p0(i64 16, ptr %15)
call void @llvm.lifetime.start.p0(i64 8, ptr %14)
%46 = load ptr, ptr %19, align 8, !noundef !3
%47 = ptrtoint ptr %46 to i64
%48 = icmp eq i64 %47, 0
%49 = select i1 %48, i64 0, i64 1
switch i64 %49, label %50 [
i64 0, label %51
i64 1, label %52
]
50: ; preds = %115, %77, %64, %53, %37
unreachable
51: ; preds = %37
store ptr null, ptr %14, align 8
br label %53
52: ; preds = %37
store ptr %19, ptr %14, align 8
br label %53
53: ; preds = %52, %51
%54 = load ptr, ptr %14, align 8, !noundef !3
%55 = ptrtoint ptr %54 to i64
%56 = icmp eq i64 %55, 0
%57 = select i1 %56, i64 0, i64 1
switch i64 %57, label %50 [
i64 0, label %58
i64 1, label %59
]
58: ; preds = %53
store i64 0, ptr %15, align 8
br label %64
59: ; preds = %53
%60 = load ptr, ptr %14, align 8, !nonnull !3, !align !5, !noundef !3
%61 = getelementptr inbounds { ptr, ptr, i64 }, ptr %60, i32 0, i32 2
%62 = load i64, ptr %61, align 8, !noundef !3
%63 = getelementptr inbounds { i64, i64 }, ptr %15, i32 0, i32 1
store i64 %62, ptr %63, align 8
store i64 1, ptr %15, align 8
br label %64
64: ; preds = %59, %58
call void @llvm.lifetime.end.p0(i64 8, ptr %14)
%65 = load i64, ptr %15, align 8, !range !7, !noundef !3
switch i64 %65, label %50 [
i64 0, label %66
i64 1, label %67
]
66: ; preds = %64
store i64 1, ptr %16, align 8
br label %70
67: ; preds = %64
%68 = getelementptr inbounds { i64, i64 }, ptr %15, i32 0, i32 1
%69 = load i64, ptr %68, align 8, !noundef !3
store i64 %69, ptr %16, align 8
br label %70
70: ; preds = %67, %66
call void @llvm.lifetime.end.p0(i64 16, ptr %15)
call void @llvm.lifetime.start.p0(i64 8, ptr %13)
%71 = load i8, ptr %20, align 1, !range !11, !noundef !3
%72 = zext i8 %71 to i64
%73 = load i8, ptr @33, align 1, !range !11, !noundef !3
%74 = zext i8 %73 to i64
%75 = icmp eq i64 %72, %74
br i1 %75, label %77, label %76
76: ; preds = %70
store i64 1, ptr %13, align 8
br label %85
77: ; preds = %70
%78 = load ptr, ptr %21, align 8, !nonnull !3, !noundef !3
%79 = getelementptr inbounds { { i64 }, { i64 }, { [32 x i64], [32 x i16], [32 x i8], { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 }, { i64, i64 }, i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, { i32, [2 x i32] }, i32, i32, { i32, [6 x i32] }, i32, { i16, [2 x i16] }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [3 x i8] } }, ptr %78, i32 0, i32 2
%80 = getelementptr inbounds { [32 x i64], [32 x i16], [32 x i8], { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 }, { i64, i64 }, i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, { i32, [2 x i32] }, i32, i32, { i32, [6 x i32] }, i32, { i16, [2 x i16] }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [3 x i8] }, ptr %79, i32 0, i32 10
%81 = load i32, ptr %80, align 4, !noundef !3
%82 = zext i32 %81 to i64
%83 = load i64, ptr %16, align 8, !noundef !3
%84 = icmp eq i64 %83, 0
br i1 %84, label %50, label %115
85: ; preds = %129, %76
%86 = uitofp i64 %23 to double
%87 = fmul double 1.800000e+01, %86
%88 = fdiv double %87, 8.000000e+00
%89 = load i8, ptr %20, align 1, !range !11, !noundef !3
call void @llvm.lifetime.start.p0(i64 24, ptr %12)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %12, ptr align 8 %19, i64 24, i1 false)
call void @llvm.lifetime.start.p0(i64 200, ptr %11)
%90 = getelementptr inbounds { [192 x i8], i8, [7 x i8] }, ptr %11, i32 0, i32 1
store i8 2, ptr %90, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %10)
store ptr null, ptr %10, align 8
%91 = load i64, ptr %18, align 8, !noundef !3
%92 = load i64, ptr %13, align 8, !noundef !3
%93 = load ptr, ptr %21, align 8, !nonnull !3, !noundef !3
call void @llvm.lifetime.start.p0(i64 24, ptr %9)
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
store ptr null, ptr %7, align 8
%94 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
%95 = load ptr, ptr %94, align 8, !noundef !3
%96 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%97 = load i64, ptr %96, align 8
%98 = getelementptr inbounds { ptr, i64 }, ptr %9, i32 0, i32 0
store ptr %95, ptr %98, align 8
%99 = getelementptr inbounds { ptr, i64 }, ptr %9, i32 0, i32 1
store i64 %97, ptr %99, align 8
%100 = getelementptr inbounds { { {} }, {}, { ptr, i64 }, i64 }, ptr %9, i32 0, i32 3
store i64 0, ptr %100, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 96, ptr %8)
store ptr null, ptr %8, align 8
%101 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 5
store double %88, ptr %101, align 8
%102 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 15
store i8 %89, ptr %102, align 8
%103 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 6
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %103, ptr align 8 %12, i64 24, i1 false)
%104 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %104, ptr align 8 %11, i64 200, i1 false)
%105 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 7
store ptr null, ptr %105, align 8
%106 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %106, ptr align 8 %10, i64 16, i1 false)
%107 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 9
store i64 %91, ptr %107, align 8
%108 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
store i64 %38, ptr %108, align 8
%109 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %109, ptr align 8 %17, i64 24, i1 false)
%110 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 11
store i64 %92, ptr %110, align 8
%111 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 12
store i64 %23, ptr %111, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %1, i64 256, i1 false)
%112 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 4
store ptr %93, ptr %112, align 8
%113 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 13
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %113, ptr align 8 %9, i64 24, i1 false)
%114 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 14
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %114, ptr align 8 %8, i64 96, i1 false)
call void @llvm.lifetime.end.p0(i64 96, ptr %8)
call void @llvm.lifetime.end.p0(i64 24, ptr %9)
call void @llvm.lifetime.end.p0(i64 16, ptr %10)
call void @llvm.lifetime.end.p0(i64 200, ptr %11)
call void @llvm.lifetime.end.p0(i64 24, ptr %12)
call void @llvm.lifetime.end.p0(i64 8, ptr %13)
call void @llvm.lifetime.end.p0(i64 8, ptr %16)
call void @llvm.lifetime.end.p0(i64 8, ptr %18)
call void @llvm.lifetime.end.p0(i64 24, ptr %19)
call void @llvm.lifetime.end.p0(i64 1, ptr %20)
ret void
115: ; preds = %77
call void @llvm.lifetime.start.p0(i64 8, ptr %6)
%116 = call i64 @llvm.cttz.i64(i64 %83, i1 false)
store i64 %116, ptr %6, align 8
%117 = load i64, ptr %6, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 8, ptr %6)
%118 = trunc i64 %117 to i32
%119 = zext i32 %118 to i64
%120 = and i64 %119, 63
%121 = lshr i64 %82, %120
%122 = load ptr, ptr %21, align 8, !nonnull !3, !noundef !3
%123 = getelementptr inbounds { { i64 }, { i64 }, { [32 x i64], [32 x i16], [32 x i8], { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 }, { i64, i64 }, i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, { i32, [2 x i32] }, i32, i32, { i32, [6 x i32] }, i32, { i16, [2 x i16] }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [3 x i8] } }, ptr %122, i32 0, i32 2
%124 = getelementptr inbounds { [32 x i64], [32 x i16], [32 x i8], { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 }, { i64, i64 }, i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, { i32, [2 x i32] }, i32, i32, { i32, [6 x i32] }, i32, { i16, [2 x i16] }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [3 x i8] }, ptr %123, i32 0, i32 9
%125 = load i32, ptr %124, align 8, !noundef !3
%126 = zext i32 %125 to i64
%127 = load i64, ptr %16, align 8, !noundef !3
%128 = icmp eq i64 %127, 0
br i1 %128, label %50, label %129
129: ; preds = %115
call void @llvm.lifetime.start.p0(i64 8, ptr %5)
%130 = call i64 @llvm.cttz.i64(i64 %127, i1 false)
store i64 %130, ptr %5, align 8
%131 = load i64, ptr %5, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 8, ptr %5)
%132 = trunc i64 %131 to i32
%133 = zext i32 %132 to i64
%134 = and i64 %133, 63
%135 = lshr i64 %126, %134
%136 = mul i64 %121, %135
store i64 %136, ptr %13, align 8
br label %85
}
; Function Attrs: nounwind nonlazybind
define hidden void @"_ZN5rav1e11scenechange28SceneChangeDetector$LT$T$GT$3new17hf92c3d5d9d4b59d3E"(ptr noalias nocapture noundef sret({ {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }) align 8 dereferenceable(704) %0, ptr noalias nocapture noundef readonly align 8 dereferenceable(256) %1, i64 noundef %2, ptr noundef nonnull %3) unnamed_addr #1 {
%5 = alloca i64, align 8
%6 = alloca i64, align 8
%7 = alloca { ptr, i64 }, align 8
%8 = alloca { ptr, [11 x i64] }, align 8
%9 = alloca { { {} }, {}, { ptr, i64 }, i64 }, align 8
%10 = alloca { ptr, [1 x i64] }, align 8
%11 = alloca { [192 x i8], i8, [7 x i8] }, align 8
%12 = alloca { ptr, [2 x i64] }, align 8
%13 = alloca i64, align 8
%14 = alloca ptr, align 8
%15 = alloca { i64, i64 }, align 8
%16 = alloca i64, align 8
%17 = alloca { { ptr, i64 }, i64 }, align 8
%18 = alloca i64, align 8
%19 = alloca { ptr, [2 x i64] }, align 8
%20 = alloca i8, align 1
%21 = alloca ptr, align 8
store ptr %3, ptr %21, align 8
%22 = getelementptr inbounds { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, ptr %1, i32 0, i32 6
%23 = load i64, ptr %22, align 8, !noundef !3
call void @llvm.lifetime.start.p0(i64 1, ptr %20)
%24 = getelementptr inbounds { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, ptr %1, i32 0, i32 27
%25 = load i8, ptr %24, align 1, !range !9, !noundef !3
%26 = trunc i8 %25 to i1
br i1 %26, label %31, label %27
27: ; preds = %4
%28 = getelementptr inbounds { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, ptr %1, i32 0, i32 1
%29 = getelementptr inbounds { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, ptr %28, i32 0, i32 1
%30 = load i8, ptr %29, align 8, !range !11, !noundef !3
store i8 %30, ptr %20, align 1
br label %32
31: ; preds = %4
store i8 0, ptr %20, align 1
br label %32
32: ; preds = %31, %27
call void @llvm.lifetime.start.p0(i64 24, ptr %19)
%33 = load i8, ptr %20, align 1, !range !11, !noundef !3
call void @_ZN5rav1e11scenechange4fast19detect_scale_factor17h001abf7a2fc7d961E(ptr noalias nocapture noundef sret({ ptr, [2 x i64] }) align 8 dereferenceable(24) %19, ptr noalias noundef readonly align 8 dereferenceable(8) %21, i8 noundef %33) #13
call void @llvm.lifetime.start.p0(i64 8, ptr %18)
%34 = icmp uge i64 %2, 5
br i1 %34, label %36, label %35
35: ; preds = %32
store i64 0, ptr %18, align 8
br label %37
36: ; preds = %32
store i64 5, ptr %18, align 8
br label %37
37: ; preds = %36, %35
%38 = load i64, ptr %18, align 8, !noundef !3
%39 = add i64 5, %2
%40 = call { ptr, i64 } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17hb35a7bafed116552E"(i64 noundef %39, i1 noundef zeroext false) #13
%41 = extractvalue { ptr, i64 } %40, 0
%42 = extractvalue { ptr, i64 } %40, 1
%43 = getelementptr inbounds { ptr, i64 }, ptr %17, i32 0, i32 0
store ptr %41, ptr %43, align 8
%44 = getelementptr inbounds { ptr, i64 }, ptr %17, i32 0, i32 1
store i64 %42, ptr %44, align 8
%45 = getelementptr inbounds { { ptr, i64 }, i64 }, ptr %17, i32 0, i32 1
store i64 0, ptr %45, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %16)
call void @llvm.lifetime.start.p0(i64 16, ptr %15)
call void @llvm.lifetime.start.p0(i64 8, ptr %14)
%46 = load ptr, ptr %19, align 8, !noundef !3
%47 = ptrtoint ptr %46 to i64
%48 = icmp eq i64 %47, 0
%49 = select i1 %48, i64 0, i64 1
switch i64 %49, label %50 [
i64 0, label %51
i64 1, label %52
]
50: ; preds = %115, %77, %64, %53, %37
unreachable
51: ; preds = %37
store ptr null, ptr %14, align 8
br label %53
52: ; preds = %37
store ptr %19, ptr %14, align 8
br label %53
53: ; preds = %52, %51
%54 = load ptr, ptr %14, align 8, !noundef !3
%55 = ptrtoint ptr %54 to i64
%56 = icmp eq i64 %55, 0
%57 = select i1 %56, i64 0, i64 1
switch i64 %57, label %50 [
i64 0, label %58
i64 1, label %59
]
58: ; preds = %53
store i64 0, ptr %15, align 8
br label %64
59: ; preds = %53
%60 = load ptr, ptr %14, align 8, !nonnull !3, !align !5, !noundef !3
%61 = getelementptr inbounds { ptr, ptr, i64 }, ptr %60, i32 0, i32 2
%62 = load i64, ptr %61, align 8, !noundef !3
%63 = getelementptr inbounds { i64, i64 }, ptr %15, i32 0, i32 1
store i64 %62, ptr %63, align 8
store i64 1, ptr %15, align 8
br label %64
64: ; preds = %59, %58
call void @llvm.lifetime.end.p0(i64 8, ptr %14)
%65 = load i64, ptr %15, align 8, !range !7, !noundef !3
switch i64 %65, label %50 [
i64 0, label %66
i64 1, label %67
]
66: ; preds = %64
store i64 1, ptr %16, align 8
br label %70
67: ; preds = %64
%68 = getelementptr inbounds { i64, i64 }, ptr %15, i32 0, i32 1
%69 = load i64, ptr %68, align 8, !noundef !3
store i64 %69, ptr %16, align 8
br label %70
70: ; preds = %67, %66
call void @llvm.lifetime.end.p0(i64 16, ptr %15)
call void @llvm.lifetime.start.p0(i64 8, ptr %13)
%71 = load i8, ptr %20, align 1, !range !11, !noundef !3
%72 = zext i8 %71 to i64
%73 = load i8, ptr @33, align 1, !range !11, !noundef !3
%74 = zext i8 %73 to i64
%75 = icmp eq i64 %72, %74
br i1 %75, label %77, label %76
76: ; preds = %70
store i64 1, ptr %13, align 8
br label %85
77: ; preds = %70
%78 = load ptr, ptr %21, align 8, !nonnull !3, !noundef !3
%79 = getelementptr inbounds { { i64 }, { i64 }, { [32 x i64], [32 x i16], [32 x i8], { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 }, { i64, i64 }, i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, { i32, [2 x i32] }, i32, i32, { i32, [6 x i32] }, i32, { i16, [2 x i16] }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [3 x i8] } }, ptr %78, i32 0, i32 2
%80 = getelementptr inbounds { [32 x i64], [32 x i16], [32 x i8], { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 }, { i64, i64 }, i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, { i32, [2 x i32] }, i32, i32, { i32, [6 x i32] }, i32, { i16, [2 x i16] }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [3 x i8] }, ptr %79, i32 0, i32 10
%81 = load i32, ptr %80, align 4, !noundef !3
%82 = zext i32 %81 to i64
%83 = load i64, ptr %16, align 8, !noundef !3
%84 = icmp eq i64 %83, 0
br i1 %84, label %50, label %115
85: ; preds = %129, %76
%86 = uitofp i64 %23 to double
%87 = fmul double 1.800000e+01, %86
%88 = fdiv double %87, 8.000000e+00
%89 = load i8, ptr %20, align 1, !range !11, !noundef !3
call void @llvm.lifetime.start.p0(i64 24, ptr %12)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %12, ptr align 8 %19, i64 24, i1 false)
call void @llvm.lifetime.start.p0(i64 200, ptr %11)
%90 = getelementptr inbounds { [192 x i8], i8, [7 x i8] }, ptr %11, i32 0, i32 1
store i8 2, ptr %90, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr %10)
store ptr null, ptr %10, align 8
%91 = load i64, ptr %18, align 8, !noundef !3
%92 = load i64, ptr %13, align 8, !noundef !3
%93 = load ptr, ptr %21, align 8, !nonnull !3, !noundef !3
call void @llvm.lifetime.start.p0(i64 24, ptr %9)
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
store ptr null, ptr %7, align 8
%94 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 0
%95 = load ptr, ptr %94, align 8, !noundef !3
%96 = getelementptr inbounds { ptr, i64 }, ptr %7, i32 0, i32 1
%97 = load i64, ptr %96, align 8
%98 = getelementptr inbounds { ptr, i64 }, ptr %9, i32 0, i32 0
store ptr %95, ptr %98, align 8
%99 = getelementptr inbounds { ptr, i64 }, ptr %9, i32 0, i32 1
store i64 %97, ptr %99, align 8
%100 = getelementptr inbounds { { {} }, {}, { ptr, i64 }, i64 }, ptr %9, i32 0, i32 3
store i64 0, ptr %100, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
call void @llvm.lifetime.start.p0(i64 96, ptr %8)
store ptr null, ptr %8, align 8
%101 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 5
store double %88, ptr %101, align 8
%102 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 15
store i8 %89, ptr %102, align 8
%103 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 6
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %103, ptr align 8 %12, i64 24, i1 false)
%104 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %104, ptr align 8 %11, i64 200, i1 false)
%105 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 7
store ptr null, ptr %105, align 8
%106 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %106, ptr align 8 %10, i64 16, i1 false)
%107 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 9
store i64 %91, ptr %107, align 8
%108 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 10
store i64 %38, ptr %108, align 8
%109 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 3
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %109, ptr align 8 %17, i64 24, i1 false)
%110 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 11
store i64 %92, ptr %110, align 8
%111 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 12
store i64 %23, ptr %111, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %1, i64 256, i1 false)
%112 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 4
store ptr %93, ptr %112, align 8
%113 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 13
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %113, ptr align 8 %9, i64 24, i1 false)
%114 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %0, i32 0, i32 14
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %114, ptr align 8 %8, i64 96, i1 false)
call void @llvm.lifetime.end.p0(i64 96, ptr %8)
call void @llvm.lifetime.end.p0(i64 24, ptr %9)
call void @llvm.lifetime.end.p0(i64 16, ptr %10)
call void @llvm.lifetime.end.p0(i64 200, ptr %11)
call void @llvm.lifetime.end.p0(i64 24, ptr %12)
call void @llvm.lifetime.end.p0(i64 8, ptr %13)
call void @llvm.lifetime.end.p0(i64 8, ptr %16)
call void @llvm.lifetime.end.p0(i64 8, ptr %18)
call void @llvm.lifetime.end.p0(i64 24, ptr %19)
call void @llvm.lifetime.end.p0(i64 1, ptr %20)
ret void
115: ; preds = %77
call void @llvm.lifetime.start.p0(i64 8, ptr %6)
%116 = call i64 @llvm.cttz.i64(i64 %83, i1 false)
store i64 %116, ptr %6, align 8
%117 = load i64, ptr %6, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 8, ptr %6)
%118 = trunc i64 %117 to i32
%119 = zext i32 %118 to i64
%120 = and i64 %119, 63
%121 = lshr i64 %82, %120
%122 = load ptr, ptr %21, align 8, !nonnull !3, !noundef !3
%123 = getelementptr inbounds { { i64 }, { i64 }, { [32 x i64], [32 x i16], [32 x i8], { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 }, { i64, i64 }, i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, { i32, [2 x i32] }, i32, i32, { i32, [6 x i32] }, i32, { i16, [2 x i16] }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [3 x i8] } }, ptr %122, i32 0, i32 2
%124 = getelementptr inbounds { [32 x i64], [32 x i16], [32 x i8], { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 }, { i64, i64 }, i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, { i32, [2 x i32] }, i32, i32, { i32, [6 x i32] }, i32, { i16, [2 x i16] }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [3 x i8] }, ptr %123, i32 0, i32 9
%125 = load i32, ptr %124, align 8, !noundef !3
%126 = zext i32 %125 to i64
%127 = load i64, ptr %16, align 8, !noundef !3
%128 = icmp eq i64 %127, 0
br i1 %128, label %50, label %129
129: ; preds = %115
call void @llvm.lifetime.start.p0(i64 8, ptr %5)
%130 = call i64 @llvm.cttz.i64(i64 %127, i1 false)
store i64 %130, ptr %5, align 8
%131 = load i64, ptr %5, align 8, !noundef !3
call void @llvm.lifetime.end.p0(i64 8, ptr %5)
%132 = trunc i64 %131 to i32
%133 = zext i32 %132 to i64
%134 = and i64 %133, 63
%135 = lshr i64 %126, %134
%136 = mul i64 %121, %135
store i64 %136, ptr %13, align 8
br label %85
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN5rav1e11scenechange4fast66_$LT$impl$u20$rav1e..scenechange..SceneChangeDetector$LT$T$GT$$GT$13fast_scenecut17h64a920f16f77f883E"(ptr noalias nocapture noundef sret({ double, double, double, double, double }) align 8 dereferenceable(40) %0, ptr noalias noundef align 8 dereferenceable(704) %1, ptr noundef nonnull %2, ptr noundef nonnull %3) unnamed_addr #1 {
%5 = alloca i8, align 1
%6 = alloca i8, align 1
%7 = alloca [2 x ptr], align 8
%8 = alloca { ptr, [1 x i64] }, align 8
%9 = alloca { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }, align 8
%10 = alloca { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }, align 8
%11 = alloca [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], align 8
%12 = alloca { [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], i8, [7 x i8] }, align 8
%13 = alloca { [192 x i8], i8, [7 x i8] }, align 8
%14 = alloca ptr, align 8
%15 = alloca ptr, align 8
store ptr %2, ptr %15, align 8
store ptr %3, ptr %14, align 8
store i8 1, ptr %5, align 1
store i8 1, ptr %6, align 1
%16 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 6
%17 = load ptr, ptr %16, align 8, !noundef !3
%18 = ptrtoint ptr %17 to i64
%19 = icmp eq i64 %18, 0
%20 = select i1 %19, i64 0, i64 1
%21 = icmp eq i64 %20, 1
br i1 %21, label %22, label %29
22: ; preds = %4
%23 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%24 = getelementptr inbounds { [192 x i8], i8, [7 x i8] }, ptr %23, i32 0, i32 1
%25 = load i8, ptr %24, align 8, !range !11, !noundef !3
%26 = icmp eq i8 %25, 2
%27 = select i1 %26, i64 0, i64 1
%28 = icmp eq i64 %27, 1
br i1 %28, label %36, label %41
29: ; preds = %4
%30 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
%31 = load ptr, ptr %30, align 8, !noundef !3
%32 = ptrtoint ptr %31 to i64
%33 = icmp eq i64 %32, 0
%34 = select i1 %33, i64 0, i64 1
%35 = icmp eq i64 %34, 1
br i1 %35, label %114, label %121
36: ; preds = %22
%37 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%38 = getelementptr inbounds { [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], i8, [7 x i8] }, ptr %37, i32 0, i32 1
%39 = load i8, ptr %38, align 8, !range !9, !noundef !3
%40 = trunc i8 %39 to i1
br i1 %40, label %76, label %59
41: ; preds = %22
call void @llvm.lifetime.start.p0(i64 200, ptr %13)
call void @llvm.lifetime.start.p0(i64 200, ptr %12)
call void @llvm.lifetime.start.p0(i64 192, ptr %11)
call void @llvm.lifetime.start.p0(i64 96, ptr %10)
%42 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 6
%43 = getelementptr inbounds { ptr, ptr, i64 }, ptr %42, i32 0, i32 1
%44 = load ptr, ptr %43, align 8, !nonnull !3, !noundef !3
%45 = load ptr, ptr %15, align 8, !nonnull !3, !noundef !3
%46 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %45, i32 0, i32 2
%47 = getelementptr inbounds [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %46, i64 0, i64 0
call void %44(ptr noalias nocapture noundef sret({ { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }) align 8 dereferenceable(96) %10, ptr noalias noundef readonly align 8 dereferenceable(96) %47) #13
call void @llvm.lifetime.start.p0(i64 96, ptr %9)
%48 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 6
%49 = getelementptr inbounds { ptr, ptr, i64 }, ptr %48, i32 0, i32 1
%50 = load ptr, ptr %49, align 8, !nonnull !3, !noundef !3
%51 = load ptr, ptr %14, align 8, !nonnull !3, !noundef !3
%52 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %51, i32 0, i32 2
%53 = getelementptr inbounds [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %52, i64 0, i64 0
call void %50(ptr noalias nocapture noundef sret({ { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }) align 8 dereferenceable(96) %9, ptr noalias noundef readonly align 8 dereferenceable(96) %53) #13
%54 = getelementptr inbounds [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %11, i64 0, i64 0
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %54, ptr align 8 %10, i64 96, i1 false)
%55 = getelementptr inbounds [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %11, i64 0, i64 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %55, ptr align 8 %9, i64 96, i1 false)
call void @llvm.lifetime.end.p0(i64 96, ptr %9)
call void @llvm.lifetime.end.p0(i64 96, ptr %10)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %12, ptr align 8 %11, i64 192, i1 false)
%56 = getelementptr inbounds { [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], i8, [7 x i8] }, ptr %12, i32 0, i32 1
store i8 1, ptr %56, align 8
call void @llvm.lifetime.end.p0(i64 192, ptr %11)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %13, ptr align 8 %12, i64 200, i1 false)
call void @llvm.lifetime.end.p0(i64 200, ptr %12)
%57 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
call void @"_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$$LP$$u5b$v_frame..plane..Plane$LT$u8$GT$$u3b$$u20$2$u5d$$C$bool$RP$$GT$$GT$17h0fafde64f7e5634eE"(ptr noalias noundef align 8 dereferenceable(200) %57) #13
%58 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %58, ptr align 8 %13, i64 200, i1 false)
call void @llvm.lifetime.end.p0(i64 200, ptr %13)
br label %86
59: ; preds = %36
%60 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 6
%61 = load ptr, ptr %60, align 8, !nonnull !3, !noundef !3
%62 = load ptr, ptr %15, align 8, !nonnull !3, !noundef !3
%63 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %62, i32 0, i32 2
%64 = getelementptr inbounds [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %63, i64 0, i64 0
%65 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%66 = getelementptr inbounds [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %65, i64 0, i64 0
call void %61(ptr noalias noundef readonly align 8 dereferenceable(96) %64, ptr noalias noundef align 8 dereferenceable(96) %66) #13
%67 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 6
%68 = load ptr, ptr %67, align 8, !nonnull !3, !noundef !3
%69 = load ptr, ptr %14, align 8, !nonnull !3, !noundef !3
%70 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %69, i32 0, i32 2
%71 = getelementptr inbounds [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %70, i64 0, i64 0
%72 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%73 = getelementptr inbounds [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %72, i64 0, i64 1
call void %68(ptr noalias noundef readonly align 8 dereferenceable(96) %71, ptr noalias noundef align 8 dereferenceable(96) %73) #13
%74 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%75 = getelementptr inbounds { [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], i8, [7 x i8] }, ptr %74, i32 0, i32 1
store i8 1, ptr %75, align 8
br label %85
76: ; preds = %36
%77 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
call void @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$4swap17hc7de5397331d6a7aE"(ptr noalias noundef nonnull align 8 %77, i64 noundef 2, i64 noundef 0, i64 noundef 1, ptr noalias noundef readonly align 8 dereferenceable(24) @65) #13
%78 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 6
%79 = load ptr, ptr %78, align 8, !nonnull !3, !noundef !3
%80 = load ptr, ptr %14, align 8, !nonnull !3, !noundef !3
%81 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %80, i32 0, i32 2
%82 = getelementptr inbounds [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %81, i64 0, i64 0
%83 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%84 = getelementptr inbounds [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %83, i64 0, i64 1
call void %79(ptr noalias noundef readonly align 8 dereferenceable(96) %82, ptr noalias noundef align 8 dereferenceable(96) %84) #13
br label %85
85: ; preds = %76, %59
br label %86
86: ; preds = %85, %41
%87 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%88 = getelementptr inbounds { [192 x i8], i8, [7 x i8] }, ptr %87, i32 0, i32 1
%89 = load i8, ptr %88, align 8, !range !11, !noundef !3
%90 = icmp eq i8 %89, 2
%91 = select i1 %90, i64 0, i64 1
%92 = icmp eq i64 %91, 1
br i1 %92, label %93, label %110
93: ; preds = %86
%94 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%95 = getelementptr inbounds [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %94, i64 0, i64 0
%96 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%97 = getelementptr inbounds [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %96, i64 0, i64 1
%98 = call noundef i64 @_ZN5rav1e9sad_plane9sad_plane17h2d99bf47cc6f346aE(ptr noalias noundef readonly align 8 dereferenceable(96) %95, ptr noalias noundef readonly align 8 dereferenceable(96) %97) #13
%99 = uitofp i64 %98 to double
%100 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 11
%101 = load i64, ptr %100, align 8, !noundef !3
%102 = uitofp i64 %101 to double
%103 = fdiv double %99, %102
%104 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 5
%105 = load double, ptr %104, align 8, !noundef !3
store double %103, ptr %0, align 8
%106 = getelementptr inbounds { double, double, double, double, double }, ptr %0, i32 0, i32 1
store double %103, ptr %106, align 8
%107 = getelementptr inbounds { double, double, double, double, double }, ptr %0, i32 0, i32 2
store double %103, ptr %107, align 8
%108 = getelementptr inbounds { double, double, double, double, double }, ptr %0, i32 0, i32 3
store double %103, ptr %108, align 8
%109 = getelementptr inbounds { double, double, double, double, double }, ptr %0, i32 0, i32 4
store double %105, ptr %109, align 8
br label %111
110: ; preds = %128, %86
unreachable
111: ; preds = %135, %93
%112 = load i8, ptr %6, align 1, !range !9, !noundef !3
%113 = trunc i8 %112 to i1
br i1 %113, label %161, label %158
114: ; preds = %29
%115 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
call void @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$4swap17h7887f6cfc86527ebE"(ptr noalias noundef nonnull align 8 %115, i64 noundef 2, i64 noundef 0, i64 noundef 1, ptr noalias noundef readonly align 8 dereferenceable(24) @66) #13
store i8 0, ptr %6, align 1
%116 = load ptr, ptr %14, align 8, !nonnull !3, !noundef !3
%117 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
%118 = getelementptr inbounds [2 x ptr], ptr %117, i64 0, i64 1
call void @"_ZN4core3ptr76drop_in_place$LT$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u8$GT$$GT$$GT$17hb99adee657fc5b66E"(ptr noalias noundef align 8 dereferenceable(8) %118) #13
%119 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
%120 = getelementptr inbounds [2 x ptr], ptr %119, i64 0, i64 1
store ptr %116, ptr %120, align 8
br label %128
121: ; preds = %29
call void @llvm.lifetime.start.p0(i64 16, ptr %8)
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
store i8 0, ptr %5, align 1
%122 = load ptr, ptr %15, align 8, !nonnull !3, !noundef !3
store i8 0, ptr %6, align 1
%123 = load ptr, ptr %14, align 8, !nonnull !3, !noundef !3
%124 = getelementptr inbounds [2 x ptr], ptr %7, i64 0, i64 0
store ptr %122, ptr %124, align 8
%125 = getelementptr inbounds [2 x ptr], ptr %7, i64 0, i64 1
store ptr %123, ptr %125, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %7, i64 16, i1 false)
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%126 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
call void @"_ZN4core3ptr125drop_in_place$LT$core..option..Option$LT$$u5b$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u8$GT$$GT$$u3b$$u20$2$u5d$$GT$$GT$17h5933843bcb50aaebE"(ptr noalias noundef align 8 dereferenceable(16) %126) #13
%127 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %127, ptr align 8 %8, i64 16, i1 false)
call void @llvm.lifetime.end.p0(i64 16, ptr %8)
br label %128
128: ; preds = %121, %114
%129 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
%130 = load ptr, ptr %129, align 8, !noundef !3
%131 = ptrtoint ptr %130 to i64
%132 = icmp eq i64 %131, 0
%133 = select i1 %132, i64 0, i64 1
%134 = icmp eq i64 %133, 1
br i1 %134, label %135, label %110
135: ; preds = %128
%136 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
%137 = getelementptr inbounds [2 x ptr], ptr %136, i64 0, i64 0
%138 = load ptr, ptr %137, align 8, !nonnull !3, !noundef !3
%139 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %138, i32 0, i32 2
%140 = getelementptr inbounds [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %139, i64 0, i64 0
%141 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
%142 = getelementptr inbounds [2 x ptr], ptr %141, i64 0, i64 1
%143 = load ptr, ptr %142, align 8, !nonnull !3, !noundef !3
%144 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %143, i32 0, i32 2
%145 = getelementptr inbounds [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %144, i64 0, i64 0
%146 = call noundef i64 @_ZN5rav1e9sad_plane9sad_plane17h2d99bf47cc6f346aE(ptr noalias noundef readonly align 8 dereferenceable(96) %140, ptr noalias noundef readonly align 8 dereferenceable(96) %145) #13
%147 = uitofp i64 %146 to double
%148 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 11
%149 = load i64, ptr %148, align 8, !noundef !3
%150 = uitofp i64 %149 to double
%151 = fdiv double %147, %150
%152 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 5
%153 = load double, ptr %152, align 8, !noundef !3
store double %151, ptr %0, align 8
%154 = getelementptr inbounds { double, double, double, double, double }, ptr %0, i32 0, i32 1
store double %151, ptr %154, align 8
%155 = getelementptr inbounds { double, double, double, double, double }, ptr %0, i32 0, i32 2
store double %151, ptr %155, align 8
%156 = getelementptr inbounds { double, double, double, double, double }, ptr %0, i32 0, i32 3
store double %151, ptr %156, align 8
%157 = getelementptr inbounds { double, double, double, double, double }, ptr %0, i32 0, i32 4
store double %153, ptr %157, align 8
br label %111
158: ; preds = %161, %111
%159 = load i8, ptr %5, align 1, !range !9, !noundef !3
%160 = trunc i8 %159 to i1
br i1 %160, label %163, label %162
161: ; preds = %111
call void @"_ZN4core3ptr76drop_in_place$LT$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u8$GT$$GT$$GT$17hb99adee657fc5b66E"(ptr noalias noundef align 8 dereferenceable(8) %14) #13
br label %158
162: ; preds = %163, %158
ret void
163: ; preds = %158
call void @"_ZN4core3ptr76drop_in_place$LT$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u8$GT$$GT$$GT$17hb99adee657fc5b66E"(ptr noalias noundef align 8 dereferenceable(8) %15) #13
br label %162
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN5rav1e11scenechange4fast66_$LT$impl$u20$rav1e..scenechange..SceneChangeDetector$LT$T$GT$$GT$13fast_scenecut17h72dea206465a4de2E"(ptr noalias nocapture noundef sret({ double, double, double, double, double }) align 8 dereferenceable(40) %0, ptr noalias noundef align 8 dereferenceable(704) %1, ptr noundef nonnull %2, ptr noundef nonnull %3) unnamed_addr #1 {
%5 = alloca i8, align 1
%6 = alloca i8, align 1
%7 = alloca [2 x ptr], align 8
%8 = alloca { ptr, [1 x i64] }, align 8
%9 = alloca { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }, align 8
%10 = alloca { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }, align 8
%11 = alloca [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], align 8
%12 = alloca { [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], i8, [7 x i8] }, align 8
%13 = alloca { [192 x i8], i8, [7 x i8] }, align 8
%14 = alloca ptr, align 8
%15 = alloca ptr, align 8
store ptr %2, ptr %15, align 8
store ptr %3, ptr %14, align 8
store i8 1, ptr %5, align 1
store i8 1, ptr %6, align 1
%16 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 6
%17 = load ptr, ptr %16, align 8, !noundef !3
%18 = ptrtoint ptr %17 to i64
%19 = icmp eq i64 %18, 0
%20 = select i1 %19, i64 0, i64 1
%21 = icmp eq i64 %20, 1
br i1 %21, label %22, label %29
22: ; preds = %4
%23 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%24 = getelementptr inbounds { [192 x i8], i8, [7 x i8] }, ptr %23, i32 0, i32 1
%25 = load i8, ptr %24, align 8, !range !11, !noundef !3
%26 = icmp eq i8 %25, 2
%27 = select i1 %26, i64 0, i64 1
%28 = icmp eq i64 %27, 1
br i1 %28, label %36, label %41
29: ; preds = %4
%30 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
%31 = load ptr, ptr %30, align 8, !noundef !3
%32 = ptrtoint ptr %31 to i64
%33 = icmp eq i64 %32, 0
%34 = select i1 %33, i64 0, i64 1
%35 = icmp eq i64 %34, 1
br i1 %35, label %114, label %121
36: ; preds = %22
%37 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%38 = getelementptr inbounds { [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], i8, [7 x i8] }, ptr %37, i32 0, i32 1
%39 = load i8, ptr %38, align 8, !range !9, !noundef !3
%40 = trunc i8 %39 to i1
br i1 %40, label %76, label %59
41: ; preds = %22
call void @llvm.lifetime.start.p0(i64 200, ptr %13)
call void @llvm.lifetime.start.p0(i64 200, ptr %12)
call void @llvm.lifetime.start.p0(i64 192, ptr %11)
call void @llvm.lifetime.start.p0(i64 96, ptr %10)
%42 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 6
%43 = getelementptr inbounds { ptr, ptr, i64 }, ptr %42, i32 0, i32 1
%44 = load ptr, ptr %43, align 8, !nonnull !3, !noundef !3
%45 = load ptr, ptr %15, align 8, !nonnull !3, !noundef !3
%46 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %45, i32 0, i32 2
%47 = getelementptr inbounds [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %46, i64 0, i64 0
call void %44(ptr noalias nocapture noundef sret({ { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }) align 8 dereferenceable(96) %10, ptr noalias noundef readonly align 8 dereferenceable(96) %47) #13
call void @llvm.lifetime.start.p0(i64 96, ptr %9)
%48 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 6
%49 = getelementptr inbounds { ptr, ptr, i64 }, ptr %48, i32 0, i32 1
%50 = load ptr, ptr %49, align 8, !nonnull !3, !noundef !3
%51 = load ptr, ptr %14, align 8, !nonnull !3, !noundef !3
%52 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %51, i32 0, i32 2
%53 = getelementptr inbounds [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %52, i64 0, i64 0
call void %50(ptr noalias nocapture noundef sret({ { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }) align 8 dereferenceable(96) %9, ptr noalias noundef readonly align 8 dereferenceable(96) %53) #13
%54 = getelementptr inbounds [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %11, i64 0, i64 0
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %54, ptr align 8 %10, i64 96, i1 false)
%55 = getelementptr inbounds [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %11, i64 0, i64 1
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %55, ptr align 8 %9, i64 96, i1 false)
call void @llvm.lifetime.end.p0(i64 96, ptr %9)
call void @llvm.lifetime.end.p0(i64 96, ptr %10)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %12, ptr align 8 %11, i64 192, i1 false)
%56 = getelementptr inbounds { [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], i8, [7 x i8] }, ptr %12, i32 0, i32 1
store i8 1, ptr %56, align 8
call void @llvm.lifetime.end.p0(i64 192, ptr %11)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %13, ptr align 8 %12, i64 200, i1 false)
call void @llvm.lifetime.end.p0(i64 200, ptr %12)
%57 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
call void @"_ZN4core3ptr117drop_in_place$LT$core..option..Option$LT$$LP$$u5b$v_frame..plane..Plane$LT$u16$GT$$u3b$$u20$2$u5d$$C$bool$RP$$GT$$GT$17h2b9b07016adfb7beE"(ptr noalias noundef align 8 dereferenceable(200) %57) #13
%58 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %58, ptr align 8 %13, i64 200, i1 false)
call void @llvm.lifetime.end.p0(i64 200, ptr %13)
br label %86
59: ; preds = %36
%60 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 6
%61 = load ptr, ptr %60, align 8, !nonnull !3, !noundef !3
%62 = load ptr, ptr %15, align 8, !nonnull !3, !noundef !3
%63 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %62, i32 0, i32 2
%64 = getelementptr inbounds [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %63, i64 0, i64 0
%65 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%66 = getelementptr inbounds [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %65, i64 0, i64 0
call void %61(ptr noalias noundef readonly align 8 dereferenceable(96) %64, ptr noalias noundef align 8 dereferenceable(96) %66) #13
%67 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 6
%68 = load ptr, ptr %67, align 8, !nonnull !3, !noundef !3
%69 = load ptr, ptr %14, align 8, !nonnull !3, !noundef !3
%70 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %69, i32 0, i32 2
%71 = getelementptr inbounds [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %70, i64 0, i64 0
%72 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%73 = getelementptr inbounds [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %72, i64 0, i64 1
call void %68(ptr noalias noundef readonly align 8 dereferenceable(96) %71, ptr noalias noundef align 8 dereferenceable(96) %73) #13
%74 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%75 = getelementptr inbounds { [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], i8, [7 x i8] }, ptr %74, i32 0, i32 1
store i8 1, ptr %75, align 8
br label %85
76: ; preds = %36
%77 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
call void @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$4swap17h76ccd7e2d4f0bcc1E"(ptr noalias noundef nonnull align 8 %77, i64 noundef 2, i64 noundef 0, i64 noundef 1, ptr noalias noundef readonly align 8 dereferenceable(24) @65) #13
%78 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 6
%79 = load ptr, ptr %78, align 8, !nonnull !3, !noundef !3
%80 = load ptr, ptr %14, align 8, !nonnull !3, !noundef !3
%81 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %80, i32 0, i32 2
%82 = getelementptr inbounds [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %81, i64 0, i64 0
%83 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%84 = getelementptr inbounds [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %83, i64 0, i64 1
call void %79(ptr noalias noundef readonly align 8 dereferenceable(96) %82, ptr noalias noundef align 8 dereferenceable(96) %84) #13
br label %85
85: ; preds = %76, %59
br label %86
86: ; preds = %85, %41
%87 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%88 = getelementptr inbounds { [192 x i8], i8, [7 x i8] }, ptr %87, i32 0, i32 1
%89 = load i8, ptr %88, align 8, !range !11, !noundef !3
%90 = icmp eq i8 %89, 2
%91 = select i1 %90, i64 0, i64 1
%92 = icmp eq i64 %91, 1
br i1 %92, label %93, label %110
93: ; preds = %86
%94 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%95 = getelementptr inbounds [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %94, i64 0, i64 0
%96 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%97 = getelementptr inbounds [2 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %96, i64 0, i64 1
%98 = call noundef i64 @_ZN5rav1e9sad_plane9sad_plane17h4a304a74c0f73838E(ptr noalias noundef readonly align 8 dereferenceable(96) %95, ptr noalias noundef readonly align 8 dereferenceable(96) %97) #13
%99 = uitofp i64 %98 to double
%100 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 11
%101 = load i64, ptr %100, align 8, !noundef !3
%102 = uitofp i64 %101 to double
%103 = fdiv double %99, %102
%104 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 5
%105 = load double, ptr %104, align 8, !noundef !3
store double %103, ptr %0, align 8
%106 = getelementptr inbounds { double, double, double, double, double }, ptr %0, i32 0, i32 1
store double %103, ptr %106, align 8
%107 = getelementptr inbounds { double, double, double, double, double }, ptr %0, i32 0, i32 2
store double %103, ptr %107, align 8
%108 = getelementptr inbounds { double, double, double, double, double }, ptr %0, i32 0, i32 3
store double %103, ptr %108, align 8
%109 = getelementptr inbounds { double, double, double, double, double }, ptr %0, i32 0, i32 4
store double %105, ptr %109, align 8
br label %111
110: ; preds = %128, %86
unreachable
111: ; preds = %135, %93
%112 = load i8, ptr %6, align 1, !range !9, !noundef !3
%113 = trunc i8 %112 to i1
br i1 %113, label %161, label %158
114: ; preds = %29
%115 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
call void @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$4swap17he8f258dde4ce78bcE"(ptr noalias noundef nonnull align 8 %115, i64 noundef 2, i64 noundef 0, i64 noundef 1, ptr noalias noundef readonly align 8 dereferenceable(24) @66) #13
store i8 0, ptr %6, align 1
%116 = load ptr, ptr %14, align 8, !nonnull !3, !noundef !3
%117 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
%118 = getelementptr inbounds [2 x ptr], ptr %117, i64 0, i64 1
call void @"_ZN4core3ptr77drop_in_place$LT$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u16$GT$$GT$$GT$17h72bdb586bad2ecf3E"(ptr noalias noundef align 8 dereferenceable(8) %118) #13
%119 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
%120 = getelementptr inbounds [2 x ptr], ptr %119, i64 0, i64 1
store ptr %116, ptr %120, align 8
br label %128
121: ; preds = %29
call void @llvm.lifetime.start.p0(i64 16, ptr %8)
call void @llvm.lifetime.start.p0(i64 16, ptr %7)
store i8 0, ptr %5, align 1
%122 = load ptr, ptr %15, align 8, !nonnull !3, !noundef !3
store i8 0, ptr %6, align 1
%123 = load ptr, ptr %14, align 8, !nonnull !3, !noundef !3
%124 = getelementptr inbounds [2 x ptr], ptr %7, i64 0, i64 0
store ptr %122, ptr %124, align 8
%125 = getelementptr inbounds [2 x ptr], ptr %7, i64 0, i64 1
store ptr %123, ptr %125, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %7, i64 16, i1 false)
call void @llvm.lifetime.end.p0(i64 16, ptr %7)
%126 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
call void @"_ZN4core3ptr126drop_in_place$LT$core..option..Option$LT$$u5b$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u16$GT$$GT$$u3b$$u20$2$u5d$$GT$$GT$17h53de1d31a98f91a0E"(ptr noalias noundef align 8 dereferenceable(16) %126) #13
%127 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %127, ptr align 8 %8, i64 16, i1 false)
call void @llvm.lifetime.end.p0(i64 16, ptr %8)
br label %128
128: ; preds = %121, %114
%129 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
%130 = load ptr, ptr %129, align 8, !noundef !3
%131 = ptrtoint ptr %130 to i64
%132 = icmp eq i64 %131, 0
%133 = select i1 %132, i64 0, i64 1
%134 = icmp eq i64 %133, 1
br i1 %134, label %135, label %110
135: ; preds = %128
%136 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
%137 = getelementptr inbounds [2 x ptr], ptr %136, i64 0, i64 0
%138 = load ptr, ptr %137, align 8, !nonnull !3, !noundef !3
%139 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %138, i32 0, i32 2
%140 = getelementptr inbounds [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %139, i64 0, i64 0
%141 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 8
%142 = getelementptr inbounds [2 x ptr], ptr %141, i64 0, i64 1
%143 = load ptr, ptr %142, align 8, !nonnull !3, !noundef !3
%144 = getelementptr inbounds { { i64 }, { i64 }, { [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }] } }, ptr %143, i32 0, i32 2
%145 = getelementptr inbounds [3 x { { ptr, i64 }, { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } }], ptr %144, i64 0, i64 0
%146 = call noundef i64 @_ZN5rav1e9sad_plane9sad_plane17h4a304a74c0f73838E(ptr noalias noundef readonly align 8 dereferenceable(96) %140, ptr noalias noundef readonly align 8 dereferenceable(96) %145) #13
%147 = uitofp i64 %146 to double
%148 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 11
%149 = load i64, ptr %148, align 8, !noundef !3
%150 = uitofp i64 %149 to double
%151 = fdiv double %147, %150
%152 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 5
%153 = load double, ptr %152, align 8, !noundef !3
store double %151, ptr %0, align 8
%154 = getelementptr inbounds { double, double, double, double, double }, ptr %0, i32 0, i32 1
store double %151, ptr %154, align 8
%155 = getelementptr inbounds { double, double, double, double, double }, ptr %0, i32 0, i32 2
store double %151, ptr %155, align 8
%156 = getelementptr inbounds { double, double, double, double, double }, ptr %0, i32 0, i32 3
store double %151, ptr %156, align 8
%157 = getelementptr inbounds { double, double, double, double, double }, ptr %0, i32 0, i32 4
store double %153, ptr %157, align 8
br label %111
158: ; preds = %161, %111
%159 = load i8, ptr %5, align 1, !range !9, !noundef !3
%160 = trunc i8 %159 to i1
br i1 %160, label %163, label %162
161: ; preds = %111
call void @"_ZN4core3ptr77drop_in_place$LT$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u16$GT$$GT$$GT$17h72bdb586bad2ecf3E"(ptr noalias noundef align 8 dereferenceable(8) %14) #13
br label %158
162: ; preds = %163, %158
ret void
163: ; preds = %158
call void @"_ZN4core3ptr77drop_in_place$LT$alloc..sync..Arc$LT$v_frame..frame..Frame$LT$u16$GT$$GT$$GT$17h72bdb586bad2ecf3E"(ptr noalias noundef align 8 dereferenceable(8) %15) #13
br label %162
}
; Function Attrs: nounwind nonlazybind
define internal void @"_ZN5rav1e11scenechange8standard66_$LT$impl$u20$rav1e..scenechange..SceneChangeDetector$LT$T$GT$$GT$13cost_scenecut17h61f3f7bf4e5b205bE"(ptr noalias nocapture noundef sret({ double, double, double, double, double }) align 8 dereferenceable(40) %0, ptr noalias noundef align 8 dereferenceable(704) %1, ptr noundef nonnull %2, ptr noundef nonnull %3, i64 noundef %4) unnamed_addr #1 {
%6 = alloca { { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } }, align 8
%7 = alloca { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }, align 8
%8 = alloca ptr, align 8
%9 = alloca ptr, align 8
%10 = alloca ptr, align 8
%11 = alloca double, align 8
%12 = alloca double, align 8
%13 = alloca double, align 8
%14 = alloca i64, align 8
%15 = alloca ptr, align 8
%16 = alloca ptr, align 8
store ptr %2, ptr %16, align 8
store ptr %3, ptr %15, align 8
store i64 %4, ptr %14, align 8
%17 = call noundef nonnull ptr @"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h66e8dc729b9420cbE"(ptr noalias noundef readonly align 8 dereferenceable(8) %15) #13
%18 = call noundef nonnull ptr @"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h66e8dc729b9420cbE"(ptr noalias noundef readonly align 8 dereferenceable(8) %16) #13
%19 = call noundef nonnull ptr @"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h66e8dc729b9420cbE"(ptr noalias noundef readonly align 8 dereferenceable(8) %15) #13
call void @llvm.lifetime.start.p0(i64 8, ptr %13)
store double 0.000000e+00, ptr %13, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %12)
store double 0.000000e+00, ptr %12, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr %11)
store double 0.000000e+00, ptr %11, align 8
%20 = getelementptr inbounds { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, ptr %1, i32 0, i32 2
%21 = load i64, ptr %20, align 8, !noundef !3
%22 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %21, i64 8)
%23 = extractvalue { i64, i1 } %22, 0
%24 = extractvalue { i64, i1 } %22, 1
%25 = sub i64 %23, 1
%26 = lshr i64 %25, 3
%27 = mul i64 2, %26
%28 = getelementptr inbounds { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, ptr %1, i32 0, i32 3
%29 = load i64, ptr %28, align 8, !noundef !3
%30 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %29, i64 8)
%31 = extractvalue { i64, i1 } %30, 0
%32 = extractvalue { i64, i1 } %30, 1
%33 = sub i64 %31, 1
%34 = lshr i64 %33, 3
%35 = mul i64 2, %34
call void @llvm.lifetime.start.p0(i64 8, ptr %10)
%36 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 7
%37 = load ptr, ptr %36, align 8, !noundef !3
%38 = ptrtoint ptr %37 to i64
%39 = icmp eq i64 %38, 0
%40 = select i1 %39, i64 0, i64 1
%41 = icmp eq i64 %40, 1
br i1 %41, label %42, label %45
42: ; preds = %5
%43 = getelementptr inbounds { {}, { { i32, i32 }, { i64, i8, i8, { i8, i8, i8, i8, i8 }, { i8, i8, { i8, i8 } }, { i8, i8, i8 }, { i8, i8 }, i8, i8, i8, i8, i8, i8, [2 x i8] }, i64, i64, { i64, i64 }, { i64, i64 }, i64, i64, i64, i64, i64, { ptr, [2 x i64] }, i64, i64, i64, i32, { i32, [6 x i32] }, i32, i32, i32, { i32, [2 x i32] }, i32, { i16, [2 x i16] }, { i8, i8 }, i8, i8, i8, i8, i8, [7 x i8] }, { [192 x i8], i8, [7 x i8] }, { { ptr, i64 }, i64 }, ptr, double, { ptr, [2 x i64] }, ptr, { ptr, [1 x i64] }, i64, i64, i64, i64, { { {} }, {}, { ptr, i64 }, i64 }, { ptr, [11 x i64] }, i8, [7 x i8] }, ptr %1, i32 0, i32 7
%44 = call noundef nonnull ptr @"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4acdc87e19432360E"(ptr noalias noundef readonly align 8 dereferenceable(8) %43) #13
store ptr %44, ptr %10, align 8
br label %52
45: ; preds = %5
call void @llvm.lifetime.start.p0(i64 8, ptr %9)
%
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment