; LLVM IR from aagdev/mlimgsynth :: src/ccommon (any)

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

%struct.Any = type { i16, i16, i32, %union.AnyPayload }
%union.AnyPayload = type { i64 }

@.str.29 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [41 x i8], align 1
@__PRETTY_FUNCTION__.anys_equal = external hidden unnamed_addr constant [39 x i8], align 1

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

; Function Attrs: nounwind uwtable
define dso_local zeroext i1 @anys_equal(i64 %0, i64 %1, i64 %2, i64 %3) #1 {
  %5 = alloca i1, align 1
  %6 = alloca %struct.Any, align 8
  %7 = alloca %struct.Any, align 8
  %8 = getelementptr inbounds { i64, i64 }, ptr %6, i32 0, i32 0
  store i64 %0, ptr %8, align 8
  %9 = getelementptr inbounds { i64, i64 }, ptr %6, i32 0, i32 1
  store i64 %1, ptr %9, align 8
  %10 = getelementptr inbounds { i64, i64 }, ptr %7, i32 0, i32 0
  store i64 %2, ptr %10, align 8
  %11 = getelementptr inbounds { i64, i64 }, ptr %7, i32 0, i32 1
  store i64 %3, ptr %11, align 8
  %12 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 0
  %13 = load i16, ptr %12, align 8, !tbaa !5
  %14 = zext i16 %13 to i32
  switch i32 %14, label %1299 [
    i32 0, label %15
    i32 1, label %78
    i32 2, label %196
    i32 3, label %301
    i32 4, label %406
    i32 5, label %511
    i32 6, label %605
    i32 7, label %699
    i32 8, label %804
    i32 9, label %909
    i32 10, label %1003
    i32 11, label %1097
    i32 12, label %1198
  ]

15:                                               ; preds = %4
  br label %16

16:                                               ; preds = %15
  %17 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 0
  %18 = load i16, ptr %17, align 8, !tbaa !5
  %19 = zext i16 %18 to i32
  switch i32 %19, label %76 [
    i32 0, label %20
    i32 1, label %21
    i32 2, label %27
    i32 3, label %32
    i32 4, label %37
    i32 5, label %42
    i32 6, label %46
    i32 7, label %50
    i32 8, label %55
    i32 9, label %60
    i32 10, label %64
    i32 11, label %68
    i32 12, label %72
  ]

20:                                               ; preds = %16
  store i1 true, ptr %5, align 1
  br label %1328

21:                                               ; preds = %16
  %22 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %23 = load i8, ptr %22, align 8, !tbaa !11, !range !12, !noundef !13
  %24 = trunc i8 %23 to i1
  %25 = zext i1 %24 to i32
  %26 = icmp eq i32 0, %25
  store i1 %26, ptr %5, align 1
  br label %1328

27:                                               ; preds = %16
  %28 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %29 = load i8, ptr %28, align 8, !tbaa !11
  %30 = sext i8 %29 to i32
  %31 = icmp eq i32 0, %30
  store i1 %31, ptr %5, align 1
  br label %1328

32:                                               ; preds = %16
  %33 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %34 = load i8, ptr %33, align 8, !tbaa !11
  %35 = zext i8 %34 to i32
  %36 = icmp eq i32 0, %35
  store i1 %36, ptr %5, align 1
  br label %1328

37:                                               ; preds = %16
  %38 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %39 = load i16, ptr %38, align 8, !tbaa !11
  %40 = zext i16 %39 to i32
  %41 = icmp eq i32 0, %40
  store i1 %41, ptr %5, align 1
  br label %1328

42:                                               ; preds = %16
  %43 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %44 = load i32, ptr %43, align 8, !tbaa !11
  %45 = icmp eq i32 0, %44
  store i1 %45, ptr %5, align 1
  br label %1328

46:                                               ; preds = %16
  %47 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %48 = load i64, ptr %47, align 8, !tbaa !11
  %49 = icmp eq i64 0, %48
  store i1 %49, ptr %5, align 1
  br label %1328

50:                                               ; preds = %16
  %51 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %52 = load i8, ptr %51, align 8, !tbaa !11
  %53 = sext i8 %52 to i32
  %54 = icmp eq i32 0, %53
  store i1 %54, ptr %5, align 1
  br label %1328

55:                                               ; preds = %16
  %56 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %57 = load i16, ptr %56, align 8, !tbaa !11
  %58 = sext i16 %57 to i32
  %59 = icmp eq i32 0, %58
  store i1 %59, ptr %5, align 1
  br label %1328

60:                                               ; preds = %16
  %61 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %62 = load i32, ptr %61, align 8, !tbaa !11
  %63 = icmp eq i32 0, %62
  store i1 %63, ptr %5, align 1
  br label %1328

64:                                               ; preds = %16
  %65 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %66 = load i64, ptr %65, align 8, !tbaa !11
  %67 = icmp eq i64 0, %66
  store i1 %67, ptr %5, align 1
  br label %1328

68:                                               ; preds = %16
  %69 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %70 = load float, ptr %69, align 8, !tbaa !11
  %71 = fcmp oeq float 0.000000e+00, %70
  store i1 %71, ptr %5, align 1
  br label %1328

72:                                               ; preds = %16
  %73 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %74 = load double, ptr %73, align 8, !tbaa !11
  %75 = fcmp oeq double 0.000000e+00, %74
  store i1 %75, ptr %5, align 1
  br label %1328

76:                                               ; preds = %16
  store i1 false, ptr %5, align 1
  br label %1328

77:                                               ; No predecessors!
  br label %78

78:                                               ; preds = %77, %4
  br label %79

79:                                               ; preds = %78
  %80 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 0
  %81 = load i16, ptr %80, align 8, !tbaa !5
  %82 = zext i16 %81 to i32
  switch i32 %82, label %194 [
    i32 0, label %83
    i32 1, label %89
    i32 2, label %99
    i32 3, label %108
    i32 4, label %117
    i32 5, label %126
    i32 6, label %134
    i32 7, label %142
    i32 8, label %151
    i32 9, label %160
    i32 10, label %168
    i32 11, label %176
    i32 12, label %185
  ]

83:                                               ; preds = %79
  %84 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %85 = load i8, ptr %84, align 8, !tbaa !11, !range !12, !noundef !13
  %86 = trunc i8 %85 to i1
  %87 = zext i1 %86 to i32
  %88 = icmp eq i32 %87, 0
  store i1 %88, ptr %5, align 1
  br label %1328

89:                                               ; preds = %79
  %90 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %91 = load i8, ptr %90, align 8, !tbaa !11, !range !12, !noundef !13
  %92 = trunc i8 %91 to i1
  %93 = zext i1 %92 to i32
  %94 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %95 = load i8, ptr %94, align 8, !tbaa !11, !range !12, !noundef !13
  %96 = trunc i8 %95 to i1
  %97 = zext i1 %96 to i32
  %98 = icmp eq i32 %93, %97
  store i1 %98, ptr %5, align 1
  br label %1328

99:                                               ; preds = %79
  %100 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %101 = load i8, ptr %100, align 8, !tbaa !11, !range !12, !noundef !13
  %102 = trunc i8 %101 to i1
  %103 = zext i1 %102 to i32
  %104 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %105 = load i8, ptr %104, align 8, !tbaa !11
  %106 = sext i8 %105 to i32
  %107 = icmp eq i32 %103, %106
  store i1 %107, ptr %5, align 1
  br label %1328

108:                                              ; preds = %79
  %109 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %110 = load i8, ptr %109, align 8, !tbaa !11, !range !12, !noundef !13
  %111 = trunc i8 %110 to i1
  %112 = zext i1 %111 to i32
  %113 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %114 = load i8, ptr %113, align 8, !tbaa !11
  %115 = zext i8 %114 to i32
  %116 = icmp eq i32 %112, %115
  store i1 %116, ptr %5, align 1
  br label %1328

117:                                              ; preds = %79
  %118 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %119 = load i8, ptr %118, align 8, !tbaa !11, !range !12, !noundef !13
  %120 = trunc i8 %119 to i1
  %121 = zext i1 %120 to i32
  %122 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %123 = load i16, ptr %122, align 8, !tbaa !11
  %124 = zext i16 %123 to i32
  %125 = icmp eq i32 %121, %124
  store i1 %125, ptr %5, align 1
  br label %1328

126:                                              ; preds = %79
  %127 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %128 = load i8, ptr %127, align 8, !tbaa !11, !range !12, !noundef !13
  %129 = trunc i8 %128 to i1
  %130 = zext i1 %129 to i32
  %131 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %132 = load i32, ptr %131, align 8, !tbaa !11
  %133 = icmp eq i32 %130, %132
  store i1 %133, ptr %5, align 1
  br label %1328

134:                                              ; preds = %79
  %135 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %136 = load i8, ptr %135, align 8, !tbaa !11, !range !12, !noundef !13
  %137 = trunc i8 %136 to i1
  %138 = zext i1 %137 to i64
  %139 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %140 = load i64, ptr %139, align 8, !tbaa !11
  %141 = icmp eq i64 %138, %140
  store i1 %141, ptr %5, align 1
  br label %1328

142:                                              ; preds = %79
  %143 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %144 = load i8, ptr %143, align 8, !tbaa !11, !range !12, !noundef !13
  %145 = trunc i8 %144 to i1
  %146 = zext i1 %145 to i32
  %147 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %148 = load i8, ptr %147, align 8, !tbaa !11
  %149 = sext i8 %148 to i32
  %150 = icmp eq i32 %146, %149
  store i1 %150, ptr %5, align 1
  br label %1328

151:                                              ; preds = %79
  %152 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %153 = load i8, ptr %152, align 8, !tbaa !11, !range !12, !noundef !13
  %154 = trunc i8 %153 to i1
  %155 = zext i1 %154 to i32
  %156 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %157 = load i16, ptr %156, align 8, !tbaa !11
  %158 = sext i16 %157 to i32
  %159 = icmp eq i32 %155, %158
  store i1 %159, ptr %5, align 1
  br label %1328

160:                                              ; preds = %79
  %161 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %162 = load i8, ptr %161, align 8, !tbaa !11, !range !12, !noundef !13
  %163 = trunc i8 %162 to i1
  %164 = zext i1 %163 to i32
  %165 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %166 = load i32, ptr %165, align 8, !tbaa !11
  %167 = icmp eq i32 %164, %166
  store i1 %167, ptr %5, align 1
  br label %1328

168:                                              ; preds = %79
  %169 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %170 = load i8, ptr %169, align 8, !tbaa !11, !range !12, !noundef !13
  %171 = trunc i8 %170 to i1
  %172 = zext i1 %171 to i64
  %173 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %174 = load i64, ptr %173, align 8, !tbaa !11
  %175 = icmp eq i64 %172, %174
  store i1 %175, ptr %5, align 1
  br label %1328

176:                                              ; preds = %79
  %177 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %178 = load i8, ptr %177, align 8, !tbaa !11, !range !12, !noundef !13
  %179 = trunc i8 %178 to i1
  %180 = zext i1 %179 to i32
  %181 = sitofp i32 %180 to float
  %182 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %183 = load float, ptr %182, align 8, !tbaa !11
  %184 = fcmp oeq float %181, %183
  store i1 %184, ptr %5, align 1
  br label %1328

185:                                              ; preds = %79
  %186 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %187 = load i8, ptr %186, align 8, !tbaa !11, !range !12, !noundef !13
  %188 = trunc i8 %187 to i1
  %189 = zext i1 %188 to i32
  %190 = sitofp i32 %189 to double
  %191 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %192 = load double, ptr %191, align 8, !tbaa !11
  %193 = fcmp oeq double %190, %192
  store i1 %193, ptr %5, align 1
  br label %1328

194:                                              ; preds = %79
  store i1 false, ptr %5, align 1
  br label %1328

195:                                              ; No predecessors!
  br label %196

196:                                              ; preds = %195, %4
  br label %197

197:                                              ; preds = %196
  %198 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 0
  %199 = load i16, ptr %198, align 8, !tbaa !5
  %200 = zext i16 %199 to i32
  switch i32 %200, label %299 [
    i32 0, label %201
    i32 1, label %206
    i32 2, label %215
    i32 3, label %223
    i32 4, label %231
    i32 5, label %239
    i32 6, label %246
    i32 7, label %253
    i32 8, label %261
    i32 9, label %269
    i32 10, label %276
    i32 11, label %283
    i32 12, label %291
  ]

201:                                              ; preds = %197
  %202 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %203 = load i8, ptr %202, align 8, !tbaa !11
  %204 = sext i8 %203 to i32
  %205 = icmp eq i32 %204, 0
  store i1 %205, ptr %5, align 1
  br label %1328

206:                                              ; preds = %197
  %207 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %208 = load i8, ptr %207, align 8, !tbaa !11
  %209 = sext i8 %208 to i32
  %210 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %211 = load i8, ptr %210, align 8, !tbaa !11, !range !12, !noundef !13
  %212 = trunc i8 %211 to i1
  %213 = zext i1 %212 to i32
  %214 = icmp eq i32 %209, %213
  store i1 %214, ptr %5, align 1
  br label %1328

215:                                              ; preds = %197
  %216 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %217 = load i8, ptr %216, align 8, !tbaa !11
  %218 = sext i8 %217 to i32
  %219 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %220 = load i8, ptr %219, align 8, !tbaa !11
  %221 = sext i8 %220 to i32
  %222 = icmp eq i32 %218, %221
  store i1 %222, ptr %5, align 1
  br label %1328

223:                                              ; preds = %197
  %224 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %225 = load i8, ptr %224, align 8, !tbaa !11
  %226 = sext i8 %225 to i32
  %227 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %228 = load i8, ptr %227, align 8, !tbaa !11
  %229 = zext i8 %228 to i32
  %230 = icmp eq i32 %226, %229
  store i1 %230, ptr %5, align 1
  br label %1328

231:                                              ; preds = %197
  %232 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %233 = load i8, ptr %232, align 8, !tbaa !11
  %234 = sext i8 %233 to i32
  %235 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %236 = load i16, ptr %235, align 8, !tbaa !11
  %237 = zext i16 %236 to i32
  %238 = icmp eq i32 %234, %237
  store i1 %238, ptr %5, align 1
  br label %1328

239:                                              ; preds = %197
  %240 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %241 = load i8, ptr %240, align 8, !tbaa !11
  %242 = sext i8 %241 to i32
  %243 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %244 = load i32, ptr %243, align 8, !tbaa !11
  %245 = icmp eq i32 %242, %244
  store i1 %245, ptr %5, align 1
  br label %1328

246:                                              ; preds = %197
  %247 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %248 = load i8, ptr %247, align 8, !tbaa !11
  %249 = sext i8 %248 to i64
  %250 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %251 = load i64, ptr %250, align 8, !tbaa !11
  %252 = icmp eq i64 %249, %251
  store i1 %252, ptr %5, align 1
  br label %1328

253:                                              ; preds = %197
  %254 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %255 = load i8, ptr %254, align 8, !tbaa !11
  %256 = sext i8 %255 to i32
  %257 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %258 = load i8, ptr %257, align 8, !tbaa !11
  %259 = sext i8 %258 to i32
  %260 = icmp eq i32 %256, %259
  store i1 %260, ptr %5, align 1
  br label %1328

261:                                              ; preds = %197
  %262 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %263 = load i8, ptr %262, align 8, !tbaa !11
  %264 = sext i8 %263 to i32
  %265 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %266 = load i16, ptr %265, align 8, !tbaa !11
  %267 = sext i16 %266 to i32
  %268 = icmp eq i32 %264, %267
  store i1 %268, ptr %5, align 1
  br label %1328

269:                                              ; preds = %197
  %270 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %271 = load i8, ptr %270, align 8, !tbaa !11
  %272 = sext i8 %271 to i32
  %273 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %274 = load i32, ptr %273, align 8, !tbaa !11
  %275 = icmp eq i32 %272, %274
  store i1 %275, ptr %5, align 1
  br label %1328

276:                                              ; preds = %197
  %277 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %278 = load i8, ptr %277, align 8, !tbaa !11
  %279 = sext i8 %278 to i64
  %280 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %281 = load i64, ptr %280, align 8, !tbaa !11
  %282 = icmp eq i64 %279, %281
  store i1 %282, ptr %5, align 1
  br label %1328

283:                                              ; preds = %197
  %284 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %285 = load i8, ptr %284, align 8, !tbaa !11
  %286 = sext i8 %285 to i32
  %287 = sitofp i32 %286 to float
  %288 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %289 = load float, ptr %288, align 8, !tbaa !11
  %290 = fcmp oeq float %287, %289
  store i1 %290, ptr %5, align 1
  br label %1328

291:                                              ; preds = %197
  %292 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %293 = load i8, ptr %292, align 8, !tbaa !11
  %294 = sext i8 %293 to i32
  %295 = sitofp i32 %294 to double
  %296 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %297 = load double, ptr %296, align 8, !tbaa !11
  %298 = fcmp oeq double %295, %297
  store i1 %298, ptr %5, align 1
  br label %1328

299:                                              ; preds = %197
  store i1 false, ptr %5, align 1
  br label %1328

300:                                              ; No predecessors!
  br label %301

301:                                              ; preds = %300, %4
  br label %302

302:                                              ; preds = %301
  %303 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 0
  %304 = load i16, ptr %303, align 8, !tbaa !5
  %305 = zext i16 %304 to i32
  switch i32 %305, label %404 [
    i32 0, label %306
    i32 1, label %311
    i32 2, label %320
    i32 3, label %328
    i32 4, label %336
    i32 5, label %344
    i32 6, label %351
    i32 7, label %358
    i32 8, label %366
    i32 9, label %374
    i32 10, label %381
    i32 11, label %388
    i32 12, label %396
  ]

306:                                              ; preds = %302
  %307 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %308 = load i8, ptr %307, align 8, !tbaa !11
  %309 = zext i8 %308 to i32
  %310 = icmp eq i32 %309, 0
  store i1 %310, ptr %5, align 1
  br label %1328

311:                                              ; preds = %302
  %312 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %313 = load i8, ptr %312, align 8, !tbaa !11
  %314 = zext i8 %313 to i32
  %315 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %316 = load i8, ptr %315, align 8, !tbaa !11, !range !12, !noundef !13
  %317 = trunc i8 %316 to i1
  %318 = zext i1 %317 to i32
  %319 = icmp eq i32 %314, %318
  store i1 %319, ptr %5, align 1
  br label %1328

320:                                              ; preds = %302
  %321 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %322 = load i8, ptr %321, align 8, !tbaa !11
  %323 = zext i8 %322 to i32
  %324 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %325 = load i8, ptr %324, align 8, !tbaa !11
  %326 = sext i8 %325 to i32
  %327 = icmp eq i32 %323, %326
  store i1 %327, ptr %5, align 1
  br label %1328

328:                                              ; preds = %302
  %329 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %330 = load i8, ptr %329, align 8, !tbaa !11
  %331 = zext i8 %330 to i32
  %332 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %333 = load i8, ptr %332, align 8, !tbaa !11
  %334 = zext i8 %333 to i32
  %335 = icmp eq i32 %331, %334
  store i1 %335, ptr %5, align 1
  br label %1328

336:                                              ; preds = %302
  %337 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %338 = load i8, ptr %337, align 8, !tbaa !11
  %339 = zext i8 %338 to i32
  %340 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %341 = load i16, ptr %340, align 8, !tbaa !11
  %342 = zext i16 %341 to i32
  %343 = icmp eq i32 %339, %342
  store i1 %343, ptr %5, align 1
  br label %1328

344:                                              ; preds = %302
  %345 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %346 = load i8, ptr %345, align 8, !tbaa !11
  %347 = zext i8 %346 to i32
  %348 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %349 = load i32, ptr %348, align 8, !tbaa !11
  %350 = icmp eq i32 %347, %349
  store i1 %350, ptr %5, align 1
  br label %1328

351:                                              ; preds = %302
  %352 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %353 = load i8, ptr %352, align 8, !tbaa !11
  %354 = zext i8 %353 to i64
  %355 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %356 = load i64, ptr %355, align 8, !tbaa !11
  %357 = icmp eq i64 %354, %356
  store i1 %357, ptr %5, align 1
  br label %1328

358:                                              ; preds = %302
  %359 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %360 = load i8, ptr %359, align 8, !tbaa !11
  %361 = zext i8 %360 to i32
  %362 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %363 = load i8, ptr %362, align 8, !tbaa !11
  %364 = sext i8 %363 to i32
  %365 = icmp eq i32 %361, %364
  store i1 %365, ptr %5, align 1
  br label %1328

366:                                              ; preds = %302
  %367 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %368 = load i8, ptr %367, align 8, !tbaa !11
  %369 = zext i8 %368 to i32
  %370 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %371 = load i16, ptr %370, align 8, !tbaa !11
  %372 = sext i16 %371 to i32
  %373 = icmp eq i32 %369, %372
  store i1 %373, ptr %5, align 1
  br label %1328

374:                                              ; preds = %302
  %375 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %376 = load i8, ptr %375, align 8, !tbaa !11
  %377 = zext i8 %376 to i32
  %378 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %379 = load i32, ptr %378, align 8, !tbaa !11
  %380 = icmp eq i32 %377, %379
  store i1 %380, ptr %5, align 1
  br label %1328

381:                                              ; preds = %302
  %382 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %383 = load i8, ptr %382, align 8, !tbaa !11
  %384 = zext i8 %383 to i64
  %385 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %386 = load i64, ptr %385, align 8, !tbaa !11
  %387 = icmp eq i64 %384, %386
  store i1 %387, ptr %5, align 1
  br label %1328

388:                                              ; preds = %302
  %389 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %390 = load i8, ptr %389, align 8, !tbaa !11
  %391 = zext i8 %390 to i32
  %392 = sitofp i32 %391 to float
  %393 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %394 = load float, ptr %393, align 8, !tbaa !11
  %395 = fcmp oeq float %392, %394
  store i1 %395, ptr %5, align 1
  br label %1328

396:                                              ; preds = %302
  %397 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %398 = load i8, ptr %397, align 8, !tbaa !11
  %399 = zext i8 %398 to i32
  %400 = sitofp i32 %399 to double
  %401 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %402 = load double, ptr %401, align 8, !tbaa !11
  %403 = fcmp oeq double %400, %402
  store i1 %403, ptr %5, align 1
  br label %1328

404:                                              ; preds = %302
  store i1 false, ptr %5, align 1
  br label %1328

405:                                              ; No predecessors!
  br label %406

406:                                              ; preds = %405, %4
  br label %407

407:                                              ; preds = %406
  %408 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 0
  %409 = load i16, ptr %408, align 8, !tbaa !5
  %410 = zext i16 %409 to i32
  switch i32 %410, label %509 [
    i32 0, label %411
    i32 1, label %416
    i32 2, label %425
    i32 3, label %433
    i32 4, label %441
    i32 5, label %449
    i32 6, label %456
    i32 7, label %463
    i32 8, label %471
    i32 9, label %479
    i32 10, label %486
    i32 11, label %493
    i32 12, label %501
  ]

411:                                              ; preds = %407
  %412 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %413 = load i16, ptr %412, align 8, !tbaa !11
  %414 = zext i16 %413 to i32
  %415 = icmp eq i32 %414, 0
  store i1 %415, ptr %5, align 1
  br label %1328

416:                                              ; preds = %407
  %417 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %418 = load i16, ptr %417, align 8, !tbaa !11
  %419 = zext i16 %418 to i32
  %420 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %421 = load i8, ptr %420, align 8, !tbaa !11, !range !12, !noundef !13
  %422 = trunc i8 %421 to i1
  %423 = zext i1 %422 to i32
  %424 = icmp eq i32 %419, %423
  store i1 %424, ptr %5, align 1
  br label %1328

425:                                              ; preds = %407
  %426 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %427 = load i16, ptr %426, align 8, !tbaa !11
  %428 = zext i16 %427 to i32
  %429 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %430 = load i8, ptr %429, align 8, !tbaa !11
  %431 = sext i8 %430 to i32
  %432 = icmp eq i32 %428, %431
  store i1 %432, ptr %5, align 1
  br label %1328

433:                                              ; preds = %407
  %434 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %435 = load i16, ptr %434, align 8, !tbaa !11
  %436 = zext i16 %435 to i32
  %437 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %438 = load i8, ptr %437, align 8, !tbaa !11
  %439 = zext i8 %438 to i32
  %440 = icmp eq i32 %436, %439
  store i1 %440, ptr %5, align 1
  br label %1328

441:                                              ; preds = %407
  %442 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %443 = load i16, ptr %442, align 8, !tbaa !11
  %444 = zext i16 %443 to i32
  %445 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %446 = load i16, ptr %445, align 8, !tbaa !11
  %447 = zext i16 %446 to i32
  %448 = icmp eq i32 %444, %447
  store i1 %448, ptr %5, align 1
  br label %1328

449:                                              ; preds = %407
  %450 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %451 = load i16, ptr %450, align 8, !tbaa !11
  %452 = zext i16 %451 to i32
  %453 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %454 = load i32, ptr %453, align 8, !tbaa !11
  %455 = icmp eq i32 %452, %454
  store i1 %455, ptr %5, align 1
  br label %1328

456:                                              ; preds = %407
  %457 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %458 = load i16, ptr %457, align 8, !tbaa !11
  %459 = zext i16 %458 to i64
  %460 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %461 = load i64, ptr %460, align 8, !tbaa !11
  %462 = icmp eq i64 %459, %461
  store i1 %462, ptr %5, align 1
  br label %1328

463:                                              ; preds = %407
  %464 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %465 = load i16, ptr %464, align 8, !tbaa !11
  %466 = zext i16 %465 to i32
  %467 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %468 = load i8, ptr %467, align 8, !tbaa !11
  %469 = sext i8 %468 to i32
  %470 = icmp eq i32 %466, %469
  store i1 %470, ptr %5, align 1
  br label %1328

471:                                              ; preds = %407
  %472 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %473 = load i16, ptr %472, align 8, !tbaa !11
  %474 = zext i16 %473 to i32
  %475 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %476 = load i16, ptr %475, align 8, !tbaa !11
  %477 = sext i16 %476 to i32
  %478 = icmp eq i32 %474, %477
  store i1 %478, ptr %5, align 1
  br label %1328

479:                                              ; preds = %407
  %480 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %481 = load i16, ptr %480, align 8, !tbaa !11
  %482 = zext i16 %481 to i32
  %483 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %484 = load i32, ptr %483, align 8, !tbaa !11
  %485 = icmp eq i32 %482, %484
  store i1 %485, ptr %5, align 1
  br label %1328

486:                                              ; preds = %407
  %487 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %488 = load i16, ptr %487, align 8, !tbaa !11
  %489 = zext i16 %488 to i64
  %490 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %491 = load i64, ptr %490, align 8, !tbaa !11
  %492 = icmp eq i64 %489, %491
  store i1 %492, ptr %5, align 1
  br label %1328

493:                                              ; preds = %407
  %494 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %495 = load i16, ptr %494, align 8, !tbaa !11
  %496 = zext i16 %495 to i32
  %497 = sitofp i32 %496 to float
  %498 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %499 = load float, ptr %498, align 8, !tbaa !11
  %500 = fcmp oeq float %497, %499
  store i1 %500, ptr %5, align 1
  br label %1328

501:                                              ; preds = %407
  %502 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %503 = load i16, ptr %502, align 8, !tbaa !11
  %504 = zext i16 %503 to i32
  %505 = sitofp i32 %504 to double
  %506 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %507 = load double, ptr %506, align 8, !tbaa !11
  %508 = fcmp oeq double %505, %507
  store i1 %508, ptr %5, align 1
  br label %1328

509:                                              ; preds = %407
  store i1 false, ptr %5, align 1
  br label %1328

510:                                              ; No predecessors!
  br label %511

511:                                              ; preds = %510, %4
  br label %512

512:                                              ; preds = %511
  %513 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 0
  %514 = load i16, ptr %513, align 8, !tbaa !5
  %515 = zext i16 %514 to i32
  switch i32 %515, label %603 [
    i32 0, label %516
    i32 1, label %520
    i32 2, label %528
    i32 3, label %535
    i32 4, label %542
    i32 5, label %549
    i32 6, label %555
    i32 7, label %562
    i32 8, label %569
    i32 9, label %576
    i32 10, label %582
    i32 11, label %589
    i32 12, label %596
  ]

516:                                              ; preds = %512
  %517 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %518 = load i32, ptr %517, align 8, !tbaa !11
  %519 = icmp eq i32 %518, 0
  store i1 %519, ptr %5, align 1
  br label %1328

520:                                              ; preds = %512
  %521 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %522 = load i32, ptr %521, align 8, !tbaa !11
  %523 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %524 = load i8, ptr %523, align 8, !tbaa !11, !range !12, !noundef !13
  %525 = trunc i8 %524 to i1
  %526 = zext i1 %525 to i32
  %527 = icmp eq i32 %522, %526
  store i1 %527, ptr %5, align 1
  br label %1328

528:                                              ; preds = %512
  %529 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %530 = load i32, ptr %529, align 8, !tbaa !11
  %531 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %532 = load i8, ptr %531, align 8, !tbaa !11
  %533 = sext i8 %532 to i32
  %534 = icmp eq i32 %530, %533
  store i1 %534, ptr %5, align 1
  br label %1328

535:                                              ; preds = %512
  %536 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %537 = load i32, ptr %536, align 8, !tbaa !11
  %538 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %539 = load i8, ptr %538, align 8, !tbaa !11
  %540 = zext i8 %539 to i32
  %541 = icmp eq i32 %537, %540
  store i1 %541, ptr %5, align 1
  br label %1328

542:                                              ; preds = %512
  %543 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %544 = load i32, ptr %543, align 8, !tbaa !11
  %545 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %546 = load i16, ptr %545, align 8, !tbaa !11
  %547 = zext i16 %546 to i32
  %548 = icmp eq i32 %544, %547
  store i1 %548, ptr %5, align 1
  br label %1328

549:                                              ; preds = %512
  %550 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %551 = load i32, ptr %550, align 8, !tbaa !11
  %552 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %553 = load i32, ptr %552, align 8, !tbaa !11
  %554 = icmp eq i32 %551, %553
  store i1 %554, ptr %5, align 1
  br label %1328

555:                                              ; preds = %512
  %556 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %557 = load i32, ptr %556, align 8, !tbaa !11
  %558 = zext i32 %557 to i64
  %559 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %560 = load i64, ptr %559, align 8, !tbaa !11
  %561 = icmp eq i64 %558, %560
  store i1 %561, ptr %5, align 1
  br label %1328

562:                                              ; preds = %512
  %563 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %564 = load i32, ptr %563, align 8, !tbaa !11
  %565 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %566 = load i8, ptr %565, align 8, !tbaa !11
  %567 = sext i8 %566 to i32
  %568 = icmp eq i32 %564, %567
  store i1 %568, ptr %5, align 1
  br label %1328

569:                                              ; preds = %512
  %570 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %571 = load i32, ptr %570, align 8, !tbaa !11
  %572 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %573 = load i16, ptr %572, align 8, !tbaa !11
  %574 = sext i16 %573 to i32
  %575 = icmp eq i32 %571, %574
  store i1 %575, ptr %5, align 1
  br label %1328

576:                                              ; preds = %512
  %577 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %578 = load i32, ptr %577, align 8, !tbaa !11
  %579 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %580 = load i32, ptr %579, align 8, !tbaa !11
  %581 = icmp eq i32 %578, %580
  store i1 %581, ptr %5, align 1
  br label %1328

582:                                              ; preds = %512
  %583 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %584 = load i32, ptr %583, align 8, !tbaa !11
  %585 = zext i32 %584 to i64
  %586 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %587 = load i64, ptr %586, align 8, !tbaa !11
  %588 = icmp eq i64 %585, %587
  store i1 %588, ptr %5, align 1
  br label %1328

589:                                              ; preds = %512
  %590 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %591 = load i32, ptr %590, align 8, !tbaa !11
  %592 = uitofp i32 %591 to float
  %593 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %594 = load float, ptr %593, align 8, !tbaa !11
  %595 = fcmp oeq float %592, %594
  store i1 %595, ptr %5, align 1
  br label %1328

596:                                              ; preds = %512
  %597 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %598 = load i32, ptr %597, align 8, !tbaa !11
  %599 = uitofp i32 %598 to double
  %600 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %601 = load double, ptr %600, align 8, !tbaa !11
  %602 = fcmp oeq double %599, %601
  store i1 %602, ptr %5, align 1
  br label %1328

603:                                              ; preds = %512
  store i1 false, ptr %5, align 1
  br label %1328

604:                                              ; No predecessors!
  br label %605

605:                                              ; preds = %604, %4
  br label %606

606:                                              ; preds = %605
  %607 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 0
  %608 = load i16, ptr %607, align 8, !tbaa !5
  %609 = zext i16 %608 to i32
  switch i32 %609, label %697 [
    i32 0, label %610
    i32 1, label %614
    i32 2, label %622
    i32 3, label %629
    i32 4, label %636
    i32 5, label %643
    i32 6, label %650
    i32 7, label %656
    i32 8, label %663
    i32 9, label %670
    i32 10, label %677
    i32 11, label %683
    i32 12, label %690
  ]

610:                                              ; preds = %606
  %611 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %612 = load i64, ptr %611, align 8, !tbaa !11
  %613 = icmp eq i64 %612, 0
  store i1 %613, ptr %5, align 1
  br label %1328

614:                                              ; preds = %606
  %615 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %616 = load i64, ptr %615, align 8, !tbaa !11
  %617 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %618 = load i8, ptr %617, align 8, !tbaa !11, !range !12, !noundef !13
  %619 = trunc i8 %618 to i1
  %620 = zext i1 %619 to i64
  %621 = icmp eq i64 %616, %620
  store i1 %621, ptr %5, align 1
  br label %1328

622:                                              ; preds = %606
  %623 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %624 = load i64, ptr %623, align 8, !tbaa !11
  %625 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %626 = load i8, ptr %625, align 8, !tbaa !11
  %627 = sext i8 %626 to i64
  %628 = icmp eq i64 %624, %627
  store i1 %628, ptr %5, align 1
  br label %1328

629:                                              ; preds = %606
  %630 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %631 = load i64, ptr %630, align 8, !tbaa !11
  %632 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %633 = load i8, ptr %632, align 8, !tbaa !11
  %634 = zext i8 %633 to i64
  %635 = icmp eq i64 %631, %634
  store i1 %635, ptr %5, align 1
  br label %1328

636:                                              ; preds = %606
  %637 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %638 = load i64, ptr %637, align 8, !tbaa !11
  %639 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %640 = load i16, ptr %639, align 8, !tbaa !11
  %641 = zext i16 %640 to i64
  %642 = icmp eq i64 %638, %641
  store i1 %642, ptr %5, align 1
  br label %1328

643:                                              ; preds = %606
  %644 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %645 = load i64, ptr %644, align 8, !tbaa !11
  %646 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %647 = load i32, ptr %646, align 8, !tbaa !11
  %648 = zext i32 %647 to i64
  %649 = icmp eq i64 %645, %648
  store i1 %649, ptr %5, align 1
  br label %1328

650:                                              ; preds = %606
  %651 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %652 = load i64, ptr %651, align 8, !tbaa !11
  %653 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %654 = load i64, ptr %653, align 8, !tbaa !11
  %655 = icmp eq i64 %652, %654
  store i1 %655, ptr %5, align 1
  br label %1328

656:                                              ; preds = %606
  %657 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %658 = load i64, ptr %657, align 8, !tbaa !11
  %659 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %660 = load i8, ptr %659, align 8, !tbaa !11
  %661 = sext i8 %660 to i64
  %662 = icmp eq i64 %658, %661
  store i1 %662, ptr %5, align 1
  br label %1328

663:                                              ; preds = %606
  %664 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %665 = load i64, ptr %664, align 8, !tbaa !11
  %666 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %667 = load i16, ptr %666, align 8, !tbaa !11
  %668 = sext i16 %667 to i64
  %669 = icmp eq i64 %665, %668
  store i1 %669, ptr %5, align 1
  br label %1328

670:                                              ; preds = %606
  %671 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %672 = load i64, ptr %671, align 8, !tbaa !11
  %673 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %674 = load i32, ptr %673, align 8, !tbaa !11
  %675 = sext i32 %674 to i64
  %676 = icmp eq i64 %672, %675
  store i1 %676, ptr %5, align 1
  br label %1328

677:                                              ; preds = %606
  %678 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %679 = load i64, ptr %678, align 8, !tbaa !11
  %680 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %681 = load i64, ptr %680, align 8, !tbaa !11
  %682 = icmp eq i64 %679, %681
  store i1 %682, ptr %5, align 1
  br label %1328

683:                                              ; preds = %606
  %684 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %685 = load i64, ptr %684, align 8, !tbaa !11
  %686 = uitofp i64 %685 to float
  %687 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %688 = load float, ptr %687, align 8, !tbaa !11
  %689 = fcmp oeq float %686, %688
  store i1 %689, ptr %5, align 1
  br label %1328

690:                                              ; preds = %606
  %691 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %692 = load i64, ptr %691, align 8, !tbaa !11
  %693 = uitofp i64 %692 to double
  %694 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %695 = load double, ptr %694, align 8, !tbaa !11
  %696 = fcmp oeq double %693, %695
  store i1 %696, ptr %5, align 1
  br label %1328

697:                                              ; preds = %606
  store i1 false, ptr %5, align 1
  br label %1328

698:                                              ; No predecessors!
  br label %699

699:                                              ; preds = %698, %4
  br label %700

700:                                              ; preds = %699
  %701 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 0
  %702 = load i16, ptr %701, align 8, !tbaa !5
  %703 = zext i16 %702 to i32
  switch i32 %703, label %802 [
    i32 0, label %704
    i32 1, label %709
    i32 2, label %718
    i32 3, label %726
    i32 4, label %734
    i32 5, label %742
    i32 6, label %749
    i32 7, label %756
    i32 8, label %764
    i32 9, label %772
    i32 10, label %779
    i32 11, label %786
    i32 12, label %794
  ]

704:                                              ; preds = %700
  %705 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %706 = load i8, ptr %705, align 8, !tbaa !11
  %707 = sext i8 %706 to i32
  %708 = icmp eq i32 %707, 0
  store i1 %708, ptr %5, align 1
  br label %1328

709:                                              ; preds = %700
  %710 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %711 = load i8, ptr %710, align 8, !tbaa !11
  %712 = sext i8 %711 to i32
  %713 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %714 = load i8, ptr %713, align 8, !tbaa !11, !range !12, !noundef !13
  %715 = trunc i8 %714 to i1
  %716 = zext i1 %715 to i32
  %717 = icmp eq i32 %712, %716
  store i1 %717, ptr %5, align 1
  br label %1328

718:                                              ; preds = %700
  %719 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %720 = load i8, ptr %719, align 8, !tbaa !11
  %721 = sext i8 %720 to i32
  %722 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %723 = load i8, ptr %722, align 8, !tbaa !11
  %724 = sext i8 %723 to i32
  %725 = icmp eq i32 %721, %724
  store i1 %725, ptr %5, align 1
  br label %1328

726:                                              ; preds = %700
  %727 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %728 = load i8, ptr %727, align 8, !tbaa !11
  %729 = sext i8 %728 to i32
  %730 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %731 = load i8, ptr %730, align 8, !tbaa !11
  %732 = zext i8 %731 to i32
  %733 = icmp eq i32 %729, %732
  store i1 %733, ptr %5, align 1
  br label %1328

734:                                              ; preds = %700
  %735 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %736 = load i8, ptr %735, align 8, !tbaa !11
  %737 = sext i8 %736 to i32
  %738 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %739 = load i16, ptr %738, align 8, !tbaa !11
  %740 = zext i16 %739 to i32
  %741 = icmp eq i32 %737, %740
  store i1 %741, ptr %5, align 1
  br label %1328

742:                                              ; preds = %700
  %743 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %744 = load i8, ptr %743, align 8, !tbaa !11
  %745 = sext i8 %744 to i32
  %746 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %747 = load i32, ptr %746, align 8, !tbaa !11
  %748 = icmp eq i32 %745, %747
  store i1 %748, ptr %5, align 1
  br label %1328

749:                                              ; preds = %700
  %750 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %751 = load i8, ptr %750, align 8, !tbaa !11
  %752 = sext i8 %751 to i64
  %753 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %754 = load i64, ptr %753, align 8, !tbaa !11
  %755 = icmp eq i64 %752, %754
  store i1 %755, ptr %5, align 1
  br label %1328

756:                                              ; preds = %700
  %757 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %758 = load i8, ptr %757, align 8, !tbaa !11
  %759 = sext i8 %758 to i32
  %760 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %761 = load i8, ptr %760, align 8, !tbaa !11
  %762 = sext i8 %761 to i32
  %763 = icmp eq i32 %759, %762
  store i1 %763, ptr %5, align 1
  br label %1328

764:                                              ; preds = %700
  %765 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %766 = load i8, ptr %765, align 8, !tbaa !11
  %767 = sext i8 %766 to i32
  %768 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %769 = load i16, ptr %768, align 8, !tbaa !11
  %770 = sext i16 %769 to i32
  %771 = icmp eq i32 %767, %770
  store i1 %771, ptr %5, align 1
  br label %1328

772:                                              ; preds = %700
  %773 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %774 = load i8, ptr %773, align 8, !tbaa !11
  %775 = sext i8 %774 to i32
  %776 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %777 = load i32, ptr %776, align 8, !tbaa !11
  %778 = icmp eq i32 %775, %777
  store i1 %778, ptr %5, align 1
  br label %1328

779:                                              ; preds = %700
  %780 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %781 = load i8, ptr %780, align 8, !tbaa !11
  %782 = sext i8 %781 to i64
  %783 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %784 = load i64, ptr %783, align 8, !tbaa !11
  %785 = icmp eq i64 %782, %784
  store i1 %785, ptr %5, align 1
  br label %1328

786:                                              ; preds = %700
  %787 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %788 = load i8, ptr %787, align 8, !tbaa !11
  %789 = sext i8 %788 to i32
  %790 = sitofp i32 %789 to float
  %791 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %792 = load float, ptr %791, align 8, !tbaa !11
  %793 = fcmp oeq float %790, %792
  store i1 %793, ptr %5, align 1
  br label %1328

794:                                              ; preds = %700
  %795 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %796 = load i8, ptr %795, align 8, !tbaa !11
  %797 = sext i8 %796 to i32
  %798 = sitofp i32 %797 to double
  %799 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %800 = load double, ptr %799, align 8, !tbaa !11
  %801 = fcmp oeq double %798, %800
  store i1 %801, ptr %5, align 1
  br label %1328

802:                                              ; preds = %700
  store i1 false, ptr %5, align 1
  br label %1328

803:                                              ; No predecessors!
  br label %804

804:                                              ; preds = %803, %4
  br label %805

805:                                              ; preds = %804
  %806 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 0
  %807 = load i16, ptr %806, align 8, !tbaa !5
  %808 = zext i16 %807 to i32
  switch i32 %808, label %907 [
    i32 0, label %809
    i32 1, label %814
    i32 2, label %823
    i32 3, label %831
    i32 4, label %839
    i32 5, label %847
    i32 6, label %854
    i32 7, label %861
    i32 8, label %869
    i32 9, label %877
    i32 10, label %884
    i32 11, label %891
    i32 12, label %899
  ]

809:                                              ; preds = %805
  %810 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %811 = load i16, ptr %810, align 8, !tbaa !11
  %812 = sext i16 %811 to i32
  %813 = icmp eq i32 %812, 0
  store i1 %813, ptr %5, align 1
  br label %1328

814:                                              ; preds = %805
  %815 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %816 = load i16, ptr %815, align 8, !tbaa !11
  %817 = sext i16 %816 to i32
  %818 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %819 = load i8, ptr %818, align 8, !tbaa !11, !range !12, !noundef !13
  %820 = trunc i8 %819 to i1
  %821 = zext i1 %820 to i32
  %822 = icmp eq i32 %817, %821
  store i1 %822, ptr %5, align 1
  br label %1328

823:                                              ; preds = %805
  %824 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %825 = load i16, ptr %824, align 8, !tbaa !11
  %826 = sext i16 %825 to i32
  %827 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %828 = load i8, ptr %827, align 8, !tbaa !11
  %829 = sext i8 %828 to i32
  %830 = icmp eq i32 %826, %829
  store i1 %830, ptr %5, align 1
  br label %1328

831:                                              ; preds = %805
  %832 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %833 = load i16, ptr %832, align 8, !tbaa !11
  %834 = sext i16 %833 to i32
  %835 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %836 = load i8, ptr %835, align 8, !tbaa !11
  %837 = zext i8 %836 to i32
  %838 = icmp eq i32 %834, %837
  store i1 %838, ptr %5, align 1
  br label %1328

839:                                              ; preds = %805
  %840 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %841 = load i16, ptr %840, align 8, !tbaa !11
  %842 = sext i16 %841 to i32
  %843 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %844 = load i16, ptr %843, align 8, !tbaa !11
  %845 = zext i16 %844 to i32
  %846 = icmp eq i32 %842, %845
  store i1 %846, ptr %5, align 1
  br label %1328

847:                                              ; preds = %805
  %848 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %849 = load i16, ptr %848, align 8, !tbaa !11
  %850 = sext i16 %849 to i32
  %851 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %852 = load i32, ptr %851, align 8, !tbaa !11
  %853 = icmp eq i32 %850, %852
  store i1 %853, ptr %5, align 1
  br label %1328

854:                                              ; preds = %805
  %855 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %856 = load i16, ptr %855, align 8, !tbaa !11
  %857 = sext i16 %856 to i64
  %858 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %859 = load i64, ptr %858, align 8, !tbaa !11
  %860 = icmp eq i64 %857, %859
  store i1 %860, ptr %5, align 1
  br label %1328

861:                                              ; preds = %805
  %862 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %863 = load i16, ptr %862, align 8, !tbaa !11
  %864 = sext i16 %863 to i32
  %865 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %866 = load i8, ptr %865, align 8, !tbaa !11
  %867 = sext i8 %866 to i32
  %868 = icmp eq i32 %864, %867
  store i1 %868, ptr %5, align 1
  br label %1328

869:                                              ; preds = %805
  %870 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %871 = load i16, ptr %870, align 8, !tbaa !11
  %872 = sext i16 %871 to i32
  %873 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %874 = load i16, ptr %873, align 8, !tbaa !11
  %875 = sext i16 %874 to i32
  %876 = icmp eq i32 %872, %875
  store i1 %876, ptr %5, align 1
  br label %1328

877:                                              ; preds = %805
  %878 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %879 = load i16, ptr %878, align 8, !tbaa !11
  %880 = sext i16 %879 to i32
  %881 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %882 = load i32, ptr %881, align 8, !tbaa !11
  %883 = icmp eq i32 %880, %882
  store i1 %883, ptr %5, align 1
  br label %1328

884:                                              ; preds = %805
  %885 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %886 = load i16, ptr %885, align 8, !tbaa !11
  %887 = sext i16 %886 to i64
  %888 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %889 = load i64, ptr %888, align 8, !tbaa !11
  %890 = icmp eq i64 %887, %889
  store i1 %890, ptr %5, align 1
  br label %1328

891:                                              ; preds = %805
  %892 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %893 = load i16, ptr %892, align 8, !tbaa !11
  %894 = sext i16 %893 to i32
  %895 = sitofp i32 %894 to float
  %896 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %897 = load float, ptr %896, align 8, !tbaa !11
  %898 = fcmp oeq float %895, %897
  store i1 %898, ptr %5, align 1
  br label %1328

899:                                              ; preds = %805
  %900 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %901 = load i16, ptr %900, align 8, !tbaa !11
  %902 = sext i16 %901 to i32
  %903 = sitofp i32 %902 to double
  %904 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %905 = load double, ptr %904, align 8, !tbaa !11
  %906 = fcmp oeq double %903, %905
  store i1 %906, ptr %5, align 1
  br label %1328

907:                                              ; preds = %805
  store i1 false, ptr %5, align 1
  br label %1328

908:                                              ; No predecessors!
  br label %909

909:                                              ; preds = %908, %4
  br label %910

910:                                              ; preds = %909
  %911 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 0
  %912 = load i16, ptr %911, align 8, !tbaa !5
  %913 = zext i16 %912 to i32
  switch i32 %913, label %1001 [
    i32 0, label %914
    i32 1, label %918
    i32 2, label %926
    i32 3, label %933
    i32 4, label %940
    i32 5, label %947
    i32 6, label %953
    i32 7, label %960
    i32 8, label %967
    i32 9, label %974
    i32 10, label %980
    i32 11, label %987
    i32 12, label %994
  ]

914:                                              ; preds = %910
  %915 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %916 = load i32, ptr %915, align 8, !tbaa !11
  %917 = icmp eq i32 %916, 0
  store i1 %917, ptr %5, align 1
  br label %1328

918:                                              ; preds = %910
  %919 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %920 = load i32, ptr %919, align 8, !tbaa !11
  %921 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %922 = load i8, ptr %921, align 8, !tbaa !11, !range !12, !noundef !13
  %923 = trunc i8 %922 to i1
  %924 = zext i1 %923 to i32
  %925 = icmp eq i32 %920, %924
  store i1 %925, ptr %5, align 1
  br label %1328

926:                                              ; preds = %910
  %927 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %928 = load i32, ptr %927, align 8, !tbaa !11
  %929 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %930 = load i8, ptr %929, align 8, !tbaa !11
  %931 = sext i8 %930 to i32
  %932 = icmp eq i32 %928, %931
  store i1 %932, ptr %5, align 1
  br label %1328

933:                                              ; preds = %910
  %934 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %935 = load i32, ptr %934, align 8, !tbaa !11
  %936 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %937 = load i8, ptr %936, align 8, !tbaa !11
  %938 = zext i8 %937 to i32
  %939 = icmp eq i32 %935, %938
  store i1 %939, ptr %5, align 1
  br label %1328

940:                                              ; preds = %910
  %941 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %942 = load i32, ptr %941, align 8, !tbaa !11
  %943 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %944 = load i16, ptr %943, align 8, !tbaa !11
  %945 = zext i16 %944 to i32
  %946 = icmp eq i32 %942, %945
  store i1 %946, ptr %5, align 1
  br label %1328

947:                                              ; preds = %910
  %948 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %949 = load i32, ptr %948, align 8, !tbaa !11
  %950 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %951 = load i32, ptr %950, align 8, !tbaa !11
  %952 = icmp eq i32 %949, %951
  store i1 %952, ptr %5, align 1
  br label %1328

953:                                              ; preds = %910
  %954 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %955 = load i32, ptr %954, align 8, !tbaa !11
  %956 = sext i32 %955 to i64
  %957 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %958 = load i64, ptr %957, align 8, !tbaa !11
  %959 = icmp eq i64 %956, %958
  store i1 %959, ptr %5, align 1
  br label %1328

960:                                              ; preds = %910
  %961 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %962 = load i32, ptr %961, align 8, !tbaa !11
  %963 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %964 = load i8, ptr %963, align 8, !tbaa !11
  %965 = sext i8 %964 to i32
  %966 = icmp eq i32 %962, %965
  store i1 %966, ptr %5, align 1
  br label %1328

967:                                              ; preds = %910
  %968 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %969 = load i32, ptr %968, align 8, !tbaa !11
  %970 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %971 = load i16, ptr %970, align 8, !tbaa !11
  %972 = sext i16 %971 to i32
  %973 = icmp eq i32 %969, %972
  store i1 %973, ptr %5, align 1
  br label %1328

974:                                              ; preds = %910
  %975 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %976 = load i32, ptr %975, align 8, !tbaa !11
  %977 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %978 = load i32, ptr %977, align 8, !tbaa !11
  %979 = icmp eq i32 %976, %978
  store i1 %979, ptr %5, align 1
  br label %1328

980:                                              ; preds = %910
  %981 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %982 = load i32, ptr %981, align 8, !tbaa !11
  %983 = sext i32 %982 to i64
  %984 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %985 = load i64, ptr %984, align 8, !tbaa !11
  %986 = icmp eq i64 %983, %985
  store i1 %986, ptr %5, align 1
  br label %1328

987:                                              ; preds = %910
  %988 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %989 = load i32, ptr %988, align 8, !tbaa !11
  %990 = sitofp i32 %989 to float
  %991 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %992 = load float, ptr %991, align 8, !tbaa !11
  %993 = fcmp oeq float %990, %992
  store i1 %993, ptr %5, align 1
  br label %1328

994:                                              ; preds = %910
  %995 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %996 = load i32, ptr %995, align 8, !tbaa !11
  %997 = sitofp i32 %996 to double
  %998 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %999 = load double, ptr %998, align 8, !tbaa !11
  %1000 = fcmp oeq double %997, %999
  store i1 %1000, ptr %5, align 1
  br label %1328

1001:                                             ; preds = %910
  store i1 false, ptr %5, align 1
  br label %1328

1002:                                             ; No predecessors!
  br label %1003

1003:                                             ; preds = %1002, %4
  br label %1004

1004:                                             ; preds = %1003
  %1005 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 0
  %1006 = load i16, ptr %1005, align 8, !tbaa !5
  %1007 = zext i16 %1006 to i32
  switch i32 %1007, label %1095 [
    i32 0, label %1008
    i32 1, label %1012
    i32 2, label %1020
    i32 3, label %1027
    i32 4, label %1034
    i32 5, label %1041
    i32 6, label %1048
    i32 7, label %1054
    i32 8, label %1061
    i32 9, label %1068
    i32 10, label %1075
    i32 11, label %1081
    i32 12, label %1088
  ]

1008:                                             ; preds = %1004
  %1009 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1010 = load i64, ptr %1009, align 8, !tbaa !11
  %1011 = icmp eq i64 %1010, 0
  store i1 %1011, ptr %5, align 1
  br label %1328

1012:                                             ; preds = %1004
  %1013 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1014 = load i64, ptr %1013, align 8, !tbaa !11
  %1015 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1016 = load i8, ptr %1015, align 8, !tbaa !11, !range !12, !noundef !13
  %1017 = trunc i8 %1016 to i1
  %1018 = zext i1 %1017 to i64
  %1019 = icmp eq i64 %1014, %1018
  store i1 %1019, ptr %5, align 1
  br label %1328

1020:                                             ; preds = %1004
  %1021 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1022 = load i64, ptr %1021, align 8, !tbaa !11
  %1023 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1024 = load i8, ptr %1023, align 8, !tbaa !11
  %1025 = sext i8 %1024 to i64
  %1026 = icmp eq i64 %1022, %1025
  store i1 %1026, ptr %5, align 1
  br label %1328

1027:                                             ; preds = %1004
  %1028 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1029 = load i64, ptr %1028, align 8, !tbaa !11
  %1030 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1031 = load i8, ptr %1030, align 8, !tbaa !11
  %1032 = zext i8 %1031 to i64
  %1033 = icmp eq i64 %1029, %1032
  store i1 %1033, ptr %5, align 1
  br label %1328

1034:                                             ; preds = %1004
  %1035 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1036 = load i64, ptr %1035, align 8, !tbaa !11
  %1037 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1038 = load i16, ptr %1037, align 8, !tbaa !11
  %1039 = zext i16 %1038 to i64
  %1040 = icmp eq i64 %1036, %1039
  store i1 %1040, ptr %5, align 1
  br label %1328

1041:                                             ; preds = %1004
  %1042 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1043 = load i64, ptr %1042, align 8, !tbaa !11
  %1044 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1045 = load i32, ptr %1044, align 8, !tbaa !11
  %1046 = zext i32 %1045 to i64
  %1047 = icmp eq i64 %1043, %1046
  store i1 %1047, ptr %5, align 1
  br label %1328

1048:                                             ; preds = %1004
  %1049 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1050 = load i64, ptr %1049, align 8, !tbaa !11
  %1051 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1052 = load i64, ptr %1051, align 8, !tbaa !11
  %1053 = icmp eq i64 %1050, %1052
  store i1 %1053, ptr %5, align 1
  br label %1328

1054:                                             ; preds = %1004
  %1055 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1056 = load i64, ptr %1055, align 8, !tbaa !11
  %1057 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1058 = load i8, ptr %1057, align 8, !tbaa !11
  %1059 = sext i8 %1058 to i64
  %1060 = icmp eq i64 %1056, %1059
  store i1 %1060, ptr %5, align 1
  br label %1328

1061:                                             ; preds = %1004
  %1062 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1063 = load i64, ptr %1062, align 8, !tbaa !11
  %1064 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1065 = load i16, ptr %1064, align 8, !tbaa !11
  %1066 = sext i16 %1065 to i64
  %1067 = icmp eq i64 %1063, %1066
  store i1 %1067, ptr %5, align 1
  br label %1328

1068:                                             ; preds = %1004
  %1069 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1070 = load i64, ptr %1069, align 8, !tbaa !11
  %1071 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1072 = load i32, ptr %1071, align 8, !tbaa !11
  %1073 = sext i32 %1072 to i64
  %1074 = icmp eq i64 %1070, %1073
  store i1 %1074, ptr %5, align 1
  br label %1328

1075:                                             ; preds = %1004
  %1076 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1077 = load i64, ptr %1076, align 8, !tbaa !11
  %1078 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1079 = load i64, ptr %1078, align 8, !tbaa !11
  %1080 = icmp eq i64 %1077, %1079
  store i1 %1080, ptr %5, align 1
  br label %1328

1081:                                             ; preds = %1004
  %1082 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1083 = load i64, ptr %1082, align 8, !tbaa !11
  %1084 = sitofp i64 %1083 to float
  %1085 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1086 = load float, ptr %1085, align 8, !tbaa !11
  %1087 = fcmp oeq float %1084, %1086
  store i1 %1087, ptr %5, align 1
  br label %1328

1088:                                             ; preds = %1004
  %1089 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1090 = load i64, ptr %1089, align 8, !tbaa !11
  %1091 = sitofp i64 %1090 to double
  %1092 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1093 = load double, ptr %1092, align 8, !tbaa !11
  %1094 = fcmp oeq double %1091, %1093
  store i1 %1094, ptr %5, align 1
  br label %1328

1095:                                             ; preds = %1004
  store i1 false, ptr %5, align 1
  br label %1328

1096:                                             ; No predecessors!
  br label %1097

1097:                                             ; preds = %1096, %4
  br label %1098

1098:                                             ; preds = %1097
  %1099 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 0
  %1100 = load i16, ptr %1099, align 8, !tbaa !5
  %1101 = zext i16 %1100 to i32
  switch i32 %1101, label %1196 [
    i32 0, label %1102
    i32 1, label %1106
    i32 2, label %1115
    i32 3, label %1123
    i32 4, label %1131
    i32 5, label %1139
    i32 6, label %1146
    i32 7, label %1153
    i32 8, label %1161
    i32 9, label %1169
    i32 10, label %1176
    i32 11, label %1183
    i32 12, label %1189
  ]

1102:                                             ; preds = %1098
  %1103 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1104 = load float, ptr %1103, align 8, !tbaa !11
  %1105 = fcmp oeq float %1104, 0.000000e+00
  store i1 %1105, ptr %5, align 1
  br label %1328

1106:                                             ; preds = %1098
  %1107 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1108 = load float, ptr %1107, align 8, !tbaa !11
  %1109 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1110 = load i8, ptr %1109, align 8, !tbaa !11, !range !12, !noundef !13
  %1111 = trunc i8 %1110 to i1
  %1112 = zext i1 %1111 to i32
  %1113 = sitofp i32 %1112 to float
  %1114 = fcmp oeq float %1108, %1113
  store i1 %1114, ptr %5, align 1
  br label %1328

1115:                                             ; preds = %1098
  %1116 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1117 = load float, ptr %1116, align 8, !tbaa !11
  %1118 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1119 = load i8, ptr %1118, align 8, !tbaa !11
  %1120 = sext i8 %1119 to i32
  %1121 = sitofp i32 %1120 to float
  %1122 = fcmp oeq float %1117, %1121
  store i1 %1122, ptr %5, align 1
  br label %1328

1123:                                             ; preds = %1098
  %1124 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1125 = load float, ptr %1124, align 8, !tbaa !11
  %1126 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1127 = load i8, ptr %1126, align 8, !tbaa !11
  %1128 = zext i8 %1127 to i32
  %1129 = sitofp i32 %1128 to float
  %1130 = fcmp oeq float %1125, %1129
  store i1 %1130, ptr %5, align 1
  br label %1328

1131:                                             ; preds = %1098
  %1132 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1133 = load float, ptr %1132, align 8, !tbaa !11
  %1134 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1135 = load i16, ptr %1134, align 8, !tbaa !11
  %1136 = zext i16 %1135 to i32
  %1137 = sitofp i32 %1136 to float
  %1138 = fcmp oeq float %1133, %1137
  store i1 %1138, ptr %5, align 1
  br label %1328

1139:                                             ; preds = %1098
  %1140 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1141 = load float, ptr %1140, align 8, !tbaa !11
  %1142 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1143 = load i32, ptr %1142, align 8, !tbaa !11
  %1144 = uitofp i32 %1143 to float
  %1145 = fcmp oeq float %1141, %1144
  store i1 %1145, ptr %5, align 1
  br label %1328

1146:                                             ; preds = %1098
  %1147 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1148 = load float, ptr %1147, align 8, !tbaa !11
  %1149 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1150 = load i64, ptr %1149, align 8, !tbaa !11
  %1151 = uitofp i64 %1150 to float
  %1152 = fcmp oeq float %1148, %1151
  store i1 %1152, ptr %5, align 1
  br label %1328

1153:                                             ; preds = %1098
  %1154 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1155 = load float, ptr %1154, align 8, !tbaa !11
  %1156 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1157 = load i8, ptr %1156, align 8, !tbaa !11
  %1158 = sext i8 %1157 to i32
  %1159 = sitofp i32 %1158 to float
  %1160 = fcmp oeq float %1155, %1159
  store i1 %1160, ptr %5, align 1
  br label %1328

1161:                                             ; preds = %1098
  %1162 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1163 = load float, ptr %1162, align 8, !tbaa !11
  %1164 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1165 = load i16, ptr %1164, align 8, !tbaa !11
  %1166 = sext i16 %1165 to i32
  %1167 = sitofp i32 %1166 to float
  %1168 = fcmp oeq float %1163, %1167
  store i1 %1168, ptr %5, align 1
  br label %1328

1169:                                             ; preds = %1098
  %1170 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1171 = load float, ptr %1170, align 8, !tbaa !11
  %1172 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1173 = load i32, ptr %1172, align 8, !tbaa !11
  %1174 = sitofp i32 %1173 to float
  %1175 = fcmp oeq float %1171, %1174
  store i1 %1175, ptr %5, align 1
  br label %1328

1176:                                             ; preds = %1098
  %1177 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1178 = load float, ptr %1177, align 8, !tbaa !11
  %1179 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1180 = load i64, ptr %1179, align 8, !tbaa !11
  %1181 = sitofp i64 %1180 to float
  %1182 = fcmp oeq float %1178, %1181
  store i1 %1182, ptr %5, align 1
  br label %1328

1183:                                             ; preds = %1098
  %1184 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1185 = load float, ptr %1184, align 8, !tbaa !11
  %1186 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1187 = load float, ptr %1186, align 8, !tbaa !11
  %1188 = fcmp oeq float %1185, %1187
  store i1 %1188, ptr %5, align 1
  br label %1328

1189:                                             ; preds = %1098
  %1190 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1191 = load float, ptr %1190, align 8, !tbaa !11
  %1192 = fpext float %1191 to double
  %1193 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1194 = load double, ptr %1193, align 8, !tbaa !11
  %1195 = fcmp oeq double %1192, %1194
  store i1 %1195, ptr %5, align 1
  br label %1328

1196:                                             ; preds = %1098
  store i1 false, ptr %5, align 1
  br label %1328

1197:                                             ; No predecessors!
  br label %1198

1198:                                             ; preds = %1197, %4
  br label %1199

1199:                                             ; preds = %1198
  %1200 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 0
  %1201 = load i16, ptr %1200, align 8, !tbaa !5
  %1202 = zext i16 %1201 to i32
  switch i32 %1202, label %1297 [
    i32 0, label %1203
    i32 1, label %1207
    i32 2, label %1216
    i32 3, label %1224
    i32 4, label %1232
    i32 5, label %1240
    i32 6, label %1247
    i32 7, label %1254
    i32 8, label %1262
    i32 9, label %1270
    i32 10, label %1277
    i32 11, label %1284
    i32 12, label %1291
  ]

1203:                                             ; preds = %1199
  %1204 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1205 = load double, ptr %1204, align 8, !tbaa !11
  %1206 = fcmp oeq double %1205, 0.000000e+00
  store i1 %1206, ptr %5, align 1
  br label %1328

1207:                                             ; preds = %1199
  %1208 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1209 = load double, ptr %1208, align 8, !tbaa !11
  %1210 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1211 = load i8, ptr %1210, align 8, !tbaa !11, !range !12, !noundef !13
  %1212 = trunc i8 %1211 to i1
  %1213 = zext i1 %1212 to i32
  %1214 = sitofp i32 %1213 to double
  %1215 = fcmp oeq double %1209, %1214
  store i1 %1215, ptr %5, align 1
  br label %1328

1216:                                             ; preds = %1199
  %1217 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1218 = load double, ptr %1217, align 8, !tbaa !11
  %1219 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1220 = load i8, ptr %1219, align 8, !tbaa !11
  %1221 = sext i8 %1220 to i32
  %1222 = sitofp i32 %1221 to double
  %1223 = fcmp oeq double %1218, %1222
  store i1 %1223, ptr %5, align 1
  br label %1328

1224:                                             ; preds = %1199
  %1225 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1226 = load double, ptr %1225, align 8, !tbaa !11
  %1227 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1228 = load i8, ptr %1227, align 8, !tbaa !11
  %1229 = zext i8 %1228 to i32
  %1230 = sitofp i32 %1229 to double
  %1231 = fcmp oeq double %1226, %1230
  store i1 %1231, ptr %5, align 1
  br label %1328

1232:                                             ; preds = %1199
  %1233 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1234 = load double, ptr %1233, align 8, !tbaa !11
  %1235 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1236 = load i16, ptr %1235, align 8, !tbaa !11
  %1237 = zext i16 %1236 to i32
  %1238 = sitofp i32 %1237 to double
  %1239 = fcmp oeq double %1234, %1238
  store i1 %1239, ptr %5, align 1
  br label %1328

1240:                                             ; preds = %1199
  %1241 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1242 = load double, ptr %1241, align 8, !tbaa !11
  %1243 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1244 = load i32, ptr %1243, align 8, !tbaa !11
  %1245 = uitofp i32 %1244 to double
  %1246 = fcmp oeq double %1242, %1245
  store i1 %1246, ptr %5, align 1
  br label %1328

1247:                                             ; preds = %1199
  %1248 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1249 = load double, ptr %1248, align 8, !tbaa !11
  %1250 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1251 = load i64, ptr %1250, align 8, !tbaa !11
  %1252 = uitofp i64 %1251 to double
  %1253 = fcmp oeq double %1249, %1252
  store i1 %1253, ptr %5, align 1
  br label %1328

1254:                                             ; preds = %1199
  %1255 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1256 = load double, ptr %1255, align 8, !tbaa !11
  %1257 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1258 = load i8, ptr %1257, align 8, !tbaa !11
  %1259 = sext i8 %1258 to i32
  %1260 = sitofp i32 %1259 to double
  %1261 = fcmp oeq double %1256, %1260
  store i1 %1261, ptr %5, align 1
  br label %1328

1262:                                             ; preds = %1199
  %1263 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1264 = load double, ptr %1263, align 8, !tbaa !11
  %1265 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1266 = load i16, ptr %1265, align 8, !tbaa !11
  %1267 = sext i16 %1266 to i32
  %1268 = sitofp i32 %1267 to double
  %1269 = fcmp oeq double %1264, %1268
  store i1 %1269, ptr %5, align 1
  br label %1328

1270:                                             ; preds = %1199
  %1271 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1272 = load double, ptr %1271, align 8, !tbaa !11
  %1273 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1274 = load i32, ptr %1273, align 8, !tbaa !11
  %1275 = sitofp i32 %1274 to double
  %1276 = fcmp oeq double %1272, %1275
  store i1 %1276, ptr %5, align 1
  br label %1328

1277:                                             ; preds = %1199
  %1278 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1279 = load double, ptr %1278, align 8, !tbaa !11
  %1280 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1281 = load i64, ptr %1280, align 8, !tbaa !11
  %1282 = sitofp i64 %1281 to double
  %1283 = fcmp oeq double %1279, %1282
  store i1 %1283, ptr %5, align 1
  br label %1328

1284:                                             ; preds = %1199
  %1285 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1286 = load double, ptr %1285, align 8, !tbaa !11
  %1287 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1288 = load float, ptr %1287, align 8, !tbaa !11
  %1289 = fpext float %1288 to double
  %1290 = fcmp oeq double %1286, %1289
  store i1 %1290, ptr %5, align 1
  br label %1328

1291:                                             ; preds = %1199
  %1292 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1293 = load double, ptr %1292, align 8, !tbaa !11
  %1294 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1295 = load double, ptr %1294, align 8, !tbaa !11
  %1296 = fcmp oeq double %1293, %1295
  store i1 %1296, ptr %5, align 1
  br label %1328

1297:                                             ; preds = %1199
  store i1 false, ptr %5, align 1
  br label %1328

1298:                                             ; No predecessors!
  br label %1299

1299:                                             ; preds = %1298, %4
  br label %1300

1300:                                             ; preds = %1299
  %1301 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 0
  %1302 = load i16, ptr %1301, align 8, !tbaa !5
  %1303 = zext i16 %1302 to i32
  %1304 = icmp slt i32 12, %1303
  br i1 %1304, label %1305, label %1311

1305:                                             ; preds = %1300
  %1306 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 0
  %1307 = load i16, ptr %1306, align 8, !tbaa !5
  %1308 = zext i16 %1307 to i32
  %1309 = icmp sle i32 %1308, 27
  br i1 %1309, label %1310, label %1311

1310:                                             ; preds = %1305
  br label %1312

1311:                                             ; preds = %1305, %1300
  call void @__assert_fail(ptr noundef @.str.30, ptr noundef @.str.29, i32 noundef 160, ptr noundef @__PRETTY_FUNCTION__.anys_equal) #2
  unreachable

1312:                                             ; preds = %1310
  %1313 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 0
  %1314 = load i16, ptr %1313, align 8, !tbaa !5
  %1315 = zext i16 %1314 to i32
  %1316 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 0
  %1317 = load i16, ptr %1316, align 8, !tbaa !5
  %1318 = zext i16 %1317 to i32
  %1319 = icmp eq i32 %1315, %1318
  br i1 %1319, label %1320, label %1326

1320:                                             ; preds = %1312
  %1321 = getelementptr inbounds %struct.Any, ptr %6, i32 0, i32 3
  %1322 = load ptr, ptr %1321, align 8, !tbaa !11
  %1323 = getelementptr inbounds %struct.Any, ptr %7, i32 0, i32 3
  %1324 = load ptr, ptr %1323, align 8, !tbaa !11
  %1325 = icmp eq ptr %1322, %1324
  br label %1326

1326:                                             ; preds = %1320, %1312
  %1327 = phi i1 [ false, %1312 ], [ %1325, %1320 ]
  store i1 %1327, ptr %5, align 1
  br label %1328

1328:                                             ; preds = %1326, %1297, %1291, %1284, %1277, %1270, %1262, %1254, %1247, %1240, %1232, %1224, %1216, %1207, %1203, %1196, %1189, %1183, %1176, %1169, %1161, %1153, %1146, %1139, %1131, %1123, %1115, %1106, %1102, %1095, %1088, %1081, %1075, %1068, %1061, %1054, %1048, %1041, %1034, %1027, %1020, %1012, %1008, %1001, %994, %987, %980, %974, %967, %960, %953, %947, %940, %933, %926, %918, %914, %907, %899, %891, %884, %877, %869, %861, %854, %847, %839, %831, %823, %814, %809, %802, %794, %786, %779, %772, %764, %756, %749, %742, %734, %726, %718, %709, %704, %697, %690, %683, %677, %670, %663, %656, %650, %643, %636, %629, %622, %614, %610, %603, %596, %589, %582, %576, %569, %562, %555, %549, %542, %535, %528, %520, %516, %509, %501, %493, %486, %479, %471, %463, %456, %449, %441, %433, %425, %416, %411, %404, %396, %388, %381, %374, %366, %358, %351, %344, %336, %328, %320, %311, %306, %299, %291, %283, %276, %269, %261, %253, %246, %239, %231, %223, %215, %206, %201, %194, %185, %176, %168, %160, %151, %142, %134, %126, %117, %108, %99, %89, %83, %76, %72, %68, %64, %60, %55, %50, %46, %42, %37, %32, %27, %21, %20
  %1329 = load i1, ptr %5, align 1
  ret i1 %1329
}

attributes #0 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"Any", !7, i64 0, !7, i64 2, !10, i64 4, !8, i64 8}
!7 = !{!"short", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!8, !8, i64 0}
!12 = !{i8 0, i8 2}
!13 = !{}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@.str.29 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [41 x i8], align 1
@__PRETTY_FUNCTION__.anys_equal = external hidden unnamed_addr constant [39 x i8], align 1

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

; Function Attrs: nounwind uwtable
define dso_local zeroext i1 @anys_equal(i64 %0, i64 %1, i64 %2, i64 %3) local_unnamed_addr #1 {
  %.sroa.01721.0.extract.trunc = trunc i64 %0 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc = trunc i64 %1 to i8
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 = lshr i64 %1, 8
  %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 = lshr i64 %1, 16
  %.sroa.0.0.extract.trunc = trunc i64 %2 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc = trunc i64 %3 to i8
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 = lshr i64 %3, 8
  %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 = lshr i64 %3, 16
  %5 = and i32 %.sroa.01721.0.extract.trunc, 65535
  %trunc = trunc i64 %0 to i16
  switch i16 %trunc, label %949 [
    i16 0, label %6
    i16 1, label %51
    i16 2, label %125
    i16 3, label %183
    i16 4, label %257
    i16 5, label %345
    i16 6, label %433
    i16 7, label %481
    i16 8, label %539
    i16 9, label %624
    i16 10, label %718
    i16 11, label %766
    i16 12, label %877
  ]

6:                                                ; preds = %4
  %7 = trunc i64 %2 to i16
  switch i16 %7, label %50 [
    i16 0, label %959
    i16 1, label %8
    i16 2, label %11
    i16 3, label %13
    i16 4, label %16
    i16 5, label %21
    i16 6, label %26
    i16 7, label %28
    i16 8, label %30
    i16 9, label %34
    i16 10, label %39
    i16 11, label %41
    i16 12, label %47
  ]

8:                                                ; preds = %6
  %9 = and i64 %3, 1
  %10 = icmp eq i64 %9, 0
  br label %959

11:                                               ; preds = %6
  %12 = icmp eq i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc, 0
  br label %959

13:                                               ; preds = %6
  %14 = and i64 %3, 255
  %15 = icmp eq i64 %14, 0
  br label %959

16:                                               ; preds = %6
  %17 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext = shl i32 %17, 8
  %18 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext = and i32 %18, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext, 65280
  %19 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext.masked, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext
  %20 = icmp eq i32 %19, 0
  br label %959

21:                                               ; preds = %6
  %22 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1457 = shl i32 %22, 8
  %23 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1107 = and i32 %23, 255
  %24 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext729 = shl i32 %24, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1457.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1457, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext483 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1107, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1457.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert485 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext483, %.sroa.1517.sroa.0.sroa.158.0.insert.ext729
  %25 = icmp eq i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert485, 0
  br label %959

26:                                               ; preds = %6
  %27 = icmp eq i64 %3, 0
  br label %959

28:                                               ; preds = %6
  %29 = icmp eq i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc, 0
  br label %959

30:                                               ; preds = %6
  %31 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1305 = shl i16 %31, 8
  %32 = trunc i64 %3 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext993 = and i16 %32, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert995 = or disjoint i16 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1305, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext993
  %33 = icmp eq i16 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert995, 0
  br label %959

34:                                               ; preds = %6
  %35 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1461 = shl i32 %35, 8
  %36 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1110 = and i32 %36, 255
  %37 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext733 = shl i32 %37, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1461.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1461, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext486 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1110, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1461.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert488 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext486, %.sroa.1517.sroa.0.sroa.158.0.insert.ext733
  %38 = icmp eq i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert488, 0
  br label %959

39:                                               ; preds = %6
  %40 = icmp eq i64 %3, 0
  br label %959

41:                                               ; preds = %6
  %42 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1405 = shl i32 %42, 8
  %43 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1068 = and i32 %43, 255
  %44 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext = shl i32 %44, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1405.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1405, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1405.masked, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1068
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext.masked = and i32 %.sroa.1517.sroa.0.sroa.158.0.insert.ext, 2147418112
  %45 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext, %.sroa.1517.sroa.0.sroa.158.0.insert.ext.masked
  %46 = icmp eq i32 %45, 0
  br label %959

47:                                               ; preds = %6
  %48 = and i64 %3, 9223372036854775807
  %49 = icmp eq i64 %48, 0
  br label %959

50:                                               ; preds = %6
  br label %959

51:                                               ; preds = %4
  %52 = trunc i64 %2 to i16
  switch i16 %52, label %959 [
    i16 0, label %53
    i16 1, label %56
    i16 2, label %60
    i16 3, label %65
    i16 4, label %71
    i16 5, label %78
    i16 6, label %85
    i16 7, label %88
    i16 8, label %93
    i16 9, label %100
    i16 10, label %107
    i16 11, label %110
    i16 12, label %119
  ]

53:                                               ; preds = %51
  %54 = and i64 %1, 1
  %55 = icmp eq i64 %54, 0
  br label %959

56:                                               ; preds = %51
  %57 = xor i64 %3, %1
  %58 = and i64 %57, 1
  %59 = icmp eq i64 %58, 0
  br label %959

60:                                               ; preds = %51
  %61 = trunc i64 %1 to i32
  %62 = and i32 %61, 1
  %63 = sext i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %64 = icmp eq i32 %62, %63
  br label %959

65:                                               ; preds = %51
  %66 = trunc i64 %1 to i32
  %67 = and i32 %66, 1
  %68 = trunc i64 %3 to i32
  %69 = and i32 %68, 255
  %70 = icmp eq i32 %67, %69
  br label %959

71:                                               ; preds = %51
  %72 = trunc i64 %1 to i32
  %73 = and i32 %72, 1
  %74 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1309 = shl i32 %74, 8
  %75 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext996 = and i32 %75, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1309.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1309, 65280
  %76 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1309.masked, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext996
  %77 = icmp eq i32 %73, %76
  br label %959

78:                                               ; preds = %51
  %79 = trunc i64 %1 to i32
  %80 = and i32 %79, 1
  %81 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1465 = shl i32 %81, 8
  %82 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1113 = and i32 %82, 255
  %83 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext737 = shl i32 %83, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1465.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1465, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext489 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1113, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1465.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert491 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext489, %.sroa.1517.sroa.0.sroa.158.0.insert.ext737
  %84 = icmp eq i32 %80, %.sroa.1517.sroa.0.sroa.0.0.insert.insert491
  br label %959

85:                                               ; preds = %51
  %86 = and i64 %1, 1
  %87 = icmp eq i64 %86, %3
  br label %959

88:                                               ; preds = %51
  %89 = trunc i64 %1 to i32
  %90 = and i32 %89, 1
  %91 = sext i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %92 = icmp eq i32 %90, %91
  br label %959

93:                                               ; preds = %51
  %94 = trunc i64 %1 to i32
  %95 = and i32 %94, 1
  %96 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1313 = shl i16 %96, 8
  %97 = trunc i64 %3 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext999 = and i16 %97, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1001 = or disjoint i16 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1313, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext999
  %98 = sext i16 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1001 to i32
  %99 = icmp eq i32 %95, %98
  br label %959

100:                                              ; preds = %51
  %101 = trunc i64 %1 to i32
  %102 = and i32 %101, 1
  %103 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1469 = shl i32 %103, 8
  %104 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1116 = and i32 %104, 255
  %105 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext741 = shl i32 %105, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1469.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1469, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext492 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1116, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1469.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert494 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext492, %.sroa.1517.sroa.0.sroa.158.0.insert.ext741
  %106 = icmp eq i32 %102, %.sroa.1517.sroa.0.sroa.0.0.insert.insert494
  br label %959

107:                                              ; preds = %51
  %108 = and i64 %1, 1
  %109 = icmp eq i64 %108, %3
  br label %959

110:                                              ; preds = %51
  %111 = trunc i64 %1 to i32
  %112 = and i32 %111, 1
  %113 = uitofp nneg i32 %112 to float
  %114 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1409 = shl i32 %114, 8
  %115 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1071 = and i32 %115, 255
  %116 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext681 = shl i32 %116, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1409.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1409, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext447 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1071, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1409.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert449 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext447, %.sroa.1517.sroa.0.sroa.158.0.insert.ext681
  %117 = bitcast i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert449 to float
  %118 = fcmp oeq float %113, %117
  br label %959

119:                                              ; preds = %51
  %120 = trunc i64 %1 to i32
  %121 = and i32 %120, 1
  %122 = uitofp nneg i32 %121 to double
  %123 = bitcast i64 %3 to double
  %124 = fcmp oeq double %122, %123
  br label %959

125:                                              ; preds = %4
  %126 = trunc i64 %2 to i16
  switch i16 %126, label %959 [
    i16 0, label %127
    i16 1, label %129
    i16 2, label %134
    i16 3, label %136
    i16 4, label %141
    i16 5, label %147
    i16 6, label %153
    i16 7, label %156
    i16 8, label %158
    i16 9, label %163
    i16 10, label %169
    i16 11, label %172
    i16 12, label %179
  ]

127:                                              ; preds = %125
  %128 = icmp eq i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc, 0
  br label %959

129:                                              ; preds = %125
  %130 = sext i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %131 = trunc i64 %3 to i32
  %132 = and i32 %131, 1
  %133 = icmp eq i32 %132, %130
  br label %959

134:                                              ; preds = %125
  %135 = icmp eq i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc
  br label %959

136:                                              ; preds = %125
  %137 = sext i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %138 = trunc i64 %3 to i32
  %139 = and i32 %138, 255
  %140 = icmp eq i32 %139, %137
  br label %959

141:                                              ; preds = %125
  %142 = sext i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %143 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1317 = shl i32 %143, 8
  %144 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1002 = and i32 %144, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1317.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1317, 65280
  %145 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1317.masked, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1002
  %146 = icmp eq i32 %145, %142
  br label %959

147:                                              ; preds = %125
  %148 = sext i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %149 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1473 = shl i32 %149, 8
  %150 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1119 = and i32 %150, 255
  %151 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext745 = shl i32 %151, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1473.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1473, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext495 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1119, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1473.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert497 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext495, %.sroa.1517.sroa.0.sroa.158.0.insert.ext745
  %152 = icmp eq i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert497, %148
  br label %959

153:                                              ; preds = %125
  %sext3451 = shl i64 %1, 56
  %154 = ashr exact i64 %sext3451, 56
  %155 = icmp eq i64 %154, %3
  br label %959

156:                                              ; preds = %125
  %157 = icmp eq i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc
  br label %959

158:                                              ; preds = %125
  %159 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1321 = shl i16 %159, 8
  %160 = trunc i64 %3 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1005 = and i16 %160, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1007 = or disjoint i16 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1321, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1005
  %161 = sext i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc to i16
  %162 = icmp eq i16 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1007, %161
  br label %959

163:                                              ; preds = %125
  %164 = sext i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %165 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1477 = shl i32 %165, 8
  %166 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1122 = and i32 %166, 255
  %167 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext749 = shl i32 %167, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1477.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1477, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext498 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1122, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1477.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert500 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext498, %.sroa.1517.sroa.0.sroa.158.0.insert.ext749
  %168 = icmp eq i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert500, %164
  br label %959

169:                                              ; preds = %125
  %sext3450 = shl i64 %1, 56
  %170 = ashr exact i64 %sext3450, 56
  %171 = icmp eq i64 %170, %3
  br label %959

172:                                              ; preds = %125
  %173 = sitofp i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc to float
  %174 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1413 = shl i32 %174, 8
  %175 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1074 = and i32 %175, 255
  %176 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext685 = shl i32 %176, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1413.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1413, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext450 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1074, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1413.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert452 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext450, %.sroa.1517.sroa.0.sroa.158.0.insert.ext685
  %177 = bitcast i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert452 to float
  %178 = fcmp oeq float %173, %177
  br label %959

179:                                              ; preds = %125
  %180 = sitofp i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc to double
  %181 = bitcast i64 %3 to double
  %182 = fcmp oeq double %180, %181
  br label %959

183:                                              ; preds = %4
  %184 = trunc i64 %2 to i16
  switch i16 %184, label %959 [
    i16 0, label %185
    i16 1, label %188
    i16 2, label %194
    i16 3, label %199
    i16 4, label %203
    i16 5, label %210
    i16 6, label %217
    i16 7, label %220
    i16 8, label %225
    i16 9, label %232
    i16 10, label %239
    i16 11, label %242
    i16 12, label %251
  ]

185:                                              ; preds = %183
  %186 = and i64 %1, 255
  %187 = icmp eq i64 %186, 0
  br label %959

188:                                              ; preds = %183
  %189 = trunc i64 %1 to i32
  %190 = and i32 %189, 255
  %191 = trunc i64 %3 to i32
  %192 = and i32 %191, 1
  %193 = icmp eq i32 %190, %192
  br label %959

194:                                              ; preds = %183
  %195 = trunc i64 %1 to i32
  %196 = and i32 %195, 255
  %197 = sext i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %198 = icmp eq i32 %196, %197
  br label %959

199:                                              ; preds = %183
  %200 = xor i64 %3, %1
  %201 = and i64 %200, 255
  %202 = icmp eq i64 %201, 0
  br label %959

203:                                              ; preds = %183
  %204 = trunc i64 %1 to i32
  %205 = and i32 %204, 255
  %206 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1325 = shl i32 %206, 8
  %207 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1008 = and i32 %207, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1325.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1325, 65280
  %208 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1325.masked, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1008
  %209 = icmp eq i32 %205, %208
  br label %959

210:                                              ; preds = %183
  %211 = trunc i64 %1 to i32
  %212 = and i32 %211, 255
  %213 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1481 = shl i32 %213, 8
  %214 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1125 = and i32 %214, 255
  %215 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext753 = shl i32 %215, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1481.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1481, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext501 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1125, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1481.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert503 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext501, %.sroa.1517.sroa.0.sroa.158.0.insert.ext753
  %216 = icmp eq i32 %212, %.sroa.1517.sroa.0.sroa.0.0.insert.insert503
  br label %959

217:                                              ; preds = %183
  %218 = and i64 %1, 255
  %219 = icmp eq i64 %218, %3
  br label %959

220:                                              ; preds = %183
  %221 = trunc i64 %1 to i32
  %222 = and i32 %221, 255
  %223 = sext i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %224 = icmp eq i32 %222, %223
  br label %959

225:                                              ; preds = %183
  %226 = trunc i64 %1 to i32
  %227 = and i32 %226, 255
  %228 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1329 = shl i16 %228, 8
  %229 = trunc i64 %3 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1011 = and i16 %229, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1013 = or disjoint i16 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1329, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1011
  %230 = sext i16 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1013 to i32
  %231 = icmp eq i32 %227, %230
  br label %959

232:                                              ; preds = %183
  %233 = trunc i64 %1 to i32
  %234 = and i32 %233, 255
  %235 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1485 = shl i32 %235, 8
  %236 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1128 = and i32 %236, 255
  %237 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext757 = shl i32 %237, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1485.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1485, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext504 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1128, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1485.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert506 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext504, %.sroa.1517.sroa.0.sroa.158.0.insert.ext757
  %238 = icmp eq i32 %234, %.sroa.1517.sroa.0.sroa.0.0.insert.insert506
  br label %959

239:                                              ; preds = %183
  %240 = and i64 %1, 255
  %241 = icmp eq i64 %240, %3
  br label %959

242:                                              ; preds = %183
  %243 = trunc i64 %1 to i32
  %244 = and i32 %243, 255
  %245 = uitofp nneg i32 %244 to float
  %246 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1417 = shl i32 %246, 8
  %247 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1077 = and i32 %247, 255
  %248 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext689 = shl i32 %248, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1417.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1417, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext453 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1077, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1417.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert455 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext453, %.sroa.1517.sroa.0.sroa.158.0.insert.ext689
  %249 = bitcast i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert455 to float
  %250 = fcmp oeq float %245, %249
  br label %959

251:                                              ; preds = %183
  %252 = trunc i64 %1 to i32
  %253 = and i32 %252, 255
  %254 = uitofp nneg i32 %253 to double
  %255 = bitcast i64 %3 to double
  %256 = fcmp oeq double %254, %255
  br label %959

257:                                              ; preds = %4
  %258 = trunc i64 %2 to i16
  switch i16 %258, label %959 [
    i16 0, label %259
    i16 1, label %264
    i16 2, label %271
    i16 3, label %277
    i16 4, label %284
    i16 5, label %292
    i16 6, label %300
    i16 7, label %303
    i16 8, label %309
    i16 9, label %317
    i16 10, label %325
    i16 11, label %328
    i16 12, label %338
  ]

259:                                              ; preds = %257
  %260 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext = shl i32 %260, 8
  %261 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext = and i32 %261, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext, 65280
  %262 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext.masked, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext
  %263 = icmp eq i32 %262, 0
  br label %959

264:                                              ; preds = %257
  %265 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3013 = shl i32 %265, 8
  %266 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2701 = and i32 %266, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3013.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3013, 65280
  %267 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3013.masked, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2701
  %268 = trunc i64 %3 to i32
  %269 = and i32 %268, 1
  %270 = icmp eq i32 %267, %269
  br label %959

271:                                              ; preds = %257
  %272 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3017 = shl i32 %272, 8
  %273 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2704 = and i32 %273, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3017.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3017, 65280
  %274 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3017.masked, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2704
  %275 = sext i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %276 = icmp eq i32 %274, %275
  br label %959

277:                                              ; preds = %257
  %278 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3021 = shl i32 %278, 8
  %279 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2707 = and i32 %279, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3021.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3021, 65280
  %280 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3021.masked, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2707
  %281 = trunc i64 %3 to i32
  %282 = and i32 %281, 255
  %283 = icmp eq i32 %280, %282
  br label %959

284:                                              ; preds = %257
  %285 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3025 = shl i32 %285, 8
  %286 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2710 = and i32 %286, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3025.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3025, 65280
  %287 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3025.masked, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2710
  %288 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1333 = shl i32 %288, 8
  %289 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1014 = and i32 %289, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1333.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1333, 65280
  %290 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1333.masked, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1014
  %291 = icmp eq i32 %287, %290
  br label %959

292:                                              ; preds = %257
  %293 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3029 = shl i32 %293, 8
  %294 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2713 = and i32 %294, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3029.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3029, 65280
  %295 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3029.masked, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2713
  %296 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1489 = shl i32 %296, 8
  %297 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1131 = and i32 %297, 255
  %298 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext761 = shl i32 %298, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1489.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1489, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext507 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1131, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1489.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert509 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext507, %.sroa.1517.sroa.0.sroa.158.0.insert.ext761
  %299 = icmp eq i32 %295, %.sroa.1517.sroa.0.sroa.0.0.insert.insert509
  br label %959

300:                                              ; preds = %257
  %301 = and i64 %1, 65535
  %302 = icmp eq i64 %301, %3
  br label %959

303:                                              ; preds = %257
  %304 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3037 = shl i32 %304, 8
  %305 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2719 = and i32 %305, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3037.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3037, 65280
  %306 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3037.masked, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2719
  %307 = sext i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %308 = icmp eq i32 %306, %307
  br label %959

309:                                              ; preds = %257
  %310 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3041 = shl i32 %310, 8
  %311 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2722 = and i32 %311, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3041.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3041, 65280
  %312 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3041.masked, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2722
  %313 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1337 = shl i16 %313, 8
  %314 = trunc i64 %3 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1017 = and i16 %314, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1019 = or disjoint i16 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1337, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1017
  %315 = sext i16 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1019 to i32
  %316 = icmp eq i32 %312, %315
  br label %959

317:                                              ; preds = %257
  %318 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3045 = shl i32 %318, 8
  %319 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2725 = and i32 %319, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3045.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3045, 65280
  %320 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3045.masked, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2725
  %321 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1493 = shl i32 %321, 8
  %322 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1134 = and i32 %322, 255
  %323 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext765 = shl i32 %323, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1493.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1493, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext510 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1134, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1493.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert512 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext510, %.sroa.1517.sroa.0.sroa.158.0.insert.ext765
  %324 = icmp eq i32 %320, %.sroa.1517.sroa.0.sroa.0.0.insert.insert512
  br label %959

325:                                              ; preds = %257
  %326 = and i64 %1, 65535
  %327 = icmp eq i64 %326, %3
  br label %959

328:                                              ; preds = %257
  %329 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3053 = shl i32 %329, 8
  %330 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2731 = and i32 %330, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3053.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3053, 65280
  %331 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3053.masked, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2731
  %332 = uitofp nneg i32 %331 to float
  %333 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1421 = shl i32 %333, 8
  %334 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1080 = and i32 %334, 255
  %335 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext693 = shl i32 %335, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1421.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1421, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext456 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1080, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1421.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert458 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext456, %.sroa.1517.sroa.0.sroa.158.0.insert.ext693
  %336 = bitcast i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert458 to float
  %337 = fcmp oeq float %332, %336
  br label %959

338:                                              ; preds = %257
  %339 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3057 = shl i32 %339, 8
  %340 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2734 = and i32 %340, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3057.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3057, 65280
  %341 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3057.masked, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2734
  %342 = uitofp nneg i32 %341 to double
  %343 = bitcast i64 %3 to double
  %344 = fcmp oeq double %342, %343
  br label %959

345:                                              ; preds = %4
  %346 = trunc i64 %2 to i16
  switch i16 %346, label %959 [
    i16 0, label %347
    i16 1, label %352
    i16 2, label %359
    i16 3, label %365
    i16 4, label %372
    i16 5, label %380
    i16 6, label %388
    i16 7, label %391
    i16 8, label %397
    i16 9, label %405
    i16 10, label %413
    i16 11, label %416
    i16 12, label %426
  ]

347:                                              ; preds = %345
  %348 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3165 = shl i32 %348, 8
  %349 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2815 = and i32 %349, 255
  %350 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2437 = shl i32 %350, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3165.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3165, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2191 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2815, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3165.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2193 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2191, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2437
  %351 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2193, 0
  br label %959

352:                                              ; preds = %345
  %353 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3169 = shl i32 %353, 8
  %354 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2818 = and i32 %354, 255
  %355 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2441 = shl i32 %355, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3169.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3169, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2194 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2818, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3169.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2196 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2194, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2441
  %356 = trunc i64 %3 to i32
  %357 = and i32 %356, 1
  %358 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2196, %357
  br label %959

359:                                              ; preds = %345
  %360 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3173 = shl i32 %360, 8
  %361 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2821 = and i32 %361, 255
  %362 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2445 = shl i32 %362, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3173.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3173, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2197 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2821, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3173.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2199 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2197, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2445
  %363 = sext i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %364 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2199, %363
  br label %959

365:                                              ; preds = %345
  %366 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3177 = shl i32 %366, 8
  %367 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2824 = and i32 %367, 255
  %368 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2449 = shl i32 %368, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3177.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3177, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2200 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2824, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3177.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2202 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2200, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2449
  %369 = trunc i64 %3 to i32
  %370 = and i32 %369, 255
  %371 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2202, %370
  br label %959

372:                                              ; preds = %345
  %373 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3181 = shl i32 %373, 8
  %374 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2827 = and i32 %374, 255
  %375 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2453 = shl i32 %375, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3181.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3181, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2203 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2827, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3181.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2205 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2203, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2453
  %376 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1341 = shl i32 %376, 8
  %377 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1020 = and i32 %377, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1341.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1341, 65280
  %378 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1341.masked, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1020
  %379 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2205, %378
  br label %959

380:                                              ; preds = %345
  %381 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3185 = shl i32 %381, 8
  %382 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2830 = and i32 %382, 255
  %383 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2457 = shl i32 %383, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3185.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3185, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2206 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2830, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3185.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2208 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2206, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2457
  %384 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1497 = shl i32 %384, 8
  %385 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1137 = and i32 %385, 255
  %386 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext769 = shl i32 %386, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1497.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1497, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext513 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1137, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1497.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert515 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext513, %.sroa.1517.sroa.0.sroa.158.0.insert.ext769
  %387 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2208, %.sroa.1517.sroa.0.sroa.0.0.insert.insert515
  br label %959

388:                                              ; preds = %345
  %389 = and i64 %1, 4294967295
  %390 = icmp eq i64 %389, %3
  br label %959

391:                                              ; preds = %345
  %392 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3193 = shl i32 %392, 8
  %393 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2836 = and i32 %393, 255
  %394 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2465 = shl i32 %394, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3193.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3193, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2212 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2836, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3193.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2214 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2212, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2465
  %395 = sext i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %396 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2214, %395
  br label %959

397:                                              ; preds = %345
  %398 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3197 = shl i32 %398, 8
  %399 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2839 = and i32 %399, 255
  %400 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2469 = shl i32 %400, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3197.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3197, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2215 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2839, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3197.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2217 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2215, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2469
  %401 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1345 = shl i16 %401, 8
  %402 = trunc i64 %3 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1023 = and i16 %402, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1025 = or disjoint i16 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1345, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1023
  %403 = sext i16 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1025 to i32
  %404 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2217, %403
  br label %959

405:                                              ; preds = %345
  %406 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3201 = shl i32 %406, 8
  %407 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2842 = and i32 %407, 255
  %408 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2473 = shl i32 %408, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3201.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3201, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2218 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2842, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3201.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2220 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2218, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2473
  %409 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1501 = shl i32 %409, 8
  %410 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1140 = and i32 %410, 255
  %411 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext773 = shl i32 %411, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1501.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1501, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext516 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1140, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1501.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert518 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext516, %.sroa.1517.sroa.0.sroa.158.0.insert.ext773
  %412 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2220, %.sroa.1517.sroa.0.sroa.0.0.insert.insert518
  br label %959

413:                                              ; preds = %345
  %414 = and i64 %1, 4294967295
  %415 = icmp eq i64 %414, %3
  br label %959

416:                                              ; preds = %345
  %417 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3209 = shl i32 %417, 8
  %418 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2848 = and i32 %418, 255
  %419 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2481 = shl i32 %419, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3209.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3209, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2224 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2848, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3209.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2226 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2224, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2481
  %420 = uitofp i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2226 to float
  %421 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1425 = shl i32 %421, 8
  %422 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1083 = and i32 %422, 255
  %423 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext697 = shl i32 %423, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1425.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1425, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext459 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1083, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1425.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert461 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext459, %.sroa.1517.sroa.0.sroa.158.0.insert.ext697
  %424 = bitcast i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert461 to float
  %425 = fcmp oeq float %420, %424
  br label %959

426:                                              ; preds = %345
  %427 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3213 = shl i32 %427, 8
  %428 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2851 = and i32 %428, 255
  %429 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2485 = shl i32 %429, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3213.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3213, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2227 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2851, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3213.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2229 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2227, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2485
  %430 = uitofp i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2229 to double
  %431 = bitcast i64 %3 to double
  %432 = fcmp oeq double %430, %431
  br label %959

433:                                              ; preds = %4
  %434 = trunc i64 %2 to i16
  switch i16 %434, label %959 [
    i16 0, label %435
    i16 1, label %437
    i16 2, label %440
    i16 3, label %443
    i16 4, label %446
    i16 5, label %449
    i16 6, label %452
    i16 7, label %454
    i16 8, label %457
    i16 9, label %462
    i16 10, label %468
    i16 11, label %470
    i16 12, label %477
  ]

435:                                              ; preds = %433
  %436 = icmp eq i64 %1, 0
  br label %959

437:                                              ; preds = %433
  %438 = and i64 %3, 1
  %439 = icmp eq i64 %438, %1
  br label %959

440:                                              ; preds = %433
  %sext3445 = shl i64 %3, 56
  %441 = ashr exact i64 %sext3445, 56
  %442 = icmp eq i64 %441, %1
  br label %959

443:                                              ; preds = %433
  %444 = and i64 %3, 255
  %445 = icmp eq i64 %444, %1
  br label %959

446:                                              ; preds = %433
  %447 = and i64 %3, 65535
  %448 = icmp eq i64 %447, %1
  br label %959

449:                                              ; preds = %433
  %450 = and i64 %3, 4294967295
  %451 = icmp eq i64 %450, %1
  br label %959

452:                                              ; preds = %433
  %453 = icmp eq i64 %1, %3
  br label %959

454:                                              ; preds = %433
  %sext3444 = shl i64 %3, 56
  %455 = ashr exact i64 %sext3444, 56
  %456 = icmp eq i64 %455, %1
  br label %959

457:                                              ; preds = %433
  %458 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1353 = shl i16 %458, 8
  %459 = trunc i64 %3 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1029 = and i16 %459, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1031 = or disjoint i16 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1353, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1029
  %460 = sext i16 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1031 to i64
  %461 = icmp eq i64 %460, %1
  br label %959

462:                                              ; preds = %433
  %463 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1509 = shl i32 %463, 8
  %464 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1146 = and i32 %464, 255
  %465 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext781 = shl i32 %465, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1509.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1509, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext522 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1146, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1509.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert524 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext522, %.sroa.1517.sroa.0.sroa.158.0.insert.ext781
  %466 = sext i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert524 to i64
  %467 = icmp eq i64 %466, %1
  br label %959

468:                                              ; preds = %433
  %469 = icmp eq i64 %1, %3
  br label %959

470:                                              ; preds = %433
  %471 = uitofp i64 %1 to float
  %472 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1429 = shl i32 %472, 8
  %473 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1086 = and i32 %473, 255
  %474 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext701 = shl i32 %474, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1429.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1429, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext462 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1086, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1429.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert464 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext462, %.sroa.1517.sroa.0.sroa.158.0.insert.ext701
  %475 = bitcast i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert464 to float
  %476 = fcmp oeq float %471, %475
  br label %959

477:                                              ; preds = %433
  %478 = uitofp i64 %1 to double
  %479 = bitcast i64 %3 to double
  %480 = fcmp oeq double %478, %479
  br label %959

481:                                              ; preds = %4
  %482 = trunc i64 %2 to i16
  switch i16 %482, label %959 [
    i16 0, label %483
    i16 1, label %485
    i16 2, label %490
    i16 3, label %492
    i16 4, label %497
    i16 5, label %503
    i16 6, label %509
    i16 7, label %512
    i16 8, label %514
    i16 9, label %519
    i16 10, label %525
    i16 11, label %528
    i16 12, label %535
  ]

483:                                              ; preds = %481
  %484 = icmp eq i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc, 0
  br label %959

485:                                              ; preds = %481
  %486 = sext i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %487 = trunc i64 %3 to i32
  %488 = and i32 %487, 1
  %489 = icmp eq i32 %488, %486
  br label %959

490:                                              ; preds = %481
  %491 = icmp eq i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc
  br label %959

492:                                              ; preds = %481
  %493 = sext i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %494 = trunc i64 %3 to i32
  %495 = and i32 %494, 255
  %496 = icmp eq i32 %495, %493
  br label %959

497:                                              ; preds = %481
  %498 = sext i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %499 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1357 = shl i32 %499, 8
  %500 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1032 = and i32 %500, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1357.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1357, 65280
  %501 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1357.masked, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1032
  %502 = icmp eq i32 %501, %498
  br label %959

503:                                              ; preds = %481
  %504 = sext i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %505 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1513 = shl i32 %505, 8
  %506 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1149 = and i32 %506, 255
  %507 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext785 = shl i32 %507, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1513.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1513, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext525 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1149, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1513.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert527 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext525, %.sroa.1517.sroa.0.sroa.158.0.insert.ext785
  %508 = icmp eq i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert527, %504
  br label %959

509:                                              ; preds = %481
  %sext3442 = shl i64 %1, 56
  %510 = ashr exact i64 %sext3442, 56
  %511 = icmp eq i64 %510, %3
  br label %959

512:                                              ; preds = %481
  %513 = icmp eq i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc
  br label %959

514:                                              ; preds = %481
  %515 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1361 = shl i16 %515, 8
  %516 = trunc i64 %3 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1035 = and i16 %516, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1037 = or disjoint i16 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1361, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1035
  %517 = sext i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc to i16
  %518 = icmp eq i16 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1037, %517
  br label %959

519:                                              ; preds = %481
  %520 = sext i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %521 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1517 = shl i32 %521, 8
  %522 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1152 = and i32 %522, 255
  %523 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext789 = shl i32 %523, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1517.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1517, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext528 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1152, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1517.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert530 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext528, %.sroa.1517.sroa.0.sroa.158.0.insert.ext789
  %524 = icmp eq i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert530, %520
  br label %959

525:                                              ; preds = %481
  %sext3441 = shl i64 %1, 56
  %526 = ashr exact i64 %sext3441, 56
  %527 = icmp eq i64 %526, %3
  br label %959

528:                                              ; preds = %481
  %529 = sitofp i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc to float
  %530 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1433 = shl i32 %530, 8
  %531 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1089 = and i32 %531, 255
  %532 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext705 = shl i32 %532, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1433.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1433, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext465 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1089, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1433.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert467 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext465, %.sroa.1517.sroa.0.sroa.158.0.insert.ext705
  %533 = bitcast i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert467 to float
  %534 = fcmp oeq float %529, %533
  br label %959

535:                                              ; preds = %481
  %536 = sitofp i8 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.extract.trunc to double
  %537 = bitcast i64 %3 to double
  %538 = fcmp oeq double %536, %537
  br label %959

539:                                              ; preds = %4
  %540 = trunc i64 %2 to i16
  switch i16 %540, label %959 [
    i16 0, label %541
    i16 1, label %545
    i16 2, label %552
    i16 3, label %557
    i16 4, label %564
    i16 5, label %572
    i16 6, label %580
    i16 7, label %585
    i16 8, label %590
    i16 9, label %596
    i16 10, label %604
    i16 11, label %609
    i16 12, label %618
  ]

541:                                              ; preds = %539
  %542 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3061 = shl i16 %542, 8
  %543 = trunc i64 %1 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2737 = and i16 %543, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2739 = or disjoint i16 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3061, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2737
  %544 = icmp eq i16 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2739, 0
  br label %959

545:                                              ; preds = %539
  %546 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3065 = shl i16 %546, 8
  %547 = trunc i64 %1 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2740 = and i16 %547, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2742 = or disjoint i16 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3065, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2740
  %548 = sext i16 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2742 to i32
  %549 = trunc i64 %3 to i32
  %550 = and i32 %549, 1
  %551 = icmp eq i32 %550, %548
  br label %959

552:                                              ; preds = %539
  %553 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3069 = shl i16 %553, 8
  %554 = trunc i64 %1 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2743 = and i16 %554, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2745 = or disjoint i16 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3069, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2743
  %555 = sext i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc to i16
  %556 = icmp eq i16 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2745, %555
  br label %959

557:                                              ; preds = %539
  %558 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3073 = shl i16 %558, 8
  %559 = trunc i64 %1 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2746 = and i16 %559, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2748 = or disjoint i16 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3073, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2746
  %560 = sext i16 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2748 to i32
  %561 = trunc i64 %3 to i32
  %562 = and i32 %561, 255
  %563 = icmp eq i32 %562, %560
  br label %959

564:                                              ; preds = %539
  %565 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3077 = shl i16 %565, 8
  %566 = trunc i64 %1 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2749 = and i16 %566, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2751 = or disjoint i16 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3077, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2749
  %567 = sext i16 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2751 to i32
  %568 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1365 = shl i32 %568, 8
  %569 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1038 = and i32 %569, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1365.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1365, 65280
  %570 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1365.masked, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1038
  %571 = icmp eq i32 %570, %567
  br label %959

572:                                              ; preds = %539
  %573 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3081 = shl i16 %573, 8
  %574 = trunc i64 %1 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2752 = and i16 %574, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2754 = or disjoint i16 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3081, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2752
  %575 = sext i16 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2754 to i32
  %576 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1521 = shl i32 %576, 8
  %577 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1155 = and i32 %577, 255
  %578 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext793 = shl i32 %578, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1521.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1521, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext531 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1155, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1521.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert533 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext531, %.sroa.1517.sroa.0.sroa.158.0.insert.ext793
  %579 = icmp eq i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert533, %575
  br label %959

580:                                              ; preds = %539
  %581 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3085 = shl i16 %581, 8
  %582 = trunc i64 %1 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2755 = and i16 %582, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2757 = or disjoint i16 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3085, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2755
  %583 = sext i16 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2757 to i64
  %584 = icmp eq i64 %583, %3
  br label %959

585:                                              ; preds = %539
  %586 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3089 = shl i16 %586, 8
  %587 = trunc i64 %1 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2758 = and i16 %587, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2760 = or disjoint i16 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3089, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2758
  %588 = sext i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc to i16
  %589 = icmp eq i16 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2760, %588
  br label %959

590:                                              ; preds = %539
  %591 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3093 = shl i16 %591, 8
  %592 = trunc i64 %1 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2761 = and i16 %592, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2763 = or disjoint i16 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3093, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2761
  %593 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1369 = shl i16 %593, 8
  %594 = trunc i64 %3 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1041 = and i16 %594, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1043 = or disjoint i16 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1369, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1041
  %595 = icmp eq i16 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2763, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1043
  br label %959

596:                                              ; preds = %539
  %597 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3097 = shl i16 %597, 8
  %598 = trunc i64 %1 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2764 = and i16 %598, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2766 = or disjoint i16 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3097, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2764
  %599 = sext i16 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2766 to i32
  %600 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1525 = shl i32 %600, 8
  %601 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1158 = and i32 %601, 255
  %602 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext797 = shl i32 %602, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1525.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1525, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext534 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1158, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1525.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert536 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext534, %.sroa.1517.sroa.0.sroa.158.0.insert.ext797
  %603 = icmp eq i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert536, %599
  br label %959

604:                                              ; preds = %539
  %605 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3101 = shl i16 %605, 8
  %606 = trunc i64 %1 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2767 = and i16 %606, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2769 = or disjoint i16 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3101, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2767
  %607 = sext i16 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2769 to i64
  %608 = icmp eq i64 %607, %3
  br label %959

609:                                              ; preds = %539
  %610 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3105 = shl i16 %610, 8
  %611 = trunc i64 %1 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2770 = and i16 %611, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2772 = or disjoint i16 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3105, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2770
  %612 = sitofp i16 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2772 to float
  %613 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1437 = shl i32 %613, 8
  %614 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1092 = and i32 %614, 255
  %615 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext709 = shl i32 %615, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1437.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1437, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext468 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1092, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1437.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert470 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext468, %.sroa.1517.sroa.0.sroa.158.0.insert.ext709
  %616 = bitcast i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert470 to float
  %617 = fcmp oeq float %612, %616
  br label %959

618:                                              ; preds = %539
  %619 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3109 = shl i16 %619, 8
  %620 = trunc i64 %1 to i16
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2773 = and i16 %620, 255
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2775 = or disjoint i16 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3109, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2773
  %621 = sitofp i16 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.insert2775 to double
  %622 = bitcast i64 %3 to double
  %623 = fcmp oeq double %621, %622
  br label %959

624:                                              ; preds = %4
  %625 = trunc i64 %2 to i16
  switch i16 %625, label %959 [
    i16 0, label %626
    i16 1, label %631
    i16 2, label %638
    i16 3, label %644
    i16 4, label %651
    i16 5, label %659
    i16 6, label %667
    i16 7, label %673
    i16 8, label %679
    i16 9, label %687
    i16 10, label %695
    i16 11, label %701
    i16 12, label %711
  ]

626:                                              ; preds = %624
  %627 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3217 = shl i32 %627, 8
  %628 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2854 = and i32 %628, 255
  %629 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2489 = shl i32 %629, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3217.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3217, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2230 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2854, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3217.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2232 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2230, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2489
  %630 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2232, 0
  br label %959

631:                                              ; preds = %624
  %632 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3221 = shl i32 %632, 8
  %633 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2857 = and i32 %633, 255
  %634 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2493 = shl i32 %634, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3221.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3221, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2233 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2857, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3221.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2235 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2233, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2493
  %635 = trunc i64 %3 to i32
  %636 = and i32 %635, 1
  %637 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2235, %636
  br label %959

638:                                              ; preds = %624
  %639 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3225 = shl i32 %639, 8
  %640 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2860 = and i32 %640, 255
  %641 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2497 = shl i32 %641, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3225.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3225, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2236 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2860, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3225.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2238 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2236, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2497
  %642 = sext i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %643 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2238, %642
  br label %959

644:                                              ; preds = %624
  %645 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3229 = shl i32 %645, 8
  %646 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2863 = and i32 %646, 255
  %647 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2501 = shl i32 %647, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3229.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3229, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2239 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2863, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3229.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2241 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2239, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2501
  %648 = trunc i64 %3 to i32
  %649 = and i32 %648, 255
  %650 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2241, %649
  br label %959

651:                                              ; preds = %624
  %652 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3233 = shl i32 %652, 8
  %653 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2866 = and i32 %653, 255
  %654 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2505 = shl i32 %654, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3233.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3233, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2242 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2866, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3233.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2244 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2242, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2505
  %655 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1373 = shl i32 %655, 8
  %656 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1044 = and i32 %656, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1373.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1373, 65280
  %657 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1373.masked, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1044
  %658 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2244, %657
  br label %959

659:                                              ; preds = %624
  %660 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3237 = shl i32 %660, 8
  %661 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2869 = and i32 %661, 255
  %662 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2509 = shl i32 %662, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3237.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3237, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2245 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2869, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3237.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2247 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2245, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2509
  %663 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1529 = shl i32 %663, 8
  %664 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1161 = and i32 %664, 255
  %665 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext801 = shl i32 %665, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1529.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1529, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext537 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1161, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1529.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert539 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext537, %.sroa.1517.sroa.0.sroa.158.0.insert.ext801
  %666 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2247, %.sroa.1517.sroa.0.sroa.0.0.insert.insert539
  br label %959

667:                                              ; preds = %624
  %668 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3241 = shl i32 %668, 8
  %669 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2872 = and i32 %669, 255
  %670 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2513 = shl i32 %670, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3241.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3241, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2248 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2872, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3241.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2250 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2248, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2513
  %671 = sext i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2250 to i64
  %672 = icmp eq i64 %671, %3
  br label %959

673:                                              ; preds = %624
  %674 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3245 = shl i32 %674, 8
  %675 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2875 = and i32 %675, 255
  %676 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2517 = shl i32 %676, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3245.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3245, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2251 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2875, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3245.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2253 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2251, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2517
  %677 = sext i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc to i32
  %678 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2253, %677
  br label %959

679:                                              ; preds = %624
  %680 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3249 = shl i32 %680, 8
  %681 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2878 = and i32 %681, 255
  %682 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2521 = shl i32 %682, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3249.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3249, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2254 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2878, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3249.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2256 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2254, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2521
  %683 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1377 = shl i16 %683, 8
  %684 = trunc i64 %3 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1047 = and i16 %684, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1049 = or disjoint i16 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1377, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1047
  %685 = sext i16 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1049 to i32
  %686 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2256, %685
  br label %959

687:                                              ; preds = %624
  %688 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3253 = shl i32 %688, 8
  %689 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2881 = and i32 %689, 255
  %690 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2525 = shl i32 %690, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3253.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3253, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2257 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2881, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3253.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2259 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2257, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2525
  %691 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1533 = shl i32 %691, 8
  %692 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1164 = and i32 %692, 255
  %693 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext805 = shl i32 %693, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1533.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1533, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext540 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1164, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1533.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert542 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext540, %.sroa.1517.sroa.0.sroa.158.0.insert.ext805
  %694 = icmp eq i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2259, %.sroa.1517.sroa.0.sroa.0.0.insert.insert542
  br label %959

695:                                              ; preds = %624
  %696 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3257 = shl i32 %696, 8
  %697 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2884 = and i32 %697, 255
  %698 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2529 = shl i32 %698, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3257.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3257, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2260 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2884, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3257.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2262 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2260, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2529
  %699 = sext i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2262 to i64
  %700 = icmp eq i64 %699, %3
  br label %959

701:                                              ; preds = %624
  %702 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3261 = shl i32 %702, 8
  %703 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2887 = and i32 %703, 255
  %704 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2533 = shl i32 %704, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3261.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3261, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2263 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2887, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3261.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2265 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2263, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2533
  %705 = sitofp i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2265 to float
  %706 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1441 = shl i32 %706, 8
  %707 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1095 = and i32 %707, 255
  %708 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext713 = shl i32 %708, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1441.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1441, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext471 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1095, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1441.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert473 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext471, %.sroa.1517.sroa.0.sroa.158.0.insert.ext713
  %709 = bitcast i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert473 to float
  %710 = fcmp oeq float %705, %709
  br label %959

711:                                              ; preds = %624
  %712 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3265 = shl i32 %712, 8
  %713 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2890 = and i32 %713, 255
  %714 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2537 = shl i32 %714, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3265.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3265, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2266 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2890, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3265.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2268 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2266, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2537
  %715 = sitofp i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2268 to double
  %716 = bitcast i64 %3 to double
  %717 = fcmp oeq double %715, %716
  br label %959

718:                                              ; preds = %4
  %719 = trunc i64 %2 to i16
  switch i16 %719, label %959 [
    i16 0, label %720
    i16 1, label %722
    i16 2, label %725
    i16 3, label %728
    i16 4, label %731
    i16 5, label %734
    i16 6, label %737
    i16 7, label %739
    i16 8, label %742
    i16 9, label %747
    i16 10, label %753
    i16 11, label %755
    i16 12, label %762
  ]

720:                                              ; preds = %718
  %721 = icmp eq i64 %1, 0
  br label %959

722:                                              ; preds = %718
  %723 = and i64 %3, 1
  %724 = icmp eq i64 %723, %1
  br label %959

725:                                              ; preds = %718
  %sext3437 = shl i64 %3, 56
  %726 = ashr exact i64 %sext3437, 56
  %727 = icmp eq i64 %726, %1
  br label %959

728:                                              ; preds = %718
  %729 = and i64 %3, 255
  %730 = icmp eq i64 %729, %1
  br label %959

731:                                              ; preds = %718
  %732 = and i64 %3, 65535
  %733 = icmp eq i64 %732, %1
  br label %959

734:                                              ; preds = %718
  %735 = and i64 %3, 4294967295
  %736 = icmp eq i64 %735, %1
  br label %959

737:                                              ; preds = %718
  %738 = icmp eq i64 %1, %3
  br label %959

739:                                              ; preds = %718
  %sext = shl i64 %3, 56
  %740 = ashr exact i64 %sext, 56
  %741 = icmp eq i64 %740, %1
  br label %959

742:                                              ; preds = %718
  %743 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1385 = shl i16 %743, 8
  %744 = trunc i64 %3 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1053 = and i16 %744, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1055 = or disjoint i16 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1385, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1053
  %745 = sext i16 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1055 to i64
  %746 = icmp eq i64 %745, %1
  br label %959

747:                                              ; preds = %718
  %748 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1541 = shl i32 %748, 8
  %749 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1170 = and i32 %749, 255
  %750 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext813 = shl i32 %750, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1541.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1541, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext546 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1170, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1541.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert548 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext546, %.sroa.1517.sroa.0.sroa.158.0.insert.ext813
  %751 = sext i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert548 to i64
  %752 = icmp eq i64 %751, %1
  br label %959

753:                                              ; preds = %718
  %754 = icmp eq i64 %1, %3
  br label %959

755:                                              ; preds = %718
  %756 = sitofp i64 %1 to float
  %757 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1445 = shl i32 %757, 8
  %758 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1098 = and i32 %758, 255
  %759 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext717 = shl i32 %759, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1445.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1445, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext474 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1098, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1445.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert476 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext474, %.sroa.1517.sroa.0.sroa.158.0.insert.ext717
  %760 = bitcast i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert476 to float
  %761 = fcmp oeq float %756, %760
  br label %959

762:                                              ; preds = %718
  %763 = sitofp i64 %1 to double
  %764 = bitcast i64 %3 to double
  %765 = fcmp oeq double %763, %764
  br label %959

766:                                              ; preds = %4
  %767 = trunc i64 %2 to i16
  switch i16 %767, label %959 [
    i16 0, label %768
    i16 1, label %774
    i16 2, label %783
    i16 3, label %790
    i16 4, label %799
    i16 5, label %809
    i16 6, label %819
    i16 7, label %826
    i16 8, label %833
    i16 9, label %842
    i16 10, label %852
    i16 11, label %859
    i16 12, label %869
  ]

768:                                              ; preds = %766
  %769 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3113 = shl i32 %769, 8
  %770 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2776 = and i32 %770, 255
  %771 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext = shl i32 %771, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3113.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3113, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3113.masked, %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2776
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext.masked = and i32 %.sroa.51725.sroa.0.sroa.158.0.insert.ext, 2147418112
  %772 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext, %.sroa.51725.sroa.0.sroa.158.0.insert.ext.masked
  %773 = icmp eq i32 %772, 0
  br label %959

774:                                              ; preds = %766
  %775 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3117 = shl i32 %775, 8
  %776 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2779 = and i32 %776, 255
  %777 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2389 = shl i32 %777, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3117.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3117, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2155 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2779, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3117.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2157 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2155, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2389
  %778 = bitcast i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2157 to float
  %779 = trunc i64 %3 to i32
  %780 = and i32 %779, 1
  %781 = uitofp nneg i32 %780 to float
  %782 = fcmp oeq float %778, %781
  br label %959

783:                                              ; preds = %766
  %784 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3121 = shl i32 %784, 8
  %785 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2782 = and i32 %785, 255
  %786 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2393 = shl i32 %786, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3121.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3121, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2158 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2782, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3121.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2160 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2158, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2393
  %787 = bitcast i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2160 to float
  %788 = sitofp i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc to float
  %789 = fcmp oeq float %787, %788
  br label %959

790:                                              ; preds = %766
  %791 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3125 = shl i32 %791, 8
  %792 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2785 = and i32 %792, 255
  %793 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2397 = shl i32 %793, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3125.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3125, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2161 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2785, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3125.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2163 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2161, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2397
  %794 = bitcast i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2163 to float
  %795 = trunc i64 %3 to i32
  %796 = and i32 %795, 255
  %797 = uitofp nneg i32 %796 to float
  %798 = fcmp oeq float %794, %797
  br label %959

799:                                              ; preds = %766
  %800 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3129 = shl i32 %800, 8
  %801 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2788 = and i32 %801, 255
  %802 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2401 = shl i32 %802, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3129.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3129, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2164 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2788, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3129.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2166 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2164, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2401
  %803 = bitcast i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2166 to float
  %804 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1389 = shl i32 %804, 8
  %805 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1056 = and i32 %805, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1389.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1389, 65280
  %806 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1389.masked, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1056
  %807 = uitofp nneg i32 %806 to float
  %808 = fcmp oeq float %803, %807
  br label %959

809:                                              ; preds = %766
  %810 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3133 = shl i32 %810, 8
  %811 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2791 = and i32 %811, 255
  %812 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2405 = shl i32 %812, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3133.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3133, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2167 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2791, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3133.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2169 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2167, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2405
  %813 = bitcast i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2169 to float
  %814 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1545 = shl i32 %814, 8
  %815 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1173 = and i32 %815, 255
  %816 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext817 = shl i32 %816, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1545.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1545, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext549 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1173, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1545.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert551 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext549, %.sroa.1517.sroa.0.sroa.158.0.insert.ext817
  %817 = uitofp i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert551 to float
  %818 = fcmp oeq float %813, %817
  br label %959

819:                                              ; preds = %766
  %820 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3137 = shl i32 %820, 8
  %821 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2794 = and i32 %821, 255
  %822 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2409 = shl i32 %822, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3137.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3137, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2170 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2794, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3137.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2172 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2170, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2409
  %823 = bitcast i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2172 to float
  %824 = uitofp i64 %3 to float
  %825 = fcmp oeq float %823, %824
  br label %959

826:                                              ; preds = %766
  %827 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3141 = shl i32 %827, 8
  %828 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2797 = and i32 %828, 255
  %829 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2413 = shl i32 %829, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3141.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3141, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2173 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2797, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3141.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2175 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2173, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2413
  %830 = bitcast i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2175 to float
  %831 = sitofp i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc to float
  %832 = fcmp oeq float %830, %831
  br label %959

833:                                              ; preds = %766
  %834 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3145 = shl i32 %834, 8
  %835 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2800 = and i32 %835, 255
  %836 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2417 = shl i32 %836, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3145.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3145, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2176 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2800, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3145.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2178 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2176, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2417
  %837 = bitcast i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2178 to float
  %838 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1393 = shl i16 %838, 8
  %839 = trunc i64 %3 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1059 = and i16 %839, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1061 = or disjoint i16 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1393, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1059
  %840 = sitofp i16 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1061 to float
  %841 = fcmp oeq float %837, %840
  br label %959

842:                                              ; preds = %766
  %843 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3149 = shl i32 %843, 8
  %844 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2803 = and i32 %844, 255
  %845 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2421 = shl i32 %845, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3149.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3149, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2179 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2803, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3149.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2181 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2179, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2421
  %846 = bitcast i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2181 to float
  %847 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1549 = shl i32 %847, 8
  %848 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1176 = and i32 %848, 255
  %849 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext821 = shl i32 %849, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1549.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1549, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext552 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1176, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1549.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert554 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext552, %.sroa.1517.sroa.0.sroa.158.0.insert.ext821
  %850 = sitofp i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert554 to float
  %851 = fcmp oeq float %846, %850
  br label %959

852:                                              ; preds = %766
  %853 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3153 = shl i32 %853, 8
  %854 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2806 = and i32 %854, 255
  %855 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2425 = shl i32 %855, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3153.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3153, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2182 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2806, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3153.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2184 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2182, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2425
  %856 = bitcast i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2184 to float
  %857 = sitofp i64 %3 to float
  %858 = fcmp oeq float %856, %857
  br label %959

859:                                              ; preds = %766
  %860 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3157 = shl i32 %860, 8
  %861 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2809 = and i32 %861, 255
  %862 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2429 = shl i32 %862, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3157.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3157, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2185 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2809, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3157.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2187 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2185, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2429
  %863 = bitcast i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2187 to float
  %864 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1449 = shl i32 %864, 8
  %865 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1101 = and i32 %865, 255
  %866 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext721 = shl i32 %866, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1449.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1449, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext477 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1101, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1449.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert479 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext477, %.sroa.1517.sroa.0.sroa.158.0.insert.ext721
  %867 = bitcast i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert479 to float
  %868 = fcmp oeq float %863, %867
  br label %959

869:                                              ; preds = %766
  %870 = trunc i64 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.extract.shift3430 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3161 = shl i32 %870, 8
  %871 = trunc i64 %1 to i32
  %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2812 = and i32 %871, 255
  %872 = trunc i64 %.sroa.51725.sroa.0.sroa.158.0.extract.shift3431 to i32
  %.sroa.51725.sroa.0.sroa.158.0.insert.ext2433 = shl i32 %872, 16
  %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3161.masked = and i32 %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3161, 65280
  %.sroa.51725.sroa.0.sroa.0.0.insert.ext2188 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.sroa.0.0.insert.ext2812, %.sroa.51725.sroa.0.sroa.0.sroa.158.0.insert.ext3161.masked
  %.sroa.51725.sroa.0.sroa.0.0.insert.insert2190 = or disjoint i32 %.sroa.51725.sroa.0.sroa.0.0.insert.ext2188, %.sroa.51725.sroa.0.sroa.158.0.insert.ext2433
  %873 = bitcast i32 %.sroa.51725.sroa.0.sroa.0.0.insert.insert2190 to float
  %874 = fpext float %873 to double
  %875 = bitcast i64 %3 to double
  %876 = fcmp oeq double %874, %875
  br label %959

877:                                              ; preds = %4
  %878 = trunc i64 %2 to i16
  switch i16 %878, label %959 [
    i16 0, label %879
    i16 1, label %882
    i16 2, label %888
    i16 3, label %892
    i16 4, label %898
    i16 5, label %905
    i16 6, label %912
    i16 7, label %916
    i16 8, label %920
    i16 9, label %926
    i16 10, label %933
    i16 11, label %937
    i16 12, label %945
  ]

879:                                              ; preds = %877
  %880 = and i64 %1, 9223372036854775807
  %881 = icmp eq i64 %880, 0
  br label %959

882:                                              ; preds = %877
  %883 = bitcast i64 %1 to double
  %884 = trunc i64 %3 to i32
  %885 = and i32 %884, 1
  %886 = uitofp nneg i32 %885 to double
  %887 = fcmp oeq double %883, %886
  br label %959

888:                                              ; preds = %877
  %889 = bitcast i64 %1 to double
  %890 = sitofp i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc to double
  %891 = fcmp oeq double %889, %890
  br label %959

892:                                              ; preds = %877
  %893 = bitcast i64 %1 to double
  %894 = trunc i64 %3 to i32
  %895 = and i32 %894, 255
  %896 = uitofp nneg i32 %895 to double
  %897 = fcmp oeq double %893, %896
  br label %959

898:                                              ; preds = %877
  %899 = bitcast i64 %1 to double
  %900 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1397 = shl i32 %900, 8
  %901 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1062 = and i32 %901, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1397.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1397, 65280
  %902 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1397.masked, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1062
  %903 = uitofp nneg i32 %902 to double
  %904 = fcmp oeq double %899, %903
  br label %959

905:                                              ; preds = %877
  %906 = bitcast i64 %1 to double
  %907 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1553 = shl i32 %907, 8
  %908 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1179 = and i32 %908, 255
  %909 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext825 = shl i32 %909, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1553.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1553, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext555 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1179, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1553.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert557 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext555, %.sroa.1517.sroa.0.sroa.158.0.insert.ext825
  %910 = uitofp i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert557 to double
  %911 = fcmp oeq double %906, %910
  br label %959

912:                                              ; preds = %877
  %913 = bitcast i64 %1 to double
  %914 = uitofp i64 %3 to double
  %915 = fcmp oeq double %913, %914
  br label %959

916:                                              ; preds = %877
  %917 = bitcast i64 %1 to double
  %918 = sitofp i8 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.extract.trunc to double
  %919 = fcmp oeq double %917, %918
  br label %959

920:                                              ; preds = %877
  %921 = bitcast i64 %1 to double
  %922 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1401 = shl i16 %922, 8
  %923 = trunc i64 %3 to i16
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1065 = and i16 %923, 255
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1067 = or disjoint i16 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1401, %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1065
  %924 = sitofp i16 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.insert1067 to double
  %925 = fcmp oeq double %921, %924
  br label %959

926:                                              ; preds = %877
  %927 = bitcast i64 %1 to double
  %928 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1557 = shl i32 %928, 8
  %929 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1182 = and i32 %929, 255
  %930 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext829 = shl i32 %930, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1557.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1557, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext558 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1182, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1557.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert560 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext558, %.sroa.1517.sroa.0.sroa.158.0.insert.ext829
  %931 = sitofp i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert560 to double
  %932 = fcmp oeq double %927, %931
  br label %959

933:                                              ; preds = %877
  %934 = bitcast i64 %1 to double
  %935 = sitofp i64 %3 to double
  %936 = fcmp oeq double %934, %935
  br label %959

937:                                              ; preds = %877
  %938 = bitcast i64 %1 to double
  %939 = trunc i64 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.extract.shift3432 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1453 = shl i32 %939, 8
  %940 = trunc i64 %3 to i32
  %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1104 = and i32 %940, 255
  %941 = trunc i64 %.sroa.1517.sroa.0.sroa.158.0.extract.shift3433 to i32
  %.sroa.1517.sroa.0.sroa.158.0.insert.ext725 = shl i32 %941, 16
  %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1453.masked = and i32 %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1453, 65280
  %.sroa.1517.sroa.0.sroa.0.0.insert.ext480 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.sroa.0.0.insert.ext1104, %.sroa.1517.sroa.0.sroa.0.sroa.158.0.insert.ext1453.masked
  %.sroa.1517.sroa.0.sroa.0.0.insert.insert482 = or disjoint i32 %.sroa.1517.sroa.0.sroa.0.0.insert.ext480, %.sroa.1517.sroa.0.sroa.158.0.insert.ext725
  %942 = bitcast i32 %.sroa.1517.sroa.0.sroa.0.0.insert.insert482 to float
  %943 = fpext float %942 to double
  %944 = fcmp oeq double %938, %943
  br label %959

945:                                              ; preds = %877
  %946 = bitcast i64 %1 to double
  %947 = bitcast i64 %3 to double
  %948 = fcmp oeq double %946, %947
  br label %959

949:                                              ; preds = %4
  %950 = add nsw i32 %5, -13
  %or.cond = icmp ult i32 %950, 15
  br i1 %or.cond, label %952, label %951

951:                                              ; preds = %949
  tail call void @__assert_fail(ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.29, i32 noundef 160, ptr noundef nonnull @__PRETTY_FUNCTION__.anys_equal) #2
  unreachable

952:                                              ; preds = %949
  %953 = and i32 %.sroa.0.0.extract.trunc, 65535
  %954 = icmp eq i32 %5, %953
  %955 = inttoptr i64 %1 to ptr
  %956 = inttoptr i64 %3 to ptr
  %957 = icmp eq ptr %955, %956
  %958 = select i1 %954, i1 %957, i1 false
  br label %959

959:                                              ; preds = %877, %766, %718, %624, %539, %481, %433, %345, %257, %183, %125, %51, %6, %952, %945, %937, %933, %926, %920, %916, %912, %905, %898, %892, %888, %882, %879, %869, %859, %852, %842, %833, %826, %819, %809, %799, %790, %783, %774, %768, %762, %755, %753, %747, %742, %739, %737, %734, %731, %728, %725, %722, %720, %711, %701, %695, %687, %679, %673, %667, %659, %651, %644, %638, %631, %626, %618, %609, %604, %596, %590, %585, %580, %572, %564, %557, %552, %545, %541, %535, %528, %525, %519, %514, %512, %509, %503, %497, %492, %490, %485, %483, %477, %470, %468, %462, %457, %454, %452, %449, %446, %443, %440, %437, %435, %426, %416, %413, %405, %397, %391, %388, %380, %372, %365, %359, %352, %347, %338, %328, %325, %317, %309, %303, %300, %292, %284, %277, %271, %264, %259, %251, %242, %239, %232, %225, %220, %217, %210, %203, %199, %194, %188, %185, %179, %172, %169, %163, %158, %156, %153, %147, %141, %136, %134, %129, %127, %119, %110, %107, %100, %93, %88, %85, %78, %71, %65, %60, %56, %53, %50, %47, %41, %39, %34, %30, %28, %26, %21, %16, %13, %11, %8
  %.0 = phi i1 [ %958, %952 ], [ %948, %945 ], [ %944, %937 ], [ %936, %933 ], [ %932, %926 ], [ %925, %920 ], [ %919, %916 ], [ %915, %912 ], [ %911, %905 ], [ %904, %898 ], [ %897, %892 ], [ %891, %888 ], [ %887, %882 ], [ %881, %879 ], [ %876, %869 ], [ %868, %859 ], [ %858, %852 ], [ %851, %842 ], [ %841, %833 ], [ %832, %826 ], [ %825, %819 ], [ %818, %809 ], [ %808, %799 ], [ %798, %790 ], [ %789, %783 ], [ %782, %774 ], [ %773, %768 ], [ %765, %762 ], [ %761, %755 ], [ %754, %753 ], [ %752, %747 ], [ %746, %742 ], [ %741, %739 ], [ %738, %737 ], [ %736, %734 ], [ %733, %731 ], [ %730, %728 ], [ %727, %725 ], [ %724, %722 ], [ %721, %720 ], [ %717, %711 ], [ %710, %701 ], [ %700, %695 ], [ %694, %687 ], [ %686, %679 ], [ %678, %673 ], [ %672, %667 ], [ %666, %659 ], [ %658, %651 ], [ %650, %644 ], [ %643, %638 ], [ %637, %631 ], [ %630, %626 ], [ %623, %618 ], [ %617, %609 ], [ %608, %604 ], [ %603, %596 ], [ %595, %590 ], [ %589, %585 ], [ %584, %580 ], [ %579, %572 ], [ %571, %564 ], [ %563, %557 ], [ %556, %552 ], [ %551, %545 ], [ %544, %541 ], [ %538, %535 ], [ %534, %528 ], [ %527, %525 ], [ %524, %519 ], [ %518, %514 ], [ %513, %512 ], [ %511, %509 ], [ %508, %503 ], [ %502, %497 ], [ %496, %492 ], [ %491, %490 ], [ %489, %485 ], [ %484, %483 ], [ %480, %477 ], [ %476, %470 ], [ %469, %468 ], [ %467, %462 ], [ %461, %457 ], [ %456, %454 ], [ %453, %452 ], [ %451, %449 ], [ %448, %446 ], [ %445, %443 ], [ %442, %440 ], [ %439, %437 ], [ %436, %435 ], [ %432, %426 ], [ %425, %416 ], [ %415, %413 ], [ %412, %405 ], [ %404, %397 ], [ %396, %391 ], [ %390, %388 ], [ %387, %380 ], [ %379, %372 ], [ %371, %365 ], [ %364, %359 ], [ %358, %352 ], [ %351, %347 ], [ %344, %338 ], [ %337, %328 ], [ %327, %325 ], [ %324, %317 ], [ %316, %309 ], [ %308, %303 ], [ %302, %300 ], [ %299, %292 ], [ %291, %284 ], [ %283, %277 ], [ %276, %271 ], [ %270, %264 ], [ %263, %259 ], [ %256, %251 ], [ %250, %242 ], [ %241, %239 ], [ %238, %232 ], [ %231, %225 ], [ %224, %220 ], [ %219, %217 ], [ %216, %210 ], [ %209, %203 ], [ %202, %199 ], [ %198, %194 ], [ %193, %188 ], [ %187, %185 ], [ %182, %179 ], [ %178, %172 ], [ %171, %169 ], [ %168, %163 ], [ %162, %158 ], [ %157, %156 ], [ %155, %153 ], [ %152, %147 ], [ %146, %141 ], [ %140, %136 ], [ %135, %134 ], [ %133, %129 ], [ %128, %127 ], [ %124, %119 ], [ %118, %110 ], [ %109, %107 ], [ %106, %100 ], [ %99, %93 ], [ %92, %88 ], [ %87, %85 ], [ %84, %78 ], [ %77, %71 ], [ %70, %65 ], [ %64, %60 ], [ %59, %56 ], [ %55, %53 ], [ false, %50 ], [ %49, %47 ], [ %46, %41 ], [ %40, %39 ], [ %38, %34 ], [ %33, %30 ], [ %29, %28 ], [ %27, %26 ], [ %25, %21 ], [ %20, %16 ], [ %15, %13 ], [ %12, %11 ], [ %10, %8 ], [ true, %6 ], [ false, %51 ], [ false, %125 ], [ false, %183 ], [ false, %257 ], [ false, %345 ], [ false, %433 ], [ false, %481 ], [ false, %539 ], [ false, %624 ], [ false, %718 ], [ false, %766 ], [ false, %877 ]
  ret i1 %.0
}

attributes #0 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InstCombinePass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass